Ipopt-3.11.4/0000755000076600007660000000000012214537466011363 5ustar coincoinIpopt-3.11.4/ThirdParty/0000755000076600007660000000000012214537473013453 5ustar coincoinIpopt-3.11.4/ThirdParty/HSLold/0000755000076600007660000000000012214537471014576 5ustar coincoinIpopt-3.11.4/ThirdParty/HSLold/CoinHslConfig.h0000644000076600007660000000230511577403724017440 0ustar coincoin/* Copyright (C) 2011 * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id$ * * Include file for the configuration of CoinHSL. * * On systems where the code is configured with the configure script * (i.e., compilation is always done with HAVE_CONFIG_H defined), this * header file includes the automatically generated header file, and * undefines macros that might configure with other Config.h files. * * On systems that are compiled in other ways (e.g., with the * Developer Studio), a header files is included to define those * macros that depend on the operating system and the compiler. The * macros that define the configuration of the particular user setting * (e.g., presence of other COIN-OR packages or third party code) are set * by the files config_*default.h. The project maintainer needs to remember * to update these file and choose reasonable defines. * A user can modify the default setting by editing the config_*default.h files. * */ #ifndef __COINHSLCONFIG_H__ #define __COINHSLCONFIG_H__ #ifdef HAVE_CONFIG_H #include "config_coinhsl.h" #else #include "config_coinhsl_default.h" #endif /* HAVE_CONFIG_H */ #endif /*__COINHSLCONFIG_H__*/ Ipopt-3.11.4/ThirdParty/HSLold/config.sub0000755000076600007660000007772610762032301016570 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/HSLold/config_coinhsl.h.in0000644000076600007660000000135511764375016020350 0ustar coincoin/* config_coinhsl.h.in. */ #ifndef __CONFIG_COINHSL_H__ #define __CONFIG_COINHSL_H__ /* Define to 1 if MA27 is available. */ #undef COINHSL_HAS_MA27 /* Define to 1 if MA28 is available. */ #undef COINHSL_HAS_MA28 /* Define to 1 if MA57 is available. */ #undef COINHSL_HAS_MA57 /* Define to 1 if MA77 is available. */ #undef COINHSL_HAS_MA77 /* Define to 1 if MC19 is available. */ #undef COINHSL_HAS_MC19 /* Define to 1 if METIS is available */ #undef COINHSL_HAS_METIS /* Version number of project */ #undef COINHSL_VERSION /* Major Version number of project */ #undef COINHSL_VERSION_MAJOR /* Minor Version number of project */ #undef COINHSL_VERSION_MINOR /* Release Version number of project */ #undef COINHSL_VERSION_RELEASE #endif Ipopt-3.11.4/ThirdParty/HSLold/coinhsl-uninstalled.pc.in0000644000076600007660000000042211577403724021510 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: HSL Description: Harwell Subroutines Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Cflags: -I@abs_source_dir@ -I@ABSBUILDDIR@ Libs: ${libdir}/libcoinhsl.la @HSL_PCLIBS@ Requires: @HSL_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/HSLold/install-sh0000755000076600007660000002202110762032301016563 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSLold/Makefile.am0000644000076600007660000000560511577403724016644 0ustar coincoin# Copyright (C) 2003, 2009 International Business Machines and others # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2312 2011-06-19 14:29:40Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = INSTALL.HSL if BUILD_COINHSL lib_LTLIBRARIES = libcoinhsl.la libcoinhsl_la_SOURCES = if COIN_HAS_MA27 libcoinhsl_la_SOURCES += ma27ad.f endif if COIN_HAS_MA57 libcoinhsl_la_SOURCES += ma57ad.f endif if COIN_HAS_MC19 libcoinhsl_la_SOURCES += mc19ad.f endif if COIN_HAS_MA28 libcoinhsl_la_SOURCES += ma28ad.f ma30ad.f mc13dd.f mc20ad.f \ mc21ad.f mc22ad.f mc23ad.f mc24ad.f endif if COIN_HAS_MA77 libcoinhsl_la_SOURCES += hsl_ma77d.f90 hsl_ma77d.deps90.f90 hsl_ma77d.deps77.f endif libcoinhsl_la_LDFLAGS = $(LT_LDFLAGS) # dependencies hsl_ma77d.lo: hsl_ma77d.deps90.lo ############################################################################# # Generating a shared library for delay loading if EXTRA_SHARED_COMMAND $(HSL_SHARED_LIB): $(thirdpartylib_LTLIBRARIES) $(DEFFILE) bla=; \ for i in $(nodist_libcoinhsl_la_SOURCES); do \ case $$i in \ *.f) \ obj=`echo $$i| sed -e 's|\(.*\).[cf]|.libs/\1.$(OBJEXT)|g'` ;\ if test -r $$obj; then \ bla="$$bla $$obj" ;\ else \ bla="$$bla `echo $$i| sed -e 's|\(.*\).[cf]|\1.$(OBJEXT)|g'`" ;\ fi ;\ ;; \ esac ;\ done ;\ $(F77_SHARED_CMD) $$bla -o $(HSL_SHARED_LIB) $(F77_DLL_LINKFLAGS) if NEED_DEFFILE $(DEFFILE): config.status echo 'LIBRARY LIBHSL' > $(DEFFILE) echo 'EXPORTS' >> $(DEFFILE) for i in $(EXPORT_SYMBOLS); do \ echo " $$i" >> $(DEFFILE); \ done endif endif # EXTRA_SHARED_COMMAND includecoindir = $(includedir)/coin/ThirdParty install-exec-local: $(HSL_SHARED_LIB) if EXTRA_SHARED_COMMAND test -z "$(DESTDIR)$(libdir)/coin/ThirdParty" || $(mkdir_p) "$(DESTDIR)$(libdir)/coin/ThirdParty" $(libLTLIBRARIES_INSTALL) $(HSL_SHARED_LIB) "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" endif $(install_sh_DATA) config_coinhsl.h $(DESTDIR)$(includecoindir)/CoinHslConfig.h uninstall-local: rm -f "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" rm -f $(DESTDIR)$(includecoindir)/CoinHslConfig.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinhsl.pc endif # BUILD_COINHSL test: @echo "No test available for HSL." # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = $(HSL_SHARED_LIB) $(DEFFILE) # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/HSLold/configure.ac0000644000076600007660000002015412214334712017057 0ustar coincoin# Copyright (C) 2006, 2009 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2927 2013-09-12 12:55:38Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyHSL],[1.3.6],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2006, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there # Here we don't know yet which files are actually provided... AC_CONFIG_SRCDIR(configure.ac) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(COINHSL,4:6:3) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD # turn off warnings and pedantic mode since they could make trouble on some platforms, # and we couldn't fix them anyway coin_skip_warn_fflags=yes # provide flag to allow compilation of a stand-alone shared library AC_ARG_ENABLE([loadable-library], [AC_HELP_STRING([--enable-loadable-library], [compile stand-alone shared library for delayed loading])]) # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(HSL) # Get the name of the C compiler (for a dummy program) AC_COIN_PROG_CC # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Check if pkg-config is available (to setup addlibs file) AC_COIN_HAS_PKGCONFIG # Get the linker flags (FLIBS) that are required for linking against this blas library AC_COIN_F77_WRAPPERS # Add FLIBS to HSL_PCLIBS, so that they get into the .pc files HSL_PCLIBS="$HSL_PCLIBS $FLIBS" # Need egrep later on AC_PROG_EGREP # Also set up the FC compiler variable, required to compile .f90 # files. We use the same compile and flags as F77 and FFLAGS, unless # the user has set FC and FCFLAGS explicitly. if test "$FC" = ""; then FC="$F77" fi if test "$FCFLAGS" = ""; then FCFLAGS="$FFLAGS" fi AC_PROG_FC # Initialize autotools if test x$enable_loadable_library = xyes; then flag=force_shared fi AC_COIN_INIT_AUTO_TOOLS([$flag]) ############################################################################# # Find out which files are available # ############################################################################# AC_MSG_CHECKING([whether we can compile Fortran 90 code]) AC_LANG_PUSH(Fortran 77) AC_COMPILE_IFELSE([ MODULE BLA DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB END MODULE BLA],[have_f90=yes ; rm -f bla.mod],[have_f90=no]) AC_MSG_RESULT([$have_f90]) AC_LANG_POP(Fortran 77) coin_has_something=no AC_DEFUN([MY_CHECK_HSLFILE], [AC_COIN_CHECK_FILE([$srcdir/$1.f], [hsl_files="$hsl_files $1.f" AC_DEFINE(COINHSL_HAS_$2, [1], [Define to 1 if $2 is available.]) coin_has_something=yes coin_has_$1=yes], [coin_has_$1=no]) AM_CONDITIONAL([COIN_HAS_$2],[test $coin_has_$1 = yes])]) AC_DEFUN([MY_CHECK_HSLFILE_F90], [if test $have_f90 = yes; then AC_COIN_CHECK_FILE([$srcdir/$1.f90], [hsl_files="$hsl_files $1.f" AC_DEFINE(COINHSL_HAS_$2, [1], [Define to 1 if $2 is available.]) coin_has_something=yes coin_has_$1=yes], [coin_has_$1=no]) else coin_has_$1=no fi AM_CONDITIONAL([COIN_HAS_$2],[test $coin_has_$1 = yes])]) MY_CHECK_HSLFILE(ma27ad,MA27) if test $coin_has_ma27ad = yes; then AC_MSG_CHECKING([whether MA27 is threadsafe]) if $EGREP MA27UD $srcdir/ma27ad.f >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([Please obtain the threadsafe (newer) version of MA27]) fi fi AC_COIN_CHECK_PACKAGE(Metis, [coinmetis], HSL) if test $coin_has_metis = yes ; then AC_DEFINE(COINHSL_HAS_METIS, [1], Define to 1 if METIS is available) fi MY_CHECK_HSLFILE(ma57ad,MA57) if test $coin_has_ma57ad = yes; then if test $coin_has_metis != yes ; then AC_MSG_ERROR([MA57 requires METIS, which is not found.]) fi AC_COIN_CHECK_PACKAGE_BLAS(HSL) if test $coin_has_blas != yes ; then AC_MSG_ERROR([MA57 requires BLAS, which is not found.]) fi else AM_CONDITIONAL(COIN_HAS_METIS, [test 0 = 1]) AM_CONDITIONAL(COIN_HAS_BLAS, [test 0 = 1]) fi MY_CHECK_HSLFILE(mc19ad,MC19) MY_CHECK_HSLFILE(ma28ad,MA28) MY_CHECK_HSLFILE_F90(hsl_ma77d,MA77) ############################################################################# # Setup build of loadable library # ############################################################################# HSL_SHARED_LIB= if test x$enable_loadable_library = xyes; then case $build in *-cygwin* | *-mingw*) HSL_SHARED_LIB=libhsl.dll F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' case $F77 in compile_f2c*) EXPORT_SYMBOLS= if test $coin_has_ma27ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma27id_ ma27ad_ ma27bd_ ma27cd_" fi if test $coin_has_ma28ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma28ad_" fi if test $coin_has_ma57ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma57id_ ma57ad_ ma57bd_ ma57cd_ ma57ed_" fi if test $coin_has_mc19ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc19ad_" fi F77_SHARED_CMD='$(F77) -shared $(FFLAGS) -def:$(DEFFILE)' DEFFILE='Export.def' ;; ifort* | IFORT*) EXPORT_SYMBOLS= if test $coin_has_ma27ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA27ID MA27AD MA27BD MA27CD" fi if test $coin_has_ma28ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA28AD" fi if test $coin_has_ma57ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA57ID MA57AD MA57BD MA57CD MA57ED" fi if test $coin_has_mc19ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC19AD" fi DEFFILE='Export.def' F77_SHARED_CMD='$(F77) $(FFLAGS)' F77_DLL_LINKFLAGS='-link -dll -def:$(DEFFILE)' ;; *) F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' ;; esac ;; esac fi AC_SUBST(F77_SHARED_CMD) AC_SUBST(F77_DLL_LINKFLAGS) AC_SUBST(HSL_SHARED_LIB) AC_SUBST(EXPORT_SYMBOLS) AC_SUBST(DEFFILE) AM_CONDITIONAL([INSTALL_LOADABLE_LIBRARY],[test x$flag = xforce_shared]) AM_CONDITIONAL([NEED_DEFFILE], [test ! x"$DEFFILE" = x]) AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test ! x"$F77_SHARED_CMD" = x]) #AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test "$F77_SHARED_CMD" = x]) ############################################################################# # Write the output # ############################################################################# AC_CONFIG_FILES([Makefile]) # we build the library and setup the .pc files only if there is at least one source code # if there is no source code, then .pc files should not be setup, so for others this is as if we do not exist if test $coin_has_something = yes ; then AC_CONFIG_FILES([coinhsl.pc coinhsl-uninstalled.pc]) AC_CONFIG_HEADER(config.h config_coinhsl.h) else # in case something is left over from a previous build rm -f coinhsl.pc coinhsl-uninstalled.pc fi AM_CONDITIONAL(BUILD_COINHSL, [test $coin_has_something = yes]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/HSLold/depcomp0000755000076600007660000003710010762032301016140 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSLold/INSTALL.HSL0000644000076600007660000001702611765644547016277 0ustar coincoinInstallation of certain Harwell subroutines for IPOPT. ********************************************************************* Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************* Information on the Harwell Subroutine Library (HSL) is available at http://www.cse.clrc.ac.uk/nag/hsl/ Some of the required HSL routines are available in the HSL Archive. The subroutines in the HSL Archive are free for non-commercial purposes (make sure you read the license). The sparse symmetric linear solvers that you can use in Ipopt are MA57 (if you have access for a commercial copy of the HSL library or are an academic who wants to use the "HSL 2007 for Researchers" library) and/or MA27 (if you have only access to the HSL Archive). In addition, you should get MC19 (from the ASL archive). Different ways to use the HSL routines in Ipopt: ------------------------------------------------ 1. If you download the HSL sources when you configure and compile Ipopt, those files will be compiled and included into the Ipopt library and executable. 2. You can also compile Ipopt without the HSL source files. In this case, Ipopt will be built without the HSL routines, but it will be possible to load a shared library at runtime that contains the HSL routines. For this, you need to provide this shared library. You can use the Makefiles in this ThirdParty/HSL directory to generate this shared library. For details, please look at the "Compiling a shared library with HSL" below in this file. Instructions on how to download files from the HSL Archive or HSL 2007: ----------------------------------------------------------------------- If you need to download subroutines from the HSL Archive or from the HSL2007 for Researchers website, this is how it goes: In order to download the HSL Archive subroutines (like ma27 and mc19), you need to register at the HSL 2011 catalogue website: http://www.hsl.rl.ac.uk/catalogue/ After that you can log in and go to the page that lists all the available HSL packages for download. There, follow the instructions on how to download the desired routines. After downloading a routine, the source files need to be extracted and possibly renamed or rearranged as following: MA27: - get ma27d.f from the zip/tar file, src subdirectory - rename ma27d.f to ma27ad.f MA28: - get ma28d.f and ddeps.f from the zip/tar file, src subdirectory - rename ma28d.f to ma28ad.f - take the contents of ddeps.f and create the following new files: - ma30ad.f (including MA30AD, MA30BD, MA30CD, and MA30DD subroutines) - mc13dd.f (including MC13DD and MC13ED subroutines) - mc20ad.f (including MC20AD and MC20BD subroutines) - mc21ad.f (including MC21AD and MC21BD subroutines) - mc22ad.f (MC22AD subroutine) - mc23ad.f (MC23AD subroutine) - mc24ad.f (MC24AD subroutine) - don't worry about the FA01AD, FA01BD, FA01CD, FA01DD, and FA01FD subroutines in ddeps.f, they appear to never get used - if you are also compiling ma57, open mc21ad.f and replace "SUBROUTINE MC21AD" -> "SUBROUTINE MC21AD2", and "SUBROUTINE MC21BD" -> "SUBROUTINE MC21BD2" (MC21AD and MC21BD are included in ma57's ddeps.f, they will conflict if you don't rename or delete one of the copies) MA57: - note: you want MA57 (the Fortran 77 version), NOT HSL_MA57 (which is Fortran 95) - get ma57d.f and ddeps.f from the zip/tar file, src subdirectory - rename ma57d.f to ma57ad.f - add the contents of ddeps.f to the end of the new ma57ad.f file - get the dummy file (metis.f) for METIS; however, it is strongly suggested that you use METIS (look at the ThirdParty/Metis directory for instructions) MA77: - get hsl_ma77d.f90, hsl_ma77d_ciface.f90, ddeps90.f90, common90.f90, and common.f from the zip/tar file, src subdirectory - rename ddeps90.f90 to hsl_ma77d.deps90.f90 - rename common.f to hsl_ma77d.deps77.f - copy the contents of hsl_ma77d_ciface.f90 to the end of hsl_ma77d.f90 - copy the contents of common90.f90 to the end of hsl_ma77d.deps90.f90 MC19: - get mc19d.f from the zip/tar file, src subdirectory - rename mc19d.f to mc19ad.f - don't worry about ddeps.f from the src directory, it is only FA01AD, FA01BD, FA01CD, FA01DD, and FA01FD, which appear to never get used Instructions on where to put the source code: --------------------------------------------- Copy the source files for the required HSL routines into this directory before running the `configure' script. The configuration script will detect which source files you have and prepare the Makefile accordingly. Compiling a shared library with HSL =================================== Note: This has not yet been successfully tested on all platforms. It should work on most UNIX systems (including Linux), and also on Cygwin and MSys. So far, it does not seem to work on AIX. If you already built an Ipopt executable or library, you can still add the functionality of the HSL routines without recompiling Ipopt. The following describes the mechanism that Ipopt uses to use a Harwell Subroutine: 1. If the Ipopt binary/library had been compiled with HSL files present, those subroutines are always available. 2. If you are selecting a Harwell subroutine (such as MA27 or MA57 as argument to the "linear_solver" option) which has not been available when Ipopt had been compiled, Ipopt will attempt to load a shared library containing this routine. The name of the shared library depends on the operating system: - Windows (Cygwin/MSys/MSVC): libhsl.dll - Darwin: libhsl.dylib - UNIX (including Linux): libhsl.so If this library is not found, or the selected routine is not available in this shared library, Ipopt will abort with an error message. An easy way to generate this shared library is to use the "configure" script in this directory, using the following instructions: 1. Put the HSL routines that are available to you into this directory (see above for the proper names, and how to get them). 2. Run the configure script of ThirdParty/HSL (not the one in the Ipopt base directory!). As arguments, you would essentially provide the same flags as you would usually when you compile Ipopt, but you need to add the flag "--enable-loadable-library". Since you are compiling a shared library, you cannot specify the "--disable-shared" flag. 3. Then just run "make install". If it works, this should give you the shared library in the "lib" subdirectory in the directory where you run the ThirdParty/HSL/configure script. 4. To use the shared library, you need to make sure that Ipopt will find it when it is looking for it. On most UNIX systems, you need to put the shared library into a directory in the LD_LIBRARY_PATH search path, and on Windows it needs to be in the PATH. Possible issues when compiling MA77 =================================== If you encounter errors such as: "Error: Attribute at (1) is not allowed in a TYPE definition" referring to "allocatable", or "Error: '' at (1) is not a member of the 'of01_data_private' structure", or "Error: Syntax error in DATA statement at (1)", or "Error: Symbol 'array' at (1) has no IMPLICIT type", or "Error: 'array' argument of 'size' intrinsic at (1) must be an array", these are Fortran 90 issues with gfortran versions pre-4.2.0. Try a different Fortran 90 compiler or a newer version of gfortran. Similarly, you may encounter "Error: Stat-variable at (1) shall not be DEALLOCATEd within the same DEALLOCATE statement" if you are using gfortran 4.5.0 or 4.5.1. Ipopt-3.11.4/ThirdParty/HSLold/Makefile.in0000644000076600007660000007607612156620653016663 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2003, 2009 International Business Machines and others # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_COINHSL_TRUE@@COIN_HAS_MA27_TRUE@am__append_1 = ma27ad.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA57_TRUE@am__append_2 = ma57ad.f @BUILD_COINHSL_TRUE@@COIN_HAS_MC19_TRUE@am__append_3 = mc19ad.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@am__append_4 = ma28ad.f ma30ad.f mc13dd.f mc20ad.f \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@ mc21ad.f mc22ad.f mc23ad.f mc24ad.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA77_TRUE@am__append_5 = hsl_ma77d.f90 hsl_ma77d.deps90.f90 hsl_ma77d.deps77.f DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinhsl-uninstalled.pc.in $(srcdir)/coinhsl.pc.in \ $(srcdir)/config.h.in $(srcdir)/config_coinhsl.h.in \ $(top_srcdir)/configure config.guess config.sub depcomp \ install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_6 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_7 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h config_coinhsl.h CONFIG_CLEAN_FILES = coinhsl.pc coinhsl-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinhsl_la_LIBADD = am__libcoinhsl_la_SOURCES_DIST = ma27ad.f ma57ad.f mc19ad.f ma28ad.f \ ma30ad.f mc13dd.f mc20ad.f mc21ad.f mc22ad.f mc23ad.f mc24ad.f \ hsl_ma77d.f90 hsl_ma77d.deps90.f90 hsl_ma77d.deps77.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA27_TRUE@am__objects_1 = ma27ad.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA57_TRUE@am__objects_2 = ma57ad.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MC19_TRUE@am__objects_3 = mc19ad.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@am__objects_4 = ma28ad.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@ ma30ad.lo mc13dd.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@ mc20ad.lo mc21ad.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@ mc22ad.lo mc23ad.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@ mc24ad.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA77_TRUE@am__objects_5 = hsl_ma77d.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA77_TRUE@ hsl_ma77d.deps90.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_MA77_TRUE@ hsl_ma77d.deps77.lo @BUILD_COINHSL_TRUE@am_libcoinhsl_la_OBJECTS = $(am__objects_1) \ @BUILD_COINHSL_TRUE@ $(am__objects_2) $(am__objects_3) \ @BUILD_COINHSL_TRUE@ $(am__objects_4) $(am__objects_5) libcoinhsl_la_OBJECTS = $(am_libcoinhsl_la_OBJECTS) @BUILD_COINHSL_TRUE@am_libcoinhsl_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I. -I$(srcdir) -I. -I. F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS) FCLD = $(FC) FCLINK = $(LIBTOOL) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinhsl_la_SOURCES) DIST_SOURCES = $(am__libcoinhsl_la_SOURCES_DIST) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_COINHSL_FALSE = @BUILD_COINHSL_FALSE@ BUILD_COINHSL_TRUE = @BUILD_COINHSL_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COINHSL_SVN_REV = @COINHSL_SVN_REV@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_MA27_FALSE = @COIN_HAS_MA27_FALSE@ COIN_HAS_MA27_TRUE = @COIN_HAS_MA27_TRUE@ COIN_HAS_MA28_FALSE = @COIN_HAS_MA28_FALSE@ COIN_HAS_MA28_TRUE = @COIN_HAS_MA28_TRUE@ COIN_HAS_MA57_FALSE = @COIN_HAS_MA57_FALSE@ COIN_HAS_MA57_TRUE = @COIN_HAS_MA57_TRUE@ COIN_HAS_MA77_FALSE = @COIN_HAS_MA77_FALSE@ COIN_HAS_MA77_TRUE = @COIN_HAS_MA77_TRUE@ COIN_HAS_MC19_FALSE = @COIN_HAS_MC19_FALSE@ COIN_HAS_MC19_TRUE = @COIN_HAS_MC19_TRUE@ COIN_HAS_METIS_FALSE = @COIN_HAS_METIS_FALSE@ COIN_HAS_METIS_TRUE = @COIN_HAS_METIS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFFILE = @DEFFILE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXPORT_SYMBOLS = @EXPORT_SYMBOLS@ EXTRA_SHARED_COMMAND_FALSE = @EXTRA_SHARED_COMMAND_FALSE@ EXTRA_SHARED_COMMAND_TRUE = @EXTRA_SHARED_COMMAND_TRUE@ F77 = @F77@ F77_DLL_LINKFLAGS = @F77_DLL_LINKFLAGS@ F77_SHARED_CMD = @F77_SHARED_CMD@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ HSL_PCLIBS = @HSL_PCLIBS@ HSL_PCREQUIRES = @HSL_PCREQUIRES@ HSL_SHARED_LIB = @HSL_SHARED_LIB@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_LOADABLE_LIBRARY_FALSE = @INSTALL_LOADABLE_LIBRARY_FALSE@ INSTALL_LOADABLE_LIBRARY_TRUE = @INSTALL_LOADABLE_LIBRARY_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ METIS_CFLAGS = @METIS_CFLAGS@ METIS_CFLAGS_INSTALLED = @METIS_CFLAGS_INSTALLED@ METIS_DATA = @METIS_DATA@ METIS_DATA_INSTALLED = @METIS_DATA_INSTALLED@ METIS_DEPENDENCIES = @METIS_DEPENDENCIES@ METIS_LIBS = @METIS_LIBS@ METIS_LIBS_INSTALLED = @METIS_LIBS_INSTALLED@ MPICC = @MPICC@ MPIF77 = @MPIF77@ NEED_DEFFILE_FALSE = @NEED_DEFFILE_FALSE@ NEED_DEFFILE_TRUE = @NEED_DEFFILE_TRUE@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = INSTALL.HSL $(am__append_6) @BUILD_COINHSL_TRUE@lib_LTLIBRARIES = libcoinhsl.la @BUILD_COINHSL_TRUE@libcoinhsl_la_SOURCES = $(am__append_1) \ @BUILD_COINHSL_TRUE@ $(am__append_2) $(am__append_3) \ @BUILD_COINHSL_TRUE@ $(am__append_4) $(am__append_5) @BUILD_COINHSL_TRUE@libcoinhsl_la_LDFLAGS = $(LT_LDFLAGS) @BUILD_COINHSL_TRUE@includecoindir = $(includedir)/coin/ThirdParty @BUILD_COINHSL_TRUE@pkgconfiglibdir = $(libdir)/pkgconfig @BUILD_COINHSL_TRUE@pkgconfiglib_DATA = coinhsl.pc # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = $(HSL_SHARED_LIB) $(DEFFILE) # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(am__append_7) $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: config.h config_coinhsl.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .f .f90 .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ config_coinhsl.h: stamp-h2 @if test ! -f $@; then \ rm -f stamp-h2; \ $(MAKE) stamp-h2; \ else :; fi stamp-h2: $(srcdir)/config_coinhsl.h.in $(top_builddir)/config.status @rm -f stamp-h2 cd $(top_builddir) && $(SHELL) ./config.status config_coinhsl.h distclean-hdr: -rm -f config.h stamp-h1 config_coinhsl.h stamp-h2 coinhsl.pc: $(top_builddir)/config.status $(srcdir)/coinhsl.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinhsl-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinhsl-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinhsl.la: $(libcoinhsl_la_OBJECTS) $(libcoinhsl_la_DEPENDENCIES) $(F77LINK) $(am_libcoinhsl_la_rpath) $(libcoinhsl_la_LDFLAGS) $(libcoinhsl_la_OBJECTS) $(libcoinhsl_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< .f90.o: $(FCCOMPILE) -c -o $@ $< .f90.obj: $(FCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f90.lo: $(LTFCCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in config_coinhsl.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_coinhsl.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in config_coinhsl.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_coinhsl.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) config.h config_coinhsl.h installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @BUILD_COINHSL_FALSE@uninstall-local: @BUILD_COINHSL_FALSE@install-exec-local: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA install-exec-am: install-exec-local install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-local uninstall-pkgconfiglibDATA .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-exec-local install-info \ install-info-am install-libLTLIBRARIES install-man \ install-pkgconfiglibDATA install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-pkgconfiglibDATA # dependencies @BUILD_COINHSL_TRUE@hsl_ma77d.lo: hsl_ma77d.deps90.lo ############################################################################# # Generating a shared library for delay loading @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@$(HSL_SHARED_LIB): $(thirdpartylib_LTLIBRARIES) $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla=; \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ for i in $(nodist_libcoinhsl_la_SOURCES); do \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ case $$i in \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ *.f) \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ obj=`echo $$i| sed -e 's|\(.*\).[cf]|.libs/\1.$(OBJEXT)|g'` ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ if test -r $$obj; then \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla="$$bla $$obj" ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ else \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla="$$bla `echo $$i| sed -e 's|\(.*\).[cf]|\1.$(OBJEXT)|g'`" ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ fi ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ ;; \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ esac ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ done ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ $(F77_SHARED_CMD) $$bla -o $(HSL_SHARED_LIB) $(F77_DLL_LINKFLAGS) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@$(DEFFILE): config.status @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo 'LIBRARY LIBHSL' > $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo 'EXPORTS' >> $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ for i in $(EXPORT_SYMBOLS); do \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo " $$i" >> $(DEFFILE); \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ done @BUILD_COINHSL_TRUE@install-exec-local: $(HSL_SHARED_LIB) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ test -z "$(DESTDIR)$(libdir)/coin/ThirdParty" || $(mkdir_p) "$(DESTDIR)$(libdir)/coin/ThirdParty" @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ $(libLTLIBRARIES_INSTALL) $(HSL_SHARED_LIB) "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" @BUILD_COINHSL_TRUE@ $(install_sh_DATA) config_coinhsl.h $(DESTDIR)$(includecoindir)/CoinHslConfig.h @BUILD_COINHSL_TRUE@uninstall-local: @BUILD_COINHSL_TRUE@ rm -f "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" @BUILD_COINHSL_TRUE@ rm -f $(DESTDIR)$(includecoindir)/CoinHslConfig.h test: @echo "No test available for HSL." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/HSLold/ltmain.sh0000755000076600007660000057753010762032301016426 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/HSLold/missing0000755000076600007660000002540610762032301016170 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSLold/config_coinhsl_default.h0000644000076600007660000000167511577403724021454 0ustar coincoin /***************************************************************************/ /* HERE DEFINE THE PROJECT SPECIFIC PUBLIC MACROS */ /* These are only in effect in a setting that doesn't use configure */ /***************************************************************************/ /* Version number of project */ #define COINHSL_VERSION "trunk" /* Major Version number of project */ #define COINHSL_VERSION_MAJOR 9999 /* Minor Version number of project */ #define COINHSL_VERSION_MINOR 9999 /* Release Version number of project */ #define COINHSL_VERSION_RELEASE 9999 /* Define to 1 if MA27 is available */ #define COINHSL_HAS_MA27 1 /* Define to 1 if MA28 is available */ /* #undef COINHSL_HAS_MA28 */ /* Define to 1 if MA57 is available */ /* #undef COINHSL_HAS_MA57 */ /* Define to 1 if MA77 is available */ /* #undef COINHSL_HAS_MA77 */ /* Define to 1 if MC19 is available */ #define COINHSL_HAS_MC19 1 Ipopt-3.11.4/ThirdParty/HSLold/configure0000755000076600007660000335610312214334712016511 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyHSL 1.3.6. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2006, 2009 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyHSL' PACKAGE_TARNAME='thirdpartyhsl' PACKAGE_VERSION='1.3.6' PACKAGE_STRING='ThirdPartyHSL 1.3.6' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="configure.ac" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion COINHSL_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED FLIBS EGREP FC FCFLAGS ac_ct_FC LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS COIN_HAS_MA27_TRUE COIN_HAS_MA27_FALSE METIS_LIBS METIS_CFLAGS METIS_DATA METIS_DEPENDENCIES METIS_LIBS_INSTALLED METIS_CFLAGS_INSTALLED METIS_DATA_INSTALLED HSL_CFLAGS HSL_LIBS HSL_PCLIBS HSL_PCREQUIRES HSL_DEPENDENCIES HSL_CFLAGS_INSTALLED HSL_LIBS_INSTALLED COIN_HAS_METIS_TRUE COIN_HAS_METIS_FALSE COIN_HAS_MA57_TRUE COIN_HAS_MA57_FALSE BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE COIN_HAS_MC19_TRUE COIN_HAS_MC19_FALSE COIN_HAS_MA28_TRUE COIN_HAS_MA28_FALSE COIN_HAS_MA77_TRUE COIN_HAS_MA77_FALSE F77_SHARED_CMD F77_DLL_LINKFLAGS HSL_SHARED_LIB EXPORT_SYMBOLS DEFFILE INSTALL_LOADABLE_LIBRARY_TRUE INSTALL_LOADABLE_LIBRARY_FALSE NEED_DEFFILE_TRUE NEED_DEFFILE_FALSE EXTRA_SHARED_COMMAND_TRUE EXTRA_SHARED_COMMAND_FALSE BUILD_COINHSL_TRUE BUILD_COINHSL_FALSE LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_FC_set=${FC+set} ac_env_FC_value=$FC ac_cv_env_FC_set=${FC+set} ac_cv_env_FC_value=$FC ac_env_FCFLAGS_set=${FCFLAGS+set} ac_env_FCFLAGS_value=$FCFLAGS ac_cv_env_FCFLAGS_set=${FCFLAGS+set} ac_cv_env_FCFLAGS_value=$FCFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyHSL 1.3.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyHSL 1.3.6:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-loadable-library compile stand-alone shared library for delayed loading --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-hsl compile project HSL with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pkg-config disable use of pkg-config (if available) --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-interpackage-dependencies disables deduction of Makefile dependencies from package linker flags Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-hsl-verbosity specify the debug verbosity level for project HSL --with-hsl-checklevel specify the sanity check level for project HSL --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-metis-lib linker flags for using package Metis --with-metis-incdir directory with header files for using package Metis --with-metis-datadir directory with data files for using package Metis --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-blas-lib linker flags for using package Blas --with-blas-incdir directory with header files for using package Blas --with-blas-datadir directory with data files for using package Blas Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler PKG_CONFIG path to pkg-config utility FC Fortran compiler command FCFLAGS Fortran compiler flags CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyHSL configure 1.3.6 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2006, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyHSL $as_me 1.3.6, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Here we don't know yet which files are actually provided... # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=COINHSL # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then COINHSL_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define COINHSL_SVN_REV $COINHSL_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=4:6:3 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # turn off warnings and pedantic mode since they could make trouble on some platforms, # and we couldn't fix them anyway coin_skip_warn_fflags=yes # provide flag to allow compilation of a stand-alone shared library # Check whether --enable-loadable-library or --disable-loadable-library was given. if test "${enable_loadable_library+set}" = set; then enableval="$enable_loadable_library" fi; # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-hsl or --disable-debug-hsl was given. if test "${enable_debug_hsl+set}" = set; then enableval="$enable_debug_hsl" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-hsl" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-hsl" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([HSL], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-hsl-verbosity or --without-hsl-verbosity was given. if test "${with_hsl_verbosity+set}" = set; then withval="$with_hsl_verbosity" if test "$withval" = yes; then withval=1 fi coin_hsl_verbosity=$withval else coin_hsl_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_HSL_VERBOSITY $coin_hsl_verbosity _ACEOF # Check whether --with-hsl-checklevel or --without-hsl-checklevel was given. if test "${with_hsl_checklevel+set}" = set; then withval="$with_hsl_checklevel" if test "$withval" = yes; then withval=1 fi coin_hsl_checklevel=$withval else coin_hsl_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_HSL_CHECKLEVEL $coin_hsl_checklevel _ACEOF # m4_ifvaln([HSL], # Get the name of the C compiler (for a dummy program) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the Fortran compiler and appropriate compiler options case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:3502:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Check if pkg-config is available (to setup addlibs file) # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Get the linker flags (FLIBS) that are required for linking against this blas library # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:4281: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:4359: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Add FLIBS to HSL_PCLIBS, so that they get into the .pc files HSL_PCLIBS="$HSL_PCLIBS $FLIBS" # Need egrep later on echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep # Also set up the FC compiler variable, required to compile .f90 # files. We use the same compile and flags as F77 and FFLAGS, unless # the user has set FC and FCFLAGS explicitly. if test "$FC" = ""; then FC="$F77" fi if test "$FCFLAGS" = ""; then FCFLAGS="$FFLAGS" fi ac_ext=${FC_SRCEXT-f} ac_compile='$FC -c $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in f95 fort xlf95 ifc efc pgf95 lf95 gfortran f90 xlf90 pgf90 epcf90 g77 f77 xlf frt pgf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then echo "$as_me:$LINENO: result: $FC" >&5 echo "${ECHO_T}$FC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in f95 fort xlf95 ifc efc pgf95 lf95 gfortran f90 xlf90 pgf90 epcf90 g77 f77 xlf frt pgf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_FC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 echo "${ECHO_T}$ac_ct_FC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_FC" && break done FC=$ac_ct_FC fi # Provide some information about the compiler. echo "$as_me:5237:" \ "checking for Fortran compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran compiler... $ECHO_C" >&6 if test "${ac_cv_fc_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_fc_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_fc_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 echo $ECHO_N "checking whether $FC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_fc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_fc_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_fc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 echo "${ECHO_T}$ac_cv_prog_fc_g" >&6 if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Initialize autotools if test x$enable_loadable_library = xyes; then flag=force_shared fi { # START coin_disable_shared=no # Test if force_shared has been set if test "x$flag" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartyhsl' VERSION='1.3.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7021 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9498: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9502: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9766: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9770: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9870: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9874: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14747: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14751: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14851: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14855: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16421: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16425: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16525: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16529: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18732: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18736: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19000: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19004: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19104: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19108: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } ############################################################################# # Find out which files are available # ############################################################################# echo "$as_me:$LINENO: checking whether we can compile Fortran 90 code" >&5 echo $ECHO_N "checking whether we can compile Fortran 90 code... $ECHO_C" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu cat >conftest.$ac_ext <<_ACEOF MODULE BLA DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB END MODULE BLA _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then have_f90=yes ; rm -f bla.mod else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_f90=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $have_f90" >&5 echo "${ECHO_T}$have_f90" >&6 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu coin_has_something=no if test -r $srcdir/ma27ad.f; then hsl_files="$hsl_files ma27ad.f" cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA27 1 _ACEOF coin_has_something=yes coin_has_ma27ad=yes : else coin_has_ma27ad=no : fi if test $coin_has_ma27ad = yes; then COIN_HAS_MA27_TRUE= COIN_HAS_MA27_FALSE='#' else COIN_HAS_MA27_TRUE='#' COIN_HAS_MA27_FALSE= fi if test $coin_has_ma27ad = yes; then echo "$as_me:$LINENO: checking whether MA27 is threadsafe" >&5 echo $ECHO_N "checking whether MA27 is threadsafe... $ECHO_C" >&6 if $EGREP MA27UD $srcdir/ma27ad.f >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: Please obtain the threadsafe (newer) version of MA27" >&5 echo "$as_me: error: Please obtain the threadsafe (newer) version of MA27" >&2;} { (exit 1); exit 1; }; } fi fi echo "$as_me:$LINENO: checking for COIN-OR package Metis" >&5 echo $ECHO_N "checking for COIN-OR package Metis... $ECHO_C" >&6 coin_has_metis=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Metis"; then coin_has_metis=skipping fi done fi if test "$coin_has_metis" != skipping; then # Check whether --with-m4_tolower(Metis) or --without-m4_tolower(Metis) was given. if test "${with_metis+set}" = set; then withval="$with_metis" if test "$withval" = no ; then coin_has_metis=skipping fi fi; fi METIS_LIBS= METIS_CFLAGS= METIS_DATA= METIS_DEPENDENCIES= METIS_PCLIBS= METIS_PCREQUIRES= METIS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-lib or --without-m4_tolower(Metis)-lib was given. if test "${with_metis_lib+set}" = set; then withval="$with_metis_lib" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_LIBS="$withval" METIS_PCLIBS="$withval" HSL_PCLIBS="$withval $HSL_PCLIBS" HSL_LIBS="$withval $HSL_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_LIBS_INSTALLED="$withval" HSL_LIBS_INSTALLED="$withval $HSL_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-incdir or --without-m4_tolower(Metis)-incdir was given. if test "${with_metis_incdir+set}" = set; then withval="$with_metis_incdir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_CFLAGS="-I`${CYGPATH_W} $withval`" HSL_CFLAGS="-I`${CYGPATH_W} $withval` $HSL_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_CFLAGS_INSTALLED="$METIS_CFLAGS" HSL_CFLAGS_INSTALLED="$METIS_CFLAGS $HSL_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-datadir or --without-m4_tolower(Metis)-datadir was given. if test "${with_metis_datadir+set}" = set; then withval="$with_metis_datadir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_metis = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinmetis"; then METIS_VERSIONS=`$PKG_CONFIG --modversion "coinmetis" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinmetis" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$cflags" METIS_LIBS=`$PKG_CONFIG --libs "coinmetis" 2>/dev/null` METIS_DATA=`$PKG_CONFIG --variable=datadir "coinmetis" 2>/dev/null` coin_has_metis=yes echo "$as_me:$LINENO: result: yes: $METIS_VERSIONS" >&5 echo "${ECHO_T}yes: $METIS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi METIS_PCREQUIRES="coinmetis" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in HSL HSL_PCREQUIRES="coinmetis $HSL_PCREQUIRES" HSL_CFLAGS="$METIS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$METIS_LIBS $HSL_LIBS" else METIS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinmetis"` coin_has_metis=notGiven echo "$as_me:$LINENO: result: not given: $METIS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $METIS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Metis without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Metis without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Metis (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Metis (fallback)... $ECHO_C" >&6 coin_has_metis=notGiven METIS_LIBS= METIS_LIBS_INSTALLED= METIS_CFLAGS= METIS_CFLAGS_INSTALLED= METIS_DATA= METIS_DATA_INSTALLED= METIS_PCLIBS= METIS_PCREQUIRES= # initial list of dependencies is "coinmetis", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinmetis" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$METIS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` METIS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$METIS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi METIS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$projcflags $METIS_CFLAGS" # set LIBS variable METIS_LIBS="$projlibs $METIS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS_INSTALLED="$projcflags $METIS_CFLAGS_INSTALLED" # set LIBS variable METIS_LIBS_INSTALLED="$projlibs $METIS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_metis=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` METIS_LIBS_INSTALLED=`echo " $METIS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi METIS_PCREQUIRES="coinmetis" HSL_PCREQUIRES="coinmetis $HSL_PCREQUIRES" HSL_CFLAGS="$METIS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$METIS_LIBS $HSL_LIBS" HSL_CFLAGS_INSTALLED="$METIS_CFLAGS_INSTALLED $HSL_CFLAGS_INSTALLED" HSL_LIBS_INSTALLED="$METIS_LIBS_INSTALLED $HSL_LIBS_INSTALLED" fi if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_metis" >&5 echo "${ECHO_T}$coin_has_metis" >&6 fi if test $coin_has_metis != skipping && test $coin_has_metis != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) METIS_DEPENDENCIES=`echo " $METIS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` HSL_DEPENDENCIES=`echo " $HSL_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$METIS_CFLAGS" ; then { echo "$as_me:$LINENO: Metis CFLAGS are $METIS_CFLAGS" >&5 echo "$as_me: Metis CFLAGS are $METIS_CFLAGS" >&6;} fi if test -n "$METIS_LIBS" ; then { echo "$as_me:$LINENO: Metis LIBS are $METIS_LIBS" >&5 echo "$as_me: Metis LIBS are $METIS_LIBS" >&6;} fi if test -n "$METIS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&5 echo "$as_me: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&6;} fi if test -n "$METIS_DATA" ; then { echo "$as_me:$LINENO: Metis DATA is $METIS_DATA" >&5 echo "$as_me: Metis DATA is $METIS_DATA" >&6;} fi if test -n "$METIS_PCLIBS" ; then { echo "$as_me:$LINENO: Metis PCLIBS are $METIS_PCLIBS" >&5 echo "$as_me: Metis PCLIBS are $METIS_PCLIBS" >&6;} fi if test -n "$METIS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Metis PCREQUIRES are $METIS_PCREQUIRES" >&5 echo "$as_me: Metis PCREQUIRES are $METIS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: HSL CFLAGS are $HSL_CFLAGS" >&5 echo "$as_me: HSL CFLAGS are $HSL_CFLAGS" >&6;} { echo "$as_me:$LINENO: HSL LIBS are $HSL_LIBS" >&5 echo "$as_me: HSL LIBS are $HSL_LIBS" >&6;} { echo "$as_me:$LINENO: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&5 echo "$as_me: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi if test $coin_has_metis = yes ; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_METIS 1 _ACEOF fi if test -r $srcdir/ma57ad.f; then hsl_files="$hsl_files ma57ad.f" cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA57 1 _ACEOF coin_has_something=yes coin_has_ma57ad=yes : else coin_has_ma57ad=no : fi if test $coin_has_ma57ad = yes; then COIN_HAS_MA57_TRUE= COIN_HAS_MA57_FALSE='#' else COIN_HAS_MA57_TRUE='#' COIN_HAS_MA57_FALSE= fi if test $coin_has_ma57ad = yes; then if test $coin_has_metis != yes ; then { { echo "$as_me:$LINENO: error: MA57 requires METIS, which is not found." >&5 echo "$as_me: error: MA57 requires METIS, which is not found." >&2;} { (exit 1); exit 1; }; } fi # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" use_blas="$withval" else use_blas= fi; # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference # Check whether --with-blas-lib or --without-blas-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" use_blas=BUILD fi; # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 coin_has_blas=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas=skipping fi done fi if test "$coin_has_blas" != skipping; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas=skipping fi fi; fi BLAS_LIBS= BLAS_CFLAGS= BLAS_DATA= BLAS_DEPENDENCIES= BLAS_PCLIBS= BLAS_PCREQUIRES= BLAS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_LIBS="$withval" BLAS_PCLIBS="$withval" HSL_PCLIBS="$withval $HSL_PCLIBS" HSL_LIBS="$withval $HSL_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_LIBS_INSTALLED="$withval" HSL_LIBS_INSTALLED="$withval $HSL_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" HSL_CFLAGS="-I`${CYGPATH_W} $withval` $HSL_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" HSL_CFLAGS_INSTALLED="$BLAS_CFLAGS $HSL_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_blas = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinblas"; then BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$cflags" BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` coin_has_blas=yes echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi BLAS_PCREQUIRES="coinblas" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in HSL HSL_PCREQUIRES="coinblas $HSL_PCREQUIRES" HSL_CFLAGS="$BLAS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" else BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` coin_has_blas=notGiven echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 coin_has_blas=notGiven BLAS_LIBS= BLAS_LIBS_INSTALLED= BLAS_CFLAGS= BLAS_CFLAGS_INSTALLED= BLAS_DATA= BLAS_DATA_INSTALLED= BLAS_PCLIBS= BLAS_PCREQUIRES= # initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinblas" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$BLAS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` BLAS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$BLAS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi BLAS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" # set LIBS variable BLAS_LIBS="$projlibs $BLAS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" # set LIBS variable BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_blas=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi BLAS_PCREQUIRES="coinblas" HSL_PCREQUIRES="coinblas $HSL_PCREQUIRES" HSL_CFLAGS="$BLAS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" HSL_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $HSL_CFLAGS_INSTALLED" HSL_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $HSL_LIBS_INSTALLED" fi if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 fi if test $coin_has_blas != skipping && test $coin_has_blas != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` HSL_DEPENDENCIES=`echo " $HSL_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$BLAS_CFLAGS" ; then { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} fi if test -n "$BLAS_LIBS" ; then { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} fi if test -n "$BLAS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} fi if test -n "$BLAS_DATA" ; then { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} fi if test -n "$BLAS_PCLIBS" ; then { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} fi if test -n "$BLAS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: HSL CFLAGS are $HSL_CFLAGS" >&5 echo "$as_me: HSL CFLAGS are $HSL_CFLAGS" >&6;} { echo "$as_me:$LINENO: HSL LIBS are $HSL_LIBS" >&5 echo "$as_me: HSL LIBS are $HSL_LIBS" >&6;} { echo "$as_me:$LINENO: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&5 echo "$as_me: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes if test 0 = 0; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= HSL_PCLIBS="$BLAS_LIBS $HSL_PCLIBS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" HSL_LIBS_INSTALLED="$BLAS_LIBS $HSL_LIBS_INSTALLED" else coin_has_blas=no if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi if test $coin_has_blas != yes ; then { { echo "$as_me:$LINENO: error: MA57 requires BLAS, which is not found." >&5 echo "$as_me: error: MA57 requires BLAS, which is not found." >&2;} { (exit 1); exit 1; }; } fi else if test 0 = 1; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi if test -r $srcdir/mc19ad.f; then hsl_files="$hsl_files mc19ad.f" cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MC19 1 _ACEOF coin_has_something=yes coin_has_mc19ad=yes : else coin_has_mc19ad=no : fi if test $coin_has_mc19ad = yes; then COIN_HAS_MC19_TRUE= COIN_HAS_MC19_FALSE='#' else COIN_HAS_MC19_TRUE='#' COIN_HAS_MC19_FALSE= fi if test -r $srcdir/ma28ad.f; then hsl_files="$hsl_files ma28ad.f" cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA28 1 _ACEOF coin_has_something=yes coin_has_ma28ad=yes : else coin_has_ma28ad=no : fi if test $coin_has_ma28ad = yes; then COIN_HAS_MA28_TRUE= COIN_HAS_MA28_FALSE='#' else COIN_HAS_MA28_TRUE='#' COIN_HAS_MA28_FALSE= fi if test $have_f90 = yes; then if test -r $srcdir/hsl_ma77d.f90; then hsl_files="$hsl_files hsl_ma77d.f" cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA77 1 _ACEOF coin_has_something=yes coin_has_hsl_ma77d=yes : else coin_has_hsl_ma77d=no : fi else coin_has_hsl_ma77d=no fi if test $coin_has_hsl_ma77d = yes; then COIN_HAS_MA77_TRUE= COIN_HAS_MA77_FALSE='#' else COIN_HAS_MA77_TRUE='#' COIN_HAS_MA77_FALSE= fi ############################################################################# # Setup build of loadable library # ############################################################################# HSL_SHARED_LIB= if test x$enable_loadable_library = xyes; then case $build in *-cygwin* | *-mingw*) HSL_SHARED_LIB=libhsl.dll F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' case $F77 in compile_f2c*) EXPORT_SYMBOLS= if test $coin_has_ma27ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma27id_ ma27ad_ ma27bd_ ma27cd_" fi if test $coin_has_ma28ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma28ad_" fi if test $coin_has_ma57ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma57id_ ma57ad_ ma57bd_ ma57cd_ ma57ed_" fi if test $coin_has_mc19ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc19ad_" fi F77_SHARED_CMD='$(F77) -shared $(FFLAGS) -def:$(DEFFILE)' DEFFILE='Export.def' ;; ifort* | IFORT*) EXPORT_SYMBOLS= if test $coin_has_ma27ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA27ID MA27AD MA27BD MA27CD" fi if test $coin_has_ma28ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA28AD" fi if test $coin_has_ma57ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA57ID MA57AD MA57BD MA57CD MA57ED" fi if test $coin_has_mc19ad = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC19AD" fi DEFFILE='Export.def' F77_SHARED_CMD='$(F77) $(FFLAGS)' F77_DLL_LINKFLAGS='-link -dll -def:$(DEFFILE)' ;; *) F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' ;; esac ;; esac fi if test x$flag = xforce_shared; then INSTALL_LOADABLE_LIBRARY_TRUE= INSTALL_LOADABLE_LIBRARY_FALSE='#' else INSTALL_LOADABLE_LIBRARY_TRUE='#' INSTALL_LOADABLE_LIBRARY_FALSE= fi if test ! x"$DEFFILE" = x; then NEED_DEFFILE_TRUE= NEED_DEFFILE_FALSE='#' else NEED_DEFFILE_TRUE='#' NEED_DEFFILE_FALSE= fi if test ! x"$F77_SHARED_CMD" = x; then EXTRA_SHARED_COMMAND_TRUE= EXTRA_SHARED_COMMAND_FALSE='#' else EXTRA_SHARED_COMMAND_TRUE='#' EXTRA_SHARED_COMMAND_FALSE= fi #AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test "$F77_SHARED_CMD" = x]) ############################################################################# # Write the output # ############################################################################# ac_config_files="$ac_config_files Makefile" # we build the library and setup the .pc files only if there is at least one source code # if there is no source code, then .pc files should not be setup, so for others this is as if we do not exist if test $coin_has_something = yes ; then ac_config_files="$ac_config_files coinhsl.pc coinhsl-uninstalled.pc" ac_config_headers="$ac_config_headers config.h config_coinhsl.h" else # in case something is left over from a previous build rm -f coinhsl.pc coinhsl-uninstalled.pc fi if test $coin_has_something = yes; then BUILD_COINHSL_TRUE= BUILD_COINHSL_FALSE='#' else BUILD_COINHSL_TRUE='#' BUILD_COINHSL_FALSE= fi echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA27_TRUE}" && test -z "${COIN_HAS_MA27_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA27\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA27\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA57_TRUE}" && test -z "${COIN_HAS_MA57_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA57\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA57\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MC19_TRUE}" && test -z "${COIN_HAS_MC19_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MC19\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MC19\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA28_TRUE}" && test -z "${COIN_HAS_MA28_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA77_TRUE}" && test -z "${COIN_HAS_MA77_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA77\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA77\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${INSTALL_LOADABLE_LIBRARY_TRUE}" && test -z "${INSTALL_LOADABLE_LIBRARY_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"INSTALL_LOADABLE_LIBRARY\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"INSTALL_LOADABLE_LIBRARY\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${NEED_DEFFILE_TRUE}" && test -z "${NEED_DEFFILE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"NEED_DEFFILE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"NEED_DEFFILE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${EXTRA_SHARED_COMMAND_TRUE}" && test -z "${EXTRA_SHARED_COMMAND_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"EXTRA_SHARED_COMMAND\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"EXTRA_SHARED_COMMAND\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_COINHSL_TRUE}" && test -z "${BUILD_COINHSL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"BUILD_COINHSL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"BUILD_COINHSL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyHSL $as_me 1.3.6, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyHSL config.status 1.3.6 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinhsl.pc" ) CONFIG_FILES="$CONFIG_FILES coinhsl.pc" ;; "coinhsl-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinhsl-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "config_coinhsl.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config_coinhsl.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@COINHSL_SVN_REV@,$COINHSL_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@FLIBS@,$FLIBS,;t t s,@EGREP@,$EGREP,;t t s,@FC@,$FC,;t t s,@FCFLAGS@,$FCFLAGS,;t t s,@ac_ct_FC@,$ac_ct_FC,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@COIN_HAS_MA27_TRUE@,$COIN_HAS_MA27_TRUE,;t t s,@COIN_HAS_MA27_FALSE@,$COIN_HAS_MA27_FALSE,;t t s,@METIS_LIBS@,$METIS_LIBS,;t t s,@METIS_CFLAGS@,$METIS_CFLAGS,;t t s,@METIS_DATA@,$METIS_DATA,;t t s,@METIS_DEPENDENCIES@,$METIS_DEPENDENCIES,;t t s,@METIS_LIBS_INSTALLED@,$METIS_LIBS_INSTALLED,;t t s,@METIS_CFLAGS_INSTALLED@,$METIS_CFLAGS_INSTALLED,;t t s,@METIS_DATA_INSTALLED@,$METIS_DATA_INSTALLED,;t t s,@HSL_CFLAGS@,$HSL_CFLAGS,;t t s,@HSL_LIBS@,$HSL_LIBS,;t t s,@HSL_PCLIBS@,$HSL_PCLIBS,;t t s,@HSL_PCREQUIRES@,$HSL_PCREQUIRES,;t t s,@HSL_DEPENDENCIES@,$HSL_DEPENDENCIES,;t t s,@HSL_CFLAGS_INSTALLED@,$HSL_CFLAGS_INSTALLED,;t t s,@HSL_LIBS_INSTALLED@,$HSL_LIBS_INSTALLED,;t t s,@COIN_HAS_METIS_TRUE@,$COIN_HAS_METIS_TRUE,;t t s,@COIN_HAS_METIS_FALSE@,$COIN_HAS_METIS_FALSE,;t t s,@COIN_HAS_MA57_TRUE@,$COIN_HAS_MA57_TRUE,;t t s,@COIN_HAS_MA57_FALSE@,$COIN_HAS_MA57_FALSE,;t t s,@BLAS_LIBS@,$BLAS_LIBS,;t t s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t s,@BLAS_DATA@,$BLAS_DATA,;t t s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t s,@COIN_HAS_MC19_TRUE@,$COIN_HAS_MC19_TRUE,;t t s,@COIN_HAS_MC19_FALSE@,$COIN_HAS_MC19_FALSE,;t t s,@COIN_HAS_MA28_TRUE@,$COIN_HAS_MA28_TRUE,;t t s,@COIN_HAS_MA28_FALSE@,$COIN_HAS_MA28_FALSE,;t t s,@COIN_HAS_MA77_TRUE@,$COIN_HAS_MA77_TRUE,;t t s,@COIN_HAS_MA77_FALSE@,$COIN_HAS_MA77_FALSE,;t t s,@F77_SHARED_CMD@,$F77_SHARED_CMD,;t t s,@F77_DLL_LINKFLAGS@,$F77_DLL_LINKFLAGS,;t t s,@HSL_SHARED_LIB@,$HSL_SHARED_LIB,;t t s,@EXPORT_SYMBOLS@,$EXPORT_SYMBOLS,;t t s,@DEFFILE@,$DEFFILE,;t t s,@INSTALL_LOADABLE_LIBRARY_TRUE@,$INSTALL_LOADABLE_LIBRARY_TRUE,;t t s,@INSTALL_LOADABLE_LIBRARY_FALSE@,$INSTALL_LOADABLE_LIBRARY_FALSE,;t t s,@NEED_DEFFILE_TRUE@,$NEED_DEFFILE_TRUE,;t t s,@NEED_DEFFILE_FALSE@,$NEED_DEFFILE_FALSE,;t t s,@EXTRA_SHARED_COMMAND_TRUE@,$EXTRA_SHARED_COMMAND_TRUE,;t t s,@EXTRA_SHARED_COMMAND_FALSE@,$EXTRA_SHARED_COMMAND_FALSE,;t t s,@BUILD_COINHSL_TRUE@,$BUILD_COINHSL_TRUE,;t t s,@BUILD_COINHSL_FALSE@,$BUILD_COINHSL_FALSE,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/HSLold/coinhsl.pc.in0000644000076600007660000000047211577403724017175 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin/ThirdParty Name: HSL Description: Harwell Subroutines Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lcoinhsl @HSL_PCLIBS@ Requires: @HSL_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/HSLold/config.guess0000755000076600007660000012706310762032301017113 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/HSLold/config.h.in0000644000076600007660000000557511764375016016641 0ustar coincoin/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if MA27 is available. */ #undef COINHSL_HAS_MA27 /* Define to 1 if MA28 is available. */ #undef COINHSL_HAS_MA28 /* Define to 1 if MA57 is available. */ #undef COINHSL_HAS_MA57 /* Define to 1 if MA77 is available. */ #undef COINHSL_HAS_MA77 /* Define to 1 if MC19 is available. */ #undef COINHSL_HAS_MC19 /* Define to 1 if METIS is available */ #undef COINHSL_HAS_METIS /* SVN revision number of project */ #undef COINHSL_SVN_REV /* Version number of project */ #undef COINHSL_VERSION /* Major Version number of project */ #undef COINHSL_VERSION_MAJOR /* Minor Version number of project */ #undef COINHSL_VERSION_MINOR /* Release Version number of project */ #undef COINHSL_VERSION_RELEASE /* If defined, the BLAS Library is available. */ #undef COIN_HAS_BLAS /* Define to 1 if the Metis package is available */ #undef COIN_HAS_METIS /* Define to the debug sanity check level (0 is no test) */ #undef COIN_HSL_CHECKLEVEL /* Define to the debug verbosity level (0 is no output) */ #undef COIN_HSL_VERBOSITY /* Define to dummy `main' function (if any) required to link to the Fortran libraries. */ #undef F77_DUMMY_MAIN /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ #undef F77_FUNC /* As F77_FUNC, but for C identifiers containing underscores. */ #undef F77_FUNC_ /* Define if F77 and FC dummy `main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION Ipopt-3.11.4/ThirdParty/Lapack/0000755000076600007660000000000012214537473014646 5ustar coincoinIpopt-3.11.4/ThirdParty/Lapack/config.sub0000755000076600007660000007772611405215707016646 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Lapack/INSTALL.LAPACK0000644000076600007660000000307211366055053016627 0ustar coincoinInstallation of LAPACK subroutines within IPOPT. ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** If you are working under Unix/Linux-like system and you have `wget' installed, you can downloaded the required source code for LAPACK by executing the included script `get.Lapack' in this directory. Otherwise, follow those instructions: LAPACK is available at http://www.netlib.org/lapack There you can find precompiled libraries for some operating systems, or obtain the source code (with instructions on how to build it). If you decide to build the LAPACK library according to those instructions, make sure that you tell the configure script where it is (using --with-lapack="-LPATH/TO/LAPACKLIBDIR -llapack" ) Alternatively, if you want to have the necessary LAPACK routines compiled within this distribution, please download the 'lapack-3.2.1.tgz' tarball from http://www.netlib.org/lapack and unpack it in this directory: gunzip lapack-3.2.1.tgz tar xf lapack-3.2.1.tar mv lapack-3.2.1 LAPACK The last step is necessary since the projects expect the source code to be in that directory. If you then run the configure script again, it would automatically detect the sources and prepare the Makefiles so that they will be automaticall compiled. NOTE: The LAPACK source files are expected to be in the subdirectory LAPACK/SRC and LAPACK/INSTALL of this directory. Ipopt-3.11.4/ThirdParty/Lapack/install-sh0000755000076600007660000002202111405215707016641 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Lapack/Makefile.am0000644000076600007660000000631312052746471016705 0ustar coincoin# Copyright (C) 2006, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2640 2012-11-20 18:34:33Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.lapack INSTALL.LAPACK lib_LTLIBRARIES = libcoinlapack.la LAPACK_FILES = \ dbdsqr.f \ dgebal.f \ dgebak.f \ dgebd2.f \ dgebrd.f \ dgeev.f \ dgehd2.f \ dgehrd.f \ dgelq2.f \ dgelqf.f \ dgels.f \ dgeqr2.f \ dgeqrf.f \ dgesvd.f \ dgesv.f \ dgetf2.f \ dgetrf.f \ dgetri.f \ dgetrs.f \ dggbak.f \ dggbal.f \ dgghrd.f \ dggev.f \ dhgeqz.f \ dhseqr.f \ disnan.f \ dlabad.f \ dlabrd.f \ dlacpy.f \ dladiv.f \ dlaebz.f \ dlae2.f \ dlaev2.f \ dlaexc.f \ dlagtf.f \ dlagts.f \ dlag2.f \ dlahqr.f \ dlahr2.f \ dlaisnan.f \ dlaln2.f \ dlamch.f \ dlaneg.f \ dlange.f \ dlanhs.f \ dlanst.f \ dlansy.f \ dlanv2.f \ dlapy2.f \ dlapy3.f \ dlaqr0.f \ dlaqr1.f \ dlaqr2.f \ dlaqr3.f \ dlaqr4.f \ dlaqr5.f \ dlarf.f \ dlarfb.f \ dlarfg.f \ dlarft.f \ dlarfx.f \ dlarnv.f \ dlarra.f \ dlarrb.f \ dlarrc.f \ dlarrd.f \ dlarre.f \ dlarrf.f \ dlarrj.f \ dlarrk.f \ dlarrr.f \ dlarrv.f \ dlartg.f \ dlartv.f \ dlaruv.f \ dlar1v.f \ dlas2.f \ dlascl.f \ dlaset.f \ dlasq1.f \ dlasq2.f \ dlasq3.f \ dlasq4.f \ dlasq5.f \ dlasq6.f \ dlasr.f \ dlasrt.f \ dlaswp.f \ dlassq.f \ dlasv2.f \ dlasyf.f \ dlasy2.f \ dlatrd.f \ dorg2l.f \ dorg2r.f \ dorgbr.f \ dorghr.f \ dorglq.f \ dorgl2.f \ dorgql.f \ dorgqr.f \ dorgtr.f \ dorm2r.f \ dormbr.f \ dormhr.f \ dorml2.f \ dormlq.f \ dormql.f \ dormqr.f \ dormtr.f \ dorm2l.f \ dpotf2.f \ dpotrf.f \ dpotrs.f \ dstebz.f \ dstein.f \ dstemr.f \ dsteqr.f \ dsterf.f \ dsyev.f \ dsyevr.f \ dsyevx.f \ dsytd2.f \ dsytf2.f \ dsytrd.f \ dsytrf.f \ dsytri.f \ dtgevc.f \ dtrevc.f \ dtrexc.f \ dtrti2.f \ dtrtri.f \ dtrtrs.f \ ieeeck.f \ iladlc.f \ iladlr.f \ ilaenv.f \ iparmq.f \ sgetf2.f \ sgetrf.f \ slamch.f \ slaswp.f \ zgetf2.f \ zgetrf.f \ zlacgv.f \ zlacpy.f \ zlaev2.f \ zlaswp.f \ zpotf2.f \ zrot.f \ zsymv.f \ zsyr.f \ zsytri.f libcoinlapack_la_SOURCES = $(LAPACK_FILES) libcoinlapack_la_LDFLAGS = $(LT_LDFLAGS) dlamch.o: dlamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< dlamch.obj: dlamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ `$(CYGPATH_W) '$<'` dlamch.lo: dlamch.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< slamch.o: slamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< slamch.obj: slamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ `$(CYGPATH_W) '$<'` slamch.lo: slamch.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinlapack.pc test: @echo "No test available for Lapack." ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(LAPACK_FILES) $(MAKEOKFILE) include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/Lapack/configure.ac0000644000076600007660000001170512214334702017126 0ustar coincoin# Copyright (C) 2006, 2007 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2925 2013-09-12 12:55:30Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyLapack],[1.4.6],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2006 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(LAPACK/SRC/dlarf.f) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(Lapack,5:6:4) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_fflags=yes # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(Lapack) # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Get the linker flags (FLIBS) that are required for linking against this library AC_COIN_F77_WRAPPERS # Check for Blas AC_COIN_CHECK_PACKAGE_BLAS(LapackLib) if test $coin_has_blas != yes; then AC_MSG_ERROR([Required package BLAS not found.]) fi # FLIBS will be needed to link against this library, so add them to LAPACKLIB_PCLIBS LAPACKLIB_PCLIBS="$LAPACKLIB_PCLIBS $FLIBS" # Take care that optimization is disbled for DLAMCH.F AC_ARG_VAR(DLAMCH_FFLAGS,[Fortran compiler options for DLAMCH.F]) if test "x$DLAMCH_FFLAGS" = x ; then #disable optimiziation for dlamch.f by adding -Od or -O0 at end of FFLAGS (hope to overwrite previous -O? option, if present) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) case $build in *-cygwin* | *-mingw*) DLAMCH_FFLAGS="$FFLAGS -Od" ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac ;; compile_f2c*) case "$CC" in cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) DLAMCH_FFLAGS="$FFLAGS -Od" ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac fi AC_SUBST(DLAMCH_FFLAGS) # Initialize autotools AC_COIN_INIT_AUTO_TOOLS ############################################################################# # Create links to the required source files # ############################################################################# lapack_source_files='dbdsqr.f dgebal.f dgebak.f dgebd2.f dgebrd.f dgeev.f dgehd2.f dgehrd.f dgelq2.f dgelqf.f dgels.f dgeqr2.f dgeqrf.f dgesvd.f dgesv.f dgetf2.f dgetrf.f dgetri.f dgetrs.f dggbak.f dggbal.f dgghrd.f dggev.f dhgeqz.f dhseqr.f disnan.f dlabad.f dlabrd.f dlacpy.f dladiv.f dlaebz.f dlae2.f dlaev2.f dlaexc.f dlagtf.f dlagts.f dlag2.f dlahqr.f dlahr2.f dlaisnan.f dlaln2.f dlaneg.f dlange.f dlanhs.f dlanst.f dlansy.f dlanv2.f dlapy2.f dlapy3.f dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f dlarf.f dlarfb.f dlarfg.f dlarft.f dlarfx.f dlarnv.f dlarra.f dlarrb.f dlarrc.f dlarrd.f dlarre.f dlarrf.f dlarrj.f dlarrk.f dlarrr.f dlarrv.f dlartg.f dlartv.f dlaruv.f dlar1v.f dlas2.f dlascl.f dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f dlasr.f dlasrt.f dlaswp.f dlassq.f dlasv2.f dlasyf.f dlasy2.f dlatrd.f dorg2l.f dorg2r.f dorgbr.f dorghr.f dorglq.f dorgl2.f dorgql.f dorgqr.f dorgtr.f dorm2r.f dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormtr.f dorm2l.f dpotf2.f dpotrf.f dpotrs.f dstebz.f dstein.f dstemr.f dsteqr.f dsterf.f dsyev.f dsyevr.f dsyevx.f dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dtgevc.f dtrevc.f dtrexc.f dtrti2.f dtrtri.f dtrtrs.f ieeeck.f iladlc.f iladlr.f ilaenv.f iparmq.f sgetf2.f sgetrf.f slaswp.f zgetf2.f zgetrf.f zlacgv.f zlacpy.f zlaev2.f zlaswp.f zpotf2.f zrot.f zsymv.f zsyr.f zsytri.f' for file in $lapack_source_files; do AC_CONFIG_LINKS($file:LAPACK/SRC/$file) done lapack_source_files_in_install='dlamch.f slamch.f' for file_in_install in $lapack_source_files_in_install; do AC_CONFIG_LINKS($file_in_install:LAPACK/INSTALL/$file_in_install) done AC_CONFIG_FILES([Makefile coinlapack.pc coinlapack-uninstalled.pc]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/Lapack/depcomp0000755000076600007660000003710011405215707016216 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Lapack/Makefile.in0000644000076600007660000006745012156616405016725 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2006, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinlapack-uninstalled.pc.in \ $(srcdir)/coinlapack.pc.in $(top_srcdir)/configure \ config.guess config.sub depcomp install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_1 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_2 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = coinlapack.pc coinlapack-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinlapack_la_LIBADD = am__objects_1 = dbdsqr.lo dgebal.lo dgebak.lo dgebd2.lo dgebrd.lo \ dgeev.lo dgehd2.lo dgehrd.lo dgelq2.lo dgelqf.lo dgels.lo \ dgeqr2.lo dgeqrf.lo dgesvd.lo dgesv.lo dgetf2.lo dgetrf.lo \ dgetri.lo dgetrs.lo dggbak.lo dggbal.lo dgghrd.lo dggev.lo \ dhgeqz.lo dhseqr.lo disnan.lo dlabad.lo dlabrd.lo dlacpy.lo \ dladiv.lo dlaebz.lo dlae2.lo dlaev2.lo dlaexc.lo dlagtf.lo \ dlagts.lo dlag2.lo dlahqr.lo dlahr2.lo dlaisnan.lo dlaln2.lo \ dlamch.lo dlaneg.lo dlange.lo dlanhs.lo dlanst.lo dlansy.lo \ dlanv2.lo dlapy2.lo dlapy3.lo dlaqr0.lo dlaqr1.lo dlaqr2.lo \ dlaqr3.lo dlaqr4.lo dlaqr5.lo dlarf.lo dlarfb.lo dlarfg.lo \ dlarft.lo dlarfx.lo dlarnv.lo dlarra.lo dlarrb.lo dlarrc.lo \ dlarrd.lo dlarre.lo dlarrf.lo dlarrj.lo dlarrk.lo dlarrr.lo \ dlarrv.lo dlartg.lo dlartv.lo dlaruv.lo dlar1v.lo dlas2.lo \ dlascl.lo dlaset.lo dlasq1.lo dlasq2.lo dlasq3.lo dlasq4.lo \ dlasq5.lo dlasq6.lo dlasr.lo dlasrt.lo dlaswp.lo dlassq.lo \ dlasv2.lo dlasyf.lo dlasy2.lo dlatrd.lo dorg2l.lo dorg2r.lo \ dorgbr.lo dorghr.lo dorglq.lo dorgl2.lo dorgql.lo dorgqr.lo \ dorgtr.lo dorm2r.lo dormbr.lo dormhr.lo dorml2.lo dormlq.lo \ dormql.lo dormqr.lo dormtr.lo dorm2l.lo dpotf2.lo dpotrf.lo \ dpotrs.lo dstebz.lo dstein.lo dstemr.lo dsteqr.lo dsterf.lo \ dsyev.lo dsyevr.lo dsyevx.lo dsytd2.lo dsytf2.lo dsytrd.lo \ dsytrf.lo dsytri.lo dtgevc.lo dtrevc.lo dtrexc.lo dtrti2.lo \ dtrtri.lo dtrtrs.lo ieeeck.lo iladlc.lo iladlr.lo ilaenv.lo \ iparmq.lo sgetf2.lo sgetrf.lo slamch.lo slaswp.lo zgetf2.lo \ zgetrf.lo zlacgv.lo zlacpy.lo zlaev2.lo zlaswp.lo zpotf2.lo \ zrot.lo zsymv.lo zsyr.lo zsytri.lo am_libcoinlapack_la_OBJECTS = $(am__objects_1) libcoinlapack_la_OBJECTS = $(am_libcoinlapack_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinlapack_la_SOURCES) DIST_SOURCES = $(libcoinlapack_la_SOURCES) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLAMCH_FFLAGS = @DLAMCH_FFLAGS@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LAPACKLIB_CFLAGS = @LAPACKLIB_CFLAGS@ LAPACKLIB_CFLAGS_INSTALLED = @LAPACKLIB_CFLAGS_INSTALLED@ LAPACKLIB_DEPENDENCIES = @LAPACKLIB_DEPENDENCIES@ LAPACKLIB_LIBS = @LAPACKLIB_LIBS@ LAPACKLIB_LIBS_INSTALLED = @LAPACKLIB_LIBS_INSTALLED@ LAPACKLIB_PCLIBS = @LAPACKLIB_PCLIBS@ LAPACKLIB_PCREQUIRES = @LAPACKLIB_PCREQUIRES@ LAPACK_SVN_REV = @LAPACK_SVN_REV@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MPICC = @MPICC@ MPIF77 = @MPIF77@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.lapack INSTALL.LAPACK $(am__append_1) lib_LTLIBRARIES = libcoinlapack.la LAPACK_FILES = \ dbdsqr.f \ dgebal.f \ dgebak.f \ dgebd2.f \ dgebrd.f \ dgeev.f \ dgehd2.f \ dgehrd.f \ dgelq2.f \ dgelqf.f \ dgels.f \ dgeqr2.f \ dgeqrf.f \ dgesvd.f \ dgesv.f \ dgetf2.f \ dgetrf.f \ dgetri.f \ dgetrs.f \ dggbak.f \ dggbal.f \ dgghrd.f \ dggev.f \ dhgeqz.f \ dhseqr.f \ disnan.f \ dlabad.f \ dlabrd.f \ dlacpy.f \ dladiv.f \ dlaebz.f \ dlae2.f \ dlaev2.f \ dlaexc.f \ dlagtf.f \ dlagts.f \ dlag2.f \ dlahqr.f \ dlahr2.f \ dlaisnan.f \ dlaln2.f \ dlamch.f \ dlaneg.f \ dlange.f \ dlanhs.f \ dlanst.f \ dlansy.f \ dlanv2.f \ dlapy2.f \ dlapy3.f \ dlaqr0.f \ dlaqr1.f \ dlaqr2.f \ dlaqr3.f \ dlaqr4.f \ dlaqr5.f \ dlarf.f \ dlarfb.f \ dlarfg.f \ dlarft.f \ dlarfx.f \ dlarnv.f \ dlarra.f \ dlarrb.f \ dlarrc.f \ dlarrd.f \ dlarre.f \ dlarrf.f \ dlarrj.f \ dlarrk.f \ dlarrr.f \ dlarrv.f \ dlartg.f \ dlartv.f \ dlaruv.f \ dlar1v.f \ dlas2.f \ dlascl.f \ dlaset.f \ dlasq1.f \ dlasq2.f \ dlasq3.f \ dlasq4.f \ dlasq5.f \ dlasq6.f \ dlasr.f \ dlasrt.f \ dlaswp.f \ dlassq.f \ dlasv2.f \ dlasyf.f \ dlasy2.f \ dlatrd.f \ dorg2l.f \ dorg2r.f \ dorgbr.f \ dorghr.f \ dorglq.f \ dorgl2.f \ dorgql.f \ dorgqr.f \ dorgtr.f \ dorm2r.f \ dormbr.f \ dormhr.f \ dorml2.f \ dormlq.f \ dormql.f \ dormqr.f \ dormtr.f \ dorm2l.f \ dpotf2.f \ dpotrf.f \ dpotrs.f \ dstebz.f \ dstein.f \ dstemr.f \ dsteqr.f \ dsterf.f \ dsyev.f \ dsyevr.f \ dsyevx.f \ dsytd2.f \ dsytf2.f \ dsytrd.f \ dsytrf.f \ dsytri.f \ dtgevc.f \ dtrevc.f \ dtrexc.f \ dtrti2.f \ dtrtri.f \ dtrtrs.f \ ieeeck.f \ iladlc.f \ iladlr.f \ ilaenv.f \ iparmq.f \ sgetf2.f \ sgetrf.f \ slamch.f \ slaswp.f \ zgetf2.f \ zgetrf.f \ zlacgv.f \ zlacpy.f \ zlaev2.f \ zlaswp.f \ zpotf2.f \ zrot.f \ zsymv.f \ zsyr.f \ zsytri.f libcoinlapack_la_SOURCES = $(LAPACK_FILES) libcoinlapack_la_LDFLAGS = $(LT_LDFLAGS) pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinlapack.pc ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(LAPACK_FILES) $(MAKEOKFILE) $(am__append_2) \ $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-am .SUFFIXES: .SUFFIXES: .f .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) coinlapack.pc: $(top_builddir)/config.status $(srcdir)/coinlapack.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinlapack-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinlapack-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinlapack.la: $(libcoinlapack_la_OBJECTS) $(libcoinlapack_la_DEPENDENCIES) $(F77LINK) -rpath $(libdir) $(libcoinlapack_la_LDFLAGS) $(libcoinlapack_la_OBJECTS) $(libcoinlapack_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA dlamch.o: dlamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< dlamch.obj: dlamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ `$(CYGPATH_W) '$<'` dlamch.lo: dlamch.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< slamch.o: slamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< slamch.obj: slamch.f $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ `$(CYGPATH_W) '$<'` slamch.lo: slamch.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(DLAMCH_FFLAGS) -c -o $@ $< test: @echo "No test available for Lapack." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/Lapack/ltmain.sh0000755000076600007660000057753011405215707016504 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/Lapack/get.Lapack0000755000076600007660000000371512213125776016551 0ustar coincoin#!/bin/sh set -e lapack_ver=3.4.2 wgetcmd="wget" wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd="curl -L -k -O" echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi echo " " echo "Running script for downloading the source code for LAPACK" echo " " rm -f lapack-${lapack_ver}.tgz echo "Downloading the source code from projects.coin-or.org..." if ! $wgetcmd https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/src/lapack-${lapack_ver}.tgz ; then echo echo "Failed, try downloading the source code from www.netlib.org..." if ! $wgetcmd http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz ; then echo echo "Failed, try downloading the source code from netlib.sandia.gov..." if ! $wgetcmd http://netlib.sandia.gov/lapack/lapack-${lapack_ver}.tgz then if test "$wgetcmd" = wget ; then echo -n "Failed, try downloading from https://projects.coin-or.org without certificate check? (y/n) " if test "$1" = "-y" ; then doit=y echo y else read -n 1 doit echo fi if test "$doit" = y ; then $wgetcmd --no-check-certificate https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/src/lapack-${lapack_ver}.tgz else exit 1; fi else exit 1; fi fi fi fi echo "Uncompressing the tarball..." gunzip -f lapack-${lapack_ver}.tgz echo "Unpacking the source code..." tar xf lapack-${lapack_ver}.tar lapack-${lapack_ver}/SRC lapack-${lapack_ver}/INSTALL/dlamch.f lapack-${lapack_ver}/INSTALL/slamch.f rm -rf LAPACK mv lapack-${lapack_ver} LAPACK echo "Deleting the tar file..." rm lapack-${lapack_ver}.tar echo " " echo "Done downloading the source code for LAPACK." echo " " Ipopt-3.11.4/ThirdParty/Lapack/missing0000755000076600007660000002540611405215707016246 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Lapack/coinlapack.pc.in0000644000076600007660000000041711514312431017670 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ Name: Lapack Description: Linear algebra package URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcoinlapack @LAPACKLIB_PCLIBS@ Cflags: Requires: @LAPACKLIB_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/Lapack/coinlapack-uninstalled.pc.in0000644000076600007660000000037411514312431022212 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: Lapack Description: Linear algebra package URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: ${libdir}/libcoinlapack.la @LAPACKLIB_PCLIBS@ Cflags: Requires: @LAPACKLIB_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/Lapack/configure0000755000076600007660000323454412214334702016562 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyLapack 1.4.6. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2006 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyLapack' PACKAGE_TARNAME='thirdpartylapack' PACKAGE_VERSION='1.4.6' PACKAGE_STRING='ThirdPartyLapack 1.4.6' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="LAPACK/SRC/dlarf.f" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion LAPACK_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 FLIBS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED LAPACKLIB_CFLAGS LAPACKLIB_LIBS LAPACKLIB_PCLIBS LAPACKLIB_PCREQUIRES LAPACKLIB_DEPENDENCIES LAPACKLIB_CFLAGS_INSTALLED LAPACKLIB_LIBS_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE DLAMCH_FFLAGS EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_DLAMCH_FFLAGS_set=${DLAMCH_FFLAGS+set} ac_env_DLAMCH_FFLAGS_value=$DLAMCH_FFLAGS ac_cv_env_DLAMCH_FFLAGS_set=${DLAMCH_FFLAGS+set} ac_cv_env_DLAMCH_FFLAGS_value=$DLAMCH_FFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyLapack 1.4.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyLapack 1.4.6:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-lapack compile project Lapack with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pkg-config disable use of pkg-config (if available) --disable-interpackage-dependencies disables deduction of Makefile dependencies from package linker flags --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-lapack-verbosity specify the debug verbosity level for project Lapack --with-lapack-checklevel specify the sanity check level for project Lapack --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-blas-lib linker flags for using package Blas --with-blas-incdir directory with header files for using package Blas --with-blas-datadir directory with data files for using package Blas --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler PKG_CONFIG path to pkg-config utility DLAMCH_FFLAGS Fortran compiler options for DLAMCH.F CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyLapack configure 1.4.6 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2006 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyLapack $as_me 1.4.6, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define LAPACK_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define LAPACK_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define LAPACK_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define LAPACK_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=LAPACK # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then LAPACK_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define LAPACK_SVN_REV $LAPACK_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=5:6:4 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_fflags=yes # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-lapack or --disable-debug-lapack was given. if test "${enable_debug_lapack+set}" = set; then enableval="$enable_debug_lapack" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-lapack" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-lapack" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([Lapack], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-lapack-verbosity or --without-lapack-verbosity was given. if test "${with_lapack_verbosity+set}" = set; then withval="$with_lapack_verbosity" if test "$withval" = yes; then withval=1 fi coin_lapack_verbosity=$withval else coin_lapack_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_LAPACK_VERBOSITY $coin_lapack_verbosity _ACEOF # Check whether --with-lapack-checklevel or --without-lapack-checklevel was given. if test "${with_lapack_checklevel+set}" = set; then withval="$with_lapack_checklevel" if test "$withval" = yes; then withval=1 fi coin_lapack_checklevel=$withval else coin_lapack_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_LAPACK_CHECKLEVEL $coin_lapack_checklevel _ACEOF # m4_ifvaln([Lapack], # Get the name of the Fortran compiler and appropriate compiler options case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:3483:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the linker flags (FLIBS) that are required for linking against this library # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:4064: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:4142: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Check for Blas # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" use_blas="$withval" else use_blas= fi; # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference # Check whether --with-blas-lib or --without-blas-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" use_blas=BUILD fi; # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 coin_has_blas=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas=skipping fi done fi if test "$coin_has_blas" != skipping; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas=skipping fi fi; fi BLAS_LIBS= BLAS_CFLAGS= BLAS_DATA= BLAS_DEPENDENCIES= BLAS_PCLIBS= BLAS_PCREQUIRES= BLAS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_LIBS="$withval" BLAS_PCLIBS="$withval" LAPACKLIB_PCLIBS="$withval $LAPACKLIB_PCLIBS" LAPACKLIB_LIBS="$withval $LAPACKLIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_LIBS_INSTALLED="$withval" LAPACKLIB_LIBS_INSTALLED="$withval $LAPACKLIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" LAPACKLIB_CFLAGS="-I`${CYGPATH_W} $withval` $LAPACKLIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" LAPACKLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS $LAPACKLIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_blas = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinblas"; then BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$cflags" BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` coin_has_blas=yes echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi BLAS_PCREQUIRES="coinblas" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in LapackLib LAPACKLIB_PCREQUIRES="coinblas $LAPACKLIB_PCREQUIRES" LAPACKLIB_CFLAGS="$BLAS_CFLAGS $LAPACKLIB_CFLAGS" LAPACKLIB_LIBS="$BLAS_LIBS $LAPACKLIB_LIBS" else BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` coin_has_blas=notGiven echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 coin_has_blas=notGiven BLAS_LIBS= BLAS_LIBS_INSTALLED= BLAS_CFLAGS= BLAS_CFLAGS_INSTALLED= BLAS_DATA= BLAS_DATA_INSTALLED= BLAS_PCLIBS= BLAS_PCREQUIRES= # initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinblas" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$BLAS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` BLAS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$BLAS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi BLAS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" # set LIBS variable BLAS_LIBS="$projlibs $BLAS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" # set LIBS variable BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_blas=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi BLAS_PCREQUIRES="coinblas" LAPACKLIB_PCREQUIRES="coinblas $LAPACKLIB_PCREQUIRES" LAPACKLIB_CFLAGS="$BLAS_CFLAGS $LAPACKLIB_CFLAGS" LAPACKLIB_LIBS="$BLAS_LIBS $LAPACKLIB_LIBS" LAPACKLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $LAPACKLIB_CFLAGS_INSTALLED" LAPACKLIB_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $LAPACKLIB_LIBS_INSTALLED" fi if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 fi if test $coin_has_blas != skipping && test $coin_has_blas != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` LAPACKLIB_DEPENDENCIES=`echo " $LAPACKLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$BLAS_CFLAGS" ; then { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} fi if test -n "$BLAS_LIBS" ; then { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} fi if test -n "$BLAS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} fi if test -n "$BLAS_DATA" ; then { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} fi if test -n "$BLAS_PCLIBS" ; then { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} fi if test -n "$BLAS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: LapackLib CFLAGS are $LAPACKLIB_CFLAGS" >&5 echo "$as_me: LapackLib CFLAGS are $LAPACKLIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: LapackLib LIBS are $LAPACKLIB_LIBS" >&5 echo "$as_me: LapackLib LIBS are $LAPACKLIB_LIBS" >&6;} { echo "$as_me:$LINENO: LapackLib DEPENDENCIES are $LAPACKLIB_DEPENDENCIES" >&5 echo "$as_me: LapackLib DEPENDENCIES are $LAPACKLIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes if test 0 = 0; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= LAPACKLIB_PCLIBS="$BLAS_LIBS $LAPACKLIB_PCLIBS" LAPACKLIB_LIBS="$BLAS_LIBS $LAPACKLIB_LIBS" LAPACKLIB_LIBS_INSTALLED="$BLAS_LIBS $LAPACKLIB_LIBS_INSTALLED" else coin_has_blas=no if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi if test $coin_has_blas != yes; then { { echo "$as_me:$LINENO: error: Required package BLAS not found." >&5 echo "$as_me: error: Required package BLAS not found." >&2;} { (exit 1); exit 1; }; } fi # FLIBS will be needed to link against this library, so add them to LAPACKLIB_PCLIBS LAPACKLIB_PCLIBS="$LAPACKLIB_PCLIBS $FLIBS" # Take care that optimization is disbled for DLAMCH.F if test "x$DLAMCH_FFLAGS" = x ; then #disable optimiziation for dlamch.f by adding -Od or -O0 at end of FFLAGS (hope to overwrite previous -O? option, if present) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) case $build in *-cygwin* | *-mingw*) DLAMCH_FFLAGS="$FFLAGS -Od" ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac ;; compile_f2c*) case "$CC" in cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) DLAMCH_FFLAGS="$FFLAGS -Od" ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac ;; *) DLAMCH_FFLAGS="$FFLAGS -O0" ;; esac fi # Initialize autotools { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartylapack' VERSION='1.4.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 10153 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:12630: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:12634: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:12898: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:12902: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13002: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13006: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17879: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17883: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17983: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:17987: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19553: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19557: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19657: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19661: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:21864: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:21868: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:22132: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:22136: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:22236: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:22240: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } ############################################################################# # Create links to the required source files # ############################################################################# lapack_source_files='dbdsqr.f dgebal.f dgebak.f dgebd2.f dgebrd.f dgeev.f dgehd2.f dgehrd.f dgelq2.f dgelqf.f dgels.f dgeqr2.f dgeqrf.f dgesvd.f dgesv.f dgetf2.f dgetrf.f dgetri.f dgetrs.f dggbak.f dggbal.f dgghrd.f dggev.f dhgeqz.f dhseqr.f disnan.f dlabad.f dlabrd.f dlacpy.f dladiv.f dlaebz.f dlae2.f dlaev2.f dlaexc.f dlagtf.f dlagts.f dlag2.f dlahqr.f dlahr2.f dlaisnan.f dlaln2.f dlaneg.f dlange.f dlanhs.f dlanst.f dlansy.f dlanv2.f dlapy2.f dlapy3.f dlaqr0.f dlaqr1.f dlaqr2.f dlaqr3.f dlaqr4.f dlaqr5.f dlarf.f dlarfb.f dlarfg.f dlarft.f dlarfx.f dlarnv.f dlarra.f dlarrb.f dlarrc.f dlarrd.f dlarre.f dlarrf.f dlarrj.f dlarrk.f dlarrr.f dlarrv.f dlartg.f dlartv.f dlaruv.f dlar1v.f dlas2.f dlascl.f dlaset.f dlasq1.f dlasq2.f dlasq3.f dlasq4.f dlasq5.f dlasq6.f dlasr.f dlasrt.f dlaswp.f dlassq.f dlasv2.f dlasyf.f dlasy2.f dlatrd.f dorg2l.f dorg2r.f dorgbr.f dorghr.f dorglq.f dorgl2.f dorgql.f dorgqr.f dorgtr.f dorm2r.f dormbr.f dormhr.f dorml2.f dormlq.f dormql.f dormqr.f dormtr.f dorm2l.f dpotf2.f dpotrf.f dpotrs.f dstebz.f dstein.f dstemr.f dsteqr.f dsterf.f dsyev.f dsyevr.f dsyevx.f dsytd2.f dsytf2.f dsytrd.f dsytrf.f dsytri.f dtgevc.f dtrevc.f dtrexc.f dtrti2.f dtrtri.f dtrtrs.f ieeeck.f iladlc.f iladlr.f ilaenv.f iparmq.f sgetf2.f sgetrf.f slaswp.f zgetf2.f zgetrf.f zlacgv.f zlacpy.f zlaev2.f zlaswp.f zpotf2.f zrot.f zsymv.f zsyr.f zsytri.f' for file in $lapack_source_files; do ac_config_links="$ac_config_links $file:LAPACK/SRC/$file" done lapack_source_files_in_install='dlamch.f slamch.f' for file_in_install in $lapack_source_files_in_install; do ac_config_links="$ac_config_links $file_in_install:LAPACK/INSTALL/$file_in_install" done ac_config_files="$ac_config_files Makefile coinlapack.pc coinlapack-uninstalled.pc" echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyLapack $as_me 1.4.6, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration links: $config_links Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyLapack config.status 1.4.6 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinlapack.pc" ) CONFIG_FILES="$CONFIG_FILES coinlapack.pc" ;; "coinlapack-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinlapack-uninstalled.pc" ;; "$file" ) CONFIG_LINKS="$CONFIG_LINKS $file:LAPACK/SRC/$file" ;; "$file_in_install" ) CONFIG_LINKS="$CONFIG_LINKS $file_in_install:LAPACK/INSTALL/$file_in_install" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@LAPACK_SVN_REV@,$LAPACK_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@FLIBS@,$FLIBS,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@BLAS_LIBS@,$BLAS_LIBS,;t t s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t s,@BLAS_DATA@,$BLAS_DATA,;t t s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t s,@LAPACKLIB_CFLAGS@,$LAPACKLIB_CFLAGS,;t t s,@LAPACKLIB_LIBS@,$LAPACKLIB_LIBS,;t t s,@LAPACKLIB_PCLIBS@,$LAPACKLIB_PCLIBS,;t t s,@LAPACKLIB_PCREQUIRES@,$LAPACKLIB_PCREQUIRES,;t t s,@LAPACKLIB_DEPENDENCIES@,$LAPACKLIB_DEPENDENCIES,;t t s,@LAPACKLIB_CFLAGS_INSTALLED@,$LAPACKLIB_CFLAGS_INSTALLED,;t t s,@LAPACKLIB_LIBS_INSTALLED@,$LAPACKLIB_LIBS_INSTALLED,;t t s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t s,@DLAMCH_FFLAGS@,$DLAMCH_FFLAGS,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_LINKS section. # for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} if test ! -r $srcdir/$ac_source; then { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} { (exit 1); exit 1; }; } fi rm -f $ac_dest # Make relative symlinks. ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dest_dir" else as_dir="$ac_dest_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dest_dir" != .; then ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dest_dir";; *) case "$ac_dest_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dest_dir";; *) ac_abs_builddir=`pwd`/"$ac_dest_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $srcdir in [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; esac # Try a symlink, then a hard link, then a copy. ln -s $ac_rel_source $ac_dest 2>/dev/null || ln $srcdir/$ac_source $ac_dest 2>/dev/null || cp -p $srcdir/$ac_source $ac_dest || { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} { (exit 1); exit 1; }; } done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/Lapack/config.guess0000755000076600007660000012706311405215707017171 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Blas/0000755000076600007660000000000012214537472014333 5ustar coincoinIpopt-3.11.4/ThirdParty/Blas/config.sub0000755000076600007660000007772611405215253016330 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Blas/install-sh0000755000076600007660000002202111405215253016323 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Blas/Makefile.am0000644000076600007660000000274311770144477016402 0ustar coincoin# Copyright (C) 2003, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2575 2012-06-19 18:47:27Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.blas INSTALL.BLAS lib_LTLIBRARIES = libcoinblas.la libcoinblas_la_SOURCES = \ dasum.f \ daxpy.f \ dcabs1.f \ dcopy.f \ ddot.f \ dgbmv.f \ dgemm.f \ dgemv.f \ dger.f \ dnrm2.f \ drot.f \ drotg.f \ drotm.f \ drotmg.f \ dsbmv.f \ dscal.f \ dsdot.f \ dspmv.f \ dspr2.f \ dspr.f \ dswap.f \ dsymm.f \ dsymv.f \ dsyr2.f \ dsyr2k.f \ dsyr.f \ dsyrk.f \ dtbmv.f \ dtbsv.f \ dtpmv.f \ dtpsv.f \ dtrmm.f \ dtrmv.f \ dtrsm.f \ dtrsv.f \ idamax.f \ isamax.f \ izamax.f \ lsame.f \ sgemm.f \ sgemv.f \ sger.f \ sscal.f \ sswap.f \ ssyr.f \ strsm.f \ xerbla.f \ zaxpy.f \ zcopy.f \ zdscal.f \ zdotc.f \ zdotu.f \ zgemm.f \ zgemv.f \ zgeru.f \ zher.f \ zscal.f \ zswap.f \ ztrsm.f libcoinblas_la_LDFLAGS = $(LT_LDFLAGS) pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinblas.pc test: @echo "No test available for Blas." ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/Blas/configure.ac0000644000076600007660000000427512214317550016622 0ustar coincoin# Copyright (C) 2006, 2007 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2916 2013-09-12 11:03:04Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyBlas],[1.3.6],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2006 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(dgemm.f) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(Blas,4:6:3) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_fflags=yes # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(Blas) # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Get the linker flags (FLIBS) that are required for linking against this blas library AC_COIN_F77_WRAPPERS # Add FLIBS to BLAS_PCLIBS, so that they get into the .pc files BLAS_PCLIBS="$FLIBS" AC_SUBST(BLAS_PCLIBS) # Check if pkg-config is available (to setup addlibs file) AC_COIN_HAS_PKGCONFIG # Initialize automake AC_COIN_INIT_AUTO_TOOLS AC_CONFIG_FILES([Makefile coinblas.pc coinblas-uninstalled.pc]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/Blas/coinblas.pc.in0000644000076600007660000000035311507661110017046 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ Name: Blas Description: Basic linear algebra package URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcoinblas @BLAS_PCLIBS@ Cflags: Ipopt-3.11.4/ThirdParty/Blas/depcomp0000755000076600007660000003710011405215253015700 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Blas/coinblas-uninstalled.pc.in0000644000076600007660000000033011507661110021361 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: Blas Description: Basic linear algebra package URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: ${libdir}/libcoinblas.la @BLAS_PCLIBS@ Cflags: Ipopt-3.11.4/ThirdParty/Blas/Makefile.in0000644000076600007660000006052312156616050016401 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2003, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinblas-uninstalled.pc.in $(srcdir)/coinblas.pc.in \ $(top_srcdir)/configure config.guess config.sub depcomp \ install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_1 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_2 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = coinblas.pc coinblas-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinblas_la_LIBADD = am_libcoinblas_la_OBJECTS = dasum.lo daxpy.lo dcabs1.lo dcopy.lo \ ddot.lo dgbmv.lo dgemm.lo dgemv.lo dger.lo dnrm2.lo drot.lo \ drotg.lo drotm.lo drotmg.lo dsbmv.lo dscal.lo dsdot.lo \ dspmv.lo dspr2.lo dspr.lo dswap.lo dsymm.lo dsymv.lo dsyr2.lo \ dsyr2k.lo dsyr.lo dsyrk.lo dtbmv.lo dtbsv.lo dtpmv.lo dtpsv.lo \ dtrmm.lo dtrmv.lo dtrsm.lo dtrsv.lo idamax.lo isamax.lo \ izamax.lo lsame.lo sgemm.lo sgemv.lo sger.lo sscal.lo sswap.lo \ ssyr.lo strsm.lo xerbla.lo zaxpy.lo zcopy.lo zdscal.lo \ zdotc.lo zdotu.lo zgemm.lo zgemv.lo zgeru.lo zher.lo zscal.lo \ zswap.lo ztrsm.lo libcoinblas_la_OBJECTS = $(am_libcoinblas_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinblas_la_SOURCES) DIST_SOURCES = $(libcoinblas_la_SOURCES) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BLAS_PCLIBS = @BLAS_PCLIBS@ BLAS_SVN_REV = @BLAS_SVN_REV@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MPICC = @MPICC@ MPIF77 = @MPIF77@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.blas INSTALL.BLAS $(am__append_1) lib_LTLIBRARIES = libcoinblas.la libcoinblas_la_SOURCES = \ dasum.f \ daxpy.f \ dcabs1.f \ dcopy.f \ ddot.f \ dgbmv.f \ dgemm.f \ dgemv.f \ dger.f \ dnrm2.f \ drot.f \ drotg.f \ drotm.f \ drotmg.f \ dsbmv.f \ dscal.f \ dsdot.f \ dspmv.f \ dspr2.f \ dspr.f \ dswap.f \ dsymm.f \ dsymv.f \ dsyr2.f \ dsyr2k.f \ dsyr.f \ dsyrk.f \ dtbmv.f \ dtbsv.f \ dtpmv.f \ dtpsv.f \ dtrmm.f \ dtrmv.f \ dtrsm.f \ dtrsv.f \ idamax.f \ isamax.f \ izamax.f \ lsame.f \ sgemm.f \ sgemv.f \ sger.f \ sscal.f \ sswap.f \ ssyr.f \ strsm.f \ xerbla.f \ zaxpy.f \ zcopy.f \ zdscal.f \ zdotc.f \ zdotu.f \ zgemm.f \ zgemv.f \ zgeru.f \ zher.f \ zscal.f \ zswap.f \ ztrsm.f libcoinblas_la_LDFLAGS = $(LT_LDFLAGS) pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinblas.pc ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) $(am__append_2) $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-am .SUFFIXES: .SUFFIXES: .f .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) coinblas.pc: $(top_builddir)/config.status $(srcdir)/coinblas.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinblas-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinblas-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinblas.la: $(libcoinblas_la_OBJECTS) $(libcoinblas_la_DEPENDENCIES) $(F77LINK) -rpath $(libdir) $(libcoinblas_la_LDFLAGS) $(libcoinblas_la_OBJECTS) $(libcoinblas_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA test: @echo "No test available for Blas." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/Blas/ltmain.sh0000755000076600007660000057753011405215253016166 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/Blas/get.Blas0000755000076600007660000000351212213125776015720 0ustar coincoin#!/bin/sh set -e wgetcmd="wget" wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd="curl -L -k -O" echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi coinblas=blas-20130815.tgz echo " " echo "Running script for downloading the source code for BLAS" echo " " rm -f blas.tgz echo "Downloading the source code from projects.coin-or.org..." if $wgetcmd https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/src/$coinblas ; then mv $coinblas blas.tgz else echo echo "Failed, try downloading the source code from www.netlib.org..." if ! $wgetcmd http://www.netlib.org/blas/blas.tgz ; then echo echo "Failed, try downloading the source code from netlib.sandia.gov..." if ! $wgetcmd http://netlib.sandia.gov/blas/blas.tgz ; then if test "$wgetcmd" = wget ; then echo -n "Failed, try downloading from https://projects.coin-or.org without certificate check? (y/n) " if test "$1" = "-y" ; then doit=y echo y else read -n 1 doit echo fi if test "$doit" = y ; then $wgetcmd --no-check-certificate https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/src/$coinblas mv $coinblas blas.tgz else exit 1; fi else exit 1; fi fi fi fi echo "Uncompressing the tarball..." gunzip -f blas.tgz echo "Unpacking the source code..." tar xf blas.tar echo "Deleting the tar file..." rm blas.tar echo "Moving the source files from BLAS subdirectory" mv BLAS/*.f . rm -rf BLAS echo " " echo "Done downloading the source code for BLAS." echo " " Ipopt-3.11.4/ThirdParty/Blas/missing0000755000076600007660000002540611405215253015730 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Blas/INSTALL.BLAS0000644000076600007660000000122710446554256016112 0ustar coincoinInstallation of BLAS subroutines within IPOPT. ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** If you are working under Unix/Linux-like system and you have `wget' installed, you can downloaded the required source code for BLAS by executing the included script `get.Blas' in this directory. Otherwise, follow those instructions: You may download http://www.netlib.org/blas/blas.tgz and unpack it in this directory: gunzip blas.tgz tar xf blas.tar Ipopt-3.11.4/ThirdParty/Blas/configure0000755000076600007660000272171512214317550016252 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyBlas 1.3.6. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2006 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyBlas' PACKAGE_TARNAME='thirdpartyblas' PACKAGE_VERSION='1.3.6' PACKAGE_STRING='ThirdPartyBlas 1.3.6' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="dgemm.f" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion BLAS_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 FLIBS BLAS_PCLIBS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyBlas 1.3.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyBlas 1.3.6:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-blas compile project Blas with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pkg-config disable use of pkg-config (if available) --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-blas-verbosity specify the debug verbosity level for project Blas --with-blas-checklevel specify the sanity check level for project Blas --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler PKG_CONFIG path to pkg-config utility CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyBlas configure 1.3.6 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2006 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyBlas $as_me 1.3.6, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define BLAS_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define BLAS_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define BLAS_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define BLAS_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=BLAS # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then BLAS_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define BLAS_SVN_REV $BLAS_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=4:6:3 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_fflags=yes # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-blas or --disable-debug-blas was given. if test "${enable_debug_blas+set}" = set; then enableval="$enable_debug_blas" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-blas" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-blas" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([Blas], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-blas-verbosity or --without-blas-verbosity was given. if test "${with_blas_verbosity+set}" = set; then withval="$with_blas_verbosity" if test "$withval" = yes; then withval=1 fi coin_blas_verbosity=$withval else coin_blas_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_BLAS_VERBOSITY $coin_blas_verbosity _ACEOF # Check whether --with-blas-checklevel or --without-blas-checklevel was given. if test "${with_blas_checklevel+set}" = set; then withval="$with_blas_checklevel" if test "$withval" = yes; then withval=1 fi coin_blas_checklevel=$withval else coin_blas_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_BLAS_CHECKLEVEL $coin_blas_checklevel _ACEOF # m4_ifvaln([Blas], # Get the name of the Fortran compiler and appropriate compiler options case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:3467:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the linker flags (FLIBS) that are required for linking against this blas library # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:4048: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:4126: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Add FLIBS to BLAS_PCLIBS, so that they get into the .pc files BLAS_PCLIBS="$FLIBS" # Check if pkg-config is available (to setup addlibs file) # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Initialize automake { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartyblas' VERSION='1.3.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6736 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9213: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9217: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9481: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9485: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9585: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9589: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14462: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14466: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14566: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14570: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16136: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16140: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16240: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16244: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18447: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18451: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18715: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18719: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18819: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18823: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } ac_config_files="$ac_config_files Makefile coinblas.pc coinblas-uninstalled.pc" echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyBlas $as_me 1.3.6, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyBlas config.status 1.3.6 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinblas.pc" ) CONFIG_FILES="$CONFIG_FILES coinblas.pc" ;; "coinblas-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinblas-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@BLAS_SVN_REV@,$BLAS_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@FLIBS@,$FLIBS,;t t s,@BLAS_PCLIBS@,$BLAS_PCLIBS,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/Blas/config.guess0000755000076600007660000012706311405215253016653 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Metis/0000755000076600007660000000000012214537470014531 5ustar coincoinIpopt-3.11.4/ThirdParty/Metis/config.sub0000755000076600007660000007772611405215742016533 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Metis/coinmetis.pc.in0000644000076600007660000000046611577405162017465 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin/ThirdParty Name: Metis Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcoinmetis Cflags: -I${includedir} Ipopt-3.11.4/ThirdParty/Metis/install-sh0000755000076600007660000002202111405215742016526 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Metis/Makefile.am0000644000076600007660000000536711577403606016604 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2311 2011-06-19 14:28:22Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.metis INSTALL.METIS lib_LTLIBRARIES = libcoinmetis.la METISDIR = @METISDIR@ libcoinmetis_la_SOURCES = \ $(METISDIR)/Lib/balance.c \ $(METISDIR)/Lib/bucketsort.c \ $(METISDIR)/Lib/ccgraph.c \ $(METISDIR)/Lib/coarsen.c \ $(METISDIR)/Lib/compress.c \ $(METISDIR)/Lib/debug.c \ $(METISDIR)/Lib/estmem.c \ $(METISDIR)/Lib/fm.c \ $(METISDIR)/Lib/fortran.c \ $(METISDIR)/Lib/frename.c \ $(METISDIR)/Lib/graph.c \ $(METISDIR)/Lib/initpart.c \ $(METISDIR)/Lib/kmetis.c \ $(METISDIR)/Lib/kvmetis.c \ $(METISDIR)/Lib/kwayfm.c \ $(METISDIR)/Lib/kwayrefine.c \ $(METISDIR)/Lib/kwayvolfm.c \ $(METISDIR)/Lib/kwayvolrefine.c \ $(METISDIR)/Lib/match.c \ $(METISDIR)/Lib/mbalance2.c \ $(METISDIR)/Lib/mbalance.c \ $(METISDIR)/Lib/mcoarsen.c \ $(METISDIR)/Lib/memory.c \ $(METISDIR)/Lib/mesh.c \ $(METISDIR)/Lib/meshpart.c \ $(METISDIR)/Lib/mfm2.c \ $(METISDIR)/Lib/mfm.c \ $(METISDIR)/Lib/mincover.c \ $(METISDIR)/Lib/minitpart2.c \ $(METISDIR)/Lib/minitpart.c \ $(METISDIR)/Lib/mkmetis.c \ $(METISDIR)/Lib/mkwayfmh.c \ $(METISDIR)/Lib/mkwayrefine.c \ $(METISDIR)/Lib/mmatch.c \ $(METISDIR)/Lib/mmd.c \ $(METISDIR)/Lib/mpmetis.c \ $(METISDIR)/Lib/mrefine2.c \ $(METISDIR)/Lib/mrefine.c \ $(METISDIR)/Lib/mutil.c \ $(METISDIR)/Lib/myqsort.c \ $(METISDIR)/Lib/ometis.c \ $(METISDIR)/Lib/parmetis.c \ $(METISDIR)/Lib/pmetis.c \ $(METISDIR)/Lib/pqueue.c \ $(METISDIR)/Lib/refine.c \ $(METISDIR)/Lib/separator.c \ $(METISDIR)/Lib/sfm.c \ $(METISDIR)/Lib/srefine.c \ $(METISDIR)/Lib/stat.c \ $(METISDIR)/Lib/subdomains.c \ $(METISDIR)/Lib/timing.c \ $(METISDIR)/Lib/util.c DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/$(METISDIR)/Lib` libcoinmetis_la_LDFLAGS = $(LT_LDFLAGS) thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ $(METISDIR)/Lib/defs.h \ $(METISDIR)/Lib/macros.h \ $(METISDIR)/Lib/metis.h \ $(METISDIR)/Lib/proto.h \ $(METISDIR)/Lib/rename.h \ $(METISDIR)/Lib/struct.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinmetis.pc test: @echo "No test available for Metis." # Suppress default defines from autoheader DEFS = ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) strings.h include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/Metis/coinmetis-uninstalled.pc.in0000644000076600007660000000041511577405162021777 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: Metis Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: ${libdir}/libcoinmetis.la Cflags: -I@abs_source_dir@/@METISDIR@/Lib Ipopt-3.11.4/ThirdParty/Metis/configure.ac0000644000076600007660000000444712214335245017024 0ustar coincoin# Copyright (C) 2009 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2931 2013-09-12 12:59:17Z stefan $ # Author: Andreas Waechter IBM 2009-04-20 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyMetis],[1.2.6],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(metis-4.0/Lib/balance.c) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(Metis,3:6:2) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_cflags=yes coin_skip_warn_fflags=yes # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(Metis) # Get the name of the C compiler AC_COIN_PROG_CC # Check if pkg-config is available (to setup addlibs file) AC_COIN_HAS_PKGCONFIG # Initialize automake AC_COIN_INIT_AUTO_TOOLS # We may need to create a dummy header file for Windows AC_CHECK_HEADER([strings.h], [], [touch strings.h]) # On some systems, there are no drand48 and srand48. # By defining __VC__, we can make Metis use an alternative function AC_CHECK_FUNC(drand48,,[CFLAGS="$CFLAGS -D__VC__"]) METISDIR=metis-4.0 AC_SUBST(METISDIR) AC_CONFIG_FILES([Makefile coinmetis.pc coinmetis-uninstalled.pc]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/Metis/depcomp0000755000076600007660000003710011405215742016103 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Metis/Makefile.in0000644000076600007660000023647612156616434016623 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinmetis-uninstalled.pc.in \ $(srcdir)/coinmetis.pc.in $(thirdpartyinclude_HEADERS) \ $(top_srcdir)/configure config.guess config.sub depcomp \ install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_1 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_2 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = coinmetis.pc coinmetis-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" \ "$(DESTDIR)$(thirdpartyincludedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinmetis_la_LIBADD = am_libcoinmetis_la_OBJECTS = balance.lo bucketsort.lo ccgraph.lo \ coarsen.lo compress.lo debug.lo estmem.lo fm.lo fortran.lo \ frename.lo graph.lo initpart.lo kmetis.lo kvmetis.lo kwayfm.lo \ kwayrefine.lo kwayvolfm.lo kwayvolrefine.lo match.lo \ mbalance2.lo mbalance.lo mcoarsen.lo memory.lo mesh.lo \ meshpart.lo mfm2.lo mfm.lo mincover.lo minitpart2.lo \ minitpart.lo mkmetis.lo mkwayfmh.lo mkwayrefine.lo mmatch.lo \ mmd.lo mpmetis.lo mrefine2.lo mrefine.lo mutil.lo myqsort.lo \ ometis.lo parmetis.lo pmetis.lo pqueue.lo refine.lo \ separator.lo sfm.lo srefine.lo stat.lo subdomains.lo timing.lo \ util.lo libcoinmetis_la_OBJECTS = $(am_libcoinmetis_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinmetis_la_SOURCES) DIST_SOURCES = $(libcoinmetis_la_SOURCES) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) thirdpartyincludeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(thirdpartyinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ # Suppress default defines from autoheader DEFS = DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ METISDIR = @METISDIR@ METIS_SVN_REV = @METIS_SVN_REV@ MPICC = @MPICC@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.metis INSTALL.METIS $(am__append_1) lib_LTLIBRARIES = libcoinmetis.la libcoinmetis_la_SOURCES = \ $(METISDIR)/Lib/balance.c \ $(METISDIR)/Lib/bucketsort.c \ $(METISDIR)/Lib/ccgraph.c \ $(METISDIR)/Lib/coarsen.c \ $(METISDIR)/Lib/compress.c \ $(METISDIR)/Lib/debug.c \ $(METISDIR)/Lib/estmem.c \ $(METISDIR)/Lib/fm.c \ $(METISDIR)/Lib/fortran.c \ $(METISDIR)/Lib/frename.c \ $(METISDIR)/Lib/graph.c \ $(METISDIR)/Lib/initpart.c \ $(METISDIR)/Lib/kmetis.c \ $(METISDIR)/Lib/kvmetis.c \ $(METISDIR)/Lib/kwayfm.c \ $(METISDIR)/Lib/kwayrefine.c \ $(METISDIR)/Lib/kwayvolfm.c \ $(METISDIR)/Lib/kwayvolrefine.c \ $(METISDIR)/Lib/match.c \ $(METISDIR)/Lib/mbalance2.c \ $(METISDIR)/Lib/mbalance.c \ $(METISDIR)/Lib/mcoarsen.c \ $(METISDIR)/Lib/memory.c \ $(METISDIR)/Lib/mesh.c \ $(METISDIR)/Lib/meshpart.c \ $(METISDIR)/Lib/mfm2.c \ $(METISDIR)/Lib/mfm.c \ $(METISDIR)/Lib/mincover.c \ $(METISDIR)/Lib/minitpart2.c \ $(METISDIR)/Lib/minitpart.c \ $(METISDIR)/Lib/mkmetis.c \ $(METISDIR)/Lib/mkwayfmh.c \ $(METISDIR)/Lib/mkwayrefine.c \ $(METISDIR)/Lib/mmatch.c \ $(METISDIR)/Lib/mmd.c \ $(METISDIR)/Lib/mpmetis.c \ $(METISDIR)/Lib/mrefine2.c \ $(METISDIR)/Lib/mrefine.c \ $(METISDIR)/Lib/mutil.c \ $(METISDIR)/Lib/myqsort.c \ $(METISDIR)/Lib/ometis.c \ $(METISDIR)/Lib/parmetis.c \ $(METISDIR)/Lib/pmetis.c \ $(METISDIR)/Lib/pqueue.c \ $(METISDIR)/Lib/refine.c \ $(METISDIR)/Lib/separator.c \ $(METISDIR)/Lib/sfm.c \ $(METISDIR)/Lib/srefine.c \ $(METISDIR)/Lib/stat.c \ $(METISDIR)/Lib/subdomains.c \ $(METISDIR)/Lib/timing.c \ $(METISDIR)/Lib/util.c DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/$(METISDIR)/Lib` libcoinmetis_la_LDFLAGS = $(LT_LDFLAGS) thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ $(METISDIR)/Lib/defs.h \ $(METISDIR)/Lib/macros.h \ $(METISDIR)/Lib/metis.h \ $(METISDIR)/Lib/proto.h \ $(METISDIR)/Lib/rename.h \ $(METISDIR)/Lib/struct.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinmetis.pc ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) strings.h $(am__append_2) \ $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) coinmetis.pc: $(top_builddir)/config.status $(srcdir)/coinmetis.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinmetis-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinmetis-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinmetis.la: $(libcoinmetis_la_OBJECTS) $(libcoinmetis_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libcoinmetis_la_LDFLAGS) $(libcoinmetis_la_OBJECTS) $(libcoinmetis_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/balance.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bucketsort.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ccgraph.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coarsen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/estmem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fortran.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/frename.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graph.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/initpart.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kvmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwayfm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwayrefine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwayvolfm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kwayvolrefine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/match.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbalance.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbalance2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mcoarsen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mesh.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meshpart.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mfm2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincover.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minitpart.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minitpart2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkwayfmh.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkwayrefine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmatch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mrefine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mrefine2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/myqsort.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ometis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pmetis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pqueue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/refine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/separator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sfm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/srefine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subdomains.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timing.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< balance.lo: $(METISDIR)/Lib/balance.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT balance.lo -MD -MP -MF "$(DEPDIR)/balance.Tpo" -c -o balance.lo `test -f '$(METISDIR)/Lib/balance.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/balance.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/balance.Tpo" "$(DEPDIR)/balance.Plo"; else rm -f "$(DEPDIR)/balance.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/balance.c' object='balance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o balance.lo `test -f '$(METISDIR)/Lib/balance.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/balance.c bucketsort.lo: $(METISDIR)/Lib/bucketsort.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bucketsort.lo -MD -MP -MF "$(DEPDIR)/bucketsort.Tpo" -c -o bucketsort.lo `test -f '$(METISDIR)/Lib/bucketsort.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/bucketsort.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/bucketsort.Tpo" "$(DEPDIR)/bucketsort.Plo"; else rm -f "$(DEPDIR)/bucketsort.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/bucketsort.c' object='bucketsort.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bucketsort.lo `test -f '$(METISDIR)/Lib/bucketsort.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/bucketsort.c ccgraph.lo: $(METISDIR)/Lib/ccgraph.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ccgraph.lo -MD -MP -MF "$(DEPDIR)/ccgraph.Tpo" -c -o ccgraph.lo `test -f '$(METISDIR)/Lib/ccgraph.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/ccgraph.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ccgraph.Tpo" "$(DEPDIR)/ccgraph.Plo"; else rm -f "$(DEPDIR)/ccgraph.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/ccgraph.c' object='ccgraph.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ccgraph.lo `test -f '$(METISDIR)/Lib/ccgraph.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/ccgraph.c coarsen.lo: $(METISDIR)/Lib/coarsen.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coarsen.lo -MD -MP -MF "$(DEPDIR)/coarsen.Tpo" -c -o coarsen.lo `test -f '$(METISDIR)/Lib/coarsen.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/coarsen.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/coarsen.Tpo" "$(DEPDIR)/coarsen.Plo"; else rm -f "$(DEPDIR)/coarsen.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/coarsen.c' object='coarsen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coarsen.lo `test -f '$(METISDIR)/Lib/coarsen.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/coarsen.c compress.lo: $(METISDIR)/Lib/compress.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compress.lo -MD -MP -MF "$(DEPDIR)/compress.Tpo" -c -o compress.lo `test -f '$(METISDIR)/Lib/compress.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/compress.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/compress.Tpo" "$(DEPDIR)/compress.Plo"; else rm -f "$(DEPDIR)/compress.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/compress.c' object='compress.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compress.lo `test -f '$(METISDIR)/Lib/compress.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/compress.c debug.lo: $(METISDIR)/Lib/debug.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT debug.lo -MD -MP -MF "$(DEPDIR)/debug.Tpo" -c -o debug.lo `test -f '$(METISDIR)/Lib/debug.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/debug.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/debug.Tpo" "$(DEPDIR)/debug.Plo"; else rm -f "$(DEPDIR)/debug.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/debug.c' object='debug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o debug.lo `test -f '$(METISDIR)/Lib/debug.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/debug.c estmem.lo: $(METISDIR)/Lib/estmem.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT estmem.lo -MD -MP -MF "$(DEPDIR)/estmem.Tpo" -c -o estmem.lo `test -f '$(METISDIR)/Lib/estmem.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/estmem.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/estmem.Tpo" "$(DEPDIR)/estmem.Plo"; else rm -f "$(DEPDIR)/estmem.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/estmem.c' object='estmem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o estmem.lo `test -f '$(METISDIR)/Lib/estmem.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/estmem.c fm.lo: $(METISDIR)/Lib/fm.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fm.lo -MD -MP -MF "$(DEPDIR)/fm.Tpo" -c -o fm.lo `test -f '$(METISDIR)/Lib/fm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/fm.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fm.Tpo" "$(DEPDIR)/fm.Plo"; else rm -f "$(DEPDIR)/fm.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/fm.c' object='fm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fm.lo `test -f '$(METISDIR)/Lib/fm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/fm.c fortran.lo: $(METISDIR)/Lib/fortran.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fortran.lo -MD -MP -MF "$(DEPDIR)/fortran.Tpo" -c -o fortran.lo `test -f '$(METISDIR)/Lib/fortran.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/fortran.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fortran.Tpo" "$(DEPDIR)/fortran.Plo"; else rm -f "$(DEPDIR)/fortran.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/fortran.c' object='fortran.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fortran.lo `test -f '$(METISDIR)/Lib/fortran.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/fortran.c frename.lo: $(METISDIR)/Lib/frename.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT frename.lo -MD -MP -MF "$(DEPDIR)/frename.Tpo" -c -o frename.lo `test -f '$(METISDIR)/Lib/frename.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/frename.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/frename.Tpo" "$(DEPDIR)/frename.Plo"; else rm -f "$(DEPDIR)/frename.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/frename.c' object='frename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o frename.lo `test -f '$(METISDIR)/Lib/frename.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/frename.c graph.lo: $(METISDIR)/Lib/graph.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT graph.lo -MD -MP -MF "$(DEPDIR)/graph.Tpo" -c -o graph.lo `test -f '$(METISDIR)/Lib/graph.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/graph.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/graph.Tpo" "$(DEPDIR)/graph.Plo"; else rm -f "$(DEPDIR)/graph.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/graph.c' object='graph.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o graph.lo `test -f '$(METISDIR)/Lib/graph.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/graph.c initpart.lo: $(METISDIR)/Lib/initpart.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT initpart.lo -MD -MP -MF "$(DEPDIR)/initpart.Tpo" -c -o initpart.lo `test -f '$(METISDIR)/Lib/initpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/initpart.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/initpart.Tpo" "$(DEPDIR)/initpart.Plo"; else rm -f "$(DEPDIR)/initpart.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/initpart.c' object='initpart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o initpart.lo `test -f '$(METISDIR)/Lib/initpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/initpart.c kmetis.lo: $(METISDIR)/Lib/kmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kmetis.lo -MD -MP -MF "$(DEPDIR)/kmetis.Tpo" -c -o kmetis.lo `test -f '$(METISDIR)/Lib/kmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kmetis.Tpo" "$(DEPDIR)/kmetis.Plo"; else rm -f "$(DEPDIR)/kmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kmetis.c' object='kmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kmetis.lo `test -f '$(METISDIR)/Lib/kmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kmetis.c kvmetis.lo: $(METISDIR)/Lib/kvmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kvmetis.lo -MD -MP -MF "$(DEPDIR)/kvmetis.Tpo" -c -o kvmetis.lo `test -f '$(METISDIR)/Lib/kvmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kvmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kvmetis.Tpo" "$(DEPDIR)/kvmetis.Plo"; else rm -f "$(DEPDIR)/kvmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kvmetis.c' object='kvmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kvmetis.lo `test -f '$(METISDIR)/Lib/kvmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kvmetis.c kwayfm.lo: $(METISDIR)/Lib/kwayfm.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwayfm.lo -MD -MP -MF "$(DEPDIR)/kwayfm.Tpo" -c -o kwayfm.lo `test -f '$(METISDIR)/Lib/kwayfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayfm.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kwayfm.Tpo" "$(DEPDIR)/kwayfm.Plo"; else rm -f "$(DEPDIR)/kwayfm.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kwayfm.c' object='kwayfm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwayfm.lo `test -f '$(METISDIR)/Lib/kwayfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayfm.c kwayrefine.lo: $(METISDIR)/Lib/kwayrefine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwayrefine.lo -MD -MP -MF "$(DEPDIR)/kwayrefine.Tpo" -c -o kwayrefine.lo `test -f '$(METISDIR)/Lib/kwayrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayrefine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kwayrefine.Tpo" "$(DEPDIR)/kwayrefine.Plo"; else rm -f "$(DEPDIR)/kwayrefine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kwayrefine.c' object='kwayrefine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwayrefine.lo `test -f '$(METISDIR)/Lib/kwayrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayrefine.c kwayvolfm.lo: $(METISDIR)/Lib/kwayvolfm.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwayvolfm.lo -MD -MP -MF "$(DEPDIR)/kwayvolfm.Tpo" -c -o kwayvolfm.lo `test -f '$(METISDIR)/Lib/kwayvolfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayvolfm.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kwayvolfm.Tpo" "$(DEPDIR)/kwayvolfm.Plo"; else rm -f "$(DEPDIR)/kwayvolfm.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kwayvolfm.c' object='kwayvolfm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwayvolfm.lo `test -f '$(METISDIR)/Lib/kwayvolfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayvolfm.c kwayvolrefine.lo: $(METISDIR)/Lib/kwayvolrefine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kwayvolrefine.lo -MD -MP -MF "$(DEPDIR)/kwayvolrefine.Tpo" -c -o kwayvolrefine.lo `test -f '$(METISDIR)/Lib/kwayvolrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayvolrefine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kwayvolrefine.Tpo" "$(DEPDIR)/kwayvolrefine.Plo"; else rm -f "$(DEPDIR)/kwayvolrefine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/kwayvolrefine.c' object='kwayvolrefine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kwayvolrefine.lo `test -f '$(METISDIR)/Lib/kwayvolrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/kwayvolrefine.c match.lo: $(METISDIR)/Lib/match.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT match.lo -MD -MP -MF "$(DEPDIR)/match.Tpo" -c -o match.lo `test -f '$(METISDIR)/Lib/match.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/match.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/match.Tpo" "$(DEPDIR)/match.Plo"; else rm -f "$(DEPDIR)/match.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/match.c' object='match.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o match.lo `test -f '$(METISDIR)/Lib/match.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/match.c mbalance2.lo: $(METISDIR)/Lib/mbalance2.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbalance2.lo -MD -MP -MF "$(DEPDIR)/mbalance2.Tpo" -c -o mbalance2.lo `test -f '$(METISDIR)/Lib/mbalance2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mbalance2.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mbalance2.Tpo" "$(DEPDIR)/mbalance2.Plo"; else rm -f "$(DEPDIR)/mbalance2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mbalance2.c' object='mbalance2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbalance2.lo `test -f '$(METISDIR)/Lib/mbalance2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mbalance2.c mbalance.lo: $(METISDIR)/Lib/mbalance.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mbalance.lo -MD -MP -MF "$(DEPDIR)/mbalance.Tpo" -c -o mbalance.lo `test -f '$(METISDIR)/Lib/mbalance.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mbalance.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mbalance.Tpo" "$(DEPDIR)/mbalance.Plo"; else rm -f "$(DEPDIR)/mbalance.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mbalance.c' object='mbalance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mbalance.lo `test -f '$(METISDIR)/Lib/mbalance.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mbalance.c mcoarsen.lo: $(METISDIR)/Lib/mcoarsen.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mcoarsen.lo -MD -MP -MF "$(DEPDIR)/mcoarsen.Tpo" -c -o mcoarsen.lo `test -f '$(METISDIR)/Lib/mcoarsen.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mcoarsen.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mcoarsen.Tpo" "$(DEPDIR)/mcoarsen.Plo"; else rm -f "$(DEPDIR)/mcoarsen.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mcoarsen.c' object='mcoarsen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mcoarsen.lo `test -f '$(METISDIR)/Lib/mcoarsen.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mcoarsen.c memory.lo: $(METISDIR)/Lib/memory.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT memory.lo -MD -MP -MF "$(DEPDIR)/memory.Tpo" -c -o memory.lo `test -f '$(METISDIR)/Lib/memory.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/memory.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/memory.Tpo" "$(DEPDIR)/memory.Plo"; else rm -f "$(DEPDIR)/memory.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/memory.c' object='memory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o memory.lo `test -f '$(METISDIR)/Lib/memory.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/memory.c mesh.lo: $(METISDIR)/Lib/mesh.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mesh.lo -MD -MP -MF "$(DEPDIR)/mesh.Tpo" -c -o mesh.lo `test -f '$(METISDIR)/Lib/mesh.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mesh.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mesh.Tpo" "$(DEPDIR)/mesh.Plo"; else rm -f "$(DEPDIR)/mesh.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mesh.c' object='mesh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mesh.lo `test -f '$(METISDIR)/Lib/mesh.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mesh.c meshpart.lo: $(METISDIR)/Lib/meshpart.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT meshpart.lo -MD -MP -MF "$(DEPDIR)/meshpart.Tpo" -c -o meshpart.lo `test -f '$(METISDIR)/Lib/meshpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/meshpart.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/meshpart.Tpo" "$(DEPDIR)/meshpart.Plo"; else rm -f "$(DEPDIR)/meshpart.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/meshpart.c' object='meshpart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o meshpart.lo `test -f '$(METISDIR)/Lib/meshpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/meshpart.c mfm2.lo: $(METISDIR)/Lib/mfm2.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mfm2.lo -MD -MP -MF "$(DEPDIR)/mfm2.Tpo" -c -o mfm2.lo `test -f '$(METISDIR)/Lib/mfm2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mfm2.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mfm2.Tpo" "$(DEPDIR)/mfm2.Plo"; else rm -f "$(DEPDIR)/mfm2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mfm2.c' object='mfm2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mfm2.lo `test -f '$(METISDIR)/Lib/mfm2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mfm2.c mfm.lo: $(METISDIR)/Lib/mfm.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mfm.lo -MD -MP -MF "$(DEPDIR)/mfm.Tpo" -c -o mfm.lo `test -f '$(METISDIR)/Lib/mfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mfm.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mfm.Tpo" "$(DEPDIR)/mfm.Plo"; else rm -f "$(DEPDIR)/mfm.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mfm.c' object='mfm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mfm.lo `test -f '$(METISDIR)/Lib/mfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mfm.c mincover.lo: $(METISDIR)/Lib/mincover.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mincover.lo -MD -MP -MF "$(DEPDIR)/mincover.Tpo" -c -o mincover.lo `test -f '$(METISDIR)/Lib/mincover.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mincover.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mincover.Tpo" "$(DEPDIR)/mincover.Plo"; else rm -f "$(DEPDIR)/mincover.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mincover.c' object='mincover.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mincover.lo `test -f '$(METISDIR)/Lib/mincover.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mincover.c minitpart2.lo: $(METISDIR)/Lib/minitpart2.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT minitpart2.lo -MD -MP -MF "$(DEPDIR)/minitpart2.Tpo" -c -o minitpart2.lo `test -f '$(METISDIR)/Lib/minitpart2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/minitpart2.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minitpart2.Tpo" "$(DEPDIR)/minitpart2.Plo"; else rm -f "$(DEPDIR)/minitpart2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/minitpart2.c' object='minitpart2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o minitpart2.lo `test -f '$(METISDIR)/Lib/minitpart2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/minitpart2.c minitpart.lo: $(METISDIR)/Lib/minitpart.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT minitpart.lo -MD -MP -MF "$(DEPDIR)/minitpart.Tpo" -c -o minitpart.lo `test -f '$(METISDIR)/Lib/minitpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/minitpart.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minitpart.Tpo" "$(DEPDIR)/minitpart.Plo"; else rm -f "$(DEPDIR)/minitpart.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/minitpart.c' object='minitpart.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o minitpart.lo `test -f '$(METISDIR)/Lib/minitpart.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/minitpart.c mkmetis.lo: $(METISDIR)/Lib/mkmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mkmetis.lo -MD -MP -MF "$(DEPDIR)/mkmetis.Tpo" -c -o mkmetis.lo `test -f '$(METISDIR)/Lib/mkmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mkmetis.Tpo" "$(DEPDIR)/mkmetis.Plo"; else rm -f "$(DEPDIR)/mkmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mkmetis.c' object='mkmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkmetis.lo `test -f '$(METISDIR)/Lib/mkmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkmetis.c mkwayfmh.lo: $(METISDIR)/Lib/mkwayfmh.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mkwayfmh.lo -MD -MP -MF "$(DEPDIR)/mkwayfmh.Tpo" -c -o mkwayfmh.lo `test -f '$(METISDIR)/Lib/mkwayfmh.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkwayfmh.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mkwayfmh.Tpo" "$(DEPDIR)/mkwayfmh.Plo"; else rm -f "$(DEPDIR)/mkwayfmh.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mkwayfmh.c' object='mkwayfmh.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkwayfmh.lo `test -f '$(METISDIR)/Lib/mkwayfmh.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkwayfmh.c mkwayrefine.lo: $(METISDIR)/Lib/mkwayrefine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mkwayrefine.lo -MD -MP -MF "$(DEPDIR)/mkwayrefine.Tpo" -c -o mkwayrefine.lo `test -f '$(METISDIR)/Lib/mkwayrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkwayrefine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mkwayrefine.Tpo" "$(DEPDIR)/mkwayrefine.Plo"; else rm -f "$(DEPDIR)/mkwayrefine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mkwayrefine.c' object='mkwayrefine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkwayrefine.lo `test -f '$(METISDIR)/Lib/mkwayrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mkwayrefine.c mmatch.lo: $(METISDIR)/Lib/mmatch.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmatch.lo -MD -MP -MF "$(DEPDIR)/mmatch.Tpo" -c -o mmatch.lo `test -f '$(METISDIR)/Lib/mmatch.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mmatch.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mmatch.Tpo" "$(DEPDIR)/mmatch.Plo"; else rm -f "$(DEPDIR)/mmatch.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mmatch.c' object='mmatch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmatch.lo `test -f '$(METISDIR)/Lib/mmatch.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mmatch.c mmd.lo: $(METISDIR)/Lib/mmd.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmd.lo -MD -MP -MF "$(DEPDIR)/mmd.Tpo" -c -o mmd.lo `test -f '$(METISDIR)/Lib/mmd.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mmd.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mmd.Tpo" "$(DEPDIR)/mmd.Plo"; else rm -f "$(DEPDIR)/mmd.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mmd.c' object='mmd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmd.lo `test -f '$(METISDIR)/Lib/mmd.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mmd.c mpmetis.lo: $(METISDIR)/Lib/mpmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpmetis.lo -MD -MP -MF "$(DEPDIR)/mpmetis.Tpo" -c -o mpmetis.lo `test -f '$(METISDIR)/Lib/mpmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mpmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mpmetis.Tpo" "$(DEPDIR)/mpmetis.Plo"; else rm -f "$(DEPDIR)/mpmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mpmetis.c' object='mpmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpmetis.lo `test -f '$(METISDIR)/Lib/mpmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mpmetis.c mrefine2.lo: $(METISDIR)/Lib/mrefine2.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mrefine2.lo -MD -MP -MF "$(DEPDIR)/mrefine2.Tpo" -c -o mrefine2.lo `test -f '$(METISDIR)/Lib/mrefine2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mrefine2.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mrefine2.Tpo" "$(DEPDIR)/mrefine2.Plo"; else rm -f "$(DEPDIR)/mrefine2.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mrefine2.c' object='mrefine2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mrefine2.lo `test -f '$(METISDIR)/Lib/mrefine2.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mrefine2.c mrefine.lo: $(METISDIR)/Lib/mrefine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mrefine.lo -MD -MP -MF "$(DEPDIR)/mrefine.Tpo" -c -o mrefine.lo `test -f '$(METISDIR)/Lib/mrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mrefine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mrefine.Tpo" "$(DEPDIR)/mrefine.Plo"; else rm -f "$(DEPDIR)/mrefine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mrefine.c' object='mrefine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mrefine.lo `test -f '$(METISDIR)/Lib/mrefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mrefine.c mutil.lo: $(METISDIR)/Lib/mutil.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mutil.lo -MD -MP -MF "$(DEPDIR)/mutil.Tpo" -c -o mutil.lo `test -f '$(METISDIR)/Lib/mutil.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mutil.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mutil.Tpo" "$(DEPDIR)/mutil.Plo"; else rm -f "$(DEPDIR)/mutil.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/mutil.c' object='mutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mutil.lo `test -f '$(METISDIR)/Lib/mutil.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/mutil.c myqsort.lo: $(METISDIR)/Lib/myqsort.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT myqsort.lo -MD -MP -MF "$(DEPDIR)/myqsort.Tpo" -c -o myqsort.lo `test -f '$(METISDIR)/Lib/myqsort.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/myqsort.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/myqsort.Tpo" "$(DEPDIR)/myqsort.Plo"; else rm -f "$(DEPDIR)/myqsort.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/myqsort.c' object='myqsort.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o myqsort.lo `test -f '$(METISDIR)/Lib/myqsort.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/myqsort.c ometis.lo: $(METISDIR)/Lib/ometis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ometis.lo -MD -MP -MF "$(DEPDIR)/ometis.Tpo" -c -o ometis.lo `test -f '$(METISDIR)/Lib/ometis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/ometis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ometis.Tpo" "$(DEPDIR)/ometis.Plo"; else rm -f "$(DEPDIR)/ometis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/ometis.c' object='ometis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ometis.lo `test -f '$(METISDIR)/Lib/ometis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/ometis.c parmetis.lo: $(METISDIR)/Lib/parmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parmetis.lo -MD -MP -MF "$(DEPDIR)/parmetis.Tpo" -c -o parmetis.lo `test -f '$(METISDIR)/Lib/parmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/parmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/parmetis.Tpo" "$(DEPDIR)/parmetis.Plo"; else rm -f "$(DEPDIR)/parmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/parmetis.c' object='parmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parmetis.lo `test -f '$(METISDIR)/Lib/parmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/parmetis.c pmetis.lo: $(METISDIR)/Lib/pmetis.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pmetis.lo -MD -MP -MF "$(DEPDIR)/pmetis.Tpo" -c -o pmetis.lo `test -f '$(METISDIR)/Lib/pmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/pmetis.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pmetis.Tpo" "$(DEPDIR)/pmetis.Plo"; else rm -f "$(DEPDIR)/pmetis.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/pmetis.c' object='pmetis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pmetis.lo `test -f '$(METISDIR)/Lib/pmetis.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/pmetis.c pqueue.lo: $(METISDIR)/Lib/pqueue.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pqueue.lo -MD -MP -MF "$(DEPDIR)/pqueue.Tpo" -c -o pqueue.lo `test -f '$(METISDIR)/Lib/pqueue.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/pqueue.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pqueue.Tpo" "$(DEPDIR)/pqueue.Plo"; else rm -f "$(DEPDIR)/pqueue.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/pqueue.c' object='pqueue.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pqueue.lo `test -f '$(METISDIR)/Lib/pqueue.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/pqueue.c refine.lo: $(METISDIR)/Lib/refine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT refine.lo -MD -MP -MF "$(DEPDIR)/refine.Tpo" -c -o refine.lo `test -f '$(METISDIR)/Lib/refine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/refine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/refine.Tpo" "$(DEPDIR)/refine.Plo"; else rm -f "$(DEPDIR)/refine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/refine.c' object='refine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o refine.lo `test -f '$(METISDIR)/Lib/refine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/refine.c separator.lo: $(METISDIR)/Lib/separator.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT separator.lo -MD -MP -MF "$(DEPDIR)/separator.Tpo" -c -o separator.lo `test -f '$(METISDIR)/Lib/separator.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/separator.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/separator.Tpo" "$(DEPDIR)/separator.Plo"; else rm -f "$(DEPDIR)/separator.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/separator.c' object='separator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o separator.lo `test -f '$(METISDIR)/Lib/separator.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/separator.c sfm.lo: $(METISDIR)/Lib/sfm.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sfm.lo -MD -MP -MF "$(DEPDIR)/sfm.Tpo" -c -o sfm.lo `test -f '$(METISDIR)/Lib/sfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/sfm.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/sfm.Tpo" "$(DEPDIR)/sfm.Plo"; else rm -f "$(DEPDIR)/sfm.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/sfm.c' object='sfm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sfm.lo `test -f '$(METISDIR)/Lib/sfm.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/sfm.c srefine.lo: $(METISDIR)/Lib/srefine.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT srefine.lo -MD -MP -MF "$(DEPDIR)/srefine.Tpo" -c -o srefine.lo `test -f '$(METISDIR)/Lib/srefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/srefine.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/srefine.Tpo" "$(DEPDIR)/srefine.Plo"; else rm -f "$(DEPDIR)/srefine.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/srefine.c' object='srefine.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o srefine.lo `test -f '$(METISDIR)/Lib/srefine.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/srefine.c stat.lo: $(METISDIR)/Lib/stat.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat.lo -MD -MP -MF "$(DEPDIR)/stat.Tpo" -c -o stat.lo `test -f '$(METISDIR)/Lib/stat.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/stat.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/stat.Tpo" "$(DEPDIR)/stat.Plo"; else rm -f "$(DEPDIR)/stat.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/stat.c' object='stat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat.lo `test -f '$(METISDIR)/Lib/stat.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/stat.c subdomains.lo: $(METISDIR)/Lib/subdomains.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT subdomains.lo -MD -MP -MF "$(DEPDIR)/subdomains.Tpo" -c -o subdomains.lo `test -f '$(METISDIR)/Lib/subdomains.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/subdomains.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/subdomains.Tpo" "$(DEPDIR)/subdomains.Plo"; else rm -f "$(DEPDIR)/subdomains.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/subdomains.c' object='subdomains.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o subdomains.lo `test -f '$(METISDIR)/Lib/subdomains.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/subdomains.c timing.lo: $(METISDIR)/Lib/timing.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT timing.lo -MD -MP -MF "$(DEPDIR)/timing.Tpo" -c -o timing.lo `test -f '$(METISDIR)/Lib/timing.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/timing.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/timing.Tpo" "$(DEPDIR)/timing.Plo"; else rm -f "$(DEPDIR)/timing.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/timing.c' object='timing.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o timing.lo `test -f '$(METISDIR)/Lib/timing.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/timing.c util.lo: $(METISDIR)/Lib/util.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT util.lo -MD -MP -MF "$(DEPDIR)/util.Tpo" -c -o util.lo `test -f '$(METISDIR)/Lib/util.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/util.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/util.Tpo" "$(DEPDIR)/util.Plo"; else rm -f "$(DEPDIR)/util.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(METISDIR)/Lib/util.c' object='util.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o util.lo `test -f '$(METISDIR)/Lib/util.c' || echo '$(srcdir)/'`$(METISDIR)/Lib/util.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done install-thirdpartyincludeHEADERS: $(thirdpartyinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(thirdpartyincludedir)" || $(mkdir_p) "$(DESTDIR)$(thirdpartyincludedir)" @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(thirdpartyincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ $(thirdpartyincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done uninstall-thirdpartyincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/$(METISDIR)/Lib $(distdir)/. $(distdir)/BuildTools @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(thirdpartyincludedir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA \ install-thirdpartyincludeHEADERS install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA uninstall-thirdpartyincludeHEADERS .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip install-thirdpartyincludeHEADERS installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-pkgconfiglibDATA \ uninstall-thirdpartyincludeHEADERS test: @echo "No test available for Metis." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/Metis/ltmain.sh0000755000076600007660000057753011405215742016371 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/Metis/INSTALL.Metis0000644000076600007660000000643711616722636016661 0ustar coincoinInstallation of the METIS graph partitioning software within COIN. METIS is software for Serial Graph Partitioning and Fill-reducing Matrix Ordering Please visit the home page: http://glaros.dtc.umn.edu/gkhome/metis/metis/overview Information about conditions w.r.t. distribution can be found at http://glaros.dtc.umn.edu/gkhome/metis/metis/faq?q=metis/metis/faq#distribute (I sent an email to the Metis developer, asking for clarification of the Metis license. You find the reply at the end of this file.) ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** If you are working under Unix/Linux-like system and you have `wget' installed, you can downloaded the required source code for METIS by executing the included script `get.METIS' in this directory. If you don't have wget available, follow those instructions: Go to the METIS Download website http://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD and download the metis-4.0.3.tar.gz file. Unpack it in this directory: gunzip metis-4.0.3.tar.gz tar xf metis-4.0.3.tar Rename the extracted directory: mv metis-4.0.3 metis-4.0 Delete the tarball unless you want to keep it: rm metis-4.0.3.tar ========================================================================== Email exchange regarding Metis license: ------------- 8< (begin) ------------------------------------------------ Date: Mon, 27 Apr 2009 21:52:10 -0500 From: George Karypis To: 'Andreas Waechter' Subject: RE: Metis license conditions Andreas, Metis can be used for non-commercial projects without any restrictions. For commercial-use, the essential restriction is for the vendors not to be reselling Metis. regards, george -----Original Message----- From: Andreas Waechter [mailto:andreasw@watson.ibm.com] Sent: Monday, April 27, 2009 9:53 AM To: metis@cs.umn.edu Subject: Metis license conditions Hello, I'm maintaining an open-source project for nonlinear optimization (Ipopt at COIN-OR, see http://www.coin-or.org/Ipopt). This project requires a linear solver, and I set up Makefiles for users who only have to download the sources (such as for MUMPS and MA57). I recently added such a Makefile for Metis, since it improves the performance of the linear solvers (and therefore of Ipopt). Of course, I do not distribute the sources for any third-party code, but I tell users how they can download the code and where they can learn more about the license conditions. For Metis, I only found the last answer in the FAQs. My colleague Anshul Gupta tells me that the license conditions for Metis are somewhat in flux. However, could you please let me know what I can tell users regarding the Metis license? I would add your answer (possibly verbatim) to the INSTALL.Metis file in https://projects.coin-or.org/BuildTools/browser/ThirdParty/Metis/trunk/INSTALL.Metis Thank you very much in advance! Best regards, Andreas Andreas Waechter Department of Mathematical Sciences IBM T.J. Watson Research Center P.O. Box 218 (Rt. 134) Yorktown Heights, NY 10598 USA ------------- 8< ( end ) ------------------------------------------------ Ipopt-3.11.4/ThirdParty/Metis/missing0000755000076600007660000002540611405215742016133 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Metis/configure0000755000076600007660000261547712214335245016462 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyMetis 1.2.6. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2009 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyMetis' PACKAGE_TARNAME='thirdpartymetis' PACKAGE_VERSION='1.2.6' PACKAGE_STRING='ThirdPartyMetis 1.2.6' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="metis-4.0/Lib/balance.c" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion METIS_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS METISDIR LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyMetis 1.2.6 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyMetis 1.2.6:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-metis compile project Metis with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pkg-config disable use of pkg-config (if available) --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-metis-verbosity specify the debug verbosity level for project Metis --with-metis-checklevel specify the sanity check level for project Metis --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler PKG_CONFIG path to pkg-config utility CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyMetis configure 1.2.6 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyMetis $as_me 1.2.6, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define METIS_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define METIS_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define METIS_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define METIS_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=METIS # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then METIS_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define METIS_SVN_REV $METIS_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=3:6:2 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_cflags=yes coin_skip_warn_fflags=yes # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-metis or --disable-debug-metis was given. if test "${enable_debug_metis+set}" = set; then enableval="$enable_debug_metis" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-metis" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-metis" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([Metis], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-metis-verbosity or --without-metis-verbosity was given. if test "${with_metis_verbosity+set}" = set; then withval="$with_metis_verbosity" if test "$withval" = yes; then withval=1 fi coin_metis_verbosity=$withval else coin_metis_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_METIS_VERBOSITY $coin_metis_verbosity _ACEOF # Check whether --with-metis-checklevel or --without-metis-checklevel was given. if test "${with_metis_checklevel+set}" = set; then withval="$with_metis_checklevel" if test "$withval" = yes; then withval=1 fi coin_metis_checklevel=$withval else coin_metis_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_METIS_CHECKLEVEL $coin_metis_checklevel _ACEOF # m4_ifvaln([Metis], # Get the name of the C compiler case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Check if pkg-config is available (to setup addlibs file) # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Initialize automake { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartymetis' VERSION='1.2.6' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 5070 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:6669:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7736: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7740: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8004: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8008: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8108: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8112: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:12897: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:12901: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13001: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13005: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14571: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14575: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14675: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14679: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16882: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16886: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17150: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17154: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17254: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:17258: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } # We may need to create a dummy header file for Windows if test "${ac_cv_header_strings_h+set}" = set; then echo "$as_me:$LINENO: checking for strings.h" >&5 echo $ECHO_N "checking for strings.h... $ECHO_C" >&6 if test "${ac_cv_header_strings_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: $ac_cv_header_strings_h" >&5 echo "${ECHO_T}$ac_cv_header_strings_h" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking strings.h usability" >&5 echo $ECHO_N "checking strings.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking strings.h presence" >&5 echo $ECHO_N "checking strings.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: strings.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: strings.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: strings.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: strings.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: strings.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: strings.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: strings.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: strings.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: strings.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: strings.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: strings.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for strings.h" >&5 echo $ECHO_N "checking for strings.h... $ECHO_C" >&6 if test "${ac_cv_header_strings_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_strings_h=$ac_header_preproc fi echo "$as_me:$LINENO: result: $ac_cv_header_strings_h" >&5 echo "${ECHO_T}$ac_cv_header_strings_h" >&6 fi if test $ac_cv_header_strings_h = yes; then : else touch strings.h fi # On some systems, there are no drand48 and srand48. # By defining __VC__, we can make Metis use an alternative function echo "$as_me:$LINENO: checking for drand48" >&5 echo $ECHO_N "checking for drand48... $ECHO_C" >&6 if test "${ac_cv_func_drand48+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define drand48 to an innocuous variant, in case declares drand48. For example, HP-UX 11i declares gettimeofday. */ #define drand48 innocuous_drand48 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char drand48 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef drand48 /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char drand48 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_drand48) || defined (__stub___drand48) choke me #else char (*f) () = drand48; #endif #ifdef __cplusplus } #endif int main () { return f != drand48; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_drand48=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_drand48=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_drand48" >&5 echo "${ECHO_T}$ac_cv_func_drand48" >&6 if test $ac_cv_func_drand48 = yes; then : else CFLAGS="$CFLAGS -D__VC__" fi METISDIR=metis-4.0 ac_config_files="$ac_config_files Makefile coinmetis.pc coinmetis-uninstalled.pc" echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyMetis $as_me 1.2.6, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyMetis config.status 1.2.6 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinmetis.pc" ) CONFIG_FILES="$CONFIG_FILES coinmetis.pc" ;; "coinmetis-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinmetis-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@METIS_SVN_REV@,$METIS_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@METISDIR@,$METISDIR,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/Metis/config.guess0000755000076600007660000012706311405215742017056 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Metis/get.Metis0000755000076600007660000000170011761125672016317 0ustar coincoin#!/bin/sh set -e wgetcmd=wget wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd=ftp echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi echo " " echo "Running script for downloading the source code for the METIS" echo " " rm -f metis-4.0.3.tar.gz echo "Downloading the source code from glaros.dtc.umn.edu..." $wgetcmd http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.3.tar.gz rm -rf metis-4.0 echo "Uncompressing the tarball..." gunzip metis-4.0.3.tar.gz echo "Unpacking the source code..." tar xf metis-4.0.3.tar echo "Renaming directory to match source code name..." mv metis-4.0.? metis-4.0 echo "Deleting the tar file..." rm metis-4.0.3.tar echo " " echo "Done downloading the source code for METIS." echo " " Ipopt-3.11.4/ThirdParty/Mumps/0000755000076600007660000000000012214537473014554 5ustar coincoinIpopt-3.11.4/ThirdParty/Mumps/config.sub0000755000076600007660000007772611053574051016553 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Mumps/coinmumps.pc.in0000644000076600007660000000053311577404776017532 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin/ThirdParty Name: Mumps Description: Multifrontal Massively Parallel sparse direct Solver URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcoinmumps @MUMPS_PCLIBS@ Cflags: -I${includedir} Requires: @MUMPS_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/Mumps/install-sh0000755000076600007660000002202111053574051016546 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Mumps/get.Mumps0000755000076600007660000000222612136610243016351 0ustar coincoin#!/bin/sh # Set the following to the latest MUMPS version. # THERE MUST BE NO SPACE BEFORE AND AFTER THE EQUAL (=) OPERATOR. mumps_ver=4.10.0 set -e wgetcmd=wget wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd=ftp echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi echo " " echo "Running script for downloading the source code for MUMPS" echo " " rm -f MUMPS*.tgz echo "Downloading the source code from ..." $wgetcmd http://mumps.enseeiht.fr/MUMPS_${mumps_ver}.tar.gz echo "Uncompressing the tarball..." gunzip -f MUMPS_${mumps_ver}.tar.gz echo "Unpacking the source code..." tar xf MUMPS_${mumps_ver}.tar echo "Deleting the tar file..." rm MUMPS_${mumps_ver}.tar rm -rf MUMPS mv MUMPS_${mumps_ver} MUMPS echo " " echo "Done downloading the source code for MUMPS." echo " " echo "Apply a patch to work around a bug in MUMPS." echo " " patch -p0 < mumps.patch echo " " echo "Verify that there are no error message in the output above." Ipopt-3.11.4/ThirdParty/Mumps/Makefile.am0000644000076600007660000000705311577404776016627 0ustar coincoin# Copyright (C) 2007-2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2315 2011-06-19 14:38:54Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.mumps INSTALL.MUMPS lib_LTLIBRARIES = libcoinmumps.la MUMPSDIR = @MUMPSDIR@ nodist_libcoinmumps_la_SOURCES = \ $(MUMPSDIR)/src/tools_common_mod.F \ $(MUMPSDIR)/src/dmumps_comm_buffer.F \ $(MUMPSDIR)/src/dmumps_struc_def.F \ $(MUMPSDIR)/src/mumps_ooc_common.F\ $(MUMPSDIR)/src/mumps_static_mapping.F \ $(MUMPSDIR)/src/dmumps_ooc_buffer.F \ $(MUMPSDIR)/src/dmumps_load.F \ $(MUMPSDIR)/src/dmumps_ooc.F \ $(MUMPSDIR)/src/dmumps_part1.F \ $(MUMPSDIR)/src/dmumps_part2.F \ $(MUMPSDIR)/src/dmumps_part3.F \ $(MUMPSDIR)/src/dmumps_part4.F \ $(MUMPSDIR)/src/dmumps_part5.F \ $(MUMPSDIR)/src/dmumps_part6.F \ $(MUMPSDIR)/src/dmumps_part7.F \ $(MUMPSDIR)/src/dmumps_part8.F \ $(MUMPSDIR)/src/mumps_part9.F \ $(MUMPSDIR)/src/mumps_sol_es.F \ $(MUMPSDIR)/src/mumps_c.c \ $(MUMPSDIR)/src/mumps_common.c\ $(MUMPSDIR)/src/mumps_orderings.c\ $(MUMPSDIR)/src/mumps_io.c\ $(MUMPSDIR)/src/mumps_io_basic.c\ $(MUMPSDIR)/src/mumps_io_thread.c\ $(MUMPSDIR)/src/mumps_io_err.c\ $(MUMPSDIR)/src/mumps_size.c\ $(MUMPSDIR)/libseq/mpi.f \ $(MUMPSDIR)/libseq/mpic.c \ $(MUMPSDIR)/libseq/elapse.c DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/src` \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/libseq` \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/include` libcoinmumps_la_LDFLAGS = $(LT_LDFLAGS) # Some dependecies for modules: dmumps_load.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part6.lo dmumps_part8.lo: \ dmumps_comm_buffer.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part6.lo: dmumps_load.lo dmumps_part1.lo dmumps_ooc.lo: dmumps_ooc_buffer.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo dmumps_part4.lo \ dmumps_part5.lo dmumps_part6.lo dmumps_part8.lo: dmumps_ooc.lo dmumps_part1.lo dmumps_part5.lo: dmumps_part2.lo dmumps_load.lo dmumps_ooc.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part7.lo dmumps_part8.lo: \ dmumps_struc_def.lo dmumps_ooc_buffer.lo dmumps_ooc.lo: mumps_ooc_common.lo dmumps_part5.lo dmumps_ooc.lo: mumps_static_mapping.lo dmumps_part2.lo dmumps_part5.lo dmumps_part8.lo: tools_common_mod.lo mumps_sol_es.lo # actually only dmumps_part8.lo depends on mumps_sol_es.lo, but having only one target # on the left side makes automake think that we provide a rule how to build this target dmumps_part2.lo dmumps_part8.lo: mumps_sol_es.lo # Module files that need to be deleted MODEXT = mod CLEANFILES = *.$(MODEXT) # Reset DEFS to that they don't show up for the Fortran compiler DEFS = CFLAGS += $(MY_DEFS) FFLAGS += $(MY_FDEFS) thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ $(MUMPSDIR)/include/dmumps_c.h \ $(MUMPSDIR)/include/mumps_compat.h \ $(MUMPSDIR)/include/mumps_c_types.h \ $(MUMPSDIR)/libseq/mpi.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinmumps.pc test: @echo "No test available for Mumps." ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/Mumps/configure.ac0000644000076600007660000001127612214335260017037 0ustar coincoin# Copyright (C) 2007-2009 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2933 2013-09-12 12:59:28Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyMumps],[1.4.9],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2007-2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(MUMPS/src/dmumps_part1.F) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(Mumps,5:9:4) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_cflags=yes coin_skip_warn_fflags=yes # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(Mumps) # Get the name of the C compiler AC_COIN_PROG_CC # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Find out how to call Fortran from C and determine Fortran runtime libraries AC_COIN_F77_WRAPPERS # Add FLIBS to MUMPS_PCLIBS, so that they get into the .pc files MUMPS_PCLIBS="$FLIBS" # We need to translate the result from autoconf to what MUMPS wants case "$ac_cv_f77_mangling" in "lower case, no underscore, no extra underscore") ;; "lower case, underscore, no extra underscore") MY_DEFS="-DAdd_" ;; "lower case, no underscore, extra underscore") MY_DEFS="-DAdd_" ;; "lower case, underscore, extra underscore") MY_DEFS="-DAdd__" ;; "upper case, no underscore, no extra underscore") MY_DEFS="-DUPPER" ;; "upper case, no underscore, extra underscore") MY_DEFS="-DUPPER" ;; "upper case, underscore, no extra underscore") MY_DEFS="-DUPPER" ;; "upper case, underscore, extra underscore") MY_DEFS="-DUPPER" ;; esac # Mumps can make use of pthreads # check for pthread.h header file and library AC_ARG_ENABLE([pthread-mumps], [AC_HELP_STRING([--disable-pthread-mumps],[disable use of pthread library])], [enable_pthread_mumps=$enableval], [enable_pthread_mumps=yes]) if test $enable_pthread_mumps = yes ; then AC_COIN_CHECK_HEADER([pthread.h],[],[enable_pthread_mumps=no]) fi if test $enable_pthread_mumps = yes ; then AC_CHECK_LIB([pthread],[pthread_create], [MUMPS_PCLIBS="-lpthread $MUMPS_PCLIBS"], [enable_pthread_mumps=no]) fi if test $enable_pthread_mumps = no ; then MY_DEFS="$MY_DEFS -DWITHOUT_PTHREAD=1" fi MY_DEFS="$MY_DEFS -DALLOW_NON_INIT -DMUMPS_ARITH=MUMPS_ARITH_d" AC_SUBST(MY_DEFS) # Initialize automake AC_COIN_INIT_AUTO_TOOLS AC_COIN_CHECK_PACKAGE_BLAS(MUMPS) AC_COIN_CHECK_PACKAGE(Metis, [coinmetis], MUMPS) if test "$coin_has_metis" = yes; then MY_DEFS="$MY_DEFS -Dmetis" MY_FDEFS="$MY_FDEFS -Dmetis" fi # Verify that we can compile Fortran 90 code AC_MSG_CHECKING([whether we can compile Fortran 90 code]) AC_LANG_PUSH(Fortran 77) AC_COMPILE_IFELSE([ MODULE BLA DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB END MODULE BLA],[can_f90=yes],[can_f90=no]) AC_MSG_RESULT([$can_f90]) AC_LANG_POP(Fortran 77) if test $can_f90 = no; then AC_MSG_ERROR([Your Fortran compiler can't compile Fortran 90, I cannot compile MUMPS]) fi MUMPSDIR=MUMPS MUMPSOBJDIR=`pwd` MUMPSSRCDIR=$abs_source_dir/$coin_mumpsobjdir/$MUMPSDIR AC_SUBST(MUMPSDIR) AC_SUBST(MUMPSOBJDIR) AC_SUBST(MUMPSSRCDIR) # Fix Fortran preprocessor flags case $F77 in *xlf*) fdefs= if test -n "$MY_FDEFS"; then for flag in $MY_FDEFS; do fdefs="$fdefs -WF,$flag" done fi MY_FDEFS="$fdefs" ;; esac AC_SUBST(MY_FDEFS) AC_MSG_CHECKING([for additional preprocessor C flags]) AC_MSG_RESULT([$MY_DEFS]) AC_MSG_CHECKING([for additional preprocessor Fortran flags]) AC_MSG_RESULT([$MY_FDEFS]) AC_CONFIG_FILES([Makefile coinmumps.pc coinmumps-uninstalled.pc]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/Mumps/depcomp0000755000076600007660000003710011053574051016123 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Mumps/Makefile.in0000644000076600007660000013522312156616617016632 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007-2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinmumps-uninstalled.pc.in \ $(srcdir)/coinmumps.pc.in $(thirdpartyinclude_HEADERS) \ $(top_srcdir)/configure config.guess config.sub depcomp \ install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_1 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_2 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = coinmumps.pc coinmumps-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" \ "$(DESTDIR)$(thirdpartyincludedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinmumps_la_LIBADD = nodist_libcoinmumps_la_OBJECTS = tools_common_mod.lo \ dmumps_comm_buffer.lo dmumps_struc_def.lo mumps_ooc_common.lo \ mumps_static_mapping.lo dmumps_ooc_buffer.lo dmumps_load.lo \ dmumps_ooc.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part6.lo \ dmumps_part7.lo dmumps_part8.lo mumps_part9.lo mumps_sol_es.lo \ mumps_c.lo mumps_common.lo mumps_orderings.lo mumps_io.lo \ mumps_io_basic.lo mumps_io_thread.lo mumps_io_err.lo \ mumps_size.lo mpi.lo mpic.lo elapse.lo libcoinmumps_la_OBJECTS = $(nodist_libcoinmumps_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles PPF77COMPILE = $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) LTPPF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_FFLAGS) $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) SOURCES = $(nodist_libcoinmumps_la_SOURCES) DIST_SOURCES = pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) thirdpartyincludeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(thirdpartyinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ $(MY_DEFS) COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_METIS_FALSE = @COIN_HAS_METIS_FALSE@ COIN_HAS_METIS_TRUE = @COIN_HAS_METIS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ # Reset DEFS to that they don't show up for the Fortran compiler DEFS = DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ $(MY_FDEFS) FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ METIS_CFLAGS = @METIS_CFLAGS@ METIS_CFLAGS_INSTALLED = @METIS_CFLAGS_INSTALLED@ METIS_DATA = @METIS_DATA@ METIS_DATA_INSTALLED = @METIS_DATA_INSTALLED@ METIS_DEPENDENCIES = @METIS_DEPENDENCIES@ METIS_LIBS = @METIS_LIBS@ METIS_LIBS_INSTALLED = @METIS_LIBS_INSTALLED@ MPICC = @MPICC@ MPIF77 = @MPIF77@ MUMPSDIR = @MUMPSDIR@ MUMPSOBJDIR = @MUMPSOBJDIR@ MUMPSSRCDIR = @MUMPSSRCDIR@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MUMPS_PCLIBS = @MUMPS_PCLIBS@ MUMPS_PCREQUIRES = @MUMPS_PCREQUIRES@ MUMPS_SVN_REV = @MUMPS_SVN_REV@ MY_DEFS = @MY_DEFS@ MY_FDEFS = @MY_FDEFS@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.mumps INSTALL.MUMPS $(am__append_1) lib_LTLIBRARIES = libcoinmumps.la nodist_libcoinmumps_la_SOURCES = \ $(MUMPSDIR)/src/tools_common_mod.F \ $(MUMPSDIR)/src/dmumps_comm_buffer.F \ $(MUMPSDIR)/src/dmumps_struc_def.F \ $(MUMPSDIR)/src/mumps_ooc_common.F\ $(MUMPSDIR)/src/mumps_static_mapping.F \ $(MUMPSDIR)/src/dmumps_ooc_buffer.F \ $(MUMPSDIR)/src/dmumps_load.F \ $(MUMPSDIR)/src/dmumps_ooc.F \ $(MUMPSDIR)/src/dmumps_part1.F \ $(MUMPSDIR)/src/dmumps_part2.F \ $(MUMPSDIR)/src/dmumps_part3.F \ $(MUMPSDIR)/src/dmumps_part4.F \ $(MUMPSDIR)/src/dmumps_part5.F \ $(MUMPSDIR)/src/dmumps_part6.F \ $(MUMPSDIR)/src/dmumps_part7.F \ $(MUMPSDIR)/src/dmumps_part8.F \ $(MUMPSDIR)/src/mumps_part9.F \ $(MUMPSDIR)/src/mumps_sol_es.F \ $(MUMPSDIR)/src/mumps_c.c \ $(MUMPSDIR)/src/mumps_common.c\ $(MUMPSDIR)/src/mumps_orderings.c\ $(MUMPSDIR)/src/mumps_io.c\ $(MUMPSDIR)/src/mumps_io_basic.c\ $(MUMPSDIR)/src/mumps_io_thread.c\ $(MUMPSDIR)/src/mumps_io_err.c\ $(MUMPSDIR)/src/mumps_size.c\ $(MUMPSDIR)/libseq/mpi.f \ $(MUMPSDIR)/libseq/mpic.c \ $(MUMPSDIR)/libseq/elapse.c DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/src` \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/libseq` \ -I`$(CYGPATH_W) $(srcdir)/$(MUMPSDIR)/include` libcoinmumps_la_LDFLAGS = $(LT_LDFLAGS) # Module files that need to be deleted MODEXT = mod CLEANFILES = *.$(MODEXT) thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ $(MUMPSDIR)/include/dmumps_c.h \ $(MUMPSDIR)/include/mumps_compat.h \ $(MUMPSDIR)/include/mumps_c_types.h \ $(MUMPSDIR)/libseq/mpi.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinmumps.pc ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(MAKEOKFILE) $(am__append_2) $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-am .SUFFIXES: .SUFFIXES: .F .c .f .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) coinmumps.pc: $(top_builddir)/config.status $(srcdir)/coinmumps.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinmumps-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinmumps-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinmumps.la: $(libcoinmumps_la_OBJECTS) $(libcoinmumps_la_DEPENDENCIES) $(F77LINK) -rpath $(libdir) $(libcoinmumps_la_LDFLAGS) $(libcoinmumps_la_OBJECTS) $(libcoinmumps_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elapse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_c.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_io.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_io_basic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_io_err.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_io_thread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_orderings.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mumps_size.Plo@am__quote@ .F.o: $(PPF77COMPILE) -c -o $@ $< .F.obj: $(PPF77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .F.lo: $(LTPPF77COMPILE) -c -o $@ $< tools_common_mod.lo: $(MUMPSDIR)/src/tools_common_mod.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o tools_common_mod.lo `test -f '$(MUMPSDIR)/src/tools_common_mod.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/tools_common_mod.F dmumps_comm_buffer.lo: $(MUMPSDIR)/src/dmumps_comm_buffer.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_comm_buffer.lo `test -f '$(MUMPSDIR)/src/dmumps_comm_buffer.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_comm_buffer.F dmumps_struc_def.lo: $(MUMPSDIR)/src/dmumps_struc_def.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_struc_def.lo `test -f '$(MUMPSDIR)/src/dmumps_struc_def.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_struc_def.F mumps_ooc_common.lo: $(MUMPSDIR)/src/mumps_ooc_common.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o mumps_ooc_common.lo `test -f '$(MUMPSDIR)/src/mumps_ooc_common.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_ooc_common.F mumps_static_mapping.lo: $(MUMPSDIR)/src/mumps_static_mapping.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o mumps_static_mapping.lo `test -f '$(MUMPSDIR)/src/mumps_static_mapping.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_static_mapping.F dmumps_ooc_buffer.lo: $(MUMPSDIR)/src/dmumps_ooc_buffer.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_ooc_buffer.lo `test -f '$(MUMPSDIR)/src/dmumps_ooc_buffer.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_ooc_buffer.F dmumps_load.lo: $(MUMPSDIR)/src/dmumps_load.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_load.lo `test -f '$(MUMPSDIR)/src/dmumps_load.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_load.F dmumps_ooc.lo: $(MUMPSDIR)/src/dmumps_ooc.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_ooc.lo `test -f '$(MUMPSDIR)/src/dmumps_ooc.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_ooc.F dmumps_part1.lo: $(MUMPSDIR)/src/dmumps_part1.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part1.lo `test -f '$(MUMPSDIR)/src/dmumps_part1.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part1.F dmumps_part2.lo: $(MUMPSDIR)/src/dmumps_part2.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part2.lo `test -f '$(MUMPSDIR)/src/dmumps_part2.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part2.F dmumps_part3.lo: $(MUMPSDIR)/src/dmumps_part3.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part3.lo `test -f '$(MUMPSDIR)/src/dmumps_part3.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part3.F dmumps_part4.lo: $(MUMPSDIR)/src/dmumps_part4.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part4.lo `test -f '$(MUMPSDIR)/src/dmumps_part4.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part4.F dmumps_part5.lo: $(MUMPSDIR)/src/dmumps_part5.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part5.lo `test -f '$(MUMPSDIR)/src/dmumps_part5.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part5.F dmumps_part6.lo: $(MUMPSDIR)/src/dmumps_part6.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part6.lo `test -f '$(MUMPSDIR)/src/dmumps_part6.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part6.F dmumps_part7.lo: $(MUMPSDIR)/src/dmumps_part7.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part7.lo `test -f '$(MUMPSDIR)/src/dmumps_part7.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part7.F dmumps_part8.lo: $(MUMPSDIR)/src/dmumps_part8.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o dmumps_part8.lo `test -f '$(MUMPSDIR)/src/dmumps_part8.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/dmumps_part8.F mumps_part9.lo: $(MUMPSDIR)/src/mumps_part9.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o mumps_part9.lo `test -f '$(MUMPSDIR)/src/mumps_part9.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_part9.F mumps_sol_es.lo: $(MUMPSDIR)/src/mumps_sol_es.F $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) -c -o mumps_sol_es.lo `test -f '$(MUMPSDIR)/src/mumps_sol_es.F' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_sol_es.F .F.f: $(F77COMPILE) -F $< .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mumps_c.lo: $(MUMPSDIR)/src/mumps_c.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_c.lo -MD -MP -MF "$(DEPDIR)/mumps_c.Tpo" -c -o mumps_c.lo `test -f '$(MUMPSDIR)/src/mumps_c.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_c.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_c.Tpo" "$(DEPDIR)/mumps_c.Plo"; else rm -f "$(DEPDIR)/mumps_c.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_c.c' object='mumps_c.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_c.lo `test -f '$(MUMPSDIR)/src/mumps_c.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_c.c mumps_common.lo: $(MUMPSDIR)/src/mumps_common.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_common.lo -MD -MP -MF "$(DEPDIR)/mumps_common.Tpo" -c -o mumps_common.lo `test -f '$(MUMPSDIR)/src/mumps_common.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_common.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_common.Tpo" "$(DEPDIR)/mumps_common.Plo"; else rm -f "$(DEPDIR)/mumps_common.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_common.c' object='mumps_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_common.lo `test -f '$(MUMPSDIR)/src/mumps_common.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_common.c mumps_orderings.lo: $(MUMPSDIR)/src/mumps_orderings.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_orderings.lo -MD -MP -MF "$(DEPDIR)/mumps_orderings.Tpo" -c -o mumps_orderings.lo `test -f '$(MUMPSDIR)/src/mumps_orderings.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_orderings.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_orderings.Tpo" "$(DEPDIR)/mumps_orderings.Plo"; else rm -f "$(DEPDIR)/mumps_orderings.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_orderings.c' object='mumps_orderings.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_orderings.lo `test -f '$(MUMPSDIR)/src/mumps_orderings.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_orderings.c mumps_io.lo: $(MUMPSDIR)/src/mumps_io.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_io.lo -MD -MP -MF "$(DEPDIR)/mumps_io.Tpo" -c -o mumps_io.lo `test -f '$(MUMPSDIR)/src/mumps_io.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_io.Tpo" "$(DEPDIR)/mumps_io.Plo"; else rm -f "$(DEPDIR)/mumps_io.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_io.c' object='mumps_io.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_io.lo `test -f '$(MUMPSDIR)/src/mumps_io.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io.c mumps_io_basic.lo: $(MUMPSDIR)/src/mumps_io_basic.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_io_basic.lo -MD -MP -MF "$(DEPDIR)/mumps_io_basic.Tpo" -c -o mumps_io_basic.lo `test -f '$(MUMPSDIR)/src/mumps_io_basic.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_basic.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_io_basic.Tpo" "$(DEPDIR)/mumps_io_basic.Plo"; else rm -f "$(DEPDIR)/mumps_io_basic.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_io_basic.c' object='mumps_io_basic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_io_basic.lo `test -f '$(MUMPSDIR)/src/mumps_io_basic.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_basic.c mumps_io_thread.lo: $(MUMPSDIR)/src/mumps_io_thread.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_io_thread.lo -MD -MP -MF "$(DEPDIR)/mumps_io_thread.Tpo" -c -o mumps_io_thread.lo `test -f '$(MUMPSDIR)/src/mumps_io_thread.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_thread.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_io_thread.Tpo" "$(DEPDIR)/mumps_io_thread.Plo"; else rm -f "$(DEPDIR)/mumps_io_thread.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_io_thread.c' object='mumps_io_thread.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_io_thread.lo `test -f '$(MUMPSDIR)/src/mumps_io_thread.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_thread.c mumps_io_err.lo: $(MUMPSDIR)/src/mumps_io_err.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_io_err.lo -MD -MP -MF "$(DEPDIR)/mumps_io_err.Tpo" -c -o mumps_io_err.lo `test -f '$(MUMPSDIR)/src/mumps_io_err.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_err.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_io_err.Tpo" "$(DEPDIR)/mumps_io_err.Plo"; else rm -f "$(DEPDIR)/mumps_io_err.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_io_err.c' object='mumps_io_err.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_io_err.lo `test -f '$(MUMPSDIR)/src/mumps_io_err.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_io_err.c mumps_size.lo: $(MUMPSDIR)/src/mumps_size.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mumps_size.lo -MD -MP -MF "$(DEPDIR)/mumps_size.Tpo" -c -o mumps_size.lo `test -f '$(MUMPSDIR)/src/mumps_size.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_size.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mumps_size.Tpo" "$(DEPDIR)/mumps_size.Plo"; else rm -f "$(DEPDIR)/mumps_size.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/src/mumps_size.c' object='mumps_size.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mumps_size.lo `test -f '$(MUMPSDIR)/src/mumps_size.c' || echo '$(srcdir)/'`$(MUMPSDIR)/src/mumps_size.c mpic.lo: $(MUMPSDIR)/libseq/mpic.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mpic.lo -MD -MP -MF "$(DEPDIR)/mpic.Tpo" -c -o mpic.lo `test -f '$(MUMPSDIR)/libseq/mpic.c' || echo '$(srcdir)/'`$(MUMPSDIR)/libseq/mpic.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/mpic.Tpo" "$(DEPDIR)/mpic.Plo"; else rm -f "$(DEPDIR)/mpic.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/libseq/mpic.c' object='mpic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mpic.lo `test -f '$(MUMPSDIR)/libseq/mpic.c' || echo '$(srcdir)/'`$(MUMPSDIR)/libseq/mpic.c elapse.lo: $(MUMPSDIR)/libseq/elapse.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT elapse.lo -MD -MP -MF "$(DEPDIR)/elapse.Tpo" -c -o elapse.lo `test -f '$(MUMPSDIR)/libseq/elapse.c' || echo '$(srcdir)/'`$(MUMPSDIR)/libseq/elapse.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/elapse.Tpo" "$(DEPDIR)/elapse.Plo"; else rm -f "$(DEPDIR)/elapse.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(MUMPSDIR)/libseq/elapse.c' object='elapse.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o elapse.lo `test -f '$(MUMPSDIR)/libseq/elapse.c' || echo '$(srcdir)/'`$(MUMPSDIR)/libseq/elapse.c .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mpi.lo: $(MUMPSDIR)/libseq/mpi.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o mpi.lo `test -f '$(MUMPSDIR)/libseq/mpi.f' || echo '$(srcdir)/'`$(MUMPSDIR)/libseq/mpi.f mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done install-thirdpartyincludeHEADERS: $(thirdpartyinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(thirdpartyincludedir)" || $(mkdir_p) "$(DESTDIR)$(thirdpartyincludedir)" @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(thirdpartyincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ $(thirdpartyincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done uninstall-thirdpartyincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/$(MUMPSDIR)/include $(distdir)/$(MUMPSDIR)/libseq $(distdir)/. $(distdir)/BuildTools @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(thirdpartyincludedir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA \ install-thirdpartyincludeHEADERS install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA uninstall-thirdpartyincludeHEADERS .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip install-thirdpartyincludeHEADERS installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-pkgconfiglibDATA \ uninstall-thirdpartyincludeHEADERS # Some dependecies for modules: dmumps_load.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part6.lo dmumps_part8.lo: \ dmumps_comm_buffer.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part6.lo: dmumps_load.lo dmumps_part1.lo dmumps_ooc.lo: dmumps_ooc_buffer.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo dmumps_part4.lo \ dmumps_part5.lo dmumps_part6.lo dmumps_part8.lo: dmumps_ooc.lo dmumps_part1.lo dmumps_part5.lo: dmumps_part2.lo dmumps_load.lo dmumps_ooc.lo dmumps_part1.lo dmumps_part2.lo dmumps_part3.lo \ dmumps_part4.lo dmumps_part5.lo dmumps_part7.lo dmumps_part8.lo: \ dmumps_struc_def.lo dmumps_ooc_buffer.lo dmumps_ooc.lo: mumps_ooc_common.lo dmumps_part5.lo dmumps_ooc.lo: mumps_static_mapping.lo dmumps_part2.lo dmumps_part5.lo dmumps_part8.lo: tools_common_mod.lo mumps_sol_es.lo # actually only dmumps_part8.lo depends on mumps_sol_es.lo, but having only one target # on the left side makes automake think that we provide a rule how to build this target dmumps_part2.lo dmumps_part8.lo: mumps_sol_es.lo test: @echo "No test available for Mumps." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/Mumps/ltmain.sh0000755000076600007660000057753011053574051016411 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/Mumps/missing0000755000076600007660000002540611053574051016153 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/Mumps/coinmumps-uninstalled.pc.in0000644000076600007660000000052111577404776022047 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: Mumps Description: Multifrontal Massively Parallel sparse direct Solver URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: ${libdir}/libcoinmumps.la @MUMPS_PCLIBS@ Cflags: -I@abs_source_dir@/MUMPS/libseq -I@abs_source_dir@/MUMPS/include Requires: @MUMPS_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/Mumps/configure0000755000076600007660000331211012214335260016452 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyMumps 1.4.9. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2007-2009 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyMumps' PACKAGE_TARNAME='thirdpartymumps' PACKAGE_VERSION='1.4.9' PACKAGE_STRING='ThirdPartyMumps 1.4.9' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="MUMPS/src/dmumps_part1.F" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion MUMPS_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 FLIBS CPP EGREP MY_DEFS LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED MUMPS_CFLAGS MUMPS_LIBS MUMPS_PCLIBS MUMPS_PCREQUIRES MUMPS_DEPENDENCIES MUMPS_CFLAGS_INSTALLED MUMPS_LIBS_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE METIS_LIBS METIS_CFLAGS METIS_DATA METIS_DEPENDENCIES METIS_LIBS_INSTALLED METIS_CFLAGS_INSTALLED METIS_DATA_INSTALLED COIN_HAS_METIS_TRUE COIN_HAS_METIS_FALSE MUMPSDIR MUMPSOBJDIR MUMPSSRCDIR MY_FDEFS LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyMumps 1.4.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyMumps 1.4.9:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-mumps compile project Mumps with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pthread-mumps disable use of pthread library --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-pkg-config disable use of pkg-config (if available) --disable-interpackage-dependencies disables deduction of Makefile dependencies from package linker flags Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-mumps-verbosity specify the debug verbosity level for project Mumps --with-mumps-checklevel specify the sanity check level for project Mumps --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-blas-lib linker flags for using package Blas --with-blas-incdir directory with header files for using package Blas --with-blas-datadir directory with data files for using package Blas --with-metis-lib linker flags for using package Metis --with-metis-incdir directory with header files for using package Metis --with-metis-datadir directory with data files for using package Metis Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyMumps configure 1.4.9 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2007-2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyMumps $as_me 1.4.9, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define MUMPS_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define MUMPS_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define MUMPS_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define MUMPS_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=MUMPS # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then MUMPS_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define MUMPS_SVN_REV $MUMPS_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=5:9:4 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` #turn off warnings and pedantic mode since they could make trouble on some platforms, #and we couldn't fix them anyway coin_skip_warn_cflags=yes coin_skip_warn_fflags=yes # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-mumps or --disable-debug-mumps was given. if test "${enable_debug_mumps+set}" = set; then enableval="$enable_debug_mumps" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-mumps" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-mumps" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([Mumps], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-mumps-verbosity or --without-mumps-verbosity was given. if test "${with_mumps_verbosity+set}" = set; then withval="$with_mumps_verbosity" if test "$withval" = yes; then withval=1 fi coin_mumps_verbosity=$withval else coin_mumps_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_MUMPS_VERBOSITY $coin_mumps_verbosity _ACEOF # Check whether --with-mumps-checklevel or --without-mumps-checklevel was given. if test "${with_mumps_checklevel+set}" = set; then withval="$with_mumps_checklevel" if test "$withval" = yes; then withval=1 fi coin_mumps_checklevel=$withval else coin_mumps_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_MUMPS_CHECKLEVEL $coin_mumps_checklevel _ACEOF # m4_ifvaln([Mumps], # Get the name of the C compiler case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the Fortran compiler and appropriate compiler options case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:3483:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find out how to call Fortran from C and determine Fortran runtime libraries # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:4064: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:4142: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Add FLIBS to MUMPS_PCLIBS, so that they get into the .pc files MUMPS_PCLIBS="$FLIBS" # We need to translate the result from autoconf to what MUMPS wants case "$ac_cv_f77_mangling" in "lower case, no underscore, no extra underscore") ;; "lower case, underscore, no extra underscore") MY_DEFS="-DAdd_" ;; "lower case, no underscore, extra underscore") MY_DEFS="-DAdd_" ;; "lower case, underscore, extra underscore") MY_DEFS="-DAdd__" ;; "upper case, no underscore, no extra underscore") MY_DEFS="-DUPPER" ;; "upper case, no underscore, extra underscore") MY_DEFS="-DUPPER" ;; "upper case, underscore, no extra underscore") MY_DEFS="-DUPPER" ;; "upper case, underscore, extra underscore") MY_DEFS="-DUPPER" ;; esac # Mumps can make use of pthreads # check for pthread.h header file and library # Check whether --enable-pthread-mumps or --disable-pthread-mumps was given. if test "${enable_pthread_mumps+set}" = set; then enableval="$enable_pthread_mumps" enable_pthread_mumps=$enableval else enable_pthread_mumps=yes fi; if test $enable_pthread_mumps = yes ; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([pthread.h],[],[enable_pthread_mumps=no],[$hdr]) for ac_header in pthread.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else enable_pthread_mumps=no fi done fi if test $enable_pthread_mumps = yes ; then echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char pthread_create (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { pthread_create (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_pthread_pthread_create=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_pthread_pthread_create=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 if test $ac_cv_lib_pthread_pthread_create = yes; then MUMPS_PCLIBS="-lpthread $MUMPS_PCLIBS" else enable_pthread_mumps=no fi fi if test $enable_pthread_mumps = no ; then MY_DEFS="$MY_DEFS -DWITHOUT_PTHREAD=1" fi MY_DEFS="$MY_DEFS -DALLOW_NON_INIT -DMUMPS_ARITH=MUMPS_ARITH_d" # Initialize automake { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartymumps' VERSION='1.4.9' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7318 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9314: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9318: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9582: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9586: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9686: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9690: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14563: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14567: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14667: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14671: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16237: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16241: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16341: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16345: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18548: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18552: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18816: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18820: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18920: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18924: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" use_blas="$withval" else use_blas= fi; # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference # Check whether --with-blas-lib or --without-blas-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" use_blas=BUILD fi; # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 coin_has_blas=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas=skipping fi done fi if test "$coin_has_blas" != skipping; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas=skipping fi fi; fi BLAS_LIBS= BLAS_CFLAGS= BLAS_DATA= BLAS_DEPENDENCIES= BLAS_PCLIBS= BLAS_PCREQUIRES= BLAS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_LIBS="$withval" BLAS_PCLIBS="$withval" MUMPS_PCLIBS="$withval $MUMPS_PCLIBS" MUMPS_LIBS="$withval $MUMPS_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_LIBS_INSTALLED="$withval" MUMPS_LIBS_INSTALLED="$withval $MUMPS_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" MUMPS_CFLAGS="-I`${CYGPATH_W} $withval` $MUMPS_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" MUMPS_CFLAGS_INSTALLED="$BLAS_CFLAGS $MUMPS_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_blas = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinblas"; then BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$cflags" BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` coin_has_blas=yes echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi BLAS_PCREQUIRES="coinblas" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in MUMPS MUMPS_PCREQUIRES="coinblas $MUMPS_PCREQUIRES" MUMPS_CFLAGS="$BLAS_CFLAGS $MUMPS_CFLAGS" MUMPS_LIBS="$BLAS_LIBS $MUMPS_LIBS" else BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` coin_has_blas=notGiven echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 coin_has_blas=notGiven BLAS_LIBS= BLAS_LIBS_INSTALLED= BLAS_CFLAGS= BLAS_CFLAGS_INSTALLED= BLAS_DATA= BLAS_DATA_INSTALLED= BLAS_PCLIBS= BLAS_PCREQUIRES= # initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinblas" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$BLAS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` BLAS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$BLAS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi BLAS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" # set LIBS variable BLAS_LIBS="$projlibs $BLAS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" # set LIBS variable BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_blas=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi BLAS_PCREQUIRES="coinblas" MUMPS_PCREQUIRES="coinblas $MUMPS_PCREQUIRES" MUMPS_CFLAGS="$BLAS_CFLAGS $MUMPS_CFLAGS" MUMPS_LIBS="$BLAS_LIBS $MUMPS_LIBS" MUMPS_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $MUMPS_CFLAGS_INSTALLED" MUMPS_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $MUMPS_LIBS_INSTALLED" fi if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 fi if test $coin_has_blas != skipping && test $coin_has_blas != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` MUMPS_DEPENDENCIES=`echo " $MUMPS_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$BLAS_CFLAGS" ; then { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} fi if test -n "$BLAS_LIBS" ; then { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} fi if test -n "$BLAS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} fi if test -n "$BLAS_DATA" ; then { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} fi if test -n "$BLAS_PCLIBS" ; then { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} fi if test -n "$BLAS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: MUMPS CFLAGS are $MUMPS_CFLAGS" >&5 echo "$as_me: MUMPS CFLAGS are $MUMPS_CFLAGS" >&6;} { echo "$as_me:$LINENO: MUMPS LIBS are $MUMPS_LIBS" >&5 echo "$as_me: MUMPS LIBS are $MUMPS_LIBS" >&6;} { echo "$as_me:$LINENO: MUMPS DEPENDENCIES are $MUMPS_DEPENDENCIES" >&5 echo "$as_me: MUMPS DEPENDENCIES are $MUMPS_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes if test 0 = 0; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= MUMPS_PCLIBS="$BLAS_LIBS $MUMPS_PCLIBS" MUMPS_LIBS="$BLAS_LIBS $MUMPS_LIBS" MUMPS_LIBS_INSTALLED="$BLAS_LIBS $MUMPS_LIBS_INSTALLED" else coin_has_blas=no if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi echo "$as_me:$LINENO: checking for COIN-OR package Metis" >&5 echo $ECHO_N "checking for COIN-OR package Metis... $ECHO_C" >&6 coin_has_metis=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Metis"; then coin_has_metis=skipping fi done fi if test "$coin_has_metis" != skipping; then # Check whether --with-m4_tolower(Metis) or --without-m4_tolower(Metis) was given. if test "${with_metis+set}" = set; then withval="$with_metis" if test "$withval" = no ; then coin_has_metis=skipping fi fi; fi METIS_LIBS= METIS_CFLAGS= METIS_DATA= METIS_DEPENDENCIES= METIS_PCLIBS= METIS_PCREQUIRES= METIS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-lib or --without-m4_tolower(Metis)-lib was given. if test "${with_metis_lib+set}" = set; then withval="$with_metis_lib" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_LIBS="$withval" METIS_PCLIBS="$withval" MUMPS_PCLIBS="$withval $MUMPS_PCLIBS" MUMPS_LIBS="$withval $MUMPS_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_LIBS_INSTALLED="$withval" MUMPS_LIBS_INSTALLED="$withval $MUMPS_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-incdir or --without-m4_tolower(Metis)-incdir was given. if test "${with_metis_incdir+set}" = set; then withval="$with_metis_incdir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_CFLAGS="-I`${CYGPATH_W} $withval`" MUMPS_CFLAGS="-I`${CYGPATH_W} $withval` $MUMPS_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_CFLAGS_INSTALLED="$METIS_CFLAGS" MUMPS_CFLAGS_INSTALLED="$METIS_CFLAGS $MUMPS_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-datadir or --without-m4_tolower(Metis)-datadir was given. if test "${with_metis_datadir+set}" = set; then withval="$with_metis_datadir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_metis = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinmetis"; then METIS_VERSIONS=`$PKG_CONFIG --modversion "coinmetis" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinmetis" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$cflags" METIS_LIBS=`$PKG_CONFIG --libs "coinmetis" 2>/dev/null` METIS_DATA=`$PKG_CONFIG --variable=datadir "coinmetis" 2>/dev/null` coin_has_metis=yes echo "$as_me:$LINENO: result: yes: $METIS_VERSIONS" >&5 echo "${ECHO_T}yes: $METIS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi METIS_PCREQUIRES="coinmetis" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in MUMPS MUMPS_PCREQUIRES="coinmetis $MUMPS_PCREQUIRES" MUMPS_CFLAGS="$METIS_CFLAGS $MUMPS_CFLAGS" MUMPS_LIBS="$METIS_LIBS $MUMPS_LIBS" else METIS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinmetis"` coin_has_metis=notGiven echo "$as_me:$LINENO: result: not given: $METIS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $METIS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Metis without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Metis without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Metis (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Metis (fallback)... $ECHO_C" >&6 coin_has_metis=notGiven METIS_LIBS= METIS_LIBS_INSTALLED= METIS_CFLAGS= METIS_CFLAGS_INSTALLED= METIS_DATA= METIS_DATA_INSTALLED= METIS_PCLIBS= METIS_PCREQUIRES= # initial list of dependencies is "coinmetis", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinmetis" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$METIS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` METIS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$METIS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi METIS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$projcflags $METIS_CFLAGS" # set LIBS variable METIS_LIBS="$projlibs $METIS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS_INSTALLED="$projcflags $METIS_CFLAGS_INSTALLED" # set LIBS variable METIS_LIBS_INSTALLED="$projlibs $METIS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_metis=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` METIS_LIBS_INSTALLED=`echo " $METIS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi METIS_PCREQUIRES="coinmetis" MUMPS_PCREQUIRES="coinmetis $MUMPS_PCREQUIRES" MUMPS_CFLAGS="$METIS_CFLAGS $MUMPS_CFLAGS" MUMPS_LIBS="$METIS_LIBS $MUMPS_LIBS" MUMPS_CFLAGS_INSTALLED="$METIS_CFLAGS_INSTALLED $MUMPS_CFLAGS_INSTALLED" MUMPS_LIBS_INSTALLED="$METIS_LIBS_INSTALLED $MUMPS_LIBS_INSTALLED" fi if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_metis" >&5 echo "${ECHO_T}$coin_has_metis" >&6 fi if test $coin_has_metis != skipping && test $coin_has_metis != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) METIS_DEPENDENCIES=`echo " $METIS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` MUMPS_DEPENDENCIES=`echo " $MUMPS_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$METIS_CFLAGS" ; then { echo "$as_me:$LINENO: Metis CFLAGS are $METIS_CFLAGS" >&5 echo "$as_me: Metis CFLAGS are $METIS_CFLAGS" >&6;} fi if test -n "$METIS_LIBS" ; then { echo "$as_me:$LINENO: Metis LIBS are $METIS_LIBS" >&5 echo "$as_me: Metis LIBS are $METIS_LIBS" >&6;} fi if test -n "$METIS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&5 echo "$as_me: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&6;} fi if test -n "$METIS_DATA" ; then { echo "$as_me:$LINENO: Metis DATA is $METIS_DATA" >&5 echo "$as_me: Metis DATA is $METIS_DATA" >&6;} fi if test -n "$METIS_PCLIBS" ; then { echo "$as_me:$LINENO: Metis PCLIBS are $METIS_PCLIBS" >&5 echo "$as_me: Metis PCLIBS are $METIS_PCLIBS" >&6;} fi if test -n "$METIS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Metis PCREQUIRES are $METIS_PCREQUIRES" >&5 echo "$as_me: Metis PCREQUIRES are $METIS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: MUMPS CFLAGS are $MUMPS_CFLAGS" >&5 echo "$as_me: MUMPS CFLAGS are $MUMPS_CFLAGS" >&6;} { echo "$as_me:$LINENO: MUMPS LIBS are $MUMPS_LIBS" >&5 echo "$as_me: MUMPS LIBS are $MUMPS_LIBS" >&6;} { echo "$as_me:$LINENO: MUMPS DEPENDENCIES are $MUMPS_DEPENDENCIES" >&5 echo "$as_me: MUMPS DEPENDENCIES are $MUMPS_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi if test "$coin_has_metis" = yes; then MY_DEFS="$MY_DEFS -Dmetis" MY_FDEFS="$MY_FDEFS -Dmetis" fi # Verify that we can compile Fortran 90 code echo "$as_me:$LINENO: checking whether we can compile Fortran 90 code" >&5 echo $ECHO_N "checking whether we can compile Fortran 90 code... $ECHO_C" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu cat >conftest.$ac_ext <<_ACEOF MODULE BLA DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB END MODULE BLA _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then can_f90=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 can_f90=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $can_f90" >&5 echo "${ECHO_T}$can_f90" >&6 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $can_f90 = no; then { { echo "$as_me:$LINENO: error: Your Fortran compiler can't compile Fortran 90, I cannot compile MUMPS" >&5 echo "$as_me: error: Your Fortran compiler can't compile Fortran 90, I cannot compile MUMPS" >&2;} { (exit 1); exit 1; }; } fi MUMPSDIR=MUMPS MUMPSOBJDIR=`pwd` MUMPSSRCDIR=$abs_source_dir/$coin_mumpsobjdir/$MUMPSDIR # Fix Fortran preprocessor flags case $F77 in *xlf*) fdefs= if test -n "$MY_FDEFS"; then for flag in $MY_FDEFS; do fdefs="$fdefs -WF,$flag" done fi MY_FDEFS="$fdefs" ;; esac echo "$as_me:$LINENO: checking for additional preprocessor C flags" >&5 echo $ECHO_N "checking for additional preprocessor C flags... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $MY_DEFS" >&5 echo "${ECHO_T}$MY_DEFS" >&6 echo "$as_me:$LINENO: checking for additional preprocessor Fortran flags" >&5 echo $ECHO_N "checking for additional preprocessor Fortran flags... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $MY_FDEFS" >&5 echo "${ECHO_T}$MY_FDEFS" >&6 ac_config_files="$ac_config_files Makefile coinmumps.pc coinmumps-uninstalled.pc" echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyMumps $as_me 1.4.9, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyMumps config.status 1.4.9 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinmumps.pc" ) CONFIG_FILES="$CONFIG_FILES coinmumps.pc" ;; "coinmumps-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinmumps-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@MUMPS_SVN_REV@,$MUMPS_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@FLIBS@,$FLIBS,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@MY_DEFS@,$MY_DEFS,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@BLAS_LIBS@,$BLAS_LIBS,;t t s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t s,@BLAS_DATA@,$BLAS_DATA,;t t s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t s,@MUMPS_CFLAGS@,$MUMPS_CFLAGS,;t t s,@MUMPS_LIBS@,$MUMPS_LIBS,;t t s,@MUMPS_PCLIBS@,$MUMPS_PCLIBS,;t t s,@MUMPS_PCREQUIRES@,$MUMPS_PCREQUIRES,;t t s,@MUMPS_DEPENDENCIES@,$MUMPS_DEPENDENCIES,;t t s,@MUMPS_CFLAGS_INSTALLED@,$MUMPS_CFLAGS_INSTALLED,;t t s,@MUMPS_LIBS_INSTALLED@,$MUMPS_LIBS_INSTALLED,;t t s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t s,@METIS_LIBS@,$METIS_LIBS,;t t s,@METIS_CFLAGS@,$METIS_CFLAGS,;t t s,@METIS_DATA@,$METIS_DATA,;t t s,@METIS_DEPENDENCIES@,$METIS_DEPENDENCIES,;t t s,@METIS_LIBS_INSTALLED@,$METIS_LIBS_INSTALLED,;t t s,@METIS_CFLAGS_INSTALLED@,$METIS_CFLAGS_INSTALLED,;t t s,@METIS_DATA_INSTALLED@,$METIS_DATA_INSTALLED,;t t s,@COIN_HAS_METIS_TRUE@,$COIN_HAS_METIS_TRUE,;t t s,@COIN_HAS_METIS_FALSE@,$COIN_HAS_METIS_FALSE,;t t s,@MUMPSDIR@,$MUMPSDIR,;t t s,@MUMPSOBJDIR@,$MUMPSOBJDIR,;t t s,@MUMPSSRCDIR@,$MUMPSSRCDIR,;t t s,@MY_FDEFS@,$MY_FDEFS,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/Mumps/INSTALL.MUMPS0000644000076600007660000000310512136610243016472 0ustar coincoinInstallation of the Mumps linear solver within COIN. Mumps is a MUltifrontal Massively Parallel sparse direct Solver. Please visit the home page: Home page: http://graal.ens-lyon.fr/MUMPS/ and make sure you read the conditions on distributing MUMPS in Chapter 11 of the MUMPS Users' Guide: http://graal.ens-lyon.fr/MUMPS/doc/userguide_4.10.0.pdf ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** If you are working under Unix/Linux-like system and you have `wget' installed, you can downloaded the required source code for MUMPS by executing the included script `get.Mumps' in this directory. Note, however, that the script might not be looking for the most recent version of Mumps, and it might fail if it tries to download an outdated one. In that case, please check the Mumps home page for the most recent version number and change the definition of the mumps_ver variable at the beginning of the get.Mumps script. If you don't have wget available, follow those instructions: Download Mumps 4.10: http://mumps.enseeiht.fr/MUMPS_4.10.0.tar.gz (or try http://graal.ens-lyon.fr/MUMPS/MUMPS_4.10.0.tar.gz if first URL doesn't work) and unpack it in this directory: gunzip MUMPS_4.10.0.tar.gz tar xf MUMPS_4.10.0.tar Then, rename the MUMPS_4.10.0 directory just to be MUMPS: mv MUMPS_4.10.0 MUMPS Finally, apply a small patch to work around a bug in MUMPS: patch -p0 < mumps.patch Ipopt-3.11.4/ThirdParty/Mumps/config.guess0000755000076600007660000012706311053574051017076 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/Mumps/mumps.patch0000644000076600007660000000265712136610243016736 0ustar coincoin--- /home/stefan/work/coin/CoinAll-trunk/ThirdParty/Mumps/MUMPS/src/dmumps_part2.F 2011-05-10 14:57:26.000000000 +0200 +++ MUMPS/src/dmumps_part2.F 2013-04-26 12:21:16.000000000 +0200 @@ -1146,7 +1146,7 @@ IF ( (KEEP(50).EQ.2) & .AND. (KEEP(95) .EQ. 3) & .AND. (IORD .EQ. 7) ) THEN - IORD = 2 + IORD = 0 ENDIF CALL DMUMPS_701( N, KEEP(50), NSLAVES, IORD, & symmetry, MedDens, NBQD, AvgDens, @@ -1162,8 +1162,13 @@ IF(KEEP(95) .EQ. 2 .AND. IORD .EQ. 0) THEN IF (PROK) WRITE(MP,*) & 'WARNING: DMUMPS_195 AMD not available with ', - & ' compressed ordering -> move to QAMD' - IORD = 6 +#if defined(metis) || defined(parmetis) + & 'compressed ordering -> move to METIS' + IORD = 5 +#else + & 'compressed ordering -> move to AMF' + IORD = 2 +#endif ENDIF ELSE KEEP(95) = 1 @@ -3642,7 +3647,7 @@ IF (NBQD.GE.MAXQD) THEN IORD = 6 ELSE - IORD = 2 + IORD = 0 ENDIF ELSE IF (NBQD.GE.MedDens*NPROCS) THEN @@ -3668,7 +3673,7 @@ IF (NBQD.GE.MAXQD) THEN IORD = 6 ELSE - IORD = 2 + IORD = 0 ENDIF ELSE IF (NBQD.GE.MedDens*NPROCS) THEN Ipopt-3.11.4/ThirdParty/ASL/0000755000076600007660000000000012214537467014075 5ustar coincoinIpopt-3.11.4/ThirdParty/ASL/coinasl.pc.in0000644000076600007660000000042711577401664016461 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin/ThirdParty Name: ASL Description: AMPL Solver Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcoinasl @ASL_PCLIBS@ Cflags: -I${includedir} Ipopt-3.11.4/ThirdParty/ASL/config.sub0000755000076600007660000007772611405215221016061 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/ASL/coinasl-uninstalled.pc.in0000644000076600007660000000036711577401664021004 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: ASL Description: AMPL Solver Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Libs: ${libdir}/libcoinasl.la @ASL_PCLIBS@ Cflags: -I@ABSBUILDDIR@ -I@abs_source_dir@/solvers Ipopt-3.11.4/ThirdParty/ASL/install-sh0000755000076600007660000002202111405215221016054 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/ASL/Makefile.am0000644000076600007660000000647211577401664016142 0ustar coincoin# Copyright (C) 2003, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2307 2011-06-19 14:12:04Z stefan $ # the idea is to use the ASL Makefiles to build a static $(AMPLSOLVER_A) library via the compile_*_ASL scripts # from this library, we create a libcoinasl.la libtool library # in a MS VC build, we assume static libraries are used, so we can use the usual libtool machinery via LIBADD # in a normal build, we build the libcoinasl.la library by extracting the $(AMPLSOLVER_A) library and relinking it via libtool # in a shared library build, this should give a shared libcoinasl.so library # further, configure should have taken care of adding -fPIC -DPIC to the CFLAGS when compiling the ASL sources # to avoid a failure when building static libraries and a libtool warning, we additionally create .lo files for each object AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.ASL INSTALL.ASL if COIN_CC_IS_CL lib_LTLIBRARIES = libcoinasl.la libcoinasl_la_SOURCES = libcoinasl_la_LIBADD = $(AMPLSOLVER_A) libcoinasl_la_DEPENDENCIES = $(AMPLSOLVER_A) # This is for libtool libcoinasl_la_LDFLAGS = $(LT_LDFLAGS) endif ######################################################################## # Extra Targets # ######################################################################## compdir = compdir alltargets = stdio1.h arith.h funcadd0.$(OBJEXT) if COIN_CC_IS_CL $(AMPLSOLVER_A): ./compile_MS_ASL else $(AMPLSOLVER_A): ./compile_Unix_ASL libcoinasl.la : $(AMPLSOLVER_A) $(mkdir_p) linkdir ; cd linkdir ; \ $(AR) x ../$(AMPLSOLVER_A) ; \ for i in *.o ; do \ lofile=`echo $$i | sed -e 's/.o$$/.lo/'`; \ echo "# fake line" > $$lofile ; \ echo "# Generated by fake libtool" >> $$lofile ; \ echo "pic_object='$$i'" >> $$lofile ; \ echo "non_pic_object='$$i'" >> $$lofile ; \ done ; cd .. $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -rpath $(libdir) $(LT_LDFLAGS) linkdir/*.lo rm -rf linkdir install-exec-local: libcoinasl.la test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" if test -f libcoinasl.la; then \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) libcoinasl.la "$(DESTDIR)$(libdir)/libcoinasl.la"; \ fi uninstall-local: $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/libcoinasl.la" alltargets += libcoinasl.la endif stdio1.h arith.h funcadd0.$(OBJEXT): $(AMPLSOLVER_A) all-local: $(alltargets) test: @echo "No test available for ASL." thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ solvers/asl.h solvers/asl_pfg.h solvers/asl_pfgh.h solvers/psinfo.h solvers/funcadd.h \ solvers/nlp.h solvers/nlp2.h solvers/getstub.h solvers/opcode.hd solvers/r_opn.hd \ stdio1.h arith.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinasl.pc CLEANFILES = $(AMPLSOLVER_A) $(alltargets) ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/ASL/compile_Unix_ASL.in0000755000076600007660000000716411473556056017573 0ustar coincoin#!/bin/sh set -e # Script to compile the Ampl Solver Library on Unix systems. Why this approach? # Well, we don't want to get into the business of creating (and maintaining) # the full set of autotools source files for the ASL. This approach tries to # leverage makefile.u, which comes with ASL. # To support VPATH builds, the strategy is to copy the sources to the build # directory, build, and then erase the sources when we're done. Start by # copying the sources. # set -x mkinstalldirs="@install_sh@ -d" abs_source_dir=@abs_source_dir@ compdir=compdir # Remove the old compilation directory, if present, and create a new one. Then # copy the sources. The wildcards given to ls will produce duplicates, which # may result in a warning as the files are linked or copied. rm -rf $compdir $mkinstalldirs $compdir files=`cd $abs_source_dir/solvers ; ls *.[chs] *.[ch]0 *.hd arith.* makefile* *.bat amplsolv.lbc` cd $compdir for file in $files ; do rm -f $file @LN_S@ $abs_source_dir/solvers/$file $file done # Acquire the system details. On some systems (Cygwin, for example), this # string will contain '/' characters, so escape them properly. sys_details=`uname -sr | sed -e 's/\\//\\\\\\//g'` sed -e "/sysdetails_ASL/s/System_details/$sys_details/" details.c0 > details.c # Adjust solvers/makefile.u for the system at hand. Really all we're doing # is trying to automate the instructions in makefile.u. If you have build # problems, a good thing to do is compare the shell code here with makefile.u, # to see if it contains instructions that are not automated here. The final # result is left in makefile.coin # Allow make to decide the name of the archive program and the appropriate # flags. makefile.u hardwires `ar' and sets ARFLAGS = ruv. Since we trash the # entire build and start from scratch, the `u' in ruv stands for `useless'. sed -e 's/ ar / @AR@ /g' \ -e 's/^ARFLAGS =/# ARFLAGS =/' < makefile.u > makefile.coin # If we're in a fake unix environment on a Windows box, the default compiler # output file is a.exe, not a.out. if test "x@EXEEXT@" = "x.exe" ; then sed -e 's/a\.out/a.exe/' < makefile.coin > makefile.coin.tmp mv makefile.coin.tmp makefile.coin fi # System-specific tweaks. On Solaris x86, we need to build fpsetprec.s # (fpsetprec64.s for 64-bit builds). Add it to the dependency list for # amplsolver.a. The 64-bit question here is how to reliably recognise a 64-bit # build. For GCC, -m64 should do it. For Sun Studio, it's more difficult. # Studio 12 and later recognises -m64. Earlier versions require # -xarch=, where something can be any of generic64, native64, amd64, # or amd64a (and perhaps others). So ... let's go out on a limb and hope that # -xarch=*64* will not pick up anything it shouldn't. Force leading and # trailing spaces in the string we're matching, in case the 64-bit flag is the # only content in CFLAGS. case "@build@" in *86-*-solaris*) case " @CFLAGS@ " in *" "-m64" "* | *" "-xarch=*64*" "*) sed -e 's/^amplsolver.a:/amplsolver.a: fpsetprec64.s/' \ < makefile.coin > makefile.coin.tmp ;; *) sed -e 's/^amplsolver.a:/amplsolver.a: fpsetprec.s/' \ < makefile.coin > makefile.coin.tmp ;; esac mv makefile.coin.tmp makefile.coin ;; esac # That's it, we can do the build. # A last detail: makefile.u will try to force CC=cc. We need to make sure # that we stay with our chosen compiler. It will try and force CFLAGS, too, but # configure has already put the appropriate information into ASLMAKEFLAGS. libampl=@AMPLSOLVER_A@ make -f makefile.coin @ASLMAKEFLAGS@ CC="@CC@" mv amplsolver.a ../$libampl mv stdio1.h arith.h funcadd0.@OBJEXT@ .. cd .. rm -rf $compdir Ipopt-3.11.4/ThirdParty/ASL/get.ASL0000755000076600007660000000427012213125776015216 0ustar coincoin#!/bin/sh set -e wgetcmd="wget" wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd="curl -L -k -O" echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi coinasl=solvers-20130815.tar echo " " echo "Running script for downloading the source code for the ASL" echo " " rm -f solvers.tar echo "Downloading the source code from projects.coin-or.org..." if $wgetcmd https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/src/$coinasl ; then mv $coinasl solvers.tar else echo echo "Failed, try downloading the source code from www.netlib.org..." if ! $wgetcmd ftp://www.netlib.org/ampl/solvers.tar ; then # Gus reported problems with the ASL tarball downloaded from sandia via his wget, so we give the coin-or server another chance first trysandia=1 if test "$wgetcmd" = wget ; then echo -n "Failed, try downloading from https://projects.coin-or.org without certificate check? (y/n) " if test "$1" = "-y" ; then doit=y echo y else read -n 1 doit echo fi if test "$doit" = y ; then if $wgetcmd --no-check-certificate https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/src/$coinasl ; then mv $coinasl solvers.tar trysandia=0 fi fi fi if test $trysandia = 1 ; then echo echo "Failed, try downloading the source code from netlib.sandia.gov..." rm -f netlibfiles.tar* $wgetcmd http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/ampl/solvers mv netlibfiles.tar* solvers.tar fi fi fi rm -rf solvers echo "Unpacking the source code..." tar xf solvers.tar echo "Uncompressing the source files..." gunzip -fr solvers echo "Adding No_dtoa to CFLAGS..." cd solvers mv makefile.u makefile.u.orig sed -e 's/CFLAGS = /CFLAGS = -DNo_dtoa /g' makefile.u.orig > makefile.u cd .. echo "Deleting the tar file..." rm solvers.tar echo " " echo "Done downloading the source code for ASL." echo " " Ipopt-3.11.4/ThirdParty/ASL/configure.ac0000644000076600007660000001512412214317444016355 0ustar coincoin# Copyright (C) 2007, 2009 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2913 2013-09-12 11:01:56Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 # Revised: Lou Hafer SFU 2007-09-15 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyASL],[1.2.9],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2006, 2007, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(solvers/asl.h) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD # A bit of initial setup. AC_COIN_PROJECTDIR_INIT(ASL,3:9:2) # Turn off warnings and pedantic mode since they could make trouble on some # platforms, and we can't fix issues in third-party code. coin_skip_warn_cflags=yes # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(ASL) # We need egrep and ln -s somewhere AC_PROG_EGREP AC_PROG_LN_S # Get the name of the C compiler and compiler flags AC_COIN_PROG_CC # Initialize automake and libtool AC_COIN_INIT_AUTO_TOOLS # Check if pkg-config is available (to setup addlibs file) AC_COIN_HAS_PKGCONFIG ############################################################################# # AMPL SOLVER LIBRARY # ############################################################################# # Determine the name of the ASL library # Set a substitutable variable with the library name, and determine the compilation style. AC_SUBST(AMPLSOLVER_A) if test "x$coin_cc_is_cl" = xtrue ; then AMPLSOLVER_A=libamplsolver.lib else AMPLSOLVER_A=libamplsolver.a fi # Determine flags to be passed on the command line to (n)make. The main # activity is to groom CFLAGS and set up ASLMAKEFLAGS to pass CFLAGS on the # (n)make command line. # NON_STDIO no longer appears in any source file; removed all mention. # No_Control87 seems to be specific to DEC Alpha. Try leaving it undefined. if test -z "$ASLMAKEFLAGS" ; then asladdcflags= case $build in *-linux*) case $CC in pgcc* | */pgcc* | xlc* | */xlc* | blrts_xlc* | */blrts_xlc*) asladdcflags="$asladdcflags -DNO_fpu_control";; esac ;; esac # Various feature checks. Force the language to be C while we do this to avoid # issues with C++ (re)declarations. AC_LANG_PUSH(C) # The critical function for NO_RUSAGE is getrusage(). Use a standard test. AC_MSG_CHECKING([for getrusage]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]],[[getrusage()]])], [AC_MSG_RESULT([yes])], [asladdcflags="$asladdcflags -DNO_RUSAGE" AC_MSG_RESULT([no])]) # Check for long long; we need to define NO_LONG_LONG if it's not present. ASL # makefile.u and makefile.vc both deal with this, in their own way. # Unfortunately, when trying to build with cl under cygwin, the makefile.vc # solution, comptry.bat, fails. To safely discard comptry.bat, we need to do # this check. It's hardly likely that long long is missing on any modern # system, but it's easy to check. # Also, if it's present, then ASL uses strtoull, which is not supported on Windows systems. # Instead, there should be a _strtoui64. AC_CHECK_TYPE([long long],[ if test "x$coin_cc_is_cl" = xtrue ; then asladdcflags="$asladdcflags -Dstrtoull=_strtoui64" fi], [asladdcflags="$asladdcflags -DNO_LONG_LONG"],[]) # Check for dlopen, ASL uses it to load userdefined function libraries AC_CHECK_LIB(dl,[dlopen],[ASL_PCLIBS="-ldl $ASL_PCLIBS"]) # Back to whatever language we were in. AC_LANG_POP(C) # On BlueGene disable dynamic library loading if test x"$enable_bg" = xyes; then asladdcflags="$asladdcflags -DNO_FUNCADD" fi # Groom CFLAGS before we merge it with asladdcflags. # Remove -Werror if present, to make sure we are not interrupting compilation # of ASL because of warning messages. The cl equivalent is -WX. # SV: Our buildsystem should never add these flags to the CFLAGS, so why bother checking for them? # If the user added some, shouldn't we listen to it and not just remove them again? bla= if test "x$coin_cc_is_cl" = xtrue ; then warnToErr="-WX" else warnToErr="-Werror" fi for i in $CFLAGS; do if test "$i" != "$warnToErr"; then bla="$bla $i" fi done # Add -fPIC -DPIC if we actually build shared libraries if test x$enable_shared != xno; then asladdcflags="$asladdcflags -fPIC -DPIC" fi ASLMAKEFLAGS="CFLAGS=\"$bla $asladdcflags\"" # Somehow, the flags specified here cause ASL to segfault on the AIX # compiler, so take them out. case $CC in xlc* | */xlc* | mpxlc* | */mpxlc*) ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-qtune=auto//g' -e 's/-qarch=auto//g' -e 's/-qcache=auto//g' -e 's/-qhot//g' -e 's/-O3/-O/g'` ;; pgcc* | */pgcc*) ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-fast/-O1/g'` ;; esac # Limit GNU make to one thread. But remember that if we're building with # cl, ultimately we're going to use nmake, which knows nothing of this. if test "x$coin_cc_is_cl" != xtrue ; then rm -rf conftest.mak ($am_make -v > conftest.grp) 2>&5 if $EGREP GNU conftest.grp >&5 ; then ASLMAKEFLAGS="-j 1 $ASLMAKEFLAGS" fi rm -f conftest.grp fi fi # End if-then to construct ASLMAKEFLAGS. Announce the result. AC_MSG_NOTICE([Command line flags for (n)make \"$ASLMAKEFLAGS\".]) AC_ARG_VAR(ASLMAKEFLAGS, [Compilation flags necessary for compiling the AMPL solver library]) # generate the output files. AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([compile_MS_ASL],[chmod a+x compile_MS_ASL]) AC_CONFIG_FILES([compile_Unix_ASL],[chmod a+x compile_Unix_ASL]) AC_CONFIG_FILES([coinasl.pc coinasl-uninstalled.pc]) AC_COIN_CHECK_LIBM(ASL) AC_SUBST(ASL_PCLIBS) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/ASL/compile_MS_ASL.in0000755000076600007660000000422211174233627017151 0ustar coincoin#!/bin/sh set -e # Script to compile the Ampl Solver Library using cl/link. Why this approach? # Well, we don't want to get into the business of creating (and maintaining) # the full set of autotools source files for the ASL. This approach tries to # leverage makefile.vc, which comes with ASL. # To support VPATH builds, the strategy is to copy the sources to the build # directory, build, and then erase the sources when we're done. Start by # copying the sources. # set -x mkinstalldirs="@install_sh@ -d" abs_source_dir=@abs_source_dir@ compdir=compdir rm -rf $compdir $mkinstalldirs $compdir files=`cd $abs_source_dir/solvers; ls *.[chs] *.[ch]0 *.hd arith.* makefile* *.bat amplsolv.lbc` cd $compdir for file in $files do cp $abs_source_dir/solvers/$file $file;\ done # Acquire the cl version and create details.c # (This is not doing to right thing if we are using the Microsoft compiler) clver=`cl 2>&1 | egrep '^Microsoft' | sed -e 's/.*Version \(.*\)/\1/'` clver="Microsoft cl $clver" sed -e "s/System_details/$clver/" details.c0 > details.c # Adjust solvers/makefile.vc for the situation at hand. When building with cl # under cygwin, we can't execute comptry.bat. The sole purpose of comptry.bat # is to retry the compile with -DNO_LONG_LONG in an environment where long long # does not exist. Since we've already tested for long long in configure and set # ASLMAKEFLAGS accordingly, we can discard comptry.bat without worry. sed -e 's/comptry\.bat \$(CC)/$(CC)/' makefile.vc > makefile.coin # Do the build. CFLAGS specified on the command line (as a result of autoconf # replacing ASLMAKEFLAGS) will override the specs in makefile.vc, ensuring that # ASL is built with the same compiler flags as other code. Makefile.vc also # forces CC=cl, but since Coin only uses makefile.vc for the cl compiler, # there's no need to override it here. # It turns out that Gnu make always sets MAKEFLAGS to --unix, and nmake tries # to process this, resulting in error U1065. Clear MAKEFLAGS to fix the # problem. libampl=@AMPLSOLVER_A@ MAKEFLAGS= nmake -f makefile.coin @ASLMAKEFLAGS@ CC="@CC@" mv amplsolv.lib ../$libampl mv stdio1.h arith.h funcadd0.obj .. cd .. rm -rf $compdir Ipopt-3.11.4/ThirdParty/ASL/depcomp0000755000076600007660000003710011405215221015431 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/ASL/Makefile.in0000644000076600007660000006745512156615645016163 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2003, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # the idea is to use the ASL Makefiles to build a static $(AMPLSOLVER_A) library via the compile_*_ASL scripts # from this library, we create a libcoinasl.la libtool library # in a MS VC build, we assume static libraries are used, so we can use the usual libtool machinery via LIBADD # in a normal build, we build the libcoinasl.la library by extracting the $(AMPLSOLVER_A) library and relinking it via libtool # in a shared library build, this should give a shared libcoinasl.so library # further, configure should have taken care of adding -fPIC -DPIC to the CFLAGS when compiling the ASL sources # to avoid a failure when building static libraries and a libtool warning, we additionally create .lo files for each object # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @COIN_CC_IS_CL_FALSE@am__append_1 = libcoinasl.la DIST_COMMON = $(am__configure_deps) $(srcdir)/BuildTools/Makemain.inc \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/coinasl-uninstalled.pc.in $(srcdir)/coinasl.pc.in \ $(srcdir)/compile_MS_ASL.in $(srcdir)/compile_Unix_ASL.in \ $(thirdpartyinclude_HEADERS) $(top_srcdir)/configure \ config.guess config.sub depcomp install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_2 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_3 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = compile_MS_ASL compile_Unix_ASL coinasl.pc \ coinasl-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" \ "$(DESTDIR)$(thirdpartyincludedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = am_libcoinasl_la_OBJECTS = libcoinasl_la_OBJECTS = $(am_libcoinasl_la_OBJECTS) @COIN_CC_IS_CL_TRUE@am_libcoinasl_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I. -I$(srcdir) COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinasl_la_SOURCES) DIST_SOURCES = $(libcoinasl_la_SOURCES) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) thirdpartyincludeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(thirdpartyinclude_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMPLSOLVER_A = @AMPLSOLVER_A@ AMTAR = @AMTAR@ AR = @AR@ ASLMAKEFLAGS = @ASLMAKEFLAGS@ ASL_PCLIBS = @ASL_PCLIBS@ ASL_SVN_REV = @ASL_SVN_REV@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MPICC = @MPICC@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = get.ASL INSTALL.ASL $(am__append_2) @COIN_CC_IS_CL_TRUE@lib_LTLIBRARIES = libcoinasl.la @COIN_CC_IS_CL_TRUE@libcoinasl_la_SOURCES = @COIN_CC_IS_CL_TRUE@libcoinasl_la_LIBADD = $(AMPLSOLVER_A) @COIN_CC_IS_CL_TRUE@libcoinasl_la_DEPENDENCIES = $(AMPLSOLVER_A) # This is for libtool @COIN_CC_IS_CL_TRUE@libcoinasl_la_LDFLAGS = $(LT_LDFLAGS) ######################################################################## # Extra Targets # ######################################################################## compdir = compdir alltargets = stdio1.h arith.h funcadd0.$(OBJEXT) $(am__append_1) thirdpartyincludedir = $(includedir)/coin/ThirdParty thirdpartyinclude_HEADERS = \ solvers/asl.h solvers/asl_pfg.h solvers/asl_pfgh.h solvers/psinfo.h solvers/funcadd.h \ solvers/nlp.h solvers/nlp2.h solvers/getstub.h solvers/opcode.hd solvers/r_opn.hd \ stdio1.h arith.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinasl.pc CLEANFILES = $(AMPLSOLVER_A) $(alltargets) ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(am__append_3) $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-am .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) compile_MS_ASL: $(top_builddir)/config.status $(srcdir)/compile_MS_ASL.in cd $(top_builddir) && $(SHELL) ./config.status $@ compile_Unix_ASL: $(top_builddir)/config.status $(srcdir)/compile_Unix_ASL.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinasl.pc: $(top_builddir)/config.status $(srcdir)/coinasl.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinasl-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinasl-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done @COIN_CC_IS_CL_TRUE@libcoinasl.la: $(libcoinasl_la_OBJECTS) $(libcoinasl_la_DEPENDENCIES) @COIN_CC_IS_CL_TRUE@ $(LINK) $(am_libcoinasl_la_rpath) $(libcoinasl_la_LDFLAGS) $(libcoinasl_la_OBJECTS) $(libcoinasl_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done install-thirdpartyincludeHEADERS: $(thirdpartyinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(thirdpartyincludedir)" || $(mkdir_p) "$(DESTDIR)$(thirdpartyincludedir)" @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(thirdpartyincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ $(thirdpartyincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done uninstall-thirdpartyincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(thirdpartyinclude_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(thirdpartyincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(thirdpartyincludedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools $(distdir)/solvers @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(thirdpartyincludedir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @COIN_CC_IS_CL_TRUE@uninstall-local: @COIN_CC_IS_CL_TRUE@install-exec-local: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-pkgconfiglibDATA \ install-thirdpartyincludeHEADERS install-exec-am: install-exec-local install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-local uninstall-pkgconfiglibDATA \ uninstall-thirdpartyincludeHEADERS .PHONY: CTAGS GTAGS all all-am all-local am--refresh check check-am \ clean clean-generic clean-libLTLIBRARIES clean-libtool ctags \ dist dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ \ dist-zip distcheck distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-exec-local install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip install-thirdpartyincludeHEADERS installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-pkgconfiglibDATA uninstall-thirdpartyincludeHEADERS @COIN_CC_IS_CL_TRUE@$(AMPLSOLVER_A): @COIN_CC_IS_CL_TRUE@ ./compile_MS_ASL @COIN_CC_IS_CL_FALSE@$(AMPLSOLVER_A): @COIN_CC_IS_CL_FALSE@ ./compile_Unix_ASL @COIN_CC_IS_CL_FALSE@libcoinasl.la : $(AMPLSOLVER_A) @COIN_CC_IS_CL_FALSE@ $(mkdir_p) linkdir ; cd linkdir ; \ @COIN_CC_IS_CL_FALSE@ $(AR) x ../$(AMPLSOLVER_A) ; \ @COIN_CC_IS_CL_FALSE@ for i in *.o ; do \ @COIN_CC_IS_CL_FALSE@ lofile=`echo $$i | sed -e 's/.o$$/.lo/'`; \ @COIN_CC_IS_CL_FALSE@ echo "# fake line" > $$lofile ; \ @COIN_CC_IS_CL_FALSE@ echo "# Generated by fake libtool" >> $$lofile ; \ @COIN_CC_IS_CL_FALSE@ echo "pic_object='$$i'" >> $$lofile ; \ @COIN_CC_IS_CL_FALSE@ echo "non_pic_object='$$i'" >> $$lofile ; \ @COIN_CC_IS_CL_FALSE@ done ; cd .. @COIN_CC_IS_CL_FALSE@ $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -rpath $(libdir) $(LT_LDFLAGS) linkdir/*.lo @COIN_CC_IS_CL_FALSE@ rm -rf linkdir @COIN_CC_IS_CL_FALSE@install-exec-local: libcoinasl.la @COIN_CC_IS_CL_FALSE@ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @COIN_CC_IS_CL_FALSE@ if test -f libcoinasl.la; then \ @COIN_CC_IS_CL_FALSE@ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) libcoinasl.la "$(DESTDIR)$(libdir)/libcoinasl.la"; \ @COIN_CC_IS_CL_FALSE@ fi @COIN_CC_IS_CL_FALSE@uninstall-local: @COIN_CC_IS_CL_FALSE@ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/libcoinasl.la" stdio1.h arith.h funcadd0.$(OBJEXT): $(AMPLSOLVER_A) all-local: $(alltargets) test: @echo "No test available for ASL." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/ASL/ltmain.sh0000755000076600007660000057753011405215221015717 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/ASL/INSTALL.ASL0000644000076600007660000000317410443600170015531 0ustar coincoinInstallation of the Ampl Solver Library (ASL) for COIN ********************************************************************** Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************** If you are working under Unix/Linux-like system and you have `wget' installed, you can downloaded the required source code for the ASL by executing the included script `get.ASL' in this directory. Otherwise, follow those instructions: 1. Obtain the ASL source code, for example from http://www.netlib.org/ampl/solvers/ . Check http://www.netlib.org/ampl/solvers/README for instructions on how to obtain the entire directory 'solvers' in a convenient manner. For example: In this directory enter: ftp www.netlib.org and log in as 'anonymous' and enter your email address as password In FTP, enter ftp> cd ampl ftp> bin ftp> get solvers.tar ftp> quit --- If the netlib server is down, you can also obtain a tarball from http://cm.bell-labs.com/netlib/ampl/index.html (at the "tar" link for "solvers") 2. Unpack this package, so that the directory solvers is now located in $SRCROOTDIR/OTHERS/ASL , i.e. you have a directory $SRCROOTDIR/OTHERS/ASL/solvers containing the source code for the ASL. For example: If you obtained the file 'solvers.tar' as described above and it is in this directory, enter tar xf solvers.tar Since the files are compressed when obtained as described above, you need to uncompress them, e.g. by typing gunzip -fr solvers Ipopt-3.11.4/ThirdParty/ASL/missing0000755000076600007660000002540611405215221015461 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/ASL/configure0000755000076600007660000262210312214317444016001 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyASL 1.2.9. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2006, 2007, 2009 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyASL' PACKAGE_TARNAME='thirdpartyasl' PACKAGE_VERSION='1.2.9' PACKAGE_STRING='ThirdPartyASL 1.2.9' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="solvers/asl.h" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion ASL_SVN_REV EGREP LN_S CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED AMPLSOLVER_A ASLMAKEFLAGS ASL_PCLIBS LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_ASLMAKEFLAGS_set=${ASLMAKEFLAGS+set} ac_env_ASLMAKEFLAGS_value=$ASLMAKEFLAGS ac_cv_env_ASLMAKEFLAGS_set=${ASLMAKEFLAGS+set} ac_cv_env_ASLMAKEFLAGS_value=$ASLMAKEFLAGS # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyASL 1.2.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyASL 1.2.9:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-asl compile project ASL with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-pkg-config disable use of pkg-config (if available) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-asl-verbosity specify the debug verbosity level for project ASL --with-asl-checklevel specify the sanity check level for project ASL --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-coin-instdir prefix of installation directory for precompiled COIN packages Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags PKG_CONFIG path to pkg-config utility ASLMAKEFLAGS Compilation flags necessary for compiling the AMPL solver library Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyASL configure 1.2.9 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2006, 2007, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyASL $as_me 1.2.9, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # A bit of initial setup. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define ASL_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define ASL_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define ASL_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define ASL_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=ASL # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then ASL_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define ASL_SVN_REV $ASL_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=3:9:2 # Turn off warnings and pedantic mode since they could make trouble on some # platforms, and we can't fix issues in third-party code. coin_skip_warn_cflags=yes # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-asl or --disable-debug-asl was given. if test "${enable_debug_asl+set}" = set; then enableval="$enable_debug_asl" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-asl" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-asl" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([ASL], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-asl-verbosity or --without-asl-verbosity was given. if test "${with_asl_verbosity+set}" = set; then withval="$with_asl_verbosity" if test "$withval" = yes; then withval=1 fi coin_asl_verbosity=$withval else coin_asl_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_ASL_VERBOSITY $coin_asl_verbosity _ACEOF # Check whether --with-asl-checklevel or --without-asl-checklevel was given. if test "${with_asl_checklevel+set}" = set; then withval="$with_asl_checklevel" if test "$withval" = yes; then withval=1 fi coin_asl_checklevel=$withval else coin_asl_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_ASL_CHECKLEVEL $coin_asl_checklevel _ACEOF # m4_ifvaln([ASL], # We need egrep and ln -s somewhere echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi # Get the name of the C compiler and compiler flags case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Initialize automake and libtool { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartyasl' VERSION='1.2.9' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 4881 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:6480:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7547: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7551: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7815: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7819: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7919: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:7923: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:12708: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:12712: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:12812: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:12816: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14382: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14386: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14486: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14490: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16693: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16697: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16961: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16965: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17065: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:17069: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } # Check if pkg-config is available (to setup addlibs file) # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi ############################################################################# # AMPL SOLVER LIBRARY # ############################################################################# # Determine the name of the ASL library # Set a substitutable variable with the library name, and determine the compilation style. if test "x$coin_cc_is_cl" = xtrue ; then AMPLSOLVER_A=libamplsolver.lib else AMPLSOLVER_A=libamplsolver.a fi # Determine flags to be passed on the command line to (n)make. The main # activity is to groom CFLAGS and set up ASLMAKEFLAGS to pass CFLAGS on the # (n)make command line. # NON_STDIO no longer appears in any source file; removed all mention. # No_Control87 seems to be specific to DEC Alpha. Try leaving it undefined. if test -z "$ASLMAKEFLAGS" ; then asladdcflags= case $build in *-linux*) case $CC in pgcc* | */pgcc* | xlc* | */xlc* | blrts_xlc* | */blrts_xlc*) asladdcflags="$asladdcflags -DNO_fpu_control";; esac ;; esac # Various feature checks. Force the language to be C while we do this to avoid # issues with C++ (re)declarations. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # The critical function for NO_RUSAGE is getrusage(). Use a standard test. echo "$as_me:$LINENO: checking for getrusage" >&5 echo $ECHO_N "checking for getrusage... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { getrusage() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 asladdcflags="$asladdcflags -DNO_RUSAGE" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # Check for long long; we need to define NO_LONG_LONG if it's not present. ASL # makefile.u and makefile.vc both deal with this, in their own way. # Unfortunately, when trying to build with cl under cygwin, the makefile.vc # solution, comptry.bat, fails. To safely discard comptry.bat, we need to do # this check. It's hardly likely that long long is missing on any modern # system, but it's easy to check. # Also, if it's present, then ASL uses strtoull, which is not supported on Windows systems. # Instead, there should be a _strtoui64. echo "$as_me:$LINENO: checking for long long" >&5 echo $ECHO_N "checking for long long... $ECHO_C" >&6 if test "${ac_cv_type_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((long long *) 0) return 0; if (sizeof (long long)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_long_long=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 echo "${ECHO_T}$ac_cv_type_long_long" >&6 if test $ac_cv_type_long_long = yes; then if test "x$coin_cc_is_cl" = xtrue ; then asladdcflags="$asladdcflags -Dstrtoull=_strtoui64" fi else asladdcflags="$asladdcflags -DNO_LONG_LONG" fi # Check for dlopen, ASL uses it to load userdefined function libraries echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then ASL_PCLIBS="-ldl $ASL_PCLIBS" fi # Back to whatever language we were in. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # On BlueGene disable dynamic library loading if test x"$enable_bg" = xyes; then asladdcflags="$asladdcflags -DNO_FUNCADD" fi # Groom CFLAGS before we merge it with asladdcflags. # Remove -Werror if present, to make sure we are not interrupting compilation # of ASL because of warning messages. The cl equivalent is -WX. # SV: Our buildsystem should never add these flags to the CFLAGS, so why bother checking for them? # If the user added some, shouldn't we listen to it and not just remove them again? bla= if test "x$coin_cc_is_cl" = xtrue ; then warnToErr="-WX" else warnToErr="-Werror" fi for i in $CFLAGS; do if test "$i" != "$warnToErr"; then bla="$bla $i" fi done # Add -fPIC -DPIC if we actually build shared libraries if test x$enable_shared != xno; then asladdcflags="$asladdcflags -fPIC -DPIC" fi ASLMAKEFLAGS="CFLAGS=\"$bla $asladdcflags\"" # Somehow, the flags specified here cause ASL to segfault on the AIX # compiler, so take them out. case $CC in xlc* | */xlc* | mpxlc* | */mpxlc*) ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-qtune=auto//g' -e 's/-qarch=auto//g' -e 's/-qcache=auto//g' -e 's/-qhot//g' -e 's/-O3/-O/g'` ;; pgcc* | */pgcc*) ASLMAKEFLAGS=`echo $ASLMAKEFLAGS | sed -e 's/-fast/-O1/g'` ;; esac # Limit GNU make to one thread. But remember that if we're building with # cl, ultimately we're going to use nmake, which knows nothing of this. if test "x$coin_cc_is_cl" != xtrue ; then rm -rf conftest.mak ($am_make -v > conftest.grp) 2>&5 if $EGREP GNU conftest.grp >&5 ; then ASLMAKEFLAGS="-j 1 $ASLMAKEFLAGS" fi rm -f conftest.grp fi fi # End if-then to construct ASLMAKEFLAGS. Announce the result. { echo "$as_me:$LINENO: Command line flags for (n)make \"$ASLMAKEFLAGS\"." >&5 echo "$as_me: Command line flags for (n)make \"$ASLMAKEFLAGS\"." >&6;} # generate the output files. ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files compile_MS_ASL" ac_config_files="$ac_config_files compile_Unix_ASL" ac_config_files="$ac_config_files coinasl.pc coinasl-uninstalled.pc" if test $coin_cc_is_cl != true ; then ASL_LIBS="-lm $ASL_LIBS" ASL_PCLIBS="-lm $ASL_PCLIBS" ASL_LIBS_INSTALLED="-lm $ASL_LIBS_INSTALLED" fi echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyASL $as_me 1.2.9, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyASL config.status 1.2.9 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "compile_MS_ASL" ) CONFIG_FILES="$CONFIG_FILES compile_MS_ASL" ;; "compile_Unix_ASL" ) CONFIG_FILES="$CONFIG_FILES compile_Unix_ASL" ;; "coinasl.pc" ) CONFIG_FILES="$CONFIG_FILES coinasl.pc" ;; "coinasl-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinasl-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@ASL_SVN_REV@,$ASL_SVN_REV,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@AMPLSOLVER_A@,$AMPLSOLVER_A,;t t s,@ASLMAKEFLAGS@,$ASLMAKEFLAGS,;t t s,@ASL_PCLIBS@,$ASL_PCLIBS,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi # Run the commands associated with the file. case $ac_file in compile_MS_ASL ) chmod a+x compile_MS_ASL ;; compile_Unix_ASL ) chmod a+x compile_Unix_ASL ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/ASL/config.guess0000755000076600007660000012706311405215221016404 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/HSL/0000755000076600007660000000000012214537471014077 5ustar coincoinIpopt-3.11.4/ThirdParty/HSL/CoinHslConfig.h0000644000076600007660000000230511574712775016747 0ustar coincoin/* Copyright (C) 2011 * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id$ * * Include file for the configuration of CoinHSL. * * On systems where the code is configured with the configure script * (i.e., compilation is always done with HAVE_CONFIG_H defined), this * header file includes the automatically generated header file, and * undefines macros that might configure with other Config.h files. * * On systems that are compiled in other ways (e.g., with the * Developer Studio), a header files is included to define those * macros that depend on the operating system and the compiler. The * macros that define the configuration of the particular user setting * (e.g., presence of other COIN-OR packages or third party code) are set * by the files config_*default.h. The project maintainer needs to remember * to update these file and choose reasonable defines. * A user can modify the default setting by editing the config_*default.h files. * */ #ifndef __COINHSLCONFIG_H__ #define __COINHSLCONFIG_H__ #ifdef HAVE_CONFIG_H #include "config_coinhsl.h" #else #include "config_coinhsl_default.h" #endif /* HAVE_CONFIG_H */ #endif /*__COINHSLCONFIG_H__*/ Ipopt-3.11.4/ThirdParty/HSL/config.sub0000755000076600007660000007772610762032301016071 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/HSL/config_coinhsl.h.in0000644000076600007660000000176612152365374017655 0ustar coincoin/* config_coinhsl.h.in. */ #ifndef __CONFIG_COINHSL_H__ #define __CONFIG_COINHSL_H__ /* Define to 1 if MA27 is available. */ #undef COINHSL_HAS_MA27 /* Define to 1 if MA28 is available. */ #undef COINHSL_HAS_MA28 /* Define to 1 if MA57 is available. */ #undef COINHSL_HAS_MA57 /* Define to 1 if MA77 is available. */ #undef COINHSL_HAS_MA77 /* Define to 1 if MA86 is available. */ #undef COINHSL_HAS_MA86 /* Define to 1 if MA97 is available. */ #undef COINHSL_HAS_MA97 /* Define to 1 if MC19 is available. */ #undef COINHSL_HAS_MC19 /* Define to 1 if MC68 is available. */ #undef COINHSL_HAS_MC68 /* Define to 1 if METIS is available */ #undef COINHSL_HAS_METIS /* Define to 1 if HSL library is from 2013 */ #undef COINHSL_HSL2013 /* Version number of project */ #undef COINHSL_VERSION /* Major Version number of project */ #undef COINHSL_VERSION_MAJOR /* Minor Version number of project */ #undef COINHSL_VERSION_MINOR /* Release Version number of project */ #undef COINHSL_VERSION_RELEASE #endif Ipopt-3.11.4/ThirdParty/HSL/coinhsl-uninstalled.pc.in0000644000076600007660000000042211574712775021017 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@ Name: HSL Description: Harwell Subroutines Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Cflags: -I@abs_source_dir@ -I@ABSBUILDDIR@ Libs: ${libdir}/libcoinhsl.la @HSL_PCLIBS@ Requires: @HSL_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/HSL/install-sh0000755000076600007660000002202110762032301016064 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSL/Makefile.am0000644000076600007660000000772712066060001016131 0ustar coincoin# Copyright (C) 2003, 2009 International Business Machines and others # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2696 2012-12-24 14:00:33Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = INSTALL.HSL if BUILD_COINHSL includecoindir = $(includedir)/coin/ThirdParty includecoin_HEADERS = lib_LTLIBRARIES = libcoinhsl.la libcoinhsl_la_SOURCES = coinhsl/common/deps.f if COIN_HAS_MC19 libcoinhsl_la_SOURCES += coinhsl/mc19/mc19d.f endif if COIN_HAS_MA27 libcoinhsl_la_SOURCES += coinhsl/ma27/ma27d.f endif if COIN_HAS_MA28 libcoinhsl_la_SOURCES += coinhsl/ma28/ma28d.f endif if COIN_HAS_MA57 libcoinhsl_la_SOURCES += coinhsl/ma57/ma57d.f endif if COIN_HAS_DEPSF90 libcoinhsl_la_SOURCES += coinhsl/common/deps90.f90 endif if COIN_HAS_HSL_MC68 libcoinhsl_la_SOURCES += coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 includecoin_HEADERS += coinhsl/hsl_mc68/C/hsl_mc68i.h endif if COIN_HAS_HSL_MA77 libcoinhsl_la_SOURCES += coinhsl/hsl_ma77/hsl_ma77d.f90 coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90 includecoin_HEADERS += coinhsl/hsl_ma77/C/hsl_ma77d.h endif if COIN_HAS_HSL_MA86 libcoinhsl_la_SOURCES += coinhsl/hsl_ma86/hsl_ma86d.f90 coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90 includecoin_HEADERS += coinhsl/hsl_ma86/C/hsl_ma86d.h endif if COIN_HAS_HSL_MA97 libcoinhsl_la_SOURCES += coinhsl/hsl_ma97/hsl_ma97d.f90 coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90 includecoin_HEADERS += coinhsl/hsl_ma97/C/hsl_ma97d.h endif if COIN_HAS_METIS else libcoinhsl_la_SOURCES += metis_dummy.c endif libcoinhsl_la_LDFLAGS = $(LT_LDFLAGS) # dependencies # need to define dependencies in terms of variables, since automake does not allow multiple rules for the same target ma77=hsl_ma77d ma86=hsl_ma86d ma97=hsl_ma97d mc68=hsl_mc68i $(ma77).lo: deps90.lo $(ma86).lo: deps90.lo $(ma97).lo: deps90.lo $(ma77)_ciface.lo: $(ma77).lo $(ma86)_ciface.lo: $(ma86).lo $(ma97)_ciface.lo: $(ma97).lo $(mc68)_ciface.lo: deps90.lo ############################################################################# # Generating a shared library for delay loading if EXTRA_SHARED_COMMAND $(HSL_SHARED_LIB): $(thirdpartylib_LTLIBRARIES) $(DEFFILE) bla=; \ for i in $(nodist_libcoinhsl_la_SOURCES); do \ case $$i in \ *.f) \ obj=`echo $$i| sed -e 's|\(.*\).[cf]|.libs/\1.$(OBJEXT)|g'` ;\ if test -r $$obj; then \ bla="$$bla $$obj" ;\ else \ bla="$$bla `echo $$i| sed -e 's|\(.*\).[cf]|\1.$(OBJEXT)|g'`" ;\ fi ;\ ;; \ esac ;\ done ;\ $(F77_SHARED_CMD) $$bla -o $(HSL_SHARED_LIB) $(F77_DLL_LINKFLAGS) if NEED_DEFFILE $(DEFFILE): config.status echo 'LIBRARY LIBHSL' > $(DEFFILE) echo 'EXPORTS' >> $(DEFFILE) for i in $(EXPORT_SYMBOLS); do \ echo " $$i" >> $(DEFFILE); \ done endif endif # EXTRA_SHARED_COMMAND install-exec-local: $(HSL_SHARED_LIB) if EXTRA_SHARED_COMMAND test -z "$(DESTDIR)$(libdir)/coin/ThirdParty" || $(mkdir_p) "$(DESTDIR)$(libdir)/coin/ThirdParty" $(libLTLIBRARIES_INSTALL) $(HSL_SHARED_LIB) "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" endif $(install_sh_DATA) config_coinhsl.h $(DESTDIR)$(includecoindir)/CoinHslConfig.h uninstall-local: rm -f "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" rm -f $(DESTDIR)$(includecoindir)/CoinHslConfig.h pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = coinhsl.pc endif # BUILD_COINHSL test: @echo "No test available for HSL." # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = $(HSL_SHARED_LIB) $(DEFFILE) *.mod # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = include BuildTools/Makemain.inc Ipopt-3.11.4/ThirdParty/HSL/configure.ac0000644000076600007660000002762112214331327016365 0ustar coincoin# Copyright (C) 2006, 2009 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2922 2013-09-12 12:25:59Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([ThirdPartyHSL],[1.4.2],[http://projects.coin-or.org/BuildTools/newticket]) AC_COPYRIGHT([ Copyright 2006, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package BuildTools which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR([coinhsl/common/deps.f]) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) AC_COIN_PROJECTDIR_INIT(COINHSL,5:2:4) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD # provide flag to allow compilation of a stand-alone shared library AC_ARG_ENABLE([loadable-library], [AC_HELP_STRING([--enable-loadable-library], [compile stand-alone shared library for delayed loading])]) # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(HSL) # Get the name of the C compiler (for a dummy program) AC_COIN_PROG_CC # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Check if pkg-config is available (to setup addlibs file) AC_COIN_HAS_PKGCONFIG # Get the linker flags (FLIBS) that are required for linking against this blas library AC_COIN_F77_WRAPPERS # Add FLIBS to HSL_PCLIBS, so that they get into the .pc files HSL_PCLIBS="$HSL_PCLIBS $FLIBS" # Need egrep later on AC_PROG_EGREP # Also set up the FC compiler variable, required to compile .f90 # files. We use the same compile and flags as F77 and FFLAGS, unless # the user has set FC and FCFLAGS explicitly. if test "$FC" = ""; then FC="$F77" fi if test "$FCFLAGS" = ""; then FCFLAGS="$FFLAGS" fi AC_PROG_FC # recent autotools versions can recognize OpenMP with the following macro # this would be useful when using MA86 and MA97 # AC_OPENMP # Initialize autotools if test x$enable_loadable_library = xyes; then flag=force_shared fi AC_COIN_INIT_AUTO_TOOLS([$flag]) ############################################################################# # Find out which files are available # ############################################################################# AC_MSG_CHECKING([whether we can compile Fortran 90 code]) AC_LANG_PUSH(Fortran 77) AC_COMPILE_IFELSE([ MODULE BLA PUBLIC TEST_TYPE DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB TYPE TEST_TYPE DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: TTVAR END TYPE TEST_TYPE END MODULE BLA],[have_f90=yes ; rm -f bla.mod],[have_f90=no]) AC_MSG_RESULT([$have_f90]) AC_LANG_POP(Fortran 77) coin_has_something=no hsl2013=no AC_DEFUN([MY_CHECK_HSLFILE], [AC_MSG_CHECKING([for m4_toupper(m4_bpatsubst($1, hsl_))]) AC_COIN_CHECK_FILE([$srcdir/coinhsl/$1/$1d.f], [AC_DEFINE(m4_toupper(COINHSL_HAS_$1), [1], Define to 1 if m4_toupper(m4_bpatsubst($1, hsl_)) is available.) coin_has_something=yes coin_has_$1=yes], [coin_has_$1=no]) AC_MSG_RESULT($coin_has_$1) AM_CONDITIONAL(m4_toupper(COIN_HAS_$1),[test $coin_has_$1 = yes]) ]) AC_DEFUN([MY_CHECK_HSLFILE_F90], [if test $have_f90 = yes; then AC_MSG_CHECKING([for m4_toupper(m4_bpatsubst($1, hsl_))]) AC_COIN_CHECK_FILE([$srcdir/coinhsl/$1/$1d.f90], [AC_DEFINE([COINHSL_HAS_]m4_toupper(m4_bpatsubst($1, hsl_)), [1], Define to 1 if m4_toupper(m4_bpatsubst($1, hsl_)) is available.) coin_has_something=yes coin_has_$1=yes], [coin_has_$1=no]) AC_MSG_RESULT($coin_has_$1) else coin_has_$1=no fi AM_CONDITIONAL(m4_toupper(COIN_HAS_$1),[test $coin_has_$1 = yes]) ]) MY_CHECK_HSLFILE(mc19) MY_CHECK_HSLFILE(ma27) MY_CHECK_HSLFILE(ma28) MY_CHECK_HSLFILE(ma57) MY_CHECK_HSLFILE_F90(hsl_ma77) MY_CHECK_HSLFILE_F90(hsl_ma86) MY_CHECK_HSLFILE_F90(hsl_ma97) if test $have_f90 = yes; then AC_MSG_CHECKING([for C interface to MC68]) AC_COIN_CHECK_FILE([$srcdir/coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90], [AC_DEFINE(COINHSL_HAS_MC68, [1], Define to 1 if MC68 is available.) coin_has_something=yes grep -q mc68_default_control_i $srcdir/coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 && hsl2013=yes coin_has_hsl_mc68=yes], [coin_has_hsl_mc68=no]) AC_MSG_RESULT($coin_has_hsl_mc68) else coin_has_hsl_mc68=no fi AM_CONDITIONAL(COIN_HAS_HSL_MC68,[test $coin_has_hsl_mc68 = yes]) # the F90 codes depend on deps90.f90 if test $coin_has_hsl_mc68$coin_has_hsl_ma77$coin_has_hsl_ma86$coin_has_hsl_ma97 != nononono ; then AC_MSG_CHECKING([for deps90.f90]) AC_COIN_CHECK_FILE([$srcdir/coinhsl/common/deps90.f90], [coin_has_depsf90=yes], [coin_has_depsf90=no]) AC_MSG_RESULT($coin_has_depsf90) if test $coin_has_depsf90 = no; then AC_MSG_ERROR([Required file common/deps90.f90 not found]) fi else coin_has_depsf90=no fi AM_CONDITIONAL(COIN_HAS_DEPSF90,[test $coin_has_depsf90 = yes]) # MA57, MA77, and MA86 require BLAS if test $coin_has_ma57$coin_has_hsl_ma77$coin_has_hsl_ma86 != nonono ; then AC_COIN_CHECK_PACKAGE_BLAS(HSL) if test $coin_has_blas != yes ; then AC_MSG_ERROR([Required package BLAS not found.]) fi else AM_CONDITIONAL(COIN_HAS_BLAS, [test 0 = 1]) fi # MA57, MA77, MA97, and MC68 can use Metis # if Metis is not available, then we compile a dummy metis.f that defines the Metis function symbol if test $coin_has_ma57$coin_has_hsl_ma77$coin_has_hsl_ma97$coin_has_hsl_mc68 != nononono ; then AC_COIN_CHECK_PACKAGE(Metis, [coinmetis], HSL) if test $coin_has_metis = yes ; then AC_DEFINE(COINHSL_HAS_METIS, [1], Define to 1 if METIS is available) fi else # do as if we had metis, so metis.f is not compiled AM_CONDITIONAL(COIN_HAS_METIS, [test 1 = 1]) fi # MC68 and MA77 changed the interface from HSL 2012 to HSL 2013, # so we check whether we have the 2013 version (for mc68, we did this test above) # and set a compiletime define if test $coin_has_hsl_ma77 = yes ; then grep -q ma77_solve_fredholm $srcdir/coinhsl/hsl_ma77/hsl_ma77d.f90 && hsl2013=yes fi if test $hsl2013 = yes ; then AC_DEFINE(COINHSL_HSL2013, [1], Define to 1 if HSL library is from 2013) AC_MSG_NOTICE([HSL source recognized as HSL 2013]) fi ############################################################################# # Setup build of loadable library # ############################################################################# HSL_SHARED_LIB= if test x$enable_loadable_library = xyes; then case $build in *-cygwin* | *-mingw*) HSL_SHARED_LIB=libhsl.dll F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' case $F77 in compile_f2c*) EXPORT_SYMBOLS= if test $coin_has_ma27 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma27ad_ ma27bd_ ma27cd_ ma27id_" fi if test $coin_has_ma28 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma28ad_" fi if test $coin_has_ma57 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma57ad_ ma57bd_ ma57cd_ ma57ed_ ma57id_" fi if test $coin_has_mc19 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc19ad_" fi if test $coin_has_hsl_ma77 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma77_default_control_ ma77_open_nelt_ ma77_open_ ma77_input_vars_ ma77_input_reals_ ma77_analyse_ ma77_factor_ ma77_factor_solve_ ma77_solve_ ma77_resid_ ma77_scale_ ma77_enquire_posdef_ ma77_enquire_indef_ ma77_alter_ ma77_restart_ ma77_finalise_" fi if test $coin_has_hsl_ma86 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma86_default_control_ ma86_analyse_ ma86_factor_ ma86_factor_solve_ ma86_solve_ ma86_finalise_" fi if test $coin_has_hsl_ma97 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma97_default_control_ ma97_analyse_ ma97_factor_ ma97_factor_solve_ ma97_solve_ ma97_finalise_ ma97_free_akeep_" fi if test $coin_has_hsl_mc68 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc68_default_control_ mc68_order_" fi F77_SHARED_CMD='$(F77) -shared $(FFLAGS) -def:$(DEFFILE)' DEFFILE='Export.def' ;; ifort* | IFORT*) EXPORT_SYMBOLS= if test $coin_has_ma27 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA27AD MA27BD MA27CD MA27ID" fi if test $coin_has_ma28 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA28AD" fi if test $coin_has_ma57 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA57AD MA57BD MA57CD MA57ED MA57ID" fi if test $coin_has_hsl_ma77 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA77_DEFAULT_CONTROL MA77_OPEN_NELT MA77_OPEN MA77_INPUT_VARS MA77_INPUT_REALS MA77_ANALYSE MA77_FACTOR MA77_FACTOR_SOLVE MA77_SOLVE MA77_RESID MA77_SCALE MA77_ENQUIRE_POSDEF MA77_ENQUIRE_INDEF MA77_ALTER MA77_RESTART MA77_FINALISE" fi if test $coin_has_mc19 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC19AD" fi if test $coin_has_hsl_ma86 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA86_DEFAULT_CONTROL MA86_ANALAYSE MA86_FACTOR MA86_FACTOR_SOLVE MA86_SOLVE MA86_FINALISE" fi if test $coin_has_hsl_ma97 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA97_DEFAULT_CONTROL MA97_ANALAYSE MA97_FACTOR MA97_FACTOR_SOLVE MA97_SOLVE MA97_FINALISE MA97_FREE_AKEEP" fi if test $coin_has_hsl_mc68 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC68_DEFAULT_CONTROL MC68_ORDER" fi DEFFILE='Export.def' F77_SHARED_CMD='$(F77) $(FFLAGS)' F77_DLL_LINKFLAGS='-link -dll -def:$(DEFFILE)' ;; *) F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' ;; esac ;; esac fi AC_SUBST(F77_SHARED_CMD) AC_SUBST(F77_DLL_LINKFLAGS) AC_SUBST(HSL_SHARED_LIB) AC_SUBST(EXPORT_SYMBOLS) AC_SUBST(DEFFILE) AM_CONDITIONAL([INSTALL_LOADABLE_LIBRARY],[test x$flag = xforce_shared]) AM_CONDITIONAL([NEED_DEFFILE], [test ! x"$DEFFILE" = x]) AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test ! x"$F77_SHARED_CMD" = x]) #AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test "$F77_SHARED_CMD" = x]) ############################################################################# # Write the output # ############################################################################# AC_CONFIG_FILES([Makefile]) # we build the library and setup the .pc files only if there is at least one source code # if there is no source code, then .pc files should not be setup, so for others this is as if we do not exist if test $coin_has_something = yes ; then AC_CONFIG_FILES([coinhsl.pc coinhsl-uninstalled.pc]) AC_CONFIG_HEADER(config.h config_coinhsl.h) else # in case something is left over from a previous build rm -f coinhsl.pc coinhsl-uninstalled.pc fi AM_CONDITIONAL(BUILD_COINHSL, [test $coin_has_something = yes]) AC_COIN_FINALIZE Ipopt-3.11.4/ThirdParty/HSL/depcomp0000755000076600007660000003710010762032301015441 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSL/INSTALL.HSL0000644000076600007660000001036411715751322015557 0ustar coincoinInstallation of certain Harwell subroutines. ********************************************************************* Note: It is YOUR RESPONSIBILITY to ensure that you are entitled to download and use this third party package. ********************************************************************* Information on the Harwell Subroutine Library (HSL) is available at http://www.hsl.rl.ac.uk/ For use by COIN-OR, STFC provides special packages at http://www.hsl.rl.ac.uk/ipopt/ which can be build independently or within the buildsystem in this directory. Different ways to use the HSL routines in COIN-OR Ipopt: -------------------------------------------------------- 1. If you download the HSL sources when you configure and compile Ipopt, those files will be compiled and included into the Ipopt executable. 2. You can also compile Ipopt without the HSL source files. In this case, Ipopt will be built without the HSL routines, but it will be possible to load a shared library at runtime that contains the HSL routines. For this, you need to provide this shared library. You can use the Makefile of the coinhsl package obtained from HSL or the Makefiles in this ThirdParty/HSL directory to generate this shared library. For details, please look at the "Compiling a shared library with HSL" below in this file. Instructions on providing the source code for ThirdParty/HSL: ------------------------------------------------------------- First, follow the links at http://www.hsl.rl.ac.uk/ipopt to register and obtain an archive coinhsl-x.y.z.tar.gz. Unpack this archive via gunzip coinhsl-x.y.z.tar.gz tar xf coinhsl-x.y.z.tar Then rename the directory coinhsl-x.y.z to coinhsl, or set a symbolic link: ln -s coinhsl-x.y.z coinhsl The configuration script will then detect which source files are available in your coinhsl package and prepare the Makefile accordingly. Note, that in difference to previous versions of ThirdParty/HSL, the configure script now checks for the HSL routines in subdirectories as they are given in the coinhsl-x.y.z.tar.gz archive. Compiling a shared library with HSL =================================== Note: This has not yet been successfully tested on all platforms. It should work on most UNIX systems (including Linux), and also on Cygwin and MSys. So far, it does not seem to work on AIX. If you already built an Ipopt executable or library, you can still add the functionality of the HSL routines without recompiling Ipopt. The following describes the mechanism that Ipopt uses to use a Harwell Subroutine: 1. If the Ipopt binary/library had been compiled with HSL files present, those subroutines are always available. 2. If you are selecting a Harwell subroutine (such as MA27 or MA57 as argument to the "linear_solver" option) which has not been available when Ipopt had been compiled, Ipopt will attempt to load a shared library containing this routine. The name of the shared library depends on the operating system: - Windows (Cygwin/MSys/MSVC): libhsl.dll - Darwin: libhsl.dylib - UNIX (including Linux): libhsl.so If this library is not found, or the selected routine is not available in this shared library, Ipopt will abort with an error message. An easy way to generate this shared library is to use the "configure" script in this directory, using the following instructions: 1. Put the HSL routines that are available to you into this directory (see above). 2. Run the configure script of ThirdParty/HSL (not the one in the Ipopt base directory!). As arguments, you would essentially provide the same flags as you would usually when you compile Ipopt, but you need to add the flag "--enable-loadable-library". Since you are compiling a shared library, you cannot specify the "--disable-shared" flag. 3. Then just run "make install". If it works, this should give you the shared library in the "lib" subdirectory in the directory where you run the ThirdParty/HSL/configure script. 4. To use the shared library, you need to make sure that Ipopt will find it when it is looking for it. On most UNIX systems, you need to put the shared library into a directory in the LD_LIBRARY_PATH search path, and on Windows it needs to be in the PATH. Ipopt-3.11.4/ThirdParty/HSL/Makefile.in0000644000076600007660000011746312156616201016152 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2003, 2009 International Business Machines and others # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_COINHSL_TRUE@@COIN_HAS_MC19_TRUE@am__append_1 = coinhsl/mc19/mc19d.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA27_TRUE@am__append_2 = coinhsl/ma27/ma27d.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@am__append_3 = coinhsl/ma28/ma28d.f @BUILD_COINHSL_TRUE@@COIN_HAS_MA57_TRUE@am__append_4 = coinhsl/ma57/ma57d.f @BUILD_COINHSL_TRUE@@COIN_HAS_DEPSF90_TRUE@am__append_5 = coinhsl/common/deps90.f90 @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MC68_TRUE@am__append_6 = coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MC68_TRUE@am__append_7 = coinhsl/hsl_mc68/C/hsl_mc68i.h @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA77_TRUE@am__append_8 = coinhsl/hsl_ma77/hsl_ma77d.f90 coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90 @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA77_TRUE@am__append_9 = coinhsl/hsl_ma77/C/hsl_ma77d.h @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA86_TRUE@am__append_10 = coinhsl/hsl_ma86/hsl_ma86d.f90 coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90 @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA86_TRUE@am__append_11 = coinhsl/hsl_ma86/C/hsl_ma86d.h @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA97_TRUE@am__append_12 = coinhsl/hsl_ma97/hsl_ma97d.f90 coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90 @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA97_TRUE@am__append_13 = coinhsl/hsl_ma97/C/hsl_ma97d.h @BUILD_COINHSL_TRUE@@COIN_HAS_METIS_FALSE@am__append_14 = metis_dummy.c DIST_COMMON = $(am__configure_deps) $(am__includecoin_HEADERS_DIST) \ $(srcdir)/BuildTools/Makemain.inc $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/coinhsl-uninstalled.pc.in \ $(srcdir)/coinhsl.pc.in $(srcdir)/config.h.in \ $(srcdir)/config_coinhsl.h.in $(top_srcdir)/configure \ config.guess config.sub depcomp install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_15 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_16 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h config_coinhsl.h CONFIG_CLEAN_FILES = coinhsl.pc coinhsl-uninstalled.pc am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" \ "$(DESTDIR)$(includecoindir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcoinhsl_la_LIBADD = am__libcoinhsl_la_SOURCES_DIST = coinhsl/common/deps.f \ coinhsl/mc19/mc19d.f coinhsl/ma27/ma27d.f coinhsl/ma28/ma28d.f \ coinhsl/ma57/ma57d.f coinhsl/common/deps90.f90 \ coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 \ coinhsl/hsl_ma77/hsl_ma77d.f90 \ coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90 \ coinhsl/hsl_ma86/hsl_ma86d.f90 \ coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90 \ coinhsl/hsl_ma97/hsl_ma97d.f90 \ coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90 metis_dummy.c @BUILD_COINHSL_TRUE@@COIN_HAS_MC19_TRUE@am__objects_1 = mc19d.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA27_TRUE@am__objects_2 = ma27d.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA28_TRUE@am__objects_3 = ma28d.lo @BUILD_COINHSL_TRUE@@COIN_HAS_MA57_TRUE@am__objects_4 = ma57d.lo @BUILD_COINHSL_TRUE@@COIN_HAS_DEPSF90_TRUE@am__objects_5 = deps90.lo @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MC68_TRUE@am__objects_6 = hsl_mc68i_ciface.lo @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA77_TRUE@am__objects_7 = \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA77_TRUE@ hsl_ma77d.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA77_TRUE@ hsl_ma77d_ciface.lo @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA86_TRUE@am__objects_8 = \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA86_TRUE@ hsl_ma86d.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA86_TRUE@ hsl_ma86d_ciface.lo @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA97_TRUE@am__objects_9 = \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA97_TRUE@ hsl_ma97d.lo \ @BUILD_COINHSL_TRUE@@COIN_HAS_HSL_MA97_TRUE@ hsl_ma97d_ciface.lo @BUILD_COINHSL_TRUE@@COIN_HAS_METIS_FALSE@am__objects_10 = \ @BUILD_COINHSL_TRUE@@COIN_HAS_METIS_FALSE@ metis_dummy.lo @BUILD_COINHSL_TRUE@am_libcoinhsl_la_OBJECTS = deps.lo \ @BUILD_COINHSL_TRUE@ $(am__objects_1) $(am__objects_2) \ @BUILD_COINHSL_TRUE@ $(am__objects_3) $(am__objects_4) \ @BUILD_COINHSL_TRUE@ $(am__objects_5) $(am__objects_6) \ @BUILD_COINHSL_TRUE@ $(am__objects_7) $(am__objects_8) \ @BUILD_COINHSL_TRUE@ $(am__objects_9) $(am__objects_10) libcoinhsl_la_OBJECTS = $(am_libcoinhsl_la_OBJECTS) @BUILD_COINHSL_TRUE@am_libcoinhsl_la_rpath = -rpath $(libdir) DEFAULT_INCLUDES = -I. -I$(srcdir) -I. -I. depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ FCCOMPILE = $(FC) $(AM_FCFLAGS) $(FCFLAGS) FCLD = $(FC) FCLINK = $(LIBTOOL) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcoinhsl_la_SOURCES) DIST_SOURCES = $(am__libcoinhsl_la_SOURCES_DIST) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) am__includecoin_HEADERS_DIST = coinhsl/hsl_mc68/C/hsl_mc68i.h \ coinhsl/hsl_ma77/C/hsl_ma77d.h coinhsl/hsl_ma86/C/hsl_ma86d.h \ coinhsl/hsl_ma97/C/hsl_ma97d.h includecoinHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includecoin_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_COINHSL_FALSE = @BUILD_COINHSL_FALSE@ BUILD_COINHSL_TRUE = @BUILD_COINHSL_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COINHSL_SVN_REV = @COINHSL_SVN_REV@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_DEPSF90_FALSE = @COIN_HAS_DEPSF90_FALSE@ COIN_HAS_DEPSF90_TRUE = @COIN_HAS_DEPSF90_TRUE@ COIN_HAS_HSL_MA77_FALSE = @COIN_HAS_HSL_MA77_FALSE@ COIN_HAS_HSL_MA77_TRUE = @COIN_HAS_HSL_MA77_TRUE@ COIN_HAS_HSL_MA86_FALSE = @COIN_HAS_HSL_MA86_FALSE@ COIN_HAS_HSL_MA86_TRUE = @COIN_HAS_HSL_MA86_TRUE@ COIN_HAS_HSL_MA97_FALSE = @COIN_HAS_HSL_MA97_FALSE@ COIN_HAS_HSL_MA97_TRUE = @COIN_HAS_HSL_MA97_TRUE@ COIN_HAS_HSL_MC68_FALSE = @COIN_HAS_HSL_MC68_FALSE@ COIN_HAS_HSL_MC68_TRUE = @COIN_HAS_HSL_MC68_TRUE@ COIN_HAS_MA27_FALSE = @COIN_HAS_MA27_FALSE@ COIN_HAS_MA27_TRUE = @COIN_HAS_MA27_TRUE@ COIN_HAS_MA28_FALSE = @COIN_HAS_MA28_FALSE@ COIN_HAS_MA28_TRUE = @COIN_HAS_MA28_TRUE@ COIN_HAS_MA57_FALSE = @COIN_HAS_MA57_FALSE@ COIN_HAS_MA57_TRUE = @COIN_HAS_MA57_TRUE@ COIN_HAS_MC19_FALSE = @COIN_HAS_MC19_FALSE@ COIN_HAS_MC19_TRUE = @COIN_HAS_MC19_TRUE@ COIN_HAS_METIS_FALSE = @COIN_HAS_METIS_FALSE@ COIN_HAS_METIS_TRUE = @COIN_HAS_METIS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFFILE = @DEFFILE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXPORT_SYMBOLS = @EXPORT_SYMBOLS@ EXTRA_SHARED_COMMAND_FALSE = @EXTRA_SHARED_COMMAND_FALSE@ EXTRA_SHARED_COMMAND_TRUE = @EXTRA_SHARED_COMMAND_TRUE@ F77 = @F77@ F77_DLL_LINKFLAGS = @F77_DLL_LINKFLAGS@ F77_SHARED_CMD = @F77_SHARED_CMD@ FC = @FC@ FCFLAGS = @FCFLAGS@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ HSL_PCLIBS = @HSL_PCLIBS@ HSL_PCREQUIRES = @HSL_PCREQUIRES@ HSL_SHARED_LIB = @HSL_SHARED_LIB@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_LOADABLE_LIBRARY_FALSE = @INSTALL_LOADABLE_LIBRARY_FALSE@ INSTALL_LOADABLE_LIBRARY_TRUE = @INSTALL_LOADABLE_LIBRARY_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ METIS_CFLAGS = @METIS_CFLAGS@ METIS_CFLAGS_INSTALLED = @METIS_CFLAGS_INSTALLED@ METIS_DATA = @METIS_DATA@ METIS_DATA_INSTALLED = @METIS_DATA_INSTALLED@ METIS_DEPENDENCIES = @METIS_DEPENDENCIES@ METIS_LIBS = @METIS_LIBS@ METIS_LIBS_INSTALLED = @METIS_LIBS_INSTALLED@ MPICC = @MPICC@ MPIF77 = @MPIF77@ NEED_DEFFILE_FALSE = @NEED_DEFFILE_FALSE@ NEED_DEFFILE_TRUE = @NEED_DEFFILE_TRUE@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_FC = @ac_ct_FC@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = INSTALL.HSL $(am__append_15) @BUILD_COINHSL_TRUE@includecoindir = $(includedir)/coin/ThirdParty @BUILD_COINHSL_TRUE@includecoin_HEADERS = $(am__append_7) \ @BUILD_COINHSL_TRUE@ $(am__append_9) $(am__append_11) \ @BUILD_COINHSL_TRUE@ $(am__append_13) @BUILD_COINHSL_TRUE@lib_LTLIBRARIES = libcoinhsl.la @BUILD_COINHSL_TRUE@libcoinhsl_la_SOURCES = coinhsl/common/deps.f \ @BUILD_COINHSL_TRUE@ $(am__append_1) $(am__append_2) \ @BUILD_COINHSL_TRUE@ $(am__append_3) $(am__append_4) \ @BUILD_COINHSL_TRUE@ $(am__append_5) $(am__append_6) \ @BUILD_COINHSL_TRUE@ $(am__append_8) $(am__append_10) \ @BUILD_COINHSL_TRUE@ $(am__append_12) $(am__append_14) @BUILD_COINHSL_TRUE@libcoinhsl_la_LDFLAGS = $(LT_LDFLAGS) # dependencies # need to define dependencies in terms of variables, since automake does not allow multiple rules for the same target @BUILD_COINHSL_TRUE@ma77 = hsl_ma77d @BUILD_COINHSL_TRUE@ma86 = hsl_ma86d @BUILD_COINHSL_TRUE@ma97 = hsl_ma97d @BUILD_COINHSL_TRUE@mc68 = hsl_mc68i @BUILD_COINHSL_TRUE@pkgconfiglibdir = $(libdir)/pkgconfig @BUILD_COINHSL_TRUE@pkgconfiglib_DATA = coinhsl.pc # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) ######################################################################## # Maintainer Stuff # ######################################################################## CLEANFILES = $(HSL_SHARED_LIB) $(DEFFILE) *.mod # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = $(am__append_16) $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: config.h config_coinhsl.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .f .f90 .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ config_coinhsl.h: stamp-h2 @if test ! -f $@; then \ rm -f stamp-h2; \ $(MAKE) stamp-h2; \ else :; fi stamp-h2: $(srcdir)/config_coinhsl.h.in $(top_builddir)/config.status @rm -f stamp-h2 cd $(top_builddir) && $(SHELL) ./config.status config_coinhsl.h distclean-hdr: -rm -f config.h stamp-h1 config_coinhsl.h stamp-h2 coinhsl.pc: $(top_builddir)/config.status $(srcdir)/coinhsl.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ coinhsl-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/coinhsl-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcoinhsl.la: $(libcoinhsl_la_OBJECTS) $(libcoinhsl_la_DEPENDENCIES) $(F77LINK) $(am_libcoinhsl_la_rpath) $(libcoinhsl_la_LDFLAGS) $(libcoinhsl_la_OBJECTS) $(libcoinhsl_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metis_dummy.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< deps.lo: coinhsl/common/deps.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o deps.lo `test -f 'coinhsl/common/deps.f' || echo '$(srcdir)/'`coinhsl/common/deps.f mc19d.lo: coinhsl/mc19/mc19d.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o mc19d.lo `test -f 'coinhsl/mc19/mc19d.f' || echo '$(srcdir)/'`coinhsl/mc19/mc19d.f ma27d.lo: coinhsl/ma27/ma27d.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ma27d.lo `test -f 'coinhsl/ma27/ma27d.f' || echo '$(srcdir)/'`coinhsl/ma27/ma27d.f ma28d.lo: coinhsl/ma28/ma28d.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ma28d.lo `test -f 'coinhsl/ma28/ma28d.f' || echo '$(srcdir)/'`coinhsl/ma28/ma28d.f ma57d.lo: coinhsl/ma57/ma57d.f $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) -c -o ma57d.lo `test -f 'coinhsl/ma57/ma57d.f' || echo '$(srcdir)/'`coinhsl/ma57/ma57d.f .f90.o: $(FCCOMPILE) -c -o $@ $< .f90.obj: $(FCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f90.lo: $(LTFCCOMPILE) -c -o $@ $< deps90.lo: coinhsl/common/deps90.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o deps90.lo `test -f 'coinhsl/common/deps90.f90' || echo '$(srcdir)/'`coinhsl/common/deps90.f90 hsl_mc68i_ciface.lo: coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_mc68i_ciface.lo `test -f 'coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90' || echo '$(srcdir)/'`coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 hsl_ma77d.lo: coinhsl/hsl_ma77/hsl_ma77d.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma77d.lo `test -f 'coinhsl/hsl_ma77/hsl_ma77d.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma77/hsl_ma77d.f90 hsl_ma77d_ciface.lo: coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma77d_ciface.lo `test -f 'coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma77/C/hsl_ma77d_ciface.f90 hsl_ma86d.lo: coinhsl/hsl_ma86/hsl_ma86d.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma86d.lo `test -f 'coinhsl/hsl_ma86/hsl_ma86d.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma86/hsl_ma86d.f90 hsl_ma86d_ciface.lo: coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma86d_ciface.lo `test -f 'coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma86/C/hsl_ma86d_ciface.f90 hsl_ma97d.lo: coinhsl/hsl_ma97/hsl_ma97d.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma97d.lo `test -f 'coinhsl/hsl_ma97/hsl_ma97d.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma97/hsl_ma97d.f90 hsl_ma97d_ciface.lo: coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90 $(LIBTOOL) --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) -c -o hsl_ma97d_ciface.lo `test -f 'coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90' || echo '$(srcdir)/'`coinhsl/hsl_ma97/C/hsl_ma97d_ciface.f90 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done install-includecoinHEADERS: $(includecoin_HEADERS) @$(NORMAL_INSTALL) test -z "$(includecoindir)" || $(mkdir_p) "$(DESTDIR)$(includecoindir)" @list='$(includecoin_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includecoinHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includecoindir)/$$f'"; \ $(includecoinHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includecoindir)/$$f"; \ done uninstall-includecoinHEADERS: @$(NORMAL_UNINSTALL) @list='$(includecoin_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includecoindir)/$$f'"; \ rm -f "$(DESTDIR)$(includecoindir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in config_coinhsl.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_coinhsl.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in config_coinhsl.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_coinhsl.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools $(distdir)/coinhsl/hsl_ma77/C $(distdir)/coinhsl/hsl_ma86/C $(distdir)/coinhsl/hsl_ma97/C $(distdir)/coinhsl/hsl_mc68/C @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) config.h \ config_coinhsl.h installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(includecoindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @BUILD_COINHSL_FALSE@uninstall-local: @BUILD_COINHSL_FALSE@install-exec-local: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includecoinHEADERS install-pkgconfiglibDATA install-exec-am: install-exec-local install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includecoinHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-pkgconfiglibDATA .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-exec-local \ install-includecoinHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man install-pkgconfiglibDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-includecoinHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-pkgconfiglibDATA @BUILD_COINHSL_TRUE@$(ma77).lo: deps90.lo @BUILD_COINHSL_TRUE@$(ma86).lo: deps90.lo @BUILD_COINHSL_TRUE@$(ma97).lo: deps90.lo @BUILD_COINHSL_TRUE@$(ma77)_ciface.lo: $(ma77).lo @BUILD_COINHSL_TRUE@$(ma86)_ciface.lo: $(ma86).lo @BUILD_COINHSL_TRUE@$(ma97)_ciface.lo: $(ma97).lo @BUILD_COINHSL_TRUE@$(mc68)_ciface.lo: deps90.lo ############################################################################# # Generating a shared library for delay loading @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@$(HSL_SHARED_LIB): $(thirdpartylib_LTLIBRARIES) $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla=; \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ for i in $(nodist_libcoinhsl_la_SOURCES); do \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ case $$i in \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ *.f) \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ obj=`echo $$i| sed -e 's|\(.*\).[cf]|.libs/\1.$(OBJEXT)|g'` ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ if test -r $$obj; then \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla="$$bla $$obj" ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ else \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ bla="$$bla `echo $$i| sed -e 's|\(.*\).[cf]|\1.$(OBJEXT)|g'`" ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ fi ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ ;; \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ esac ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ done ;\ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ $(F77_SHARED_CMD) $$bla -o $(HSL_SHARED_LIB) $(F77_DLL_LINKFLAGS) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@$(DEFFILE): config.status @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo 'LIBRARY LIBHSL' > $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo 'EXPORTS' >> $(DEFFILE) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ for i in $(EXPORT_SYMBOLS); do \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ echo " $$i" >> $(DEFFILE); \ @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@@NEED_DEFFILE_TRUE@ done @BUILD_COINHSL_TRUE@install-exec-local: $(HSL_SHARED_LIB) @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ test -z "$(DESTDIR)$(libdir)/coin/ThirdParty" || $(mkdir_p) "$(DESTDIR)$(libdir)/coin/ThirdParty" @BUILD_COINHSL_TRUE@@EXTRA_SHARED_COMMAND_TRUE@ $(libLTLIBRARIES_INSTALL) $(HSL_SHARED_LIB) "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" @BUILD_COINHSL_TRUE@ $(install_sh_DATA) config_coinhsl.h $(DESTDIR)$(includecoindir)/CoinHslConfig.h @BUILD_COINHSL_TRUE@uninstall-local: @BUILD_COINHSL_TRUE@ rm -f "$(DESTDIR)$(libdir)/coin/ThirdParty/$(HSL_SHARED_LIB)" @BUILD_COINHSL_TRUE@ rm -f $(DESTDIR)$(includecoindir)/CoinHslConfig.h test: @echo "No test available for HSL." install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ThirdParty/HSL/ltmain.sh0000755000076600007660000057753010762032301015727 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/ThirdParty/HSL/missing0000755000076600007660000002540610762032301015471 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/ThirdParty/HSL/config_coinhsl_default.h0000644000076600007660000000233012152365374020740 0ustar coincoin /***************************************************************************/ /* HERE DEFINE THE PROJECT SPECIFIC PUBLIC MACROS */ /* These are only in effect in a setting that doesn't use configure */ /***************************************************************************/ /* Version number of project */ #define COINHSL_VERSION "1.4" /* Major Version number of project */ #define COINHSL_VERSION_MAJOR 1 /* Minor Version number of project */ #define COINHSL_VERSION_MINOR 4 /* Release Version number of project */ #define COINHSL_VERSION_RELEASE 9999 /* Define to 1 if MA27 is available */ #define COINHSL_HAS_MA27 1 /* Define to 1 if MA28 is available */ /* #undef COINHSL_HAS_MA28 */ /* Define to 1 if MA57 is available */ /* #undef COINHSL_HAS_MA57 */ /* Define to 1 if MA77 is available */ /* #undef COINHSL_HAS_MA77 */ /* Define to 1 if MA86 is available */ /* #undef COINHSL_HAS_MA86 */ /* Define to 1 if MA97 is available */ /* #undef COINHSL_HAS_MA97 */ /* Define to 1 if MC19 is available */ #define COINHSL_HAS_MC19 1 /* Define to 1 if MC68 is available. */ /* #undef COINHSL_HAS_MC68 */ /* Define to 1 if METIS is available */ /* #undef COINHSL_HAS_METIS */ Ipopt-3.11.4/ThirdParty/HSL/configure0000755000076600007660000337606312214331327016020 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for ThirdPartyHSL 1.4.2. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2006, 2009 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package BuildTools which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='ThirdPartyHSL' PACKAGE_TARNAME='thirdpartyhsl' PACKAGE_VERSION='1.4.2' PACKAGE_STRING='ThirdPartyHSL 1.4.2' PACKAGE_BUGREPORT='http://projects.coin-or.org/BuildTools/newticket' ac_unique_file="coinhsl/common/deps.f" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion COINHSL_SVN_REV build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED FLIBS EGREP FC FCFLAGS ac_ct_FC LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS COIN_HAS_MC19_TRUE COIN_HAS_MC19_FALSE COIN_HAS_MA27_TRUE COIN_HAS_MA27_FALSE COIN_HAS_MA28_TRUE COIN_HAS_MA28_FALSE COIN_HAS_MA57_TRUE COIN_HAS_MA57_FALSE COIN_HAS_HSL_MA77_TRUE COIN_HAS_HSL_MA77_FALSE COIN_HAS_HSL_MA86_TRUE COIN_HAS_HSL_MA86_FALSE COIN_HAS_HSL_MA97_TRUE COIN_HAS_HSL_MA97_FALSE COIN_HAS_HSL_MC68_TRUE COIN_HAS_HSL_MC68_FALSE COIN_HAS_DEPSF90_TRUE COIN_HAS_DEPSF90_FALSE BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED HSL_CFLAGS HSL_LIBS HSL_PCLIBS HSL_PCREQUIRES HSL_DEPENDENCIES HSL_CFLAGS_INSTALLED HSL_LIBS_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE METIS_LIBS METIS_CFLAGS METIS_DATA METIS_DEPENDENCIES METIS_LIBS_INSTALLED METIS_CFLAGS_INSTALLED METIS_DATA_INSTALLED COIN_HAS_METIS_TRUE COIN_HAS_METIS_FALSE F77_SHARED_CMD F77_DLL_LINKFLAGS HSL_SHARED_LIB EXPORT_SYMBOLS DEFFILE INSTALL_LOADABLE_LIBRARY_TRUE INSTALL_LOADABLE_LIBRARY_FALSE NEED_DEFFILE_TRUE NEED_DEFFILE_FALSE EXTRA_SHARED_COMMAND_TRUE EXTRA_SHARED_COMMAND_FALSE BUILD_COINHSL_TRUE BUILD_COINHSL_FALSE LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_FC_set=${FC+set} ac_env_FC_value=$FC ac_cv_env_FC_set=${FC+set} ac_cv_env_FC_value=$FC ac_env_FCFLAGS_set=${FCFLAGS+set} ac_env_FCFLAGS_value=$FCFLAGS ac_cv_env_FCFLAGS_set=${FCFLAGS+set} ac_cv_env_FCFLAGS_value=$FCFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ThirdPartyHSL 1.4.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ThirdPartyHSL 1.4.2:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-loadable-library compile stand-alone shared library for delayed loading --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-hsl compile project HSL with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --disable-pkg-config disable use of pkg-config (if available) --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-interpackage-dependencies disables deduction of Makefile dependencies from package linker flags Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-hsl-verbosity specify the debug verbosity level for project HSL --with-hsl-checklevel specify the sanity check level for project HSL --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-blas-lib linker flags for using package Blas --with-blas-incdir directory with header files for using package Blas --with-blas-datadir directory with data files for using package Blas --with-metis-lib linker flags for using package Metis --with-metis-incdir directory with header files for using package Metis --with-metis-datadir directory with data files for using package Metis Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler PKG_CONFIG path to pkg-config utility FC Fortran compiler command FCFLAGS Fortran compiler flags CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ThirdPartyHSL configure 1.4.2 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2006, 2009 International Business Machines and others. All Rights Reserved. This file is part of the open source package BuildTools which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ThirdPartyHSL $as_me 1.4.2, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define COINHSL_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=COINHSL # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then COINHSL_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define COINHSL_SVN_REV $COINHSL_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=5:2:4 ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # provide flag to allow compilation of a stand-alone shared library # Check whether --enable-loadable-library or --disable-loadable-library was given. if test "${enable_loadable_library+set}" = set; then enableval="$enable_loadable_library" fi; # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-hsl or --disable-debug-hsl was given. if test "${enable_debug_hsl+set}" = set; then enableval="$enable_debug_hsl" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-hsl" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-hsl" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([HSL], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-hsl-verbosity or --without-hsl-verbosity was given. if test "${with_hsl_verbosity+set}" = set; then withval="$with_hsl_verbosity" if test "$withval" = yes; then withval=1 fi coin_hsl_verbosity=$withval else coin_hsl_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_HSL_VERBOSITY $coin_hsl_verbosity _ACEOF # Check whether --with-hsl-checklevel or --without-hsl-checklevel was given. if test "${with_hsl_checklevel+set}" = set; then withval="$with_hsl_checklevel" if test "$withval" = yes; then withval=1 fi coin_hsl_checklevel=$withval else coin_hsl_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_HSL_CHECKLEVEL $coin_hsl_checklevel _ACEOF # m4_ifvaln([HSL], # Get the name of the C compiler (for a dummy program) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the Fortran compiler and appropriate compiler options case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:3497:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Check if pkg-config is available (to setup addlibs file) # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Get the linker flags (FLIBS) that are required for linking against this blas library # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:4276: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:4354: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Add FLIBS to HSL_PCLIBS, so that they get into the .pc files HSL_PCLIBS="$HSL_PCLIBS $FLIBS" # Need egrep later on echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep # Also set up the FC compiler variable, required to compile .f90 # files. We use the same compile and flags as F77 and FFLAGS, unless # the user has set FC and FCFLAGS explicitly. if test "$FC" = ""; then FC="$F77" fi if test "$FCFLAGS" = ""; then FCFLAGS="$FFLAGS" fi ac_ext=${FC_SRCEXT-f} ac_compile='$FC -c $FCFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext >&5' ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $FCFLAGS_SRCEXT conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_fc_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in f95 fort xlf95 ifc efc pgf95 lf95 gfortran f90 xlf90 pgf90 epcf90 g77 f77 xlf frt pgf77 fort77 fl32 af77 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$FC"; then ac_cv_prog_FC="$FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_FC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi FC=$ac_cv_prog_FC if test -n "$FC"; then echo "$as_me:$LINENO: result: $FC" >&5 echo "${ECHO_T}$FC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$FC" && break done fi if test -z "$FC"; then ac_ct_FC=$FC for ac_prog in f95 fort xlf95 ifc efc pgf95 lf95 gfortran f90 xlf90 pgf90 epcf90 g77 f77 xlf frt pgf77 fort77 fl32 af77 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_FC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_FC"; then ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_FC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_FC=$ac_cv_prog_ac_ct_FC if test -n "$ac_ct_FC"; then echo "$as_me:$LINENO: result: $ac_ct_FC" >&5 echo "${ECHO_T}$ac_ct_FC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_FC" && break done FC=$ac_ct_FC fi # Provide some information about the compiler. echo "$as_me:5232:" \ "checking for Fortran compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran compiler... $ECHO_C" >&6 if test "${ac_cv_fc_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_fc_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_fc_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_fc_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FCFLAGS+set} ac_save_FFLAGS=$FCFLAGS FCFLAGS= echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5 echo $ECHO_N "checking whether $FC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_fc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FCFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_fc_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_fc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_fc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5 echo "${ECHO_T}$ac_cv_prog_fc_g" >&6 if test "$ac_test_FFLAGS" = set; then FCFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_fc_g = yes; then if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-g -O2" else FCFLAGS="-g" fi else if test "x$ac_cv_fc_compiler_gnu" = xyes; then FCFLAGS="-O2" else FCFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # recent autotools versions can recognize OpenMP with the following macro # this would be useful when using MA86 and MA97 # AC_OPENMP # Initialize autotools if test x$enable_loadable_library = xyes; then flag=force_shared fi { # START coin_disable_shared=no # Test if force_shared has been set if test "x$flag" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='thirdpartyhsl' VERSION='1.4.2' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7020 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/BuildTools/newticket ## ## --------------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9497: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9501: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9765: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9769: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9869: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9873: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14746: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14750: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14850: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14854: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16420: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16424: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16524: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16528: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18731: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18735: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18999: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19003: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19103: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19107: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } ############################################################################# # Find out which files are available # ############################################################################# echo "$as_me:$LINENO: checking whether we can compile Fortran 90 code" >&5 echo $ECHO_N "checking whether we can compile Fortran 90 code... $ECHO_C" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu cat >conftest.$ac_ext <<_ACEOF MODULE BLA PUBLIC TEST_TYPE DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: BLUBB TYPE TEST_TYPE DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: TTVAR END TYPE TEST_TYPE END MODULE BLA _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then have_f90=yes ; rm -f bla.mod else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 have_f90=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $have_f90" >&5 echo "${ECHO_T}$have_f90" >&6 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu coin_has_something=no hsl2013=no echo "$as_me:$LINENO: checking for MC19" >&5 echo $ECHO_N "checking for MC19... $ECHO_C" >&6 if test -r $srcdir/coinhsl/mc19/mc19d.f; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MC19 1 _ACEOF coin_has_something=yes coin_has_mc19=yes : else coin_has_mc19=no : fi echo "$as_me:$LINENO: result: $coin_has_mc19" >&5 echo "${ECHO_T}$coin_has_mc19" >&6 if test $coin_has_mc19 = yes; then COIN_HAS_MC19_TRUE= COIN_HAS_MC19_FALSE='#' else COIN_HAS_MC19_TRUE='#' COIN_HAS_MC19_FALSE= fi echo "$as_me:$LINENO: checking for MA27" >&5 echo $ECHO_N "checking for MA27... $ECHO_C" >&6 if test -r $srcdir/coinhsl/ma27/ma27d.f; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA27 1 _ACEOF coin_has_something=yes coin_has_ma27=yes : else coin_has_ma27=no : fi echo "$as_me:$LINENO: result: $coin_has_ma27" >&5 echo "${ECHO_T}$coin_has_ma27" >&6 if test $coin_has_ma27 = yes; then COIN_HAS_MA27_TRUE= COIN_HAS_MA27_FALSE='#' else COIN_HAS_MA27_TRUE='#' COIN_HAS_MA27_FALSE= fi echo "$as_me:$LINENO: checking for MA28" >&5 echo $ECHO_N "checking for MA28... $ECHO_C" >&6 if test -r $srcdir/coinhsl/ma28/ma28d.f; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA28 1 _ACEOF coin_has_something=yes coin_has_ma28=yes : else coin_has_ma28=no : fi echo "$as_me:$LINENO: result: $coin_has_ma28" >&5 echo "${ECHO_T}$coin_has_ma28" >&6 if test $coin_has_ma28 = yes; then COIN_HAS_MA28_TRUE= COIN_HAS_MA28_FALSE='#' else COIN_HAS_MA28_TRUE='#' COIN_HAS_MA28_FALSE= fi echo "$as_me:$LINENO: checking for MA57" >&5 echo $ECHO_N "checking for MA57... $ECHO_C" >&6 if test -r $srcdir/coinhsl/ma57/ma57d.f; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA57 1 _ACEOF coin_has_something=yes coin_has_ma57=yes : else coin_has_ma57=no : fi echo "$as_me:$LINENO: result: $coin_has_ma57" >&5 echo "${ECHO_T}$coin_has_ma57" >&6 if test $coin_has_ma57 = yes; then COIN_HAS_MA57_TRUE= COIN_HAS_MA57_FALSE='#' else COIN_HAS_MA57_TRUE='#' COIN_HAS_MA57_FALSE= fi if test $have_f90 = yes; then echo "$as_me:$LINENO: checking for MA77" >&5 echo $ECHO_N "checking for MA77... $ECHO_C" >&6 if test -r $srcdir/coinhsl/hsl_ma77/hsl_ma77d.f90; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA77 1 _ACEOF coin_has_something=yes coin_has_hsl_ma77=yes : else coin_has_hsl_ma77=no : fi echo "$as_me:$LINENO: result: $coin_has_hsl_ma77" >&5 echo "${ECHO_T}$coin_has_hsl_ma77" >&6 else coin_has_hsl_ma77=no fi if test $coin_has_hsl_ma77 = yes; then COIN_HAS_HSL_MA77_TRUE= COIN_HAS_HSL_MA77_FALSE='#' else COIN_HAS_HSL_MA77_TRUE='#' COIN_HAS_HSL_MA77_FALSE= fi if test $have_f90 = yes; then echo "$as_me:$LINENO: checking for MA86" >&5 echo $ECHO_N "checking for MA86... $ECHO_C" >&6 if test -r $srcdir/coinhsl/hsl_ma86/hsl_ma86d.f90; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA86 1 _ACEOF coin_has_something=yes coin_has_hsl_ma86=yes : else coin_has_hsl_ma86=no : fi echo "$as_me:$LINENO: result: $coin_has_hsl_ma86" >&5 echo "${ECHO_T}$coin_has_hsl_ma86" >&6 else coin_has_hsl_ma86=no fi if test $coin_has_hsl_ma86 = yes; then COIN_HAS_HSL_MA86_TRUE= COIN_HAS_HSL_MA86_FALSE='#' else COIN_HAS_HSL_MA86_TRUE='#' COIN_HAS_HSL_MA86_FALSE= fi if test $have_f90 = yes; then echo "$as_me:$LINENO: checking for MA97" >&5 echo $ECHO_N "checking for MA97... $ECHO_C" >&6 if test -r $srcdir/coinhsl/hsl_ma97/hsl_ma97d.f90; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MA97 1 _ACEOF coin_has_something=yes coin_has_hsl_ma97=yes : else coin_has_hsl_ma97=no : fi echo "$as_me:$LINENO: result: $coin_has_hsl_ma97" >&5 echo "${ECHO_T}$coin_has_hsl_ma97" >&6 else coin_has_hsl_ma97=no fi if test $coin_has_hsl_ma97 = yes; then COIN_HAS_HSL_MA97_TRUE= COIN_HAS_HSL_MA97_FALSE='#' else COIN_HAS_HSL_MA97_TRUE='#' COIN_HAS_HSL_MA97_FALSE= fi if test $have_f90 = yes; then echo "$as_me:$LINENO: checking for C interface to MC68" >&5 echo $ECHO_N "checking for C interface to MC68... $ECHO_C" >&6 if test -r $srcdir/coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_MC68 1 _ACEOF coin_has_something=yes grep -q mc68_default_control_i $srcdir/coinhsl/hsl_mc68/C/hsl_mc68i_ciface.f90 && hsl2013=yes coin_has_hsl_mc68=yes : else coin_has_hsl_mc68=no : fi echo "$as_me:$LINENO: result: $coin_has_hsl_mc68" >&5 echo "${ECHO_T}$coin_has_hsl_mc68" >&6 else coin_has_hsl_mc68=no fi if test $coin_has_hsl_mc68 = yes; then COIN_HAS_HSL_MC68_TRUE= COIN_HAS_HSL_MC68_FALSE='#' else COIN_HAS_HSL_MC68_TRUE='#' COIN_HAS_HSL_MC68_FALSE= fi # the F90 codes depend on deps90.f90 if test $coin_has_hsl_mc68$coin_has_hsl_ma77$coin_has_hsl_ma86$coin_has_hsl_ma97 != nononono ; then echo "$as_me:$LINENO: checking for deps90.f90" >&5 echo $ECHO_N "checking for deps90.f90... $ECHO_C" >&6 if test -r $srcdir/coinhsl/common/deps90.f90; then coin_has_depsf90=yes : else coin_has_depsf90=no : fi echo "$as_me:$LINENO: result: $coin_has_depsf90" >&5 echo "${ECHO_T}$coin_has_depsf90" >&6 if test $coin_has_depsf90 = no; then { { echo "$as_me:$LINENO: error: Required file common/deps90.f90 not found" >&5 echo "$as_me: error: Required file common/deps90.f90 not found" >&2;} { (exit 1); exit 1; }; } fi else coin_has_depsf90=no fi if test $coin_has_depsf90 = yes; then COIN_HAS_DEPSF90_TRUE= COIN_HAS_DEPSF90_FALSE='#' else COIN_HAS_DEPSF90_TRUE='#' COIN_HAS_DEPSF90_FALSE= fi # MA57, MA77, and MA86 require BLAS if test $coin_has_ma57$coin_has_hsl_ma77$coin_has_hsl_ma86 != nonono ; then # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" use_blas="$withval" else use_blas= fi; # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference # Check whether --with-blas-lib or --without-blas-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" use_blas=BUILD fi; # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 coin_has_blas=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas=skipping fi done fi if test "$coin_has_blas" != skipping; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas=skipping fi fi; fi BLAS_LIBS= BLAS_CFLAGS= BLAS_DATA= BLAS_DEPENDENCIES= BLAS_PCLIBS= BLAS_PCREQUIRES= BLAS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_LIBS="$withval" BLAS_PCLIBS="$withval" HSL_PCLIBS="$withval $HSL_PCLIBS" HSL_LIBS="$withval $HSL_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_LIBS_INSTALLED="$withval" HSL_LIBS_INSTALLED="$withval $HSL_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" HSL_CFLAGS="-I`${CYGPATH_W} $withval` $HSL_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" HSL_CFLAGS_INSTALLED="$BLAS_CFLAGS $HSL_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_blas = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinblas"; then BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$cflags" BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` coin_has_blas=yes echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi BLAS_PCREQUIRES="coinblas" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in HSL HSL_PCREQUIRES="coinblas $HSL_PCREQUIRES" HSL_CFLAGS="$BLAS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" else BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` coin_has_blas=notGiven echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 coin_has_blas=notGiven BLAS_LIBS= BLAS_LIBS_INSTALLED= BLAS_CFLAGS= BLAS_CFLAGS_INSTALLED= BLAS_DATA= BLAS_DATA_INSTALLED= BLAS_PCLIBS= BLAS_PCREQUIRES= # initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinblas" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$BLAS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` BLAS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$BLAS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi BLAS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" # set LIBS variable BLAS_LIBS="$projlibs $BLAS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" # set LIBS variable BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_blas=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi BLAS_PCREQUIRES="coinblas" HSL_PCREQUIRES="coinblas $HSL_PCREQUIRES" HSL_CFLAGS="$BLAS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" HSL_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $HSL_CFLAGS_INSTALLED" HSL_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $HSL_LIBS_INSTALLED" fi if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 fi if test $coin_has_blas != skipping && test $coin_has_blas != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` HSL_DEPENDENCIES=`echo " $HSL_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$BLAS_CFLAGS" ; then { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} fi if test -n "$BLAS_LIBS" ; then { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} fi if test -n "$BLAS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} fi if test -n "$BLAS_DATA" ; then { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} fi if test -n "$BLAS_PCLIBS" ; then { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} fi if test -n "$BLAS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: HSL CFLAGS are $HSL_CFLAGS" >&5 echo "$as_me: HSL CFLAGS are $HSL_CFLAGS" >&6;} { echo "$as_me:$LINENO: HSL LIBS are $HSL_LIBS" >&5 echo "$as_me: HSL LIBS are $HSL_LIBS" >&6;} { echo "$as_me:$LINENO: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&5 echo "$as_me: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes if test 0 = 0; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= HSL_PCLIBS="$BLAS_LIBS $HSL_PCLIBS" HSL_LIBS="$BLAS_LIBS $HSL_LIBS" HSL_LIBS_INSTALLED="$BLAS_LIBS $HSL_LIBS_INSTALLED" else coin_has_blas=no if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi if test $coin_has_blas != yes ; then { { echo "$as_me:$LINENO: error: Required package BLAS not found." >&5 echo "$as_me: error: Required package BLAS not found." >&2;} { (exit 1); exit 1; }; } fi else if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi # MA57, MA77, MA97, and MC68 can use Metis # if Metis is not available, then we compile a dummy metis.f that defines the Metis function symbol if test $coin_has_ma57$coin_has_hsl_ma77$coin_has_hsl_ma97$coin_has_hsl_mc68 != nononono ; then echo "$as_me:$LINENO: checking for COIN-OR package Metis" >&5 echo $ECHO_N "checking for COIN-OR package Metis... $ECHO_C" >&6 coin_has_metis=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Metis"; then coin_has_metis=skipping fi done fi if test "$coin_has_metis" != skipping; then # Check whether --with-m4_tolower(Metis) or --without-m4_tolower(Metis) was given. if test "${with_metis+set}" = set; then withval="$with_metis" if test "$withval" = no ; then coin_has_metis=skipping fi fi; fi METIS_LIBS= METIS_CFLAGS= METIS_DATA= METIS_DEPENDENCIES= METIS_PCLIBS= METIS_PCREQUIRES= METIS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-lib or --without-m4_tolower(Metis)-lib was given. if test "${with_metis_lib+set}" = set; then withval="$with_metis_lib" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_LIBS="$withval" METIS_PCLIBS="$withval" HSL_PCLIBS="$withval $HSL_PCLIBS" HSL_LIBS="$withval $HSL_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_LIBS_INSTALLED="$withval" HSL_LIBS_INSTALLED="$withval $HSL_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-incdir or --without-m4_tolower(Metis)-incdir was given. if test "${with_metis_incdir+set}" = set; then withval="$with_metis_incdir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_CFLAGS="-I`${CYGPATH_W} $withval`" HSL_CFLAGS="-I`${CYGPATH_W} $withval` $HSL_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_CFLAGS_INSTALLED="$METIS_CFLAGS" HSL_CFLAGS_INSTALLED="$METIS_CFLAGS $HSL_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_metis != skipping; then # Check whether --with-m4_tolower(Metis)-datadir or --without-m4_tolower(Metis)-datadir was given. if test "${with_metis_datadir+set}" = set; then withval="$with_metis_datadir" if test "$withval" = no ; then coin_has_metis=skipping else coin_has_metis=yes METIS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then METIS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_metis = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinmetis"; then METIS_VERSIONS=`$PKG_CONFIG --modversion "coinmetis" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinmetis" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$cflags" METIS_LIBS=`$PKG_CONFIG --libs "coinmetis" 2>/dev/null` METIS_DATA=`$PKG_CONFIG --variable=datadir "coinmetis" 2>/dev/null` coin_has_metis=yes echo "$as_me:$LINENO: result: yes: $METIS_VERSIONS" >&5 echo "${ECHO_T}yes: $METIS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi METIS_PCREQUIRES="coinmetis" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in HSL HSL_PCREQUIRES="coinmetis $HSL_PCREQUIRES" HSL_CFLAGS="$METIS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$METIS_LIBS $HSL_LIBS" else METIS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinmetis"` coin_has_metis=notGiven echo "$as_me:$LINENO: result: not given: $METIS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $METIS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Metis without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Metis without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Metis (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Metis (fallback)... $ECHO_C" >&6 coin_has_metis=notGiven METIS_LIBS= METIS_LIBS_INSTALLED= METIS_CFLAGS= METIS_CFLAGS_INSTALLED= METIS_DATA= METIS_DATA_INSTALLED= METIS_PCLIBS= METIS_PCREQUIRES= # initial list of dependencies is "coinmetis", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinmetis" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$METIS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` METIS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$METIS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi METIS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS="$projcflags $METIS_CFLAGS" # set LIBS variable METIS_LIBS="$projlibs $METIS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi METIS_CFLAGS_INSTALLED="$projcflags $METIS_CFLAGS_INSTALLED" # set LIBS variable METIS_LIBS_INSTALLED="$projlibs $METIS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_metis=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then METIS_LIBS=`echo " $METIS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` METIS_LIBS_INSTALLED=`echo " $METIS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi METIS_PCREQUIRES="coinmetis" HSL_PCREQUIRES="coinmetis $HSL_PCREQUIRES" HSL_CFLAGS="$METIS_CFLAGS $HSL_CFLAGS" HSL_LIBS="$METIS_LIBS $HSL_LIBS" HSL_CFLAGS_INSTALLED="$METIS_CFLAGS_INSTALLED $HSL_CFLAGS_INSTALLED" HSL_LIBS_INSTALLED="$METIS_LIBS_INSTALLED $HSL_LIBS_INSTALLED" fi if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_metis" >&5 echo "${ECHO_T}$coin_has_metis" >&6 fi if test $coin_has_metis != skipping && test $coin_has_metis != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_METIS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) METIS_DEPENDENCIES=`echo " $METIS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` HSL_DEPENDENCIES=`echo " $HSL_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$METIS_CFLAGS" ; then { echo "$as_me:$LINENO: Metis CFLAGS are $METIS_CFLAGS" >&5 echo "$as_me: Metis CFLAGS are $METIS_CFLAGS" >&6;} fi if test -n "$METIS_LIBS" ; then { echo "$as_me:$LINENO: Metis LIBS are $METIS_LIBS" >&5 echo "$as_me: Metis LIBS are $METIS_LIBS" >&6;} fi if test -n "$METIS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&5 echo "$as_me: Metis DEPENDENCIES are $METIS_DEPENDENCIES" >&6;} fi if test -n "$METIS_DATA" ; then { echo "$as_me:$LINENO: Metis DATA is $METIS_DATA" >&5 echo "$as_me: Metis DATA is $METIS_DATA" >&6;} fi if test -n "$METIS_PCLIBS" ; then { echo "$as_me:$LINENO: Metis PCLIBS are $METIS_PCLIBS" >&5 echo "$as_me: Metis PCLIBS are $METIS_PCLIBS" >&6;} fi if test -n "$METIS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Metis PCREQUIRES are $METIS_PCREQUIRES" >&5 echo "$as_me: Metis PCREQUIRES are $METIS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: HSL CFLAGS are $HSL_CFLAGS" >&5 echo "$as_me: HSL CFLAGS are $HSL_CFLAGS" >&6;} { echo "$as_me:$LINENO: HSL LIBS are $HSL_LIBS" >&5 echo "$as_me: HSL LIBS are $HSL_LIBS" >&6;} { echo "$as_me:$LINENO: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&5 echo "$as_me: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_metis != notGiven && test $coin_has_metis != skipping; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi if test $coin_has_metis = yes ; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HAS_METIS 1 _ACEOF fi else # do as if we had metis, so metis.f is not compiled if test 1 = 1; then COIN_HAS_METIS_TRUE= COIN_HAS_METIS_FALSE='#' else COIN_HAS_METIS_TRUE='#' COIN_HAS_METIS_FALSE= fi fi # MC68 and MA77 changed the interface from HSL 2012 to HSL 2013, # so we check whether we have the 2013 version (for mc68, we did this test above) # and set a compiletime define if test $coin_has_hsl_ma77 = yes ; then grep -q ma77_solve_fredholm $srcdir/coinhsl/hsl_ma77/hsl_ma77d.f90 && hsl2013=yes fi if test $hsl2013 = yes ; then cat >>confdefs.h <<\_ACEOF #define COINHSL_HSL2013 1 _ACEOF { echo "$as_me:$LINENO: HSL source recognized as HSL 2013" >&5 echo "$as_me: HSL source recognized as HSL 2013" >&6;} fi ############################################################################# # Setup build of loadable library # ############################################################################# HSL_SHARED_LIB= if test x$enable_loadable_library = xyes; then case $build in *-cygwin* | *-mingw*) HSL_SHARED_LIB=libhsl.dll F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' case $F77 in compile_f2c*) EXPORT_SYMBOLS= if test $coin_has_ma27 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma27ad_ ma27bd_ ma27cd_ ma27id_" fi if test $coin_has_ma28 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma28ad_" fi if test $coin_has_ma57 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma57ad_ ma57bd_ ma57cd_ ma57ed_ ma57id_" fi if test $coin_has_mc19 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc19ad_" fi if test $coin_has_hsl_ma77 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma77_default_control_ ma77_open_nelt_ ma77_open_ ma77_input_vars_ ma77_input_reals_ ma77_analyse_ ma77_factor_ ma77_factor_solve_ ma77_solve_ ma77_resid_ ma77_scale_ ma77_enquire_posdef_ ma77_enquire_indef_ ma77_alter_ ma77_restart_ ma77_finalise_" fi if test $coin_has_hsl_ma86 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma86_default_control_ ma86_analyse_ ma86_factor_ ma86_factor_solve_ ma86_solve_ ma86_finalise_" fi if test $coin_has_hsl_ma97 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS ma97_default_control_ ma97_analyse_ ma97_factor_ ma97_factor_solve_ ma97_solve_ ma97_finalise_ ma97_free_akeep_" fi if test $coin_has_hsl_mc68 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS mc68_default_control_ mc68_order_" fi F77_SHARED_CMD='$(F77) -shared $(FFLAGS) -def:$(DEFFILE)' DEFFILE='Export.def' ;; ifort* | IFORT*) EXPORT_SYMBOLS= if test $coin_has_ma27 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA27AD MA27BD MA27CD MA27ID" fi if test $coin_has_ma28 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA28AD" fi if test $coin_has_ma57 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA57AD MA57BD MA57CD MA57ED MA57ID" fi if test $coin_has_hsl_ma77 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA77_DEFAULT_CONTROL MA77_OPEN_NELT MA77_OPEN MA77_INPUT_VARS MA77_INPUT_REALS MA77_ANALYSE MA77_FACTOR MA77_FACTOR_SOLVE MA77_SOLVE MA77_RESID MA77_SCALE MA77_ENQUIRE_POSDEF MA77_ENQUIRE_INDEF MA77_ALTER MA77_RESTART MA77_FINALISE" fi if test $coin_has_mc19 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC19AD" fi if test $coin_has_hsl_ma86 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA86_DEFAULT_CONTROL MA86_ANALAYSE MA86_FACTOR MA86_FACTOR_SOLVE MA86_SOLVE MA86_FINALISE" fi if test $coin_has_hsl_ma97 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MA97_DEFAULT_CONTROL MA97_ANALAYSE MA97_FACTOR MA97_FACTOR_SOLVE MA97_SOLVE MA97_FINALISE MA97_FREE_AKEEP" fi if test $coin_has_hsl_mc68 = yes; then EXPORT_SYMBOLS="$EXPORT_SYMBOLS MC68_DEFAULT_CONTROL MC68_ORDER" fi DEFFILE='Export.def' F77_SHARED_CMD='$(F77) $(FFLAGS)' F77_DLL_LINKFLAGS='-link -dll -def:$(DEFFILE)' ;; *) F77_SHARED_CMD='$(F77) -shared $(FFLAGS)' ;; esac ;; esac fi if test x$flag = xforce_shared; then INSTALL_LOADABLE_LIBRARY_TRUE= INSTALL_LOADABLE_LIBRARY_FALSE='#' else INSTALL_LOADABLE_LIBRARY_TRUE='#' INSTALL_LOADABLE_LIBRARY_FALSE= fi if test ! x"$DEFFILE" = x; then NEED_DEFFILE_TRUE= NEED_DEFFILE_FALSE='#' else NEED_DEFFILE_TRUE='#' NEED_DEFFILE_FALSE= fi if test ! x"$F77_SHARED_CMD" = x; then EXTRA_SHARED_COMMAND_TRUE= EXTRA_SHARED_COMMAND_FALSE='#' else EXTRA_SHARED_COMMAND_TRUE='#' EXTRA_SHARED_COMMAND_FALSE= fi #AM_CONDITIONAL([EXTRA_SHARED_COMMAND],[test "$F77_SHARED_CMD" = x]) ############################################################################# # Write the output # ############################################################################# ac_config_files="$ac_config_files Makefile" # we build the library and setup the .pc files only if there is at least one source code # if there is no source code, then .pc files should not be setup, so for others this is as if we do not exist if test $coin_has_something = yes ; then ac_config_files="$ac_config_files coinhsl.pc coinhsl-uninstalled.pc" ac_config_headers="$ac_config_headers config.h config_coinhsl.h" else # in case something is left over from a previous build rm -f coinhsl.pc coinhsl-uninstalled.pc fi if test $coin_has_something = yes; then BUILD_COINHSL_TRUE= BUILD_COINHSL_FALSE='#' else BUILD_COINHSL_TRUE='#' BUILD_COINHSL_FALSE= fi echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MC19_TRUE}" && test -z "${COIN_HAS_MC19_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MC19\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MC19\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA27_TRUE}" && test -z "${COIN_HAS_MA27_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA27\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA27\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA28_TRUE}" && test -z "${COIN_HAS_MA28_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MA57_TRUE}" && test -z "${COIN_HAS_MA57_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MA57\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MA57\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_MA77_TRUE}" && test -z "${COIN_HAS_HSL_MA77_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL_MA77\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL_MA77\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_MA86_TRUE}" && test -z "${COIN_HAS_HSL_MA86_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL_MA86\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL_MA86\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_MA97_TRUE}" && test -z "${COIN_HAS_HSL_MA97_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL_MA97\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL_MA97\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_MC68_TRUE}" && test -z "${COIN_HAS_HSL_MC68_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL_MC68\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL_MC68\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_DEPSF90_TRUE}" && test -z "${COIN_HAS_DEPSF90_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_DEPSF90\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_DEPSF90\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_METIS_TRUE}" && test -z "${COIN_HAS_METIS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_METIS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${INSTALL_LOADABLE_LIBRARY_TRUE}" && test -z "${INSTALL_LOADABLE_LIBRARY_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"INSTALL_LOADABLE_LIBRARY\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"INSTALL_LOADABLE_LIBRARY\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${NEED_DEFFILE_TRUE}" && test -z "${NEED_DEFFILE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"NEED_DEFFILE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"NEED_DEFFILE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${EXTRA_SHARED_COMMAND_TRUE}" && test -z "${EXTRA_SHARED_COMMAND_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"EXTRA_SHARED_COMMAND\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"EXTRA_SHARED_COMMAND\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_COINHSL_TRUE}" && test -z "${BUILD_COINHSL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"BUILD_COINHSL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"BUILD_COINHSL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by ThirdPartyHSL $as_me 1.4.2, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ThirdPartyHSL config.status 1.4.2 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "coinhsl.pc" ) CONFIG_FILES="$CONFIG_FILES coinhsl.pc" ;; "coinhsl-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES coinhsl-uninstalled.pc" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "config_coinhsl.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config_coinhsl.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@COINHSL_SVN_REV@,$COINHSL_SVN_REV,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@FLIBS@,$FLIBS,;t t s,@EGREP@,$EGREP,;t t s,@FC@,$FC,;t t s,@FCFLAGS@,$FCFLAGS,;t t s,@ac_ct_FC@,$ac_ct_FC,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@COIN_HAS_MC19_TRUE@,$COIN_HAS_MC19_TRUE,;t t s,@COIN_HAS_MC19_FALSE@,$COIN_HAS_MC19_FALSE,;t t s,@COIN_HAS_MA27_TRUE@,$COIN_HAS_MA27_TRUE,;t t s,@COIN_HAS_MA27_FALSE@,$COIN_HAS_MA27_FALSE,;t t s,@COIN_HAS_MA28_TRUE@,$COIN_HAS_MA28_TRUE,;t t s,@COIN_HAS_MA28_FALSE@,$COIN_HAS_MA28_FALSE,;t t s,@COIN_HAS_MA57_TRUE@,$COIN_HAS_MA57_TRUE,;t t s,@COIN_HAS_MA57_FALSE@,$COIN_HAS_MA57_FALSE,;t t s,@COIN_HAS_HSL_MA77_TRUE@,$COIN_HAS_HSL_MA77_TRUE,;t t s,@COIN_HAS_HSL_MA77_FALSE@,$COIN_HAS_HSL_MA77_FALSE,;t t s,@COIN_HAS_HSL_MA86_TRUE@,$COIN_HAS_HSL_MA86_TRUE,;t t s,@COIN_HAS_HSL_MA86_FALSE@,$COIN_HAS_HSL_MA86_FALSE,;t t s,@COIN_HAS_HSL_MA97_TRUE@,$COIN_HAS_HSL_MA97_TRUE,;t t s,@COIN_HAS_HSL_MA97_FALSE@,$COIN_HAS_HSL_MA97_FALSE,;t t s,@COIN_HAS_HSL_MC68_TRUE@,$COIN_HAS_HSL_MC68_TRUE,;t t s,@COIN_HAS_HSL_MC68_FALSE@,$COIN_HAS_HSL_MC68_FALSE,;t t s,@COIN_HAS_DEPSF90_TRUE@,$COIN_HAS_DEPSF90_TRUE,;t t s,@COIN_HAS_DEPSF90_FALSE@,$COIN_HAS_DEPSF90_FALSE,;t t s,@BLAS_LIBS@,$BLAS_LIBS,;t t s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t s,@BLAS_DATA@,$BLAS_DATA,;t t s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t s,@HSL_CFLAGS@,$HSL_CFLAGS,;t t s,@HSL_LIBS@,$HSL_LIBS,;t t s,@HSL_PCLIBS@,$HSL_PCLIBS,;t t s,@HSL_PCREQUIRES@,$HSL_PCREQUIRES,;t t s,@HSL_DEPENDENCIES@,$HSL_DEPENDENCIES,;t t s,@HSL_CFLAGS_INSTALLED@,$HSL_CFLAGS_INSTALLED,;t t s,@HSL_LIBS_INSTALLED@,$HSL_LIBS_INSTALLED,;t t s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t s,@METIS_LIBS@,$METIS_LIBS,;t t s,@METIS_CFLAGS@,$METIS_CFLAGS,;t t s,@METIS_DATA@,$METIS_DATA,;t t s,@METIS_DEPENDENCIES@,$METIS_DEPENDENCIES,;t t s,@METIS_LIBS_INSTALLED@,$METIS_LIBS_INSTALLED,;t t s,@METIS_CFLAGS_INSTALLED@,$METIS_CFLAGS_INSTALLED,;t t s,@METIS_DATA_INSTALLED@,$METIS_DATA_INSTALLED,;t t s,@COIN_HAS_METIS_TRUE@,$COIN_HAS_METIS_TRUE,;t t s,@COIN_HAS_METIS_FALSE@,$COIN_HAS_METIS_FALSE,;t t s,@F77_SHARED_CMD@,$F77_SHARED_CMD,;t t s,@F77_DLL_LINKFLAGS@,$F77_DLL_LINKFLAGS,;t t s,@HSL_SHARED_LIB@,$HSL_SHARED_LIB,;t t s,@EXPORT_SYMBOLS@,$EXPORT_SYMBOLS,;t t s,@DEFFILE@,$DEFFILE,;t t s,@INSTALL_LOADABLE_LIBRARY_TRUE@,$INSTALL_LOADABLE_LIBRARY_TRUE,;t t s,@INSTALL_LOADABLE_LIBRARY_FALSE@,$INSTALL_LOADABLE_LIBRARY_FALSE,;t t s,@NEED_DEFFILE_TRUE@,$NEED_DEFFILE_TRUE,;t t s,@NEED_DEFFILE_FALSE@,$NEED_DEFFILE_FALSE,;t t s,@EXTRA_SHARED_COMMAND_TRUE@,$EXTRA_SHARED_COMMAND_TRUE,;t t s,@EXTRA_SHARED_COMMAND_FALSE@,$EXTRA_SHARED_COMMAND_FALSE,;t t s,@BUILD_COINHSL_TRUE@,$BUILD_COINHSL_TRUE,;t t s,@BUILD_COINHSL_FALSE@,$BUILD_COINHSL_FALSE,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/ThirdParty/HSL/metis_dummy.c0000644000076600007660000000177411646346674016623 0ustar coincoin/* Copyright (C) 2011 Stefan Vigerske * All Rights Reserved. * This file is distributed under the Eclipse Public License. */ /* $Id$ */ /* this file provides dummy implementations of the method metis_nodend as expected by the HSL codes if Metis is not available * as in Metis, we implement the method in several naming variants to copy with C and fortran naming style conventions */ typedef int idxtype; void METIS_NODEND(int * a, idxtype * b, idxtype * c, int * d, int * e, idxtype * f, idxtype * perm) { perm[0] = -1; } void metis_nodend(int * a, idxtype * b, idxtype * c, int * d, int * e, idxtype * f, idxtype * perm) { perm[0] = -1; } void metis_nodend_(int * a, idxtype * b, idxtype * c, int * d, int * e, idxtype * f, idxtype * perm) { perm[0] = -1; } void metis_nodend__(int * a, idxtype * b, idxtype * c, int * d, int * e, idxtype * f, idxtype * perm) { perm[0] = -1; } void METIS_NodeND(int * a, idxtype * b, idxtype * c, int * d, int * e, idxtype * f, idxtype * perm) { perm[0] = -1; } Ipopt-3.11.4/ThirdParty/HSL/coinhsl.pc.in0000644000076600007660000000047211574712775016504 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin/ThirdParty Name: HSL Description: Harwell Subroutines Library URL: https://projects.coin-or.org/BuildTools Version: @PACKAGE_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lcoinhsl @HSL_PCLIBS@ Requires: @HSL_PCREQUIRES@ Ipopt-3.11.4/ThirdParty/HSL/config.guess0000755000076600007660000012706310762032301016414 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ThirdParty/HSL/config.h.in0000644000076600007660000000620612152365374016130 0ustar coincoin/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if MA27 is available. */ #undef COINHSL_HAS_MA27 /* Define to 1 if MA28 is available. */ #undef COINHSL_HAS_MA28 /* Define to 1 if MA57 is available. */ #undef COINHSL_HAS_MA57 /* Define to 1 if MA77 is available. */ #undef COINHSL_HAS_MA77 /* Define to 1 if MA86 is available. */ #undef COINHSL_HAS_MA86 /* Define to 1 if MA97 is available. */ #undef COINHSL_HAS_MA97 /* Define to 1 if MC19 is available. */ #undef COINHSL_HAS_MC19 /* Define to 1 if MC68 is available. */ #undef COINHSL_HAS_MC68 /* Define to 1 if METIS is available */ #undef COINHSL_HAS_METIS /* Define to 1 if HSL library is from 2013 */ #undef COINHSL_HSL2013 /* SVN revision number of project */ #undef COINHSL_SVN_REV /* Version number of project */ #undef COINHSL_VERSION /* Major Version number of project */ #undef COINHSL_VERSION_MAJOR /* Minor Version number of project */ #undef COINHSL_VERSION_MINOR /* Release Version number of project */ #undef COINHSL_VERSION_RELEASE /* If defined, the BLAS Library is available. */ #undef COIN_HAS_BLAS /* Define to 1 if the Metis package is available */ #undef COIN_HAS_METIS /* Define to the debug sanity check level (0 is no test) */ #undef COIN_HSL_CHECKLEVEL /* Define to the debug verbosity level (0 is no output) */ #undef COIN_HSL_VERBOSITY /* Define to dummy `main' function (if any) required to link to the Fortran libraries. */ #undef F77_DUMMY_MAIN /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ #undef F77_FUNC /* As F77_FUNC, but for C identifiers containing underscores. */ #undef F77_FUNC_ /* Define if F77 and FC dummy `main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION Ipopt-3.11.4/config.sub0000755000076600007660000007772612151613040013350 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/ChangeLog0000644000076600007660000004351712214316142013131 0ustar coincoinThis file contain the log of changes for Ipopt. More detailed information for incremental change can be found in the history management of subversion. 2013-09-12 releases/3.11.4 - hopefully fixed non-working linear solver loader in DLLs build with MSVS/v8-ifort project files [r2365] - allow MC19 to be loaded via linear solver loader (by J. Currie) [r2366] - fixed new point flag when running dependendency detector [r2368] - experimental: adapt Pardiso interface to work with MKL Pardiso (by J. Currie, T. Kelman) [r2369, #216]: - in a few tests it has been found that Pardiso from Intel MKL nowadays seems to work fine with Ipopt - to use Intel MKL with Ipopt 3.11, one has to specify the MKL libs via --with-pardiso and add -DHAVE_PARDISO_MKL -DHAVE_PARDISO_PARALLEL to the compiler flags - note that this is still an experimental feature (and thus not enabled by default) - updated Ipopt/R interface to version 0.8.4 [r2373] - additional variables have been included in the object returned from ipoptr: z_L : final values for the lower bound multipliers z_U : final values for the upper bound multipliers constraints : final values for the constraints lambda : final values for the Lagrange multipliers - removed ipoptr_environment as argument in ipoptr (see also r2372) - fixed bug in penalty term for centrality in quality function (not used by default) [#219, r2374] - minor bugfixes in AMPL interface, debug print statements, and compound matrix (by G. Hackebeil) [#218, r2371, r2377, r2378, r2379] - download scripts for ASL, Blas, and Lapack now first try to download tarball copies from the COIN-OR server 2013-08-08 releases/3.11.3 - get.* scripts for ThirdParty/{ASL,Blas,Lapack} now work around broken ftp access to www.netlib.org. 2013-07-01 releases/3.11.2 - changed default for option option_file_name to ipopt.opt; specifying an empty string for this option now disables reading of an option file [r2339] - missing initial values are now set to 0.0, projected onto variable bounds, in AMPL interface [r2340, #205] - fixed missing variable initialization in MA97 interface [r2341, #206] 2013-06-14 releases/3.11.1 - the setup for the v8-ifort MSVS project changed to use dynamic runtime DLLs instead of static linking, which caused crashes in debug mode (by M. Roelofs) [r2301] - fixed memory leaks in Java Interface (by javier) [#200, r2312] - updates and fixes to MA77 and MA87 interfaces, adding support of HSL 2013 codes (by J. Hogg); HSL 2012 still supported when compiled with Ipopt, but the linear solver loader to dynamically load a HSL library at runtime now assumes HSL 2013 - added option ma97_solve_blas3 (by J. Hogg) [r2329] - changed default for option ma27_meminc_factor from 10.0 to 2.0 [r2330] - fixed bug in ipopt_auxdata of MATLAB Interface related to iterfunc [r2325] 2013-05-07 releases/3.11.0 - update and extension of Ipopt documentation - updated build of doxygen documentation to comply with other COIN-OR projects - localized global variables in TaggedObject and RegisteredOption, so that Ipopt should now be threadsafe as long as Ipopt objects (esp. SmartPtr's) are not shared between threads and a threadsafe linear solver is used (e.g., MA27) [#167] - no more need for whitespace character at end of options file - added options print_frequency_iter and print_frequency_time to regulate which iteration summary lines should be printed [#161] - function evaluation timings are now available in OrigIpoptNLP [#86] - some fixes to uncommon issues with the Ipopt SmartPtr [#162] - new build system for Harwell codes (ThirdParty/HSL), which requires the coin-hsl archives from http://www.hsl.rl.ac.uk/ipopt/; previously downloaded HSL sources can still be used by placing them into ThirdParty/HSLold, but this option may be removed in a future Ipopt version - new interfaces for Harwell codes HSL_MA77, HSL_MA86, and HSL_MA97; see http://www.hsl.rl.ac.uk/ipopt/ about help on when to use which solver; especially MA57 and HSL_MA97 should be considered as replacement for MA27; however, MA27 is still the default for now - changed default of ma57_automatic_scaling to no (faster in general, but for higher reliability, you may want to set this option to yes) - major improvements for building the MATLAB interface (see documentation) - MATLAB interface now returns number of function evaluations, too - the MA57 interface can now be used with the MA57 library that comes with MATLAB (configure option --enable-matlab-ma57; cannot use Metis) - auxdata is now handled by a wrapper function ipopt_auxdata.m instead of internally within the mex code (replace Matlab call to ipopt with ipopt_auxdata if using auxiliary data in any callbacks) [r2282] - exposed more intermediate Ipopt information to iterfunc callback [r2283] - fixes to JIpopt buildsystem (now may work on windows and uses libtool) - JIpopt now reads options file ipopt.opt by default, if present - removed predefined KEY_ strings in JIpopt - renamed API functions that retrieve solution values in JIpopt - simplified installation of R interface 2013-05-05 releases/3.10.4 - fixed sign of dual values in AMPL solution again (with help of Gabe) [r2169, r2170, r2184, #183] - fixed bugs with reoptimizing a TNLP with all variables fixed [r2172, r2173, #179] - fixed more issues with sparse data structures and non-double numbers in Matlab interface (by T. Kelman) [r2191] - added missing final int for Ipopt return code Maximum_CpuTime_Exceeded in Java interface [r2216] - fixed bug when trying to warmstart Ipopt in Java interface [r2253] - fixed wrong use of SmartPtr's in Java interface [r2255, r2263] - fixed bug in returning final solution in Java interface [r2258] - included patch in ThirdParty/Mumps to work around bugs in Mumps matrix ordering routines AMF and QAMD (now give preference to AMD and METIS) 2012-11-19 releases/3.10.3 - minor fixes in MA86 interface (by Jonathan Hogg) [r2069, r2086] - fix in IpTripletToCSRConverter for CSR forms with extra entries (by Jonathan Hogg) [r2087] - workaround problems with MacOSX-Lion's blas library (by Frederic Hetch) [r2102, #181] - the C interface now catches also Ipopt exceptions thrown within the OptimizeTNLP call and returns Ipopt::Unrecoverable_Exception as status [r2094, #144] - fixed segmentation fault in adaptive barrier parameter update rule when using the mehrotra option on unconstrained problems [r2114, #114] - fixed segmentation fault in case no iterate is available in case of catastrophic failure in restoration phase [r2115] - fixed default for mumps_dep_tol to work with current Mumps versions [r2116] - fixed sign of dual values in AMPL solution [r2123, #183] - fixed issue with sparse gradients in Matlab interface (by T. Kelman) [r2133, #187] - sIPOPT (by H. Pirnay): - starting values in C++ version of parametric example now match AMPL version [r2098] - numerical values in parametric example now match publication [r2099] - added options n_sens_steps and sens_boundcheck as AMPL options [r2099] - any non-zero suffix value is now accepted for sens_init_constr [r2100] - fix typo in AMPL interface (by Weifeng Chen) [r2110] - fix bug when compiling without AMPL interface [r2113] - build system: - updated instruction on using nowadays HSL sources (by T. Kelman) - fixed issue with libdir being /lib64 - other minor fixes 2012-02-12 releases/3.10.2 - updates to HSL interface (by Jonathan Hogg): - MC68 can now be loaded dynamically, too - MA86 exploits built-in scaling - MA86 can choose best ordering from AMD and Metis - fix for return code of MA86 for singular matrices - corrected computation of Upsilon (norm of step SQUARED) - updates to MSVS v8-ifort project files and addition of vc10 project files (using vc8-generated IpoptFSS.dll) (by Marcel Roelofs) - minor bugfixes, include updates in BuildTools 2011-09-20 releases/3.10.1 - include updates in BuildTools, including new ThirdParty/Metis (fix for URL to download Metis 4.0.3 release) - linear solver loader prints error code when failing to load library under Windows - message on failure when reallocating memory in Mumps now includes size of memory that was tried to be allocated - added missing include of cstdio/stdio.h to IpJournalist.hpp - minor fixes to build system 2011-06-20 releases/3.10.0 - move to new COIN-OR configuration and installation convention - primal infeasibility output is now true infeasibility in original problem formulation 2011-04-07 releases/3.9.3 - include updates in BuildTools, including new ThirdParty/Metis (required to work with current metis release) 2010-12-22 releases/3.9.2 - converted from Common Public License to Eclipse Public License - some bugfixes from BuildTools 2010-11-26 releases/3.9.1 - improved Hessian update for restoration phase - added intermediate callback feature to C and Fortran interface 2010-11-05 releases/3.9.0 - switching to new BuildTools system - added R interface (contributed by Jelmer Ypma) - updates in AsNMPC (by Hans Pirnay) 2010-06-29 releases/3.8.3 - restated SolveStatistics::TotalCPUTime method for backward compatibility 2010-06-16 releases/3.8.2 - uses MUMPS version 4.9 and Lapack version 3.2.1 - added AsNMPC contribution made by Hans Pirnay - enhanced MA57 options - several bug fixes and minor additions 2009-10-30 releases/3.8.1 - Bugfix in NLP function evaluation timing measurement. The time for the objective function gradient had been forgotten. 2009-10-29 releases/3.8.0 - Added MSVC solution with Intel Fortran compiler to generate DLLs (contributed by Marcel Roelofs). To make this work, a lot of methods in exported headers have been made virtual - changed default convergence tolerance in restoration phase (now same as regular tolerance) - output is flushed after each iteration 2009-10-06 releases/3.7.1 - bugfix for square problems - correct timinig information (obj gradient was forgotten) - flush output buffer after each iteration - first code for iterative WSMP version (experimental and undocumented) 2009-07-16 releases/3.7.0 - a number of fixes (including those from 2009 COIN Bug Squashing Party) - changes in some exposed header files to provide access to internal data structures for specific applications 2009-05-01 releases/3.6.1 - minor corrections in tutorial files 2009-04-29 releases/3.6.0 - new Matlab interface - added new option to limit cpu time (max_cpu_time) - added ThirdParty directory for Metis to be used with MUMPS or MA57 - updated CUTEr Makefile to make it work with CUTEr2 - added files for a tutorial (including coding exercise) 2009-01-13 releases/3.5.5 - minor fixes regarding compilation - undocumented version of inexact method 2008-09-29 releases/3.5.4 - changed to MUMPS version 4.8.3 in externals (Mumps developers seem to have removed 4.8.1). 2008-09-19 releases/3.5.3 - changed back to MUMPS version 4.8.1 since there seem to be issues on Windows 2008-09-18 releases/3.5.2 - changed to latest version of MUMPS (4.8.2) - some bugfixes (linear algebra objects, automatic problem scaling) - made sure the subversion revision number is correct in all files - allowed general additional data and cq in IpData and IpCq 2008-08-26 releases/3.5.1 - changed to latest version of MUMPS (4.8.1) 2008-08-25 releases/3.5.0 - added ComputeRowAMax and ComputeColAMax methods to Matrix base class - changed externals for MUMPS to stable/1.1 - call finalize solution in more failure cases (this means that AMPL writes .sol file in more situations) - added IpTNLPReducer as simple way to exclude constraints from problem - several fixes, also from COIN Bug Squashing Party 2008 2008-07-18 releases/3.4.2 - some bug fixes - added wallclock time routine - penalty function version does not longer crash if it wants to go to restoration phase (not that this really helps converence though) 2008-05-30 releases/3.4.1 - some bug fixes - deleted v9 MSVC files again (since v8 works fine for v9) - print Ipopt version in default print level - added option that allows to change name of options file (option_file_name) 2008-04-25 releases/3.4.0 - added support to dynamically load HSL or Pardiso: If Ipopt has been compiled without some HSL or Pardiso solver, it can now load those solvers from a shared library at runtime without recompilation. This will make ditribution of binaries easier. Does not work on all platforms yet. - several bugfixes - ensured compilation of MSVS project files (v8 and v9) - new special return code for square problems (Feasible_Point_Found returned if dual inf not small) - new initialization option for bound multipliers (see option bound_mult_init_method) - added simple penalty function line search option (line_search_method=penalty) - not guaranteed to converge, see Ipopt implementation paper (in MathProg) - some very basic method to approximate constraint Jacobian by finite differences (not efficient, but will hopefully be extended) 2008-02-28 releases/3.3.5 - corrected links for Ipopt mailing list - added missing Makefile.in for Matlab interface - the addlibs* files are now installed in share/doc/coin/Ipopt instead of lib - updates in Matlab interface - bugfix for ticket #56 2007-12-27 releases/3.3.4 - headers are now installed in include/coin (no longer in include/ipopt) - default for dual_inf_tol is now 1 (instead of 1e-4) - In matlab interface, here the text from Peter Carbonetto: There have been several significant changes made to the MATLAB interface since the last release. The most important two changes are: 1) Following the "warm start" feature of IPOPT, you may pass in initial estimates for the Lagrange multipliers. 2) Callback routines for computing the objective, gradient (etc.) are now specified using function handles instead of strings. (Thanks to Marcus Brubaker at the University of Toronto for the initial suggestion.) 2007-09-25 releases/3.3.3 - minor changes, bug fixes 2007-06-20 releases/3.3.1 synchronized with all changes in trunk; probably more than to be remembered. In the following a few: - support for Mumps linear solver (contributed by Damian Hocking) - --print-options flag for ipopt ASL solver executable to see all Ipopt options (available through ipopt.opt file) - added Matlab interface (contributed by Peter Carbonetto) - added support for f2c compiler to compiler Fortran code with MSVC++ compiler - new MSVisualStudio support (now within MSVisualStudio project and also with f2c) - a number of small changes/bug fixes/improvements - small change in interface (e.g., FinalizeSolution method) 2007-04-24 releases/3.2.4 - updated download script for Blas to fit netlib's recent changes - using a more recent version of BuildTools 2006-11-29 release/3.2.3 - updated download script for Lapack to fit to netlib's recent changes 2006-10-11 stable/3.2 r795 - Bugfix in L-BFGS update - fix in configure with detection of sizeof(int *) on Cygwin 2006-07-14 - version 3.2.1 - dev release number 764 - Bugfix in least square multiplier estimate. It mainly showed up in LBFGS with restoration phase as seg fault 2006-07-07 - version 3.2.0 - dev 757 - changed installation procedure and directory structure to conform with new COIN-OR convention 2006-04-08 - version 3.1.0 - dev release number 714 Several bug-fixes, improvements and additions. In particular: - new quasi-Newton approximation using L-BFGS - interfaces to linear solver MA57, WSMP, Pardiso (MUMPS and TAUCS not yet completed) - derivative checker - unit test - configure supports compilation under Cygwin with native Windows compilers - ScalableExample - user call-back method in TNLP 2005-12-04 - version 3.0.1 - fixes independent of dev (already taken care of there) Several corrections to Windows files Fix termination if number of iterations is exceeded in restoration phase 2005-08-26 - version 3.0.0 - dev release number 510 First official release of the new C++ implementation of Ipopt. Ipopt-3.11.4/doxydoc/0000755000076600007660000000000012214537465013033 5ustar coincoinIpopt-3.11.4/doxydoc/doxygen.conf.in0000644000076600007660000017501212200713667015765 0ustar coincoin# Doxyfile 1.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @PACKAGE_NAME@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @PACKAGE_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doxydoc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = "@abs_top_srcdir@/Ipopt" # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = @coin_doxy_logname@ #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that # contain documented source files. You may enter file names like "myfile.cpp" # or directories like "/usr/src/myproject". Separate the files or directories # with spaces. For COIN, the default is the package base to suck in all # source directories present in the package. Externals will be processed # if present. INPUT = @abs_top_srcdir@/Ipopt # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.hpp *.h *.java # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = */.svn* @coin_doxy_excludes@ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = YES # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) # there is already a search function so this one should typically # be disabled. SEARCHENGINE = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = YES # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = letter # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = COIN_HAS_ASL COIN_HAS_BLAS COIN_HAS_HSL COIN_HAS_LAPACK \ COIN_HAS_MUMPS F77_FUNC(x)=x HAVE_CASSERT HAVE_CCTYPE HAVE_CFLOAT HAVE_CIEEEFP \ HAVE_CMATH HAVE_CSTDARG HAVE_CSTDDEF HAVE_CSTDIO HAVE_CSTDLIB HAVE_CSTRING \ HAVE_CTIME HAVE_CTYPE_H HAVE_DLFCN_H HAVE_DRAND48 HAVE_PARDISO HAVE_SNPRINTF \ HAVE_VA_COPY HAVE_VSNPRINTF HAVE_WSMP __cplusplus # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = @coin_doxy_tagfiles@ # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = @coin_doxy_tagname@ # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = YES # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = @coin_doxy_usedot@ # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES Ipopt-3.11.4/Ipopt/0000755000076600007660000000000012214537465012455 5ustar coincoinIpopt-3.11.4/Ipopt/config.sub0000755000076600007660000007772611413700257014452 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/Ipopt/AUTHORS0000644000076600007660000000736412132557563013537 0ustar coincoinMain authors: Andreas Waechter, project leader (IBM) Carl Laird (IBM, Carnegie Mellon University) Contributors: - Yoshiaki Kawajiri (Carnegie Mellon Univeristy): First version of Latex documentation file Docs/documentation.tex - Olaf Schenk (University of Basel): Modifications to the PARDISO interface in the files Algorithm/LinearSolvers/IpPardisoSolverInterface.cpp Algorithm/LinearSolvers/IpPardisoSolverInterface.hpp - Michael Hagemann (University of Basel): MA57 interface Algorithm/LinearSolvers/IpMa57SolverInterface.cpp Algorithm/LinearSolvers/IpMa57SolverInterface.hpp - Damien Hocking (KBC Advanced Technologies) MUMPS interface Algorithm/LinearSolvers/IpMumpsSolverInterface.cpp Algorithm/LinearSolvers/IpMumpsSolverInterface.hpp - Jon Lee (IBM Research) example nl file (writting by hand) for unitTest Test/mytoy.nl - Peter Carbonetto (University of British Columbia) Matlab interface files in directory (and subdirectories of) contrib/MatlabInterface - Rafael de Pelegrini Soares (VRTech Industrial Technologies) and Tong Kewei (Beihang University, Beijing) Java interface files in directory (and subdirectories of) contrib/JavaInterface - Lifeng Chen/Zaiwen Wen (Columbia University) Changes and additions to the implementation of the Chen-Goldfarb penalty function algorithm src/contrib/CGPenalty/IpCGPenaltyCq.cpp src/contrib/CGPenalty/IpCGPenaltyCq.hpp src/contrib/CGPenalty/IpCGPenaltyData.cpp src/contrib/CGPenalty/IpCGPenaltyData.hpp src/contrib/CGPenalty/IpCGPenaltyLSAcceptor.cpp src/contrib/CGPenalty/IpCGPenaltyLSAcceptor.hpp src/contrib/CGPenalty/IpCGPenaltyRegOp.cpp src/contrib/CGPenalty/IpCGPenaltyRegOp.hpp src/contrib/CGPenalty/IpCGPerturbationHandler.cpp src/contrib/CGPenalty/IpCGPerturbationHandler.hpp src/contrib/CGPenalty/IpCGSearchDirCalc.cpp src/contrib/CGPenalty/IpCGSearchDirCalc.hpp src/contrib/CGPenalty/IpPiecewisePenalty.cpp src/contrib/CGPenalty/IpPiecewisePenalty.hpp - Stefan Vigerske (GAMS) Dynamic loading of linear solver shared libraries src/contrib/LinearSolverLoader/HSLLoader.c src/contrib/LinearSolverLoader/HSLLoader.h src/contrib/LinearSolverLoader/LibraryHandler.c src/contrib/LinearSolverLoader/LibraryHandler.h src/contrib/LinearSolverLoader/PardisoLoader.c src/contrib/LinearSolverLoader/PardisoLoader.h - Marcel Roelofs (AIMMS) MSVC project files for Intel Fortran compiler, creating a DLL MSVisualStudio/v8-ifort - Jonathan Hogg (STFC Rutherford Appleton Laboratory) MA77 interface src/Algorithm/LinearSolvers/hsl_ma77d.h src/Algorithm/LinearSolvers/IpMa77SolverInterface.hpp src/Algorithm/LinearSolvers/IpMa77SolverInterface.cpp MA86 interface src/Algorithm/LinearSolvers/hsl_ma86d.h src/Algorithm/LinearSolvers/hsl_mc68i.h src/Algorithm/LinearSolvers/IpMa86SolverInterface.hpp src/Algorithm/LinearSolvers/IpMa86SolverInterface.cpp MA97 interface src/Algorithm/LinearSolvers/hsl_ma97d.h src/Algorithm/LinearSolvers/IpMa97SolverInterface.hpp src/Algorithm/LinearSolvers/IpMa97SolverInterface.cpp - Hans Pirnay (RWTH Aachen) Rodrigo Lopez-Negrete (Carnegie Mellon University) Sensitivity Based on IPOPT contrib/sIPOPT (formerly called contrib/AsNMPC) - Jelmer Ypma (University College London) R interface with examples, all files in directory (and subdirectory of) contrib/RInterface - Tony Kelman (Berkeley) improvements to Matlab interface Ipopt/contrib/MatlabInterface Contributors of code that is no longer included in Ipopt distribution: - Yifan Hu (Wolfram): Contributed TAUCS interface, implemented in the files PDSystemImpl/PDFullSpace/IpTAUCSSolverInterface.hpp PDSystemImpl/PDFullSpace/IpTAUCSSolverInterface.cpp [These files have been removed, since TAUCS is not supported] Ipopt-3.11.4/Ipopt/doxydoc/0000755000076600007660000000000012214537465014126 5ustar coincoinIpopt-3.11.4/Ipopt/doxydoc/doxygen.conf.in0000644000076600007660000017453212200713667017066 0ustar coincoin# Doxyfile 1.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @PACKAGE_NAME@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @PACKAGE_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doxydoc # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = "@abs_top_srcdir@/src" # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = @coin_doxy_logname@ #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = @abs_top_srcdir@/src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.hpp *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = */.svn* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = YES # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) # there is already a search function so this one should typically # be disabled. SEARCHENGINE = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = YES # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = letter # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = COIN_HAS_ASL COIN_HAS_BLAS COIN_HAS_HSL COIN_HAS_LAPACK \ COIN_HAS_MUMPS F77_FUNC(x)=x HAVE_CASSERT HAVE_CCTYPE HAVE_CFLOAT HAVE_CIEEEFP \ HAVE_CMATH HAVE_CSTDARG HAVE_CSTDDEF HAVE_CSTDIO HAVE_CSTDLIB HAVE_CSTRING \ HAVE_CTIME HAVE_CTYPE_H HAVE_DLFCN_H HAVE_DRAND48 HAVE_PARDISO HAVE_SNPRINTF \ HAVE_VA_COPY HAVE_VSNPRINTF HAVE_WSMP __cplusplus # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = @coin_doxy_tagfiles@ # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = @coin_doxy_tagname@ # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = YES # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = @coin_doxy_usedot@ # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES Ipopt-3.11.4/Ipopt/INSTALL0000644000076600007660000000024510440474475013507 0ustar coincoinFor installation instructions, look for the instructions in Docs/documentation.pdf or see the online version of it at http://www.coin-or.org/Ipopt/documentation/ Ipopt-3.11.4/Ipopt/doc/0000755000076600007660000000000012214537465013222 5ustar coincoinIpopt-3.11.4/Ipopt/doc/makehtml.sh0000755000076600007660000000054512142261342015353 0ustar coincoin#!/bin/bash # http://static.usenix.org/events/samples/conversion.html # get rid of underlines in formulas cat > l2hinit <= 1, <= 5; var x2 >= 1, <= 5; var x3 >= 1, <= 5; var x4 >= 1, <= 5; # specify the objective function minimize obj: x1 * x4 * (x1 + x2 + x3) + x3; # specify the constraints s.t. inequality: x1 * x2 * x3 * x4 >= 25; equality: x1^2 + x2^2 + x3^2 +x4^2 = 40; # specify the starting point let x1 := 1; let x2 := 5; let x3 := 5; let x4 := 1; # solve the problem solve; # ipopt returns the bound multipliers through # the suffixes ipopt_zL_out and ipopt_zU_out # the user does not need to specify them # print the solution and variable bounds multipliers display x1; display x2; display x3; display x4; display x1.ipopt_zL_out; display x1.ipopt_zU_out; display x2.ipopt_zL_out; display x2.ipopt_zU_out; display x3.ipopt_zL_out; display x3.ipopt_zU_out; display x4.ipopt_zL_out; display x4.ipopt_zU_out; # define initial conditions for bound multipliers # to solve new problem suffix ipopt_zL_in, IN; suffix ipopt_zU_in, IN; let x1.ipopt_zL_in := x1.ipopt_zL_out; let x1.ipopt_zU_in := x1.ipopt_zU_out; let x2.ipopt_zL_in := x2.ipopt_zL_out; let x2.ipopt_zU_in := x2.ipopt_zU_out; let x3.ipopt_zL_in := x3.ipopt_zL_out; let x3.ipopt_zU_in := x3.ipopt_zU_out; let x4.ipopt_zL_in := x4.ipopt_zL_out; let x4.ipopt_zU_in := x4.ipopt_zU_out; # set options for warm-start option ipopt_options "warm_start_init_point yes warm_start_bound_push 1e-6 warm_start_mult_bound_push 1e-6 mu_init 1e-6"; # solve the problem again solve; Ipopt-3.11.4/Ipopt/doc/documentation.pdf0000644000076600007660000231112612214336675016574 0ustar coincoin%PDF-1.5 %ÐÔÅØ 2 0 obj << /Type /ObjStm /N 100 /First 810 /Length 1315 /Filter /FlateDecode >> stream xÚ¥V]o›H}÷¯¸Z%Ì HU%'MÓìÚ­UÜ­VêËØ& [›ñÂßs1¶ã&)¬VJË8gî9çÎ ‚ I‘)¡8 Á EB ü#â—!‘àWL20$I-R’Œ0 I&†¤”ÂT3¥Š îViÒ Ï i#ð€B …¡hI¡i¦øfDæÓ Eà 2À†ŠL”P¨É$øe(æ›1ÅÞ”Ñ ’”`²" .¨8˜WpÖ„rðH‰+T @ dÉ×WR ‰Ò„ƒXâš(ŠCø y"\1S >…ºðiÉSâÊS³K˜/_ˆùðEà#X%øGÄÓ 4A¼ñØ€S' H;kམka÷8*ÿY  —Ã2N!0\8r‚ChÅ0ˆ1@R!8 ÎLÀ@)9md"•ä²UøS—ʨ"æ¦À¬u£Ð(C® ÉP±l0‡¦ÑÏ]—‘“Œ4‘”Œ¸fn#Å€­—†» yIÃJ‘˜ŒY%DÊP˜„m¸©47Û†Ž ÿ¸Ñ›… L0HN1&Et ™b€¾„OñsR(Æ#ħ$KF~Jr›#@%¹Ñ‘  Ö‚Yi=xû–NR:¹pSG'ïéU•Í}îŠcqDïÞ ^]¾t‹º¹wôôåz¶{‹[“­¬ÏçvI§vþãºtu±èË xxkó¥åËÜ?t Ô1)³2û·Î«ÜgUDo ÝyGu•ÑåÚ­}*lu¹ïW®dq® [,èÌÁŸ|Vó®Ù£vö¼ò®| wõâì-Dn#¨¼].óâºG¹rÃEæ=CÒ‡Êg+š {UôýÕ™[­óeVVoèøøøûQŸ<äC¸›2 }‘==€ÿZО`ºÍ-p‹z^l±C>ù[>[‘%oË,ëPÖvÐ{wW,]Ðù½ÏÊ]ÛO™Ú*ÛœŽ†é 'ó?›ö¦£><òžéˆÒz†u…/uõ!E«åóÌÛ¼ØÚ2þ:ž¤4‡-)uK˜Ü‡K?ÇuÀ‚v*yåú°…ÝlßÒñ¤U»‚¾VÏÓŒà]?…æ×šÆçÓË´£]Z[6ˇAœð\œáÁ’Þì#øû– w×#èp¿/?b¸Ëý =\ßåv5®åâÓW,‡v÷¡•½h›¦Jÿ:{ýzÇÞ‡\½D>NÿNOÆyqñ­Ã·¨Ã{.ì{kqkøÊÎñ³O¦ï—G¤9s–¤qÒñp:žR¾eî¶1ÞFŸ¶_½¦Uv߸=\ÿÔU»â*¿®ËýA6«óåâwgÒÒ6ÔSþUzûÙð£Yˆ{gqÚ¢f…JºB¯õa ·R9ßÃf^8ßg ·=6Ŷ;[fÕsìUGÖÉt~¿ÎJOþyÝ|¾ºNúÝÙøÆF<¸º¤O£ ©twòî,Úì›óÐß@Êõ Ç“ÎcHí?àS\•nÕd€å¾â>Ag•ȧbšÅ~XÔüÅ3vGÔº2Åô¼ã\öí*µ·'ù¶7'¥C¬+ú’­Ë¬Ê o}µôˆëü>›×Þ‚ßS+œ!/}E©ç6†iVù=¯]­—½ê'¾Êü[TX}4Eãt˜«™ÛeíîA\éK[ô†F{èáFÝ3{Ü—Þ xj7”ß![XëHºÎæ9ìüY_—¼uü> stream xÚíZKsãÆ¾ëWàV-'˜7Æ7JYï*^eeSWÊëH‚¼$@ å⿞îéD,¹+¥””#9Îp¦1¯¿~ §W'ú–ëˆ[&¸VÑÕ2B1Ç#c4ãŠGW‹è§ø¼ ·u5C¹ØÍÛ¢*Gc™ˆ¸­F?_ý1ûƒpž0m]”„ç·Õ¶ rƒÉ”e2QØ7(ÁŽ) ¥b<,`&ÛµU]dkú·¬jª,*\Þm¹®²EQ®^QkQ6m¶^ß7då‚*»fÄãb4æq •Õ± H™²Dóc°°;æ´(7Ö2cu3‘Zÿ!¿)‚àÙx·Áßh㼦Žj‰¥Û뢡–Eåæ»MîŸj¿¡IE²?)O3¦[Û£qç70€‰iÖ#ëTªîh˜%…L Aε`ÒIØŽÌ%IMóm›Y6¯¨".i2i¢”9cˆAŽÙT"šDPà¬iël0”zO|ÌeÖZ¬0ËÃW¥$aâPÂ’Æ-õt«]±È© ¬ôå®õ÷ú½Ÿ“+ÃR+ލw°4‘2Ós‘a£±Õi|Þ- œ¯w‹¼éþÁÉ6B 2Ëk ¨‹o‡k«fmV¤&)"u`@'.€šfžW›m±ÎìCJfp@™vR¨<™"hRÚV?¯‹m0hH)‘”9U`°ø6¯—Ù<ïOè­ü£MhÏÛ9ëÆoh¼[TX¾^“x×fß3h«¤²‡Ë‹TT6Õú›sJ§L‚ƒà„ƒ˜eU‚Õ#Y²šZp‘›âŸYØ¥ñ¶®fk ·ï¾-Úëc$9@ÛB×vR,H8à“Ê/‘Àr´ Å,ôyÑ·E»¿ƒ5XM°C|Ô÷’_•0w94+ƒã&Þ`n;›É;&­GÿÜxÔä<ñ–ˆCK;·ÓÛ—W]dæužµù‚þ̰çŽê¥0fs]dŸ jù.Ãnzz4Ö&þ¥¨iñ6Ÿ`‹È].™:’`c†6À·˜²Ôû’{¡lhõójW7aß[ŒPZÇ¿äó°Œ~Lµ?(O4Kew”Mµ Z)0y {cX´z¿iïyÀ£Ùx óáÿùH‹8ïÚ–ímæ›C Å&¨¼'ê3 8mµÎE–d9“Bì©‚›íV×A#rw¬_ÖÕü‘²*þv”ª¸ÎʉLFJ)ų¤.²zU…§³P^¡ÆòíÖ+=62ãØ×Ä„j gIå):Ò¼3'/K(…}–Õe¾*P‰‰/Àä=á(‹ž„-ík7FÆ“e‹KÀg°q ¶¦ÆwYQ/Ù#„†xë<{‚žÄ1öhž{‚е§Œ›-žÍ°¾¦X•ÅÇ„«ª´”õV‚SUw~N ?Æ–°ðœF Û¼ ‰ ¸ç4±C˜Êbî«ì_ƒZTšÌ;滺î QJ54a”ðÚ…Ž F”ƒwƒ}=G >móeV’ìߊ ñÉuOg éûÖ(ñ„@ ¹áÀË0í¤\€‡ëúñ·‘N’8#NùæG\€ÓàÝþœêpNÅ”qƒ9ûX•(– éîûسŠ|gp¡MpîÀ‰öYR^)(å…²KyQ­ ’Ö½ÜáJc%s"*ž3š'B€Ma6æùT|JH}ZÕÕUÒÛbøôB9÷Ÿì¿_p ð{TQ5CE@pr37ŸëlV¬;Ÿ2¶¤>£þOèìkhË€öe×ù¯;8\´˜ë:eÿì¿…¯àÛÁ«¼o+J—¼' tO.÷ùþžÿ…³¹³G2Ò}÷ç.-Òû„ôå‚û$¥tG_8Õi¡?ç¾î|uU礙ó“:o|†Ð%r¾«‚n0ØÕÅlÎ&‘ÏÐ ?ˆž=î2LÇéþlð@y„Ê ÓJ’¯ò†z>&:9£÷5½UP1c šiÐg;îuô¹Ýˆ>± †ÇŠ#†c˜±ü!ÃI˜qý+Â3:ÕáÛ±—à€ž¨Ѓ z§pºÐò@žÁÒorj÷ÞþëjIõþK¶G©e~¯¤þM‘Q¥ÙÍð­ëðÔç쳋®‹°†nƒì1¿ÆYp3Y˜&«g¾›LŸeN;@Y:&Ô+îrø?S’éïHhï¯ÿgò’N rßE8«_XÆòx‡á}!* ´qu€gïQ»‡¨ŒOßM¦¯¨únr‰ï¸&úÙwse@~2}çµbŸ•×À5Ü{œa²7èCdÞâŽý ©Ý¬® 5.1Þk"ÚËËÍ«/â$Nïý Ð Ü{.>\\N)‹Øùº‡sÆ<§”—áGŽÁˆ‡zCÂkk¢L²^ 80+ͳe ÿ[ôÐùqzq Áí÷ñ4OM—=,âK°˜Ë‡}Òç¹ÃWÇ÷oº6î¥(ÌçÑÅë«óiŸý1ƒ¾ð_5 p'¯¯N~=ÁÓUñÈBJ¥†¥ÊDóÍÉO?'Ñ:^&]Ýz±MÄSΔ¿^GÓ“ïONýW5.ÒÌYësR—0á`((5¸ëäidA,átÕ –v'uà2&ÿ‚j¾ÍêÖ_Ð:/¤]ÏAyvoÂeü{]®€øy¾|ÁþþjNÂa»»šÃ5'“îjÎáÕœó· xÙ}&Ó¶Íl‡ï¾V×]HMÂö7:[À;3¸–ûÒFŋ٨|”FßL.¦´$¼5¦`]™Í­o6Ø6{ûÀœzp_öÀœ_ƒô¼\ìš6|„1•(m…ÊEVf«|8Êt^äå> stream xÚµYMoÛ8½ûWðØJ“~AÄE·š®·NÑÝ rP¥êH†$gÛýõûF–›v›D àJòÌ›Çù ‡ŒQF(a”ä0á¼0Z‰¤1h¡­Áh…£ëÿ¢0J: “ðnŒ ã&Æ =°ÀcGJXƒwÒÂZè6B.Eá,0) — ›Þ„‰±$¼ÅïÖ ÁÏžyÁv€ ã´8ΊÀÃ9"ð]ÑXŒIDØ6ÞˆèÁÏ“ˆŒã=¦\D"ŒÓ øÎ)FÌW¨VìñÀ.  ˜ÀÑÚø‰‰„04˜©Ö Ô!§y²¤µqPO@6lnÓ¤XÈdYȦ„€hJqB È>&G[LŽm¼‹i§!Ì!r¿sŒœ‡0¤,¢¤=‡šýHˆ“ö‘&„@é ˆŸu@È¡ÒÁã ü¥£Â ³ L@G—Žˆ´’-vž£ˆ8zp1»3 Ž‹Ç[—9³“â/ÀRˆ7O,aÔ²aDŒ,ËyN#ÐõäÀpBHŠˆ !úVñÜ~ /àÁ ¿˜XZ .„Œ°ŽÂk6–ñÈ9Ï_âJód\6!¤‰#ž²WÈCæG8‡L"(8Ïiì^d‚ ¬5Ø-HØz´ÂEž2¦äh“ƒ1]ˆéoÕI%¦/Å“fsÞä˶¨Ji¥~*^¼˜¿Ìë¼\æ÷:a¶s‡Ív©w’×WEÙ‘Pè³êÝÛ¹X,³rj@Á~WÜåF‰¤ð¿cØôr”Õu7ϳ:»ÊÛ‚›É°U;Þ¬ZD›5?¬/²v ¤f2nõÞ%œgõòó€Bº©AÑÕàPèÔVá}Þ´U½­ýùgמ¾a–!c«Õõ tû×yÓìäu»©ÏǸ]Ó¯+ÖŠýeq<Á$‡´ú¤8>ÄŠý Éù¢{ â.7ÃãN]ÃÓN1=Ì¢é“åøÃñ|ñ0Í>]P/ES=L·O›‹ãùâ÷•ìåÏ+Yv«ì|•w[P‹å’·!ñ†×ÊËì–î”%Þ‹é«¢=c¬ƒƒÉôäÛ:Óyö)ŸLg”˶ÁoYr2E U› 6>ÑöÓq~QdGÕWqªðÁ£ãÉœMuµí:ÛNî°,+@ví›ånh;¦íhU?ê~4ýHýhûÑõ£ïÇÏöx¶Çs=žëñ\çz<×ã¹Ïõx®Çs=žëñüïlò“«ºyM¦‹ÍyÛ½#|_&Ó£ª¾ÈëÎ%êlúzúf:;ÕÝ ;qÙÂûIKî­>JÍXŠR¡¶^#}äÅÿcÿú²ªZ˜Ëûýh?DI‹fÛ##æN*ÉÄ !Y‰>v€ˆÙ#‘`¥G7jA ðI+ÂHŠd°n€íˆ A†ˆØˆ~r4»?"!bAâ^ž$Ÿ¨\”|ÈÁñ´ô­4vkÊó#6šîð«8œÉî$‚¼uî7‹›~ *ÆÁtwJ“¶;{yi‡‰˜ýÑFâ…3!É„s NŒœ±ÃThÿT<ÍGêdwäå*Ž#¨Ø½S1+YwañΗ^&;‚ŠÛ?•``¥ƒwÅ7 ‘+) Sñ{/bƒz‰|7€\ÁŽb¼’>Ò½E¼ÿ„5¨M! XÑÀ ‘Š~ÈæjØ T_ú+SÁnCÑ SÙ£S´öRy¾¹S’ï'HG™ïXç ݽ´ýDgŸ¾ÙÒ]x¸ˆ½DÒ*ŽÒH6ûÏAŠï0Mà29DŒ†Eà— `Zwë®Git!¤Q®¡G ”C‡ »»Q´.¡Û‘¼‰# =B*kk»®’4à=‚åœD;3’Ðc„Œ°ÅÞŸ‚ŒšohaÈŒ%dŠœø2µ•øîØ ÿ~$!÷„”“Ýÿ Pg|ãÌŸÉÇïŸO2°ïQî çRÍWü2;’Oø‘ÏgÌ?ÿú[ðN(¶ár³ZÝ)•XJ§®÷–´XŽ"6’aIªÊ7ý÷JÍâÀ‘­hvLjbVJÛQ¢XŒq£DÑë[úÁSÿ(ªÊÞ endstream endobj 435 0 obj << /Length 1973 /Filter /FlateDecode >> stream xÚíšßSÛ8ÇßûWäÑ™NTý¶Ô¹¹ÈA¦´I¯ss½ øJìŒã½¿þV–ì$¶ å(^ˆã8 úìj÷»+m_½ÙU´¤²3<íhŽçkDB¸sÒù+ ˆw{Sô³ñ$¹HÒ³n1Di—'öz/ÑEùÙßÃý7»D.ŒJG’‰¶îM²Ia[ümFaÕ3¨Û?è ×úAP*B ˆNHB)à‚!"HE^8òoT$Yj€³À¾òàs’žd]ª‚«)Œ >IVëRå%UJ‘&m¦ˆÀcàæ-ª<¸JŠsË·ÿíì*q¬gSçó,x_ >|²oFåzˆs /¥z4\àöìéÝg_œÇöɃÁÆçú¯_/“èö¨äêJv²ri²ó¹²ï˜ëÁàÏÁ›ƒ$}÷ÕjãcÎ"‘ž ȵú¢éY°ui\v… "{g/5wŠ8?…¯G#³BbO B«¿¿" p†0&?1Üd`+:¶BÁ„TnøpªÏÍê2D£‘C ã/ Ä ‰°†”’¹'£j$ÕFdTËU9®àæÛàªîÆÕ#GARð ÌÁVW©`øÞøíÖv›¢ÀH±Úm“%Óô˜”4.EG–„ü&l‘­3â .Ššìlâq=…‘P5q|ÝFÁ9éOYÁ]–TfÀ ³±jd+Ugæ­“fÓ¹FYú~6Ëô_”žØ‹ãYrá.³SŸ·kîpíµTåó¶=D/N¢ Ë.ÍŠj’0¤›0ïŸ#nÅ[éø »Šy6;¾ˆ§çÔ0*ÈløÕ’=M0kJ3Jʉ–'j§Ìv®'%¼8/ªÊ Yv}±61o§öýi–ûr–¤Øm9 –‘´Rø1%v¶\/L·G A!fpô ³Ó†„§áP10êr’M{àÒߺŒÙ,·ï>¼?´Ef^A-ƒµàK†mBe†Ê<”#Í&g¥`4&ÿ4õgØXèÛ ˆ‘œ§‹â–à™+Ê·AkL7>µ®kzÛ·éAm©š9.k¥þijê•–“?c„©X‹ÿižmžQ6×BÊ*£vÔ&ªp‹V¸| LM;ºÁ–Ö½Ö¹¼«dÙ.jcm®‰yÉÍG6ÛœiÂ6¿Ê¹ :•ˆÓ–C3}X¹\ÝRÜk¨l¢Ÿ{&¾r8ïwó%™„ëÑwÎ6/‹ zTÜó ä Gñ$§±µ€ËÞŠÒ iÕKèë…4ô{Ðì\Ç£Y_¸&Ý,°§&!̆ìª*‰ Nl÷F0ÒóÞŒd©x*íŽÒ™k¡¡L£mì¬Æ>6Yl°—:z.㔺<®;! }Òëh<1öÙÆ–%L­òJ¾¢®ÇEYž„Á‰“Ï•‹5›Öêyh„_Û"óÌõ$eUI™WE´"ˆÖ¾X±æ­ôó¼’Ïý§"Îü^-š¤w»P‚dy‘Gis©d®…xFÚÿv®ÒÏU6¹î—Í´ùþ\s7 B¦~­Ÿ»5:ø ©61ù–ϯÉv7Ò‚xºr¬Þåz[öÒ£fwÛ¹k˜ŠJò4ÃðšE_¯‰”'À¸ë5qKÛ^ÓÀöâQR Ðh»]-‚8*fP5”V圖Éúê7Óã4D mÈë¾Òoqž@ T—ÆnNøõÏã‘I_Ë{y·'­v~YcÞ5&N ð/WØ ât „/“ÂxÑ7Ëy;šÆÎѲÔ{ªT!Iôí›T‰ <Œ`ƒ³òn@t•Z-o·°ÐÔ7¡ù£ÛmñEe·™^Ý^ŠõrÅp³b2+VvCŒwãÎC|¥T÷#kä¡)¢³›7†S·Ÿ$–?õÙã)$ófw".ٲŷ ™2fÐ2È“ÉE\ÔÉ]B¡ÉÀnË” &Q>íõATä‰Ña#&© ˜ºß6‘dÑO·ágT%¤Í(ã(w#š=¬,©¶²ìç{¦Ñ3ŽíÍ2!½õžˆ#ˆà:È”ƒù/Ã_=ó§œ <†R,®ƒ•¾9Û«ëeTþŸGñiœÇ©=š×©¾¶4šg­—VB߬¶rk V϶ypŸ>ï-•ûFöܶ«˜“ÔÉ›ëî> stream xÚíZ[—ÓF~Ÿ_áÝ'ù0}S_²'@È Y ›ȃƖÇZdË‘d6~«ºZ¶dkÆ as²až,u—»«¿ªúºª[ÏOîoG.vZèÑù|äTÌ•æbn e6z=ŠÍxb‹Î6E“¯‹<«Æ)eôz=žÍÒ&«Ç“IJ(†öü£œûâcr!’È$ã_αф˘'¼EÖ²OóUF˜¾ÊÒj:&ZŒ'ÚÊ?Ûbþô6´udô0ÚŽÐþy À¦Õ2 Þ¤UÿO’¿&"ÿÃríkÀæ ð¹—YÝ”UÚä励HkðvÇÜWë¥G@6=P·˜rÂù" ,üª,Þ†RA›ÑòÎKoçÁö„öY]çië½HÎYÕlª‹àÓŠ»;b>Õ²k@•êO›´Î'ϲ«Æó‚æ_»+~)|áû]VåïljŽÀKß{Ÿ%ÿ=ÇÍ(Ò c¾Z’½-Øâ°ûì0Վ™áÝšä.Q;HÔ¬Þæt krëï‡u箦ÅÕÜáú9¸ªkpµ-®Vßáú¸^Ss×âêîüõspÕƒô*BevöúìÅ«A\Ç<¢œ¡úëÃwËÊ̺a_¡4{.™V³¼. N€àôÕÙAÉïB»»rí ár×d·"”d?¿:{qÔso**¾^R hï¯\çÜwÂUì”MÀÍ%ÁýÔÜFÏ×XçÖ€§UQ:–Öð”éEUïó”ú›Ehypöâ)==Yᚬš§SèÜH9NZÈddA ­P 0·Ð±d‚æ?DZ„Ѽ,Šr,\t•¯.©i•.ñÐ7u6Ã'A¤ù–f‘‡¾Y騧›e¶ÂˆkH0­ÂÈM•βeZ½ òeEUv™× 2Ü•û@•Ü/ï”úž<õO"úW^oÒ‚Z_5›Y^Rû£{÷‚ìNBt$$JPcüìñy€×À²Rið•*6ÐèuÆâ‚ Äa‰8 f›©?×ðÿçºã$Ì»ãá^àɺ\7$Ö½BE››4H@™ô5(óÖßpúçÔžÆùX“ÖÆBó›à<ç&œŽ…á}òeþŸ¬:%]WåªÜ¬¦èШÑ[.Õã~úÍoYYúhùw°G a¡dº¢ß’n{²ðZ—› Ùžç ’îí}¡uNñýÝ8I¢ô24ÎÁ"ày&f r/*Š´ºÌ&õ4myeU®Š–à-„'P¬Ê¼!­aÌ5$9õt sAjR+q67%µÔ»ãR|½ÌVYåƒ dz³IÄì²J—KO:Ø ÀxËšºËùP`ÂÆ+]zn’X×çV4D÷rFZ¢áX39šèXé®}b²#±Ãma"йîÀ„Úµ/IÀÁßœÅù±ŸI3â±Û ÍÂ;N%Tl¡AùpöRóÃhOb—tc}`[£Z™CCh§:c€ÿ † =ŽÇ}ƒ÷ˆWWè‹mÔ®ã&šQÃú¶t9ts†€‘ÐÓ ¤:ÃX JpÐŽÔ[&ÔÀ|œAôÞ|ý%âtÇaJnÓ¡Æ:ÖŠïd>]Ù}px›×‡Êp 'nœ„‰ŽbÝI'BðIpp \éú®ÝŸW©vrÄ0òký08”Ò·Cì“´~=0 ÇÈžÖÿÖp Å^HÉ](Τé©$à~µ€@KÀ“2 ”îúˆ–n61ø%¤@#axm‚™ô¯d1ÓúVˆ¾X'ƤKŽAŠR:ùý˜Ú] ½¡’}`+„”V¸­ï db£¶C UØq‹¨#Ib%dìt˜Ü¬Ø*5rK ´ú¿Àxí³Hbc(Röfl̵‰þ60'‡Ç£õË‚Xì¢Éç²LáàCy_|DÿΦ»Û1lŸoð°fŠôÒÀÐæÏ‚_ãÌDÇ’›v~×ÍDþÔèÝ<ërâÄŠCfïÝæ×~û’ÖÇñÞqd7ç†âyZ®j(¶CõTãT¶ç´Q8´Ï”N#Œ¡y7EúÃ’UÔ뮃<Þò?ͨ/ŒÞ'lÊMíwzè™åo—óLpÝX&,øŠ>p¥!òP7w,0l!þ¥]qŒ‰i€Ï´ìg.ÐDÖ€ÕPæÒv¸c™ËD±kú–¸¾:’À8Œ×£ù‹ööÚäæ½61º»×Jwcþ¢½ív9Le EɆùÞÅZÈã…å‘äÒ_ Mu M³æ`ÚÁXr,s±_$s9¶«ÈØLŒkÁ¢geƒa’8Ø\R$“¨ã×MZäž9>Rß^ÐSc9'qª7 ¡=›90/иñà@Å&xN£\(¿ò¿ôIAGæKn6,ú¡°ZÕC‹0±súw¯AÇÖºîpC¡"TbI§û̲£r)£:YSdjåOà õ¢5“TQ5 « å£,îèñÄ>_& j‹Gg˜÷]·*HÇ`UbwHúíçž D9é`Žë`€´z:[‹kíyT›OöIݵg¼»!à%‚ u‹' PIÚ  °c¸*8K!†–P§Oý™©I¢‡éoÞ]V¸ ßm&6¹ùÖ€Aª´eÖ|¹.²öʦ&x|>ƒçÒ+ÜñptŸ@#9ÜîÐÛ ú¨žêööS{ú¶žçªh²0Ä2kt[4£†fòi,ÅpÆ¥?zån Õl+è'/ýnM0¡ e± §ðæ Éÿ1œpN¶=qH• ^Œ·GË˾ žfY“æEMÝ~t)Û£h¥ÅeYåÍ"|ñ>m¿eííÜÛÏËç¡¿ÎÂ5u;ÍØ\0o{%oô)‰ÛðËå)õpÞ¶°_Ýíû™~öàýX Å3^äÈñàdýfÏ»¢C¼›'\oåøv<¼¼€_Fâ¹%nØÕ^‚bó¼*—$øèù“g“ç/©yGþI¿\ªo™nÑ4ëoîß¿ººŠ§àǼ´÷ŽËjh·åÉÞÁ§¹À„þ› ÐJ0h{Œ±­"§E¾®³àdÀäÊíåˆ/¼1ÉÔÑSHÇWu¶hØ^MÚûl-HŒ^BƪÁ‹¦ÅfæOïàœºœR”ÌÂk¸Ú³žd2fJ1ž/ïRKÌ”wÈÃôË,]Õ>ñ÷n‚‚¡/EN Ç`΀Ä ·½ju^exsl´2üõn²À{+¼¶±uI]s› éÏÊå2«¦9†v®7HG·êÌWºBG?´%€‚/Œ›‡ ý¥]¹¡—˼½Ì·t[>¤a¯ÅVº³Û9l%ëìöàâÖÆŽñcà YÚ¦'ÓÀaxôµ¼M B™Hún¶u¥zn¯žÔá÷"_¥ÕGºÛÆŒ-¸¡jÏs¡ù#.ÁÀ—eÚŽŒ²ºôÞ M¸"o†ù!ÑqÂÔñõš‹èûFøÎÇßÓw,åU®¨Ÿ+È[sÿmAW·eúŽjAª¤­ñ_Bì].–>ÌÈïÌn‰Þ¡BÜš6¡Æôc£tõ½/ ½égÈà‰\-r‚‹:—a->uÛñ<9^ÀÅk 2§sÚCqÞÂú`MwôÐ’2CÛ’épˆ_¨ Ö‰7I<™pt,ÛÛòÿÊq“Ú endstream endobj 487 0 obj << /Length 2580 /Filter /FlateDecode >> stream xÚÝYKsÜ6¾ûWhoT•&ðå›dˉ×RV©v+•äÀbf¸æc>"+ûçÓnpÈ*’«|ÚÆ«»Ñ¯ÁËûWo>$g©H£ :»_ŸÅ©Îb?2†~~ö«×Ö}³2ç ¥#h¯»ó ñ΃ØË¦-}»-Vu…³ºÂ~úº·b/7 Á”õ~gh -Ȫœ·Úí›þÀÌtV½žçBœ/txÎåÕ ÍÉM—eû{©·/MÖb¢1kÓºúü÷ûžùg ©„ % Lb(å]­Êbo—)íÝö˲XÑÀu±2U çâj©Eªõt‹‹²­ñhàª@¦ãÀ{Dfëž:¤:hômQmp›7d4º†4~”gv»ûzßѬñ]))üD»I ŒÝ²^‚ä¶•לKN’^Û—]Kãk«"d‚>{+XÖuÅ,[½2ƒûóhº.‹Î”¼®ý<ˆ”°Hj8žÃÅ!K}G“ à§²Z[H­…ŸFS½ñŽÀ`…Þ>£Í ÷»mÖQk8;}kòJé >£Â *&üAœ’5Úkú®@zÇ7FZ#¯RýކHï?hˆMÑáÕÚ±m±Ù.¾ôh$*9ÇÎ4°OI$²ìo ±FBªR±H‚UÅ·}¶®Ô"Ë ï2E—uG}t$tÅÎð +¬=üæKU7 œh7¦¼އ]ûxÆkÇu•Û»k²ª-³Ž7æ›®iVFÄ2k6†×‘˜(Ö’vo¦<ŽTÙZ†¬šÁMkVÀ‘ZåX¯¤1 YˆÚmÁÎlTRèï_zÓvÔ!"„’ÊZ3PÖYÑíío~(ñ CMWÈ»eàÌ4c›BQÚ}¶rÓ:"¡‰œZc—ñsí‹8ÜCá" ½ÿš³¿­w|Ú>Û0 ¨+"Ž5SmGæ£d bN•x¤tŒjt\ds4Ó­7mL@ø°E/^¡¶snI!ÓôyA£tð»mÖÒ|¦¢.z6^ˆñB´Ç¡ø¼¿Ì'‹¨CfÐ<ÒÌm¶ß³Çá QðÝš¬¡V†Î@fIA h©v¾TŠ$=Šïæ«‹L…©Và.V@•BÐi("XmÉ4Q´D gÉ ônƒ6Y´UÚSÕ µ§"LØÑ?².ê&·i ¤rb,û¢œ‹|qœ¦ßùpÇ–í ÎØ ëwŸ5ÝH‰+TY½Û“Ò*ÎÐ--£Ä³¬„Éß2ztô"Ið·ÀRÖ(¤ø”Il)ÇãåõÅfú&‡þeÖb:ÆîuQÙ ÕI™wc–MFwý²k…á–};õ}ï&«XœCSåuÓÒ–p`2¥!rH1µ»úŒ<ÒÚǶ3»v.Z9˜–÷ʆ¸Ù¬ÜqP ´%€"¸¿X ÔÓð*«&l×ódäm º…ŒÉè%"=«Œœ»„- ‘Ñšð\Écw¡·P׎8|Çy—¬›zG†™k Hg ¢2¨HÔÍæÔpÀFÖMðRžpùT´FÔ"’ð< ÃâtÚ9ÄݦXö$‘ÖÚuØoÖwõÄ^Ù ± î&ŽcïÇš‘-X˜KiÒkÀ?u,‡Õ˜Æð GÕÕSö¬aJskAš~û–O·þÍIÁ2=‘odJ&ìoJ¦î®DˆÃ¸DM°ôe‰^`×@i‰Žf;Æ,4!#bÓs­°cz޹ñ Iî,&!ø_·‹ˆ°†f\o—mª¢ësóa4R±‰_}ÍP,Î<$D0GG«âPxÀ kFO­–×CàãP§Ó ŸLCÝÿNM j<ض­cÐ (WeM>ÀA—âbŽXsÑ5Q³¨‘ ®¾z&¸^àïn®IL °7ïé¼wµ;ù&dÅƦGŒª´b9ʸr&êÓy  ©Õ‹»º»»¦m‘©«j Ò.F^$ÞÑUAxB›Ñ\ ÿ,»jÄ®ö>^Þ<Ç®~1»7ŸFÜ:}iï“i*W‹•/á‰,Ì”ßO‘w=#‰[‚H`ñ»Œœ dnŽ9QvÙ©]#´QzjeÏÙõ¦ÂZç;ÛlWfíÈh'aÕ pîÔÚÏö«˜ÁÊ{T‚Ùûùn—ðCÝÕ6𨠬}ê£è0$g2"©+æxÇnA¨Zƒ4x}œ6VóåTÄ/O/tC)»Þ”ìDšê%«˜„J¾‹Ÿê¢›Í —8‹Ã¡Cì¹Ï0Ï…s€k~ ú:„Kñ{wUšJL v]&£z«µ£Çë‹[Ô,ŹOXåÅÖbðýx„Î-få Ôâ»OPl1€Ldh_wha2hLwMDBÓØš‚L Ô6Áñâ)"â•™|6ÊÏAè”%@™K,`hÀåYìÑ`  l^£°c4N°XôÌ ‡õì´Öá'€df‹œ\i×uû·oÞ<‡×nÙDàÌÙþqá­žÀma*ôËjÏh¯ÙÇá5ëkà×6§ÍzqêCÁžz >üh…­Uß4Œ,bÒ‰QÍb;øÒ¶\-Åãkúo`–Èù¢âIù#?Ë7¾ôP8-~2ŧxОq otªVÿE8xZQ‚Q†ZÂY1Œâ‘Š#÷lM‹ è¢áRQ±ƒé‘ƒ!qI£ABøš¦±8š;z÷léÄnW–Ã<Ÿ\­ú†6´µ@wºµ÷ËrM^ßl¦Ô’Jqí[Kz÷'Â#¡ö‰W Ú‰FF‚T¾ë–èSû4åÝÄŽ@)ö‘[Ž>¶*»/—€£óf"Ì(,S€ÝŒ¯)¡~þ¢wža{kÛ3±#÷f¿¿ý×ýÏfë-•‡—‹Ó}"á'Éd›»ç·¡¼TåsÅg(ô éû»_®þ=cýøè¬ŸLG+áË'“éÉE¾_šR¥ÔøoSªr)UCJ}ù‹Ì&A›Öpû*Pà€x  r„bÔ‚zA×þðNa'×%¿×‰¹—Ä$é>>uRGÃO¨ ò–6·/ÒðuÿCÊkt2G|;eMÃ-†Œ=D|û,ˆ?O,Å`Ò “ƒl¯ùváZcuô°:•˜@ÒjÚýè±hdqÓ tôzMïôžV²MŒ±^Ñä‹ãç9wÄ\Ñ{;”³û6®ë²¬-þJ¬ ÿÃ1/Ò_a1||¯røæ"ˆ™7.ŠõÝ]qˆ¥–áìLsÈÛÜ=þ2.¼æâÂÖ˜™ ¡™Ì€šm[ЦÙJôŸg |Ö†œ©¦dèÃöÉ·ÕS7áÿbÎT ¥ NÅà^ãÀ««ûWÝ*õÖ endstream endobj 498 0 obj << /Length 3345 /Filter /FlateDecode >> stream xÚíZYoäÆ~ׯ˜‚F¨Bèúxq„&VÁ«ˆWòFqDáÿÅñâðce€‰¯ ;ˆ#þoXÇÿ 4¶_oßßðµðÜۯˮUxáβa›´mñ’òò‘¿gŽ$e™Ë ö˜4­p(+š<í¸}S—<õ|£×͹¦ ïœÑâû&IJ•Wíæ|8ëò±®Ô®¹äû<½s`”ïÄS.²0Š”Ç¿Ž…·V‘€'†x—,麥°`šϞ°Æ¬óf”ÀûóÈ[_ýõ³ë›¯ž0êCõ ¶ÏжfN›úpU7÷¿ˆOŠõ\£¼(ž‹ìÏu—r¾ñ}-\pC«¸!Ìš¥ß´h(äy]á廼ümË„íŸÞq£ £— ÖÁZ^®îÖ·iéŽÇµýñH#ëF(lâ0n—']ßä²M•§yÛZ >ÑÂ]Ý0[t8ã‹rýµ×ÇúØ=ežk(²Ë E <‚þ@ýúU#éZâãL­ÐD»¦øyj›)þþpëä>õë››íû×±@àgž4é>oTqwPi}¸ü©Èþnì¸?þ±Èþ }7\àU¨U Í©A®6žã)T}^/VQ÷ßðæu·ð½u»¯û2ãvQ¥eŸåü’tü,󤥦¿®+é«wüd•ÀAE§çQ­uQM++ݱ"!Ñ:/Hš‹«5Ù,.Xó³é«½uS>ĵ_£8¸`¸N*{G9:)»eÂùvÓÂ8ЭÈÓs‰Òé@ò|Qƒä®­±ÝíCÑ‘¾ì™ ,¬§—©cÌóŠGeÅwŽöò&—cðâe—7Qæ[{ÁcÇÃØ4‘@gŽE™/2.P¾_`œ:ƒà{{ J$vÄ~P–O54™`{£‰==„v×÷_:‚«üp°ÕÁqÚS  ´^ï“–I‡.„»1 à ž¬eÄçz*ö¢•ljÍÇ >°±Ø…Ë(ÑhàÈÏ}fûHï±{äƒñƧ»ÇFv'3öcw‘ÀP[ ?Ú=@L=(õwüDƒ–VrZ]“oÀÒ˜'óHí°QÕâ$"¿9ÉÄÀs‰*b“¿Y›"¼|Æ †Èàê ‘\å©ð9€êˆÍ¹‚¾ºýüÖä[«ï ã=¯†oh¼ø\0úØvùAL¡gÂî¬ïŠquœ-„,4h²Ó5à&8¯SeãÖ ‡âŸyƒÈ%Â5ÎwÁ4=’*ÍÙ,yèn껾í*@Ü‘å2¡Ê„Bw†‘xºo˜šâÛ¾.Ò\Ái³ ºîx t8o¹tÞù~^äÓ~^äMöCjr<–ý .„BQEÇȶä‡sÚœI- ðœGQ@Á'·3?Ä f?v ëªUÈgH½êÖÒw²Â2çÉ «Qµ#NÖw€É”œ /‡”ö ÓQìØ÷黫îM Ÿ®=àë Õ´*³·Æ‰¼j5ðÄ×`§5Þñt‹J°£oeÍ„÷µ¬FûMÎñÜöë€eÍ.ßj~Ž"Ã7¶`cèöFè“s‹O“÷h#ØB ƒÏCQex!/XŽ„¤·/“¦”öy5Û_0^ ºŒ¤#;GÿÏÖä²5¡(Ň pAªÍ(0¡ÕCHä2iÕÓP{â@®Ñ÷9Ñ- qá$©ìÆèLø*Ò‡à»\ðYžöV€ò ú˜é—Vrx!ŸßÞsŒ2®û Û{”;èÓí)>¿}è+íéר>4J?¹|l/_7".;`µƒt¤×-â0íEÀÑ—@4,€"<ÉPïú¢”PÆ–²„G‡Œ‚ #å­ž?É-é–`<$ïq¿„ã5ÀQÏjòû‚ ¸-,[äL²¢@â( ~/dçY4­–b¡oTìœà/È—)Ï,H×Â@D¢æà˜¦b|"ôüù6ÜIQfH¤-lþÅÝÅ¡Qå÷É´Ëç²\A¢‚§r?‘®–}ÞR^>ÛA‡çpÈAÔ)¿l‚ÆP*T`ÅR¤X7€Ÿ2ñòÚŸ26=)ø¶> ÍS™ñ@Ù[¬ô ZË‚æÅ‚&„ZéØY\=$tœªFõ ÐêìX9Aƒ+ÈQ0±u[uâö޹…µ%j´i¡ _ñL–Ì< F˜‹/(sÃÛaL¢ñ&†Ô fF‹! =±^h1àL–Jå"´®-œ”D MC½F”®ì–@vìxdqÇ" œa  üÚõ%·Á¿,äúÚW&z9ÕGÙÙsôÃmH;`Ëž‚é±ä¤~ ŒñO <^ÔpêŒ×3Îú‹z¬qÈÅ ‡ ~MÀÛ³ª… ~"ã7â(<÷ɬpdÆ„ÿ¡ôáF¤ÖÞ¯ª¡ûŽCv߯¢=:`ž8ŸÿP´-¨ŸMÙ5¨ŽN G6ÞªŠ!±eb•B+e?¯jÓWhXˆPÑù]mßËÛM%ö¡tŽ$ûMFKÍzc‡“%ìm.§ÒÆ@3y%g ÏäœJÕèøŠR<7’»…j¨¹JGCñKìUÞt_.ªO¹®?)ïù¡#u/xó€ÊÆNôAçÙ øë—„&Ìã©$¸ë¤ïjùÈE )?¿®Ã8vVÁ´î@˜Á³ô2‡µ(–áHL¹~ŸÙõ9×r&à/î«„QÎO:J£_“ª i{#lÙg]á°5±KÇ¡C#u84¾ð7=[ºD †£ƒ_0K€è® _vS^0˜%—xpmV^l‘àåæéð9ȃˆË˜8ôT}˜‚ðYȸO>@å?çiß¡ö+ X@ Ù­öÍ$ÐÖ2C-·ŠŠŠ¶$%‚ÎE“m0.ؘ!U&Æ*•”[žÅPFìÅó‚Éë;ȉ«±¦{!÷x¶E×€øû'þÿ¦¨XAÍs ö¸'¨q¦é†½%<š¢ë¨¼Æ8—žo~÷» Ž\(6%3Ø©ËÆ`ØFh7D=9=YR„™~wÌømùN—*çe4»”­H€ÐE)|×UA0g'}›²¹RSØò¡h—}Ÿ4ÙTž±&?ù?å"&d¢Ç2éPÄjÕd RB*u¡ûƒÖø]—e¼!·Å å3õ20¾§ÂVÃIšéº×û¾…GKmÓ¦8v2‘à"Qñ#%Ú.(~ZØ óä+—²ÅF£âjQ\xNN«0‚ÅTˆ¡y¤º˜º¢Ås“ÍÞÙk#‡ ‹ "œÕ(7ü„(Úc"ËÁÛ¼Üm†ŒàMÆó¶øÝi!ñèö5wˆ¿–Ç-¿ JvÄ>cÈÊ€ëű2#>l #ÀÑõ×W l2f#Ñ3€êÌÕIŒ»É#°‡sK{ÂÝMWoÞÌ»€E|SÊ!»Ý¹éRAó, ƒÓ¸ñ­˜…ŒçrqíŒc•+m3wñß"÷¬Ê#ÿ½æ;î Á«]äÍ?5Ѫ"ñ…³rhPÆ®×=:ÂNjîú wZ<Ä–D*>ùãÎäû!ûŒ7K.F<¿N›<éòÉoò¿ú¸9(¨èIiPÈ÷øÏ˜ÌVŒf¡rfØh,ìµR*üÜëÆ*Šä»S`K{ÿÆNe] endstream endobj 387 0 obj << /Type /ObjStm /N 100 /First 918 /Length 2975 /Filter /FlateDecode >> stream xÚÍ[[o\·~ß_ÁÇäÁ\Îp†ÃMaËH .Œ8AÚF±–7ö6ŠV]ÉqòïûÍY®dőαÌS8€CžË¿Ã¹sF1EœDqª‹‰\*‚‘]ar±W÷KuDjpÄR0!G±FLØ‘FvvA)Ó"VqT(àŽ:ªª˜$ÇìNvÌbwŠc#ku¬1:ÁcN9aBŽ &ì¸b- X&”¼CÀXKHÄL˜$kIÈ@µ$\U±ï©:Ãc|‰~ÀŒ%$ð6&XXƒ,ÄÖK‚+ÂÝ\ðœð^µÿQvÔè§Tíêïpp*ä±Wš€äæ˜1‰NKN aq)V—ß.@¸Øì’.ØíQu)ak%0·%‚#5‰áu™‚=Š˜Äº°.»Y#èÄârÊX¹Ø§Hp¹x!WBµ‰±6Ú$º³Mĵ ¸’»!É•<¼œ]©ÃË„0¼\]e{Yƒ«QmÿÈUˆ²« xwk6î`áZÁ"Á·ÿ¢ 3ˆîeÌ">T´`&ÙH@ÎB²]O´v2I¡’ÍÔ¤„!i˜àƒS²dkZ€ÅDíe¶™ms±—",ÙÄ8Ù¶â>Ñ€±Ø/*Ø%à:qÈ6 Æl›$#b³x!a¨ÛOí)Dž36À–!®& ¦*1è F˜ñ P ÁcL[¢OñÛ˜ŠéK,,–_oO/܃nù5@Ä”¡¦ßÚ»Ò.Lèk»€0‚L»€´˜~´ Àî¶ ¨¹¿0]Ñ6-¨ß~nžKŠýâ° ™58¬¦Ä²'üÕW‹åÓÝöøÙúÂ=w˧¿vËïÖ¿^¸ <²úî·³5¬^¯Ë#|Üúôâ’:,¿X~»>߾ݯÏn=Y¿Ú¬muÏm½¥Í•_`™Õ¿ÅÊiÿÞÃÓÓ-H=Ì—a1ó5Œ¥´qÞ Î~lïÕö^m”6jSs½º§g6k?R¹±ÒFmcjcncic£G5zÔèQ£G5zÔèQ£G5zÜèq£Ç7zÜèq£Ç7zÜèq£½¸§÷;Ö|X,Ÿ½}y1\ÿmsúÓbùh»{µÞ , /–]~³—›wåO3JÉgs¬ÁH/œO±LÄÃ3àÑè6†Á»uO ¼š(ö— ÞÜGÈŒm’‡ÁžÔ C`áb¡HÑOžJ‡’ûC!ÁÒp0O .E‡Rf˜@XÛRg°-D>g™$1e•B˜è ‹ÑI0|Z‹Ïq* tJ3¸¿Ì°ƒ.K‹z-q" 8 D`±?A¹4ÃìGžHf¤ÁGKeØ[À¯Õ#c™g/¡¶q3`!‘äi*»úÛÅ® ÜE'>!´Grß5®ëµ’ ½Bðê‘k8$¬>Áj¨¾¤,`ÃÑß% uÀª´Œ£Â…Ò¨ŽsØ$YX†˜ )À„ÆkÒ ²8=öª£Hâ+–^f¸O’ñ½áþP${ˆ®ãÀƒG~ê9Åq(3<¤@X!qUÃÑ™¤Òq&¹!ã“Ëøýñ 2éD<3¸(±Iv,ßi:…d¡M4Ç2"²AΣáô Æ/MÄÓ?…AVîG8Ä{¾‚aÈxÁ°qYžIªÞN˜ãÚÉ4=j‡¢ý¡(L;½[°¸&"WàPÆ¡ô÷‘–$ð¹.Rꬓľq(ýcóÈH1+¢=¤ ‘,](È\&¸§ÒÝ_G(M…ŒPNPì A©j¼Õ_÷—XK%3Â(ðEÊ—ÇöCfðŽæíP: pX;.Ð¥:JïÈÐ;³d¬Úæ€EQhJÿxŠ¡+I¤IGEÞ' “;ŽDºË+Cu˜ae±9Yaü‘Á…œo•Wí¾ì ÚöÁ\\R)·‚èoШ"€GĈ\ì— Šjê©5m?§¨‰(!ˆ‚‰EZ]ÿX>VggëÓW›_ýÃþ(„Y!ÈÌi‰€pRo8}¹„ñ¨? †ûbÍP…‰P„Ì·Ã8ê/È7$GìBðd…ohÔ|Í`TáüM* C &?îìŽf°¨Å²AdáVT³3çqýÍ)Ö·ƒ §Å!ÂÏZÆô÷»HK€hd;Éu© Q€£˜ÅM&¢5ûd%_8¾ñÈìèºM}ìž[M}¨’ýãŸÿr¦.ƒêéÛ““˲ÉU‰ïý:ܵ ŸZ²õ…¸»–Û’|PnÛËîPn³ºó¾ÔÊD±•‰¤•‰¤•¤½'­ì$­ì$­ì$­ì$­ì$ž4zÚèi£§ž6zÚèi£§ž6zÚèi£—½4k ác)qbëhŽS÷VÇ"èRã§Õ±Žzö$°*%ÃÈd˜ˆ³•±Rž Ýµ?3,|¥Þc¬+OúcmÑlÎHíôØàœË[C4CኽÕžšEÓ WÀ³T®7a_àx_¹ Y'`™¡ ‡hš† ¼!ì #Gå ZD3¦‘ŠÖlÁµZH;”®J™‚¥¿—Ôb¼áK,cU«+,3Tì¼ ¿‡e¤`u…¥¿ÑEžî•é ËH­ê K³{(S ŒÔ©® ô7»3~KN3¾4ŽÕ¨®âî0C}JòÎy¦Õ§¥¿ÑU[ël3£[öí…Pª ÁsÿbY+SEHK.·—©.3ÅÇý`h@B‡S ;ÙWpÇ:NÍ7Öõß®† éZšRFb]$lýHúA½‡D¸úªõ×ú¢õ€š]2º‘5Ç›‹µÿûöø‡Õú‡ÕÉýÕ«ÕÙÅæ—uGPÖ¦ß% t( :~s±Þ=}ó¸#„)Vw¹D¦åáhšG›õëîÿ|ÖOÊÞº/ñ „É&<ðNÐû?nN°I¯O¶/W'q•è­…õ ©A é£aloAu º„$-À~ß›]àšÀ.¼á®}Ùðaˇ +,†oùlùý·ßØ¿/Þ\\œÝ_.ß½{ç·›Ó{Ûßî^y=Oq,ÿà-xHËk½V¾ýM¶øØRuÄÍ„Ôfœ¬•2x0áM8˒ʔÂk½¹7÷ù^ïP“Ë~bәñÆë5ë—¾lô…?¸l'¶îïËe¬¡=ÇO+îz@QòEïz@ÑvFZòõzïGþ´ÄÿºnYã–uvRK+æÙY†¥–7ô2|„ W*a(“5˜ØQU°v Ø@ûK‹wÁùNJuº¾8Ù¼üN}$.õîËjцiŒ® 0¥;azs~âw'~uìßþôé¨À$ªG† ‰÷Óuez]Òósí-Ó~kP´¤=*¼®ðïëhïCÄ}ü5­é®:ZÚ!^i‡x­W_Z¯¾´^}i½úÒzõ¥õêKëÕñ‰â*¤4–&!¬<ðˆiJŒ,å€+e¿ü,pYÖ‘;èÀËç€+ µ2U0$·ïìõnµ:ñëÓó{'¿!¬ÿq·|òý“§Ï:˜ŒLð줂«ÞißÎV»W›óí½³Ýö?X¢­VäçßO…âÕþÎ )Ýaÿvëóõjwüf½ó›—?#FûyùËfýîß°goÎþ¼yõ'N_öJܬà›í/äàí$³î+lb–~R³÷íõ±ÂlµÆHÞj Ö|i5 |4‚ð Ú?!( kc´Ó |<Ì=GER ç"È'†Ëù¸qí¹rž5 endstream endobj 513 0 obj << /Length 2706 /Filter /FlateDecode >> stream xÚµYYsÛ8~÷¯PվР"DÞ<ÎåTœìÆÎ¦¶fæ¦h‰kŠÔòˆìýõÛ)J¢|TÍ>h\>¾î»9™}ˆ&†™P„“›»‰QŒ+5Ѿa\e>ùÝû¹L‹Ó©’Âkë¬X`“{¿þ ZR®ÖYžVõôƒÐÛœŠÈKi¬Jat•sê>âPÙÒmí&5Kרã•ký²{TuV4¹8ÚkWH¾=Ò Ü•ÕéŸ7Ÿg>¸†Ô! Œ™øtƒE’ФáUyÀBû)g#»h&¹è÷xóæù=¬b¸ïáfÀ­Ï„Ô“)—ŒÃí ü7U\n­8‹”ì¶fxÛÐûpIoôÆB1­¢žÙãÛ*fDÏq½&i&Ù>WIœç§‘‹H®zUJß*O§Ü#uJ?B-i§¥š&)-©¨Û,ÛR,`‚VýáþáJœÀí±’&;œ,Ahœ³´±#=g pYäÒX*˜MéÅí¾(‘©MAô¦$ò2Fê¯îŠ0rÛ.jÆ¢%1Øéœ¨Y]·iMôMÖ,‰Z—+·¾¼ëV»“­84‰ºNyV/–`|ú~ºþB;äY‘ÆV»  ›ÖeÞ93R¬4‹ ª…%Â0IZ™}qxŸÊSð” œ¡º?|­ÿaãr¢öÊush-È…aAЖ—xCŸ{ó´ÎªtŽ:òµ½¯]ÉÃÁÒP°Hôy¹Ý\BêÞÅæYÝTÙmÛX¿Çƒi‘Vqc¥]2'ßKÒ¤mâÛ<%:‚€m衱*­iÌÓÜ"’ÄPáYU+j74p~õ÷/Ì5k:€ô–çgd|F²=Ëë¡LFŒ¤ vO-7ŽlE‘·®JàuECu²hËŒ[k:!7œùAøœ 9[ÏwetÉ´º‹+A ‘¤ qñæ •/¼‹3¢t#ÈLÙSxª¯^ÂT¿ !b`Ä ÃÀ'fÀßÉÛœ‡akUÖ ~¡+µ³Eö@£#jµ¡H<ìF`ýϬ˜Ô4Ð4ûgV·qNäë¦g%ÑÙ×÷7gD¾x\l²Âm9ê¦W×ÿºž]eÅÇŸØ*ò.qºÒÞušU#QÒ§Yf5µæd­I»5LKNWsÜfY¢Õl¨ƒžŒÓ´!±¹­é†‡j”&d<ϨQ@ÔÁ i°Öä›Ô)$ ‚½–IÞΑcaì=Ïcº½0>i‡(sŒ€ŽØ›–,Ò/ôöf­° ‡[“5! ½Ý1âXìœz– £èËÙ)¤‹ýq¾õmìõÁ'%v`]ŠÁ’¹àA:e䮜Îçó ï> ºRASÈgÐožBhÂ#h*å@3Ô³´… õÙWÃÔ…û`ð/8ãÂñƒID°Õ§-?nÞ»õ$dFËÈšØÄ,ÉBîrÌàð6ši3™æ`æ@øœ¢ÑÒÌÖ ïÞê‘°…¼é¶ö{}ùèÙØ5•dÆ^ËÏñ¯xÄwüa¦u† ë.³Åަ±tOF§ÃmXÁú7~[¸]Ö4f3uõ÷à¢ç÷®ÂT·þì’ ÌZ-‡€&iêŽ_º¦†yê8D9"罙`ˆ=T™%e†8C1]ÎàyDù0¥ÕNp˜Cž‘4eõˆ¹Ó¨ÒH¯ÖÙUÜäñ툤 öûYhr«ôaÄaȈ,t¡N±;Ô)ö·©zwID¦1¬ƒð(ÃW¹9)÷¤+9¦È`Æth¤Yè›]4Z6ͺ~;›Aôø7H¼fI™ÓÓi°\±²ZÌH™›ì>›ÑIOè ‰ñPïW»Š“$úÝQ]tLs6~HuÌeÈô6|?Ü DöÒƒëÂîŒÃ|L)—%Á˜«Œf fHÀ˜ˆZ,PÌÊyKÇŒ]Û{ R-êeU@ºn„÷–ïOˆ—‹Új‹ôà$S’}Uë^¨éÈ…£¡ËЄ›ejË%´r¡q^—ÔÞ56È¡UÇݸ:g{¼³J…4–ô¯µÊówß¾L/hoD¸mÊOBϱÀ– dºFf³Ä>‹ÔŒËpw/ê]áŠ0r° #)À6F¶Ë €†%(~Ñ+Ìšq%\@]f +&$ÎÓ ³ڣɨ¸tGt»á—èwma³Øš†É°e‚vÅ“QE#Éñ-n‡ ó#«3è.ªØoèmª¬iðÉ ;Öƒ`ç ê–n”/ —{—M¿cÚm@Å9´Ò‡xµÎ;º3YhÕKJÛ¨·Ó±ºÔÑrÐY1v)p×¢Ëím0/å´`¾*Ûî€<‡H({x¼­IYÂÅœD êL³MóÇК‡Ì7úõ~qyuu½u‹ýºÈT Cæˆ5â0yÉ=Za©êÓæ˜¨×Ô'4Í¢XµÀ÷âÛå×é·ï¶Ôå‡p3zë„öU\%iNs?µÎe ó°§Ø’“Réȧw øîTÜ´|›Q‡{ï*#z¢euY,EÀ•xGDÛ©ÌŸ´%F6d¼Ü˜¶bÉzSÛ pÔ–Ü]êÕ¶t×çï²1Ät#Pƒ6€ Œºõãàٸ̑|xC¯•euO ¨j„±vcw»ÝZa½K¬TÝ"Ph¶Êþ;6—jKŽ`øzhäÿ;px{ Ê^Í’¸ŽçY÷ÁŒo3 ŠB>©g¨ì£ô0Óx‰š×ëówM$ýè›u&!eˆÁƒq¾(!Ø,WÔíRÝ…§šè]Ü£^vÓúŒ&÷ü†;ï•x^ñä9¡}/8šŽYÀ¤¬ªÔfô˜Ý@˜/æÎǵ äTÀuQœèDËÛŽ¥}¡F~ªÛ¬©âꑺe5§ìI÷χ@M³.© Ñ5\ö7ï–зJ»·ü”= Ñ3õüCôhä\QQÉ»·M/¼B‹.pÑ%Ðêâ¶[×n\Bå²û±„Ì-¢’•ï„êþÔw3œI¡^âoj§ºWÇü3?:Š®”’Ki˜ÖѾ„ö€—,í°¢1Lqõ¤+ìê×zâÇó—Æn)ر­9Äîp»Áqï.tcÚ¾ºaB—Q B7¾ìTjº¡}ݤwävø¤»Ã¼·Ná–ï>Å[Vºáa1Úñp΃áü_„ÐÁËòV–#8m˜ø38 ùŸ¯ŽÇø4N×x;ZÆÛw“aV4xé󘋿!‹E/ökÑí+U–»ß>0LE+÷ÞŽŠP°(ÒC‚“rž²EY.òÔFºõ,©³N]'ïoNþs‚¢ò'|¢An“0d|7Yüþ§?™ÃÜ’IM6vÚ rgΔÄsòÉõÉ?N~Ã?êÜLf´&‘ùLØ >áîk'&¦ùÜþ˜µF6®¹û·µ 9˜Ö8øåÜÝËÖRÜcUÎℵ÷D# …·ÙlÆì"s ! ˜ï;H;1üÅ+H endstream endobj 530 0 obj << /Length 3135 /Filter /FlateDecode >> stream xÚ•YYsã6~÷¯P剮Á ^³OIj³ñV%3Y»*µ5ÉEAש!ÈñhýöÅC2(8@£ÑÇ×­oî~Òf•©,âÕãn•¥Y%~¦t#ÛÕ'ï_'·>þóî§tN ­på3ɇå±üoÞ•M}»Ãл¯oƒÔëìíZ{í­övyaqÆÀv‘ô÷ðÕLûx›†^s»†Mµo=øùЧÂk(ÆãQ÷@¦^éð›y9vpJk-sé«q B?xý%ïª|óòBa¨’(¨º9?)ò“?tî®iùÄ¢©]×öEWÖ{žÊë-O¹¦ú2ŽVemóöt¢Ô«ABúrö!a•ôé›~¸ï–zÛÒ­íèn«u+?Ž@*¡ÒpOb·9uWpj›Me,sÚ G‹æh7ŸËîÀRÐñL :NUhô ‡ûlýRXA¢Â$ˆ”ì3פuàG*N2hh¥ýÿëÒ‹«<ØöKYß êðx@µJôõ2y9³þ}VY`“.Ÿø¬„¢‚@ Òº]G±÷[tL# ƒ_Êí°,Íy…³7š t å¼Ý:î¢:¢¢`»µ§Ö:[ã†] ¨´vÎôp;|V¾\Yã¦psP”00°ë«n衎áŽO ÚŒ”Ë!·BÄ/³ðòGR¯º,!Á0›Ü~ŸqÞZ™)ªÒ²^:·âƒ´X)ë¢R Ê&©JÃoS¦qK9••Þø± üøRëÁ.º¶Üôõf†¿”mSEÜ<Ñ;²FlþŽÞÆn.UëÛ‰[ôœ™™Ñ5ºîäÞß݆ º8U4e½õñáÁUÓîï><¼¼¤/‡Ù_šL˜Æ*оÙb>ž»CS¿_2ïÅ„JqÇíä‡ÑÃáTw’ÐVxO?ݦŽåþ0 Bè’ÏÜr›#¶Ê­Í71,£0!Î|_¹F¶$ÑùúrëC¾e!Å£+ *›'èÃCt¥•Lt"™Ájîæü¡Û ˜êÈ+$  ¹©r’ ½âY¶i'rt0†îߪ½zǺ™‘·c0%  ¶ šax&óDÏrK˜‚gY°¤qO?Á74 ÛvyY/hK(£Ó·µÅDf â„Ça¸Â›hÄcXújËÝ >@g ÙŒó«fSxÅÎÁV'n5`éíp6nÚyº&ºÙñ¢s%Íøñ¾Â+JÈe—+¡ÏTšWލ»烷ò± GIý¤åXHÞ’Ð<8”¥”l!Ò¾&lMuv9¤¿õºræ8ø˜rp_’¦¤ÏCB“dƒÖj –L7‹f¤YÓ¦p„A;·,•pÖÇs—j¶vJí]?4 aý–OÆÇùe¬|?{ ÚæÔ– Pu"UnOÙ7'Á¾wø¨X €h!`j© ë#ŠPƒå¢©ï!^v‡#‚ÛÙ¼ë!õG=WŒîîw¼xò@С Æ{ZÇ&ËÅ }!Næ:'"«Yæ*pˆæ"ŠÉ!€:ç‰J fO2ÚñWâcìýøáþ×õ‡11› çb¥„ãm,>³CcTgEw¿T…Ì×3"Ö<ºß7/fì-ø¢PƼá‹N¨ ¸òô£Þ.»Kn^Ú  Yíu®!GL?Çw,¹~¸g¢ªtrÂŽ=ñµ½‡Ì·—`èTzêë\U°0–$ëÇö 3/åM‰VéP ¼Hšÿ— ÓN„€f1-¼+_áÛ€“ÊÌÄ8ãÅU•àY ê7™ ê"y´Ò£~ã ÐÈ1X¤‘à5ƒ(‡ê¦ÃnÐE\ýK1—e›_Až%²¯{âÆÞÖ¶Í+î|îǺâT¶Ã È+òv+Æq °ª|“rIoÁ– °ËË‘sÁð!ú#6g _/#Ò_V†£"|ce¨ñþMþ^´˜@X:”æ±Ô³‘ë¹KAu¼Œ‰0в—/Ù¹‹ZÁn¬7HŠêº±(5ÅÀ×€®“K1~î-=ˆpÎ4Èswžó‹¦q¾²%† ;¯ñ™xs!SërÍ}ueÿãÆòFE¹;¿ê? ,P¦ã“aÞýþ…݉ÉÊ“mÑî^µ5@_:Ÿö;bäLÐWuk¹ør뱚Ã×1W8”ÝN úߺ±fy‰DÀé `,þÖû×]*WzAv¿uø‚Œ‘~óÚ±Ëj¹?¼»ã.‘†è|qƒ U‰v»ç>;bl!ãtÝ‚î45ûO^X× ’ûÞG‰­88ÐDÇûÐQy·Pѳ\ %“Q1·ç£>%PИÝ»$^øn- ò ój_þÀÂQù_ È{'g§ƒ/¤[éôÿW>¯ùé_ÇÑN #38Žìq\ÉD?²1÷‚ƒ›eª†ÁV‚`ëê®­¥êÔµ«3³ X|äk™-(ÔE¥×¨ÜEÚcmƒ\:î(û )1S£jw9–ÅùßÐíN6†l>ý¦‚e9$‚^-ÒÊþ¤ËÝüýñæó b¥WI¦‚•Ö‘ŠM²*Ž7ŸþôW[˜Pa–®ž‰î¸Âª± ñÔjõpóÛÍôïq¶‚X›$\r÷UÁ^~`ú²^©]t¾f§„º†¼g¨ >”}"Ì`Á,¨ÍI5 J¡õTeQÒ¤8qÈ ¤/’±ÆIÞÀÃ'Ç[P|Àe@wæw…RÇÓŒ 3xœ :ž%eôDõLl¸3¶¢‰òõÜQÂaÒ ’Â"S­ÔÄÈ3wZû¹/[+¥xƒÀ„˜B.¬§?¢©L)\JÁ1çÏPÏ4^³„SˆPã#¾Á§þ‡\y> stream xÚ•ZKsÛ8¾Ï¯pí^è &Hð5·Ä™L¼•L¦bÏf¶fæ@K„ Eª2ŠsÙ¿¾ý(R¢ó¸X@ãÕhtý Ÿßÿpý2..¤E’D÷달ÑEBféÅýêâÏ@Šôr!e”¯ŒíšöñrgIЬ/*˃Û=ôeÐì»Ë¿ïÿuý2¿(D‘F)n^,d!’<áî·æFYдfcê²â2-IR'1¬¤·ûÙ}ãP¤Ãœ¿Â$|y™Ç°k×–5ž/áÝZÓÔ0.™x@bi¹S2+û¶¹\Dy°ê—cnÍ:ÏíÊX«Û®ì`3¦´Úê²]^ºíxQ<«W­æ#²àý¥ þw™„aP.ñè-.ètË£æ_áÕ.y*Š<YÅB&’oÕ×+š( ÏHØd÷‚÷Ú°»±Ø4ÐbÖBf½nZ]fÚ½`Ús£7,uãÝ¡q³Õ;³„G¡áŸkx!­[Soxø…Þ—m·Ó5]bºÇMÙÖzc›otU;xµpz©ßkó—ãÃtØxÄwîT’8툳`é^„ºãWƒ±]éÉÍžféšlÓ·K·AY¯¸±DÔA«5}§ÝÐOíΟ|óöö×ÅÛwÜ1µé <:s|…Ä<8lÍðì8Ç23uƒL¸SÎ]½nêèÚ_¡T(´8†k¶|…¦%Õ3Ö ÃXä©üs(R?i˲ŠáŠ$ –PŒ:èaØ:ªGXi¾båEºbºWÁXÖÔ,é8ˆÂ0¬Ä,=•^‹Á“YÂóF\·ÆS;TVjõšê²ë[T;ÅþÔéÚ’¡á é…x—A7N/ôT/qpÛ”öÑÍX­ðÄÎm[Ö@%C:ðk|h ­TÜ>Ãôw4idï|[% ¥¦O¼ÒK³"á%€ þ& E¸Šl;35X%SUò Ê0ÔêÅ¡5æàý\G¢0a}]G 9èˆçàïöã 0ÂDÊà½é¶î[wèVW{ÇçÚ­*ÛŠ)¯KÓ®Ð4RãÖ]yYî4K)ŠsQÄùTL$ºÂ"xSBs6ÀàCwK£AÇ,Ÿ!tÈc·x|*ì¼›Â2Ns[”ܵýnǨº‡4®y ‰è ÒÊ-"aR¤UO€8cß[ã¬î·í ¶Ûõ+Cú„d‡1ñÝâ1ºÅøÚf·¯´¿+[¢ Öm³s¶·°à²ÝMqìf• j}àÆ <15ô%wzRøEöfà'‚v’}]µòpÐ?˜bvæ³÷–°÷øÆÐE=sVž@È!¿ë¨X„"äMù­ á@ï/ÚÔ+çüaà€4tv¥{~øÕneÙ9¥- âàgò¼Q¡Nt )t46ZÛZî Êr EŒ¿¤ØÀ;S/ƒ®‚©{?• 9#h>ê?mZŸl " $Lž èfw X©É†A¿ÁAbCyãŒ`NU»„_!jº©*¦9ñsgÅ\WMɸ4RezW``b "NY >¬ëö?]_±lL½p‚ЦM»¹^5¼ã5³ví^Ím0}5Ô"^üÒÉæL¥Ò\¨b&ƘX‰X¥/ÜP‘ÉœgF.(¾­mÞ‡ã¤B~-Ž@ie62T•È`Ýx÷EÛ(à×jv×ÛYž·Ò`ÿf1’®¥ofÅ™R8º…J¯Ð·1ÑþþëíׯÙúOîØGÛé=ÌŠÌ+ÕÌî3Š„ã-DцØE°"øzojŒÄ8FrcVk¼ÓKOˆäIX{žg¢“ˆò—  .ç[!ÙßcÐâo™ ÇæóI!XúîÖ4½õG:W².Éi!;Æ•ìþq…©ÊC¥§ ?½y!Tž «ù«7`3¯Ðm“iÄ…a–M_ë`>–ù¾Ü8/¥Ø ­wÜWeëXScÖÜÛDâŽÄ'a2›¹¶âïŠ^—Íno¼ #+Ã3ÿ4 ·xêŠ<, (ÿA¹ì9„'×(‚ë›ãy¯LÝÙ™û.øtß,>½oþÔuoú¶=Æ,èùÑ Œ;1 ØôípKï¿`ÒÔ†‰bmO¡MËÄI@NVÑÝvNLá÷ èyoªÕ}ÓT–¥´¤»8(u @y, ‹"ÌЇŠ±“€RH•¿è®cœÌ’àŽ†Û¿]bB~?\¦´oèÂ0‚Á?¸²+¦ !È­­Üð¦¬]’§ +t!©ïJeÐ;ÄBê¶@Uãh#­ôƒµ;·eûÈ3:ö‹ -ÄÍ$ žñÄ$à0¤çUvÛôÕÊï WÇÅÄPÃ}ãXáCSáàƒ›ÊHqæÁ|0ûVãʲ£” ÞRm á’‡‚xúÁ”õâý>Sœ0HW\ýxÄmsgOæ#&·ùüH¥ôŽ]Hƒû,?œè I°Fo@./c—7«XÅœ:ËP(HŠ'd{`‚|ËßèŽ;Μ¸³Y.]ãaj¬}È„=Û?|ôö÷jo¹yÀÏn1ÇÉ;½¯ÀÌðgBª<Ÿç€XˆÝºëÆ ÄƒÉIÅ©Üï+ Þ{7$EvF›CÈdŽ™u¹¦ tŒè ˜§«ñ&aDé1 Âï3ÜŸ‡^œ KSz@kxÂ6ùÙÚWxy´ÂJËçò\Ûû<š¦Ì)êÂs?ÀlàÝúÀ]׺۶𔟯û‰CTDŽYØèöK’Še$ 9h&Ù Å·`ÇÕq;“Qè¦Ø«Äà§Ÿ…{5·ã„{†©4QÁ- ¶‚¼˜ª¶*œTm±Ûj_$î(KWf ¥[L\Ó±ØQ"âWE¡ÑTTÁÅ&…«×[j{‘ mÎw ‘½åL4ôµWh¼º{ÍÁ0†K¬'ܹÁÖ’ ®w,ƒ2¥ôÎå1Hò´B5³£9r¾‹$ÿ¨\Œ|É2™j’zS…ÖÔT™V¶?l²éÈdì‹à@ÿ­ÕkÝRaòj.by1*wP$§Ýâ3ªt&ØÅ'|Ì,qâÒÀ4v˜il24bTT?–±”Ê(…áa_,ÈqÖŒ=CA7¶þ’±Â÷оgît×ïýû¾~èk Ð–Ók…á${AÝ~À [ͳñlËûÝCˆ@Ž G)†_§¡¡ÁäBpFš|ïCº÷¬³ÃU­¢µÐá C6Až P9Wßäàóh@×'Ë[" O«[`¼bS÷”pQ–õ‹+R=7uÙmÿ ~ <ØÙ‘¸å¤HŽ5+ºÆ{”‰æ6š[v47 a…)Oˆ£±Á²Ò+Éч’‘—êLbŸAV¦_Ëì¥PGGï!ö]éuÙW6Ñ!!€åþ³ÇYà¦Ñ(„™ äòP~9~‰°„òµpðdâ³dæ°ÈN sw‚_O3&">¦Okl!E–œ|B9~èÜwT¦þà¾5°¾Ó·†Ú¢‡?V!N?Äø! ÝõÆE›­õ×ð‘t\ÙÅo‰®lA¥_¸àßuŸÑxx ‰€s•‚ÐÕb_#ˆæj èÐU©CßPeÎUó¤ ð´nÆñ`‘$Ä"ŸÆmàhœ€'òˆÐ8Ö` ¹ãÑÃyé}ðßÖÐÿNä í5óà?„a=Os`”CQhëç'g/9É^¹.ÛÖ\}Œ¯96sû±žÕñ(ÿGÅP•Tä‘"„6J—ÏQ^ ÐsY™‘“/kvk‹àµC÷¥´nþ}ç¾Ö@‡;ž¹§LÚ­†TR –†CàþÚРƒÌ#nAZÄY(Ðèƒ þÿÅðíÛÏ•ªÒx*¦ŒQ¼ß:¸»çùfJjšç®æŸãÐ?ßÿðà> stream xÚíZIs㸾ϯp¥º*r•Ms·ÎiÖ”“N¦kÚ·t”I˜¦H… -»óçó6p‘è–»¦*§¾Xð<¼õ{€xøîî—ì*÷ò$L®6Wiî…W©Ÿ{A íõÕ¿íN_ßFQ¼h‹fY”%6ÔÂXî,*þÕ…}摽nwõõm˜-Ö2¯æF·Ñ×aºÐÜÓ/½’ ú†Û5Õv ù÷Ãßî~Qc6Ã$ö2?¾ò™GÛ-ucM]1í˜TÁ‰òžðÙ¶z/¬—e} »­Û–8alI|éJôÕZ\ýê6 bÏÏã«Û ò‚8à•ë ΈÜTµxĵ…)YÁtµM-2dfnxÔT«²[˱£‘<»ð.ÖE«…»¢Z3Q£ÍÉú)­ï‰Èò‘ü+Xø™ßÐ ½àú6bñWݶ¼sæ©Å=l…‹úÐò* ÚkÍÍGS0ÿúñÏKJ€ÍƒÜ‹³˜7ÿ„¥ü–ì‹JWaò‚¦“>_£çØ÷@GŽrUÍâÆ²Å¿;Ûò¾¢Vn˜Ê¶` zÍ”(Nì~ÆÀ·œá …ÙL(¸óˆbØ2%»§—madQ.Ÿ\,Þõ1® €§JŒ‹Ãk£rÑ&àç£û¬'t¦'½êÚbYJ›\~W|(Xé © Ì`é¨êãŒ4ÁÄ“±Cøã§ÇÍ&2,YòµÖ?‡ 5@”NüàòüƒÈ3»ÿMWÅþÔðOÀå€g`ìw؞ûƒ£µzýuf¼¼`=qêÅ‘ºd=Ó0û%´ø—¨d*õ |ƒ0¾aïÿöŽò+€ y n8ß 8HI’Š"„Þ ;€£Q0\!¤ñâç§V7¥Ûu ¿‚îss;AÖ_0·°×@nË'/øg£ü¡‡}¡Õg¹8^@ZµNC…ÈMäH0$-á ß:%/8Jû^ê¿æ®g༿ëUÇ·+ÐûÐ ëC]ùì<@jšU¾ÿð–PÙpª|ñý?ÞK÷‡ºt‰<›¢¾w°]Å)¾EÇ)ÃÝ4NîÞ ‡îÞ€òËÁ”²ÍKB ¼ðòÚèŽl`×»Œè°=\ª£eâc’,~( KŸñâ]áìÍp‚Ô^pŠ ^ÒRà¥iÛà*¸þO~l¹…vƒ¿峯$K}nnà·ur—6]µÓÀ¡h¬L°Ïû=¾Æ­¸ 9¸*Ó Á¾ÀQm!ì§©ïð8ñÑä·L¡:™œpm`™hû[|€—œÞkkÍÒ”¦5eåñÂj©„?@°Â›|no{áño> stream xÚ­Zësã¶ÿî¿Bs“tcÁäµéŒÎÉ5×ø=Óvrù@K”Í1EêH*®ú×w»àK<;ö‹.@`±ß>è7·g—oãE"’(ˆ·ÛE¢…ÔzaüDH”ÍâïCÕfçKå+¯}H[Þñ<0^u ‡ª,Ž´ Ì² /­xî®MóÒ½Îû¬n®iŸKoKCØ1æ^âS›•£Ý”wh²ó_oÿzùVF¦‰ R Ÿø}·¯ö--^MùB%Ò-ÚÖÕŽ™yÿéZ³ïZ>¾áëTL¨Oà]z_`pÈk¸%ì¿Xª@Š0‰K©„ %mÂH÷2‡'¼PZ"©% Þ ›=üÆ^¶Î·G¤„N5ÍÃeò]þï´Í«’æ÷uuWd;šÎ™˜Ò#ÌÝ×én——÷D(ÒòþÞg´ê³úWß~{O&ö®.øˆšfßžÇ Ú•¸V‚`tx«¢©.ì•ýñ]ׇºÎHY`ð6쨔ò®Ó}ºFò#>k’(ÐÙT`Tg_H4¿%joª·<2Äk­1(2; »‚™/‡´É—²§EeÏ󣯿ð|··b]òΛî S«Òê%£ ŒP&t‹-ÐÉ`ÅR‡¾0~¸‰ ?a¹„œÈÐ÷¾¯ÎUà=•E•"?±öÞÀe¯WÈè Œ.ˆx½útžDÞ _ý„4Åo G0‡ºJD‡½¿>_†° ºöTË)Ç uîNùýêL :[W»x% NŸ§ŽÈ*ÉÎéq"-‰–}öe´ÎAò°_"…0‰ éÕÖmŸáÍõê†<Ž™a‘ßÕi}œqy‹;¢%h=Í‹Š O²1I=ð9|zHë ylýñÝÜ»ÉÖÄ ÎK¡hPäMÛÐ0¥ŸmöD6=ô {«¦9SÚS HOÎÝ[ ïó±g¥¶d°¡ÛŒý/gSFœ2$'ELìƒS3¼5€úPø‘qÂõ»ã]‘6"=•cäƒEn©ó–ÑnDvŽðÍßÿp {žî¥Á ÌX'Áü£.ˆ†ýÈK7p1€M2LïgùP"éa~¹|ÊÛ‡%^ì»WËë_ß103±¦eA‚xuÊ{ˆ!D»½Ÿ²²C-Ó¡V}˜“O'|ÖU¹ÍïuöÒˆ×MÆ8×› `] ´h­½›jÇXm(VÉòŒa0-„–Êaߺ8lx%b ÀÊ Õqõ“ )Iw K‰ácœ1R|ï7üƒáF³¾pjS!ÕaRm^ä-¾~œS£ŠE :5>Ýgsà  ̲iÓÂzîoƒ%°0¦@mŽMk#'Ì l!òÍQ=ð;ܶûÓ³e,¤êôI‡…Þ{zvï7Døêè‚ÆuÖ‚~£ÈŒ¼X-áëµ Jl”2±™äëÊ& VOà[ŒØÊ·a÷‡/{¸uèÛ ¢õ:£w})ºâ*‹ÀÖ#¥K}"ŠÓÈcÆ>hCµ}v¬zë³ô3F48•‰ä2“Q¤ – Q˜0/+ zrÔ±òAØ´9¯n “ðe“.™¤]ÜiþÐ2péºÎ÷-¿Ç>Á«AhDæœ@º‚9›Aˆ§‰ „:¿; -àKïö!£duzÁî$t8ô ÓÇþ>™'H OäÁÚ%¯ÃÕ²aÍNÿœQJY5y[ÕG·AèÏØz`Œ0IíÛvÿúòòééI”vGQÕ÷3ÖõA¬âJI1³9¤&FDʦ!2ˆ96@ „ÞzC¿ß¼ûôñÓí÷ï~¾¼}Èëͧ´n—oçdÇïŠKÀñÂ"w€—6}­ÙofÕWwä|ëYþžÉÉ:a Ž*9Ì{¥5 ûK>á½Ë8ï:sÈæ_ÀJ-ü‘¾}ˆ=ú%ä‹ýxˆ|È«E> ò!Ïùˆ4@f|t¯ SÅÈlÑÇxL©^ý åÁ å¬M… û\ýÃÍíêúZüa6ºÊ¤—ù”…]­"‘h9)å•ë̱ºêY;žHJQÆ}tº5¨Aëg·î­u²¹Ö9»wgÔœ@î=»ÿ¬õÎgL€©5 M—aPx$J‹6«Kˆ+]dPdõaÍÙ1 _j½>I0=Ž#pSŽcŽ8”RÇ6#ÔuFI;F ¤åt[ž`lQ|FQ$Tü’óø" ‚AΪ}(N,²Æl0ÈÊŽ—ys1‰è7A€øÇÂ?Ÿžh$@g[}È@!P͇‘y_¤ëlt$h(„¬(Ó ©œã]¹w¼ûz·ùn^ '?H3DÔ·á+»£EÆårŸ6Mþ[¶ly5g½‘Ðãz gˆéOŒÎf ñ9ñÊ5À-ÅvxàK½{ nR³º®jS@ÅQ›ÖìQ¿Hªøý²Ûð+pWùò÷jØÙë ®ªÇA§a¢âMNË $™¢à,¤w®×²ˆ}ÃnKzù×v¦z†#|õ{4®Nö[.ËjÙ¤»lY=•™#Î"Á¹‚$~¶…•€0XL[(ÁW[(?Ú#ˆíæpWW˜•Yób‡r¶šA*­¹žjmábŒeuÓ÷•\ÉEg"ìQ2Bœé]‘½ž¹œ uÔtvÇ𠪸Ì`¦êÂÝÈЋ”’”¼çÖ°#t†v“ÚÞV™¾rhè™Z¸ŽœHÛ:ËŠ#§¬yK-BÓùRS•iáNØí²zÓsì¹¥eU.iŽ™Lb¦ | ,‡&½Ïl9+]˨Ü) †= ïRr;CyR`k—ˆw¯g6€UV†Ï6¶Ã’ -Ç ¤#k^_1í./©‘cÃŽfÑ@ÐsIàö@îR*/¬9‘aùšë/¥º,^»Ä†lç× ×õ›³îlƒïW¹ •0Œ¹ K±§¯ÀÎg] B¯oØ'–øRΤPJ$ÊÌ›Ÿ–‘·«Ð®hĦW—Dp¶èºéöÐuaAê^u&i‰l’ao’v *_O×é&Ûåk"Û®0l«n’„˜Ä’ĉ¡$)¾n«)”:áb-G}HŒœ 'H…8ÃK$I)+¶‚.÷A¢U.K7›3 ÈUŽDy¿ Qƒ\ïGʽÎ~¸=ûr†Å_HÛ–€TR£Åzwö˯þb“`‚B†>Ù¥»E ’Ãz±¸9ûÛÙ›éGD¸jØ)qhèÆïWæùã!}‰cõÿ8ê•rÈÉñqÄÇsÊ AÎÄûáX3³ÌÉ2^`å‰þÌIM»“ñ#Ç\bÄÌ'ìÈúæåïNaÐ%YÍaÏÅyMc×Ô„ª‡ÖñìÜÐàp†1f`M@4rrzM¡ã~(@IïR~.Mô(¨YáCåŽjɾï;ðé€6=ùŽ¢÷6êŠ|gáøHxhu×í°%g|(=5Ž·öÛ\÷Qqøñ‡£¯êevqòMI{ë´t5JQPSr²O?Ñ¡7T¦ûæ5ƒ˜ä/±BAðæ®­fò$-…˜I›å¡)D]ˆt-—ù¼ùLŠEד5ø$‹(`F®*îÿà•ŒjŽqøQ¥¢ßqK)]$tŸ^ppcÊÈ>–ÒšjúélÉ0ê´‚L–ƒ>µ7`ÅuÁPi&ñ°‡5…W "ŸÀó IVdºF'öº¤ÒÊ_¹¸[>:ÉÑnC¹)–}þüŠY`tP¸r³½œ´á¨ky×ä­³>n_ ·²Y@“Mcts¸Ûå­Ëº ÞcJ“¶]ÜÇD¸¼cx Í×ø;^#ÍÛQ-në»u¶ƒ0ê<¥ ÞÓLebö+BùØ·Û.1i *ÜÓÇA¡_rÆL‰À¹_U²0(µ®;6(]OѪL3¾ì?­®ø“˃4[1gÜPa ‹Kj3 ÷ùìKsêt„?ìrWÔ¿~nX~,–½mV´ÝG™Óè!µ~Âÿò 3}îɲ‰äÛì°˜­™Diÿ]!°Ÿ¥Ï‘Wú.žþê#±‚ endstream endobj 583 0 obj << /Length 3497 /Filter /FlateDecode >> stream xÚ•ZÉr䯽ë+æàƒÓ öE>¤›¶¨aˆTØË°&abicÿÞ/—ÂÒ Šò¥‘µWeåò2«¿»ûæò“¼Kí4ò¢ww‡wi`»Að.vRÛQ“¿û—õ«ãÆÿ¾ûëå§dÙ”ÿΑ.ß·õ±¬Š‹ïÖð¨Ä_n$·öíÅÎK¬\ëûâ˜uÙPT/R.J 鄾GÏØ*m§[mȃéC ð~Üh±!/rì‡Ñ-]Ûãp¾mß±cÓåd[Y“ËvÇþô$ýcÖ¹ÐUyßeÝ Mýn祮íaÑëÛnèʼU›åeó€î±oÕÅþ‹ÀcKs<+ZáJ®ß¾µåì";ϵ]OÞ]$˜“ú9àî$Žá¤cdÂY3ß±²^¾ŒA¨ö°qÉn˜Úa¿qÉ^lûqh:½§ù\kl&Þ¬·”urCåúÚÍ´×àFlI£ŽIq¬®h²úôˆ]ÑÕ@ "â¸vêDkçeW쇶# H=ðT¾Ãc6Uê÷ž¹T€™E/Å ~x‰Ojø‡«›Ï7w?\ý|y÷Xvù xùr Ž_îÛ²yì«sN¹±Ê5Ø,Oì4|K© ‰éSgÄ©s æâ|)ìÛV%xE«P“õÂ-ßl°_¹%36$³•HØip¢o?µCñíÅ.Hëï0$ËRäé«å¢'Åv-Ѱ2«¤šßGÞøtϨÉt‚Їe½ÛFÛ«²)²Nè¾­dhGÅ*‘³¡’¨¼þÞM…Ú·c• 9óˆV©ËTžÙ²uì_ÐQSFºð¶/þ;;0-|P/´vÔ~YӴܪÅã¾Ì,Pu1<ªŠJ…ý>«Ä¼ñ€ ×ÒÁ;¨ÓK?µÎ•ue?(›¾Ì‹yÓçwb^º4œ$7«Ų́Áf6ñ<ë;a¦°1‡ ùžDÄUÎS=•¾mCž(ÏÁ‡\êH(èK‡-¤‘9LuæœÜÎçú™…]æáãÊä: öLf–3CÔåKI븒¦žÅ)²`ÿ×Rû#&¦8zßnÈOÙÃVäFne€Ü$U¨ßQ–‹„œwÒm±éÃ÷XʤR5öcV±ßT RT­è£lFx6¼ÎÊSözA[Ÿ.’À;Ú,1#ˆÍ‘ã¢Aœk*¯q¦^"…=Žxø V¡EUM'ÇÝíµyMß^¾"<„e†Ûš“_bº’½9LAVm8/޲‹&‡¶¾¨›-ö ï¥(üŽ™ß(òFðÍõ§ùt"5»< Kü›&3 Bë réÃmÏÆ܆ ˆZÝH‡lŸåEíp-ËÕJ±ÆÜ\: €"”ÏèÛ‘Or³X‘áaކÀ“4 Cn@À•ºÒv~Û´•~ÃXÊyÕ®¹˜ÝÃëhá…XË;@áD|Q“í÷ðDûâ%\¹@ƪªËš­$%§ï¤;ÄâeOɳ[×ÂXº‰»Kïè²w$Ùe÷,c´|k*oÀ ºþàŲ¹m×·‚M€ »ö¾‚9~] þIÈ­ ¡Šܸ± (4**6•8Y\\œœ²-NY$Ðpäë& ˜K…AÎ\À!è–båÄÀÙÄÀÙdF‰l“t½´°D¯Š´//óT¯zÎú  ðâD‰y3Æp’êNºn©H~¨À@p10&;ú$FS&B÷0{Ðîlx¥{Ù›þÊ“óœ£=X„e©ñy» ØØí`²p¨(Í_Â;Úîù¬$“v®ôe15vx>oÙa™y§C’¬ÚÓ0mµZb‘`ÁšCI0ð|‰Ð±ýtêØï»ò8ëF%Uµ~l…±è-.V¢Tzv ˆ6H—vÏv07¬4¾ž¬àÙà.Ú ëóý,—KKtýËõÍ­?°ú¶­HB¾\ø]üÙQH/)n ºF2$Ñ앨 ~-HbAdDˆd%1{ßãx_‘¦rÞÖØ#¹IÛ#t2ƒ&„zvãRæ3ØBßTË:æ 0Ú SMkêy‰|$c²adŽd~ϯÙóìdÔÇa8~{yùÐe€ñ0À;˜@Ž—¶±Ý¥,²š@æØ†ÅÊKc„c”ðöWÑ,5e"-A%êÀç †3sÌ–xºOêB Ic`*ÙžÁçR3¹•Ä·=Šxzò‰¯²:¶D^h¥}M2ß˧oÇŽQèɨÑ.ä!›†Æ¦(t${|ÉÀ.âOÔdòa\t¾xhBïNJ$8¢”(_³úXqë™Õþé—“¡çWzrñ]úìæ¨x4i®,™(è¡+Ô)‹ôRA² SþG32÷U±l^¤fJ7;ß±=o×?=8#ö^°Ë:-´#ÔqNHP‹SDwc#Æ€úMcÕ$mÈ~àÚqþfT~=ÖÇþò¡l¦6Ä?umg ªËƒœ¾ÁŽ¡X«óN>Ñ (†¸¸áBˆœóØHŸÀúÞlÜC§Ý’—®yšê07‘Ø®3ÍÄjŠ-^¼1ñùV¾ÿ9 Ñ!Ð2C)ÊWØII‚.Ò7°>T_ š¾dÂíC¾=D+Έ$€ C3!W ¢Ê†¢×Ja]×— ªv)|]ì­Ôþе5Á[“ÁKg×zb*¹ò(Ø”ØÅW(Í~˜Ò#Ú¼ÈAÅ&KÂ>m¹ÆŒ[6.@' ‚·…nã–üÐNgk­ŠÀ'¾¿µ;þÔƒï Å¢¢âz©ÃX*ë…Ìx£x M)f Çš8¡æ “–†”Bà÷j×Éž·Ò8ß5MQ˜ ÚlRu<Ï »i7ÁÄW¼ÓÎt[#îq ŽeŠXfԊ‰=7¦ÑWh)c÷¢Zç'vàE¿Ã¸ðÎ/þøá‡ëJîø¸tÿäÒ}:U®OõYâát üÉSrF¸Y?MgHØßáÞÝè`c`5²LS“hWÓPÇŽ¤IW©²=¹«À M²i#÷Ÿ‚)óa^Ïù»€žšƒ4ùpÚ6Ûô^ ÏeU)[¼ã(Y³%‡–ÐÇ^3 G Þ….õ«š¯HÝ«á@ø.1?ö¡â$vtò¨€˜îE,þt¦áqpSƒ2sm\£Õ;’›{Eƒ¤ÈPEvhlkûK¬½ì¼BMºéS·ì‚rÉ,,W6—èÅŠî{©ïÛÕí›”ñÓ£"ñF^Ô^jZ]ƒ—ª7­æÉç‡Èeœ>ªš+E_qtùVàëœG¼ÁïI˜kB\îtC…¬Ë˾}3æ½:ˆÁ˜2nTx™¤ç*Vå“^•8OvG ÆÆc —¡o[ýÐ÷—Bªósë&8v‘‘Ö•4ÝšP­?”H²ìÔlxÂ]—ѵ›0ZÖ ‰/lÉyùÉúäŒO$ªŒà•¢x­|v?žb¢e¿ ÓKÅœCòMŽÉ™g2f.äiuŒŽÃȺZÓÔº ¦7—e¨$Ë9õ×Úâ §©«q2Ôž U\J«.ÀŒHÁQ˜¬¡uƒMÛì^Ïh‚_fÁU< ©º.º½¼t¦©9 n< \Üx?t#».yŒ¬f½‘=_CŒS-ñaäÝ’U~9»¤õü½Rï_ýQ\ÿíG!ŒzÃâ²s¬¿èÿ3<–­éÑÙs›q“uTEú“B§÷H®ÙW#{×`pæ)î¡è#./áòø›Ç§ÉY­yAlÕÝV“5ê×é…X,'š– u- .c3–˜îI[k9eË0ÂüÁè0íˆpç¸÷wi'…¾íŸ¤L2Õ øuƒþ"…Çé¯ü*Už Áái²H6¹ÔIþ’^!Ìÿp–=5nÁñ8oÎu“­ßŠB;tÜ· OÌ$aLfuZœeŽ;’•ÅŸRÓâ¶ GPCd¢”!xj×¥¶o>Þ}ó? ÚF endstream endobj 595 0 obj << /Length 4126 /Filter /FlateDecode >> stream xÚ­ZYsÜÆ~ׯ`¥R•e•fp&/‘|ÄL‰’"Ò±S¶ÀÅ ¬¬hæ×çëî» ä”ô²;¦gú>æåͳ‹oÃì,ó²XÅg7wgI橳Äϼ A¿8ûi¥<íEçë ˆüÕ›Û>/ë²¾?_ë4\õ[C ½zUÖ&o¥}ÝTεZ™Výp}õöü—›^|›Nàøgë ó¢4 —wçë0IVç*]5é`&޼ÈWhh/ˆ9ZøNÃØ">Œ¹Jç®ieÞje¸ÙŸ¯Ñ7mÞ ±¢iW]ov‘«Ë_ï°¢±Àò[þª9ôÇ07¹]B+˜2üPöS‹pÜaÄx¨/ÓY”oû~ÿW¹·›™ÝûââááÁkMÛl½òvçæû¶ùÕlúîâ¡ÛíOɤ©§2í€x± XâÀ ÂQï8ºì„™ùÌmWöF¦šQGnŽeECÃuÕäÅ‘PŒÁ¨P£ùp.4¨d†‰ÂÈ V Ìy°ä«cºtÒ)ëMu(¦Ó¹ìt{UåÆÔ±— ½, í]åªï4Žú‰™/ÿENòõØI¯ßâ0ÜÊ«JnigFî¥eüX&Ðö˜ø9С)fª¼"!Ò•%)m¶µC91}!,gj™Ýåí{¾5Mí­°qÓ™ŽoêÏéyKßÚ±a &Vk0ËÏ~ö2˜oòÂìÊ õ ³ëËþ@Gëþ$CL+,©"0qupÒ€¹9x^6du´3íF(Â[Ýçuù_Þ ûÆ”^ír¡ƒ|ÝZ#k^îÔšœ1ã[½<8Zóh~ß³3µee‡B°ˆ`…,‡MüGÁFÿÒý¦ÞعGâ!³oµ)žø^á¨gÆDÆ*“[ž<º•P×lÐ{à@ëUy'ÿ"Eh|`ßvB ð;úµ\BÔÒ¤ãOGÔ„ôžál™jÓeMmìõÑŒÕt˜šhQ% ÂE6LG)‹%þj#Ñé¢le¥ÞÞó¬hhy]CanµÔuÓ"~ÔšÀFuMT¦E¡Av†I@püm~[=J¯Û’%$ýÖüv0]ï »Ó¡m jK³£{¨‘û£Ê­.D=a"—±é:¶…4&îÈ !<Œ$l0úߨâ:mªß³ ¶=Õû:̲Õ[á4+êÒÝÚÑ H‡f-kÏ,øÃB|Ò T¨¼,:BCa •c¥F¸¤0ݦ-GcHŒ³-…Ëe%|‡¾ÜªÜòì›ÄŒwǬ7›˜¾ÂÚC½nzóW ‚Äj¯fòëpdèR¨kÚ»|c(gŸ0}·Í[S¬wf×´=%ùvãZZlLØÈ ;ìÅÊ5mï.àτǑNAT6P•‡ª—΋½%8ëw9¤Ag§ÒíD8j³›BmCâþ0_‰­iñ=ë\¤SÿQű—|Â{ThFÃ"2%0–ÖZLáŠ+Û¾·=ö2Uìdý˻ϼq˜…À‹ýL˜x~¦F<¶ù÷Ýÿç¿‚ŸbÚOúã/­ý,Ì]R<_@O„“Ÿô®}/ £Ñ»®*g2×£´.|!=AŽ2V Ø‘ ØÑnGPö®X3Ü ù®Nå¢/wµ_ˆ &,ˆÓštÃÇ:‡/²=Џ§b=,ñîT˜Xé¶Ø—’ u-UѺz¡’çDàÍÈ5¿»~Ež}sóì·gpâŸg i¢ã³0X(™ÍîÙO¿øg&!"žÎÒ³^º;Û§ä5Wg×Ïþõì%…n3VLÀ®*ÂN«+>øÕ‹ä£àµJ½áÏçƒ×:ð¢@ƒOã‚OáÁ—ŸÆž>ž¹»“CG„a¶¡†kmQv£¥ðÓxä#æí'^0ÓVlšÁTí¡&žêË @“³ØËrœ#²ŒÎ «î³ôT@B/ŒL‘- ýÕD"Jÿóºc.Å=RœÀ7ƒ‘àºìÏ`kiEÖÓ Åohaäw=KÍñÖƒh.¨ÇL{~¬>¥ ØéAØ[L@ êhê¿ôM"a–o kÔ×Á±3ì‚~™pFåvÔä DëlUö„ÆX#š…qÏ Nï†56zõW¿ØÂÐ^b\ŸUúNÚ©= °ýé ‡•™/£}åÅj¸0>Úv•×5§˜‰|/Œ†ÄCÓ.9FÊSñt¯½°ìâ~ÀÔÓÖÒ[4†º!8Š{EÈ:;¦Ãñ–<1ÄgÒßçýöùÒ9µ‚`¿úzAÏ)p )Z ƒöIÇu:—ô4¥ X`<ÚŠ²$óòå»ïþ³8Ö^è«/AÎá¾}qóÝ×û^¦ÔÄ;%ìÝ ô°Ï[Ûh#ÄvĆ!ô¿kˆ-©õýëË-à\Pz†ôŠ\R€\qUýs”8z%¼pøçˆ(‰Glg««œ"à8]½¹–ŸK_Œ+ì¡hŒN¼@ø8õâ8>âöâS¤Ä @Žªàt; W% ìþĆ0q:Ó-IÂüéÎ`5¦œ¾þÏ‹†!.ò’}£„ð’$ã­ô@†§84L3χ'õ%gdG“9à°h0aQ"8XÃê í¥I:³y?”µMv±1bæ…æµa„cøÿO°Jà{* ŽYá©f„ƒë‚Qü4]b”¥íàa)5c:ä2›D0ÇnåÛÈå¡grw³µÑçÌÙàˆÓ™LV”Ñs–}Î9 8͘Ø4£±!ê]Ûì¤Õ? é³'6oÁ1òÍ9å-¬Öä½…ËÐx´`°OæM±•jc)ŸMÃX‚Kv<8¡c !™­Ù—Fµ‡ §Ì†¸u‰X°É Ô¾|ûæíÍ×—ï.à:µÅ[DÚ8ÄÅåë뛯^yÖ]Ê«=ƒ°0„—–¸ ,ƒ°d¹,r’~ssyýÉ(‹9Deþè}¢=óÍhÀ…YúD'‘Á‡¥ƒÕùŒÄ…ä`°ç!Ä“à©X‘&_<¬I”ÄÇà%„x ¼†@&ÐQŸ^ÃEI wŽÀgîöœb‚|õöZš,­ÔsºÔc?T¥»à4Ð;Jï¤bdK!‰#™jZĬÂJ¥Þï›q%ðy¹ÛW’çEÔÁrJƒµ,¾b¦ã&å;³¤‡U†}5®¾\\ÜWyÛt^Ño¼Ã®öLq¸¸¿mvæbgú²³¿öØv‡ù±?˜öCi"œÀKáC9HòCâHò¥‰ž8å‰õŒhÔf«iŒsøÆ¶íG½8S44è—DÂÃÕ|Æå­ç’ ™â”(v_W]Kœ" C(o|h7öh›†UsaWYS=!7á…# ʉ—î_h·”¥ˆ þ¨:»"2,(1YÖvÆ<ÓÕ;[3û°Nl–‹ß¬–|Ö£š¤Ze† ÍêEjU”ˆÐzÊBÎ+;Š#ØiI¼€¦xæolsZá¨éª åÄÀ›d˜îÍR Ûå,xèË Ô¬5íK²… \–­wýR1óâdØškÄØQ\kX[r­iàGɽSÓ& Ex³á“±RK=ÉI3îâi½ÍjjÌ+Œ°³+ÌLx”º6I/–œêâÁ‘ü¶‡znÃø%Dl12ÙPý·Ä¾—FQ()¾ï] Ö÷½ =Í[³’ÕÂE§6”˜„d¶•+„«hÕT…$0¢Aj1z¿Ë˜Írû$Q ®Óé,S“-œ!Q³Tdh"›ÞNo/ ˜ ‡ÖLTÒ`Ûõ²u Cx¤`]Äz^$ŸaÝ(ºÑ`ÚIƒsÛþøÄ “ä €|˜gDŠGàɶÛÒ?qW<ç‹Å3eˆ–4î¹×ñç)ð•çËF6š™û4+Om«âш¬ÇÈí¡¬ ivÃë °ÂÍ¢èˆË¢äËŽŠ“¹ì >—0t7’E°F‘N7U ,Ìü•9ZµåývRÜÃÇîSëDg^wµN±ÎÄyY)ëʪ ê1tîpHÎ00ðçæ¬ñŽlE KÑ{ƒksI"C¹~!¹xü<èÉêB’ Óæóô$rB‡=¼+Yc„zZlµ=]¨gZ9 ]"tÎ@HÉ!¯–*z´¢‡h1Ñ]Éõ¥SOáÃh+–ãZ¸àn\Jó©øóm²Ž@{ÆC5¦Qè°ÒYuú¡—êlž  r•‘Rô]ã‡HßæŽ"*@36ð%[ã&9qŽkNüÃQ.ÜF­4v ûlv!û{Ó}¿zsùzýæÝH­ø%óôà¡ÝæÃ¾\²œnð×ßK#?ôM/‡lªÎ[z ðb—“’54M0u¢;xÑîM’·iÊz“ù°^ÓÞ_|…ïLµè@$ž‡­&j÷ÊÂè œœ¹¿{SÛ7DCáyߟ”‘‡˜š/šŒ…xÅ^’â—f$f”Zg|úDˆåw3ô¦ 7{û„Ahg×-<Äãë8ùt©0ñ bêÞÝÌÞCÈc†ÉÛ®«NßNHæ”×Ê *Š8à„~KŒëÎÚÙº2¿Õ±(Aà©ãÇpzþ9WÖ]›%iõs4‡ÛÊà”ÂZòЀ—»ê¨¦MC\Ó£dÜ}¨‚‡ŽÔ`² ¨3Èu¶–½Ž ë{z{±¤µ¼4 ¿ ÇÓàÃ*_yvDasw¸Ý•½`ÃhùëKûT’V÷2Æe:úÄ=#™¬ž‘ðÇýß“f^šÅ^»ÜÙ!ÎBuâ‚ν ~ïJYSý1O"HdèdîKÙÂ. [è=ŠÏi¤îZšÎª}pv,ó)÷ÑéÖ@~ ]¨ìÄ>—Ö®×µ÷¦ÎoÙ"ñì BAd¬ Ø8zü: ùYÙ‚ÌÍ΃U“Lª­`O†«køwÉæÇ®ûCQ62.8c ,³vã4Îû¡,Œõ–(\tN­àpfIüÿ»iÛò–Ÿðqõ4&IÏV‡vmÃË4…ïN‰¸³ÁXþ’·±­ªR ¦}Q¾AÆñ'=ÛÂ}k@oª*y©|‹{á/LÚ—£hÑÃ/nÜ™¼‡íc É|sûü £³‘eËq[Zü(£¬¨2RTw¶ÒaÖtàp/¾^Û]×8¥NòvM‰Ó®«ÉóF×nެbŸPkWQT–=áùÌùdÕÁ‘S+˦R´ŽÈRÀ(Qp6Åf€OÅhžÇ¢¼Îi*ëÎô*Y\t6¡õæÕ×Ò‚®‹ÂEˆ½×ç­wÿß%Ï+æô$¼W„€Öï ”Ó)ÿI³ÿ² endstream endobj 500 0 obj << /Type /ObjStm /N 100 /First 887 /Length 2994 /Filter /FlateDecode >> stream xÚÍZ[sÛ¶~÷¯Àcû`—ÅíL¦3n2n2SO3q:ç’éƒ,36OdQCJqÒ_¾… &²c›Õž>Ø„H\,v÷ûvJI(AÉ …ÓFh"á”Ö&\ À¿Ix­qu"¤€«É[\ƒÐÚ4¢ÐV©#§Fðw’ÐÞ*Œ©„ ƒ++trU“0ZãyÂÕa8íÑHüD cã<²ùNÆ…ˆq'°LF “6R†Öß±;`@ã„uÌËG~‹0A‹GV R}I9ˆO*b‹;š%6€· w,ñ0AÆY/È{h„ЈÄã±: ®ËúóøÇBZ王Äc8îX„¿ЇœðÊL Š…V!•×èfq_C^Œáå7  g…· ¦(<ëÇúøˆÁœ>òr8-ÏÍ9¬“Æs|<舯;/‚á— îÀãá[Á²†\Dƒ¥õ ^\Qˆ'á ߯ Ö­s¸áxq1Íàs_| B):epɨ57¼ˆÆcå‚‘  cÂ"[T‚é‚Aƒg¥Çl40ºèqÛAGSÚÐ'~„a’F¨«6ˆd<7¢Hv!‰Ä£ºH"X äL5‡®!aL+E¶Ü„ÉñºÀNl÷ÈabZY#¬YKÑÊnñÓÀê†Qk•x衵fýbl4XGI£Eùð*ͳuXY ËJGÏžU/Ä;§”x#ªýû?P¤dý1_Íf¿ýðCîuÚΗâÙ3Qb=mHëþ§mWÚžlèTg‹ßü ,´É?0\õºk§çõR¼Õë§¢z[ZŠ?¾ôöó¢ÆƒÉU}T=ÇWëù²ìExý¨zS÷íª›Ö}öÒ|묾l&?¶ŸÄ;…ŠÉü†ÏL:¼ óë~'óy‹¡Þå¸Â²p\Y_©\]¹úr 庞G•õïT~«ò; ww ù{GÕùêb™ÿÜÌ?U?¶ÝeÝeQÕoÕËêUõüÎ?xrShÅ(+udà 2嘤dŽO1I!úä•8ÕOíÛV`¿ëñfÓÎ¥ýž5|1`GÒ°ŸX%)!hZ'ûY‰@õM1^¾oÛ%>WK÷  ßú2¬Uè/_vIr@ƒ—JÃ1’d7§`¥u¼´e2y.Õɳgù ÕIÖAu^ýúæÿ}w½\.úTÕ¢kÿ‹‘{9m›ùqÛɶ»ª^-ÚŲºm>4ÕÙd9›\¼‚­uï'Óúû½%7Æaé`úÉHki,ÇS+IéI~òâ—ŸŸï/¥UFÂK_2z†×(9þX¥eJt(!_Ï0@¿¿ :8iŒÁ’€6@âÈP¬¤Ë&¸£¤WÍòzu9oªé¤Ÿ\6› ›Áþr–;rP $‚0\2A)Heâ4ú|±8y1B™V3µ×8 ÚCÒ]t€ð!üM„ôˆy†áII vb}’Ph£%JÆŸNF[¦…£'/t§`”`¨0Ðh¥Ñv71!å´½¬åUÛ^Íêl›‹jÚ7žÆ¬vš¹ B¦Ñ¥µçxÄ'M» ¸Bh”ÝLN¦rõaýóøööö+ù@#˜·?A#îõÆ@(¨ ìäÑž°V„}D¼¸ÉƒtÄ2i¡'¸IuŠHüæ^‰jó#ÇM/p`vœ1tƪ{tÆÄAtÆYºKgô†žZb -1…æ˜BsŒ-×BcL¡9†¡/|A©À¦‘šV õ¨×È€ä䳿œpVâtŽ#Œ‡ˆç—p×Ó(ù´ú\->tVãÁð,ãIÒ >΂q~&ƒ5;»ë{h¬–ý´«ÉÚkæ—õ'¹¸^ ´àöñXyyÅ9{AóœÛ& ¤"LЂÓ;Ëû0?ûþPlù¸Ô٥Ú¡aí9ûBvŽéž`³þp´š Ã-8 Cs4Û"ß¶°Ãr„1¬3V¡ HÎÉxÉÙ…ûs~ç5›5ýrk½n&Íìf2Ïšùû¶jF. ‹ÿõ’T`ÚÑòBj©¸zcAgì·³¢iýsRO¯WI5sW?F‡UñíȪd¼GJo¥wng ?·8:tÍÅŠ{÷òzy3»¯& ×­^ ¯Àéáö,ðªµG¢A}“GNó oáê°2ÁHo•þ2\&º‡ËdöÅeSʶà,•«ÝÜ/¸m nSÁm*ÏI++l;›a ×éGÎï‘YK¥ÂÓôúúÅ×±&H›«w”ãß&Gr>3éÑÞsÙÞÎgíä²Z/Ü>ŽOÛnÙMæûCû QÆpY:Ê\Èu þ:ü¤Þ½¢äÍŸ•CÈG¶’+ÇHøý¥ÕŦ¦dÆsJÚIœÑ9.)Ãüã2ºH‡/æüöËN=>cFìAÔw˜1±e aÅk\5³Ë·m;ë×ÒOW‡“ã¦ïWõÙbJ‘74X͸›±0µ罬?Ö³v4p²X”Ôóy½¼îêfù{ÕöŸŽ¯¦ÓãfÞ/'³YÝ}Sxd²CÈÀV/&öÀ æéž€/„ĶàÿkưE¶éÃ×$ƒøqðïîÿÛþ©À;xwÞ—nGäÈvÈb×[‰’wþ<<;ùÝ“EDúu×s¤Ÿ,&ÓëšãÒˆÜøÎ{wœç$Æœ’p‘eþþ'áüáJŒ ™7oõrù 9‡óRÙø P~•p…Ã%‹ÆqXü"9ënâl7{¥9Ü]ßõQIÞ~º§KJ2ÙГò¾È€ž„üRÒTÍZ3 'ÒÜ1­QÙˆŸîi¢“ÞÑ’Á˜J›!¥Ì¯"ÛÄèádÊñNwºŸYí}º}Ø74úR‰ôeã՗Ф÷ÝHõIzdˆžWO­#ÐIÕ—Hù(ïÕ‡ÜM5È–¦çÀ x™Õ:'^9`'=ÍÁiLîå8Çòœar¥BWÑÏYŒ×z¯˜ Î2k.Æa×nˆïx-A¶…ñ$µKyKʘݱ⺟}Ù¤¸[~b'ÜxÇã¡o«W}Þgý=ÝÓrƒ8dÌÌtµÒÓE˜¯ÒÓÍH+ óÝpúíà³U >ãÏxÄûg<¢Þ7Äù]©¹?ùpÎúšj,¬ÉÛ|L-WmbâO8þ\÷Ö 0Ñ:?åüÞó‰ |ÜðöÁÎ^tÕM&3YÏûãÙgÈö¾«Î~={}~¸R<Äã°l‚‚—çqR!®è3ÖŒ)…o²9ò¸á\zÓ‹Hf¯p¸˜t—Mß—$ÿ±¸¸Ç - |‹Ù_̇á»|ü «;À´Ò]mÓÆ»Û´ä¹bôäì=š°siøáDo+î ÑKî^¨IvßPSªÑ®œ¢ããzëk =±ÜO%ôÄrM›÷Ê>m*û´1J(…çsš!ïNl*?žÙÏžÛ]Ýדnz-›‹›õ …R˪nû›Å貊GDPX^ã¹>R4ßÿ EÝË'Ÿ 6pJâ:2µ|4—Ϫù½rìI=¬,ŸÍãc¡ ·P&“¼”+}í(Æa”9-ŸÐµ˜;ýÆÒ ò¿Ýqg6éÚ^^.Aßnæ²¾\UW®Û›ºº©—M_þ·ëîcSߎ6:«{™µ1ȦyNÚ]OLìÝQTÉçÇÒ”È'·‘éÃþŒÇ¬ =±êiĪ'#9|j>”‰øl"@“ÏÝǃ?ÔáÌçh¿¬g‡óWËϧ݌•Ó-RŸ\Y± l£Üu(?‹ùPì5)¬Oâ¬Ý>µø½T6`ea:ÄÇleâ£w‰5¤K\> [¼¯—Ó몿-žñËÏ/Ö­c’ Än9éäÕïeÿç~d endstream endobj 609 0 obj << /Length 3247 /Filter /FlateDecode >> stream xÚ­Ùrã6òÝ_¡ÚJÕÒ‹"@ ó–ñn6NeŽÍ8UÙJò@‹Ä±D*$5¶ÿ~»Ñ ^¢Ç3»ó"«Ñw7øêöbõC²Hý4–ñâv³H…j½ÐAê |ñ»'üËeÞum²Ö\.Ã0ô2üS^^ÔfÝVõAv¦æ O—R{Õ‰á—2ñ²[ZØV4²®Çbo.ÿ¼ýiõƒˆ˜HûRE‹€¸9VÇ–¦ ñ•ðí&]Ѧ›ª¦SÌcv8ºÝ#1X·”aà'éb)B_Àˆ]þ ÜSFÞá®EÍonÞ½}wû›_Vw§bŸŸŸŒwÈÊœPØV„AA—æÛ¶»¢¡–%\„;Ç-˜ÅjJ±+EËßT­ùîr©€ÿ¹L”å‰Lo ü b¸ á¯j ‰YOÔÙÓà:k‹ªD\l½?åE¹¹€H_ÃùÌ•ãs\£À”p‹¶1û 5tx»33X äkCCOˆluªùBV¦ì4f+@(‰Ætý±ÂUV4áá}´­šeÀÿë·7o–o!nºÉ8ü«\hÓ›ïí4sdQßñŠ0\;ý¡5Ê)ïðG ÔÞ°Œ4æ˜Õ q| !}Â]_„ ]A²fþr*€·m‰{m&ÂcX³® §Cc~ÑÎ3B× l¸)`;ó¢À½-á<•Þ¡ØîX屻˰óíO@záÿ¶øÈ„Åè9p®O±ÃF1Э®ßÔ3þÖç&hmWç¦o¶F¬Äk’x• ´h8VVå27›ì´ÂYbMõ‘9Ö J=¶h­Ùï©U°­XŦ:˜ÎÔ,Àå–µL¢•óœ'’Å@KÒ´Ù$åÊIOøþx´ @ ‹GI?õ;Ô¬¹ÙคÃTHoŸ5-µªS{<Ù¶ðöEÉã`ô󆀈PÍŠOâ÷ÚÞ Êw$B¯3䄵`< Œ T`ü'ën›Íi½6M³œ[û|B¢ÝQs·1%!h>.IWÂDùZê1ãLýT‹µ eLº\Õ¤«9ÁP²Jз¥RÒ{ ûÖEcà’íÌ=ÍÍZú'•ƒ¢±ˆ@›Hij+øÚs"n×Òß'v<§r¨B? Ò1™ý}µ±ª‘u>‘¹JdIS?Œ&^odsÀ.­œDÃÍiß~±”ÝZŠ(¨G-uFŠ‹€?‚(x(Ú]uâÏÁ[˜$`õ HA>`›x]˜.œ€AòøÐ8T ƒN©j¶»Œy…¬x(÷U–[¦ì`°ÁöyVå*)\|!œ¹%uÉØT{v%Vkp^Š:ÓH°õÖ™É cò€ tÕ ;^‰s^ äÏdÏ}SÍ]öcÑíÄlMiêb}æÃ^¬ÖÎVÕ'°1k¼Šƒ‡`é¶ÎÿÍù¡Hú€cCÈìÚöØ|·ZëêDš¿®Šr‰^tׯêíê?šýqõPÜ+ä: Âa-ãÈb1ö¥!ûÒW6ªšzS«¨¹ù"çyÈîÍg‡gZ’œ(=¡“Y~CãÔ邿¿ÞüŠO°’†¬†“l|gw@>ÛVkãtÅñ(–« xÆ‘'îøÐA(E€;Äíé £y“¥€(A:K´üðf†nÒÔ&Eî‘ w%<ëÞgR¾Œ;·`én9°üžŸ¨„Ÿ¨)40H¾ØùéË FStþmæ\¦² bB»ó±Ð¶j~:àïQ¼¦ôa¤1@ß¾'è˜ê0ü¡ºkP<…ö¾§)[vd—>yжöêüZR'~š$_p/ëC”~šÆc~‘À qÐÍ8¤|S0yFàîàŠw{Càßv:ºþÊÚmîOLÌÊzåH¤Þ¯eîˆÇÁ e£z×¶…–ÇFæ1•°#ó—³/˜¿³ ±=Œ’ö@§]g,dÉ&.´vÁ_m–EÓœÌ$òÇLΙDŒÕahgg,K’øØìÔçœC€•Nd/˨5.ç‘5n##§ØÈYS£ƒÁã]’v. QÕÉÀÁ8YXUÛt õ›]U·Ôlõ¿0fIö…Åæ‰g3Æ–<:˜È{‡ICZnÚ ŒÜ!RÞ6›­Ý®…e¨N»;!†Æ™(ðáÔ0Ñ1€ËeêÏNÁ{Ãb¯ùR1à–ä-–ÞCash9úH¯Ø0ÄRß¿~÷3µú‚úæÑ¬O-+ ng¹¡+Ð!¡µ‘´¡òL‚h§Ç¼çS:§Æ1€Hæ£tßäsêpýí·,Ù×W$Ù]x„òÞbš•£¢L3( Á]f#IçA!oQÈ¤ÎØP”0=Ë@fë *îL9'ÄàÁ2ÛJ@þÇ&· Ø[ÂNmu)]ƒ©~¢¡Ü€ü(WRó›IBTÔ§âÀSöÅ]Õ…áãØ4/–™‹©d‘¼îÊeYFÀ• À˜©[›ká 7±¡±®pC¦Ä«å4Їè0Bfy2¼Šâ\-;íJ¤wg£u6˦Î8{¢'¬Õ[3¢ØO÷/{电¥ƒT 3Š(üi«ý0 _¶Øi(Îü"fÙ¶N1c3b?RCOZàÎ>ÕÞ&FCûQ¨&WmìïÓ½n¯l¶œtÄ«¸vÒ¬šÍ]ä‚"lØÐEÛP#7ªšrMÖ/ùú××ïÞ_±¶ʆëã—µ÷?sBðÚ´îýbj «„£¬n7(úò+ì®(cº-ºjPÖbÐÈ$áW„ÎLüLÊ* endstream endobj 629 0 obj << /Length 3631 /Filter /FlateDecode >> stream xÚ¥ZYsã6~Ÿ_¡J¥*t%‚ €gò°5™LRÞš#;›M%y %ØâEjIj<þ÷ÛxHô:©}‘À&4úøú ¿½yqù½ŽV¹Ê“¬nîVZ'*LÌ* s¥S mW¿¿‡:½øãæï—ßg“©8²«§ô;w±¶ÖµÛ¸®+.Ö:h/tðˆÔ(عbëZž«E•ëø¢¬yáXO™0± ­ök~õãûo¾»úéòöXVÛ˲ÞTÇ­»Ü4þé)[:JTûgNX­Mn•Ísh¥æ{¿^d6hŽÀˆ‰ƒMQËàÂdÁ®¨ï_óÉLlÝ]q¬z¦–u×UUôe#ÏmËÖmú¦}äËßÃ8ܹÖ-ÏDZ%6{âxç'J38Ðp"XX g ÿwÍÞõ»²¾g>]Õ¹‘‡îÈb9Xª0·«µ¶JÇ"‡¢[Ô2ÖøM/]{Y5›¢:g/6ʆö„=Píí…IYÿ68vÌ QžçÛ%‘‚¬±^ZwW~:ß+Š•®{({9YÙ]Ó., öšá$›¦¾+ï^1³ÅS¦öÔrÒ\¥™[N¢.Öq’€ßЊj<øÛo “©Ë•Žì_šCΆ U’²À3‰Ÿ½[8f ¢­äÕÏ7¯Ûóµ×:‰U–Es¸º»XG:+h /vJö#þ,),ŽTž™g¶ƒ£Œ,U (ðÈ«‹ÿ¸-^šH8È€ƒ–©Ýc×»=ß)j™*S˜ú€ƒç©g :NCq+À€Žm?§­ÒÑÀ=˜aª©X(¤øØp’‹dùÑCÛÜVn/X·ÖàÁ­£c?‰~UY> ÃõÕ÷ ÃN>~%ŽEþv€=ÒE­5`zœåsÝ– P±/>8m޽[Pe8ìfW¢XRK×÷Ž.Bpî¢gò¨& ¶„œÉDÇó)ïcÙ6õÞ Š„/â$(Ú² .‚h ˆ1ˆéí¯h‚?-8µVf”æÖaô©É쀋b³Á@Õ´Û 4É{Þ™LHx\FCž&Ï9ZGf.5´úö¸AÀèšO¼¼ë90F°_Ù‰.éáñHái„ë#nt›¶ôV<Q«4̤ۖ‡æœS“«hnìO£4̵ù3'§õ`æxÍFöÄäba£Ô¨d âË>«P‡}KpÛæà#>kò×–g½kz÷5˜yãöy·ä1 çÀVž¡ïÒ’·…hÑ1±Û58åÝÕÐs|—ÿ›f(+Y§÷m„ExH(eÍS|êPÛ¸CѽL»ƒ'Úfϲ̘Ü8>¬0ŽN@]Ò,43«Å_MnØšòX¼D ;ÂŒ±I;'ÄÁ ‰<ÃZ¤àyqÚp^"ŠJäq [tc[or£q­a–<B묃:f…‚“е0O}‚H áq>[=å¨ÃƒÄ‹¡Âu€ž‡““{è‚Q‡£n‹Öñ¼‚oO{ŽT¹ˆwº H:…sÞPVÉ“ÈYyq‚K˜{çŠìé+„˜l–lâ¼’™nüSnvRÁ°1Ñ4i Ù4Ù$~ãʼnº2Æ5|bTWæÕETòƒ-²†ú¢€+3jáb"Ê%x€˜‡æ<±ýI—œÔÙ€?b%°fP̶çP´ï]õ»¤qàÿ)ëmsèñÐ-'˜OÄ>! 3´YÂnƒƒÎñ[(ˆð€G¤“?vL!È„ÿòÉœYC ÿLÊfÌ è°*[¶ó¯Æ$4àÊ»%=![Œêˆ~L‡@xë0®Ý²#lý øÿÚmÖ‚ÊP¸ea2·PZÜ[Ǩ¥q˜Hv+4ƒà`EŽH$<€Y '@xõxÿ€û!‘Š<·èŽ!d*É`•»¾?|}yùðð 6ô¼BŒ]pÈ\e6ÖsÂÏîôÕnÜ0ÎÊa þ›Àvë8ºRlœ}$‘…'åçÏï®þµ®Ê{1)ZN á£o4W,¤<ˆH Qd…Ù”˜øþÔÚ‘Â>•@Ï´SSE[•œõ[Ù†s¶¥hÔ¹ ï`²”{ 8ñW´©)À mrªÃpÚv³ô ÇSÁqY€; -ܵÎq-Š”Þý,„]ÃÃd¸çõ(æ‘JG¼{ »i<-S*Wø=7hpíÍ/ƒ°Ã…¤F¤É”ç·×¿^_¾-ë~‘f‰1*Ì“ÓD4 œŸUy¿#¬Éª¿ä»'@`¡[œËmL@ Ê¦9áOE¶*gÅä Àˆ›‰O£a™RDÒqØt"Œœ„aQ±aäƒ0làDјġ2£iQ0fv§í¡Pe:]Pê Ö!×ÈÆÚhï>-ÖF:ò°R¬¸½+6n`ê|ûØ@ö6VÔ//²,¸yóòÛÅNY¬g†e’'âê^ƒ@…t ²fR&ÞÛ¹PØ’"¯ œ™ðQ:ÃÆŒ:K¥”y©× îmCÜ–u!i\ ­Â¹[AÅœ¥éóÉT—CÅÜÊ‚m1¸}YQׂÈdH¡OAaðêýÕ»õûŸø‚EuÛ•½_eIå:ÓÔ¹YˆäMY¯± ¸¤šöþR­5hO’ãmóPWM±½$Q<^>q¼“c“Î8¿C|Ä–OÕaŠ1vº15ptiu=€ÒÜ- :ÁÎàsY5䫹6ÓÖ.øÝ›7ïŽÈrïj¬êüþwT(ãˆAf½½þçµH% ©U=ÔMuwó¡#7ã6û—Àö‹Ž×ëŽó¡î£'Ön -ðLÙQìcñDû]Â)ÊîXT×ýq[6—³u 6¼Äf}Ùi?XaCÅjâ áÍèà W͙֋Ôàø±ÎNÒØåÞX¦ÌØKúéõËïÞ¾^ðŸx sÃë (ŠÖ£(ñ]Hбœjr¬°³0xYód÷©Ø¨‡‹¡1ƒOsûú›Œ‡‰˜mF¶‚£iÛ9 x%Ù„¬‡F”'‚Ðþ á)¥,´ØÆ…ð ±p†[Ïèô[rKàoý¦¬?¬_Ëñ,-Ufj©ù¢|º¹Ÿà 5Z\œT}Yä+a( }ycÿæ&P.‰´!—|¶*VAiáÁo¸×qü4 ù@_ùpƒC> $äCjÜ}ƒ/º ¿ã;c–Û¦þBýPm; á‰:=ÄR?gmöü~’èì$G 1ÖòtÄ󄸚x—%œŸw&Qaw¢Ö¡¸w_-ù˜MTdíÿWÕù—[P6[s’¯]Q žÜ0Lî÷pªí˜Ä?¨gè…%“–»':„œâÏT;@çË·?¾á5§¯ZðÚ}r›c_ lpï2D‡c²p`¨ø‚K¥É#¢©Þsé'Jg'‚Ùø<Ç?z¯Í¥#+5 އ¤ àqþ—HÜ)·¾¡'ý¬—ðÐè¾-ö¼/ÙÿÙkƒYU&ö˧§­oɉátGImF ”å*4ÙʪÄ[¸ÏÏ•©(ÒCÆYC>TPÀœ½‡4Q>©}29Ö¿’<nÇ>Qå©JLþ|v‘Ńkª p]–æ:\øHO’Ó¡G„ÓNŠÙ c¾™5YÇT5GÙ$Þ uÖÌ@‚ï'KoߨèÔG¥Ÿ0tá?db}/D¼†"¾ )à,Ëvû ºt>9[ÎVB´‘‡…Ê™ÂÙ °¼î\<|æ÷;¤-Z=óŠ%²Ó÷Þ²Öþ±)Š PpÛ{£~º¸‘¢dŠíÐ×,<Û!î"” ;t<¤ßs7¥ÛIK”ŸïÀÑ'ÊN )c¯W êÜÒqA’„boqŽõÆíÑå·= ’˜“¦¶ë7,šõ©»"³Máß#N0#šÅ¼Å.µG&î­ úù/:.¶{êz¨¢ñÎŒ½“@Õ#&©_³ÒP€ÍÞÚiùÚâUÅýGÛÚ§ˆŸzn§ßhyêÚU”°Ñ§G`¼ƒsÒ#ü^mDB;V˵ë?ãY¨~ùúgüÊclÅWÜiüà?€ZæÇžñéÍgŸUÞèàðžï‘_Xé@Zò+,p+/ýébòiÎAæ':Î}Ë‚ÊÍ Óú2ÜfÁÉq3Ü\^YI2ÓÉt( ¬ÐzM¦ö´hmÀ¿ ¡© ”ñ¥˜ÏfªùQÄ/^ß¼øÏ ì‚…+½JseV±¥ÏR6û¿ý®¶påz¶z i{ª¥#Ê„ªÕõ‹¼ø–¾ËW1„¶”cV¢’{6ÒóÈUP ÓBMq*l|©ÅŒ3'«¤“Æç šÚ•6s(¼ÉÙ£ñ9Î*ÆâsÜF‡0—Þ̸1ÑôÃ("dÉu¨v¹%^„ HŒdsq ÕM½Þ ‰»™¿š5!pÜûÅýIý?¿ß‚[îÓÿ(ŠR‘D »ZøÔ-RßéY£B€~äuý_{~ endstream endobj 643 0 obj << /Length 2438 /Filter /FlateDecode >> stream xÚÍYK“Û¸¾Ï¯PùDÕŽ(>@‚ôÍÛ)'ko²—“Zï¡3ÉåÃå×§ÝàCâdœ­ÙJ.3@£Ùh4úñ¡õúöjý.ZÄvzáâv·ˆ]Û—r!Øv%PÒÅ/–°—«Àq¬O*WÛv¹ò}ßJè_«Ž<+Íj"íJÜœîŽYA«Z®\«í–®Uñ—%ýoÚ²V<,<úê¸"W }ûÕ œlG §¥YeG“ªce²–8ËbÂÅz¤ª¹oËjFÀ1Ësú2OZU/½ýóÂõlé/V®o»Kç¯ÕAð»ÍrU=>ù¹j•Ñ´uµ Kò\ÛõXR0cɯ®/Àx<Ö¶, ˜deñÂ#pRµKºœ„“ý‹”Ùól‹ºÝ½P­ÞÞ™îÎìlì-¬CV×æÚš¬ej ·µOX­F©CCÛ¼l˜eƒ[Ÿ¦ö˜˜˜õôYOù”ž’õüé/×ÌX¢¸£±ÍA±í^õ´ dÃòNUR·/»Ë,#_+'|”ÀoÜ?ê.´Ÿ’y4 wÀA•°…ƒÐJîPZN˜±?0NŽ8I üÛNeï$~Ã?,8+š6És•¡¥p¬×'¢ómƒl zÔüAÒò.GU’žŒ!õAéœtp¢íèzÖF‹²á`€†ËrU£AI²‘Þ5(u¢IQ¶´\Õj¥Í°‡Ë/lT#¬©Yµ5‘W{PÉ=Ÿ©MÇ:kr,`ÜyŒ{²¢ãƒñ þéãgX¢‰þ‘ÔaB¹ÖÞiÅjôà:)ÐŽgÝ\'ù$pÝüðF”^v­OÝf¸ ºÛñB‚f.@Æq£$M34r’“d<8ž&oÀ@!œ‡õ îvŸ5,òNµsgc§Æ$šçÆñ]+ƒ½‹;r÷KgDê®.gq‘4 j#­mfbâ¬A·¨#ëw®¥׵㠘†$$cI¬“B#ô'ÈaoY.Á‚áP»ÀºÒóßm·bf÷U\~6‘¶ë‡èö+ð•¬ñ¤Á¦Fu·‚l¿Ëîþ‡¶hºÍ7òögVâUMŽ–‘.³ªŽíÇÂ|Õÿʪ9-B` äïÒâs›åÍìÞ¾„aÜßEÒn÷s{ `ó½ßµ÷ ~µ™ß=´ƒžùÈé`*oD¶#q~Ù+À8^,0)῟USæß2Ì^ì[oTE¥HU±Í0= à°Ô¤œsÅaWaV„ì¸ÑÉBr5tJƒÿx p^«ß:@-)í«³’g%ý ¤äŸßÞüôa5—ì>¼ýøæíLÀ/lÊ]· )Od¢kËCÒB§š„¤¼) (¹D3o±b>–-]Ë~žE >nµ•}Š“300-™¡Ì5•,ª,@ë±/Œù,0büH“¾øÓ”Ê×õ‘Æ¥j˜jZÞt7Y"1uG¥ž(½\®©$5ê1HÄÉ¢>A}ÒU6TyÃò©–»cL Ô<»^¼;„õŠOõRóhL­)•ö­2+F\#ÓºÖ6ac©¤É{ ²I×€½Ë1lÒÒ.K PY»?3[£Ú®šs½ª.ïêä0ã ´Ž’d8Hè¤AS@ X”èYùž'Œ’¶ÖçÉR}óÀÒc豸ހh<¥¦%ö'iÀ’´-ë{T[º¤6xˆ;À+ëú1è¯Â’aœ'B } pê(ò2I‰¢ÕD|¨=(¦NŒ„«•\æ>7vìLÍÙoß¶ÕËõúx<Ú[@ŒÊ.ë»õ]³Þj+¬5U=¨Ëéy¤e׈B××W*à”¡8;f3à¾ôpúé2S'};rz-ofá’c‹°ß½˜bÇQÏ@Ç™‘ãC™¼ï–³1BƦp;Œ{ K)¬7e·É5p—ùú‡"™r­À§Ø‘¬1urXÙàg'æ×^Za†˜¹ÑHÂæ}!ÇûOôkµš€‹±¾2„ Í'o™*7½¥èàvèGgHYÕ‡Œpwèä TœzZjò(í€Ïr¶ üÈz¿#Ö!7a=йV•~_žÖs@WÕW›¤Ù¿„8%¬u×Ôë û¬!¾Æ¸As@FƒTÞÌ\^äÛNØ{–©_ ©ÔÖ§EàUÚ®Œ§¦ùþxZa–c¯tíHãéýP—Ô´*I¯±ºÇP”Šä Q‚£ ÿÏRìÙðÆÎ1ÌB@fOÄ2 ™ŸCÙ,”¥Éðÿ(”½ÿ2”ƒ)UåÉVÍ loøä¹O8V·[rèJU÷¬é&LÍJÚÌ4år"ÛÉtõÒ êˆ¯À¡t ÚP®†6š ¼)Pƒ£Pþ8îqOá¼Ë‡}9òÓ™¼îyeÏK81¤ÁÑ£v§µ4ý¦fAÇ=ÁC¶GÆ*€JKÖ£¾éçïÿÎv¯ Ô$Ús­1×=?´ˆâQó &ÿì'Š(š4p…šY0˜âEdÅMXø%p—…„HC¼ƒÌŸ ˆ`'Wß!üõGÚ[> stream xÚÝYY“ÛÆ~ß_Ár¥Ê`Ybfpº*–9LyWŠw%Çeù €\Ä Àà²ôïÓ=݃ƒÄJôk^ȹ§§¯¼~¸Y¿õâE,â@‹‡í"Œ…Z„n,dýlñ›£„/Ôr%¥ï:›ªí’²Lº¢®–+yΩ螰¥7Ÿw§¢¢ö±-ª-èžr»½ÿ¸ÔÊyóÝwÔOëý¡(á`'o–¿?üsý6Ñá.V2~äOE»\)-6Oév¥]'Ë[< mŠGœ=ÕK9'ê|Æv}¤NšðVº>§›e0ºZF¾] $˜«7‡úÐ]¨b„Ú."6àæ½xÁm‘6u[o;ÿX´Ç¤¤¶áÁˆˆ††Uf›ÄL×.VJúB‡pD éKºñyƒŒÕßš÷aç)Á×>ã™+4P–@&ð°¥þ¶nh/QC’ƒ.I¼]‚ë¦kw8Ö†ÛÏ©°Q4Íá]IÓ!‰Ÿi2˰ȃ×Vi‘·ß³ ¼± <{ðb/† óâO® /倭^ XïüØIèï—¢Êj¼ýÔÒG7@ˆpƒØRõÔu‡ï×ëÓé$*³_ÔÍn=ÿØúýN¸B2ØxJ ×WS°aò<ÂOíÁë«ò3õ âygÐî+ C»4§ð]…È©ycõ€¥„WÕ·uÝ©ÃÆâ×Ï(Ф™ô 3ù:>ó†¬FMÛ?°‡®m=˜˜2¼‚àQnâû`mÛå‡öÕ Wyž1ÖcËÒh7"ÑZâÁÍ1!2ꥰ§(ð—Íûwïþ¶ùyýúX”ÙC]—íz7¸ùï :1w! ¸!#oáƒ{\µH÷7¿ýî.2˜VG‹“Yº_Àõ¼\Üßüëæ5Só=¡•2G®îMf½¹»øá§Ÿ.uÍ…¯=«jÖ§i%?˜"ü»*½Î§µyו–Çuï~ ’ÊùŒÇƒXAŒÃYH1NÈð;Pg|×e-4ÁÓì °1•—§CãqæÞÆ&ØÁ¸IRóHΣ\~ß¡ Ä É ’*£FÛÕZ”lÑEYÅ96îeD[UÖI–g´§'‘0¿¢”‰®Œ?ެ?Nñ ëÐY:¼kŒ³ŠYs×; ðVƒÍB‡µÞ:1øß'X¡A¯=6ÖÉ=!Îa«¡ýGEG[ïøhТ>š¥ÑàŠ+0Áç%ãLX׋Æ:¸Þ–] ¯¤õÖörë_¦þÎåYÄXNcÜWÎa³¯…òú 2¥xî1™‰$}_½ó¡XjtAÏ!h?&-fEcÝ|ÚÕe`õˆa&@ó%E2ÁøC{Ó›Ù¸Ë^ÐS=C˜EgϺ|’–BGjê]VxBµŽá:09@õÏH!Ðj~ i.dïeÑ+Ú8pE"+ßÕ0³˜‡Jã;ßÌ2È“"òôÕ zßÔ»&ÙÓ‰o›Û™3A.qì_}æ(±ÀSmbíûî˜5µ£9ñ·}íª^rß¼¤#Wñœ>'M \EåÿæRUw\³~"†wŒéûQâ€ÞíØQ”ÎpÏ~Ø$‘]{†ùy…›Ÿ1"oêjOÝŽæ(k Œ%Øé¶½ÏHxц³„‰9¶ç †9-èå´}•7¢1FoÚlg|› tòœ¯Õg·qšS¬÷ €½7<ËÏô$Ÿù‘© ±ÉpQQ¥å1ãËÚzŸgmЃA ÚV8ØVÑþ_XѦÂdîǫ̀«yË|¿"y ˆQäKCIÓçÙÖL²‹±•éÒßcÑaXÕätC±§’:˜"̆qÎn†’Í*V¡uX®ÁÑ!4ÃÑT»œW'¥¤-ˆ ɸ4‚Ûbç“ÔÞ\Ö©¨ß+CZÎdwc„þ†31DLu‘ÓÉß YÛzŒ†x”Aû4ÔOà1žô)V5'vL&„@UÖR‡ #/åAØHÇ£’íõÝáÀ-»üHøò,ôa˜wšCžÕƒfѽúr˾¦É¡”u-í±W#Ä_v½cékAßÎA¡ ´”žÀLùp3£ü[»8¸þ4øÖ|ÿ|¬Î^•Öòw4 ·ÍMÁ›¥Mq°< ã¶qÙ¤˜Ý¹·û"‡±Œ(s&÷T G‚ùç‘£°rnç‚.[\†€ìµÚ;“$ ίVy…îy•Õ-ö×}ûœÎ׊Gàq;dȈc“ŸeÒò£öyÛ&;«2W8¶Û É£²°iZ™ý8”ÂÙÛãŒuÎeWÞEvuî·Ó‘sG]í+Õ—X0ºÀ²ôUì‡T-ŸÑRô=Ø¿âÔ'Û»¼íÎtâ²^ò5î %†‰æÐ š¼P¸CáiâÁ‰ôZÏ”Y9yŽæsåüyÂìfËäóÉJ÷s±ªÅjø‚¢¯ø‚r{ÿëýú¶¨~üå«ßC‰…_ª‡_ø¦ú@ŽþÊ' HÝû ;áXþ.ÍD„TÕQiæ©Ô é[Uƒ"Ümþ½åsÆ3_¬¸8áú"Tñ$#´~WýG þ€uS÷œMw×?öN«Iظ­-m°¶Œwcзh¦ðº¥:™ºëœ[ŽE¤Ã³Jv"åÔÝa®àkw€ìLAGÐíá¿AdlXù8€MÖ¼¬JFBûÁ×´ vg¼ðÜq6‚ýÃ'7ܵålÓ¹ï«,\ø"öÏœ?‹Òô1½¥Ñ,Ï!³Vcï¥úGq\ Ô”f%E¨¢Û±ý˜´ È¦ÉÑ⥆ á" éÈ–Üý@/ÀÇ[Ý“ò’Y‘ð<éh•Q>IIà”^Õ›ÚE:Ø¿À¦ƒgTÿx÷= _üþx®µ‚¶ºgß/kÔ#˜Ä[ê>ÿlG1TÔ[›– ‡Ó¢3}Jö„üR¹YFRxÆ&Fg/@ ÂX y”‡ÙçÇS†Ëh9~ªE„>Q‰Ès1Ò ñûUµM©Æ€$EnzÍ‘®¢iµ40ð:›vš³Â|ˉ±|ßrpz‹ñWzDbE(åV´Àµ @µËñ{Í®ûOžví1¦Në-¦ºkvy³fq¢ñ}BáI§ÁÕr(g—wØ ¿çÌ ‘‚Ø#.C@/ˆ«ï2°2ü† & endstream endobj 676 0 obj << /Length 3638 /Filter /FlateDecode >> stream xÚ½ZY“Û¸~÷¯Pª’*©v x¹*Þñz3³ë#žY;©õVŠ"! mŠÔòðxòßžn4x òÎ&©<Ìh€`£ÑÇ× }{ûdó"\D,ò…¿¸Ý-"ɸ”‹À‰€’.~^>[­]W,“òpÌò¸ÉÊ |yŸ5w4ÔÜ)"}ÿê§ñdUÕÔ½_‰pYVŸL÷c[7ôBž}Â!e¦õ+Æ’¨S•㾬赟^]ýÆê‡ºQ‡ ó–Y?UuReÛÕZK•-+V¿Ü^/Ö\²v¸æ.ã§Þ¨Äl+KÁ$[­½0ZÞÞÅÈfÈ—Y_ˆä2m«¬ØÓDÚ5Žuç$3¯V9¬Ió>8žüǦ›«¸n€Æg«\RÿÒHÎ,tùÍ7fxJ± ]h W1mÍ™njô‚ç„Ë—7¿Y­eà.¿ë,¡æM'=œ)R K8ü2+¾OÍçê³>¨¼<‚X¡QýVó¡IeþCÖ€èBß]>KÓ ÅbyX…ryn^oƒ®Á®˜ã¹À·æ÷~¯š5VHá1ßíç ‹§ ‡~?§-þ™OZK0)£©ê»²Íµ†¸Ë-mŒ:æLI{d¯™n§ëîrWæy‰2¹'€Y õ-EZžqAƒtz U2ÍSË^¸Ã¤ÏkÁ†I˜¼¿_£xÖžð:Ö¨sXß÷cº{F’ÉÐ5+ÓÂW;8DP¦‡JÙRGÛ*Ù_ƒoÙ”4ÒÖŠ¤ 0R€Î6Œ/oÞaO+-Žwn€FÑ´ -GèþC¯;ÃH,ªà0Ÿ÷SJ³hl礳4MèXAËC…w=ÜvˆÛÖ~AD>sæŽAÕµ"IdZ“× Áîà”î“4 ¶t¬©Y¶Mž¨=ØCUÀgïg°#˜ÇšK47w‰ gt.@+T·œ>xâÎy꯷•êB_Ó±fq ´§ÏYUÕ4:™Ï+Ï_ÆUos…¾4t güS­¢ìPôHAçÓy¯±Ã‡9xÔµêÞ¹Yé»z™ÌLn²ƒ™ƒȽ:ct–(HóÁr:Õ!É9 ¼°S4¶›+03'Bùàp™+¦åe F£0¨pÔ:žÒ—ëmÖP{Ûfyz>Döš¥î34VlÑâû¸¤ô¶Œ8¯ 9¦YÚÿ®}IÄ4«ˆj-* èrùyR4¹Rè~0HªÂ|åöùËõ÷——–Èg|îD`|›” §5=cÔ;Òˆø  DÞUåÁê²À±:¢“û]ÓŸn6uÙV‰]Ù+V¨fs¬Ê þõ¦Ik 8Ë}’lv 3õùÔ$`öO¹2¾·ÚÆÍ&Ç1^†÷j›æL}Q›´¼/ò2NOž»>‹B¿ãÅÈ£åU ^8:ôÐt…ènšš¸ªê­‰àRôqØÛ3oã­¨§¾ÀéiÝÆY®0zÓ}ÏlÔp7Ùè]ü6 ‹ÝjÓœe‚Ç –§‘NY®Ð¬àô{%Ä©¶À ­' ˜à²“LRVÊâ‚娣‘·nÝÜÁ½9}L†3²œ„öˆãg¢ˆz¶ ²œ.17|ô‘âøzê^¶ê‘L*†/uÕ‚Ú¢vøhW4 •VRE)DÔk‘:} §Þ8"þët§¡wYÕ´qnŠ˜ö£3*$è=¿{Iå(½’É@“•pÒ`àtõ¤&¦8BšuŠ3’³ÎdŽÇAé9 ¹!Â0± „h‘žüü‹³Ha ´“¹Q¸¸×3àÍ`.´òÅÍ“¿>ù‹èÓHˆ¸ˆði†Á¿¼~ù5¡‚„®ãK×7üNÐHAÕ’¦DðLt]Dö±°F234+¤ŒÂô®ŸÿpafjÃ! ûÞä+ð<ÉÇh€?hÀŒOm¯cž,ß Vy3|{îc@«¨›BËÈʱtQcToWXŽß[4 „#ôû5ñ'e­0ŽÀ¤ù„b{fM´Ÿ0OÌà•úrμ.Æ¢šýÏýÏ›¶®6àï6?6ãÏñ^%(Ú;>ãðSz÷Wo^¿¹}~õv£·»Ñ’ÙÀ±c hs K\ÅYܧ}ã °™x««pX¡2¶öªPUÜ(êQP…ÆÔÙ!%É㺶!A mî¥Ú=pžeEÛ`£÷&ù#@hÇÇ~J:“ ßì«SžMuù-駆`ÜSÙ¿t: ¢-ŒÄ¬؇fê]éb¨‡cñ—éRGJÌG VISÇF}WºÌ¯”Ûá ‹„ÀÊBÙ«ªü}Ì´xêòT6aÀ¸uÚà£?ÒþÚ/¼3KR—*O¿¹£ÔmúÕôÚ–C$9œ}W‹Nº€ùTrˆ/t‘éõ =;~ ©CbÐÕuðüÇ­Y$ ÂóØ1g}š:C$'bÕßgEjòÀ¨rvUtÌèŠkJ±úÙÝ1ê»ÉÀ™hÊ<ìú<{ø' ¹4áKq.17xk7$·:öˆù(ßÓ»ÑLÏô%>ó.'ªJ}“Îôá•\cÛ_QõIcwWe¹‹¸ÑÄUjŸÔ¨Ú²Ic£°@¥£õTvÒÐÅ…ºøi| ÝÊAŒ‡XVð™:¾z}k‰¹œ _ú)¯Kª–`0ÉÝdz/'á‰ÕnN•êˤ%mÕ%—ùƒ!ÅEQ6ÔNbul™Ì’?ÙŽx…¬3W >ea¢1(_§Å†TN’Lñ£ÖÕÎÔš¹`<šÅßáÞ"ŠèæhR" Ç&efh(;ã1 î¢Y†«àK´1‹„þ7U„ˆà 9T£°„ð†ò.ÒÉx€T ‰6ïäÆ!Ýñ "ò<ý²'ïF ˜Â/À%¤·"üˆâ2®¯—’Òý*dô;€!¯EQÓ§¯¹#wv®Ï_›«gÌ^(°åÝÆéÞ'nhú¿ø)?>€\ON\°I~êìåqEî×b³œãü4zœÉžZ*8•¡:}ÖP=æ÷“1 ûd.ø2\èн×xX_)Åê-8àG>|à<˜uÄiPÀeÓ‡">d ]5kzb зÐ¥oþú« o×ÔÅ™ÄuàëŒèš‹³ŠÃAƒ‰ZW-mØÁr(œŒ05Ç®¹÷M©G> [ö+ZîÌsúͯwo®.­‚Ty¸‰êCë~p¸ïA>ˆåý]–¶F¿Jq°bµ‹Û¼A)<ý ¤^Ñ$†îwp Ûý9`'«ÔÌkðÃŽ…™c‹î³±E<âUpàÒm9Rcz„Çâû¾­Lå ‰åÎvŠø‹„EŸËí¡éÂ/-˜ªm»§æÁ”Þžc9?‚ô·7²õZhkZêxÃãK7n¶Òm×£Æ cBíNÈ„uü¼¦?¿„·²./´ffµfÍà)X<¹ä³ûá V¡3³å¡.©ö߯_3Ëõ@zˆUæÂÕ¥Ÿk&Ó¿G£N[O‡]ž˜Uã1¿'ÿäÎ=[yø8Ê1«é… ;g ÔG|5–ñ3©¿6Šf<É P¬\ø‚axRó ˆ-®5ˆ…Ž„Œ…ܼwoWø³»U–œ¬\G—ö<,Ö¦-þöAC#OâŒg@E™—ûLÕ¶lÞg¨ÍZBîÔWŸƒnßÿ+g^ endstream endobj 687 0 obj << /Length 3410 /Filter /FlateDecode >> stream xÚµZmã¶þ¾¿Â DÖ´(’¢t@Zì]rè¦w¹ëfƒ¤M‚@+ÓkálÉÕKöÜ_ß%K6}»-Ð/ERäp^ŸúõýÕò­Hgœ³T©hv¿žé”E3¦Œëxv¿šýDLÏœG*xSíöŶ(ç ¡U•+jÜ–M›míÆP㮟 ´¦^g¹™ÿvÿÝò­ŠÇ›FZ±0Mg!íXì«}[ÓÄd–²4Žbœ¶èç-xÊT¢höý¦_“æFœi®Ÿ[Q(–ÊaR9’Ì…TIg%6tð0_À˜ë}èŠíŠú³5̧uy×q ÆëçT4ˆÖ¬êAÞc×ÑÀ#{Øê¦áÄ Ð~°Áù¸ÎUÈÂ8–X¨3®ãVN{€ÁGEKϺ#[/vœŠ†©÷¨ëª6×>:Ò˜)þ!°2 ÚÕÚáFõM¡=@Ë!›¡ž‘BàknãŽYÑÛS¼±­Öëù¹ÒL…Ãáë·o¼z…ƒòºjZ\ŸÊ q?mŠ­#kOd¹Y+³Îºm‹^5Â`H½·4 ™aß›MV÷”å/½û剆H9MÈÏ"•ºc«ÝÀW¶E$^c àykêÍè.ÆåcW[EÕú‚Ãg…ASä]peºGjî*{è•UYGŸ =²‰SˆŠƒµ,¦DXÐRgûjª3Ò:l:J\Ç p-úCl÷<¶¼qÂby¢|H,ÑG¥Y¬ŠÆ’æäwF["XœLhCoå”|$×A2ól  Æ\A/(díá\g{Ç!S¢ŸŽN†Ö'ÿÎ{ø@/]s:L<ÇvèÍi Z]óØT°P>cR`éðœ›ÄH V’¤SÜXÔ´*ê}Oô€¢ÚçëYZ< ì$K< (˧¹;}D$TLaöi6U‡ø ÛÇÈ /Î’›¦ ~!M=] uTÒìé&ýéèyGÂB£uþ(Ì“sàµÐ!Møä°„J³ÝSpÜÃÚ_PîË?“ú8k°ð‰X5àüb¼—ûâ/cŽNSÜòÉû¼ ù_ó‚÷7óT÷ïn^Ó{qž ȉ#€r‚úæ Ncða™ ’²ÌÇ\agÞíLÙzˆø@ÏÆ)_¼A”TÛ¥ªÒ´ »·žÅ,Õ"!)Y çsï½3†øi4ëš¶¸Ÿk ‹»½ÿf¶ˆÏw‰ƒœk²‰¼° ÷íâ ‘ª™ÛíŸÅngêaÃI\"f&˜†”jšJM‚èU®d—$$»³UšÄQt!ŸÜêýùú*bbg>{€>[To¼DR£3V ξUòpDê1Hb´ômKOÀœO0 Ò6뵑ŒÒ¶Ãq.NèX8˜ç'žÄ+®HÃ8ï’–s¤' À#aÁh]uz¸ç"´çÀž]c”&âgn¡ RF´ÝÒ˜}«êO4f± ôš¬Þh”ØyN‡WÑŒ\üDÏÊášvzèÅ-¥:Øg<³mS9¡Ц“ä–€ ûHÀ§‡?¶/G4»ÉJ«Hˆí7ˆ°±e#ŽM‘ØSV-òR Ò‰ÈÂBûìÊmñ‰Xw ¯Žë…®¦Z·6ãÆŸ¬vöˤw]!Ál}ä.öìë• 4ē慀“Ùÿ¢Ÿ;³&ð%™o‹ºi¯ {3P©pG F4ÕÎõ=eVh÷øæG³2b:âW2õàÏŽ¦É;Ä<:¢;.·ýΖͶAY ‰ ”…ØM`+*”„ì>j8¨æ6mÚvÿj¹|zzbyU”C0‡¦„pÂ@[ÕËUE--›Ë n”ÃÙµJGþHy;ODÐÕh(Š˜÷¨& U¾¥Ö=Nª,´¬ÐʶóÞoÙ¢Ïgšu\s,´s²Ñ!‹(XÖµ,ËYùïåOŧbi7õÈRí8š¤äðdzÎ@¶6FdrÊ/„µZxìk3dX-â1\¾Ô³@ÌKÄÅ@bëb¾¡R,Nþ«ÚIåêg?åŠêl óT. LEàÿ§2Àã×@›~¤C˜ ž÷ˆ+åŒëô‹²ps¦¥X§#B˾j‰M‡ûäwpö¨}°Á¡«³]£"&ªï¢qçØ´ì“íj’ðÄ"B;|Fq–„òE †Cª31®EÛX!ŒH¥·æ{Gm‡~å´¬AÖ‚Ÿ¦£"ÓEtšêu8BœôHI&’Ïù1)’?f£Ÿs :]èÈPwY»y‚ÈÝ€_Ú-›n¿¯êvÙš|C> ½w³äqâb›v·õ¨ Gc•bÊë3Q·W¦gJvÓëû†”ÝU"+lLÛ—& WEìöž0ÓÛ×±(£àkáÔ² Ùj…|ÇæûŒ/±‹úàSŠ˜ÊÕÁí7][[ÜœþÙ¸)öDØÀxUn SæU×ë¿UÑ4]ÿIŸzû«±V ¬ÕÊ(ºP…2Öñ‰Ž£ßº¤ç:^Ç…õ?ˆ JÚí=¤¶ÐÁ‡¨ãgzàñé<;Ô-)Åãއ¾ûΔJFÚ ,nX³ñŠ…F>òû—Ê7òtµ‡ÌãUc8÷Ѿ _cÛLN˜>rµT}’w^[ä…°Eõ[>.ïò¡*V ìM±¨Z44Þ?û²"èÌ®_ЩֱNËO‰íÜ¥Õ>Ä!áÑwgŸ %öŽ'~@˜8 ¢(݉¼‰V!k ·3˦Î}©HÊÄ1¸¯ Ñm9›mÄÁ÷¶~• øúÑÆ÷p€Óa:¾X¬$[ê.Öô<“¾Ë—ú­Ç£6Ù ƒ? ,¶'ó0FAxåòEÚ I—àS—LëÚb—=ÐçÂÆ$¸]Ó¬ãaø¹‹‡ðé˜îIi6®¹# GZ™gέّÌú€Îªlh¯¯’ѽžóNÀ'%Õ…J½Ã]Nîã/ä5¸`} 6Ð×à*?_OîÅù=£@G‡ÊÍŠª­½g?»]x+HÁ †û¹«! ±aÇLn9›t”ãMôšÏP|‰Ë›ý~[8ž/ßß þøý. 9 àý¡û£¸5×Ýü©ÏÉE)yÅÓ µÔ*Y毽'úeW3©O5÷(ó—ÔôûPn•{,4€í/ñŒ¡§¾Ÿ0‘òK6ÏÃ0 ÞT{çöðXd¸ý‘*º[ëI² X‰n"ÀQÚ=ò‰ ñÿqdq8°`Е!¬Ýígá.Õ{5=ªuëÁŸŒ –’Åñ‰Fô9 Ø»½½–—.Ë"PŠôX)ËòÂs$É Sèç4 $ª©ÊÄcÑöDØ@Þ¹€‰“¬i_¤€ #-@bé/èKy‘øä¶DÊGaÃM /`SCxµ8¿Ì­¹#Ík¯ÒžF(2Qšmñð¡»­³’­ÃuòD “áÜú*Ë ˜8¢’ñš™Çp8 >ÙøE óc)ã­½·¹úöþê_W¸@8ã3á}’À+­(Ngùîê—ßÂ٠ƾ›˜{~²3w²¸Í&¶³®þ~õÿ=4‘Êq¥P»Âãík°'¿<ãôx^ëuá(Ìþ@ø§jÒ-xs¹ƒÒ߇¦n3úÞîk@äÝGy qW¼ HÐß&’‡Çû“Âþ…³sÖÙK'QIô%¾ñf‹#Îñt¦Xª5Uöc¶­0hL/x2Ó0+äVî6‡]@2ÏMû±,þ˜‹ÐVôèï"´é´’î"M¯ë¢-š ½¼©¶ÝnV*œbMèX¸-ðj"žÞD\¢$z9%o²mj]Ùµ#ÍÔŸ³5ã ùke¯’$qä$½þ˜Ý7 endstream endobj 695 0 obj << /Length 3777 /Filter /FlateDecode >> stream xÚµZIsÜ6¾ëWt¹rhUÔ‚ÛTù ËK4‘"¥”=•¤¦(’­fÜMvH¶eͯŸ·\ZìÄ™Þò½|q}püZêY"’P…³ëå,ÑBj=‹¼DÈFòÙ/ó_=þvýÏã×ñx&´ü™ÇSÞ›úPÅóO‡*š‡ _Ëyº^cCÍëüʲ]ÓUV´üº^òš-*e(_Ûee{ß6uÝ.Ì¿»zùã»ËËk1‘ûUݸVVBÅQ¿ðûõÑÖ^—7¸üÑã+K‹ÄWöòâ3eikŽÙ­ Z¥M¾Àf ?„ïù³…ô…2èÓŒù9ÌäUâÔÚîYôß:Ä­½H¨¨GŒÛj·)>?”ñB+€ ™L™»m`“ œÿ’*PdY'@(¾œ¿.›¶C¢=ÖXd»Þ«„© F›5å¶s)à Kâø¶èÄ›Gh &½þ/Ô»ÅÃe}hª~åïÎÞ^¾½~yöîøl[o»ã¬®º¦¼9f9«º¢Y¦Yá`„Ò‰e4eD^‚žuusûsdA¤æ× +ä€çéòÍ9ÔÔ¬+Ô·Û]ƒÁ Ž™xÂó¤%—ˆ|HŒËdG›ó[¼öQ\"\¸Ù•ëü1.·MæØüÁàÒ*gkÑ>y  {¬8è D¢ûcnÒcÍczDc¯œdœ.[ÞlA4lnŒgH+"ÀôãQ ~S¶ƒ–àíÍú'‡q<¿F¹Ÿ¼pP#…ÅcðÒˆ)ÂÕàÅž<”Â÷å—ìÎ×ÀŸ^Â#_½6?]âÀG»Qj Ð=¡½=)°éÅ!Ðס«%7„}Â'l J²GSqèÒ™÷[„â¦Þ6eÚë{]BtAóîÑãÃÁ7‡Lq·#´Í`ž­Kr¶yƯÒ×éGòÿcÚZóé)Žžñ+?ÏÖu[LÜ­=!) xUÜ1Ê„ÃN¡'žˆU´'s·¼a¦ßkGºûpHVù`_#ÙÈëÑk•³¦çŽe%ÂÁÝÚÀªVܤݗ­„tØ/öqëÄÓÐÔ0µƒ‡vi¶u€q(4¸ó±Ã0š§»®†«Ì`§{ÚôÇ;BhT&mÚ˜Y¤Ø«´º¥˜ 'Ööƒ²µ_ܹØz" óIFʸ§šÕMX‹…Ü\Ï–,%£òܹcW¼Î¹».ûãùÆ Ãh^B@ÓÞ2Á̱ÇQ£] °4EK½ÅÏ £#O`£åM–õzmâWD)DôŸŽ(O‰û€ö’§—oÏÎ_½{~›eN½ðâ1€9E—ûþ{Wt,• Äû:Í› œrðêúàÔ!o&ÁÃV‘šéÄ~¬gÙæà—ß¼Y/„ŸÄ³;šº™®øèÖ³«ƒ¼À¬rzÖ@ @}\IƵ.^}8?ùéÍóÌ 8~¢¿Ì½'ÉW&$aòw¯ ~^ôýŸ?;æ‡)¡9Éó‰=`„LöÒüh{LgKsºYé…"´ëüìÅÕsG,“õ;$ã r²úÄu.ü×QšƒpIX7È dNîxý§®AÉ`—K· ¬ tkMà…€"±×$ÐhWÈåÜî£à™öBãà—o¡QWdÛøûðéwÜE^iÊxþç„&•öž…¶úRxb¯#`U` -¬ì¶°kÖ7åeͰ™,¿0s|ônœ«Y>â“}¦‹Ú°YŠB˜&¬pÏÓø´sÍ#Æõu68Èu¼º-Q²‹²Ê «Ð2A¢ãÜý]¢·Ö¶<‰Å(›Àsq£,X"9¿5 7©L@Ñ×(·ΤGèp/E^,Xi‹…åÖs :n]1áµ ]}ÀæiÆ]^ñÀ…–&pî+Z#kÇncxX7]Ñ'xiׇ°Äë!ÎîÁq¨q°[1À¼oœ<ƒÐ}5g¬ºÒ';{WäÿøJ.B úŸÓ×ç'o®ž?[,«z˜¡1sY|Î [À¤œ±Ý.¶x µÙ>sÔ,iÅþ¦5Gd¾î—|°Âò&Í>¶ë´]=s¡Ðñ^¶þ5Ó²ù€§£F_ =ÜÒ%ÀËIVO&‡àˆû|ìŽÊŽƒÚÊgAã`v ,acÇáÚ¥”"ÒÒÊ@ê±V’LBrÆGO§c‘túëR~%ÂÉ}ùàQ’8dd0{`{´DÙSkˆF:,D|é ÝŒïQ}¾+×P°è8Û ×c YVþØ¡+ZÍ÷®Ðå¤W¿7{ñU+Î4_¤Û­-ÿó§$|C¸ÙB ðgp¦Ø¡'ûWSQ ŸL~ér)ñön!mÅDûAOº6¤è@õx/U]2õE2lýg‚!Úâ3à¹=i~™Ãx¤‚~öâîè»–GÈ)ÁóÅùÉ·|°q~òMù¿9ý‘Çz?íÁO@gÇg£aƒË³Ÿeº[w“ùYJÙìxó”ñ®ï]±l}ÓMŸ(©]{»+¸‰a2>C½¸¡:´ÏÙ¤vŸ¹ÛÞƒ7Þ´(K%±ìïbköOF²øKN_!˜YC¶Ï*o¹ÃLU!wéO ¤l¯86Êà±›®Á³æFÖ ù€w#ÿvH™3%V‘ñ”¾ÒÝ;%Ï¿ÂÔ«ZA0ÔÀ†ûz€‹#Z¨pE…¹R(/ÂÜl½Ë©™:AN$Yßï*ýÔW$øŸO./D’K$0¹‡#tùs›¸§‘{pïȰpx}ŒÊÜ­Jΰ±vî“’øJõJ‚m£<Áü §zH©À£QĈ#&)W’•ÿ]Ê?Û©÷y0Í_³pÔà´$š¿¨vÁð¿.JYr|Ë,¥†°$–Àñg=¼® ÍÏË2±Žñ<¡iË endstream endobj 601 0 obj << /Type /ObjStm /N 100 /First 877 /Length 2470 /Filter /FlateDecode >> stream xÚÍZMo9½ëWð²Àä`6Y,É…1@&A&v0AâÅ~9ØrÇÑÆV’ 'ûë÷U«e[V$·%m’ƒÝlªH‹ÅW¯ÈŽEŒ3É›MŠ&£\Œ'29/lb)†œqμC…ðž ã]¡Nâ‚I!âMNúŒÆ;Ï(úsÞˆwÆÖ‚GÈ'ã™´ƒ±Øøˆ¦âÑ…Ð( úÅÏì´]²Öæ@ÚO1aa6, ü±ÀúÂb8i+F«$°täìÐ †çÑ*:°$‚.jÿˆ±ŠZ–Ž–AÁÃÔÂÎDÒžc0‘1²D,pTc41y(åb«sDNS+bqЪ 5E*¢û¢Ãé:ŠVêBjÚŸu1’‹t“0¸‘$]Fí;•…ñrBK˜79­]“ÏmKøiÁ4†`"“ÚeLpÓLð·଺h˜kÖV?g"í° Ðj_ j/üœY5…g]2ÉkŠ^Õ£rkJq¦8µ,THgÙÖs6¥õQ8cQS{¦ìîá§¥õ{xÌŽÙbs”L:9ü”C8µs‡‡ƒê¥yQáÌ[Sýó_ÿÆl,æk¯/.> ~ýõÛRE¥|±žó¸dôÑìÄÇ%ƒ›¸$y¶.ÉfÉ–ö Öå~¢B–öúªÏÌá¡©^ÁÑ)ÚF¯2ʱ+ÃW\iþ¢Î­5Á¦KÒ•ƒ6çE¼`ý»—¬›tÑûÁÏÛCƒêͤ¾«g潩޼|eªãúËÌÜ*wüõªÆ'çõ zEëñlŠ­Ò*9¨ÞÖÓæz2¬µ*Í«þ¨ÏF'¿5_Ì{\A/ú€aN&h‹ ™Ë=tõ¾ÅTÕE~þäî»ç|~TjÛªw×§³öýo£ñçAõ[39«'íÐîCõº:ª^¼÷í‹*;Ä,™U HÁø5Çh {¸`S,{Þ®Å;SýÞ7 ùËôútж£flÉ–gjµ½¨BAlP¼ Î2 EÑÑ êÓwÕ^i Â@ÔÂ9¸x t‚£u>ï¢Ê·ÆFl4þvl5` ,'¶€ÂQ,˜Ô ÝlÚÉTÏÛªçíØÕ»êïoôï—O³ÙÕô¯Uu5iþƒŽ§vØŒÆÍÄ6“s8ïhüº¾¸ªnFŸGÕõ´ž ›ñÇÑùõ¤~¶?+&ëÄÈ‹HÕš1¶Éë ù‰f†(ñx<—¥6çª$âƒEí!‰ðl]á’À›€K’sp;¿ûa htÛ ÐhÐhk@ëÀUÛü9‡tåkó§ïžðQ|añÞ uH{@¯¾@gÅf¥›¤ÁS7]¶Ih­‹Þ÷ÒhýþÇ3ÜZ©âB¡äà<ù‰ ÑøCpW§@€ß þìôÜÜÜØá×ó›Ñàs¹7\‰.[PWÃ„à…¸"|¬Ú²øï¿h!g`AT[YBÀfÅ@BÙ‰õÂhßEÛ y‰5±ƒeÀp¸@‘’3—{*vð"ö^G2Húlq\ÀŠÔ õa;WºÀΚ›ñEsrVŽÆ'“¯ÕÑUs5{¶µºL°p²E拳N“;°#vñgSVÙ¸¦“Dq6%ßã]É\úi¶©˜$iÃ?P] ²¥6ú¯A²×›f†ÑjëÝ.ÎGÞQð†!ÁY8ŸÏ õeÒ(N½8 ­0 «Qî!ÉË Ã=.I˜o==Òî#é0¶d.6ƒ®nìò¾Çe͹G`–9Ï2͹O€–r½¥¼ñ~F¸. Ü–&qX¡Iì·¥IÝÄôthþ,hNŒÒ+• Ȫ çöT€ÀÁø…K[âïåÉ纴£‹zZÍ·DÕÖÖ_êíMI˜«PI`ßz––¬.úmiÇf]æïHëöwy*È*i¾ râ°) ’<¢5!wlæ9L}0eIjcž³")Ø­‘KÉu8µ*ÉÉfñ=$ξqœ´*‰-øé3wRª“ú̈aÒS¯,ë>­ƒŸmáCh>Äm ÜeS±Ëžb—5Å.kŠÒ=;˜‰ÌÈn0£Œ—+aHHùc{þm#m3ãzv1:ï]îmRLVZ& RÇê0Îz½ÕC¥ò#²(’Ò­>¸¡Gþ›ô9šÕ—–ÒNÙ2ƒ¬q]™.œ™B¯—ŒÙoµ`—£ñùM»^{[¬‚mŸôÊ¥M<øœž÷{oKþûçSˆ’Üê|K6hsÈúV+h`l/a–’¨„ãÒ“×j3±Pµn²Û“Áª]À.P§³“‹‹z2¯=8¯g#ÔU;'WûM¯ö˜mjoaRùq“ÐØ ¾Oœ]’ÚgW$#«#sI$uXî’ô9°ôÔ£=—x\Ò ð:>2zÇÞS´î¡™žzk³>°ö!ì{¹µI²~ç)Ä6á7v‡š© é;Ôìæ¨qgþ {=¼Ôä ‘^ ð.(N‡›I‘©„ÇØy×7ªƒÞÉzoƒô€8Òc]K,?²õPPô£„ý¢‰½s/ÎÂëN—79Z½¢‹ûÞß!v5ìífg—çÃa‡wÇ/ÿ8øýÅ‹¿»C¾Nâà¦>=»Ðœçöjw$ç¨Wr†<ØödŒ£Ÿ{vO?f&×zLˆX;¤Î-Qj„„´qMFw/î¯$u $Ül–¤Z¸/Š·e³äâB½Ø’rŸÌfÝ•ÑómóMh¾æK˜¿ïS–œVp:ÇmqºSL?™?;|.‹ú.}ʼOœ ¾ ßö´WÛ©õ(=ßí OyRØãÅÜ&¬øD¹¯&¼Ë¡,YqXï’B¹»€ÏfáŸõB@‘NO¦¼³ym@I[°Öÿ³¶œZ¿ÜZ¨‘Í=ýÛAÝ Éž\ÏìÉÐŽÿ[ýC?øóÍñÑ÷”lq%ä/)Ò­ PHoÒv¹çÉìÓM3ù¬Ÿ7\VÓë««f2«fõðÓºì´òâœþ‹öÓìòâÿÏÒ’—¤6òÿI á’šSO›%ï¾›Š ¿8jWS¯ KP¯Ÿ&æò¤c÷%Ü_*îG—}G‡W¢C ý¢C™tÿ?}AÌ_ endstream endobj 701 0 obj << /Length 4174 /Filter /FlateDecode >> stream xÚ¥ZKsÜ6¾ûWè**Šxäa²×N´+ÇÞH©ÕV6jÈѰÌ!'$G²ö×o?>f¨H©T©4@@÷×àÝÍ›óñI$‘ŒNnÖ'6 ä‰ “@X¨g'¿.®.¾œÆjqq*ãÅûž.e.véêTÚÅ×S-Òû¼EªX¤ØåhE™Þ•9“‹Š·i…žxˆ«‚jûoܘm×wû®¨«68]j..×ÜÖmòÓßnþqþQD#N%°ÇÉIÈl^îê]ÇÝŒuSa ­ï´Í¿q—ñ’E˜8ò]þ ÝsÞ2¯«z»+Ê<¯'\´{Ú„ ×Rn|ÄE¥¼N˜éd©dXmN–B8£IºMÚ.•5´6(èÅ»«‹k&¥UƤÃÇÆ²¸kÒ¦À-Ç.i“3={ªÒm±JËò‰[Ê¢úŠB;ì®ëÝrçvße¾ßh@Ë7¡ï¶>‹zÏÜZ6~PTmÓÀ÷¸¾pº°Ñ©j‘°œÄ('†äFgФCXxÝæÜ‹YxâJ–ï`'ï*Ë«ñ…äÇ¢,¹tÇÍ\©YäÐ4EŸøNþ¥&±A"úÓþtqÛÅÍÕÅ»c¹Ð60CÏ·Ž‘¢BiH»‚ä)nú–%—]›@+9Ý›› Ê“Òñb•V\èׂ•´_K]dt<ÔƒU˰ï]ÄPÇ#.ª{®8ùÁq*÷-ÉÉÐø|ºšk󚥀k«å+4+zÍ«àˆ±SÕ‚óWF.7ˆ—× Ï /·ÅâÙZ·¹nW#äK¸]å1á0°Ç]Q¥0€5‡ h¬pÎû=i 4@ͤ÷-WX¤°_VâØÅOuGü íUT ¤Ò¹A¿¢m÷n¤¬æ£scU¨*®ºsœ6üí66Àô*_¹nŸ@7¨ð¾½æâ-ÿŒ%jNË`}ǧ&dGv,Ø16jÿLð¢|£Z† c5ÿkþ}ÂC¨÷\!p«÷eÆÕ²ðƒµŽ¾L{˜­Åi=}ã »]éŠ PŶø_îbÙÅÉ.±çë¡êˆ5T)’( T¬ök@ d¬,ð$<è¼¥¢Z´y×Bµ\c=‚íŽä‘¾]ˆŠO3ê è¼~?—ËÇ¢Û,ïÊ´ýÛÛåºI·ùcÝ|=]iùꪸ{Ë׳L-¿NúÒ‚ü¸“ùŽUEA$”gÂÁ‘A%‡h„‹Ž>+ÔÅŽL صUSì:nLK¤vyÛµL|Üä°i£ûqœ‘lZ¦“.ù‰eÆõnŸÚ.ߺ±7á V~Wž’ÄЧkÇÙï€>à4:è‚Eé Ñz ða•¥ ®hñþûï¹zSöE«nº†pZŒ ‚¤eµE{Ì}£õ †ä0Vxp‡6ÿË P·-[ $á9sé‡÷ïyðœÉ«:Qt`‚{ÕÍœöWù#ãJ¾ Æ_Â,|¾æß[×îúý»¨2R„Çu]Ä0“ Ô´“›Õ„HèŠD˜¼ä£hi¦> *5`ŒWjô˜Ùì‘]–¬GœË" Z•s[,-aÖ lÉC¶Ðs2¼1ðËÖM Õ[Œ&¼2ˆ,ètîvÞ…„:A+ô9€ ÌûcY%þŠS³2ðâ$ÐVì;¶¸"öµ ”¹µUäLÁ›täºÎø¥Õ†¹&ÂÝ‚íDõÒ½=âÚtÁHéãÄc)ÚDºƒ (±(s¹·=X©×}'ÅÜeäžÀü¸Kéà 9rèPKé-¥ûÚù3Øa2ÖJ)À^üÕþèÂÆ SÏú0ò̹- ÎàÆ/—nŠå6í ˆ_ºM8–O uO<ó:ÃŒ4@ þ‰Œ¹#x©ht„0á⊌-:XÒ·Éq H[1²Q;À‚’SÜ3„;•@$ïtïbÝÑÙ'r´„E÷8ì¹QlªWeH¦Ÿ„y›ÑŠDRéì™xb2¶÷ÄØNºiðà14øg8çyɉ ñåH³ø'” âP½Æ €!Õ¢?à ú;ÿPcÀ'廜¿õ˜Ö±ó;N×6g|lǬŽXKm\ò@ ^9•Ô»ßLÿ`‚ kþ-Ýî({¨cÎ. •ƒ^ã‚^ Üžñ/ÐÙªÁ¥Z)Àz“sR§n:ZŒ”°/É2’20D°sE!yrØîÙ'Ç®£leð“>)v¼é¾Üòê|ß6çà6žß¯VçEGËsdKð)‹JˆsÈ@œÿÍœQv@©>JpH-C¥É·£lªë±nêíà6Ψ‹ÄÄS¯.W—ïfàO‹ƒ÷“÷)T_ÇvºäÏÕ ¯Vb=$ï°–«úÚÓQáßz•±a8ÃÆýÎ÷Ÿå¼9ØÒ?°¹:ˆ‡ÃvÞ«¦ÇU‰yA2»>õw<]¤À­BK˜ÓyÎu<ž6‚x9‰F~X¿*@äⲦX\ª¢?¿r<Ä VÓàóOøZk ”ÃÁ`%+²êmÇåûœ rˆ`°’7MÝøçŒ{r[{øÆ J'jSÆÕ©©¤±*¾ö€!ð¤‘äC1ëd©V½t¹—$ú(ºÇßlžÉ~¨øå!ÕQdNÜò¹Ÿ`<„Â?hd“½ÌçYƒñ±ƒ·Ž.uðô‡Û›‘²ãÕñЛ¼™[D IÜ#ú³cÂèA;Š9K€i0ã¬Ê}9³O Õ±ˆ˜“…¯šåQɹdœ©itž 0´_Û˜jÅ !\e[±CÞ­æ‚äð8<Ö.< æà8I(6£`8ÅXøÿq-åšãægÐ1‰Ñ#Éž0ƒ´8ì™(Iºù›ÄÛ—¤ò jFWÊ%ªàwO÷+Ê<ÃYl¡ã—’a¡´Ç*G©ú¹§ Í_ÊZÁÐ#ð2ÎݯªË=ÈOæ¶0Tôªì¬lˆBXk'3øˆ‰ÖÙj%îÞ(.°h;®ú‡–‘™FaCZpgÕÄ6Pš ?%8•æ[ ¥ÜÜêEë #²p9]H³l—v6ƒ-Ä +N›š|<˜ÃѵÎÑ­} ýªMHúMEw”“04úí®Ãõσ¤€]n¬ÿ`pz”ì¹§BɱÈÊ_JÉßjÍ+xKʾ˜VQ|¤Ã›»‡krðV1«iŒ¤ÀÒûÑ,& ,¨ÛŶ5ÉžÄç €h[b›Ô \púعH³’ Àõ[¶ÉËK€‡c«á€×³, ‹<8pTàW¼Ôx%}+üâBöš°.~š²)òÁñ·™ÐóÈŠ.…„)–wêE‰ m>¹,!¦€²Ã›§ÙMÈÄ4ýrqó㌜-ûSçØê¡hêÊÇYü\aœ,a i”ð9a üòÓå-—µ€vôÙé͘ǖ— Ô¼pW¼â9ƒ"cÇ^b!0„PjÆ6ëÀ„ѱ> M¢YT>Zˆ©Ì¤Þ¥­Kk· T%§7«¼É}Æœ¬†ý†AìW³|Ù!}:ð¥”狦z¿ìçžÍpƒÑÇ6Ü8~‘e*æIÐ8Wu—·/&¯¯»´éø,LïCiô0„ 6Pg³ê£ƒD¼0CÙK"ë‰Aï¼ÊøÂIŽ”A©1Þåh¸å̹2þn:°¸aÏ}·©ù†GÎß.IÔ‚$úó\NBö·!ÂD˪9õù,-݃;,˜N %²‹Îá4Ò)¸G¶K›Öõ@lŠUÞŽÓ¦vógô ‡GöùWF–´º§L† ‡—»Z’\Ú?|¢ý½"Âw/ËÊývö6ÜLæJE¡³ ÂÛ °_iߘÎc$|&Û1Cy vß÷ÓB%›ßƒðá‰GÖxÔ¿¢9ýD÷ú¡s U¸ áïÛ÷ž+°ÈWÛv&%øèbHµÈò´dU˜\u•isŸ;׺_©Ò££Â–Ú Ò‹0ôØ•i‡FÎu¡!ç\Ž0`ä%?NõRO"!,³’{ÑÎ)5@Öu½Ä‘E¨&<àÊ.~–a§\fÆìð°ÄC­Å׎å>ãÝ´x‰å¾ 9uCýx}Å…OÆriô>ælÖ?‡¸5Jþô½}p³i‡—_ ‰D>sËDú‹%,¢ŒËÌ\åß)Koý¨yÃOåð6{Ï»*QDʾf1z¼w ‡nëòÁ¿êÁ–ƒk:8z4Ü>f¹EM Ç1~­.Hå>±¿v’EbéΑ§²Ôá᳕Ð?P™óZe`“ÑkæÊ_oSXݱê ÇÞZ¤µy©…õyX˜×ý­|Ï •=ž `!Íü 9µ¯Ý7Õ©{ˆÉ]ÊUÕÃN¨dš9Û1?NðÑr×ÒPæ˜À¥PYuôâ´;é_¬H¹ùfS4Ù Ìv£ÏAYXñ¥–%à9à3vï9„þ:âÿ›©% endstream endobj 708 0 obj << /Length 3884 /Filter /FlateDecode >> stream xÚ­ZY“Û6~÷¯P¥¶*šŠÅ!ðJUÆW<»¾ÖžT²•äCB3\S¤BRϿ߾ÀC¢íIÕ¾HƇî¯|rõèü…IW©—FA´ºÚ®âÔ V±Ÿz*†z±ú}x‰m” ýõÕY­Ûæp]Ùî¶9Ûè`Ýôe}söçÕ?Ï_$“qüÕF¥^˜„<ÈÕ­…Þ*^—u×gU•õeSs˾…‚dÛâÐJ¯Âvy[^S»-¸-ãjs?ŸðÇõå×mç&8 bîÐTÓ~ÿå¶í³’æNÖÙ®9ÔØ§ç‡Í–ÿíç=Úöe'ï;y{·”}Ö½†@´xí©Pñâm½³ /¡gšõ=ÉwÀŠ^g¸llµuîä±-ª•ZAA ï]÷ª±¿.{~«ìøñmys[Ýs¹µy³ÛÙº@¥a§þ6ëOf4ëmSU¤È;®Óš°?Œ©Ö}VŸ©u‘µ?íÙÂú`ù´ÿ*š@ž èJ].÷;?E‰ö½( ]§?|eÚ®‡uj Z©qã5 WsSo»^J´ Úã ]ãºî¹Üêšôˆ•®Ùáê,×ìçl·Ël¶„![7&·=ýá.4G.^¿{å‘&`G¼$Ös}üJJÇŽ£ž;¶šVÇõªt+" Á?n /ðжMÛ‰€SlØÂ)©jxyf}+˜Œ ë=Ü܀¬¨±µ;[ÜŸ%fíñFÌÎ=ŸW$¼„wŒ¹O·,ô½@[ÒîË©öKYhwÈsÛuÛC%’^ú%”Â(vý¾8K’õÕ«‹'‹':&n³îÎüéJ6V^¤“ùž¼§Õ/¯Ç÷•ö9[ XŒñÕºÜâ¿?ž¬eQßs‡ÛscV ê°Õmõ>ðAÆòDYÑÁhí÷¿ÖõeUÉpÜ‚F¬Kו×eç*÷ÜÏõ(ûÀˆŒŒ—šp¾z'³N€\ý‘Kb®Î_@·Q!Qì¥þ°Á;ûùTg€”hzh+Ë‚¥rv,R¢i›(PëËÚMHðHåYgQ>ÚZ›F'2‡,&HÔ·¬ˆ‚NÚu*ëek(u 3ÔÚ"Ô”gãzßѶ üy¦|aty‘zˆg#÷ o™1Æ‹‡=›õgBðž¥ÀÉýg¢ÈX`YÜ„ ‹¬'6ºØGMÖ‚;¸]¸,¯‰ZŽaÎ…º¤åøø–½mÃïølˆez·÷S´CmÉc`²»¡3ÊÀPà}f£nh°7à.Ìn:~ú‡úÖ»ñà¬’È Á@ˆÊ7´“›}™/lNài_ÀOu‡RÞž‘ëPk™TÌßfõÑò¦Æ“/Ý«Á6ä4{Y,_ãô ŸðtÛö^ÜŠN¼$ æZ>tS’S[²â Ͼùš)ŸávnË¿y*Ð(ßfe%®©oœ3#ËÂ-§³ÁYN”þ[Œ »‡Yð˜UyÝf¬Ÿc‹¯RØã‡|“xfÄÃÐL-Jýõ¨”°A¬Î\.7±Ã’7® £Àÿ‘daßö^ ŒG–Îr¥©]a놶®[FDAei:µlÕ´†òhNdñÝEãcb/Tƒá~,¶‡¶õˆÁ õX0¢©§Oáò¨Äi:% pn‚‹ó]:H‰ÊbKžÕde° O 3?tPs1`‘R`âH> b‰]”1ZxzD(A"wlñémÖq£œE[ËyETùzfÁ;+K:ìe †ÿG,{à´÷uÿ›@19ñÀÁÄ*a…É&rXÓ`¨|¬GF Õ;¤ "ÈW‰ÿÈÕ-h‹ðTàÙŽ> K?hG‚“Á åh7¥íxÙ 9¼#2Æ”¬},û³ek ÌÔ6Ãí¸üجw.TŒ9†Œ%ÎÁÂîAÍ¥{ìÏChçú¡" .”l®eü'Æ„2»~[Ë,$æâœF^Ã-ûìf&N4"Ótó7v¼'ŲÒQèô¹ÚWÏ^¼ºøùÃÂv‰ ‡3úé,Œd×%?â`þ—·< =m’Ú‚0 &ìŒíé6Ë—¤7>ˆ>Ž›}´[  ¶ œI:qÕ~gEîÓ<{r|F'ÖD'PVG…¼i!z–V4½…SP¡È싊PIèE~ú ìoLy”g{ãp¿ÑQÄ;è鄸ä%¢Ä*cÖ(­³Äkb~g"'°‡÷ÁgUé@ȉ0Þ sªv´_Áà›_=Ã.ž_=úëžj¥À×$à=Ràº1PX½Êw~ÿÓ_ðè§ÓduG]w+X¡Æ-¬VýûÑÌ1Í&Ó´0¦¡Šç¼|òþâý&Ž ¥ñÿeâ$ð|ð`³‰ß]\½<ݰÀxa°š6‘n¢àìŒ~ˆ©éÃæ9òôÝÝ\Ä):úliäËýdˆ™Û0t®©scP|9_àè&“‘¿‘ÿ_©M üE‰´z[R>yÉ‹MÓ].eE½c>¤BÏŽ’}=uØ70s €Ç¦§óoBð>›Í­­ö§²$à³’hb±L  ~íºÁ¢P š·¦Ì¹òôíå›ÍÛ÷X Ö465ﳂ+4òUyDçÿ˜T¦Ø£µ€'—n”\…ÿ²æ,Ÿô¾ÄJ½ÄÛAA‰2³³|Û÷ûîÇóó}ÛühkçåMYo@ˆÖkÚ›ó§ÐðrQঠ˜ï£¸ÿ‰nßéRX.‹íæ˜7»369ÓKdð~ù¡ëlá’ûfîÆ˜Sé!KŸÊ‡¥Á·\-büT:Òѯ@°šŒI߀M˜pø…M…޵+) ŽVtæ°8³€‹ Äz¢'¶Þ=rñÐòäÕÅ.á©Tës2_P}uñG»À¾Oÿ%sUàý 9y+Ió‡'Z>ü˜&5:­ Ñ»¾½/qn¸)ã^¼§P Ó\õ\á€t‚Äï±|žRËtåVþ¥óìûªI«Èºîd÷ÚN8˜sU(²lۉ;Wcr4½‡þØvËɧ¹ä–äÑ”óç.µðz¤²uŸ!ì+ ÖÞ Fì)-½”3ᤞä}ý`î}Ȫ’‡ÛË-&¾P⿟9MFjÆ$6?°Ã—þÝÌɵò’ËÎTüôÁtu2&…xyi¬Ž^1K V`•¬N… †Ò3FÉ{qª§²Ÿ÷U™—}EiqñÊŽª¦_JþRZ<<¦_réy]eÝ©ï…Óop00”¯WÚEŸ.$zˆ=ˆ=?žWcÌú¥ÚÙ78—¢€÷¦©ˆˆ)öÎO\а²Ÿ¾Û¼úÇË·¯ŸŸcrŸŸVÛ8¦UK5ŸV²*ß-Ç?X^‘Ä’Ô³œ"édŒŠð>AÚF÷ëbðØ1B Èk ÈéîÓ…ò¨àSPWMÆ”ÚÅœ]”­CtE©‹áÃìF6dLSÐû L N¾Ü!GyRcõ)+“ÏÄÈÊ×=cÒz{¿äCâÂ"ÿ?=ùå’ÓÍGG#ñR5á|ËÃÌ|>”»\å˜×ÑÔŽEBÁ ÀÊÖ_Iƒ+pÿ©ÉYeû,ÿ¸õPž6ã…ôugcjÍUÃOØFF'É_-— ã Z®»1zÙ]šiw•«’Ø Ž9°;k²x3Zsö÷Bü—BÔ´á–÷…}CgÆCîèÿ‚©’ þ"„“RÊ)â3–Xi endstream endobj 717 0 obj << /Length 3508 /Filter /FlateDecode >> stream xÚ­ZmoÔHþž_q'#˜ŽûÅo+åd7 Z¤ÝrÆÎŒ=ØBþýUuuÛmCrh?Àô[ú¥ºªž§ªýêúàøŒ«Ã„%¡¯oŸR‡‘Ÿ0AKvø‡÷§Ï££¿®ÿ}|»#¡$}rUlŠ2mÊû£Xz/ŽW^q{´PQâ݉ثwX‰½uz$"ï6åÔ’Ò¨m“/ëͶ(óŒÚËâ¦I›{ê]ÖþI—UQ­h@·Î©óÍÕ[jÙ¦KœýËQzé*oõFw0SZÑàv{´À],‹ÛûaB8&œiÁ%ã§³el­«q+2Þ]Ñ­±$íøã39È%–LñÐ æ´.ª7myZW·ÅŠ­÷Å ÆÃÀ_çi–7´ˆ]•9-e-š° Nì,‹Ž_¬ÛrQTKØÿÌí †%¿¿á ]Ñi• ÇÓ-eQ}Ѧç9\H±( ÇR¢)Zø‹Ä·Û…ÒüvCÅDÌl.}¯QÄ8çã½²£EWû²JËzUïZÔ<…š§üÀÛµs‹rŸ3)ädÕôÇBŠ}aÿ33+e<3éìQ2˜ “±ìnk¼r)½›]QfZÁ±–®@ÝÛ+ ÍÛFf‚ //.ßÒˆ¶.¿™kÒ=Ö€À"íddé 2à…àŒ þdK¿ÖZæ­­NÂ,kmHYÞ0ÇÁo×_ðÚüCb’LúÜ|¬eºÜüñ—˜A'“I|x§‡nK´*—‡Wÿ9x….* <åQz¦fÒ»ºx‡´:©/lkv" ˜ïÇÃ6D±Œ`²$¢mh7ƒÛhvµæw›6iYæ%u£“Ôã‡K…Vc?ÐþÞx©êâ’ÚÝ–šê¦cd<”,Ž­NÑN^·*€[¹Mwe†!B4é¢ÅöУßÀ«êŽò*½Ñëcë êѽQšÐ¾’,H"« çÛzÛí+Œˆ˜Œ”ô/³$øptiGÜ[íšœÚÚš¼M°hG¿F}­Ý=ш‘ °d„¥×ï>Ú´pü$˜ÈgIÄÇÆVtdë´%»¹?޼<¯¨ÚäV¾°ÓVçž1µnv¶”Sá¶.Ë1ç®·ZsL:#6 žt @Ľ2­Mp[Ù/3.ñ\ 4püò×_?Ÿž½}ùúêdq[oójD ;Îê8ýôiÒõ·¹„sÔa_!ÎFg±r‡*FMµt5þö–æ´Ë÷™òÕ#Ú%qPuÆTp~})°àUž6ÔHN1"§õK½­&+Z³›?ýÀoóœz¯è‹º¢ÁÉ¡›¿@ËóU®mÕ9ÖˆOúÁNc.ÇêG»T ¡ª.¡‚€NŽ@à ÎXÃ…°bN¬âÀè¦3¤­9ô>º†,c+ž7à°–åÐ –Vnò¯; CÕÒ,+PZién²€áÚhZ‚P@p¢±s"-…5 4}¥¼3„p‚BáåßÓͶÌ_PM»Iøî*½ŠÅZÅ Eßü>¬bÂY ‚ÇU,ŒùDŤ°v/¼-ÞWïÇ¡Á oKÚ µÙñXáô™¿$È\¦]ž1Ɉ 1áT û™ëåÀÜzÛûç›÷¿Ïr `i~$‡« 8ù£Ú8:PÈ Î?Q¡½o»|C…é Õu˜‹ó/¨>˜;þ-øµÒøIPŒ‘›T–_îfzj*é8¸±Æž<[|m7Û“Úz³þÈøÏ ú|©àÿªÏ—¬­Ÿí‹câEÑiÐÂJªq »Vûs,êC`an¬.j3á%Š%EðÀ!ð“UÈwè¹kúÇ"£Uµzï6øÿ jÆëm£LyÛÖMKxgzbº7ª¡ã-q´Á*¹n¹^û[ÑÔÕ&ï=9t|ÓVShtžs@¡k>ï/.?¿ûxñùú͇ß^þz5ãb¦‚Þ$vYtZ¹lŠ'{0¶ ÚïÖÈÝè+¹†]ZÎÒ_LÜO’ŸC»@e⊠E»"øý1Ú…Qø´·ÄÐ7ç†BvP…PÿýŠh£ïÀT˜ƒ Â\ÐÜ‹âÐi`ΞÇOÀ­Ãlé:\¨!Êdê·P'„Ã… ™pN [%ÐÀòu0ÂWˆ¡NB,N î®µìÆdè³H†ûH'Tt+ZÕ9¨`®ß l¸00G£*ëÈ…b¾³Á1â\(\œK\œSÜà\ââ\2¥RÐB8—üH¹âbù¸rEÁT¹`^£72ÙG+Ý:L~Ì|žü42%Æ%™ïœ \.å"É"E{þR ²÷·…Òëï†lk@àÊŠTý,\Y öôíäÙKX×ÿ-`K»ïº ·‰lf)Ù¢Üvë&O³g3×Á›µb¨L¼“0 „wúïÄ!ÒO J*œ(ÐI=\fœ­€ö‹—WTt =vÜüÕàž Ý“´îI$ãƒ÷„窭#LȉŽLà51W-á&÷°}šgtÆJ»y,Ú<NAyº–:LTš<”`—JL=Öf·Ù¶¦¡¸gJä¾ëòÁk²{1G¬dœ°ˆ'³ÌÊ]Î*®>Ü1yÂüqúd(üĬÒÒ‚¯¹´ªšú§h:‘ås3ð0•å³J³ÇRæÄ  ÍJwÖÁmø~4M-ÎX£ŒƒÈôgÌQ_ïµ+csTŠâì™ä¤¡…r8fÈb»SD4ï§Àܧtµ+–»¹v8É@¡x¼%ÊŠC!«é¯[3Éé6t”Q:ÿ®Ä^ºœNìrCÏf9šH¥QôˆÓD¹s @ÔgÏ?}š1‡B>ÐÅ™ô2¸€!:gQ@ª¸Ë8Uü@~W‘½†œE37ÎƇٴ¾?œ‹„…²ËŽ—úasEû„…ƒnöš×·!£S±æ|:Jýr{¼Ìd ³‚òéóç&/&Hù$Ö<µ¼»2©)ÃRºÆÆ‰K\A+‘ ñ‘½°Y³^w»‚8hiRÏ6¶—ž5èžó<šër¤14âdõüùB1°GÓtz²Z.ݸ¥“Õ-íÝ´?â!#Ìú™÷ƒ‘øP”wT0"ñ¬$t‡ñ_(“Ø…*œÅ2(kufL&V3ç×|– 1’MæÍP+Îb%lcLt<Þ“§9{Ò4Œý®îr£ˆ2ð_ª‘!'"çíhDL$hô„ŽŠÁvLæ‚æÝ‘‚«CÐär©fŽ45 :»¯ÒM±œySB@Zý#¢>)À!õS‘ó¤0ñ5 Ü^¬§B‚L›OÛ¹;èƒèýÈ3´2!ñq¦ÉAñÍA #Èœ³Ê1I IÉו´>‚Z&"³3ôlÎä×!ÐÅ4i5Sqè}@7r}}N5äyvÕâºØäÔr­Æøl Àá›á‰>õù»ªíŸôHFà Հm±ð{ãζ*ìk3÷*j`Vuz_–x@·á’Ógàzü  ôaˆy™×¢0`rx½\|mº®8AeÚ¿Ô £êÓßÏF4H ™LØÍ¬#Xõë|/OgÊçŽUIÆ ¾v]ãe™§­YÚ<>$¸ÎõÏ—ÉWy•7`*ºrúþüÝâý²ÎË­yÈLWvÎnŽìòxäÖ]·m9>"ù_@™–-ë¢Z€Ç÷Ák³ºYëÇvXáø®øRƒ—m¨»Ç¼.¾f¾ß¢nµ3ϳý²Îù{ÚVÊImM‚I´[›"mÌ) )ÎÒBê ¨˜BÍ»áÆg @¹Ìè¼a]ϳYŒ(‚ðÿ¦³¯î-£³¯Šš‚Ìúé0azBv+î}ùè•£h‰×8ñ#¾9ò˜ÒO»NÍsDì>w› };HtÀüåºHKŽŠÖ],±«òž<³Ï«>zñ ]ÒÄžs‡•ó=bÏ +‡_m)¾&b-¥Ÿ¶·¤òx÷Júã™Éǹ3NBìy "Æ:¯AYÑ¢R.ŒìæB¢hx=¾¶ˆ¢½C›¬ ²šDÜÓ§óL¦ŸG)ãàèmc: Êk\sS½}¬i6|ÝPè|p~'¿FŒeýÔ¾ $ášØ‘^ŸfÑ}9qSø„ÐQù±v&?;ÒçK&PÃ/&*…L¥y{ä>øñhF³€Ë=‹TýG ¸dJ ›“ðX—¼jÒ õÞ5E×å¦ÇŽ8¥>t¥X5át­îa©à¨SÔçT5i¶é¢3Œúge\\oVSœæ;1h+õ[æÓj¯=Ï—»Ž¾9Àze1ÏZ3´¦žþ=+]º†Ý©Qè]gzhæ€x¶à» ÞòŸ’Ñk5:™x‘ u» \Gÿ…¦›Mö?ò–»¦É‡w‡xòÉõ;ÑŒW ’ÞÊÓ]W#¢Ì€ ~/ÓS’ŒX!}éÑÇ#XÐ¹Èævx4ìgÞ«åÈ';“Ü3Ã@xýÉ ¹Óƒ£ZÓŽ$‰%”±÷;^¾éÃ/ ãþ‹Bji²EO`3jl‰>&±/¬à3^[¹ÓG‚NûÑø>’Øø¢$§S¸ònvÝÜ…ŒAnP¬ÖÎÉ Ú¢ëæ‹Í •“w-TB"üò)þ¶P1‹ìB؈äŽ\°Q endstream endobj 724 0 obj << /Length 3386 /Filter /FlateDecode >> stream xÚ½ZYsÛF~÷¯à›©’8¸’Õƒ­7NÙq6QÕzËöD E”A@ÆaIûë·{ºq‘%=s4¦gz¾>ÁçON_D‹XÄ ›…ôŒ^¸½XȆÒÅ»åËÍÑÊDryw¤¢eÙRg›`ïó‘ —–F®«ò2·»šzyV|ÌŠ«É›õ^EzYVMu$—Ic º4wŽo¹>ZÉey´‚ÕS^þ&k¶Ôj¶öèÃÅo§/d0ÚºŠbaB½ðxÓ×åuCdãj%duDyvY%Õ‘ùrL§Eì#º ×ÉáŠ~(¼¸§LŠI+#•Œ^¬¤–v³¸ó•C'”‰­°-×åî:O²¢¦é䎎k¨¿ËêÚ i뻾Ê$9¿²©ÊµÎ‰ð½ç{V\‰èFÑÀ¼n`—I•R¯±Èº±ôK^•üZwëx*ozœz[¶9.ãËúÚíÇ®³ÍŽ„Ì¦hC~È‹g¶¦qºÑŽôðd _ËN´çoß¾zùü¯Ã0ÜiñŸ`ià’ÅÑÊ—fyáG¬Þ{Ò¼”º$bÜÌ6iºÍ”5ï|²a¸–ÊžÐí*Š 6Sqd¸€ÖË Éµq »¸£Ñ­Í¯7mN¦¤§Ã#Nh Îà6,µIn´ÐU•ìh”¥­Ï„ ‚Û3#”²Ü hà|×m#úÛ „Š}Ú.«!ÑÙÛŸPoCÆïF^Ȭ±¼ÒO`’ÄíÊ%*3Ÿ»,ˆˆô §‘°@cÑÞòAïj@ó»Ã´,ØÙeW[ÇŒº…µ)o†…¶5)w¶Ù’†až‘rÍ`ª“›6qº.‹MvÕVp_ùËóó³l½¦ö‹0<Ë@ O½} s×k¶=fŒÔ8¡ßC°˜a HÑ`Ÿ¦ˆaHŸ=]½:mëêðvzµ^¯ð™é(XU6\B¿hoOµPBÓ^Vyݤëãã§3›Y…¾P&N` 1Ô‡‡Šƒ­~Óç7I“¹ë ¼eæžr˜K‡lÚ•Nòh’±ëÄžíœzae?µYE=š¤ñá¾’œæ@èu–ÚÊqC%UÂÑᕃáèÞÛ­æ Ñhãˆù =»;¥6ŽLùìåÛ"¸!À¸ÑÊŸ-Ò=Ø”y^"Ý #MãAР~ˆÿ×îÙŸgO“Šoõm`žRó÷×gO‹Ýxø Ž/úüìémÎ_}êY"Üabs0À‡‰óñÄán”2à2ÍwÓÑL•àÅ«gÿBxÓûr—ܦI“üäÝêG³ˆ´ðõe0̈́勿Ÿ%±cú©jšì,½+fþ˜]Œõv€†GzjÎÑÛ?Ë[Er àzÀÄŸL¬18´Ç×Îp³•¯Ë¼ÔgÓùК'‡6x­Ú6{ªa{øœUe±£6SŒ½ñl˜¥E¤{q¾yþÛ/çH÷ä—‹'Ÿž ï÷raxÅÄ ß „†¯wOÞ}ð)L‚-€¡hqãHw ¹Æø._üõäßOžc€;á!¢ð¢Ð-%;­|ý柿ŠÀªL¿·îðÍ^ã÷ÈgË+mz_6h”“3>¯Ù£×JÍ 5%=Ù»óàl ,•ÞÃ0M‘Ù„i=z¤ö²½Â¦d·áÓØêÀT¬! U-ºwœÉÉE£±<¼yåIQ¿Õʈ‘q;Ø.ÜšR~G-8ÆV¾ˆU0±n[ëüVïQÕÔ½ÉòœüJ[Û=R>+6á„~rUwßk‹>Ø©kZ`Eï<»·©=Ö^/©øÅ’³( änª¬il1çà2ÖÍù@Yˆú8yp0‡¹ êŠw»„¼œ‹Dm‡k!0ýó§®ëY^—pվ/˜Ãa¢Ã|Q â8|8/3뮘ò“b l%iš¡”1’𥷬ZU6_:Ãfi¼N ðý0sGý5¶·vÿXó1:Ä:£ Ò¹ww¢-³åëœ3ö¨ëœ^×j…QúÊ匫5°ý˜ÛÏ6?“‡— ˆ¡ï!»Xø‹-0,Ü6É1±ÀNn“”ÇQnøLèQgWE†šŠWD6Ù s“Ò£ QŒšÜxflô1HËT/[~ c÷’T:}–ƒ§‹ØrzuÅ–à ì¢wAâÑñB¡ ¸P4`Ì!Œ6“ŒEp˜R‚Ç„´D#ðªM²æÑ c®Ú€½ß_ýA gÀáùn :NÀ [Szàs¿ñÔ=¢· *µ× ÂÙÏŒòwÉ‹GW£=ÓvKƒ+{KV'Éõzî±Ó¥N)¿¦ÄGSr䀫2‚‘Ø…½øîõuž­-B k/\’–{îr+æE&hàEÙÙ¨´à¢ƒÑº.DvUŸ»šPJb˜V8hb4X._Ä‹Ao{”¸J,{<8¢û®ü^âËÕ‘MÒEäÄ¢s;(šµCþ‘sZ8‡q½T7U»nZ—©¸EP:Ø@ˆ±¸[ªÌ?wœkÈvl‹ìSkkÈYŒö–¿[¦¹‚m¯‘¯ó†Qg©A:†{"i›mYqX5-¥¹ B±ÎÛÔ¦£ÈÍŒË6.I¹†p¬5J~H6޾«Î`Nmm3x7yu=M˜veÍï‚g¬j²E Š±Ù ÙÉiT½¶)+Êë´×¹VO³zÝÖLTg·4?AE·B9ÃDJø¡z*üõAÁ ­W$;K5ÙÖ[>{ýÇ+êSØœ“8o™'ÅU›\Y"x§?Pc²Ù¾îcDËIÄAð 9ŠÀÆùññ ¡æü„Fú’gRðÌo|霌qÔÒc”´bw_xr‰(„ÌùÙk@9žÏQÕôLè¡»Ú /}T[Ä±’4ph†;SÉeÆîˆI3gÂ{=t•2ŸðCMgø|Ȱ!º±<´µYEM¸×l—ý¯°oº22Mg<˜P·¾c¼ßv QÑÎ,+ŠË,Ù/гYJlwöËßá¥?eyC±MžÎs°ÞxXŽ×\g—Àrð,oNyÞŽQË7Åšé‰4~hQœûPñÄ}À8ø‚3ÉXœMi,ã9„óÉ—u1™fSNf8ؤÎò»yÌÖÎù ÷GÚá)fc'yÑÆͬË>•„ð:eEUö ¡û`@)¦óI5]Ó¸5ƒu6JÔG%ß<©®øÕî‹ÎýŽà?tKÕq6þЂF N–>*@ÛùhW^çB<%_а yV.Èo&_°øç.—Ý÷n(Vç ^j‡Ôá#¸B¢^ºb %3ï(ä¶gNÛ—;~%«HÙÄê/J.À¸²3Â|éíœjÝ’„Áwþò(¨¡ ¢"KE|vו¤·€ä)Ô¥Â@ ´ DpY÷–ÉôˆÌ_ö¸Ô?ˆ"€á8:§%BÁBBV¦‰Êð2“œR‹Hx- å„Y8âåóGaºEÎ,e A‚~ zÔJfæCÏþBh’fÂÖ‡°àk¶=fV+ÒcfÇ3œ\ë«8©yNæÇsÒ _)5Ë’O˜ÿ^¦Ò€]ÔrÿÞÌPmPa,4BréÈ0M-1w·Z¨à‘—kƒIó+©¶’þa+™™Jd(Ø”Ñ{Où37ã­è?]X!Ì}ðzü‘;Ÿ<|È×tà*\ö—7j„”z$;Œ;ˆìƒÔ«Aú{•áæ÷jâßÁ\ÇÉõ÷2Ÿ1­„˜ó3 ø 02Á¤BSPî©Ùˆ¡é€pÎÓLQø==üϰñ œ[J%£Øß¾ þþÕ£Ô<ØSsóšû³;‹£Ò?Ϭàà _ ác> stream xÚ¥]“Û4ð½¿"À‹7–üÙf`†Î”†‡ã©-3J¢\DÛØòÝ¥üyvµ+'N|w-2;ç X-5¥Z•ÚË­™ÄEv#@÷œQ°ê@Ð%5ØrÌêÒ:Ž ŸÖ;k›W”¹þ†ì§ë—/ïïïCÙ®AîEd2b¨pO¡ÍÄ2x=Ïeз c»¯[ÐdÇ\á±T”typ7d\î¼({_óˆu špI½3+cOyD'Ã-{ÿ@Ç%4—(¸e$vyG9½`íGÿM3еÔ&qœúªÍ\ÕBaK8—[À1š2w¥‹‡l¦ä‡›Î¶Ê@ ¢Àóy*—ípéʱYæB¦Á=s;çÕ3v3‘ÄõÖ"/)%¶-l2vÅ‚'Š`hk‹êìnpšë¶yP—„Æ•´gȨ2¨+M4õ–¨Ç°&&ÞªÝnA”4䫿˜DqXÄñy³¡±Êô¶†b-qFuG`U[Â0”BºÚ x¢EÑö¶7ÍÜjº9íÈ<ãâ`ïU.»³[1¦!¾ÙÒÑ©ëžåµúL'U¶Zm´Ùª½) d¥ËÀ‘¹d­›YÎM(éŠ<Ú”0gV]_ZÚ¼•ïŸrœëò´ÕàFw\iÔŠ$å+¬úï\üi‹í.Æ¢þ¡!ºX+&8Ö%l†!Ä\™¾¢ˆB‘¦ÏL_ Oœ<÷Hädj½MÛº,i²¸˜á‘ÇÀ–yùØdžjFD€\òW0; ›À\( Â&Èg5­=FÄì0ÎÂÈ=~J¾Â4t+-è+ÝŽŠu$w¯>0a×·—Ü sÃÀ4h”Ý}1ÙëæÑ‰ð#ÓkO!ÒPÂãåT“^—ª=·ôNA‚qÞ*ì\Œ`˜óªî«Mwõ¸fk RÔQ»uÝ—Ìm¥O»G½õ’'ðʽÕõUì©^¸S¬ÜCDë÷ßÑ1ûoyŸ\?M.þ¹ü,òsêøS©'ÂÙ5zm¶‡³pÖ«¿ô*o·}µv™0bo*xÅ|<ÒóA,ÃBˆ‘ÂÞÇ_Õæ-¶ñÍØ«~+©ãŒŽÈ¶…÷Éb×Äü¨ìäˆìB~èFË0N£‘¦Â¾X{xu‰MÛ*Æ[9é @Á[xΧV=!Û‹þóÌoâü@±Yv¼ü¯í,<Î]ïu§×N¾ }•{½òi{ý4º£OÖÄ[>‰}Á<~L—)ó±]ž÷Yž¨—*9ì§ØÁçFeÏ}Y—ýc·1]Sªƒwâ”Æ(âúy6òpâë˱ìŸnTæ'Ï ™Iø¼©ð¥/áÓî]$㩯,,¤êϤ3ÙË8L—Ãgû—øgC¸ Ý‘|þ”G4®8¢/_ … ó,zþ²<>@‹°ÞÖ᱃³I*‚|ÆîàI:%1Ãøóž¼¨5äiEðu&Š0ÏÙóÂùøÅO7/þFŸÆ endstream endobj 745 0 obj << /Length 2574 /Filter /FlateDecode >> stream xÚµYÝÛ6ß¿ÂÄÖŒHQ$u‡; ®hŠÈ![ô¡- ­¥u‘%W’»Ùÿþf8C}xå8{—{±EŠä|p>~3úæîæõ·n•ŠÔ(³º{XÙT¨•R!-ŒóÕ/ë_£$*ë®ÏªªÈ7[­åº¬éÿ}±ëˆJhX*ipØ(·>u=î7[óÍý¾Øüv÷ýëo9¡/]"\¯""þîÍÝw´jʤJD,‡5MK'¾ùñÝ|vCÿ¿FR×é Ì‹ÍÖ·¾Û33mqÈʺ¬?а*뢣ÇîLÛu±ÛliïÃÓŒïÕVI)¤4«­Œ…!<3Ƕ¹¯ŠÃfÃfÿ‰1|^r¡µ".pv¶i—ñ®ºA%>Ò`P!º¦úßá}ÐKøyâw}Öö^ 9e8U®y}Õdù°¤\Oƒ× êªâ¯ W¡èB*–ø/›m¢’uv8V^/Ñ\!ÿ ×‡&/*zÜw‘•¿ãz³[Ú$f“KsÓ…sã8c”Ç%ÇzýXVMŠ…ÁL±°ìÔ¡š< ¸è‰•j+¬ øöØûçŒÄ‘0© ‹²:'¤o8ˆÈ}púGyÙ« yzÂK.rRÃVšX$±škã ®ëq»2eGOG^ƒ6\ãý-L¤ŠmC9 b-/>0-?x,»=ŸÖÐ÷±<Ò/†Ÿ¢ Àû3â¾91àÈSÑ>d;or¸÷1øTÏÇïØô fí>lïöÍ©ÊiW[d9 ¯EªõÌ:†P„JKHÁ»¦Þm½|…)éí%WKPÐ["ª×ïA%šp`øR÷ååßÓÊâÜe‰ªšBŒÊ:¢À¸$‡Ãðâ$\Ä£Œ<{0I´?ÏRV‹$ÑW$RVÄ6 ‹Ø}t:Y±Õ^-D"J­m ˆíR&Ñú§Ž‚GšŒ¨øwzýÐ6èa.H»æp@yH_0AvÑme*Ç÷ù I¼.T¢ƒw] NL¯¼MÂÿà´4d³Æ=äñÍ?–`m ®ìŒH•¹¦6x”*,ÊËÌ­z¢ƒIf$H>S(³—(/F|éÖßqH'nåšønÑêm\¶´Å' Ñ…Dc„‹ÝÜ×3T¼á0=M7†“ÌBä6NÈhBÔÕsA¥×Ü4HŽyÚQ®13û›žXÀ CRéàLèZŽÖçÓàÛ:Ù¸æDƒ½Cá^q&›g)Ì&~ºfÆò¬g`z ì‚N–@†:No¾€Wtz Ânà‘35<@hê‹1ú[‹:µ³(µkZ¸U¶å:"Óü–´ˆb÷ù[JE4šã`>ôlêìPp¨ê8¨ƒóÝ.tV(5hãð„~³H6‰Dœ†-ÁS8qHˆõ\Ö™øŠÆµPzXÃ>´„@@}p\œÌ=â±-ñb| !–£Ìd €ƒ§)ÐÄšÌ †Ýðîi c¯^ŽŒŸ_ê£ùŸ›¨”Uv¦½ßéAs³ñI™ôz¢rÒŒñ©ëÛòÞ£ t2ùxŠ4HLJäF;°Ûœ™[ŠRaäé¼î‹®}xê›§EùÓRŒ™¥H*`;.Žçêÿ-‘¸Šƒàƒä(ˆOAuøì«QˆÅ BîyÑÒ°y˜ïŽ.AÄÙ©Ìç×ît(™Yv3ÒÏ.œr£³\Ò‚6`¡ƒ¯‘ž‰±;AD ŒÄa⌚… Ê7M‹Îf‡<#™qœ¢lkÔy®0ë¤j*/&:›˜)Ûž"ÑózÛ.iÚ~wbÒ¾ü‡öTS%E¬-Vw Ò‹L^ÄÃ}Ygƒä”fd9kah¤ 3MŽ{Nq«c ŒÍ­sªuDic|ó\g#êƒ% #N ë&/Çeˆs-€|³ì4H°*»~V4TCÍèñ¯·…7®ƒhe‹(ÖÝgÀTZ”uy=C¹©Ä?š?}*ªÃ±g )õY ,ƒµ…hâ< æx‡R5gUØ’ÿAæƒËgÜ”>žd™T_‹²Ü†l¶Xøn$(€ [ P'6S¦¹YÐÆ–$•¥/UIÁWQ•¨GˆIvP‡ZâÈÅ®A×\0ÈœÐÙäÅ ˆŽ}ÐZÖÌöïÿgµø £iCÑ\ôBÅTÖˆG7­I=Y¨¸'J‹/(MAQ$Ý˪«eè’((Ó®‘|ulËÚS¹ùçÝÍ7F£•€á„s’¾¯v‡›_~‹V9¼ü~…Í­ýÒà œÐCÉjõþæ_7ß`·oÆŽ‚ØÉÔ¥âxVç>' Æ/T’~ÂZÁz;'œ7;HÊuÏw…:x*ºWK¶#µV‚õüWÆùj)À(1Vü—”p¬Î|£+ú~‚É0³O%5C9˜Ö<€_ŽÙí4¿€¹öE›Mœ8ÄmuÖv8¶'°æà(PPجæõ¢&€R¥ú"3ŒÐ9¡¨ÂùVñÿ` 2•àŽ‚l-³Ò£^¼¢¿ ¾e·H“¯Á†‚°¹36@¥¡m©_-àlÃùV”OwšƒÞ¤LáîëP"Áh 20È|¨’Ž. &Ʀ À”|½é o§bSºùÊ]SUR|¨ƒ¡Bx<ý!ŠÅ.ÒR"UF 7V2þêÅ¢µrWCLcȉ´‚(§¾Á躃púD,úN‹u¡[…µ2dò9Îý¢.\ù2vÑSó/ë³¾šoÝŸ@±‡…#°óñ<“L‰z0¸¤/%Ø8½çÚPUN‡™ÂöÊÛzËiËRB¨ËáÉ·Ì$·Ì`ÜïÛæô_î¼9@»Þ «±id!éù}CÌÆOÖ7Ä`:£Yî†Ý.!¢æjr©eaS©¸elœ€ýÊy{…nÈ‚JJ(°¨-‡’5Sþð[Ô†‰å”µ“æ,%…‡ÐÚ°Ô€¿±5¼©²úÃ)ûÀ[ªòã„(6$oé‘DYú6{ÆOtK_:°‡ÅOI­-iÆþ‹Lø`x ä?] üÁZ2uSÑ’ï[° ¡31×í!ëªi£ß·;ãtý󾨉γÏÈťެÖÂêôEÔG'b|-Q¡Š¨æêÚBêö~¢Úéׇ8×û½‡º´c‡6NõÄBœÿÆié'Ž&÷ƒá ¾Êò¼ÄëÍ*zã¿Ä —ŽFèRþNå°ž®¸Š#E9yf"xŸÌ}âœf/Û3SúrðŠn&nÎAº÷›(Z¿¿¨aPäÖÜx×”†ø’¼¬]Jš;m‰€î3Æã| º;ü—š»ô1ȨÏ4¥–4¾aeŽ;U”ÂN…Æ)TøÞ¢’€uþ^'ù< endstream endobj 761 0 obj << /Length 2761 /Filter /FlateDecode >> stream xÚÝZK“ÛÆ¾ëWðÈ--ǘ0@R9X‰˕ĮҦrˆs€È!6Ш]ù×§{ºñâÎjIi¥¸r!óèééîùú¾ºyñÕ·Ò,2‘%*YÜlR&"JÔÂF™º6‹/Ф½úÏÍ÷_}›N¦bK/"šòî*N–ySäoKwµÒÚ,ß^­”]ÖÇjÓÒÚÙ>+Z½’VH}þ6ëºj»&/ª+•.;ÜHûÒq£ÅJ‘˜t±RRH%i¡W«8Š–¯«¢+ò’V¶]ÞtEµ#†ÄpOû!Ï è¦ñœî<϶9Å˼<º–Þ·uCî–åvhŠ=̦íåT5J h1ÕûЮ‘ŒC *@%”N/VÁ…ÇÙ£4eWÊÂ5<í§(Žêª|OoûõX4nC 9=î@ÞìiÔ«ŒêCWÔ’«Ý°ÚljÞ¾éšãº;6îùtìmæèÏJæèøõ–ø®êê7×Ô|~°±¹”¾Ï×õÛ"¯¦‹&Ãs³ò>Å_Œïï\Û>Îößò]“W»aÂöX­Qgχí!oÚ¢Cþß÷Ò¯är}µ’Ë[ 3sžÉ<0<‘¹=Cæ_†çïÎy\ædŽ3v PEof¢_•˜¯Ê7„å1÷óg|̮ѷW©^2YB^©„Eyh!cÙ£Üçý@J/]yG7h´ŒÁ|çÍrW¼Cñ8^s „Ÿ¡>BH$ÓL$Þÿ„‘X˜¬bßL ©5¯‹‰È,@ Þ{p{±Þ…É -Þ>Ôc*Lš,&sÖõ~à}ÛÔ{¦œLÖÄV¤ÉÛ¯[ ++´Øî1íÔÞTf…§Lz;Ûà~€« 2ÿÙ‘±lçWò: Ë4i6pG,²)Ï!}h‘Žçº‘H@–Oœ[‚ai{¹«úk“o 7µšÖ†ëR£l”Í —‡ H2l¦Ú„D%t¤~’2‰ˆ¥¹XRÄUdx‰õ¨àÚë`l"Edöv!öe”=ƒôÓ"ˆ…ý„\° ºtÁ×!3ÍFçÛÉg”RÈP¦p‡4 ü&’c…› (“HÄ à&6>? fê ÂAAЬâT¤f" v“Y {vmb¦ØÍú±J¨íÅÂv£La’ |è8ëã/¼¹H+¥Ôò%“šŠ —\ s`¯ðc@L”)Ñyÿš¦y[¬¬È²”úЇbQ"•ƒþ$ƒ÷_(“ÀÄ,Íz†UÔU §º*ºÒBK{†®Ôº²3Uí<°nâ)=aiæúŸóv‚R,ä۸̂'Ü¢»- øV¹Ð3†¼£Ž1oÂîbK½9=~=æm±ú‡»ëÁqåK3b Äœg·uëxRW3•á©qì²ÑÎQ§¿ÃØhÀ!ï»qMA1]ïAÛñXàŽRÏ–i ‰nL¦v¹)ö®j‰?Ì‘<L³{ß‘7¼ÞÃñîÖã1™œ'nNÖC„ÖϯKçSNhûXÍwavàœÁL·®DI¦ªñ§PÖBJÄé0¾Œ|; [•MÁ² |§æ±õª³xFʰÝõ„órW7Ew»§Ùw·^E¸cׯò Û®ð:õ®ÉÇí½*‘©ºì#>$4lÀ†°ß¨xùzˆ] „ÅJ=¼®úi3 Ýæ>i” Ze²>–cÊ#ÑâÛ;L®\gØ]ÓeÿÒ›³v§ 0IÝ9&އÄgN²öBYçeÉÕÖÁMಔ¶}%Hö¾JÎ D2†Èå>§CLäÖ•®1Ë¿8ZëªÍ.ôÕà§›é|>TŽ´Çæ åègÐ`Ï®ß9/ÛznfÂeÎxÔ+P»fI’´EIs[—G/t]V2M!–ém‚½AÊ»‚¥Fýõ‹Æ¬Øzö°g(ÓøWHÀ“ñ&a¼±K˜jе· x+ø™Óã­7£ôU÷ôŠñÈýÙˆ€˜µn Ê3\2Dv'»WuU•Ëξ3-2y‚õp!.Ús:iÍxmzïnóŽZŒ!ØÜ¸¶ØU>‘¶}éŒ×„Ê4ºjASÍ=5$kƒÕ= ´˜ý²ÿë¶(]H `lIlŸ–B” ¢ZûÏš©hÃõ±]±sˆ ^ŽO`£ƒŒú7<Ñ Èh‹‚Äwò3 ÀBzDÁ1´|z;¸§eT{€`‘"[Ã)0áPºŽç\!èìs~EÕáBg&ÂËúõpS«w5~ "‘k¶¹·@œ„µ2ZU´!xèŽà{^¢à-WSH`Ú=ëñVâq›w°Uá›wŒuÏ]‚ž¯<DÐ1ÅÑàˆ™ÀÙÒBPf´ˆ"ù´qM )•s˜˜|>©%ÔÄv0¸àÈPæ´üY/x£Á Tæ¤\º¾Ôê{|41£8/âùž®ðc7‚»»‘†7{kàvŒkÏ=ê†4`¡(Kj¡>¨E7c‹Þ ö¡ñºÃ¬[1=<²Ãóãú¾h¡¨qRàÆ®œ÷? D Ιòä‹#~bàÈ)Q":©¢¿r[‚ÚŒ¿‡q›æ„SH‚#r?‚@ʬ$™ybõ„•ºù…Þêcw²×ÆuyQ¶<¼F[‡ü5¿œ˜cû~òYª.‹!¦×ãw÷ùþP²…¦'~ Âß [[£›&s¸j׌í¼`¬Ï(ÏÊ!uë±büÅêCþ]ü†òvÈSNjGÂJ´6Èàt6)¤xuX¸S\îHúNàܦ'} œ– ,&$)¥Jªû‡:Ï´ #«èLæœEÈ<”^"’TO ½ l6+k>²“~j§SŽ/P÷Yâù,§šï¤¾ØN:(¿$;`È2Vq iU:ó'Þ3þ ™ñ¦—P ÿJ-YÜ‚8ù_òuª?3%ô’ÊËAÉšÈÿhšk¢!už[Hý|÷A=Ç}0ϿӅ÷aúI¿%¥ C¶‘Nˆ» » {(ü©˜Áz¾N…îm›’†OþwËü;…C'ÏðáìãêူøÍ ‘Ô ‚Î/Êà–DÊËMì‘Ëo.7¡g <¢›º˜Ô'¸v}Îéìïðp!qõ­;õ\º  $øªLب÷»öC;f©úTG£`3;cü±­ä§zšó·údWó¹Neyˆs%T¯¬É'd9ó´™Ìð½ì¯þЉ8×dŒÐ½T>cyñÍÍ‹ÿN¼ endstream endobj 777 0 obj << /Length 4615 /Filter /FlateDecode >> stream xÚÕ\K“Û8’¾ûW(6ö@G[4ñ"€‰˜Cwo;Úóð¶+b'bz´D•¸–D5Iµ]»~3_‚JU®òtï¥ @¾>$’õÝÍ‹×o̦6çùâf³°2eR.tfS¦¡f½øGò_/HÊ—K?Å®­]éP–k,ɤó5ë²+›}uð]»méÚ,Û¶*®¶ÞÌZÿ\Ü6Åá¶zÉèóÏ›?½~£yjµ0HW2•ùB¤9SŽ–»^c²M*%[,G½Ò—Keer3Ÿ&б9V]U‡§º™‘õ×?¿ÃiK®uj¤Z,™H™bnôŸ3•IøÃ–XÒX‚×2›T­û]—?gLh‹à±hÍŒ‰Öinå"sCnÎW¥R«B3ÎC¤F÷C|Ž 1šÂ‘É´H¾‰ ÅTšiúÞÆÆb™}=êQô¸1²ËÝšF¼¼‰L”§äsÌñŸ3®b’aLOtqðüpl†Â ›ð@²I­ Œ¾ÃDnày$7ÄîWP` åê%7ÉöP­ŠÝî5æ•§Zލá 6Y‰@Os.ï&/žG*¡'k>á™pÂqkÉRiýDÏ'’©ŠG}ÎÅlÔ{)e–rУ% ®­{ã]dn–¥ŠÁ*9¨¿pÝö¤‘Ùb©Sk««"Ì„eý‘ÅD§Œ O­±sá™m€aÜm€œÌ7áªHË£Nø*À×ÜN{!J¦ZE‰23šô˜¦gùfc`‚%Á5jÆ'üSþJA8’G*_e‘T|èð'ð»>­¨ž'…kÞ«Žì4”/¬†¡·áêå^ˆ K“%Eõ‡åj¾¤žN¢kÓ€à:éÜ#™|êà„Tòß%XŒ_±£¯G7é^!gJ¯'4/GóT‰^–ßëcau–êÞÄ­œ=&Í•žú­¢ýˆî͇g‚Ã3c/m¼—µÎ–âX†õóaVõ¡íšÂ³²u•Õa]‰©%”\S0’K™±¤òó5å/§ª)× :yfÀ{ã®Zß ‰>ß$™™Tqym“X:ôAjý&ÙTçÒo’klïöHࢷÞU+ MD@¦ é6G>CaغXëă@‡*†X.S…ºÏMÊŒ¼*¾<&¾£t&¿ @>&¯9›Q§¯ïlih€Sœ÷ÎfâD€½@Ø{©äȉÌ|Ü=Mïþ ´L¶s$fïu>öšó‘0c`Æå3yýLŒF õúÿì}ÀÉ€U`4³ Hõ C(ØX8\(Â9”´×Þòs±?îüñ©?ìÊ}èB`ª©(Wõ¾Œé6À<Š‹/sJSÔk¸Zp ôˆ‘8Óà*¼ ËC%è¥Ö³º<¡NF8' (\€Ö‹ûdÅ6cœ¾9ÊûóTë vüâ¡H¯øâ¡Ì½#=ϰó©ò47bXÌà¿M~™&͸pa9z†qXtÿ&“1ñU½àDnó‰×‹é&çp2ÏŸl!Ðú ½ÞE˜ÿû£é 6*î”2À\}Szvš©D±LMÝÛ³Èû²˜ýîX,"{òñîÿkù‘'uAîä¹Ó_žj~Çú7á±ø=òøë¥¿”ƒgr'¯Àpê98õ¯ _ò‡ÀþXøÂ øÊÀç‡vЕ,££Æô7L= ‡Fþ˜Îç/= óðÒÙ.)™jûu¹¾”X§ðŠÎÂwü´- ðXåÃ>6Oðö¶i;_ëâõPr!ê±iêýä%5ŠC;ÅÇ­BÏg!t¨7ŠäfÌǢƴ´åª•£ÖªYȋ콧å~(æ(ÄÛÛNDè¸Ó {ÔèB}1šewÓѺ.TSþB^uT±œês¬§kQ›4eëãþý¢]Üï†øaë7uSúþž†Ýngƒ¬üea?i¸BòýjOJ½ :‡´„¨.ívXÒx³ûH/·bÈöøßQ¶6œZ˜÷-ãƒÅÀ†ï¿ù†ªzðu¯Ü/í<·’Þ@-£„ªyƒû\7À»)K¾¯‘ήô¯¸54­ÛU waž¶tEº_¥º4Òclwƒ3;áÃ×!~ ’Qùt5±Òð¢èCöÿþöÝßÞÝüÇÛŸ^ÓµÛk¿¯mÄEq“ÙߌÀ$ezqÕ+×¶Í4)ê‹n^üò•<[°˜…”3³ÀÛ;¦Õbµñf‹54ÂâRaÍâuÝ/Z¼?Ý-Þ¿øÏßaºÓd>0:©€ ñ¶ÔjïaVÇcdˆoz3ó*B{žfCªÉ%ÒsM“ç ]3Ê%™’»›ãâ*Ýæ ÝÂà­g [bölÔ„îͺñY €8ó~Æòû-&0MNm‰ÉlÙª ÙlF'…Þ)Uv¾–¬'¦*:Ÿ¿¦ÈUŒìóvù _,€í¸mŠ}¨-:,ÉÁMÉí-£g=¿ãžÚ¨{/ºgŠ!ë€94 XB'hŸ]©ü\®N]AëÇg4mez›Æ$„Á =+hˆói³Ôr6Í4Ãa=`ɆK4xhÊ#°Ã§¸«xõ/Trƒ5wÇq:ìXŠo;ŸA¥¦êÊ0£7ëZ\ÎdeºêÀa9UADZ÷ä©íÙCýj¸7ëÔ¡h[÷9^ŸÁ²sÝ(õÅ9ÑÆ¿XGØ êé F ù ÞâˆEÔLÃɽ×é¿»j_ýO‰&+ºÍõýê˜E0ÀœÍIÞƒ0GÆóm…rQv;ôc†SE¯ñPˆ;Fƒ"N¡ðõ*VõwŠÁ·7³áfØÒ¿]v«Ô§|)¥‰ÛD)î’N¶ÔáeÖa`´MYººÁ¾º¤¢PÚÔ;„45Žùɽ… ÷`Ë‚XØÑ©)4¿AËáU€¸F;[î§õ&DëÑ‘ÖU»:µ­ë³ÏHÙÎÐ#¸‰r¶Ž`Þ"@ëÜØyÌ݃qoV ´õYs.Õ À~˜sœbV e˜,ž è)u !(ÕÄ*Ps—‹ª“%o ]W>QZ+„®®L ‡ËM±Š¨:®Í¦Ê„]— # °ŸÀ:žÜ™›+Á fûÐñ ›b_íª¢qOŸªnÞóqPð>vOšŒ»âp{*né ‰"7M:DûûÊÍÜ3ŸfØy2éÌq.¥™™YÝL9Ñ6ÉÖ5µæ·a½Ë! $P¨ïgN‚‡ó²9ë>xG ¦Çðs¹aÙ< /úµÀ[«¦,:_[¸ŸÕ® aÎTŸj8ÎêgñÊð³¤m¾¸çLCÅñÔøÒ¯UÓùƒz&±õÕ4[G8×™b7>É~æCdšeæ<›L]Ì3{Ä‘Òm ¶ƒ#ÄÄÛlš–*t8k9ŠûµMð<ãô>[p¾¦(„~?*š¬%˜Ü8éè°­u²³s¨çª00AoÞE`T;—„¥(²°€tþ€R)ÏÁ…0I|í Ð(Ÿ úíñ¸¬F™ñç9ø**ð²£_`. M>$×¼=Îgˆs’åzÎje;‚éŠõºZúK¦aÍbañšÅå Yœ¡v3g,xøš†£3T#x‡^·îé‚ÔNy^žÈ÷û¢éÞuM™eòlÏ8¿gÏÞ…‘ã{¥Eʹš¡u\ê¶ò›'¶ËÏ_¸¦¦Ü”MyXùµ¯ê“ëåÏ/øÝŒI³ùQÍŸ»ä1ù î]G ö§€_¡owÁÖÏ`aøvPr‹Ð†ŽÃâW)²ĵ“˜-œÁ˜kïÆ§~(àgñ^{ÁÎr)Ƚùñ}<'0ïgÁ”¥àÅS‚q4 $ ‡ÒÜoqÞ0,š‰aG­T„ÕpAýI…ª¸ò{r†"ÝÖ¸ ú¥]€q]VLTë쩎îÌÁëŽB:ÅkŠýrX“o×ÉMêÓ0”bmá‡!£B.k)’íe/ÂÐÜ ®2Ôb”9Œ™ÅOŠRfphÂLC)äÄù Æ+“3Gëpq~XXÇðË£ÔúF±ÛRHŒú˜‡Dý Ɔà ~jBPQàŸ*Æ¡×ÔÛ¾Inû8â Æ'ÿF\áø ×¡=ÂM= À&J˜4ÉÛ›q8xÁö@/Ý/èÀìM´aD]ÉÝC¾pçû¶!ó߀{Ê£—jý1 ‡˜(™ßRɆd^¹I‘&3¥É5ì\ßú£¯í&Ðr¸Ñ!Ž ß(÷a™ïÁà_•ÐÜÝ߸¼¾¸W°Z«ñ˜,•ÀŸ'¨„bˆ1i$nè£W%x¾J-›îô <~¿ç¯ÏR,v€[! fŸ®®Ð|¸°¥Ð9r(?¹çaìâæ¶þåî‡áîoæL¡xý‚J§fáË÷]4Í'ß÷Ë(û;·Œ€¸Î'3¨/W¯f42 §O÷ó§Ù< /?ñ&ï°;ÆOeq¼¾XäÄ@©‰ùº°8Hƒµ]–‚?e 社”¥†Ö•SLa|¸bZ*C>.Âu–*y… îz†EXP4£Ï±½¾ˆWî"ÂÃàÈJÀ¥ÈÜ<(r’§™§3 Yõ@‰|X­âõFI‡d"ÆØ ^µ£ãU“E4Ùˆƒ²Ï|˜n¨p¶Ðœ>†¾g7l¸$³8ÚOf”äÔ¶H.r¬Óÿ!’–Jc"æc˜ 3(wÃm¢«œndΓ_NE[-ÿZ~ê~AXà*”+ÓŽåÕKÀfÛ±2½Ii8Б@°M>W{2Xé`pÎûD¬ë°AYp 𠣕õ‚flÝ{‡ºs£Ïgµ•ôåµ…}Æ·Ý£ò ó3ºÛ•r²Æà(X0ÚgTøE %<ªàŠQK¬„d÷ ÜÛ+÷HDI÷1Þ–v¥«“Hå¶"/¨„‹vC;xÉ \âà5Œˆ…´&ÌäxiÕËù©õÔÁ^ï=emå¢*w‚ïnë¦ê¶û)Ñ>,¯ðävréø°¯?`§SÛyœ¦QÍ6ÒEøi{¸\ÏŽ[:hCõ¦hÑó<ù‹W%õ¡'Û¦"H$“HÁh$RU¨®’¡ò €p)i,/“ч«x;`Œÿß \¥ü?´Nü endstream endobj 785 0 obj << /Length 3147 /Filter /FlateDecode >> stream xÚÅÙrÜÆñ]_±•‡XE‚˜œvåÁväXŠ";_R¶Šîwaïk¢èTþ=}ÍX‚–Ê•îîé»§‡_^=»ü:_a‘êtuu»ÊŠP¯²¨UóÍê‡`èªz{vGyÐïìÙÛ«——_«tòI‡™JVƒ¿86Çž¡¦x cS8 º<ØîX®í9 ÖYPÖ¦°nmÙÛ‘ 6v½/Û²¯šššÛ“ó$jBJG&,tæh}ó&Ê‚={~õì—g Ö£•Z™< £”X5Y²Zžýð6Zm`ïå* M‘¯îò°2¡29Œö«7ÏþùìK”ØŒžÉAZ?“ÚëWß=‚*Â,ñ’¦ºNPÕ;ÛV½—tóc¤Œgö!*ŠB•xy^-’ÓÈA9˜Vq…¹1« |N–Qy¦óàþA™ÇIPòϾ9»€ÅægYíùwYð ‡4O?p¦$4‰ž‰€QVõF“… ÍÑ´g¸;âMthFÈÏÏ.’H÷ÈP30»j¿çQg…I[mw"\‡–6âà]ÕöC)àÛïX ›Î±ïq7ÙÇC׳œu‡IÏå\Ž{{°5 ñ3ü•¬p°,ÐPLç¤ ü‚˜ /ìl¹±-/‚ÑÄ{+x_Li1¬-×8Û14z®zTŽZ6¥¶ ”< Á¥>à_qaÂ(Y¥9üdæ)þi¨òPé0Ïbï_ázÉ.b•†€Ï/AÌ('9lÎHÎ*èÖmu¤ècÞÛVÎT€WipCz°àðs‡B6EðbI@*ÍÂ<öιë¤3æØJáKý$ é XN3B•*ޱû㲄L¦Ê»à9j:"Ói»ž¹¯êõ~ØXæÛËË[šr–ÆãÛ¦eHp7°ªAfâÛAádoÁÙ=L q·-ñQ˜R Y 9«=ÑJ3ñ6\÷þŒËì3iîu›f$(•F¡“Ïã*2Ùƒ ŠNâ,ø‚iÝDÛGÛQRÂ-r'>C''c)uÂTY3€On›„“ŠkO™˜éøB*EÏíšx¹´ïKtöîòSSy Ùœ16a á ¦¦ÀùðgDk-a|ÉÌ ÙE£™mªÖ®û¦½?ËKEJé0ŽÕ G k­ã êøWä|Ï3[v2êþ=”?‹§Ò¬êz\È+ߣTµ6l\´Àq‘=߸‡:œßõzܶïÎH‚ûaòÉ4h‚/é8’qp,Û¾ZÝ…ß8,N3Bk·e»!ÖY$„Ójž¶bj½„¢.\2mÀ•Dù‡L;‚RÇ«bWvL¬dR·PrQæã ³áˆì;»?2¤÷?‚løwco†Ÿ^pФ°îÓ`⺸…¾RW½u¢¾²YtØTXÙÖÖk‹’6Æœ+-OÞXQNâP±•- ýuÓÓ7ÊÅ#gÇ¥Ö‚4j^tú¶<%’ ç~)ôÇ`õ¾ ¹išý#e™×ÆÐH‰Æ†‘&‡³nòVÁ^6]ìX ¬òâ¿CÛ·ƒýésÆ9Ô::ÏqjÛ–¢:,qý±^mk7ò †|Ò“ÑYòl.^ G¢#9òº(,šØ‰Úžu^gñ´Kü9¶Í x*ïM¥bÀŽ–ˆ ꦟÑapëPÃmBYÑê­ýe€¨$ÛG.t+W›‘ì ‰Â‹ k¥aœIÐû;¾ÑPH”¥DBéRò+ %˜OBrm·šÑínnuSÿj[ :Òfi«G}öe¹nnª²^Thåj”}j}*Hñ:ý$úTJgrX"YÐmðS4HÎ)Bj]¸_¢¿¨ÿŸB¿¢ù£ôù;Ò  K΂õSº2… Ó8yšxcp–„Pű¤NªJn )Õ;£„3“žH8QR Äy´$anhg ÜŽ=#œÂ]`Ã#êá åÆÚåK9D7SB  ð— "R¸aw2†b¦­Þ{œ0•JÛüó>ÓŸ“GãóW Z¹)V&ËÃ"õS´€=Ê,'TPN1É7Wÿzõü#´€Æ]Ü”^Çn1ØŠï|ýí÷Wßñz¡ý¨!Âûp£uðÉÇs£O¸QÌÍçìi»Ð—ûN¼ñ‹£\ê ꘖ¦Ù1ÕÑYš8›w—Ç…±£¤^6*Í e“ÁÔµ¼5-4¥éÚÇålFå,Î]3¢rùAG{¨T[AÚýÌðÒL•Þ¥†âÞ}N·¨4¯Ñ6+u|)]ænvoY—­½…’Ž£Ê»*Ÿ>8pÇ–:,vÆ×î]‚ÄMÛZZ’ž±o•&áN¡xøæOèØ¤ñͰu »Ê¿K _ÊßêU>éâŒBézØ÷ÂEÿÔIÚ<Þýù;ÔÚd®OÁ“ñ"n‘Á ÆŸü´(Ç "µDA»tï ÍŸ<¨FÝG6Ü‹Xéàj'Ô'ÐJ×\ÅÀ3Š“8`eá¨;”®>ã“Ù ]ì-Kº\ã¥yÏæ ¾Òª.]šXÇAÎ0’;×ÑN"÷æ…ó®#ÎévÆ#¶Öìx’¾Ë ˜?:œ°/+y²Ç\ Æ­%Q:ã›?ÿÍó÷Î|ú§¤D¥cb$¨ÇcÂtÃco*”8§§Ó¸DCwvéü£š÷¢'Nº³sî›;Œ¾HygºíyÛ~ {èÀ¦N (¸RõsÞ|²óµ NòÍ™8Uô›ò:{r௘<ú.GS: Ý„Ñ|¶ãy£ X¡«ÂcGš„Ù¡®(†}u·Àñ|ñˆîåN×–.BÅ–2 sUPÑ$‚Qçîâõ_ñÏæ' endstream endobj 795 0 obj << /Length 2608 /Filter /FlateDecode >> stream xÚÍZÝsÛ¸÷_ÁGªg#Ä&½—›éµ¹ÉåÒ‰û”Ëxh‹’8‘HHÆq;ýß» €AA²ë:y±HÜÏß.vÿt}ñâg‘EÉR–F׋He„E*ÉUð>>Ä¿íªž]qÏg¯yñ³¤£õ‚ÃÊ,JìÚeÑâš‹¿]_üqAa4‰hD¹&i¦ U®dt·¹øð1‰æ0ùK”žéèÞ,ÝD@ŒkxZGï/þyñJçq£‚Í¥/àmÝUó&ÀWq¢…< _•’LsŸoY-jk=ZÊ¢µè r_¶+°çñvW·u;c:~ØÎ®à§XóŠ2°Uª¢+F eÔù\îÚ._Ï®$“ mížÀØ7V÷å÷D&¯«yñÅÎV—ö÷m·¹-v±/_nÖáá¨¤$Õ D:î#š›ÐÇË0ÍåMÑC]õLÆ*þ½ü<ÛÛ„¦£õŒΠ¯·õ¶ Z=͆Eíª°Fÿ<“2Î×{­ö×Í‹ø<¡b‹3PWÞŠžÂ®Ìo×Ec‡òjnîêªiwyY¡è-ÌÒ˜8ÄXaž‘dªðï UàïÕ¨õ”„ Ó/gWBˆý^VhëK«Ã »‘«Ûàß[ ¹Ór1(—zÊ õÄ€[˜ÝØä5/7EÕ”ÖR†–Uy¬K%8õ’~ )’fƒ&(|ÐrL§„fß`º/tà ¥”%è³ÒÆG ))œXë°·hÀ]uךØðݵ®ÑS÷³‘£¬ÛênFc—â&†¦4!2™š&ä+:8K P)¥.o½9’¾–Ôý¢E½ ±„~Ä­Cò º”*UÊÏêR™Mv"%Á,Ãî¹í¶ÛQØñÁ›Ç\ÉH–ñ¯rå¿B®Ì`ÍÿÉ•°Á®|º'7v^;HÌ8XV2ß–Ù” J ;Í2¤ Àr”Ù’°$O´=šàh†ä‰ ©P_NËá$4Lú,ñ¤°>ün2ä2Vè1Œù” )ŸVaxÐ' C| :ŽD'”–gES„Iud©Dêï!Õ> §SíwŠ @A¦ ”O}\£ÙX–ºêãÆ¾÷)ÏóX >Y”bˆÙ «ãCTƒ­ä‰ À£Ñ®òÖ ô0³Ñ /2nœïJ€±(ævIY…•È“m)Ó”dœE2“§ÏÁ4¤’( $¢rvZoyò„®õ9xbâ‡ò™†[Rè t:lYùÎ9 937]Kcm)㶘AmFçÅm·´cw3è›VÅ®ûTVKÊYü¾h[x³kr‹@& g†`óšÊq&G ƒÐ£°µïF‘)ó3ÀÕ¾BÓÒØ'Le¿0²ÂHñ‡é˜Ídíˆ­Š ¬,‘ÂÑØ¶X¢ÊøyªakØox$2H1úyÖY oDRJ§½áî‹Ý!W»œúløI ­9g°˜äYØ `›pŸ-àùÎKhšíOXÖÎÏwyׄ€°’â‘„+ÁRÂàÙƒ©N økšnƒèPI\¹±I1‚SûãŒÆã7å' ”â¾lŠKÄ6%±Å¤./í·}@w¼•á»(‹@ÆîÐÄŒ×Nˆùi6ˆ?Ї˜O“ù£ÈOœ]N?“DÒ,iJR-ž…L“Š ¤$´c V áž2IWçàŠGoö íÜS) Lƒ­Ô0ï³=†{Áô÷Jǽ LñÇÎèþ ÆHîñ.-Þ•ðq ã°K¬*÷ÅQs¬RÀ ?™C…f{<ƒy…„ŠuêÕcIT (IÏâU¡¡ìšzõ˜ÀPvÒs°•Ta)ù8–`·V$£~¶;Rºe⤿(T¸T¶r8çÏk ÷¤†ø§c_Ànœ…)t© BËãz,ôp…bïlìdBúláåýPwàynXÈñË·†ïa#ˆ§í"Ý·IrH_µoP¨[ FímGÍR2’î5Dö¬d e™YøUÈz‚zDþ»Â쥰½Þµx}뇙ýü­¹l±–™‹¼[·fÊÌÎl“kh–äfjó6Z »Â¬¶e-‡dîE©‡¡]š"Øv¨°Å»Û—÷NMáfÞ£ ýܷ݃oTLˆé} ,£X`¯K¡Ôý’o¶k¬/8£®%†a|×´v±"f¬°øÇÉܾ¯AÒ͸?`¡~InØ.ìj&ÝÇv"3ûx­¸GÀIØÔöƒ¾úÇEÂ4ëÅ×ûòJÅ6øÁ ck¸ I'Ü  ðOU܆DhþöGŽ’¶)bŸ·Fä€zãoÞ³4ãžAt£Ó©ammÅ3]W½qÏ3qb¹+òÖ¾p×ãàp0–”ÍIúõÁ›·©=@âM¶›[ƒóŒ“DOZ·(É$.û‹⯩A˶. }•cù;·ÏàÙ‚A&½ù̪L&·u0€æÄ_èBB‡™€¾W=^é!;î@ùeUþ»è¬ÍÆöýe¯¡5”¢ òÓÆê‘ƒ>·9¦¿W¬êÖݽ¡ÛÝuœÊÝšvŠº?Õv’”EãŒÝ'ìí*¡®ps5ljæö˜ÓøïEoÞ¾y÷ò¥¹HÆàÞ%ÃZs— ¿û ^xqwɇÃý]2‡ÒÏǰ5¥“ËdX¸ }½ ]&£}„ÿcæÞÐz/^X«bW8Ò&b^øÃ ÿáá±}ÞØ™{·b™vO¯ßýöîÚ>–•›»A=d,fGÌ–Œ[¨ ‹¹}¾Íï>9Ƶe‚™ÂzË4Vi_/ìï¼hÊ]1¿ô¥º«»µ#Ž|v­O~“r ›®t~˜ÈxoNÙÆtîÕ§Àú ¨–3"Å™ãÇí¯@W½:ýÉÆÿ„yŸ`5c¾AŸ}ÞßW·²E½µ¸Ëø\;KÒ@æh g'€/L^¹§¿Šþé‡ "δO ÂáCùÑ©åX’ÄêtåÖ›b¶ü=ª˜üÓ릊ɯRlQš2Ä×¥C÷¾¤½²N©Ü"xêK_cTRnãc9™|u*ȾI·¿¹¯ÌÌÁ%¾Y)i|i_1Ùø¡eö4cm/XAƬ“©Àì[.ñ@5°Ýmo­ÊÅhe’¥“¸/¬Š¹‹NLTIö†nÌÙÓÂ%Àæ”Þʪlˆ}½î­æjê½æTiì¦CŽ‹^ìù~…qõ°ýܸöç¨,Ns Vóˆ1¨½iœ»Œ~Û'J¬Åû<Ü®vu·\9B{«º²œ„AÕ€ X?-U¹R*Œ+æ+ÔKŽ»9(úƒS«ÆÝÉ}ëöÆ%ú{Û[àã€/ä~€£d2¸!mýn²W'ßcg‰Aê› -8‚r- ZÝí^Û]WŒ’ÌdWÿo \g”h ë$#š»d–õüÿØß endstream endobj 802 0 obj << /Length 2607 /Filter /FlateDecode >> stream xÚÝ]oä¶ñÝ¿Bè“¶ðêøMñ‚{ Ú´ ®‡ñ!wCç•m!+É‘´þ*úß;üDi)ïúìE_V"9ç{fõýÙÉ›˜ŠT¢ÑÙe$UB"‰T‚%Œ7ѧø_yw]¯Ö”ě՗³ŸÞüÀ±Ï(@ªYØ«¼Ó0'?;ùãÃ,Šp„iš% V*ytQž|ú‚¢ ,þ¡„ª4º3 eÈh oÛèד_N¾×ÔMNà ')åSÛ.kº¢º œœ²„"ñ*'§2aŒMO¾©‹ª³LI=X*ŒYÏ“»¢»öQß4uWw+’Æ7«5<òCטÑ<Ö'˜`‹ä¶hº]¶]­9áñ׺voÀïóþú熚ψ£«M~oªÓù–¢*ºó{7ýaW~Í›¿ÚL9˜…à wçÏö?†ö?ž¿O´ˆÑ¥Ge¦r›•_7Y§]»â} ø üGq»9Ž…·Ð„„×7õMH¦txê®s+ÒA÷`Äb-UƒôQûj%}Y7nKÑÙ§[¸*ª¶_È›L#K‘Ì¿U 3­øŒ° ¨~£=©Õþ]xB†å·«5¨u¬Õ¦¨4CO-Ùà Í]v¥þu7¢¾´·+.â¬)²¯Û¼µKÀ³4 ͇ÕÒôY›¢Ì«¶¨«—½² "8†ô”Þ‡."ÔpM|s${T=ëŽçœÖÁ€O!p*WiÂÕ‹\ I©˜ÁD~â–„âCò*œ4ºf—ŸöÜ/œfãqlÝ8èçÆî0"ÝµÝ !=¾-6¹]Μ 5 íyœ¬yœmwN¬ ÔA¹áDbz@nƒ k;’ I¿AÝïV÷z×…ô=|ßv¼°¯Ù`òMQzУ%œ†8ƒÁˆG/òMœ!àTJŸÏ™êÌEBYú*ú ¨0$æÔÇÃúÌ™šé³RVŸS1è3L9}†ÉÒérjtYOŒº £©.ÄÑexÙ®plc_ah¥›r']˜±¯ÞU“s¶]q³-ò¦ ˆ˜BðIï¯ç®Q$%}æþHà¦Àܽßç‘JRÚïeÕ&pÜša’F§¡uéTìŸúqÿT‘I'§†UìÉçkàc@ý†à'è/R?ÍDäˆR.²v®~}HšûГ¼gS— F—Àö\*ñ¾àtÒX¤8nÂþŒ‘Qrœòˆ'n¨™¾ö€ÂbÓðW–#B‰â¯#G@%¹XTÖÿ39>mŽOË'àvž/ÇòÏN /êªíšÌåÃ}š[ÍÐ|[r(Y"åJ¯BW¥ô’CòÖà)ø±áX³`1ɤˆ–¯œd2!z…¨¬QñÞ­Ûú)På€&¥ÄW*f @ÍX±¦\l†Ér’gê‰16Ãh›aÂÄfxŽÆ‰§÷YŸxívM5Ë?hÎ!Ã\Cj‚„šFËψðèÓ±öŠsÐ@þ|³;žù¯š©î±Ìº´C,#  éÁ³ð„Yºì‚$f–§žbø¼hÜg˜ NÅ5,(5Ö‡Ühªù*áà—ÝGãH»ÉÚ6ߨwã«xÏMxyX™àFÀR£Ì¦³Pyu‘'Ï"ª/ÚŽWå~} SwÅV‹“ø:ÓAŵ&ÌZ׳¨ÍÊ ³Œl g1fÀ™;ʬ¬[Û‰È/ PH–o†²|ŸK’Ÿnà ÐÓˆ*”`H"_â„‚ºòPP%éÕö&Ô»ø*G¦ g€˜YT—õ¾BH^™é1;ç€-·íÒßr×À«6¶ù"6áŠ÷Ńž¸é †µýlÖÙ·¹ÈyP›:IuDm†Ó$Ï«ªÉ+²þêŽ'tÏÃ{|¦kùB…Ç—£âášÞ³þd' û»ÍuLׇƒóáÙUÈ¿§]út¤ 9 ¤Ò4ñ¢V' jjP yT§è4Ô›g”–Ϊí…N—/LE¶Hü²Æ ¤©AÅñÓÏ^" ‘‘€¸9‚r™Pþ:ôC¡É”œÒ¿˜Á-£ér(ÓÔ o©Šï®!É4ŬÔîi=™•4Ûëz·ÝØ÷Y_HźŒ’(OjBذÔßT‰<¶+J©8úR/¤‹|6ó á£ÈŸâ‚´vÙ£Ó.r _„ÔV&ržÂ4yëÂêEçþ®Ù>¬À½hwC¹Ë7ùe>ÍÆ0«ÕöÁ¾ñ ¦È@ÜK™aà¨q¨qˆ½] üd4£')SÇ·vÍ>Ô© 0Oíi4‘•J™ð¡½çÖ@ç"аð²{W’ë®E]ºª*È9àÙÌ‘}Æ”éª3ítÂð—ñ-9ä”-ÕÖºB'dÞ˜—ÝÓ:]ò½*Ý×Q¸ú˜ÒûxÄ¿ÒÇk° JjzKKF…IB1àS$µ0ï…Ö^LŽç!øb;@aC! ätÿ»üù¸ÀŸã4¤8ÔÝöÊaCQ9[‚éB媪›|ãpˆBàQæk-¶#’Çù}VÞlµ1‘TÆwZ«s»2ñúzÏàôÀ7&=¾\ði8›÷¡œ ’̪¡Ó&g ±¾k¸±”î6/ag][̤Z<þMûA¶©-„‰xt¸¢MÈ¡BÔº3áYV¹¼Ÿ(Ÿ jÆåú-D9W¨g6»)ìð'¸,p<»Î.îZo2@@ kéÆ-vµ;º,óM‘uÚ¹›‰mÞYè;ÿ÷ÊÜçÎÁ_Úç+™ þ&·[ò[#ê¦?îw3Ü„>8ð["¥ëèpI°„µ*@*é䛊ãþ ñøüÃûŸß¾5_\è*cé£ 7]ÀsD0~tƒñKô]00 âÄS@¾HޤËGû×oòn×T£´,Ð:`ÿ ¤0úTHÖœAçà(êKÅÿÓ¿Ë¿ endstream endobj 698 0 obj << /Type /ObjStm /N 100 /First 888 /Length 2488 /Filter /FlateDecode >> stream xÚÅZmo¹þ®_A _.ÂåÃ!y0pîà$èÄ)Ð6ÈÅÙäÔ$’+ËMîß÷™ÕÊÖJ–µ–·*g¹«Yòáp^ž!WŠgˆŠ ÙH &;“ž”‚«7¾°!L×dBÂ5abˆÃQ —Lä2J.iÞg“9ãMÉú{Áx@!¢'ðÄ{ˆ†ò¢céSòx‚gm!ñ4JxJIÐà ƒ{#Ùx‚'ÀêCÖž‹ñ}$ˆ!§×_¾¼ýôÓÝRR¢uXŽäÙlº0''¦:ƒÀŽ–ïœeilÛjN!µ7°wUÔòèÔÛÞè;K1ô]½šÏ.Îë…ykªW¿œ™êMý}an†}óÇeÆŸêQõ3 ÔÓÅÖôõQõº¾š]Ï/ê«&\4~«?LÆÏfßÍ[‡ÒhÍ¿Ã0ã9Þ…\3òÚü5 í×RWªÑRü¿_.8hÓ—’$l%”]z_WuG»½¯©ú`íæMíj}ˆv«Óét†®Þ ÛŠEÃöòºœÂ„F~T=›Í?Ôó¦o÷®zQ½¬~Æ ü¢¹À4¼K¶Àb†-Úl®p‹4¹óë÷ ôYý:™~®NONšªÓ‹Åd6­Î«¿½~©?ü¾X\^ýXU—óÙ¿Ð󕽘M¦Ogs;›‚.&Óõ—Ë'yÎv Ó r7ljnV°9xë5ËEÀ†10{+p1JÎf¯°O›E>7ÕóÙ›™üðâãl¶Àpµ¥øÄì@²_c‘¦Žb &Ó( ÁOœ-\¦/¨ëëxñûÓñâËøÊ.ã#ôUÛi½XÓUcÝ©—W¥ @$oÐî— -b彂…-#I°vøU'8õs2ÍÖ‰WbëñPIŒ¬~PÞãV7è9¯¤4OÒãB ¥-'¥x¨“-“|{m–øg}¸P¶É98¶ªi‚ ÀD-Ú"r!-GùŸ€z¸S:Ä{8cÌÈ#(R=9ë@b!d :V¤è¦E¯ü uC”du‡Âƒ4G06üÙäîæ õ¿¯ÇMF”0øL6Àeod¬io y3pé¸:R;9òmxéÄŠ>±æÐÀq+$pè—ÍÚú]{mCû!)(%²ºá‘4Bdðœ,–ukŽ’æ ë†^ hLDË,©@—„Ìçz¬)ç2 éô x%ó ŒàPÆÜ † #¡Väÿlu+.€‰bí}(V|ê¯ õî³ïÕ•R¿Š±X稇¤§hsˆ=$ɃH£ÜÞ/)àø©×æOÏ}¶]âPw—­M7ݹ=ÐÝcëæ±uóØfþØVžqØÊ3¨1éÆ<Ö´òÖô†2G$Þi]ãËËzúaòÝžhäJ u· ]–‚/ð=‚=!ŸÈÝéõå¢þjÞ†b ¸p ¢è¥Ü b-ë > ×„„€Éi1w'\© ( pÌÔÎHB7Hbl6A¢þ-½v•esXÀ(ôð©‡$"‹wí—Túë6·ÊzÊ ¢[t¬Ζ—ѳ´ÇD™´]g¤xp”‰m4Iíu‰9µI²ºoëÔF¥vÖ©U‹-¯-I‰2dt ˆFÍ)Ò#ç”)ÍqR ç¾ÍáCR¾CþÝÁÌȇz„²ÄGåÙ%£ ¹ÅA@ˆXÇâC²ºm‹‚­YÏÜìžGp7*é˜Hȧ«®ÀµÙçÿb$O=CÎMXñµ!TâúzL QY¹“ÕãÚã#QêêÌÈ!Ò|}°6«‚Bµð1€èP³•Ý"ax Èã#Q»Ì^­A¡:zoõkÏ(/$ÝO¹ž i$ð——”Ö‹‡).P@’£V|ˆXäNÄu=¸0«ýB3û€p—vi¢O½¶Ö¥<«ÉN˜läûe—{¤A£Mè!IHEä~Éö<.“ïSêt¸Ån:²Î`n)Hï¼nÙ´ãÔîPB“·wIòÁ»$¹%&yØ]p^Ö#a²æI(#Jòœy¿eÒ°Å e]vÖ#/h¿4[¸! ,7< RSÛ˽6òÖF€ ËsìCŒM ]7䵯a9.ÛæV7·–ç–—–—Ö Ë fµ%Eý&Íê'pš´Ci>O;6Ÿ[#ü³V¥íN=+ž¤i¨?`͸=½Fð88H“BW8VÇý€ ¨²<.Ôãi­Ñ³°ôÜ Ù‘§Š·(­‚^¤ˆñÐG.yIv"=l°×·qiëÛ¸¼ôú–¤vÝ¡¡“ãÖ3áãÃDv~3Läå÷h½ÃÄ­–²£ûtù_D#°j endstream endobj 808 0 obj << /Length 2204 /Filter /FlateDecode >> stream xÚíY[oã6~ϯÐÓ™YÞ)MÑ—tŠmÑnó6 [ŽUÈ’W’ãÅþ÷=‡¤nãdco±‹ÍK,Q‡ä¹|çðË·×_}I”Ds]¯"“šf`¼Œ>Í~ÌÚuu9|¶¼ü|ýÃWÍ—f&us³»´ÀIß]_ü゘F,b0)á±U+ŒŠ›‹OŸi´„—?D”ˆ$Žövê&m"†§"úõâ—‹oq{“å˜4„j=ÝáÊí+ÏS„%¢ÛÖ>o×p!fÛºj«ö’dz‡íå~²À™æ± T%Ñœ3Â8s:îòºÝÁéæŠ«ÙMUù'<ñ—ÕoTÑå2»wÂòÊý.ª²iÝãO»ÍMV¿sƒû+\5bTMM4gplå×T—ÙþËýÕøó¿¸AuóûXv—Á²ìñÙç½Þñþÿžµ»ºtVh×>ÈÙÝ¥Ò3ÔääÕʉý{ÜÀŠzöû%CÍÙlÑæw—ÖjöõjW‚¤òZÓöàkgá*/ñ“Öm” Í%'ÔúÛnñþñYщìÞ¯BŽË'&ާ‡ý2p,>õAQ†Vãýë÷—s)å =›—h諃ÓÙSí6ø÷Æ…Ríf8+ oÜ:OoЬq¯ò©l<ÂÛàZË|“•·©Õ0›VD0þŒÙú“àæÃ¦‹5dÉ+Lw¢éú°ófYUõ#»äL¶!H½¯ö`±$œ›—Úãj®ûu¾@'®š¥&¦×» éMÔÈÌ4 BØÈ—F¸Mh»»Ü›¦­Ü؇˜d`…LÛlv­6DRöЬÈöç”H˜¬J4? ¿¹ JK«Iò—F“Rñ4š$… I‹í‘ÐY¾r¿)䤙=¸AÖEYê! dWËÀ’K'Ø£çS´u¯جÎîòj×N´H‹"ëæº*O.Lá¡I7þ©óH‡”ßY0¸0¯’¿0›üqÛzgkU„#(‰/nR[ª÷y“£Áyøßލ3GbAi"d|–`U ºWgm9zdS Lµk»¬ !Ì’¶ìHE“O¥4‹¡IJþdXèQ“ì|Û×x2n” 3sA^¤„A4äwðUÂŽ‚§‚hÞÊ¢í Žçp5áV…Æð)#xRCWx9`!ÌÃÊPÔ®½ H±ýB汓! ¢$µõûÁ «Ã/Gk£e#ðhœdðíôxÚšgzb™Ä`2}k*ʈrjÍwÇAÅ¥ «AÄÊ–^¸±Y9éJ]â0æ/P(у«®Œ¡Ië+éPÿ $²0½¶Þ1\Ì=FG¤ëV xØ®v…ï×™Ÿ½k²ÚkX§èØ>©A}2Ó‹<ó}¨•å›-ô]^dÜ8Mí:m»­‹]%Ö½°Þ®hómáX&M p´ÝµÍ´Å¨ÊEÌzßÐÇ @òq[mÛÇ–Ps!Pü$ßLgu ýà–Y¤ ¬{ëÌ/[g ìÓVuµÀñq°2Û¨ñú¯úÛÏôÅ‚ÕOZ.îÛ¬Ìj»XtmUë\iÛY¦Ò[·¶sëa“ß–Uí;„5ADoϬ ¦ŸÃ/1Ëä‘Ö²mÀ[lz¶M›ÆVw¦\k2׋‚àmZíü®r>¬Ì,+!–У»q»{´‡Yø=F¥E¥êRJwMD¯ÀU->àìjçgm-°g Lƒl+»œðyS‹ƒh ¶ ru@‚Û¬ yj "óHÆæÊ“Š<£ 5Iî½ZÛPc¡‰J’³¬Éb„™.š—«*Ù”$œOn˜Ø°ˆÀ‰)?`Œw÷؉ߧ$þ‚³¿<Œí.󬯮 ØY¯»2ÛÙƒêžTçTAOªÀ÷¯&˜CøJæcà+Œ ØÏ¿ðWÄ‘ûPZ:mß|ã~%ªúºÓ§9ï›k¿žûÀýÜ¢ŸÝÓ»N Æn{ŽaÖ_»YìPÀ?»ß Áp4·S{z§ãUãk*£³z#üÓ9t¢2eç¦ ?ì”!\VH"üqoëtXUÇDCâŸcUÈ Ÿ¬zv¢qúÅL%žû5tå.ŸE–Ä„þÄô·Q¿…ÉçýšA®²ûüY®ÕŒz¸ž®M±è£ou2ÈSŽ>s•Õò”&ÌS*hÔdrO)5$HwÐ7šò¦<¦”OÑ”u`iè~)ÿŸä1áŠd¨83ɶúܪb`ü7&ód&“ý©Ì'ê=‡¨U:b =ñÊ ÀÈ%ªŽdìÅ4fZש§©ÆÿŸ{˜‹å9(P9!%Æ× äŒ8RÅÇ$,@’JæÌñÛï¬ÝüØà8Ñ ÅXqÜ:ܧ Šªz‰Õ~Ü ³åÁå‹Ë•„ÄTN9²¾,£^ $#˜GÐ[·ãÓ ÎÆ ³'û 9å û" ‘jB¾ÔYã{ÏE×2U¡~^ž ÍÜ0ž ú³7ëjW,a»kûäñBP èp/ §4¶YVbš‘Xœv[†[€Œ™U¥…¿-¯ÂÇC=êdÀšŒ£â)Âýy\=’{:æçàêQ•ŒÅÿ3Wkv\ýÄšo\ýWÿÆÕ¿qõ§qõÐÃR“œª‡6Ž_@ÔŸaAÏÓV<‘¥ÿXNz9!èň —#‚^<•nBß©´®0±ŒbnùÊ“Ú ÃQ“áÉQnž½Š›ïÊd=‡·†×PlÆü‘T„:š!ã})Xg¯ 6? endstream endobj 815 0 obj << /Length 2246 /Filter /FlateDecode >> stream xÚíËrãÆñ®¯À‘”Åñ<1À¦|q*®¬k½åØÊi½µ‘ 0xHÚJåßÓ==xQÅõÒ9åBzfú5ýšéïo¯¾ýÁ¨À²ØrÜn3X3aÃàv|XÜ•e¾\%ÿ•[ñéý»Ÿß¼I’üÓR,î«dóiû7üm±IŸh]qCÿ벨¾o÷wiuMOn^fÀ@Èå¢H?=Á·Ÿsà“öHG>-±üxûcÀƒ•àL AlþÛ#¦Ãx:‘ÔuZ5ÈbAä¿ûŽþ5¢úK‡KrII[Hªü£ßàÙî”|CL¿©۾鶉ãm ™ü8ag,gGœÁÎtÿTù¥âœäF½‚mFty,:n;’{| UÚ´•?´¦jSZ´š9ãÿàÌ·?è8ˆYÊ-‘…,Š–ü”6»r¹&6´ØˆÑb­ÀàcØãÖ¢u㢫¿Ý^ýëJ˜"°(–Q`lÄì^ï¯>|äÁ&u¦â(xtK÷`SŒòà׫\}ï¼lLNhËx:TÂtÇD|Eãu†‰Xul=fÍ$Pjq¨Ê¦l–2Z|>,Wð—ÎÈ´Šã&v:•±÷懬jÚ}NšÎµaäüù~ìÇt~ ÿÃpðcø?Æ\³[8ÛL‚"A¿öˆF¸÷73ï;çžjaÕSKò‹·ÔG³Kq K.’¼M ^n ìç‰R%Yºkhr Þ×ë&+ $Í+¨Ûé¸ìv9ÅXÕR‡ÌèÞ~žžË`X8$ó(ôXH©,y!½ãÂÎ-ŽzlÅ5ÙO¿Y®´Öγ|s¤'U»Çß;2¦ŠVö”Wj•%wyZÓTV«¨*avOHk“íÓ¢îu ¸fÔ¦ J©6d~^uQ~Bª³<:_uO¯ªÎDGªÓ’“Ôš«ÁÜjü&S*+šëªlç7˜^•73*1@ñš%énÞ3„‹èwÙz)íb×±üx.ÖËðFÖЗù][oýó …‚qð=þb‚ÅãÑñ,ŠEÖœ+ÔHÓIåÙoJú¿Â]°RÖ2 ™"è‚·?”¤I7³æB&ðÅÆ‘l&) ‹µŽ™ÕÑW%©˜ µCett¶…šèÈBÑ“¼FÏŒù"ÛÒâŽü3}Œ”D. °=eHPï†ôøX@ „b,}ÈʶÎ?häyÚ­¥Ü{çÀAìýˆ¬>oÉÅ¢öœ3*WV3©å™êÅÅê€L¾ÀâI2*¥ê1«ÓKZÃþÏŽºÓTU0+ŽÐü±¸ :¶Pßÿ}úÅø­0¿kûå‡pö!”m㊋©ö’ªJ\uJõÛNJ„!ðÏÅLÉ 3êúÕ_¢_F. •aš‡ÓjéÖ‰,uï‹.“Ã7ÙÎ¥žwIÁ‹L|B(ɇùzW¶¹Ç×…k÷Q.rH:€çC½ sZkâÒJëµÒ'rwUPŽnJš,ʆÉÆ‹…9WÔí]ƒq1qÙµ„ë…·‹²-6ÏT?c3"Ÿ”GÒ ÀÆBÞèÄW,þLßÍ”Ên¡Âb‡#l”Ãk‚ ~2/”Œ¿ráÕ1ˆäÚ4BŒÒSm^ŸŽÞä(2Î1ÓÏòÒºRib^äwBPáñÜàµ`ax*aF}¡;DYDY°Þ¬&ük4X%ø(ºt×U79 Û6'ðã.õ«Û:­<†Ë:Ëaw é.\giŸr–íÚ=ÈrM˜š]Òt¬äë6‡J—&\9ÑæMvÈ}=d <5rª(È…‡¶«( .‹u_…cû†+šì åí¡<4Ï5§8„Õ>ßù¼™VXôgŸRº˜¤žl•ÖÀ§ÿØVå~ÈÌ3 ¬†Ë¨ÃûþÝÏÏyX7öÆ“¸  ¸ïÓ"­‘rÝÝZ³º«˜„Iî‰6«R£cÅŠë¾(+‘À%ÅT¯Ïqj5Ç÷äçb€Ë‰(©ê¬é^g4‡8WµkØåPíø1Y—wYR¼0}ôž†IMÓkýdÙø%¿©JÒ¼LÇñ3R3z›ë9ÙÅ´ìu®¨¸9ÑcÂçaEç¾mÌ>´a‘ÅÕÿ{Lgô˜‚•…ô,ñe8fQä%•ì"שE] endstream endobj 822 0 obj << /Length 2790 /Filter /FlateDecode >> stream xÚ½ZYoÜÈ~ׯ˜Ç‘¡¡û"›ôbvƒ,bÃ0’Xyr ƒš¡$rÂÃ#%ÈOUW7¯é9dy°È>øuwuÕWÇø÷Û«×pµH‚$Ñâö~‘¨€+µÐ, ¸†žÍâÓòŸŒëëÏ·ï^ÿòñTx“ FsžhB<Ñ¿¹^…\RÈòþò›ë•ÔzÙ>fðÅËo×a¸L‹.k¨}_ÕôÒÏØÕù6-ð=ÁÙÑ2­óô®ÈšZš÷Æc„§7%ÊÛͤ-­´Ì××"^>ÒbýÖUÙ´uš—8hç¾K×Õ]ž–ncYòP*Ôn•Ú³Ï8L¸ ¾mr–¸q”žC±/=*ÊÞb°E$ZÆCÁ߈‡4ïö' hÄj4ÉÊ-·wÖVô¼»^€2D€éq0Å+.úc>Ìè‹.m³MàÝŠ”k%xÀ¿\ ËlS®þ|{õ¯+½lÁ\°@ÁäH£8åb½½úô™-60ønÁ™Ä‹½™º p[‹W»úÍc²2#P*H˜ºX÷ÃxªûŠ©å}Z4¨Y [æ÷ôLAµôò™#!åUI}Û¬}¬Œx7Ô±G]Lñ¾Ü]óe}Ë«®)ž©kEæææí#½‘JÃK“ní›3@€€¾lìÎJÈ%œ^(q¡íÛã¶ugUZ  ÉT%*ØS½Ï›ìgªÃöìÍ(5g%©¬x¤\Kï¶ø×*uM3ª{š0¥„†:ór³«+ ª-5pµM¾Íʆn•ÐÍZ€5Üÿ™ðŸ÷ $ÜZ¤ôwؤÇ"ÎO ûý‹D%£F¨;~)2 $@â§,*ÐÀtͯéúP¼åËÇLeÊœ;s —Æüô Œ¾%Ѳ•áË£fuEcpXЦ^a–Q@±¸Q泌{®0ÁiàÔ̹’þó¿Wûõ&‚¦~ˆñ  _ÿTG@Ę/@(i¹ñ y„Ž-wÐß(n8€•<±+·W±LSáËõúŒ¦êZÅÀ-ÂÍí©7‡3ó%Dx¿–MÕØ+®sP–fä5ºåEõÃ#®‚À«9bäA«—ËâĽ¾@ëªè¶¥#ÑM¾vGý>8Ù)¯ âŸ-ƒËÔð¼œÛŸ¾ŸÑ :)ȹ”W £aŸüvp‹ŸÅFˆØÂˆOHcÇ6…í<Ñ;.‡ÏMVçt–žHf ìÁÓÛïz€ÙdA®àÀf±·ÇÑÁ¶eÈgîRb\p—Ü„¸ÑÇœ†ÂàRz?„AÌ“Ãpz)S”lס° QgÍŽh}ÝÚóWtLо(¡ñn%CH©§!Ó“ïŒèÎ/;dïö¿âBræšÂúÑZ&ÝÞéÚÄœ*$Õ„>Gs‡gÓ"àC’ûòŽ8êͽ‚´\qˆ*Hº’ÙÙÆxÆèþ‚0GHa>fí÷7Œ¡í%=Ñb¿Ñ %¥ÐNé±É›u×X/ª¬¥*çw¡£Ù¥uc߉à;mM¶ “»&Ûb¾¨e4ñmƒiç–\  —”9-8¤"²OTã-šMLöuH[" XŸñc‚¤h,öC±ŠÎøÄé#д~èFÁŠˆÁÏ.€½–UëY#ævö{ýð÷ïÏ!îèN=¢IXhÑã½ÝU»ÖCÙ,à}ÞN)ÖdÏÏØ¨:j†ÁG¨¢ >¼6'Óšpm²*lñógš¬Ö­Û®¶ó(Ž4xhz«¤W,ó;£ÌÒÅÆÐ´‰'Xl­>è=+tžª²x¦Èh¥dŠnK,v*“ZÑKqyL¡ É,>‘g`¡Cù´€V°àÇžk~ÖÑ¢å{UÍ98$OeºÏñÎÐÄFe‹y ßéä%:¸âø¤©A£eJqì  l@ñÊ1düˆ…»p‘—c2pé 9FCñl¾HB‹«ù-VÇ·êZ¬‰×bã Šùy‹*š™,nº7Y³REh²`•F iÈV¸š£˜T%é>æÜ3«¤ÜÌ…WÉ$ú‚n*Î(¬Ä¬» ^Ô_W[±ÂÔºN©äÑ Æ6˜G5’`àY¤„®ÉˇÙÖ\½|U½¡ärØá "è4nÉtïñZL_½ä÷Ïl¢,¬Î‘ñ€=á¡ÿr„ç MŽ}Œ›µJ†á0Œ÷>Ïb¹¼™f(Xáæaú`K ®1\+,ʪ¶¿ü`¬ Éí\ž·.‡šüÖç«/‚Á ¿¡•~í?S¡C¦³= »ŠŽx1)÷–Þ2´Vg`e\Dù?D¥\1(LèNÔ¡“qÂOfêiCn^É>Sï“\Ô4¼®LՉ̫›B͆Ü9Ä›r9îܪÞÂÛÌ>•BaAbVÞ°±ŠT³Š˜Äi Tä8(Áh.Ûô%1ÊÃýˆ!²}ÈZÿõh`e Q n鯴A]$€D:QìEáÇQÄ 1EÇQä 9E‘ÇQÔ…QÔÅr O „Ë%:],}E{å²òhø}ø™Éb¾ß2ÆGf!(}v–Š M§Ûbn;|ôë GÇí1Zc®ïO ž¯ž@»àülEâöÊn˜ï´‰Ï‘Ø)$~Ix‘ø$qIG‡Hò„œfú/^!Ö Ÿ”OxˆÀ¸Ï­« Ž!š–_†ö§)]Ôñ?º­È endstream endobj 829 0 obj << /Length 2991 /Filter /FlateDecode >> stream xÚÅZ[sã¶~÷¯Ð#±°Ä ›éCÒi&él2mâ>mvvh ¶™¡H•¢Vvgúß{x“ Ûz;}° ‚Àp.ß¹@ßßß¼ûAË™a™‰ùìþq–%ŒK33qƸIf÷ËÙ‡ès^níæCòñv®%þLñÍËññ[zy÷ŽžüNÜ~¼ÿÛ,žÍyÌç æ‚<¤ …yÊT’NÉü§£-b– Am·ME“Ûfk¿¦géï~PÙ,cY"Ƴ%|„­3™¥³ºš5™B«œývó›ï,ÆËq;KG*­úLûJÇã4ã™ì¶µ+Úg8”Ѻ©Ûº½iôº¾ÃÃÎ4O%‹5pJpÆE'¯¢i·pº¹:z¨kßÂzþ=ÖñOÕÒ¾PguGÏE]mZjþ²]=Øæzy¹Û'SÙÝ'èE1ñX±$6 '`†ö«Ót[?üñé1_´uãÉŒV^Y¹ÌWËü®WH\‚V˜î¥·O¿²¥ýôl7›ñ'O»øµÞM)ûÍýñ—º¼ lŒÌøÈ…9ïY2ȯ^É%O" Fö`ZØÐÑf7›„m¢Wßs;Gƒ¸åÑv“-M¨'“èG8_‘WÁ¯:zŸ?5yõîÐ*â¨nèC?ÿó­Ö‘;Ϙ„¾`ó†åHƒQÕ2Ç'xUÑ£[ú‰84žŠÏ¨ß¶¢°™¤ß N€ÓÃÇd>1-ÙN;“y9ƒfÉ`Rw ‹Ó ~¥ôcbø’°ëžÈœ3•)øZ‰'j6sGGË«e`Y¡׆e…L¹è†0OCUL*jµ§b¿ÇÜð[=#ªÐj¢ÿü§Û¹RÊI­¨Plw$†^\ k»Âÿ„H pzH€M‘?” ‹jOækðu5hȲXÙjSÔUO+À·D39°åœÄqóaÖ¥à ïfÝËYw Ú¶°nŠbö`ž!õå©÷d.·ÒÉ–Èïž‹ ñy²5²uè-6þkMQâ&ò#mwž¼µË0§c° .=§¯ÐQ» xeˆ VF€+åoòÊB2 «Bú ä¼tµN§ÒU11/7È,ŽŠGz÷<†ÃˈK¤Þз¢¸¿¤ŽJ"Gfg?­ëu8sÌÌ€WÛ í4ñ®=‰–8ª*—Sa·_¿/V1à’ÑoÖïò»õº x„Áö²Ûæwôð!0Î/PlÛM7úª™ìÊrÐpÕ>ŸJqˆÒkÆ®hóºGÙ !Gg`Ý—>¢Zå>n‚Ó-÷£Ù.„ùZ‡ØD©½z'îMñ®¢·§c°¡Èp) 4áý˜0àñŒ)eÎâ”Nó´ùÜaîj Ð¨ê6°ÖÁÓÞùçû÷`´?yÐ5ð™ä¨Z¿gJä'{~Ec©·øSH ¨}eIm'5Ï~×è Á.Œr=kPØé‹0’eXÁš¤Þ(ŸӰ8²CPg`1¹ì~ÀØð‚RsÝ`xAªNï¤åãEJOƒòUùïݸíz=$c8¯[Ú–¹‡“¶~FU¾v–'±Pß-äT÷åÁE‘ñcʺWŒ>RÓ8éç±*œ^—í—{õÑrïQŒ†2–ƒæ7¹“¾Gà]át–x8z ”&=<¡ûÓº2ðËp&ø4vˆ$ÇÁ$éÅu£‹U&¯g±QÇXœ@>“žå±f±H‚> stream xÚ­W[o›0~ï¯à1Í…ø4Í˦UÝTUÓ–=eQD‚³P¨€¬©¦ý÷Ù›u M÷Ç>þ¾sñġÙÅðÆ¢†mº6ÂÆlcØ®I ¹&¶ÇÆÌ7æU‡—‹âÎíwdãåýÝ׫+öÛ ——¸³ý‰,ô9òÙ\¢¾x’Î:Žølšu¿ß­¸É’.؇>x¡#ö´ä£‹ÙõMêØÆ#s„1Ä X®ñêa¹ñÖYœH”ýNqzàÆriŒÐÛ­|xP•¢‹r¬D,dË-KÓò”¾ÅOZè²ÓÃÇ8ìk"ãõܳ”Wç]þäSŽ9»Õ‰` ¢öt*™~ÜÝåйu„q$ ˜á–í“Þ³-ƒ—4Kök>ÎL°gÛ@²¨§ÍMŸw;Ñì, Ö0"L›ªí› a&Û Oxã'Õâm2]!U€Ë‹~…2²8 ŸMåNéZ>E·¼q|¥Œ"NÔ4d@:<š$^…lWÎŒtønÛ‹Âð|ÆÍ(e¯v[®÷S4Ñ9ä5ý$ñ“l!Î3×bê£I±¤×Óu×mG¹Vû^n4Q–ã×Ó‚hR,ÑS:µ}É1çEXTrMM„4^zs.­7wìõ`f ¡þ{œqu3µ­â¥)K2QŽ[O!y‘ð)ÂZ,LÙ‰5ŠÄüŠâ(çŠãrã[¥PœæAÇ\qÜ,D'Ñߥ¸&Á)—2á§6[gÁoi>ÆIðo„†rž£ê68žú`w{™tsº€îäƒ* ÔGº(%nMP‚Ç–;*ðñ_“Y¼ÆØËå„/Ç áÑw‡Gà ÃÓ,·N/' ÙßÔ]µzð8½ëÉû„(vîŽåá¥j@k`¿¡ÆHÕØE¥-F‹äü|Ò€ïjšà”·íSµœb“PZÕ©çû5™*]–¿ÕÏô&HÔÕ*¿e‰sÆ ¢¬!Ì¢[Óò-¬èj¥ ¤:¨U6)+¯A:møp+¾vRjÇZòáâ9+?¢ãk'“³ò{…¯lÎâÃz>Òô½:G)ƒ¿øáá²àŸñZ@úÜjm"µøÅ5°qË“³`±€­î4ª=åßKlÓéïžK,=}+VnUÉžMš¯…ÃÇpMwLÆâ_˜l:˜ûYüìI?j Ç‹O³‹‰Pæ endstream endobj 841 0 obj << /Length 3131 /Filter /FlateDecode >> stream xÚÅZÝsÛ6÷_¡éËÉ7J| ïž[é¨ãØŽ-wÚi:Z‚,¶©”ã¤ÿüí EÊPdÅêÜ‹D‚à.°Ÿ¿]ðÍøèÇ·"êE$ XÐÏz2"¬'½ˆP ÷ÓÞïýwªšçÇÎúÓã?Æ?ÿøÖ§­ù‚Ą̃癹³$‹Óä«Â‰GÃñѧ# ¼íÑ@8!i.ýÞdqôû^o îy„GaﳞºèEÂUÚ»=zô—ØaII¢PvWYæéªJòÌ,1lM÷) =¿^á礚Ãf8ï/‹¼Ê«cö¿,ð§ÛPá?b½ƒeQaˆ<&EµŠÓãÏüþcžLÍU½ûõb>x¾w›§ª¸QÕªÈÌ´²Š«UybnFÙT=™ËìÛc„ ¬#,FsœäYY™i—«Å½*þmnž,™mÏ¿~¼0T=KïÛä¾~¼{¾®Å];VœÆ‹ûi|Ò~b®óû??>ÆéJí"7ZæËê<®bK1Y~œÂó5=÷,N'«4®Ôôý*Ϊ¤JT¹~wò ÔDŸÛÍ Q„V=7Çó¤û¼oþE¿š+3gésµ0.655Õ<®Ììúí,¯ê¹Ù1“}4eg'™ù¿UmÒúEN9)ZKxƧ^Ó$NÓšÚ½6q³?´6ÈCŸpÖž¡Eõ\ Ü#2jÜ'žU¨/³'í0½ –OGðqúàk ãlóWÆEÿƒGE–”s½:x€.R®&U–³Uª£yaf«G\¼ÊÌèÚw*íçhx§Š"/JÔ"±Ûíp!H$h‘Êìê`ÒáíxÅë­7u„²zÖ@'Bèm$èïôĬü!1K/Í‘À¸¥jv9ÛxX í˜övÄN-mˆš$(ÀZxIæØã!á]«õ4}Yª’Ì—ËçÛ‘`X¬ÑÐI ÀŠÙà߯,¥a{{wv6¼½uˆ/ m‹‹¨Ú²¸[@,­Œ ‡}0TxÛH`Ô¸TÔÍ_j<Mÿ‹{N¦q¶`"ƒ¿ µäƒXã*)g_’ìÁ26¾a¸ÁyF‡ÅÀº]z;>¨l¢¬óT1Ü6–î{“Øšî½Í0ßPæ=†Úþ—èøm“îjĈz@%¤Êà…ywúëh<¼q¥f0À‡D j¦¯LÍפ|jW6üõl8<ž?·©Yð¶-°¨ÿ.~J(÷Õ dö~­ ó@ûÜ'`/±˜WO¥¦Z®p·ÖÚ€yâÐŒÚx©§›×"«­êˆ‰ø¾ú8»¾Þ ·ëCD‚ø€­ $÷VGÀjuH£p«#°á &ÀÆÌE‰N«À•¦¥h)&à-ÅÀ£µbðÅçŠ øZ10ü†Žb}3dÆ6@Ó7uÖv!ÿ¥Am|uíЗ 'ÑqYÄ_¥/Ù1MÊ‹,Ú<»ltuŽ@"âQ—ãxtù›ƒgƆk¼ìp½¯Ÿ%óHÄhÛ(!>¶ó„Z€ò`0²Öe£ï+ØþÅŒ§IU¥ª© È)nŸö ãlOŸÞa ðO}y‰üp§€cm ŽÜ¯Ç§o.á‹Ä :;kphâya—õõÕèrì0À ~•1Ú6¼-«|i#ËÔŒ „Ðÿ毋̘îxõ£ 2¼é„5=A hq½` ^„j.?P.¦Ê*Š0 "N'R•I¡¦?lâ %ïWUýÄbf d^Vñ}ª~0³ºðÃke¥Åê›ò…ÐèñÆx×$„R”$ð›ô° ¢p…>¸ö~tquvzá°fŸA¥FøJò¡`šR ë*ñòíðôvôft1ÿö|ãØoX—@¦tCèXÔM›03µÚ`Jln7 Ç ’áÃJCLWx-Éf*.“ûB—É€!ïc)(hÿºÈA] óò"n‹œ²o+´6ÐW»çšlª–ïnðÒF?éÃÅ!¢’‚êÕp½¾¿Bî8w°ŽB" 2=k梅‘ë:ÜïÈX ô1ÆÊ/V%â%¼²ZN!P ðò.â ™¿Ì„Ù*›¬{Z]I0FäºlK2,™Ô4šé¹„Âö£CˆA`ÀdW XrÝÇ“¿ˆÒ{Ô«lBn®inà 'œˆº ÓCÈMdv ¶Ð-4ålBzDøë&dœ–jW†8±4Qäd#õ˜Ñ^MlsÅ>(Ô§•Ò ƒ»Â [»Å5 P ("ÔS SÍS¬Ö1㘎0Ü(ÿMÕ·H¾ê)N§„ÌÙ¾uÆùè—áÍO£ËŸþÅ¿„W¸¢{]\•™¡Iy‘ÍÕXožŽ‡·[J ¶êF•í‘(µhú&qU«ÇȯMÁWgºiÒDÜ-¡ Ì+ÚWl7S®`õ£«Kàp“ ­×AaT*އ8f˜¿=]ÜÝ ·tOø†Ün ›¢eYËy\Z›šÅIªÁ‰6ÓnSnjÌ[•Ù¿¬ÿÊrågÛ´[߈|¬j¬½EÜ!`û}‘óðææêf{â‡DH`[#Ÿ6Ûóáxx6~YÉg¬ · |…1[ê: Gt;ÇG¬kÌÌ÷!V%Ç&¿ú|KÏ ^°Çø`nI•®J‡ âÓF[—±Ã(„ò¨`Ö.Ô’k67Êf*> "ÚB<Ô,kVä k©sÆÆqIcª—×ÿm²`µË¼Ýv- Œ1ôdÍv2WmTæ`‹HIăᫌlQ‚Û )ÐR³ª"y„4ô¨ÊçÌ!ÇAr朅ÄÛd>3Û` ”ò L±Œñ‚.Ó,ΗtψœQ•áK¾wœHué,‘ðx¨RY@ ¿®;') 8פ˜Ï7ô®¾KÈtæ!…ÌQŠÌ<°E¯*2¬nqÄfœÝÉ Pà†aÔ¿N•†28Õ¶\ªxR™¦«ÑÉ. s®'veFý6­U5Ï‹²vP¨Z¸ÜtÐ"_=Ì7»Æõ€°ŽÝ?ÔƲrCÀ(ÂÚs´—ŸCº>i Œï:€lÖ莭úÂmЋÓºíž&ÙÆF—M£Á¶–¦ÉBee»–1;î <`nŒãɵ‘`O·àšÁÈÀ~÷>Â}z¥èôaµîÃ1aVZÕeÇ,/6Žo—…=nÜê‰K8TÐëÚØ.Rv@"‰g5F:Ø@Ó~m7íqGÎ…ØÖkÍr Íœzo!~uÄgøº Š^ jÐÉÔ )iÑÅ…[m›‡½­KD—êà骶ðMíéÞ ’ÏLJԧ¶ù*›Ö”VÉ2MTáV+”qRˆŽð`Š×Q«S±ßÙoG÷¸@5-Ão)1!ë1"þ-íC¥A!rPíC ixíkdb“êÝÿEý«úh`»îå.Ýøe|§îY[÷wÛt½@÷€èKt/uº·îÿtæÑu±EeóQK—Ì÷åHâR6áõÁµ0ävkÒA \ú;ò—h篭9Œ{‚B‡$‡mù©«›çê.ôFÜæë/Ê^!tñ¼(^”Å.€!äw¤Fó-ã÷~"ö2˜ñ"½$1R÷Ö-×ó¢ )ýÑn > stream xÚ½Xëo7ÿî¿BÈ!Àª±˜%¹Ï¦-pI4_.­ôƒcôв¶·u–ÜCÿ÷›ácòJŽ›"l‘\’3ó›'çåÅÉó7Ñ,&qÀ‚ÙÅj{„zÞ,tcBCXYÎ.‹uZÏ^ä;¹lÖå|Á"g‰ žs“ÞÎa&Í÷;œ”­ž4k©•lÚªÐêF4­Ù]®ôZ·Qd7e•6ë\O?º¾{^fšBõ‹ºÖèé|á3æˆb¹GèvîpI+'\]ük¶ ‰Aºå„úTK§U©¸Îd Wsn8âœ;å5Ð œßdÒIõº¢ƒd¾ NYÌ©S㨩`$ÒbÎB§Ñ;Vm‡a‹š5ß²ˆóíZš/†¦7D×å.mä’(¦økΗm¥ÏËÈ7™<5:®=g›f™^ÝTÈcdyìhT—®ôz]ær¸rïˆÁÏÀWŽöp§N*) %Ãó7>Ÿ…$]ŠöÖ«$&!óŒJÊàõ9u~:wCúéÝÙûo¿]¥…ÈÝôù©.³1µb¬¾xŽi3C¥œÜ8X8*.ñhÜRî4™âTÿ&eQ7zø®Í¯eõžìøþǧ3MÈ“8¼ÿƒ¹qÀDþ‘›G‘ÈD~½§Ã/z\^ÿöéUŒ®dÝbžÿ©oñ‚xüáùs}ÑZVR0<àï¶_ÚJ­ˆmÙ¢Ò–V-¥Ý lV—f¹Ô¿·T\î·àr¼UèŸUªl‡²I¦ ²Œ×åG¼Í ƒÊf ë÷9¤±÷2—DŒï}c™lÖ‘Þ‡;!€È4è˜Z0X'aÇ *»ÌäH8Ãzt³B‡xò‘r¯Pÿà¶ó¼è½Z6ødÈÂÉ\À4ÓS…EŸ¼Ò¬‡w6¨_Q†’áÃßkÿ¹Ö´Á Ãéq\¥þï¾™+hè1ƱÚËb"(ÿ©së°”³™•1Øî K9LÉim«Ì&kÑŒ?Uò÷6­¤©t”>m¡¡9Ró]ÂBZÑQyw¼¾8ùý„º;£3RBcoÆcJ\6Kò“Ë+w¶„o€áq4Ûªù Á(›Ÿü|òËÔ9z„s7¡º P'LÀ‚¤a,ÉD]j¸Aµ—˜Ú6-n;›ª„¸h*³Jn*YK]H ¦Âñâý£º¦^°€€„Š N8aP0jÎ+¬–˜¥YjP·¾Þɤm0 êh7“ÐGÄ ¬„9–Ÿ÷Ù³Žµ›lîCµ a,RUù‘oP-QÀ-B+aP\ÛÂW×'·ƒ¡7uxáâ¥C'&Ùl`í,öm™¾¯i0sβ,N3îyÄóƒ/1-Â{¾¯®b~pÌ´"âsodZF”!8…DB4šR¯X;“fymJujGÿhÐtåù TF±yhº}UŸ 3+.‰@!q£ŽÍ·›rÓÜ—…»$ˆ}»©{߈ú¿S7$ ØçÜØ™¥}|t©gO˜×I³ÄT£ õÅǯœŸ ²Ä £ý‹††NŽ­ `œÁ+C4êKèµÊcQ$fU94¬êÇ z‡†¯ü‹žÝÞÁY ßá`=pí}‘z ü9‚«àäûÇ ÐˆGN}úX$:§)˜b þÃö{Ϭ»§ºÖ£Ç"P:Öãˆ9‰Â1µn6Yš¨ðpŸpÄIù{r{,Ó&¼aN]'mðwM³VРÕ@w `0à[(ñ—v–ªNu[¥.‚Ðw~C6·ˆl‹¶¨á]­×ÚZö´&„fâÈŠqž‹ªyßTqØ!¡¡l$<-´–ëãJÑR,õºÒ3üVÂDqœ¼zöLoÝ@€o0 ¨[õwÓ•ÀkÑtf²-l€®N„`Õ‹ãϰœ^ªËâc—EõPj€×ó\çb9¯Ô»°"µäªù¢sŠ29å9‘7 i•K.úŒ¸VÑWß‚áq7é}Ža·gZ47¤«Ñó º8œâÃ0¦AÍCk{I¶ð²é|ì ®0ó`f!á½_™ŽP-M1.¦ Ë;½ú’X,Á}ã=›{eãŠg^¥8@ÝdSÀ>ñƒÎþ}÷Z¿†I„ïñ ¥!»œ‚‰pD¤;­§K(L“¦¬îÐFÐ^‚Ðy[$Y»Üçn ®€®ÝsZOÅxŽÊy(ÆâÄõg ƒã_ã½8 4ŠÔUÜg]Œ'ë)l `í¸§ 4Ë kŒÁ¹y?šNS€JrN84•ì]ªÒ œ>d–2ߤ™—K½ª"x‹ í«ÏCÖ“°ç¼¹¬7"Qi?ð0©>’ùÎQÂ÷bõµñ]ÎHÆctm 6ÕµtÇýʤÖòðÑöd€9úUû“©‡áÞáuÏ"Ûl3 Πߥ­ ¾ºuia2ýD¤übê šß¨½ÍèyÞIÐõ¥‘Ñ›ª1øx,@H|¿ ú pXžµ—Ù†íÀæÛ±\‰˜† …:Å|ÒuPSÌT,ËÊm?mëq×Ä•AõsÒ¦ÕMM›µáµ8#-–åÖÐúñìì¨L þƒ¹y³õ÷ƒê¡’‘ªnu[ç¸A¬EqÓu—s«ü ^UOFˆK܇«bE¶ƒÚôôîÿÕ endstream endobj 853 0 obj << /Length 2411 /Filter /FlateDecode >> stream xÚµXëoÜÆÿ®¿‚úádèV\îòÕ"ìFF8v M‹$0öx{:Ö<òJ.-]ŠþïÙY¾î(;†bòícvfv¿™å‹Û³«—¡ðb–Æ>÷n7^³(J½ØO#ïvíý¼¸ººX†‚/ÞTFÿ™†·[MƒMUÕ}^ÞÑ4ÛVy¦š¨ÚUeq ‘~P»}¡›Kšš­v»ünkhXVv,Vpàâ×Ûï<ß[rŸIÎ…DÌÓEÓæFÕªÐtdSÕÄäPµnTíM¾ËSèòª$º}]ѱ› öûå7oá`U6@÷‹úðÇ—ßÜhó¦Ýé:Ïþ¡ŠVãÆ¹©  9¿$Î\/S:Âÿò¹¬oL –8ïÚwHcjeôÝáÜí\­œÿ Ïÿ!Ukö@Óšw›¼Ð½|†c°9•ø, Ä4.^•&WEþ›îêÖ‘Åóý¾È3eœé!*Ê5 À*ÍÑ¡Êi=s««14L[—7F™ÖñhìxÖ Íˆìk§ÚèU™;Ý;ãYù†Ž!ݘÛWŽÝMU|ÐïnÚ,Óz­×–•Ýø¯å–0%SŽ{ðƒÙXüÂ…,íÏ@þ³gJ×µÒšfëèazGÓ5‡)*oMò•=ÿxLÔÖ^Ã%@ø äØtË]ÿ7ñ0õÿóæýÈáΟ•cŒf!ÍÖæs—+̽ûo½¥TÖ·o^ÿàÂzw(‹ýi„wÚ×_Îi=2Ú+Âý3¬ìÄKµöxQþ2ʽ|þêõõ·Ÿ­Ü|(¥óÍNÕæS»õ»Š©,⸱sR“U{}yt¾Ö]ë2sÓ¬jKóXI@‚û¼(h´rGÖ:«õN—F¯hÀœÕ¿ufš)‡`¡¬’ÕÒ+S”°È¤$±9#}^¦3f¿z™x)K£ ÂZÍ%K¥‚qî0ÙzXúpY7'bQä¥[FcãoŽbP—¦€,–}ÈÇüA¾ï ¸†e½SÕX‰•:05Ôª†˜ª’¤ç%\κÐi0#ÊQqÒ±ùÛs$;»¾=ûχußãžCy"‘L€Ðlwö󯾷†M06iâÝ[Ò&È®ðnÎþ~öÂö9c"L™ŸHËŠKg<„•S+‡,Jy§£Küt‘È…»„QéŒjoO—VegÙ£ËÛ] =+‰G#QË Y‡àyÐ?tž'T=ÑK@pø½Å`.‚d¡ëËóm"{Ú“º|Â;,JÂñE¸ø×E"U ­—Ÿ¶XÓ°môŒÈÔK{¥¾Ÿ±lÂâ@v$X1,ç‹%Ö<[* YÑž¸¬èÁ Ä‚0ô¸S­ ‘¢f2€ˆàþb…ƒ[XðÌ-ÔÝàþâ¼K„(G ÑÔøV+.!øß[óÒ¬ik72[ehä˜×4³ù•ØüÂé=mZ“ÁTM5ި߻YE’(èç§¼\WHrßз¯__NäѤÔÚ±îF¯8 Ý`£2SÕô¢e·wL×U9ôÙ£ËçÃ<"8pí;MÔÊ^ѪG±¥ÂaP j:Õ\Ò‡ DÚÀLCƳy:œ³Ðº£„Ù((ïÏwª£pdã#´ñ Ö÷€×´‰ï¼ 5¤Ý)*¢”ŲËI’×5©K!¤…ò=T¹^m›ù†? #“^@#ü'yYÄ!°–DZïæ«ïÕ{_¾fA7ÊlN­bE·îàô¢R°$ê›íï($“Öb׺ïÓÀª O¡/°ø&Çn…µ”ZHåzwâÎëXMãù| Þ+û˜ pÂ(êôLžä¸jì‡À `#Ü0ó°ôY0X¿¯Xo“”z{¼pnè~jqºRM­š;2k;Ç"G㑉ú`Œ—µµkúBÉbè&©Òw¿BˆQŸ"e¸¸^ç†Ö]ß'6\Rs~£ôSØoç¶¹w{øøéV•wˆÛÔëÈO¼øAN|j=õÉ6pzÓÓXÚº#×ÿ¼žéáÍÉ 24h<à_Ò¾o_|w3û1%¿ÛÀ±dBØò[ø‘O)<Š¡è¥ ~ÆüIF†§~$bË*ˆƒþS «HƒY5ƒ)gOBšºÒ!Uäð½W›­{I‹Q#‰T]¶ã6—ŸîjþäâŠÀ|‡;¢}CÉ:<—¦é¬tÖtÖï—Ë®f3^·~!œ†7îS\ÃñCY‚œb?š ÿ‰+DȸœV£ÞCSsä€F;ãÃ&_ŒŸº ø ìµ*Ž‘ON‘ÏZËÃGÔ:ÐBl8ñ"éŒóá K{ endstream endobj 857 0 obj << /Length 1388 /Filter /FlateDecode >> stream xÚµX[Oã8~çWô±ÝÙß’Ø#ÍË®@Ë H[¤•fG(m Í*$Ý$…ÄßãØn.8Ð2ly Ç—ó}çó±sœßæGǧ!›ÄHƘLæ7“X":‰±D$Ž&óÕäëô—ÞoF {ôx»fßæŸ'xŒ8!j¾N«Y22Ý”Åm™ÜcYäu’æ¶ëlSlê_Ísbþeé¢LÊƸ)JÛš”·*¨–I¦LC^äYš«Äöƒ›ô.}Lê´ÈQC‡#ÊÂ>¥ÍŒwÜJ•©¤R+K¡rÞTnžªb[.•£¾²OÛ|¥`:­Aµ2Ï'Ë,sSYûr»˜é€–Æ<‡2U¹ëþ‡øZ.Ïá‰ÖŒ!³>íS'Â]QZiÊÜ5Ñš†û´JmhëºÞ|<>ÕÿQKM¯BË"̓¢DEy{lDÐXˆ`ÑûŸ3„b$(3P_¶w åÖïf·¬ª,*¦ù¯þÝ&YZÿØ¥PU—D6àÏɲX¤IŽú8 8 ñ”û2rÀˆ™]™a=6Ls&²u@,½;À»鎎À˜D¤§ 05G22Áè„(ÂfX4EV¹£Ù%³vx>2¬Õ†HÉEg$¼K†r»\ Ò%m¤ÖFеámöHŽe¶t ÊŽÒ…ÂJ`ép7Lˆ1:Q4¦Î°UcÍ]:T¶êÄ)XNÍ€"é233ÌCGH'êÐ!LƼK'Ôt¸£…`9ú¨e:"D-ÏÒl¾ÎÎÚ‹NÜ¥Ã1‰{êh­c—¯±Náè´ƒá̰öÒ ¢#ÆépAØ„ï[k@'B24<ߢNàŽÃî¹í«ãÎà,oÊïʾN›%ó•e¾Ù㿹ålóe[Ê«û$Ûß³ ’8š~²1ï[dÜCm¹J•«]Þý˵qß?‹Ãƒý¿V}·úrÓ´±wÂø~ÀæÄ~ï¨ü3]žÚRäPÄ‘[Å+i ^©=¿¼²Wcµ\cÎ./.çíݸ?ÆÖ)¶Ër øº>qlmcueDÄPPŠßÎåËùå–cÈÐ&xcïíê䯳¹Ýæú[ƒ£ðg‘mÛ½{ªkAäæ3‚(³—Ýþ8·DõZ¹o$­ËÝEÅ~ùîSáûWüÍtj4ýkŽ8ïÒŸÀ¡”b/N ý PÒRBÂ&°!%C ºФ)¬í—mV§›,U¥åñú|px¼¾ò±‚©D,b2ˆž2‹Bq âX¿ûû¶SžÉE)å„=›ÒAaC&#Ü ÿ”«a,ð–Žõß8ÊÕ0†B3Â_BÄÃÛŸDžð;SžÅ,$îNé.þEÿ%¥#¥ÇŸŠ Ô£ô'L ÷6A$LÕhҼã“ùÑ´v& endstream endobj 864 0 obj << /Length 2709 /Filter /FlateDecode >> stream xÚ­YY“Û6~Ÿ_¡x–²G0‚—Syp’u•·çðäa+›šÂˆÐˆ1EÊ<…¿r¹Š#|C?RÀ*û,”Ë߯þ¹«H EtîéÓ§´ñjki°o››Êîè£kª;[|…'Ÿ¿Ê¹È• R‹\ëÅJ)‘Çšh]mËn¹ŠÂ$X7»}e{ËŸ=ÒÆÁéÊ5Óà»gÏxqè›¶4Õ%|JÜ =Íw–½³ë¾ljúHèç~ tTléÓ>ì+SÖ§×u½© Óž©Äá¥fè÷pjdåe‘‘1‰ÒlHd™ŒeVB*t[^ï›}®˜(IûMp?ÜE#!"Ä4·iZ”5 wÆoˆs³\© ™¤o’N¥`~÷xª£Õ¾¡ÉõÐõÍ®ü“õÛ¥ xL„íÖ,áç®ôÌÊ%¹³üU*¢ô ° •j¥E¥¬SéíÃÒq˜…N§—<· ¨{þnm*æøe7cˆI,trx•¢lAÓMû‘5A{6P@ºd¡ß¾ù‰{OÝíX7NG)M…$úÃĆÎG|¬TŠ,‹aŠ0a—ˆD$4‘q¼,ŠËT@(ÓÁÎö[|0xsæ®8רOå»B¦Ï”°âM+™‹8‹êfr°³ªjP ÷e}KS|7ŠÙÑŒiI^7F׺[ÆI`J§~šFórË,0¨  §³`cM?´–éõ[Ó{Ê|¾nx†ÝÕt5KG¬_wÏ/–`GIð½Ý˜¡ê}ô[T‰Ûv–ߨ{‚ÌÙµ$Ìnç20œÊŒ3Ž3Ü@þPØãÂÈGK$‡ÛM?à‚--­MMSÙØê#ËÛºñdA “j0g¾¶Ûòú=^jˆûn"‰çüY…ÁμDZôE1.À¯—®ño€ªÓaðj vÖ6;ZvüQ¿Ïqî_;ö-ÞWö¶ÝÙ¢4=Ï‚;V7f¿ç}7UkMÁT(º,㘠 ¥bÉÄOß‘ã8¹à!l‚À]Û·¦>x!j˶³F1Ï1œzàG/›q. L¤™w®²É ›/þquñáBÂr¸ ™Å"M±„HëÝÅo¿‡‹Ö@åÙâÞíÜ-€h„D«Å»‹Ÿ/¾ué{âÒY&ò0s¤bÅ™˜UûþÜ»Á·³0ñLÞ—ýö¶zp)ÐÇÇ=…õ W2‘"–˜ªC‘ç|Ù]Ùö¢XÅÁMÓðh¬€kÏ"‹—Õ-$é~»û¡),íÝÁèÒ=¦Ì"зš˜î뺰Lh^Òðí°»AïÁqsóÇõ©&rbã¯÷s$p¡=¿fÎ×à§»G϶öv¨L[þé¢ËuIõrÆSÇGLµßÇ×Ù¥´„²Ì\;RYÕ]÷ˆ‰ºÙdzÚèÒå÷¦7OY#ûë¾æéãÞïLµz[ü<˜º‡8n»ãÙõ gò‹bgDŠ öãR|ÇAk? ‡ )ÅŽÁâ M¡iQäÅ?¶­S„¥Xä)B7G¶«¹µ);h¿ž‡¦^scOiy/ئÇ]ÌO1´˜&?¥TH³! füÖº hq©¥‰Â\â!Å4·c™JR‡Å\TLjê¼îÒ,Ì47[hn‚qbŒq³Çxî `Â[,í Ü­t®ì ÚƒT+”JA{+¿m¢,œ"<õñœ‘Õ%ÃZ ë߫ޡª‡¬h2¶ëyÙ¶;—¦x+„¦²vRÊœàöÆ\i©§Ó2žäxÚrãB'­öþƒ ç´TÖ´rØbÚÛáhÇ8S•ÖM i•Œ¬©ù")Ý#–˜ÇÙ:N+, Œ‡‘ß´oKX\ÞRòpZÌÐkÄzbíqtÃngR†54}*¹`…ߦu L'hÎà€1PZ -£éøDḛàQ¬vŽdÕÎ/aφÀILÚ=Ï^UEv¬ÊýyZÖ”ÁIúÉUö%yYçJ@qèH¥*çŠâéLÕ£…Û•y3©WG©ˆãÈ:#B uV*é—HC¹¡RG)\CéâÃLÕ‰4“žý^ÀþðÖùZƒ/xÅ'•ì§ ìĵE-€|µž(£L½@C"c¢ ‹$Ô·ÂüÛªŠ¹†8† ¤„ˆ];d¬#©æ"F"Órj\G{Ê’ p–s} “²’¦ØÔ`äM-u¦è+†]Eg§d]ŸàúÖƒƒœÓn.¸Ø=ççs˜7UŽ.1M2ønÆrNjÊv˜3x€uÇÖ{%ÄSˆ!½½„Ë"(¯]º¦ ˆ>s¦{ï„G­@s†Bâ“f·Ô‡ It`Ҭ׮6Æ1)©ý@í(Ÿ-¯cÍëκ}0‰p‡…Œc¡æË‹ÁOQ XÚ¡PÙ3Kµ§ä™·b¦58†Q¢˜ÅÊñ†ßÔN€A×7„~aì¢hòI¯†RUiù¹ü¦$$HF ’I‘ë KÁ3'è£3¥?“4Äãô4=ø†Øº'‘60á¢ýX<=¦“P:—ׇöW»ŒÞž~:[³ŸóF">¦Z×ôà Ý€!&Â’ê—5ø=Ø®Fü-æCj O’òø%U¶‘`# ~2Ìi;šà®Œ¦@4QðY‚ï¹ïÊàpX:«“äIv ÏEFzõ\€{`S0>¦Î•Êɹ…‡·æäj¦g@>6ÕÿÖÒý{7‹mtr4±9ù²0ûžrÓ”hùK'Ÿ³)-Ce 2ҠߦíŸÐ£ïˆð˜Û{çšbØííhÂàŽŽTB©1íâ"Áøè´0àf{J¥~ó›v]yS}Ñ©¨rPn¯³&jbL¸ùÁ¹ªFñ§r]¹8‘Ÿèƒç@*KÇ}ÞÏ©RéC´&œ wqoŸ>Ðø]´ë<+h%ø{lC*xU¶]5Ø—)x;9Ød¿kãTY¯«¡pq/åîÒÚÙ.T¬ Ãä'‘t¶™ ÐZéB;Ï/fé# UÓ&×ߘMjo> stream xÚµZ[oÛÊ~÷¯P_ *°6Ü+É^ $@sƒ4==ÇZ$@‹”ÍS‰THÊ—ýïÙYR¤´’“Ø}HD.wgfgçòͬ__ž½|£ù$a‰fr¹œð0d\ˆI&ŒG0”M>U]\—«Ít¦…þJ?ÙC™®‹Å|‘6í_þÞnªMûþÝ//.>…:ü)oMï~ik|)6óÅ—ÙŒu“pþñîߟ§Ÿ/ž„“—Œƒ@–m±ÄiÄn$œ ï?¼{GOHÃ’à!SfL¦…uó4K7m^ßÂ%HõŠ&yvàØÏ.à?¿ì3²Dð1ëÿâ§—oâ‚gVB˜'8(ÚÍ{_µùùt¦’(hoÒžŒê¼­‹ü¶(¯é½½É‰ÜøÀ¸a’ƒê,¡Á.YÁ¸ÝÔ»bµ"ÂË´°O*°‡Årvîa«’Ýêî<˜(΄â‡L®¦3¾HÅ’Du+ì™PuÊusìi[‹%Íåf¨’„E<ê&[“;¤( ÞkÑ”‹m]çåTÄA»zp,J:_ÃâD¸¦euÞ´U¶EUNgRó`]Á6ã Ëžf¼]žãÜTSØþRÎoíÿµOÉ\Ó‰Õ:ŸýíòìËî?œð‰€I1ˆ`¤f–/Ög?‡“ >‚1™Ä“;;u=Qe O«Éogÿ<{}àîB³––”Ò‚¸¦Ç HAlà|¨3ÜsYµžˆ˜…±þžS='r`æN™EK¿‹ÔˆÞ†ì˶É3·¢¢ßêªM ·vSëtEÏ·Sm‚t:ãA=ªéÕ*w.«Gc—¥É«mÞ8Ëm*aÆô–u¸£„…¼ßtZ¢€RZÏ…d[ÀŠ/Nö}YÕ£é2XTeÓÖ¸'4H7MзCâD¯¦ýÙOWÖ«m™54 ifê^—ÕjU!í»†yŽ3!öBUVmþ Š ¤åfUËüÎ…W;ócùÙÜGt²mºÊ¿œ¦³Þ£s„ÌêêyÄÙþa²™]üš7UÝþ Ãê H‚YÚ¦³ Œ1]™]Üwç#•MŠ>?bð0_ì±8>3Û›éÎ廄y ÖvJž¯ów.plç”ÀeÈ"Œù8©Rpr½Àû¹³“ô«,+0€ƒ ÓXaR<‚°þ¸v¡]…avÞÔÒ{³Ýdô|[T+˜ Î]a˜Á”$Aµ¤¯7†üNß„#ZŽ)tÌvK×›U¾v) œ»EDc¼ªræ;™Ã¸AQ´ .DPÌÌ],¹-R_Rò –o4ÃGložÍ×E¹mæÍÞ4ÆXé~ØææV{óûƒêßjl='$œé|¯Š,‡Æ'å÷èàé¿|£/lœ+zr/7š‰xìt·EÝn>à^U•{•Ïæ;ðÈßo×WyýGWB]ýÞMsÖC~O䨴¬[ ¿_bÇÞ–Y~ï2â¹Ï4‰¥K¤÷c†ãÔ½Çéú8§õãœúÕ;»GþH2 –>Òçå bXË`MŽÐº@ÔFy;¶¤ß#… Y-ûŠârÄ›˜‰³”PK< ¹+˜¡-)‡xÚDÄ™Œô³0û×\Ž[ýež* Ü.ÊÁ*ÿ¦jèã{Úxô©¡Þ}X ©gƒí¸ZdzÕcí .#y\KO7©“ ­è|e¹-2WHÕhï%SÇ–`µ¼€š¯q/UM-1C/ƒ4Áïù¢-¨Ðs3·å‚ò;¾¥n=„X#G=T7m±.¾¦; €öu‡öÝ2/»•{¥Ã@%Oªóv[;t@t¡*¡×æ¦Ú®2phë-¶,YlK¡éÊúÍëšÊ…0Ë–֙[²_½Ø“¸†ÐEŸ GÍVvûœ; V·yÆ(Á™)5 .öðU¢wU¾*·U‹Ûà#ÕöpG±¨·YˆšwâšA> òY=É›xÌ$Š?ðâƒÞŠ–½Kdæ>å FLI=¨å<‘(‚ÉÇ;"2ì«ñîàQi¹æ`#X¾ÚÎhÏ"`šÑvê¶æ¯{ów»IÈL¼—k:Ÿ`è22x3´Vݧ}Ñ^baC/޶6bã“5ìíY¸¶€[ØMèƒL‡È#Aö í ^xh™Hê<*JâÇ´Ç/õÊ«VäûN熠@ÒŽYOß‘kS  ¦ã½þž¾Æ­*×$Ä'ŠhvîS±¶ñ r‡‚ÀW,.Fß±™W”,ìÛø)‚Áø ‚ÁÛ rf4re!ÍŽ´§ÓgÇrج|¬)ĈÞÛŽkZ·Åb»B;¤¨ L+Õ~︋/E³×n¡Ýp™_§Ý>Ïû˜ä³.KŠÇìì<1ãþ']§÷xÌ®WÓ‡=_º°­™^ÙVXæyš¹xê¶®mb²“ZæªÈa±ðÄC&Aƒî` èWòp—Òpµ¡`´í–ìR ,±Ù?S= ŸwΣ.•ðÀº]F3¼aV(8èQ+mc%~ìÀãˆÉ§AwLê!DW$Å=5ÃÞ f¸v%¹ în (´Mëv¸5RŒ4»ih•—×­›çE6Û Ž‹mDÈ ¼w“®­TÉ^X 6"¨à©öUgœEÑc.'™}€`aÌ,"2”®‘ ìË->¤u'Gåµ Œ¥øÏôHןG1 yrB °[ÉG˜ŽÿÆMµ%VežwbUįÉ}­èÔ­ã’<46Å@›1H¨:6O16%Œš VIµoÀcÀR= KH>‘c–Çí;ÁXwÃPy2½Í Òû†Þ=Ú‰­à<¦¶SæìVÀÍÞ¥œ¾)¥E_Ε,âGÚPË]ÊEÖIJðÑùF<ÆÊÖ’dðvIßð’'^OÑeØGóeºj|ª0v_Ub)+G¿ÇN6¿ÂÈ®š0Ô#ÈšŒºøM/šýͰ¿Xæn¿Að_¥56-eÇÔ¥]¼ŒT¶Ñé­b¤2ƒ¯\½£Í”ÞkYºiñaÚ.â+=@ÔøÉê%ߦ÷@O}*+˜ÌUA?)ØC…¯¶¤L¬¿;Ø«ÄU'Jwèö5PžºÁÔ&m<¯¶Û‚ìš¼m{¦{7+ý’(¥ho`J vA”äPHGòI•FáFG– GO« "=G €‡ŽXž KÉ®}âKÂþMÂãqIìÒ†u‡Ø0­öîæ_¡WÉ/…H‚ë- Y A ÐÜUæ4¥Ù^_çMK/6׈] ‘)áÃ^™³v°>cK./l¢¶ïYQî§âÕå˜Ú– ‹ËÖ¶æ¡{‚óë J_ÞÝÍà 4Ï¥ý‹|Ü6q”„Ÿ]  u°aÔF[a ÛÀ…TI5…½è¸…ŸÜ‚ITToôwöÑ-1ËÙ×¼v4?…\Õ#»±¾-R7PCAqºÂMGÍB ”‰z¦ÅÂQž>FµÜ»µ`„ÆBÏu®Nô×µò¤Õþº×µ¹B Æw`ÿS†¾+ád÷GPÙùšîXaÆÿ§ž»‰AÆç踛ˆ%t¥í½úúí’ÅJ?ÓÈ”‘#¦ÕÒÃ0ŽmQöt† g€gF›¬J iíkäBüæOç*”€Ê$±½í³ÿ!$‘úG¯Çò[¸SôÜñRNy^-ç½*æ½tÝ•’Çk€~ z$ÈXÅ;-þ?±ÌP endstream endobj 880 0 obj << /Length 3009 /Filter /FlateDecode >> stream xÚíZ_Û¸ßOá§Ö[ÄŒøO$Ó§½)îöÚf>ÜÚµœUÏ’|’¼›í§ï ‡’%Y¶“Ø)PàžDQä 93œùÍPoo¯^¿³3Ç\,âÙíjæãJÍLä7гœý4¿}Ìêë…Ôbž§Ícy½v¾Ä>o?”Åú…ZY¾ñʪIŠkh4¡EÏæšÏSj¯³\06`Cf¾Íq[÷~—iEÊ=Ÿ®aAI•%÷ë4n“À,ÙhÒ$Ì*@lY¯(<¿œ1ÃØÅãΞmè_m‹°W?ª"Víô–á:MêÆ !n¿,Ž•ólS%Y«)ìki³ë…‚í¾_QwB"ý˜ôÖ‚=ØÞ |È@Õ55Iš¨2XÍëw<МE‡5’j6 pÖ7L1îD;(©ëmžâA¸Æõõ ûz€®¤j×ÛJ=؇ˆc&”𫤠é$ZHE]K:i]ü±¡ž÷þ„¶‘Vë2Y¶S½±ºñ±T} }>¤áð¬Ó<%m$Á˜‘ÁŠÆ‡ÕˆùÃ$–“VñÄWU™“ü`3=:Äè$x{óýß÷¥,"ævc^ídà%¥¤d‘µAR4f™®’í!eoýf·~Ùª¿¦—F³”ù¦"Åaßèùo¨8üFJ_R/žSì &G/CÕ¾~ZÝí-BU3ghÝ?N$pBX 6h\+‡©7È«ïn¯~»BCf|Æ¥e1P‹…c6³‡üê§_¢Ù>ÂycÒÙÙ³šÏ€˜´ÐZÏ>\ýãê-úÜ7®8³R{Rq$‰é:«§¸Æ’I«.Âì^ 9ä –¶ÏÓs~ž6b´2àÙimŸµ–)} ÎBr¦ÁvœŸ:KÛ; Ú°HÆ­ö$E»£u—7V+×¶*Ž8§™æn¦cد;Ënxm<%Œt`¶ù}ZM¹¤ˆÅ±¹[®ÞFzÈwÒ9(Ŭ“á©,œ91ÚëaçÀAÊ&Œ?—5ˆÙ>d}Ì;€ã]|Æ÷8îÅ;xIè`qíÐvO §?ÃÛá‡þãǰð Àщ"|€÷eˆÃÏ€„ Je`½Þ±í[ºøl:ïö6!}î˜qj¦•ƒ3ÁÏ’¾ÌIéIEj ø ¾ñ¼¸_8ΑåC¾è'€‘fVè~¢¿P-<ÄÆ:->bˆP­©­aGRUIÏ%Ž _Õ?½¿c CD¬/±c@NLEŸ)i0$¦¸¼ߨADù&X‹œYåèæ?ô€v·À?.ã*À4ö‹Æë}þ|»iàc HÆêð{ÔÎôõÀÇó+z¨¿$”Ç•´ Ù‹Œ¡V1é𺴦:ÝOAc î¯û4”YþÚéS°†Ã6{°¹Lú@ÀŸ]Äó‹›*-~D@”2œ‡kð¢ÖzRZØSÀÆi9llðÿ–6Æ—uÛâêgÐoØi -V´Z°Ï°þऀhPXêÛ š}#:‚i°ü¯ôÿÔ(pLèÞQçÚÄ瘊0‚IOJóµ¨F)&8ÿý–þÛßÒÿ¿¢¼,–‘¾ªAR<Šä‹xwÀ!Î^‚) ™ý€)x‰Ã7ñ—`nâLá$ˤI&\.÷×_‹ ´dR«/©!Šºk×s h„‘MŠ¡h°. &•üæýlCýaW;ªý÷»œþDÿõ¾hÒiuxzFÍ¿ÙæpÎÏ/hÀaþc€}öîP^gì§Ÿ³;œ¿ÛÝ!Œ Ðߢkš¨Î/áo?¡»ê˜¦K|n¼g “jyËõ­>¶ÃùãßÁð¯ÂŠž{Ñ8pÙGpx[›/C½ø7°Åt¼Ä‡¤ F÷.Ô‡¼Ho^µӦѥ•ÿßУZ¿l? 4‡¡ íeê"ôøÝÂx2lëV1Äw¶j,/Ÿ.ÆpƨùQtEnaçÐçËŽ.üi _²¦n¦*Ð+`xÐXNãªtS¥u?ì¢t%÷Ò¥ûm+ ª˜¡¨È>¤ŠÃ¤2{0M…«tø4…³­…$­ÓiÝ,߼ɓÍD ÀÔ©“œ¸ù# ä€XÐÊ> ‹|rØýóH+ýÕÈz™Ø ýÌrh+@20Jš+žfN'i½M'Ø£:¬š(éÛ*©¦~÷\H «#éP»0“t˨yžüê“Öš^C¥Zà(B—);ƒ÷³È ,'þ’‡lƒ¾VÀS¿E`!¹³„lùi¢h³8jÍb{^9ÐXÈ·RR6T‹$ŸL·b/Ë×Ñq<ÿEiÓCÜd»7к«¾‘Æ ‘ëÊgqý4þcXrå›Þ­aã¾õ+øâ]Â’Ú“¾Ï\ôÅÈ~Câg|âÇÛ¿E¤{Øý\PÿócV)-ž ƒë‘ãÁª‰øƒáßÛgž€=}"Š-Pš)Á´ÂòóÁÍ/N‰Ö2þ ßÅ endstream endobj 891 0 obj << /Length 3522 /Filter /FlateDecode >> stream xÚíZYoÜF~÷¯,‚ͱÚì›D°Å^(Èá•ÅI`ÐCŽÄd†œÉίߪ®n3-)ŽØ—<‘l»ª«ëøªš_\={ñ*]d,3Â,®Ö ›1±°IƸ…çbñã²ëÛýªß·ewv. _V볟¯¾zñŠ›ÉgÚ2.ø"¡O.wÍ®'ªéÜ2a™U¨òóµûšnîªþ†îr¼ˆåMuínÏ´Yæ›}I릥›þ¦$6šOøpÅYš¤Ñ®­j'ͳ—WÏ~{†R& ¾R³4¥ÅJ««í³N¼üj‘0™¥‹;Gº]HÆ%N·Y¼yöïg_ Îf ¥ÌXr ¶My[nŽu 2¼¼d ¥ª©ÙÙ¹éòê&h$ßlš3¹ëH9 ï»2,»ñ[Q”5öÕú²Zœ‹4cÚ.Î9ˆ ":.¨¤s)å²i«ëªÎ7ø¤¼NÛ*·q[ y]лUSöçÍîß®šŒ`wL–M]Tõ5ƒ4Ç!TÂR•>bÂ:Õ{¢O=#Ϥë8ãËAä]Û€°[¢jˈã“"IZ2a³¹.×ðU&¼22´ CEã–Tvõ§=8íßž »,ÛM“áS·Ap·-ûúÈ¿ªjšô¤õbÓøvòNeô ÖDï¥ËÕ&ïüäEÙVÄÛO¾n›mÄÊef™"(ïêÛ¯_G .7Ò<uà4¥¤dIšÎ5U”ë|¿éýV °ã`|Ð=Ö§ïÊž¶*wkþ@£ ¯œ†‹œî[Ã}„àRw‘Š4aÚá×ù¦+#+4 ú°BF*›PœËÄ0ËX†eIæ—ù í¡…GX+P˜P`^Sý^n˜y¶0J°Tò§n,ËRë¦2RgÔœÓÙѺ5ƸÁu|ìu‚ô°¨|rÕX„<çàž:C•p¸Ý$·UÛïÑ×´ÐËÛ¦*è.¬þmæ§D'—uQ¾§÷õsgMÜ‘wnL.Ù›âð5¨=ÿæø&ß]}Ø•÷ÌòömçÞ¿Ý4]rïD—u_^—íý3UDp4ÕÑLßî·àl«ûgª‰à>¡&JØ>&õC˲-g:Íòq¦qù°åüØÁŒ ïgvnF>‘©ô N*» /Vâ\xƒû_ö(¾}Gö Ù=žÕ-³Â>î“"UL*±ÐIÊ´TOñI‘ZI g¸àñP³Ù»@x¤¥™L)ÀÁiÑ3Žqù®úè~ ˜@ºuIÄ…JxòAõÖ€ÞV}YŒ™N§龨·.5‹TS~Á›|s Ù¿¿Ùvô   ’È4¤®Õf_A1ïˆ=ÞAlÁDp ‘Á繂^¼ó²Ïf  ‹wÂËH*ƒuÈtÐÜukJ¥,KÌBe åT>eW•,QÊMÅSåƒ_ÞF˜Øx#OÂÔr¦>gº"3:` F¸ô<3Hÿ:ó¼?¥œ+Îà‰ÀâŠe ½¿àÕÇÁ«'¡«pжI<¨j¢^öÄ t%RÀ5O‚3X„AÌÄ™Œ7½»¼ÝÆ0z¿:Oc˜rƳëó6¶Ð ˜BÍv¦™aJÍxV}Ùæ}¬*ÏþyЊJÁîmïšÆßÁî¾Eu¿uëë%rÈn»ÿ@"iZŸí£¤‘Œ|*Áw·(xpe%ƒ++BþÎ•í² L}HâRIŠ©¤¤¼ŽT‘Ühfë*pfÒ¡õTïæ¼»©VÈå†x“PÀjÓ–yñ0¶Ìþ#€Û¨(Š©,ý#š¶üm_¹¾‰cÔû¨€°$‘³¨*Þ0ÍÆMÔäÀRŠžïÈ º½êL­T@\Nß8` #(‡÷M}0½\–ï½Éµ¾tÃÐÝýêÿÏ•ôÌA6Ï Xþ¬“ã!&_Æ l)4,üOUØ2[XÈ4¼p%6”£ÒÂúEÆ€G*™‚ä^®ÜîX½¼ Ëe}&9Úû:_E8bÅ’²Õ¡ ð«ºðƼÅ}=Xó±Ï¦†kïJšLϺ’¸-%R[GjuIn €”Þ?J¸ÚD+МkôËÝ›¾¸ÀòÍ ÎnŽeIãr=52ÜqÅìÒçŠ áºÙ‡JUÇÒ…”jüƒ‚ü“Ë×ß½¾úòòûüË«¦ŠÔ2œC”ÒCìÅÄá†NâÜ û%rÀŸ¼þþå«Ëÿ>Æ"a’ <ª5ÍOJ†›î@ÆÛ{óÕ–RžŸïÚr]½ÿ‡çQ0Ô«c š| õ©y(Ï€ï`LúÌ2¦¤=*Ì×Õõ¾%{fVN4È?6tS÷Ì'Ô!Œw›!B<÷Öç=ü®ÚlèÎWÊÁ7»õÞ·H]i‰ƒ¹¼žlˆŠ7ͯ>PôsÞÁœ}/Lˆ‹l–«.Ñ8DÞ–<nS¸Bi^¨åz_¯Æ¦ÁL* ÔøåÂ-âX´)ÓL1®ìÃQb³´Áº¡Qï„™YÏÒeYÌ î9V•`1Ø”5,1qé*Ê`&¸Íý6å ØßŒ¡€ŒÁå}Ú‘Š(ݧ¥ûYœÃúÝ’ªîˆ•Ç!|bâY²,*Èü¨ ƒÝR‰ d žÂèp š:Øõ>8¾pù\q}p2Cc´Ÿ˜ÜôRä„jáf0@÷äq†DÚy" ñŽ ÀÐw¹Ãοva¦Ü³£042ö(~:Ò†®e8¶#@>ÇC¬ƒÞä¨3%‰;zôí4çSZ6àÞ¡ Õb’ Uö… ÿ&®®,‰ðM3LB7EÕ­ö]G‘ žž Ôòâ³ÏhdU£XÊ*&Fïa°7®K8ŸÔN€¾„›*pÕ›]¬ Ì)˜f‚©$›3­êu؃åÓ^h$£B61·ô¨â2Í4Ï\ÑžØ'²€ÿb”à°’Ôú®É;ç:±f@CcOÁ–C}€Ç53¾÷jN¨!Iäù¦\…šA°~eNÖn'…EÂB‹òöz*©P®cÁR[¢ÕGg&3…<,½ ñPôò)®O²Hû££´:¸ñÈ ™E&OâÄóXÎJa |È /oóMäO€$a°½ÜÂwOò «ÄÓ@œÉ†öÈ«CxŸØSpä`OJÏ9^|ÃÚlܘ˜¦ôô¸þ=Af²‰8…Ø5—ú_m^DxZì‚g§à @K‹ôñÍÁã£TŸ‚#TZ¨ÞgÖe¿bò¢Ãz?)J絃5<¡Ø08Üøª”Pp6=èÝÜ_ªj@Æ[¨š±'p®¶¡\fVŽ1à»k>À¨šüAbñ"@Þ7ç×ãsßøëMy_æúa«ÿþ hdh—ÊC´cçUlŠ ÿÙ—s©¡(1àøÕ?¿~óò±füasÎD2?kþ¶qí0¡ƒ>@]EQ¡ºÜ•BÏj¢p^„Ÿ!Їg£îÈFSLÑ*œ)w‚ é¨0 ',N„ جs Š çJcøê»V endstream endobj 904 0 obj << /Length 2718 /Filter /FlateDecode >> stream xÚµÙrÜ6ò]_1#{"‚Gyõà¨¢Š·œì!¹öÁq¥(£a–CNxHVRûïÛÈ!‡#É‘ö‰8»}wó»ë“³Ëh³8Áâz½c&¡3Â<[|^^žFrYÕ§+)¢¥þšlw…þ ÎâåÃ),Um¥§+¾LJšt¦A»É;ªè»Kš†®§UÙ´p7Ý¡MÒÒ(Ó?{Ü/{0šîT»6ßæ¿'m^YT»ºº)ô–&I™ÙAmo¦Õv×µ:;ýrý·…·Xqɸâô´›Ó¾i]™ÃRZ40˜ ‘þ2/'G¶In·.h¹­“­=VÑ^‹}Lãûu«‘ù*FæÂ©³KØæ{LÆ^fNØåÿ°1‡÷…LúÂÝ$ ÁµlÐ%MÓZ'À0”qìÉ·{¦Ñ­¥©¸­ê¼Ýló”sð šg‰ ì‘!dÀB?Ñ|H¬ôX¬ú‡ýì)¯ÑšÀ^éÔ & ¶¸aßJF1“3°kòòŽzÂc†ƒ‚^è}–‚c7O9¤,æ,¾»°d¸òA¬—y ¢~8ü%²Ð‹´#.Ä`cJ=Íõ¨zfÓsŒeÁUKg4¾‡í™7rO1«ª¸Ó‡(•`ÒëQš'DËÛü¹xøŠ•/8óCayþøc8“¼û¼0xÈÂè™Ú,Xìêsní-–àYê–$³Qñ*'gcÏ’³€Ý¤®ÜxhhnŒ×À Ï€K=ܪè¬òÅjywªˆ¥Óö&ªé®ÃηÆt¬Ç”u°dt•s΢@ŽuÀ!5y/nP¯‘ÒÐ[ækøúœb“×:M C>Ñ4?k$gáûr©ïðEº~Œ\Àë¨0LUj{£7o¼Ólª®â3š¢^͈H J8Æ_ÖZ?.¨(bÞ öŠh¨u¡“F3@ DÁ˜VXº. Ñå"Oõ¶ªœ/6ÑFÆÀøš6/ìa ¾2ROÑ›Ùce“gsÆÈã€Åƒ¡Q`2ö&K>{% Xú ù#Ú?˜àäÔµÆx‘W.Ô²Z»}  W½OƒÉ½‘³¼I»ÆžÚT¸s?®LTFÖì@v…½¶I-}Ô§?pi6È¡Ãc@èP‚Ž“öd4w.Ôâ$ý‰UŽË§ ·NR^Ñ÷—ïm¬0}°òð—VGe%ñÅ„M’¨t‡ ¢6ääb ­º²ðŒÂ P@¡Æ1òÌÂmÎ6šøqòýõÉo'Žy ¾ŸÆ‚(ZžÏx/ÒíÉç/Þ"ƒMÈ# æF‹{st»HôYÅâêäŸ'ßaJ50¡b !ʰ8$"ÒÇË„œè˜‹98W‘Üw¯[辪:yk<Ú<÷ȶ8:xÙV“ýØ-ÔÜëù‰«½’x%-> ôªÎÂ$…+Ñ]HÏæÖ}ÒRßÓ<×”¶hœ3>RÁûøóãÃÅ÷–ŽC6ÀSã!ä•™u2djbe=526ÔÈÈRÌ1Q=¤%_ÃyŸÍ‹ŸG`ë1㳇/‘>=¦R܉ŸÍ(W,ˆù «0ð–?èš|5¦ iÑeö½$Pxhï&ÑÚho£ãi>ÌEÚH2í¥Wmvñ¡tf»™õã1ön€Á¯2áP¹Üô’Á£±´* ‰R>H)ÕM“ ÇiO¯’–Þ¡C\k:“1oè$¬3ïB°î>ghÚ¬ÈoæÈ÷A±9Q¬©«Y…½ RÑu; ‚·¿g­«ÈS˜:$€}µUkR Ê@0OÀWš„OŒL5YÙÌ“j”SÙ¬Ú#“U›á‰IÈw6fà|\l˜;{Yj *òƒIxöï$ô±A³²÷0ÀŽP]¼}Kƒ1å»u3 ,R} ï(šø\PÉÀ‹JF&¤¾ÄçFXc”à¶”]Ï;]>¨ôŒ·DO­ õd+᳊‘Ù·ÇŠ9ªA·<ÉIz9O>÷‡®­¡óš6UV*oõ½mZ)HÀKˆØ6õ¢L9j±%ÎŒxÊ[ÞtèqE@,0¨ÁÌÙìÛªiíÌnæ©©Í“ bn7,㆕”<|†©y($°EOŽB–¾_Nðí=Âd6Ùž´Øž—lóÈg ?|™†CžJ*P”nC,ÐßrùˆT‡1¬ŒÏæy1ó›É×Tº 6(iב,+[á6]mË¡Üë3f•+‰sÛL\q!—Ç£,âߨÌ8 R€ÒÁ1"ÆBÄ龜P2>Ö²QÜ[›é‹–Îÿ¹­ËF@çU?d®Áå˜kËrP >i~1(à½ÿFÅ•Âî’ËÆ8⛋¶¯ÉÃþ&^!®óà°7F½N8cŠ ÜÙ'£brž¯"„T=Ÿ0zŸyC¿l£ˆ·Æ ã[CpÝ"9¬Qû§ïòYh›F¥þÚZ·éú@¶iæú~öGAר|Ø‚ùÊe è-  ã»°eÖÿc˜„·?è¿éŸv3ý•€”ç+þ¤'ˆïgoìb·½ÁšWÙn ~ï\ë—¦oÎF(ànŸ ·7Öv²%ù'sÕÂùúËGœÓç§O?²ØßÃUT÷Õ1{‹¶´ ¾Ù§'‘u»Ýë »}ùËnÐ׋vûØÃF…ä_ìæ0ŒÆÃ[óÐ5(í¿ßí È.Ñ|ÿ¥Û®.¯ /î,¥¿£‰ÃANÖ kséb¦Ÿ¯s/á`Žó†ß<8ÛU½åRd7ºûacLÌ´(Ÿ+¾mW´¿±„G§ú2\Ïq&°¢,qÆ×÷ –XŠ>=IÑT«^Ÿ"«¦7¿ø XÃRËÉÿ=ªÅƒO˘{¹Õ¥®ñï2©OW¶ú@~¦=nõš¡§O{†ËíµCgJI)ÂÚ™Þ*×N{z°ûF;ÿ¾òÜ7·>Õ,Œ4VÚp¶†óç;ÿ]Wëawß``âGà~z]¸OqöÎþgÐ]ŸW>]=$,?÷¬gÉÿZºÑÛ·ô 'ÇC0°÷sþeÄ Î¼c›Uîèj›Îÿw¤yâÏhÞAPþÿèÞö\ÌÉòöEª·íUd’ðqÎ¤Š€-±éT¾ïêîÿ´ 9  endstream endobj 908 0 obj << /Length 852 /Filter /FlateDecode >> stream xÚ½W[OÛ0~çWD•@Ph'MiÅxئ!mª`öPPå&n Jâ(—®0í¿ÏŽí4vÂ6¶—æØçø;÷c÷Ãô åclއöИ.ÑØqnMpNvcv¼š{'=×v/ÙçÎr­ë2^ ¬KHÃ(Â>ÝÌÃg„—[6åvcú{qr?ýbXF8& +Ü~—áå¨`Dñ€±†Q‰rFã¥Âôq’ ~jË$àÂݾNÑj>™Y÷’¶{ÁâÜñEeVGÃã(öÐt,Åm?C°@ŠsŸSœ_3¼ˆP¼Ï¥$J%]+°æiš†äŒq7óIMyœŠÏ„ᓚ¼ÿ‹äKpMÛ‘í8B$Wó%c«•¼Ê`@4N0Gè+G¶%Óc*uñû&ê&ŒXfH gŒbœ=1:ÁßÑÛSmKœ)Üfy=ÀµØE(© ®9Ù/§! ˜ )S”%¤EžÄº-aRº{:\ê M+IçnS©"^kß ™•fGFÆÑ%¢îßÇ<<Ä«´é¾ ~•÷dTÜTÒUÁF)¯„N£Ž(CÔ·Z*pn‹L‹—s:. ´zx@"ºF}«f[ݦy }ÔV(a!ŒØ"Åõ|‚Iðš9§Òæ/&oÒ³:ò€iµ*3ÍU…œý‚\ è´k®`¿2æ[ήgù(£"L£e<ÎPMBŽ£’Ö6 Ì 2']÷O’ÁÁ½7×…‘8¹V£”î¹fØé¼€E™K†±^£hrŸmø÷Ú›ˆûä/wwE,å¥×lu&\nƒ#™Æm«Ìšß–¾P€ŠÃ?ب¶ÌÁP©iFú´ gç8ƒ¤ú¹•*bçBÎÄ¢Ï×0 !‰b.ÂPtÚçªTex)^á»DP§§•ݵÁRBænf‡ÜJ‡ˆ)禄¤Yx߸P9h3®}‹q•Ï¢UêÙ÷Lî‘ÿ¢ýµ±Ũ Ñ›X4æy¿iž×žÁ}e|³xD>½æ—MŨ7Ýmè­ í«jUºç羑³}މì>Ê´c犜ÜyÊFimLÿjÔøËb`:îÈè9ä?ËèœA \*xðizð /`\Z endstream endobj 920 0 obj << /Length 4092 /Filter /FlateDecode >> stream xÚ­[YÜÆ~ׯX2{©>y$OòFJdŽ"ÉÛ0¨î#9&9Z)Aþ{êj^ÃõÊ^vúbwuUuÕWս߼yôø™×Y”Å&¾xss‘fQë‹De‘N ewñÃæ¦-Š•WàþóåOo¾½PWÚF>8œªþç?¿øÔßÏš8²J¶EjëË+oüFñˆ+­"´Í&üv=~–N¶ ]”9ÓÁ0íxØßжøúòÊZ½¹»4é¦À²ÚìŠm•·RÉ« &Ûô{i©‹mÑuyû‘«ï/½ßäí¥Þ”ùÛªèä³zÇ…®è¹0|¿+EÝ•M-C››ÅǶ‰Ñå•svófÑÌ•}ÞÉöe_´}Þ–ƒ!Þ!a1ÆTá6c ¦á¾a»PF ‰]3‘g>ÊŒДõ9CÓ(ñièçíÂdÀ.X&ßæ}˜ÿ˜o¥xÓ´\à½.ˆä–·ôysªw7 fìšúý0Çm!å^¶³E)ïÁ$id“a¨fçû0.rnØÈ@a‘o‘G{®ŒˆÛN%‘ËÒ¹¶}¼$‚Û5 L”Œ\< w¶ç$X%ʆQ¸R +¼(€¨‚DG€<Ö/ËÚ3í5¹móž!Ò ·ùçej7ã5—D1ƒ, …5¹:*C‹ÞÌ’é ¡ „’Ð"ᔉ܂O¬Éi:Ñd¨ &SÁðÏFßæe\íQq2¬¸Ð;(.”×W§>JᄞŸ³;‹Tæçš ³-5Í…"3 }ØÄœNn›±á*Vé¸ç•vm×3s ÒÔÛ9{Î&&3sP,\ 1!Ù-÷Œkr†Ï¿yè¨n8¬VgÍ^k2‹ÆŠ÷üËAÊ7ù¶XÓ6c Ûì!uÓQ’Ä \Î+p´€f§bo§‘AHÑ>à°Iø@ R'<2yø]¾–•0±gîçI1$6Z%ØC$• ç 6›WMyù®Êëb+ê ?$Ÿõ`°]tJËd+4…d« ŽÕnS—}Ié5¨ÌÏLȱ†ë8ý6¤µÙÑhÎúÀï­¸ý:,Áú$^cr'w0ü=§hãzsÿA$PêË÷Prë6ÛûH+7Ó ×Mõ~ÅÅú$R:o jžÿØR¬óžâ-\æÔqÇiX‚°›à òpü{®³ÆÃ·]Spf¯¢…‡¦ëyú¤”uÊp+e€@®gl`mÏ+ÑŒàÞL, m,»3wï ¦Ó„› ãæ ê„)OU_«í25’3~ü*lPºÃÇ#ö8¿Î¯ð`ðYœÓÔF‘·ó…ZTªòw²>ÖX4˜4›Ö4ÀðÛ|’êÄtü§×8-©òn±êÈ!çÎκNjÊT©ÙÞŽ9Bn,•õøÑš5›%´x 6lÜ4'cÄ™9PSOO÷±bÕÒS¯ÐÜcžçÃÚ‘oèÐò­á(MÜÃörÛxW’T•@Y,ÈYRä†sIµ`wàU%Æ<6!s”™`É¡äùgŠò»Ð$ƒÏq5wÍšU*ŠíÃLü5³~8!9§ŠË%f ãD Ù}ØÉÀ9MpÏoøSA€ë;àk< $S‹lo{Hg¡'Z;±ÎFY2lô»ï_¼xèìëvA˜ï³OHÆñ\å¾ò¶æ{er–hЄ^cÂaÌ>C7Ürñ!?+6Þ^ŠÓlÞN2|u#Ó. »]ôYò:´¯<ààèlfL0‡²UB¿ Ó*55ðP#ê§Ýg«BÛÂsà¾TÂÙJ5ÉVª ^š¯!=Q#çJ&IÝšY×ûÙ›ñ ”¦’Jøhʧ{68(¿&ÞEfy)O¡†ŠÃG~Ó€3¾þ{Ì‹P£aБÝlt¼âi¡‘¡òã°y^»©;ëŸÀà*ïz.-rÐB)iåW¡­ãI¼÷¾)w\MN€µ›?÷€yÁþ Í»¼Ï£÷zˆ‘(æÉpYŒ-(54n*v€™Üµ/ÂS9ˆÖÍñþäÙ‡@Np¥Å"O=[ ¬ ïy˜LO8faòýÕ€ þË[?;éBæƒ9ÙµC&²£™yr…ØÌ|E¾îóþ´’8ÔÆDÞF®¤`Ñæ‚=÷¯Ü*÷E¾CvcY‚’5T„oÇoË„\7»¢;Ï•ye#.ÐXPN®Ì«Ô&ƒ©Ò(³qHÑm£ýê|17lwûrx|d™í,è®ÑeÈ1ò^½ ñfñè^÷»ëçu]WˆÑÉÄQŸVt%©~ØåÄÙdBÉᬻ²ËÒçÂ~Ôiʯf/’ÊA#ˆCùŸ¡½he Èœìt:yÅ—h‰“‹-B¨w‹y:VF*3îOðcô³Á£Zy#­§íVòÊ7˜ĨÆûtó ª†ë@›NãÞdçff_˜µÈ,8~?6Žé†lö¶ijÚâþŽs¢Ð~( ¿c.ÎÝäQ²¨Ç—`­¤¤nÚæ°¦lìhDã8û'>ç±Ù¾ðÞÈc‰420õh“Z GÑ&8‡ÄÉܘC…†çõ¥Õ!1s¾6æÜ³È§~Š/r±˜m•‹%™‡Æ”l—±X¤;ñE%‰˜:rþ¹ksŒ Ç»Hläø8LP¸–y§¹$nÚ•ÝöĆ^FÐïVA mä0ÔŠuØ…æÀ9g‡´rÃ@1ðkÏv¼yÇÕÓq Jú(1éC,E–M-ΗóÏœ¥Ùð‘+ÖdÍÓãµ\ëà> stream xÚÅZKo#¹¾ëWð˜ä@±^d,0³ g$Àbg›sðÎ(Á kâ0ù÷ùª%Û’eÙívÇ{ØÝ,’ůޤ¼h*ÉKIÊhZ¢ÞÑöÄ]“SI"øN”¤á½Ô¤Tñ®ÉÔÑÖTUжTNžÇ»¤V-9Sê˜Ã©'*$UÂCÁC,ÅžHbÖD‹€$X•k¢¦}ábwt ?Ž®`´b”Hb*`E,1—øÂxP,¡%± ]5± Ö’–ØøOÜ cÓìpÀÞ£+¶.ñ¥%ŒÆ„jI¨Ç—4lVtIZ“(Àpã$†=¹i’J¶ Ȫa¸ÅCÇÞ Ä>{’ˆÝ0sÇ:Žhº:Æ‚^C Ž –*ÅKjV0s<8ø©F• a<?øiëØ;8Ô¨êÉJ šžlØ 6ZŽyL8"†%žMÁ¦7[ š’¬v wt9ƒgg<`z46삱Ž]ºcÂÞcBOµÄ I:f†‚ð0*4&Ääøb!&ì¤Vb†Åv0E Æ*XCüBl8Öšé=µ"mÑ1W£ø‚½5ˆèR ïPêV¡²½PjM–Z,Ø §Ö9ºZ(<ôPwèk ý–¾èÚ]¡Á‚t˜Ä)xda†Ýbæ^Œè–‰/1²1F 4·‡5hí‹7oËÒ©cµ’~NË_þþp“Áspu~ýÛoß}7Pž¬Ï¯Ò›7iyú$†1'\¡Ï›(¤µyƺ‚Ýo_ Á7/Òèæ¥„Îl_ ÏP‚íÄ+m:ÀÁò§‹õ§÷««tš–?ýp’–Vß®Ò-sþûu…޳­ËïÁèêüê€Ë/–?¯.×ןV—ƒç>ýmõùËÙ»õ·tZÒ !‡XæìcüÀìÍôJm%”¬í#t@uË)¥rCê{Øî¡¾+À%;Z8\Ò1àîQdÖ) lèiJ2Ëá­€»ƒÇ HïªôìS‘f>@šË³^¾=?_cªÓ!/÷–úË÷׿^ ïýrþïÅòÝúâóêb˜º|\þ¸üËòûS^‚™OØ…”–K€W,78¡šH#ÏVto€ß§åŸ×Ö ÂùÃÙׯ«óÏ_¾å· Hv¤Æô”ÜIlñ‘B:æjæ6 î‡kSÆUŽtdÓÖ9ˆœ'#A†%!Ý ¥ÌXr5~P€«ÿ\Ÿ]}YŸgÉ}W„/T%‚…"þ²8T  gä!l%7{MFºeÌlˈÍÞaä•ö1Žm*ٌܲ$öÿå­öÔ‘ 1UùE”_xj\ïöP¹ÛûÔ}(î£O5bÙ­oe‰ÿœ^ÆkH ­Ã˜‘„‹ÖŒÜ>™èA}½¼þõ#7¦Ãó™Ž!hÛE"lÜsG­…ê¶,GyÙeG²ÎÇ œJ”d 6…¬+ v Tôa†6¬ü ì¾5kcÍ{T¯žO£„»#»3ôÉfp˜CëÈÚÊ}3P›Sí­ôÜÂ1C¸6Ô•pØÆƒp•ÚãžúÝlGå÷zµcñ‚úˆlw%¸ç öä¼§3ø`“¡=Kh;[6ÌUÃÈ͹?×[ßfOé÷Qº³€É(µC”l2Jõw‹Tõ0âVžj¢¶8~6-Í©,W#Ôºá•sEÚ_QûöÇýq®ó…‚ÑF ¬Hñâ0†¯XâHåXœÚ²a3F'¥é aù8 ‘„ k¦ÞÆ£ XeŒ™îQ ™&Ö6ùiJcÏµé³ z¿º:êö4Ƽ,VµC·×hª!lã¦oYƒË ݳ–ž üHD  èGÒ&%3ÕÇËÊ4Ÿ*ÒDÎE7œh(#ÄôúœˆÉ¬©#¤¢>¯%Ç €šNýYŒ„·Qq«Ý[â ¥— t,ª|ÔÆ%r»¹ÛÜÎË¡=øT{heÖÜ"o©•:¸¾8(ÜS£–KªhÑý¢eN%í~Ph3<¾Ž ´‚XÁ4‚rH ½ ä8m9ž'<Û‹NU”~XëúÈZ·×EÙ:NßÖ¼~ó>oÍ qP©P x‡j§f@)ÐMaÇ3:-cbxÄò¸“4‘Üörm¹ÉÃh?þs½¾Âr«LmÆl¢H6U$3¡$®!k.„¶À±ëÈÚ{Fd¨väx”ÈHàÇ ÅÅk£ÆI …õQ5x¿_ƒWȧݿ]yRa”qyù4eœ»”êSvͪì-‹ùl–¾<‘>Ü…?pš/Õœäq2óOÑËA­w˜=EߦV}³§¸(Ý´³Öƨ-]maíöPªÆå‘òk%ûZJ®@%ÉU⢽e‹»f¶lÞŸ:àžñPLɳ ÖÞr¤ÈïÀ wÉÒ6äžÃ¿NY¼ Dæ=DœÕ.ÅÇœ> stream xÚ­ZßsÛ6~÷_¡¹¹)µ`$r:÷&ÎÕ™4ñÙn¯3íÍ %Á6SŠTùÃŽ{ÿüíb”(§™ôEAX,¾Ýýv©ïnNÎÞ$³”¥±ˆg7·3DŒj¦‚”q]›Ù/óö^/–"Jç;¸ªyµk/ëjUè-ugÍâ?7oÏÞH>˜) X¬ø, ).ÞßœÿóüêEB#‡KF)“Qêæ·8g2ZàB]Mw»ºº«3»\ÞPçºÚîòBoloI½q´\å-õm+#ïF³Å2âjþ²XðyAÏ*ØU=!·)‹"¹'ø¡ØaÌbºaËv!@hÔO2×8z¶Œ‚˜ •Ì–ÉËuÑmpyyG€€“@È1 ÚûªÑtÊ·0¸ª÷N|Óeu súìDó»¦{@ˆè’£¶ó’ž®A¡0¶­3÷2ªi´ò+ºÏi ®o³µÆ£1Er~Óc²íj»È(A'ž@H(¦T¯éó« ³ZºQ#%;àdÃSy8@öçå&_g­±(3LÓ¨ªkÁKhêí'qOwm¾ÍÿÈúyPC¶Û{P mÓaj7ŠGÅÔC@·‹÷Xº2ªyUmtÃ`ЉíºWh»ÖZe¢ €M˜Jøgð‚÷McïT½ô¨¼Ö붪Ÿè,'¼FŒð‹½áÇ‡ê‘ ”ˆž?± ö‚äNff:ÁØ „¥¶Y^¢™~Іnﳆ†hCGoÐÙèÖÎfŸþ¡ë ÍŠ§ó®kübµ}å­ÉMšÑã„ÆÂUjCwÓÕ$¨^Òë΢ ,‹¼{Ø[ÜÔp‡>ì/ôêæ|¢$1ó®2ãs£žÞð­`âø8çÞ~ÏÂ1'ç7'¿Ÿ ƒ‡à)YôA&2™­·'¿ü'˜màáÛYÀÂ4™=š¡Û¨(DK)f×'ÿ:ù‰È^N…±™*)­ùâp Tг‡’vк½êOÙvW·EÞ+뽑Y}×m5ùº)>ÃAŽ$õ+]¼~y3^9´Í¬ÜLŒ€¥Ü™œ†K€‘rJâ$É;å–¡÷ Ó0x”ÄD¡Þ#•7îOýõ‡¿{w¾XJ!ç—Wç¯.®/>¼?œ8I˜ˆ¼÷±d—‰ âØÂ]˜Æ.k Øï®4Ä-W…®–ºg½†i=âÆÀFóÙYÐØù,c4fÉÁóáÈÇ¢ØÀ¼ïÄ9KûP”ÈDg™Uºw® Ú…B/×K>/éQӭꪃÎ6/õ$Ö („Iøœ¥…"‰™”!K¥úK C´03“›=fh ¨%·‚'pÑâÉrùŠÅ±roýØèúuÖf—m}8?H1°‘9šò²W1ñ)8Ù÷·ÈZd0ÍZÒ½ ¡[˜¶ P‰¯¬³’žIâMg`‰ãMœ€„*õüÊÃhWçtÒ­þõn`‡ýD‡ˆÅ'LQ bÍ´ˆX¦9xOÂuí~ƒñFA°z /á¼ùÆH QÃ’w v6ŒÚ Ô˜ŸG&âa\ļ0T[CåS†ª(à=%Ù‹ ’%’?À¬tç௥øªÀ,š'ÒÌŠ£pM™½ tp:…Ò\{øbn[Œ|2¨Ù(^¨O0°ÓŒþ©˜tYÐÙG¤|nNÓªº¤+Ñ(\¨'$öOOÈ‘;s$% h†¤À Q¤ž¤˜>ÏHDê¨Gл+D ã ¥(¯ðÂgƒñÜ·ø>‘‰³ö¦W—˜À“㈣À¾³£-K²5kÐS§'X ¼ùyÊsÉœè¹`akyK‹4÷UWló™Œ.eU.‘1`¥¦`à‰Û†É"ÀèR Á‘›•CC€“³TYÉùÛlb’ÓJÐsQbõ[4u4†¡‚RÆR&{ú«…„S¿ÜÄ?s:K7v®Ñœ[whKŸèzeÞ¼Íta‡kê¿Ô…™í ’S×µ™)«ñ×E-5ƒ(¤À\­]JH¤a›•<™JðZêF0yÆ yP)jý™ õŒ<9uU@ B]7tg^W x½uKw«¬±£×ZŸOEZÁÇÑþHöMácßc™¡[8™in5$òDZ¬X&\Àµ±E¡u~û4øý»KtÖ§vœ¶’gÖÌÑ+EjdæFIú­«ASâÊ—dF™b”°@}>Q”Þó¡qC€‰ÀæE ìá÷N7íÄ $kÉŸX@xžäælªÂ»®\BUÝ}І¢´u®‡oÚ,ì¶êh¬™ÚäXv¹Í3"`Æõ&Ñé@˜Î_Z‚˜†L{Lâû›Þ’4l¨Ž¸¦ âZK)EFC… èè¸FêÞƒ1¾2ÆÌp²é0+Tˆ4ö³X$Јý†æ4ôñA {ït©kà.zög“ñ=“õ9ÀÇì!ÛTSÕŒˆƒ?HöJž.Þ¡ë´ð$ñ– ð¿½mö›¦4cr©H2Þç¶_R1y{ ¨1 #?jÕå.ø‚ "“¹ŒÈrí¥Yå(Ÿ•EaøÙ#ìø”>.úÝ&oÖ!“côB|V[M5­Þ5ÃÊ+Le÷Jß_Š;›œ×.‡ÎêP%a,XÚW¹êד»÷0•0 ïýM^7­ÉT•ß"ærëZº°mL/¥~¤F¯X3ÔX{$mÅ…9“,Gç“)“P}úï U}w¶ÎPÕg‡»‚¤D†Q¿«eÂC<<´Ïj²¬|+þSSƒZå½U} ˆ2'¡ÕÎÙ†p…Wh­/J,U§#ÀÐ'¶(XØ» ã ãa—q%`È@𑡉ÂÊò7˜•`xáPæ‘{³ëÝÖÕ–†ûa몮µˆU¹ñŽ` N.ïË1p“€Ø²çlšª« MàX>2  AÏO0Ãøp¤º¥bõ'÷÷‹Ë—7¯/®ÎÌâpà%DžÕÙ[ÐöEi·yÖCaª TÃO6æ˜ ­«å6FyŸB;ƒñÁ-!ä/­ñ ïžñ™ÍM‘&R¯Æ"_MTš0«÷¦PêO­¥æUÏû'pÈYÜháÈÄ€KÇÙ)®cîP§f"»Z?äU×v0yâC”p¥†Û{έb „:sbäÎäͺ¹Ýú|Ä0Oœ0ÏÇÜØ_SMUõÓ€%û§äêºïhÝîÓÙï/~žÊG9؃µ6O“‡˜p¦TïŸì2?dkŠ®©cr©2÷þ{œ[¸Ì¡K‘Ãê½[åßy¹¡ר¯b&xi~²¢±IÓµ”¶‹m0qR“LŒ¿÷YqºÝÎ>ó˜טÌj»Ëª,žúc±*YfœT˽ùÃÀ@/<øbÅ<ô ›8ýUG«Eßzd•2É.þ àoŒa4 ÕØƒÃŠ´=Ä€caèþoà*»<™Áü*à†¶²$Àÿ°„ÛÍþtµ€Ðw³@ú²^ÉÆÔS¢!nºÀ”#‘â ß÷eAÐ'ùÉÞ_µ$þ 8}à¾TFÊmüÿŸRMÆ endstream endobj 932 0 obj << /Length 956 /Filter /FlateDecode >> stream xÚ­VKoÛ8¾çWø¨<,‹¤õpÓ^¶hAQ`àJ¢leeÑèÄMÑÿ^RCÙ¢,¹vO"‡óø8œoFÍ/&Ÿ]4šÙ3{£y: f¶ç¡‘ïÌläKI2ZX“«Ë±‹]ëëv±Ö<…oÌ‹J”4+D‚«ÉåãüËȱ‘ô]»çp¼†ÏøàÛF{6q°ï®HØ–•ø‘3X¦\C+-ÉJþ2yŠy[–³5ÂÓ“©aË»v·áa ÿžÿsÿé$ȸdT°¢Úü[É# åTZÀø»ã:ÅÎü"¹· yð‰ÆZ^oW¬ªnŽ€Ks¥¥=•¯×¾ê/u2ù´ÞXÝD* )h|e;!½’Àµ^.q`É;ßµh’¨ÅÔŠižG4VGÿÂQº-b‘É—±¢BÛ”ì`ÃFÊòÀ@^ –ùt‘xj_ê¬Ã%ží»¸Ñ"ðHȪƒÏ—®'cg4ÊYsŒ}‹o‹¤ÒWÛªB£áVYÂäy:ì{®ù>´Pw Ä¢ê3•eHK‘KndÀâÚå;@n°IeÙkw›’  •õ†ç9£l–L„Q 8ÌŠ”«šØWiS ßÊ.a· ïäp'äûv@på¯{m—>—áƒ*3ØüÔÅæù6ñ‘™±†N<Ó|Ë*³{´›×ƒÄ¨<œ"Žl*C 6vn éû}ÖìœK±jޝ¯aѽ A&WZ/²G# ²Ûž#_¡«é6šã>׿Nu™7¦óЕÿ˜Pˆ#ß}á˜h±Û½jtŽtš èÞ/©;uNø=¥[çEë–LlKÍQnÙÙy=“‰ Ñä·è%£a“™wýtÔdœÛÅÄÄvìãµ×Çë-_ªŽÛA°9]G ½1ýð˜é±wzcU±R´¡ë§Óo—Ò¼b}Ì82„¨ÆÃ›ÆmFdi›ø*ëo`o·nÑ@)è|ÿ ·wH"Ÿ_³o­ùã¡ßEw…š´ ìÍdGÍs®Ù‹,û5ÙÈþw@)fëMý_¥Ç§aËä–Ã?ßRõW²5+^HÕxjú„¶vNáß@»£ÚqVæs¿ÔçU¶ÎrZje*€A >ª6®Ã(ˆ¬LiÌþãPf²Ë†é9³¸g{è > stream xÚµ—K›0€ïù74!ó ZõÒª{è±ÊmEœ†ˆànÔªÿ½€MÂÃï*{J¿æeóe3[=Ù y†ç`GÛ4×3°æxް­mBíùá%¥9 rΗ6¶ö”ÆÄOØùíÇ»_©î?‘¢$gòdÁ~CZìcò¼eO—…‘×ÝE¨~å{þ;ßn¾k€ Ëm ¦¥çµ‹LóñŸ¹¹«@o&|ê ¸Fõ·mW-è ð¶rë±v }_ºû;Ûñ[_EêŒ9A{çkcÇ0f–R’)Oiž„)-;ÙbšÿDÛ§‹ìõuÝœR­)”ôx*ùWøtÝŒ¦I—ämÄŸ±>è8Xç ÔÓ ¢<ƒbžO~ðA¹¾IL*; –c gÝu½TmìD?èë ÐHO_i,t«|…‚dý:Z‚¯g¥ž™í}<õ<÷IÇ×þœ¬ËO]'CGÂþde®‚RÎé¡·^Fƒî£&ŒúJ0˜~~Œ¸Ÿ/~šGAû©Òh…$Ɉۄ¡Œp¿§Ð㼬)Õ,Ža@†é-Â8Ë0½E,šâ5Å”Qz‹æ¸3ÖÀíÆR-ÃØÊ¡qdG54®Œâ C#Ÿ1m!‰›‚{g·´›q¢UËMÊfóËY‘ÉŠž™%°Õ«é¬³\ WÑIÚ“LJ .b!FˆXhŽñhö‰íã„{]€õŠY’,·…‚‘øuQö”Jäœ! P*!s‡(S€êÆJùòõá‡úñ~¼íö§ÝÁršòCÜD†k{ƒS\vÛ‹ýó>ôǬ6«¢9عHI– /wº6`d`oÝŸõ(¼ Ηvë$4ùCRÊÓ“3iv´Hr’¶‹eõ´n}bôK»¦gÀÚe†-¯Rœ}ÛÌþaü‰C endstream endobj 941 0 obj << /Length 928 /Filter /FlateDecode >> stream xÚÍWKsÓ0¾÷Wä˜>âZ’Ÿ´½ÀÐù… ãØJëŽleühS˜þwÖ‘äXŽ“Úf8iµ’öÛ§´z;=¹¼µÑÈ7|;£éräù†ã ‘kúrfã8-N'6¶ÇÄÌ+1^žµÖC^¦ÍÄdÉ%Á8_ êìòt>ý02GD  è8!gqêõþ8Ø1ˆ‰%Îò»i›bÇcÀJšK4 —–Lʇ}HP¿6‚iXࡵVÛN‹2K]ÜSAäEV†À§†˜Oïc‰¥Æ@n|NZdq(¦IôúBÚ+uj¹Œ?)«]ÝlÝŸR3¤wLå){64ïLvO*£jÀ{šç ¥åè¢6g•ñ£IË60=`ìYÌ"šæô`ø£u;êÍ]b`oƒ·/kþµ¬-ÿüü@du}4¨})Yó¯ojŒíÒA4Ô2ÿ+šæÎF\‡³Þq¶» ¯ö¸öü\¬L:rø¥±¢|é8£-µ€(S1>®`D9þ_ÕÒU,ÍëDÔÌ4,âG9]ñ¬ˆyÚYB–°fêa1?–PMªîÎê¬2ñÙzFæU~AÖ¹ž»½$Í óPµI$Ô©ãùËõÂÁóòAq›bP1äÕÅ{ÔÕ`¬×´Å½´µ_ƒ{ˆqeƒÊyõ¬ë× ¬Ó|SI¯0ºüovúŸìñœãý˜>žõ_ ¹ ‡: µ-ˆ¢Våk¥Þx0©º+²¼nvRh‚ºù9ä—:”Ra$‹(¨C®ùëÌF=ÀÔX¾d0êŒ{[€Í¾Àh@Ñe1îVbGY¼x@Í…‹öàâR=9…¢‰z•ê|W[6¶â‡«kÙ CÌ>>R8ô– •Ž]„C¥·ïÇ¢àiÝ_VÒ«WŽ_Þz_j%Ë5<±~§›_†GÆÐLÆO§ØÓŠF"¹6„H•Š2¡µ.‹8•Û .ƬL%cÓ|Vûè:HV¬úÂY‚¦”î” ~˜Ñ P“@J‹!Iƒ4”GùRŽå) JzÎpÆU¿Ø§ ÊwBÈ8[+áÄõPñrΕÉÀ‡ÞøÌÁî8®Ó~øùñØþ¼*â$þI?}ü²ëgÛ5lb©­o:¤AÃÇÍx¬ÊS­9X](ú‘Ç‘jØã´ºH¾A³ÞÍd’Ù]Þú(éÚ`Œ ùp‰ø†çI4ø ÁÆ“÷Ó“ß}·¥ endstream endobj 947 0 obj << /Length 2005 /Filter /FlateDecode >> stream xÚÅkoÛFò»Ñ~¡|ÖŠûâ½;  4Aú¸Øé¡pÝ€¦h‹-EêøˆýïÙÙI‰®¢‡~°¹;;;3;ïѳ‹“Õ Í½„%¡½‹/NXr/ Æ#€¬½KµZ,µÐþó&O»œÖÝÆ.vM}]æÛÅÕÅ+/ð–\2ͽ/σˆÖ¦Ý/ÿEŸ*¿£…Áú!ÐüñÏ2ˆ)ÿ¶.ß?…=Ý*ªÎ^ëÒ®o'Ì8ì›]Wl‹_ò¯_‹üï`×ì‰îSO«5-j¤œ–´yŸ–}>§Ÿóm—oYÝwÌP.+ã“sKQð pBŸŒyNÄ=ü²ß\ÿD·¿3òŒÕ1¥NʹÍ;¸‘g]ñ>77œ‰¶K0Î2yÔox´z| µÉãb“ÎÄñDÀ¢@®Á™æ˜^ÈY%u›w›´û |©C¿É»¾©ZÜ ޽2<(61xÌb©Àšñ¡.×óºj»&…0ùª/»bWyó,¹Ô,‰“?~Vbôš×õ]Þ<«ûjýWrà#ow»ã9>’Ž@–V ¹(ð¯Áú‘O™j©„«¨Ibé[ã^‘ò»¿Ò¯¯;P…O2@È#¡OÞábàïàÞhR´T,Ý…iÕ$KDG¶4áJèSºÂm}CHû›tNÞÒ²Š’0b­{"ª&DGr´gsY¹ÉÛ‰ƒA~Œ! 1dT)s–h-\nK˜ˆ%]–,Z,9‡,zA2jÿ }^V É!;47ifS’[E„‚I.A–„éØjüz¡9ÄxŽ“Ýbß¼BGþºF`Öoó r=ޝ?Ð÷U^n)·Dþ÷»mJ#ð$’±qƒoÉBg`ž{ xBÈâDÃ;‹”z$‡Çñ>‡˜V›™¼ªb‡µKMŠüÙåÖÚ·Ííæ áo,±¾"Ço’ðl9DËÓ5$~L1S<šS—þl| å‘Ò7A(…ÏöNX€Ü*3Ï;#œÔbtiÓÕ- ½¶EèÌQ]ÏT?ÁC&Býxù ãý‹°£©MQE¬ÐEµë; 2Q°¡ú´¨ÀL[gˆ’ ô&¶Ä)pH-§˜ÎUlèÆä$NöÏjzËÓ8“©×F+ J]Û‚«Y1ÆÈI”ÂnA‘&Õ^ÍCò€ÝTÍ̽‚ú ¶¼Ä !·¹ 7uYÖxëlf„k8¥G8_mÖ·-mªËwÚ| -4t;sPêP±ÝA+WØtöȱ²7.óûisWt›9¡¢ …ôAçLÆûÊÆ°YŒüωò¶n\áà‚%ÁE×9Ô‰2·.²¦>Ãä.£Æ½ƒ˜, ç‹eø¨€P²')\d¡†¨P% ç»s•U0$7[euÕ5ÅõêÍËÊfï&˜ÕºÎV$ Û­oŽ¥àŽ|èk¬«`"E2UÏ‹¢i]Èš¶ÎʸÎ1ö+»#󢎰Àêƒ+GYlûôÒÎjâ¶Iׅ󘙉+–@‚§f$û79Ì0ïnhýÏ%}7 /‚ÜÓ‡¢ W¿š7CýàP,Š,f‰ÑÕK~uz©®NÍ$»ÉHr)òjà3ŽD°=44ñs#Š·ÔLȃ“ñsQ[͛矜M_O«SP‡ïUSŒS5::bZ¤©YÖ³}ÑãBÂXö´›ÆÆ+cÁʪÖ-ÏŒŸÎÐ3hEÐ>Ãì0Š78Ié3Š*@é6iGð¡Ð°½4îXak:Öñyg*þ« ¹ÄdÂ5øÿņÓ^K5¢ä*iµnǼp¤ƒ6ûƒÃ/ÊhŒ¢r)ÆeÍ »Ns>LГ”,$îaα(Á¨Á„llB€©Äv¯gf8èµ7ÂZ– ;õ>’ÛÛ9n œŽ¹56¹ m‹¾Ëš*°­#¬¡¹Ì6›2#}_4u.›E>µq¾Ÿ0§9¤³Ð$ý]¹GäC)⡌ò£8 í#<©=èÑhç"ÜÌB.Üq=îL`ႆ‡¾±[ +sQåP^¥Y}]¤Ø«8ÿ΃§CøM›ªµ÷ nŠ{‹U9¾@Ø]¡°ã¾!‘7"|HBæJ=ç;¹l\o~§E.æ*}0ë¯Æé~J³w·ïF*»`Y´Ýñ3q&Ï™Yð§¿U±þ?öÙP|·> stream xÚ¥WKÛ6¾ûWèEÞÈŠHê $=hPôVÔ·­± e:VB‰[‰Êî¢èÏð!­$«Š½¾¬Éo^g8ÃÕ§íêýç9™ŸÅ8v¶GÅ©Pì$A棠ƒsï>ߣÝÝó=Q·ÞmÿpgƒˆÀx¨‚/T!ó*Øî”ÚX8”á%ÃE¯án½‰päþDh°Rú›”øq­þS¢÷ŸÓAr6‘ r6ù[µí‰­7$NÝßYÓ´2›¢Q¿‰Ky# r`UÃs˜ ή8°— `ÅîW–Ë¢'ø±­•ÙÑê`ÕÆOoŸ‹ª‘5µÌ«.;­5ÒaÝÐҚȢÔIޤ^žD iÔ*/ʇh;Ç-·AŸêB²¹KCANÈ+ MzÍ)Ï[%0[`\U‹Äòd¶ {¤5¨é*‚¢9«±°.k&ÛºêQë_”Šï¾¨t‘µZÓri¤}5GKäQÇÐôÙwÊ•Öê·íêŸ8p‚R'Š3?Í'/W÷»À9€à“,už´jé@*H +îüµúsõélP„Ièg!Ò®b°ÓQOç=cZƲògˆo ð³ÛêWÓ¢¿˜ÝdjÑ_8µ9ŠÚ,äIõ›Z=ÖbÏU1Ô¦i.[ÊU ÔÎ6âLɧ1;ûÞùi^ʒɺÈͶ¤°~ö,¥‚óŽ“¥Ìų<9;J+­á_¸Uñ©b>œ Z8Jm­>l¬×¢‘0ʳËÕ©Ñæ Ï@™½pfFŽ'ÀˆØ˜N×1¯”ºäˆýׇ#CÔ8™j>pZît:žÿÕqq AÕåˆ}`¢¶¬‡­Ú’AMô!‚3ÖhhŒ±ù8åeöw=“ë‡ã•“½ÈëÝk^c÷øb÷¯ÎQ”ôÞ±·DžŒ½CŽ ðÀ/P o¤F©EËÔÂWj3Æñ²1ñȹ’«*ÚÕÿ½Ÿ}Åz€œ×<\0´^„»/‘º$w endstream endobj 958 0 obj << /Length 1746 /Filter /FlateDecode >> stream xÚ­XÝoÛ6Ï_!d“X)QÅ2 -V {ذ%{j‹€–èX…,¹¢ä¬ûëw䑲dÓI»Å?Žw¿;ïŽ|{wñê}æåAžÐÄ»[{iP/ ó€¤Ð/½þ›u/ºÅ2¢¹ßo66¼+±µã]­Jâ·lqÍ(ô4óÍ’¶©¿ÚÅjx¿ ©ë[³T| I܈#iUSõ¯±³_°Äçõ ¤2’Õ­âû¨ùÀ¼10‡Ýn±´°h¥{íДu»>ýt÷«zK„4BÑ6Šyßµ F]ÅW5"I¬4˜DH =@Òf ~‡Ã†X‚þJ÷,,аàk8F ˆì;^!,–,"þ!ã§à Ÿg8vç\pª\¿E4Òe‚¦U„,ò7@È••÷v{a°Ö«a•ípT‹eGz²™žÊv,5 ²h²¿ Ä«÷ þà$š¦MCZÞ4k¤šº0ƒ8Š- @pð¡A”3KâäBà „‘%)xƒðÐq ÖAŠRí@Hq=èq¬2î¹²ÔÄ'º)S»íÊn·¤qDa>ßµ‡ÑÌR½‡0Æ; ñeàµ> ±ƒ®ßîzìw¢hšê!‘¶ßT¦Å%Rhe-—ªWP¿¡Ê‹á,_ª–’í­§j½eWmWVÍD€,ödž€¯QjTüŒJ™ÿ~Æó¯:ûÑ7F­ù;ÄïOKüCf†È~ÙÑ—à‰Ëñç`êöQm›jjUUöÚŽ­Ì.ª¶:¼BÛèÀqžw½zôÉ÷›@ç³3Ö`g¿œ1Ðm{ùîÕýÛø÷©‡ßdŽ Û',ñà Ûyˆ8rÚ÷UÃkå⑯N^ò_’˜’¤Ð¨käE’ ³, bhÙ´SÇõDbD‚ŽAé±ê7ÈÜd­£C‡ Ç(W)–ƒ' qn=4E_µŠjq–@þp|1E%˜«áÛ‰²‚HÒ˜éD |åŒ}—RíÐïÃÕä'#‘£ýT‰ ²N¨W'£”)vó=­!"µHÎ2ò <šÀÞýèLKa’ìH »øåîâË…zÄ#YÄYä1Jƒ8Û‹ŸB¯„IðWHH™÷¨I·h)~µw{ñÇÅ[U¤ÍfQPªYQ[¨­«Z8³!©Å¦N©+­‚Š#Í®ƒóq Ÿ²´d/Ÿ²¶)šÃ¯Å^Ôü9H;xÇNy§t¥% S}„\™ÖÉùy¯+Ù«#©Õ½×Ò/qê?!:W %es׺T¶¾?»’Ð+WºDϸW‹ç .72LÉ}Sï ¹£ØÒ%ܨ¤¥‚ïCßæÁkÛEHÊq²dÒ¤ÔûõŒ‡œJè©‡Ž—®%8î\gÃøµÍxNªaN5QM!8¤Ÿü™®zøêLÁœ€®©é¹µÃÙµO¨¦QÝáPôƒªèœ°çÕÞœ®Ýq®Žzy7ž8‰ÓßœNô’¦ýÊîÓÔ¯0¥kbÙÖ{[—Êž÷ƒ|mÂüè ¦uû×»w¿ÜÞšé7õCÛA¡µÅn/º-Ôy½(]åPBÊõ ê@,‹xn æ‚s*™mí½fׂ9­$ï+¹þ 7&#ô죨ô šÂX³okÑqèʃNºîÔŸ!’;QTëJ˜r}5ÛªìœÖÒS£þ6lWÖ’¶ª¿»pLÍð3¦Ë\ Ÿ*­/ssNíê3T•ÕÞ Û‚ôµ©øI EH’”ÄŒ¤9ý/"Ì}Ì:€‰PqÆ6£ £„˜‹Ú(ÃÌñDyÏë;Uþ«‚5Lü—ê¦>/ËJi¡± _‚[]ÐBG×·¡}ub¿`L½h‹âXuAÕàS¡p¸¯ÐࣺFb w0ýÚv"Z= = [anìúŒO“Ñmõ¤@êJìÚM’Øåê}ÀYgW¦ÏÞHÀþ9<àÌdŽ2ôWè+¾êÚf+ìsÕ1Ü´6m]jdM¬™ñž[FF Ü-\ZÉóÜy2¨xóYœ:_šHú¼ÆàdÙ¨1œ¿8Žý·­¾ÞÁíe+ú >Í•òè¡GnÌsÒR=Ã衪±ï:†Fߘ\D’€¥ÇÚº²—¯v¼ã Ot2øóh%v2ªƒ6ÆÇ¨­0¯=úVz* *Ù$É¿×hl¸‡Y×<àf8Ç"{Eù ]à= endstream endobj 963 0 obj << /Length 1731 /Filter /FlateDecode >> stream xÚÕMoÛ6ôÞ_atj·¶*’²>Š¥@W4@wèÍCÛŒEÇdÉ%'A±ÿ¾÷ø(™²™6évØrˆÉÇÇ÷ýEý|ñèùy:É‚,æñäb=É¢€EÑ$ ³€%É'¦¯ôl!„˜Jü‰¦ûO§ª¹% .¶»Rщº‘¸™Û“n·›-·ÖР׿&ášµ¬ðK¶&¬!‹ªœÖíÆ^ÝU±ñdÚm P¯gŸ.~y~Θ#=‹Ã e“Ë‚el¥·x®’Ë [NB:þ.C%¤IÔãÜøHÄYäÐ` i’NÏ|B%[¦=®$ŒdY"R¢ÅAØ " i˜‡LDÉÄÁ¹ñB¡ÀƒÌâðSÁã NÅdá =ó03«oˆœŒDæ~‘ãÌ#³+Odá`œïel=qÊœ#‘ Èi&̆FÝP0åPª0ÄZîgËx*ËNiŠOˆ¸qLîd#·ªUö†bžÝOðåÈí©×„gîáaú0NÜçˆdÄHBzÔÊÀŒüA¼Ä=´ ¼&†ü‚ Èë¥ó¢Ñ-Ô”(L$ãÓ\™JawäXÔ—³8îOµj‹½ƒ¾î*€Ôí¤©0°(ZM‹«Fæ… @:]TW–±ÔºƒtÕ3“íÀ¶± KH×P¢XÏ–¢¨)ä%TIcˆ¥kÏ‹‚ îHcXúÔl" ’PôÆ·B@ ®jŠ[YT36µá:„)H°<ı8ŽãȉãÀ'¡åŠ™ÃSN¼_‚ùrªö²ü¼þ¬níZÐook,®7s‚‘RT*qÿŸœÇ ö‘ÃÕv¹ëÞüÀ>=½ùƒèÙè„É.>ÑÖ0µdœÙýEG¸âèÄÕÃã_TÕ¯)êèê×ôÞÀ^=t¢ ´wu‹½:bbè¤Ï£Ä´aH<Úì ®L”`dC¤ 4žêMÝ•9aÈ’::â­&Ø%6Å©:"l¢’¬©KP€RгE,–ÓW¥=3ÁêÞî(Â!¿šE_r§w…ÉÈ×Òƒ¨,œ®ðºSƉâFKiÕÈ™ç2%ÁÝÄYD"™þ>K¡Ottº‘Èa(A1†É¨¼µ°ÚZêš EµëZ j®ºí¡&9$$ÈÕ²ïh½ ì ¦öèUÑ®°™‹ëîIc @UÛBb*ÞP¶tZØÛP×”[Aœ3°¥:î«i”‚§ÙPÃq½’h\Z—{çÌPÇÅ®©!2¶´1=Ò^¤S­°…G+ DÏá%5$Oax–¥ˆ –mE+ß È¡Gâ{Æ·qwå"vG¡3™¯ŸsØcÉý,Kníçíïp˜þÓqë.ÖbNE+Ë@ˆø(v›ÚÎö0ë·…I2óܰc˜GÚ†¹8;ÓO'bWÚðþÒ†6‰®‹vsÔ2×uYÖ«×C¬êív°é¸ƒfÌÛ=  a¯hió—Ů޵ ­I\¹hh Ãz\ ^º¤Lƒ¢>¢†x’?¢fb1¾K­‹ÍýÐîçžë´IB?ó¶Ï¹ORÒ0âáÀ«,t‹"?Þ5EÕ~.Õ^•ÏBl|^ vfÉ»BlÎçâЋ³×ú²-•×PW_ôäÍuÙ‰ :¶9UÜê|l‰o[È4vî3“s³·’c¤±td/g„[ÙáÃþc  ‡È‚hi­ñ­áD¯SÝʶÓ/,ëÁÞvõþ·×¯ß¼o_•Wuq½¥-„0Œ×²U¹Ï¹º[­”Öë®Ä¶iÁ²—ÖõJg [±2¤ËXÍ´l ½¾r Óù4Ža>®Tµ²YÙÖ¥j$lõA%Ó¸psi‘ôZкÀYÄ€Y /¢9ƒ£<аwÝö²7dmãã-˜ERc…?k9æ³Ð¯®Î{S.G”êKz©ñÔ $hCíã¡4ÁP8Äõ_xÚÞ0 8Õï|–šF‰mò¸Ðf´’9í¡ªmjÓÚsô‹‡¹OóºzÒÒrcFνsˆ3R”Ƭ§b$œºîVV³ïG/˜=µC×Ò2©á›szËúžRá×Qü+/‹ÿÿ»é»µû/<•ÞVºU2Ÿß1éYƒŸŽ_!ðie¿„š™}_4uåÌïbxhÊêð±ó“QöŽ×ûi`Á<ÄñðMóðý`²è¾2€äj]TjTO+um}XõJ´}ÍìK/¦? ït—»§ÙÝ䲕¶Ë÷aŒà~u ãÝ÷tÛXOå¨ÑŸ¸”ÃD² ¬‘išÝe„ˆÞ\<úéÓÛ< endstream endobj 974 0 obj << /Length 2677 /Filter /FlateDecode >> stream xÚ¥Y[oë6~ϯ0ºû  #^t;@ œäô)¶íÙMº}h‹€±èX[YruINúëw†3’e[ivóQ$EÎ|œË7ôÕÝÙåÇt‘‰,Vñân½H2¡I˜ ™À{¾ø%¸[¦:¨—&É‚¶.Ÿ–* ½v›¢…VÏK•ú^h·ýnW¾,»ûîòc$'kK©„I!­kûϹí,Í›Š`¤Ð™§ñ¶¢=móØo]…Rt,E=³WšŠ8)võ®kN·Ò°Uª†YçË‹HÆÁó¦X¡:V­(Kjuö÷‰š+Û0 õšzÜÓ2Š[öKØ®¨ù³Ã*Ñ"“fq!µ ­ßtÝW«®¨+PSk>ÿÈw¬ê¦q«Ž^Hï'X¿hêj€áœÛšžÝÆvG‹ÖEYØæ…^=î´]K3-*âÇ-JûP:1ƒi*H!Kþ À¥¢àoôØÙ¶¥–ß®zb1»aÄr«ÝÔ}™Sû§÷­ã8QZà À´OšNÚŸ- 8…ö›é„_Ã(ü./Ò º¾¦‘ðÜf&GÇ‚[ßùÆé~:õÝ»Ïêü`»ÉÍñ3£Âðà38ýVN ôþ1^‚}eöSøIÒdœ]m‡ê~µkŠª»/Ý“+¿ú:„.I|Ë›ä ºŠ…yÁk[–ï†ü€š 9à8è`hŠÙ1§QR¡È”šÓwòå îDÛCéPÝó©-¼…óŸA 1 7¸›1ÄC×p»³]ß¾ã=G ¹uûÓõõ···<ü¾|¬›¢ÛlÙ”]³-*0ô|î€Û~µrm»îKˆª$&oo€zeÇ1­ØZF`W$¬z !©]¿ø°4¸é©¯ê 4ztÕÊ nVºÆÂk»Wi…ÁxêºíέŠu1øïÃDðW„SYÞ‘iýÐo k6Œ€Åúü1rr¡§:cÌp‡+ÕÿZ<XR‚6ú_Ö º¦.‡¿0uiNd ELH¨©¦5µHaK Óï|d—ýþý23ÁÝ?Þ_ÑûMµÔ bmWŽ–4ÓŒ¥¢PDa ²f"JùЖdœÖáŽ@GiPc‰’ ¯±s…)³ó`Ò0ž>?¹aÇæµm ¯ø¥êÊuCVM±ÈúžƒfZÄ’Ù O³ê…Ñ¡P0ãB)‘C3oª pßºÕ ˆ B‚½ëº¡FQµ]Ó9zhnljLwÏô‚áŸ}QæÔ´39K›$RüÖ}>• ”éÈ~ ¥)YTkó%@žj5Ì$¢UÊx7@}xŒR¨ý)þýæÓŸî>ÜüëÒ{añpù½í€¶ÜT ê¥ûl·»bÖ‰$Ji‘d#çË dW52##‘m¥²ö´Àêžc‘€PYö`¡àLO„i¸áçŒ8„cÓaÕË'mؘ£ÉYD|‘§@Ü1kp2TBïa`À!¤¯Z‰g­Ãq˜r‚ý–¨KÛÑ«§ó‘x™ h‚¾Ê]™®Ê_Õ Z0Äž‹ˆyÒGd ‘FéCc@ŽÍy­ð±&#­‰­úc8¯kÙ‚‡£'#“FdæˆÛ}ô ¹­7Poð­’çì"¸Å˰Á’g¦ ³ÌÒ±¢Ù¸r7¡3‰X™É ²ÏœµJE’~Yp G£Ø5õv×±‡©(ǘzíûvm@Me’໺Â*K!1iE¡‰*¥@Ûº-Bõ@NãŒx΃G§î;zE‡›ÄÇڠ徇¤s5ƒ­ÉD«ƒnÆ™S(Gü‡¼N¢zE‘ŠŽ•KG0Å÷~7³/I ™õÀ{7]·{wyùüü,м] ×mþ«Íå‡ú¹*k›·—> Ýß@ê&FÁˆûŽ"Óý¿Ã»|=“†fLõ‡ºspJ|•˺LqÙ­3Ùýv5ªEÝà4à¥ÔžÜYbýVb˜»7nv·–Ó2¬Ì1cM 7ò¼X©àg ·ûÎQƒY'Š ¤ß·o€÷¨1ͳ¤6¶å”B–‰“CYJ‡×iÐl‡è>Sç|†Z¯ˆ(!¢›è/IðŒhŸ†Wt09ÚL* ´¸Aåž©ñÜØÝŽdkXŠÁ|g€óJâìÄξ½;ûã £D¸ C“[(Џáj{öËoá"‡A ·ÞSžýÔ-08©órq{öϳ+¼:ØPg±0Yâ—ŠÓøí“î †ß‰Ÿ™ x¹‡Ú­Ýò… ANÏ_ˆØ² øËWíÑÆ®qOEÝ·³q9Fgo¨é}<ø2å¡g"ɬñ T ™Å_žãÓ…‹o H3˜²¼îsľ¦0B›Ø×`2) mDc~]Ã…Å-ØPŽ!_ÁŠâ#jÓfPä´FA–òBBòR\'V§:Z\²\oÜ ‹”ßñŸ›¹U «“Ÿ7è|:ŽÀæ º×ÑEè•ø<†8ò×iqào€°˜ª/|æ^6ö4 \¹¥Ï_c¦ðä°õÂKÚ–[lxNØ/¾­¿äÛ¯‡å®Ïýp'Èën”×Vsä^Y ‡^, |›ç Ô¬+4°èhZž…'w¿Ãz™Ëg£SHÏÔoéÁl•t¬Š}€±5ùù\6N <‹ã·ë Œ{ZáÃf‘»ö@v³ÅR¬ðlúŠYÒÖöú0„`väõ§Êןu08袓jµþ¾›5_š"ŠUÑñ§yïÚ5x—Ñä,=h¡I‹mñ§Ý;gÁW²` ®‰µµ fhåá=¹‚Pî°Ê¨pô=súaÿ^¿4 Ãó¬,ø]uOÓ*çXFuïü|3ÅT_*Ù—<(Šõ×!3)M•$œÿ3ƒ@ †€+EÃ)wXaÌ¥N¼d‹C¼?®^àÖ¶/;…¨ª=XÎ)˜hA ;"­ó‘ÎÿNà3ŰuUWîñääG­dP'|SÁW´þÄúàmj}¼¿ó¤“¥ñÖÏ ¯v9¯~s0){KMóﺀHrQ7ù\l†‚ Ú—ì¼]G6ò4¶'1) ¸„9þ\“È£;Ú5Ýîp¨‚Š>º†Ü&LÒ!^aQY©†ï$F8¬µ‹‘Là¨ÿáG9¸#Ò†°Ci9Ü(MV}H>…PÏÑfd ­ƒó×0Œį £xº ~;0R  òÍPÇÆŽA Ü„b›aÞ£ù¶²§N볋ɉþÂc%pã ʼnÏÊl‰,IˆÔ@U`‘Þx»ü> stream xÚ­ËŽÛFòî¯râ$3L¿I.°‡d7Æ&XØÀbaG¢fKℤlOùö­Wó!QÎ c]Ø]]ÝUÝ]ïÖ÷¯_|û2_iLX½Þ® —jçV™*Rd³z“¼¾¯®nŒUɇ+“'U[¿Uڭ˾n ¯;øš"Ù4Á¼EÌGn—üéêýîbD\àP÷‚¼ÁmÕV‡uÕÉœ‡‡¶Á5>Õ{"t p¯’÷€Æ(U¹F„{î­›ý´òX8 ¼gx³eŠ}Üñ«Ú›«w¯ZÝh—°×mSí5ïUÈ~¨7ÕæêÆ*Ÿt}ÙöõáŽ{B¤Ž4†ÛǪ¶?¶·Ü”%èX¨±å/qChµéÕ³žmµƒ=óa õï—V˜•+™ò´©úªÝ×`÷¬æ»×ds%+fEÒ<Ð2€þíK@e#ØÔfÖ ¹„Èg…¨/~xýâ·ÕJ¯táS¯ü*ä6U™]­÷/Þ¼S« ©-òÕGBݯ€›Ck·zõâ?/¾GyœÕEžga)“æ@h÷UןS5F¥º0_‚ª1°W«çT¦§LÇ3Õœ`Ò, §wês+w §»©¶åq×sçÕI¹;ÊØ[å•V¼¢†¦EÌáÞ•…cÔÀmО×}«”`fÄ“EÒù9o.u¡XÝLÖ}²…NJÔæØŸA÷Û±l…?P BêE>¶#.é‘5:Upî3ÑÚ‹zÖ$û9j[­ë޶«äXHi¨¹-ow %ã “êÃöW7:iºž{벫:ÚAžÜXoyÊãmˆ¢‡»ºÔ)Gå)ûä®’ñmCúŽMD(Û¦˜ s¦ú${®ïî£]ð¹Ì=L }ƒß,yØ•W&#̓ÞǺ¿—ñ{:Ä(Ûrº‹‚¤³ä¿÷Õ!âTŒBJ@ ž”“-ÈÀl›v_m®E¢ÂD,Øõ ®JDåÇPösq±*-ì O­X;¡Â ”Üßñè2HN»}q*ÍLqbiѬ–;¶ë› /¸½Ò Ø=ï“Áþ¡Ý²²ñ@=˜}/òŠp2ësã`2R¤m£AEøDíC]öä|pQ‘wÛã´ãHT'Û¶ÙŸŸ84?whKf÷Ì»¡0b-LÈO<BúfWµ%®GÝ-œTÃGFç³ÝÚ“ÂÑ$,Ø*0J1ºûæ¸Ûpû–¥†;u×Qtà4ûuNœˆÌïòÁ œlñ¢ÙÊ‹§9ð7Ê€ÑYjͳ|H)¬F+ió9¢ó,Íå Ð,`£~N²Ùëšöi(ôÄm8§“Ñ–@Œæ :ÑdŒæ dNàˆ dŒKŽ Êi LŽQ `–iÀ1 Fø‰Â\ |P˜N˜A›ÅQ”£rzf™{ÊX/ªÆq tÙdXÇá\†*†à$uWñÈ`(xz;Xˆ+ÔcdñšÇÆÓ‚κ °µû"°§b »06CH '£/²Ï ¦Ë]ª¼û"DAÆ)LšE¿@ÕkDÑ_‚ªGEÐ3¢ånA ÎÒB/Z¸?úóës€œ ní¤ôO„æúÄ1}'tÈC?Ôk=‹~ï\´ëîoÂ…]»iÈ{Ì( µ1j|5äÞê©`Q}_­ß£— 3s#öâkF¹kËÍ/Û7Ô±‰yÇпóç&¤^û ÿtõ2`žµñÉ#žG¼L[—Ö@ÏO«`^?C©tu£ì»Áª«Ôi=ãè×rý‹ìçq×±1òGëªTÉÆ&ÐU#€g“Dú¡P.€ŽàÂÈ 0G8þ«Ìùæ4\S‘»Â`.ä.€½É€9Íh-òˆèàØ``ŠÉð £OÏP§Aá Cd3;cÓ ] ¦§Py®ŸÍ&<_ÌNs*|ÿ\Ô(Å}µ&Ÿ=ÇŸªm›s™#ütA£v€²Až3Ö,0…i6·p‰· ¥KjM;_Ÿ“ð`ÄãðW’hÀ’”F„艆v-…ÏÐY7»ãþ17 ñ ò„²­Z`ïÒĶ­ºXwذϵÁ±cÆM5{AtóRÀËèÉ@eÒª|n &1°U1- ¾MÂEáС´O몂@€Ê6ùwõ©Gª2+^b š;§6†í06õÆC´ p®>`UXh\Qt 8,g Ì%t‚fu!†ÄƒF&á<^^A2Í¡n ÄR2 ±Ý­‹©«-&w P\#"öèg´à+½Ï`) ­X‰W¯ÿ÷óçjhŠiOçx¤‰a¦µÖ<ǽ—8jWs„þä ì×à HšÛ_€»‹õ6ëmú¬Þ–cuT«é¯úFÙi½ÍH½ÐsKœp°ÚX“3úX½4 äêÚáÜ(w©2h˜C{ƒ‰+Ý(Tš1m.Z5,ª“Z—˜–ºì¤(; O™Ö)£àÈ»'—ôZÊD)N¤Ã„IÒ)¢A«»§·©wûˆ>}(2%?ŽAÏäa‹<$ДZ.O"/ÂgürPdkÕ”þ¿àÐQ?/‡\l‹SHÀàÐÂIMà±&„‡¢ ¾áAÒÈ%·aî  j8%‡ƒ†ƒzd-à;ú„mÅ‘  “2£º ;'ŒgÃ^yÛqôRuJR‘³Hþ3y y|—œ¦´C”7OPìŸ$(óüÄÄÓ„†Ó4KapÇHlc±2:ó©qxH'côÊ8rR•@ϘÉ ‘ö|á&Èâ™búÂ˯òp»Íe¡–uÞpº– EÇmºalpÕÂsÁ–néQXf,p,W:ùò<¬¥ä_b©ª1.f¦5\f^þÈYŒÒ1\j„ߎ8{A¸ªOò¶C7þá‘\çQœ‰ü{ä«}œ¦×vu{”l·ô=¾4Ò –ËÃiê,‹‹«Â°BÉÈ· ô!¼ìö¾;ˆÛ7àþÀHm;nÇGLl×ÝR8¤Bô“Þ ·ôš©•§8ö9ÅÒܰlÿNö™?Øe9xÕü‹PÍ5„~aNu[·Kd­ÊSS„/AÖj:ëæd¹êr^ÄÎéí[=ºà‚D±eî¸?ŠöøDü¨Õ ˆüÜ.ÿ% äÈÁ™ågFNŠÙAϪFƒÆÁ’?»²½ãÈSóî02‡R©£?ÎK–âìæ±¥Ò$.ºãÿ‘=ìf„îÆ¿JåäÒ„Ñ›JFù ¬ÎñÀ ±vm¤!ekÁ¾o›ãÝý’Yw4¬XUû&j<ßGEŽã[±ÝqüLJê͂²YH’rw×bÉðü¿“žþ;$xñ_?³Ó;~bCàäàrùÛ´Q”ÿ&Gq endstream endobj 1004 0 obj << /Length 4473 /Filter /FlateDecode >> stream xÚ­;Û’ã¸uïóz‹ºj .¤S~Ø]ïfÇ5ëØžžl%ë-[¢ZL(RËËÌôäçsn¤H5»{œÑK 8q€s?èoo_ýî‡8]i­RçÌêv¿ ©2«¥J¿ºÝ­~Y[en6Z·þkŸµÅæÏùÇ®®n6qpëoN§¦¾‰õúSq̺b×{þ}—oëjÇí?æMñáÆÇk˜÷?ÉÛ›_oÿô»´_¥*õÆ#úhµÑ©r‰cÜoNõ©ãiÉdV©¦D<鵀™u†è]¼†ox+ëj£š„wšóÄîóèyÛ™|B»§ÑØ%·ßf÷MVÝsîp©Yš§”űèòÝæ˜ëF†~›R ޱÚÈÖ7:VÚi>À1ï°MXi»õß#½Ý|û"ù·wÐÓ üú?o»®{îli30½os†t‡¢eÐ>Ϻ¾É¹3n¦´y×Õ=àù‰¸°“3uKU”ŒÔÒÀ¼Wßß¾ú핆‘h¥WÀT2ãƒWdh{|õ˯ÑjcZE*N“ÕGšy\ÁQc\¯\½{õ×WߢÐÍÆ!QÞ¥´”µŒ–ø5JÕ# ZÁ†=Ž Ç3Õ-äônœ_ge¿tTÌH…ÔÎùqÁÉÇÈcëXcßÄ%È›–;Û¬Í_CSÇë¢cP!CUM€°®ò-8#‘Áïk™w<•ù1¯wݰtΟ ¸‚N®S&x·õñÔwƒ`*UO»HY7r9ÿ•YìŒU6ûXÙ$ù;” ´’IR­Ç¤ÝX›¨8ÌùQT ›elöûç·y¼š‰Tjô„Q&Fíñ×BiP—˜¡® ´oI;FäFØwܯîþp“€iºIØŸ À$²zÝì‘-[ló£xŠË­Û®(K^²Êó‘í¹`»ì£•ìûj‹neÝ»þ<çA ŒQÚ'B@>x{¨û’LK¼nr° Kôôð]4ÒjŸ•m¾@ÐTÙj×,ñÅ(ÙaÊ›ïÿö·?è ú›˜aÖëaoí‰6ߢÀFù€Ä–ñŒ|Il×»ºú—ŽaLAl±âà P_š‘ñT’-^ ¶¹bBiÎg&j¨ÅæÝçUÞd% 6`Æ?r·âѰ½#†ÆeØmËd˜MŒ^‚N#PRPâ7 },À½¼É³¶®²»r69+yrþ÷HÇ q´6%._ßöYY ÿµU©½0h IXߣŒ…õèjVìòLD¨fHÏÂP¦Ž$gv J±ÍGI«·và ÜhŸvÜñ(>UÝiß„ èŠ4dB6÷DKÜ_Åh÷ùGT²¼5é€=¤ ç 2ß§kù¤)ˆþA ¿l a†l éi,ë @Û~‹xrÆ?âýLbF³:]iñw³ M¨•®ƒ¯C~æG:áG`æ€tt ¯g‡XËr…®1I×Å^~;ù­¶¨…xf첟…£?â_ÁÖð…ˆI2C8§ƒ,Š‚sXñ•ʶ‚i°Ø^´3üsŸŽ#Å1_:ÞiÜ{Üvã™'S£”à~﫬‹Ý²­ìHaÖ>âõÀÐõ9ÉD$7#@´õÁƒ ÂÀH¹0°FÖ"±Ã g±KÐ,>¯eÉ¢<ÈNˢʳféðíCÛåÇ–M~wȺóä°NéËÖɧ£ kë’Ç {ºÙ‘L<ŽXv¤ÑÂv·H€÷wE““óÿ¬ŠõL%ß±ðXoyëÝ93A(o6:MKp­þ~æ@„=!NÜcð‚#†ØÉãÑèxÚaY Ï:‰De _W%,öÀfEù 8«‹MÕw›§]ÑŸ}ûÍÆ™ˆ-76@1Zˆ©Š!ôAØ4Þq^B2ÉBK<6ÂlÃþ¸Õeÿ3Á~*3$¹Ó)ƒ& 8Úáçû%ÁcZbËÃçÿÍR7PÀ‘ÑpoRÈ}¿}à)»|Ÿõ%úu{2GV|þfmÛ1`À©ÂhÙxœY8ı8·l’µ)RÄc(ŠŠThõ¼,ŸHǧÑÑzc ´•+ÿt*‹mÑ1Á1x*5ÀîŦ‰yÓ86Û4˜xñ8ç‰T5ŽUdÆhó>ïòT¯•†,À¦°Móu‰ª· ²cZ*6’ÅTýñ.oð¦^Ÿº Þâî(Ìñ²LÎqZ Y]ê¯Óã}l/Î:0hµç”ü¨Ì˜fÌPeæ‘ü9H9˜ ¢AYÈôm ¨›ÙÛEqI!ŽÕÀµBúU)oŠU@+饅v'¥"‘¿RmbƒÑa]cn_'’6è9ÎgDƒoÌUP'‰²˜Ÿ“”H¥ñ˜vÎënI°.1rC:Å£5ŸËœø–¯hý »Ð¢ÇOô †ÁÜ膉cè‡.N±¦Y5ÿUÑYY|¾üzj—±ÿ(¦…njÄûü¨ wçoWêÞÈFåjwº ôKgæPÅFfb >}ì½’ ¼M^p_ ¡q°DÉ’ê¨êbKâ8h±ÜVúå;”‘Q£Å‹~nOýÞôËѳ&6‰Éx>o2\~r! ÇNô×½Œ0±1-åuú´‰u`¦ Þ¾ NcĨ3”EµøXã‹ð~ÙÒâM‡ylÚ80Up„`!ÅùÊk 2ZÉÂJOZCN’« g@èg8—Ȇw”~ú*ÓZ;Ôš‡:sÛeÝ>`T¹àÿÜ‹–ªô,.] =ø^w¶ëŸ~)~}é¥èX{/$®Ýð³iÅu•`ØÏÃðîƒ^Xÿ~éÒ@ì™|'Íw‚9½vp´5E²ñÏoÿÁïÜú÷Xö¯ U¨ÅµÞ?»Öûq­9I€‹I<ß)åÎ~(ìøÁ&akÇäÙ¼ÏñEg±Wú¼Ô‰x¹V@gg°”X\ê_®£¥ç·¥âqÞ=·ä;hJÍ¿ZEØàd&“AyÑb™ŸS›ñV¹Ëbç›ËWCâáñöfÌÁùÝ’ˆÒ¹v—\i H!%ž"Åe§C3n¯Ó¡73œ§º¨:yA/53ýžôðAbâkV¤ñKH¤Bú)Ò;Šÿ#õ\D¿Rwñ é©oLúu=þgÄÞ{å!¸ía%|ó%´¿R¡ýé±/Ÿû+౟â|Šßò”ä Hù%ÉçÀî9Jú9Øa”<‹O'ZAî9ÇѤ£8'€=ÛÖLìü&¢×³"Mÿlä‡Ó@P+Ûúc~¦ã“Ž8¢k'ÿqçìú»C~ÄÜŽ{ßW÷¤ Øõ×2ž5U~_äÜû)Ë_ñ ï+ü·¼ÜC FÍà[…(ÉC´ˆ¥)þÿ@ý3*$$ endstream endobj 1020 0 obj << /Length 4601 /Filter /FlateDecode >> stream xÚÅ[[sÛHv~÷¯àC¨¬ ¡o¸l*Uñdãegfm¥Rãy€HˆB†¸hYþõ9·ÆElJòXUyÝ>ÝçúÓÐw×o.ßg‹<Ê,®o¹”µ‹4Î#•BÏfñëò§¦/ß^¬ŒvËþ®è±e¡UbÃ,]É=Í-wôwUÇ­Û²è­ E+¶ÙóP×ì>UõÖ¿. ¯qX-j¹«ÖE_âӆǪ®;Ê4&k—÷:[í~ÅÝ]_´½, Äkí˶jÚÕÅo×ÿ¹X)åpÒ•2‘rŠOz¸XÁ´Ffë™]»mÓVýݾ‹.V.O–ïð ™Y<¾-ë²-v2yó©Z³òPK挌¼€‡ûj'/ÜÅ’WVÞe ºå_f4`°åVsÍO¸Å²ó“H,™§O}ÕÔtØx~Ld™‹GÇØb‡|-ÿq„&±ØÞÅzyh››]¹ïxþÇØÅUTFp>gáHMËý›êc¬LÙ–ã«ÐYô/RÕ Œz]vð¾âÁC[NÏ€³hç´«bï[¥lÃo¸X÷¿äW†}»j:e_áÒVVÔn0·›c½‘<Ѿ©«‚´ «òå§ —€ì~ Øи|¯ÔÄZTšFy „‰à™/è5ÎpQœª…‰%ÆôOšÚœŠ#e«É$Üð)5GZe_EíïAj™Q»õ‡}耡ƒ‘ƒ‰¢  Á’<_^Õžg•0i]t¨üÖÆË ^¾V /h†dsZç‘)‰H_S5 ?ïqÇ]_vUÙvÜY°~²H5*H/‹_¾w3ÉÀ.m’xf݃cÀYoþãúÍ?Þ(èŽj¡ŽºEâ’(Mõb½óëoñbƒ M‘ɳÅ=MÝO•AÖù¯7ߡۜÑÓÎEÆYZÊ¥†©’ Í4¬f^…læ" "Ÿ‘­€ï§TMœD™~ ¢‚Cî²9ÑxÍþTÛ@à™óR蛤täÜ0åìíTeAk²ÜO)¼Šœ—>È53ÙÓ·6sæ¯ÁksBú"áÛ4‰b—¼ Ù‚tþHçnÈ„NȺؗ°¯AÖ!6Pú‘øÝ]@úq”kååð6 ©•uàŒ™»î°ÄTG©‰Yp^°ì7œAÅ&ʲŒ–²Z?)1eâ(IÒW!k€lìæd÷àåT½Cyª.‹l®çTÏè‰"‡¢_…ldÕœê5£šdjß§Šª4ñçûcÀ­ZX&V¯±umaë&Ÿïݻէö¢aCüéö= `iÀ<‚ÀCÅÂÍ$„çpNØ)†g ‘ãX&¦“yI¤õ€<’Ó}e ßæeŠò¸©†q¶ˆb«x­–ÇuÉ[îªmÈή F»ž‹A›â¹‹TÙ#Ms¿Ý"aAqø[/S ¢N\¼¼fCò{@ð¾>hÆjÀÆ4«æ_èáx*õj¸ŠÀ8ÓWŒ8†ÆBã®ÚÞ­v%K!Ñú0ªÜW_xÈ+õp’rKHÓÀë•ô¿ûñÃw]Ýr׈]W„kql}¡Óå]QoýûgKùão¸y™.áMøK¹NYÖüÒ¶¥KYÙös£Èd6¡µéÁ¼ó£“·Ëá”Û;¿<Ö46åº- θ‡ÎÁù˜Dì±!»Å‰-Sž¿£ôá9‰9©¨y¬kö²ÚZˆÐþ“„àdÏ/ðÞ2¿7”P’ú’жž^Õ´åÉvR ê¬1’Ô3Ù5`\#”AþÏ$a͉é9AávîÉÉUëÉX/#}û æ+¼µ)¤9éRznж­hƒ0ïÈ9ë†òce~v}Ylx3~X2³ò¶À˜Ã{l@¸M-CCãþÒ¹ó‰r!pÏá2c•(&·Y¹â¼…<ôWœð¸E‡n‘“Oì zE„ó&IËóŠ‚H>K~ØÒÞÙD µi¸pÍþnÜÙ=‘ =Z·I* OÉŽ¦æ‡1¹‡ùlÿÆJÍE¸=ø3¦\†ð’JtC{î”á‰Ðì€sç7DÃ`J+)>r§,v‘e€~”œ%ú ü‡ç#¶ge/Ë*H[Ÿq zÇe¼vACž‚T= …8f Ñ™y –å€gjγ¦-Ö»ÀÑŒ%|);ÛVciÎ#.ZÅ|P]Œì\cû®©Öe'<¹nK]ê­dÞiL€÷$÷ÖCËbØnµ–çæ¶GãÀæKÇMtZÜÕQš¸IðÛüöͱ—¹LLaYïpìaVS£àÞN&ÿ‹OÂü8ñýø8>`/Ûó®ùšT$Ç¢²»q™2äAÿtõáo®ÿrõóåÕ´êrÓ¬/ïº8Uè™ë`"€ub¿ z& @GKʼnó!ö7ûfsª@©‚æ`éŽlžŸ—m#Ï¥T›gr¼¡c(žrDƒ¾bÉúã ÅuÙ£:bÍÁQŒÏ.¿ÿÙC}R9|ËO])3$B×/åÚ»³„E#> nÇqNãÉ L뜌’‚ûש´[vW 'F¡¹ÿkñòo Â{ +©ƒÅë¢Ì'@ì0é;¿°á&Ñ…ßq¦ngÐ>q‘‹ÑÕæ‘ËD7 ­'»p—ñb.…°ë㾬{aøæ¿/ò@ëCvüp½Tš@”3Sð¯õ©¸WV'Q:²Òb3ª7Îdzð?ÙP éH“(‰Ô˜\耥nù¿ !ð)ÀmìÁH_m¨ =˜àà-@Ã8`7ÁŸyפq¨¼õÓ¸«åÃáÏò•BÓ>ÈÛ ÷±ȉ½·E'k°Ç=¥@ ¼Ž”ôSM¹Ó<4XÓ &´tÌÝ>òç˜wû²ç‚£®ezÉ¿˜…o1éÅmxËÀaâ6ޝ­`HºK¢®¦ÞÐ|ÖgìBÃÃ×þú×kî˜ßkQlÎaZ†Ùñž4AÅÊÂL¦­ PwYö°+ƃ>ÒÃMr)üÅnµ¼ÈÜÆ.ÆÐ@æiÚLꘞp+¥xÝ<@!µÂÐ_vèñ{?®1p Þ¢SÙ·’ÿë¹F )Ô¨. èGPìY~ƒ™¬ZÒõF&w&àˆ—6Þüw•Ÿ‹uï ɺá@>3ðØO¨tÍ_Åj ½7 ì­öðKruSÊʼZ”X lMÖU9–vt9œ€Äm:šÎcºŸ%;B·ˆ,,˜2wø2ª ÷Ìu]Hð2Ãö¨Wõ½©ØlÊ O¢Œ 1#Vhô²´¯Ã…Œ#Öëáº{uæ<`Ñà,h(§«÷×R…ÂøK÷¿Ð ߉ ´Sï\ñ™ª˜Ó™h&ðéLëîHj÷5?úXŽí÷U±^½”ëÀyf$´Ú,™0™/°qŰ ›ü©Ú77}®ŒFË·Ø*ø‡t«¡:‹·D3X" «Þ›¬öQh2öMÙ€Ï{); 3ŽVòßrLˆ³Ï §Ø…\Ä_6XùðR#Ùˆ‹Òè–Y}7%œx'ZMÂÆXs)·˜cò•²±ôaʯéo²Õfaäá‚îžy¸ðŽþΛ!täQ¢ógá5d…n€×:P¼„_D-çó‚ÔÀ’¸p àíådûœ”e@êS» ìÒõ‚}º1Y˜¤È„^ ±T¶…xÍ¡½}µcÕÁnâq’ŒÕ«¹“ŲHöŒ5*ŠÇ,¼-¼tø‘Ư"¨ñ$QœÚs <蠛ˎú×ÌR15–˜ˆÇÁûÉw·=]j¤0>Gº†H ì²Û•›`ŒÑ‘Öæ¹óë(ΆówÇõPÚíq·#ìù6°.î;M_ä%v˜Å.% =«Ý†›|=’êɉd¾dlÐfm-êíp|ò£©Dll|r¦uåæ‘Sn!ÅlÚ‡P-ÆFÆéSQÒ_*Ð\E#' 3P~.×Ç3_$6²vÐ}ñ;~iHJ˜pJ#<±“º¤ÓÚ׃ñFã®9î„î²+6óÉ%šãúêÔ›û´yž[p 7-8P\f;ÎPi›‚™]…̉þ9¸Wˆ9Oa¢4ÍαV}P¢š1·Lê¿xÆ-f;¹ŠÐW *rc Ëkð£o'r‹/,4x3義Ìfó,R±¢¥Œów`eÝox3kŸä“(µn®Ü¹wSÕ§«çydFÛ§“>ö9„Çð²Ë—]¸–®”y™û»„d¡Zw)5@ÞiI¶gc –d!„™oâ88?®;©Yá&ô¥¨ìT½M”dcì :ÊÇжo6oÛcXÝŸÊ6TV³¨GèYЀáKƒjL|ó•Oúð+œwTŽº<"èO€¶ÔY0 DÙø ÁË@„_rHÍf•XC T ÿ‘Â+/ͺ!wØuèóÂ$rã5ÄçÓò¤ƒÉ»ð•‹“±á‡@)÷©€Û šøžDèÿ)@=Ÿ–°ÿ(qýÿIÜæûÆ õ øO@-n”,B™‰€<ÀTÕL"O@E^ŸÇ¡ª8Žý•çlv?șӡ³ÌÑ>)D°ÞqΟ7@¨ ZÒ¯çø9¥xVr§õëP4{”HƒNæükˆÄ5ÖÊC¤bdg@3&“BšÙ|6B6Ò å5ãÑz`à üqÎzbò—lÏÍxf{î%üCÎc¸‡£•üòÿÊt2Nßr4íï<æk¼fø” Ûþžñô¤FgÑXB;sPúA?þ m-Ë%•ÂÝò/ô/z&“d%õÿ­ù¹Þò4ÿ©SJß©ºRæßÑÇŒ¸„,5)ó¦Ë}!4“å÷’wá \/Éê½wÕ)×0M&)]ºlêm#5^êÇ«1ÓÐw0Lò$/NóH/~’öä¿R¨ ŒÂ¤ó¬2Lü_ŒÔWo‹ßÌéù÷*[à¿–ÅŠ^C(×Qæã^ñgxŵ$»¤{~¼f©ýÿX˜É뉊R•jYwѾ@ù7¼(ýÔGí}·*Š5¼mÊ<ņ ¿ÅÉ|Íæ2Ï–ÿù–‰« endstream endobj 1037 0 obj << /Length 3009 /Filter /FlateDecode >> stream xÚ­ZYÛÈ~Ÿ_!8/`qØü°6b¬ƒ]Çç%X/ ŽHS¤ÌÃãɯOUW5/q<Þ¬ŸÔ»«ëøêh½¼¹º~o? e¸¹9l¢Ä—›(H|A?Ûüîeù—­Œ½¼¬ÏÛ?nþqýZ„“õÊøI"6­mßœësGËâù* «äóíN)ãÝ‹=n}¤nÑÒoJ?‡ºùD­ú€¿ÚëŽù "ˆü@ ›?FAàìëíÎÍrÚ¿;¦–e½•‘wßRhpKxmþõ\û¢£^–„®Š®¨+ú‚h5Þ9mÒSÞ5pC e³“Aì'±Úì„ò…DÇÛ_ßµþvgdàÝíõM2#»)îlbïÖóè¡î«ŒÆS¾-l:aŠ¾ÑÆ]øØuçö§ë뻢;ö·þ¾>]§Ý±9®Ûù%/&"é‡ÁÀ2&óÍÎ@¹Õ=uŽ)öHKhäsŸ·È¾RŠ´G°¾[‘ßNIí ÎYó-M2Ñ\“”w.ó´ÍI{PÒ¥ûŽ&I+绢©,­ÛXÕìî*Ùí+J¢†Ø)íG0e1ÛÒ€nÁ>ÂCÂv*2Þ?ÏtÉËK qj}[)…i5)2µŠ½ˆØõ@½ NDõ 8Þ‘žÔóo`µ ‘š‰£ÅVŵb}¡ÙfiöŸ¾íòŒzVíq±U{;_ÞÕ (Ï ô {ó-p‚ö 7ÃÂ’žïFB¥ YN¢)Ðjìa±:¬@l;¥Ÿ즺öð*0#`¿’6ö¯ø3 ­h¨ùekB8tŽútE»µ»"tÐ2qúš àNMÎC¥åLŸµ?Á]µðÞö'æÍøL”J“§%òÛ’–xoèrù]Þ<·<æ*m™*´÷ÞÞÆfesX1ŠN(f-Œö­e™`X¹î;µ4XŸØ±×ÕeÞ¤Õ>oŸ£`´WŒÔÑ·“Côå!Ê¢×Y¹ß)ýZØËÀ•À<"¯âè%$á·è€FKÚqÌÒUQ8h€]íÅŽ%D(¶¤¡Ñæ]Ç_…£ÆÒ\–wiQºsF^á;4×.ÖîÓ’öMP?2Bƒ5°Ó×:p7¦PFÓ kuwäµé‘*P4; Veçá+v:‰÷óoï~¥–“bsH÷¼wq ©’=b£o‰rXˆ»ÌsÔKÄÉ[lïA·™—ÐKW< ¸ÉØe½ˆ¿ r&ðU¢ÝB´ü2§m‹jôëv +š|ßÕ 1¹‘v7Ràó}oi[‰ÂÈW‘|"¸ÈŒžð*~d’¹äo\Ä1»º¾ Ì÷\]øR.o®EhCü.[k‹@#+žðÚnô¾Åàµyê¦é0šcÝ—¼fð‚Èdœ$(‡™µ\-> ÙØ'öîQ b,‡âÈ×á‚AÂuy{edOLLB­hh/à´±8†£µ÷ª>Ø#°ƒ&뱺è‚«'û²ÏrÞøŒzÜøR:*úôÀö¿]Š%öCÖ‡ ×%“öz«Á0ò¯é "Œç+‡›~˜€Ÿ¥R¸3!X2ÓaËý¦ô³·ïœ-ÊôiñißTÔªjX6bQÊ6.­@VUž?òôG‹X}R¡÷›+gǾ:¦Õ]¾8¯Àø6-©s›6M8Žr¡{‰*§þ#~H E¾“ß8ö}Þ-Î_Â÷§[w\ÍœÝÆ#nè#® µ&. ˜‹‹E‰‡váD‘­È[K³èÿD=Fš(òc͘5q!Êf#m½bìL4ã§ý+ï/óxw¢…%‡ŒŸø¾ÝYÑ™Ž®¦é6çé#ã䨿~3Ð-M"?£Ÿ^ÛßZÒ± ¢¼DoA–=•È h†nÑÄÀ¦Ä`ƒîb,Êô¶äáÁùb½¡OÍÌj&r pºóÅ—š÷-†¦9uŽàî$4q4gÂà¹+4%ä—óêÚâçJ' l!—×½äJè‡BN’µ?b˜-F¡^„«ŽÖäœ0®þ~sõù Ñ3ØHœ@—ÁÅ)øA(6ûÓÕï› &A Àâͽ]zÚÀÎ*†V¹yõ¯«—XwXd¬´È7ñãp†gj—$HLÞÌ!A ðpÉ‚„ È.6˜!Šr0h~ ®uv0Áö ‹Ø„‰ý% Ó,ùCˆEôc³ !ü…Eï–/hÐàp!±ú4èôX.H›y0þìRëw B9põ³$M66•„ŸÌmw´jè8³³'Á€ 0tcC&hœê¶ãU'Jë¦KÉ /ö ‡`´Éy“C6;äÌ)f•_é›WîLk³«YHÎ`>+›M’ÅI”¬× P{È?´2µ#µ'¨é纞`V[—äaêSX>ž4ÓìСôšOU1Ü2qàµ{±RŒ ôt žÊjæ-âQp´&½£šÄ¡©O„+c$‰Cç óྱ ¡ßíDËÒÙ‡©a.‰Œ’†ïm«Çš¹˜´å‡…£i§`"ŸF%‚ÑiQ¬|p/Ì€ªîØQ…HSËzš}Ïi^] Ä ´dR ?ÆR–+Ž%Lâ@õÂ9ö\ endstream endobj 1052 0 obj << /Length 3343 /Filter /FlateDecode >> stream xÚµZÝ۸߿ÂèK½hÌ?%õí½C¯(Z — ÐÚZ[,9’œ½ùã;ÃJ”¬\6Hú²+’Cr8?Î ýÃË»ï~Ê6¹Èr›—›ÜiÌ&Mr!Sè9l~ÝþtŸém[×í½Ê¶OUs¼ß™,Ù§’>.]ûP—gh¤ù¶¿ßÉíP Õ½äïjß¿¸ýòoßý$]´“´R¨ToÚäçK{ˆ,æG+!­ DOU]Óž÷;`¦~äoîŽ4ŒŠúr*ÆéÔò+{òÞŸUZár9?iÂ$R8™ä.×åŸ^0µ¬PY¹Ã–g6 õÃGT ŸhÇëMÝs"šìÙIæœÈ‘“,QyjòiomB{cË Ç|1'ܯDbW8K3ÓdÉœ<†Ýf¬'jâ$•yž¸X&ÊÂb*ð•>Òï”PAX¹!2Ï¢ ÂÊp /§˜—¹Ÿì‚ÎbƒòvŽ–È&i¶û¶¾ž›žzÛGþOVî¿‹Ž)å«Dš¦äŠþ¹ì©LQ©DäJþó-ó™Î„ñ—žW¥·{D+ÀHו úô@ý¸ àKÛ`tmÐÉ>k$̯z&löõõPöDוÇk]t‹5x$µ2pð o«àÛ@Ž?´Ì†‡ÀÍ4Ÿ*¸V_"W¹ÛþŒ²¶’€¢>¶¬] §3õx¶ñ?Ì&i¼—ñ £t^`ÛL”u9Œ*˜)J9ø6#Žv¼Upž[3GZ\‘Öã©çúr!àmÞ2,!ot²Eˆ¼áá"ù¨ ÖŸËÇ«íJðI«vb…÷2àÖ)›MðñÖÜL*’é^yž¹·+âk_ÔþpÆÂ>ànK›!£%õ¿»·žWn­A2€Žý•Œ6Ûò‰­­&SÍäö/W¶,˜1>æÚ†¯mÔ´ÉÊ[ÉŒ/^}s7‹*øúˆ×¦çC×_;ôÇçó7Y7[&Wp5­Í—ìç•ð¢yDÒ»_Þ½½“ ‘ds¬°2ßX)E @»?ßýú:Ù` àWè<Û¢ZËÌ…RÃHØE×U% ëRtŹ3  B:D«<°ý àù–! í¡¯‹.-³9ŒRec%Át`0_–`_T‰‘ƒú>ð+†Îs‚Š$Ô”¬{Ug ðÝåešGf•çíb`kîV·BÔè. ÿv{¢\¸t ¨ž³¶@1dptlº9µ Ò½yœô¶ŒfJ"û[® p5iÞG rÊsÆ)]æ9Qèsß{Nˆ2¶Mãâ´Ǽi¤âoÂÐ_nâÁÀ„°y sOyôŠÒTXgÃq.+5£´pÙ¢P†ÊXq‹\èt4ÑfM¡:‘‘ì_„Doó7 :#öê„ ‘ o ’öŠ#Y-ìÂfEÁÿ;.ÙßÅ%›MD…JS9[‰ÊgºÇæÍ8WuªlH~°ô!Œz?œÑÿµìûª`BZ- £nû÷âØÍ‘ R/áÙôâz”в9L¿£„Î?ØÛg€Çk3Ê@yqþøvúÖÅT[QÆ §ÅÉÙäªÔz:U£¾ é£ü,rKlÄ%8zøƒÎÇ®=Ó$³³Ô CâjlGµÌŽ<à”•@%²£/ž•fK.‘OrÅwT€©Õ/չ—EH'BE®¾s§­1éÊÄU.׎yî=ìZIaixQÃ2ü*¼Ëz…®t¢‹J>^hØÕ¾?2⮥¨ED¼%¯Á $öŒeqž0V‘<âÜM¤fe²(kÃe£)–™°¹¼{ K&Î*]¾ï¦¶…>¬Å–çÀzÅhÛR‰Š^ÌðŸÎ<_•ćl J‘ôb­@Å36z‘Cý;zE>¸IdÎÃ^ž¶Ùâ¡û€ØíÞãàT{¶£áÛ`øvnøðÕÑ#‰ µU¶kG(™›}jÁ[ÿñA§ÒÿôFj%´v_itÜ𸔠Ñ_€²åu2Õ…vV&ÛïY¼ýC%A”dþÚÉ0ДO|bÿ„?¾‹Za—uŽsu<ñ:Ћð³!ìñÁ@Ûõe\åÒ´ØÀNÔ$GŸêœnO‘rÂÓ¸’:λyCÄÍ£Ç+œ4VrçPç¨ÒŒUÖ€7 K71þêã_€>Z,Ïàõûp])Ù0^¼Çº}'ó/ÿì‹…`Ï;<ª£H"Œ™a¿O%âP^ð·Xø;ˆÊ×{ÎÔƒé{Õ`¸ú³1#…ËÍçoA9%*ôcÜ6üÔ¿ Úî\ö}q,™­–y8‘Cáw¿ïÊÀöCáß °»>ºr¸vÜÙÅpåŒTfN¤ùÚ#«Í‚Cgø£ƒš»Úµð©ÇSÿó2ÀóaåšédFÏ\(¼FÚlþ‹4ê"XÊÈ‹2ˆ«z:ù-‡ášê+Š¡+Ù€,à€jÇ9œXua ¢©žhãæ³ß×Ax“¦éÂSƒrV_òÐ]ÚÚã€6Ó¯øïâŽ#TæÛwæHh¹d¢ â·Læ¾J–kN9]Àðû¥uF endstream endobj 922 0 obj << /Type /ObjStm /N 100 /First 916 /Length 2406 /Filter /FlateDecode >> stream xÚÅZmoÉ þ®_1ïúavÈ!ç%0È Ò3p×3’´hÅV.F]˵e$í¯ïÑ֑%Ë’åMòÁÞÑ.w‡ä_f¨D\¥â„]åäH ®Ñq&\ÅI¨¸§R•ì•«Kl÷Õ%£‹ä —Q±½[#>™ì¾: bƒìˆbÂ@0ÈâªGl0/ÅöÄöȸh¢#M2ª‚·rƒ`Ž Q%ã,[•sՄוS´¤`cS |kvÛ#q,šGUÕ±V°¬"7â„'v\Ä 66M$®²åèbÈvG]dÂì)9|¯ãÍ(¥Žj*.æ€/gÐ·Ú C‚Z]¬ ¦‚`€yjNP4~U|T‚MZ00)kªN¢)4'’À34.)(îàQ†’jÁ:•büI%¨$`f Ñ>œBz ªÓh ª¸£¶¬ø<Ô šÊNs¢¡ µ÷k‡)ì–Ø8¯5¹aµf—ªÀx¦xÆ¡¸” W&Æ g{ò 1½ŒU¤€'³€Z‹Ë£©ÐD¶•Up’Ûˆ\VÓW€bóükøn.m]¶ÅH\ µæûÃ(¹­ãL¢(^c»¥jì2cTm ØhIm XxI%ÙɱÑáœíÜ¢”&„hàjSdscňf¬!6Ó´wÍË&gÖFWLùfƒÁT CcÓ–Ï´IlÿÊèà`Ô½pom‚{庿ÿãŸÙƒ¼DñþùõÙÙ»ÑO?5Ê—Óó™;8pÝK|@°âí—f}ºCæ8ÿ73/[<á€ûÏuG—Óãד™{뺣/]÷fòyænfzóß‹ Œÿ˜Œºç˜ur>»‚¿·GÝ«ÉÕôúòxrÕ`¡Ýúurr:~6ýìÞÜH¶ˆ•ßašñ%Þu&ÕèžžŸOñ©· <Œ»®LÝèFÝëë÷³öû—ÓóºgÓË“Ée›"¼ë~î»ço©ý0¦Ž!rð~"‘=cq4/ær"ž5îiÓàk×ýyúfê ý~þ0Î0ÝÄSùÑ”3'RÙˆ <ñ÷Õ|•E\Ywrruýþ /ŸNÏ=û´Ì‹ §%#)0’ ¯½e kTfJoP~/%˜¨M‹@l0ºe;»e€K¦uŸŠ} Ø™Sÿ ¨J耪<ÎN#¯Ùi ²Ó%-EÚ¦õ‡¹åÞB¥u¡d'¡j,kB飅ÚW¡u9ê¾rHø~r¬ƒ¡èƒäXCY€¡|0LêÙâ}†9ûã60¬Ã! ภóõ ±ž5{äe^SÞŽ…y e',”U,Ô@-,ÜK¹ÀÂ|Fp.oÆ?|+Sÿ#b%dÔudÔ°¯ó)}7çÓ².GÚ×ùt¾@V è|$ΆjŠªÉ2gõksBªw›üÜÞÿä9 èzœ<Û¼=E|„ïíÄ­úæÝ×|s¾ðøh˜âš$Ú×ï'Ô-¿]vè%i÷0Ëš€™w0çU OsŽ­t_óâZ† 7¨YPuÆaq°ü}F  ÂOÎ[ ‡álž$ÁÖaeŠ+5–£(wر=Þl®îšU££›ÉÍ‚PÝr"Ÿ±æwŠÌ€3{Ô•ïnÄiÒtOÚÝÓ6w÷ºûë«Cûûáãlvñ¤ë>}úäOO®Žýdöñþøc÷búéül:>¹ê~;zóûáùÕl|vöëxv6~¿¸7ÿqcºü0>žüþ·pAþâäÃCi8 R‰VÕz«BJ@LˆIïGb]…•w ç·¨ZiŠ/Ew dPÆPv $ÌOHRï¥ìSòÖåy(þí˜,'C'e? í /óî…µ­æWZ\ë°•¼BÛ ËQÏrAYÉ¥J¾–m&7`D¥€Hj­1»õI9 ‹Åâ&VâVãÏöS¬)à›ÖÄEŠ ¿mœ Øí Z}N­áæ­Ycñ %˜jÜÆI]„ÂCäVú”m®¥(ŒèQÁš¬Ÿ»âN­º§?-ÝÚ¸íZ¿ë¯*/®‹ª±.غóuækÒÿb̨áÄz½Þî‚7 Œ e ÛÒf0GH•Œjʤ²k*Å8Ú\N~‰ðHT¼ ÇP_h–¼µDûB;Â+j’m™ È Û˜àâ­éÈX3 ×YînNþs=nJ!? #8"a‰Ä &jÏÈ@滧 ®ÉÛ¾V.‰e€HX"‚_´DEärBY5J6'G…£Ö–'¡oÈÉ"AÅš¨!vi+K-º¥,ep&2–Ç6{æL”äó6$)up&ê”LÁÃBÊÕ|?5®D¬¶ ·=‡]!³„3#w¦Xv!TXE¶‘ö½|ø\ܘœÞÞZއÃé÷ï_!»ë–ʾ¶–E œÚ¶5¹Ðb@7î±H?Ð~† ¸ÌÕC“I­¬x"þ’íµ¢ˆE¤ûv®jVgç=#\v.`'F¾†»"ªF½ñפì•ËCö‘ ƒ4Û6›oÉ`DÓnŒäá‘\%+様dÉ)\Ÿ ÝÏG0!‹Áz‰å†‘ˆÔ0évcdÀ‚ˆ±ÖåRdˆVÐrBFXæMØÂu[ã'f¿ì¾@9´¼ûÂPoK ù1œXGjI+H1øÎ•²uI°±3/°Û|wt| &Ž~ù˳'W‡Ó‹ÙpÜ(FònLOQ÷ç¦Å¿[(6ßµs‚üÐN|ÜOªÈb²GBjPWOel¦ÖܺŽ;R ù¤»³z¥-Ä}ÀðÅòà~ö­8¾[Y½¹¯u»—uë¸À† a˜º<æõt!êžéB;4ô±Ï bŸÄ>+ˆ÷mánï[ÐÏVUWFM«vD µnt…K•‡u¯žtݧ³×ïýñôßÝxöñòâCwuj㵂í`‹n¥Õ¼ámUy«°ß]ë/.&ç'§Ÿýócê+¶`‹·S_¨ò¼ØéFĤ’ù›ñQD`û¶Ýg^b¹‚D;§¨>'Þ²ß6`’"J^PAÖ#´#‚¨÷¦ÆX.-ÜøkÇâvAظºåž’úºº~7)!]Ù ªnuð64×÷†õmrÜ {ÆôU…ô°!=lHÒÒ‹# ¤GYÚ®û?ÁБ endstream endobj 1061 0 obj << /Length 2635 /Filter /FlateDecode >> stream xÚÍYKs㸾ûW¨æD§V0Þ$'§Lf]™}e²ãCªv¶*´IÌP¤–;Þ_ŸàC¢<ã±7•Òvht7¾†ÞÜ\\]'‹”¤šëÅÍfÁXB´f‹˜Â˜‹›õâ—èæ2Q¶½\2NiôÖ4«:?´yU^þzóÝÅ·7¿]°…ƒï9щ€ï‰“d±Ú_üò+]¬áåw JDš,îÝÔýB$šh!¡],>\üãâÍ9,:ÕD$ËærÉ•ÑfÙ^ò8z¸dц’È\.…QÞš:sØ +¢Ü?ÛÁÆGÊdspöÞ´»Ê}¾Æ×÷W6³ªÊ5Ϊê5~ ¢UU×fÖØ—L¦Û5Hb‰FlIô0&¦Àä—‹#áþê—pÉs¸Û${¸û¿2š÷7E“Á=jµ€LÎ#sÈpþ¬Õ¸4ôk°‡±Ísû d Ö­Ì „ŠRî.•в¢óºre_î²rkÖÓÍÞ›:o±¹iúN[8§f}žoͪÿ÷˜Ÿ¹ôn:YZÈz g­³Ö¬§ÎñÄháóþñ(ÜŸ¼ã~™…ÏÀXBrcѱ<çÐ_—ž~¶é‰ŠègÓ´Õ8ª»¬ñ0ÿÝ5KÓfµÅ:³ð{+ˆÅý îí²³]h]mQÀ¡Ææ‚̬;X[mæÄ50MJÍf«•9œìkSmü¶Öó+˜‘Ý^ÝØc €µ fØ KéºÏÁàWSä¥ þ‘Õ¸¼»Ö øö&,ÝÜåU׌s˜CG»ÎJH"ųNN8¦‰Œ“…¢‚p:9Åo „½¾\J)£·y¶-«¦ÍWÞ›ºö ;7ººkŽŽe!Ȥ(5+Àö§‹šžÄ¤üÑÕ&’éZ&ú„\Ms¨Ù„/ <[UE·/ÉÌ–2!}¼ SB |:n»öJîŸÈš¹S{8¥ZGÐxTݶYˆÁlÕC5ÆPåQœ Ù<äåö¸‚¨YoâW8»Gë{ƒ‹ö© ó™©ñün•ÛbCžG·#2aµœn¿Ð1¸o¿ÿÙ#A ¸=ò¹;Ø“g2ŠÇž!xkþiÆ‹$‡CU‹©Ù+WÔCsÄ än`¡Ùh±»ì¯O䛣šìLjôt«í¬MµÞȽÝ7U}$pÕ«2²£–·6Ÿ;ÿÜÏŸñÎëxšr¯MÖäóYˆ3¢c -J¡Ÿ—%äúÔIbÚö=xi;£UAîK’—Ъ$‰y<ÕêNês©=–úbMb°ÆËg¾~\ïàÌâšnÓm£ù­s.âÞÃ6ff|ïŽwxÎ5müÇð}±;õa9¨f“â{5ðŠœòM¸FÁç. ÎÞP9*d ˆ(òqi 9·ië̃:úxS3Su`9\ç6£4›É–Oh”–Diù%,JgQ›~óN™Ò<ïàcZcr¯»ÜœBÁÁÏÙ‚§â"}V@E ¬$‘øðï÷ôT/0rõ2jc$™ê}kZ¨Éç)>#‰|”â3f%MÏû>mÕücpp͆"äù”Í„"¹3õ6ðÖóì$4« >‹j*‚ÜobnüÇI´7¯›±Ï°q‹¾»ô8&Qš÷¾0×ô8¢­ßIz\û§ýí¼¸KùµÙŽDÀë §?õôľuÁ>LÞçe¾ÏÇ –ÔN0Þî£ØÅ1(þ‹B—&Êá;ŒOv~±ÿÂ)ñB“4‡³žâÞ.XÑ—ŽìÔfÀ"âÅhʲ¬ê½Í Ž)ÏÆ‘ã‹ðDÖg×ÕǶ «”Î,~8ã6/íþ۞ώ°ó±æ~Z±#úÙu"§Ï«¶Óó Û¹õ×¾è-Ds6ñùÁW¬Mµ³)È‚-> ˜á›~?]ËàYÔ“_;‚y]GMÛ­¬Ë|²]Ջ˼ÔQÕè¿;Â2u(koK¡÷N 3jÓvu‰þx<ŽÛÕ!pO\Pkv¸â0©÷@281Û]?#Žv¦8àÜ;Zu^j…OËu]þ‡ ÷»Ü_~Ñ£)aª»ìËì]Ÿã94÷xg–:ø’_z‹“TYL±Ãd;Þ5ŠÜ„ªDÒ°ÅØòC?ýð¿p aŸ¬ÿs< íë½Ã֛á9œ´ Ÿît¢@á]Aþ»m§¡®öØÊæV·¶Eƒ0Gôu¨\Îsôõƒ½„ܽ1`:!T‹—¸1`Pº$Ú'‘·ùèJùH³æ„Âöªµ",‰§ªß˜UîT1§œH¿„bNp#5U|SÍ\“p(8Š_B)W„r>UúÁÕ@_uUa¯ uüG\U Ï¹öàHšpÂÃ&¹Šï3<‘p«y_—tz„Ðôܵ`’À·ús|NB™„IAäñUgs£El0§ÔØó…¨kºÿ$M¢²¯µ^ƒ]˱¬—¹Ï>©u§*µgdÃj[£(¼*´/%šÎ]èðÐV]±Ææ¤ð¶¶h±O—xJ‡²x}W‡Ø>†Á-¥—ìJñÔsšÑ|{˜Ú®ËSýŸÊ1@;”­ (ÏVØóZãÏD;´Í‘…•Æ™ôxTÙ <5@ ˜ó‹óâÛÜY»3u=0(  ¹Hö¼‚‚* ,€ µ þ±Ó|±‡Ècõ™Í¬9ž²=*×[[ã€mþt/¡ÉB)w]üÌ[œTj+I†â1ùØ‘Þ4&’éÐkÿ.TJMô¶U1ó¨ŠIKÙ”ès·€¸-±1IUv w´.\ÃÀPØ·þûι î1z!ŽþWÙ×÷8æs°DZ®Ùâu0˜Í®öJ!d×þ r‡Jy*fd–BÎ`ÜþMÇ}‚ßh6à¿Ê‚cÿ endstream endobj 1072 0 obj << /Length 3108 /Filter /FlateDecode >> stream xÚÝZÛrÛF}×Wpߨ* ÁÜ0@^¶6Ž]ëTb{c¹j·²y€À¡ˆ2 0(Yùú=== ò%¢_¶T%̽çÒ§çt¸<û,Ê™,.× ›Eraã,ùÕâ·åûÖ5ç¿_þtöâòì3±ˆñ'"Ž#«3ßTY³(vg¿ý/V¨üiG*K·¾én¡"¡R¤¶‹wgÿ:ûáH«(MÓ©Ô_Ý×vn5#ڈȄöOmtd¥Š~×Õ{’úÝK¬ïØVÆQ&i¾Ñ÷Ü"5¸°˜—‹ ±ãÛ=¯«¶Þºó ¥Ôò×¶çb™_»Ð2›4ބֽ„ÿ~uùýù…‘ÆÏh_Vל«÷]¹+ÿÌ»²®¸$ïø[šÆU!³¯Ë>™·üm†MõÙ«;þpÂÑÌzÂ|&ë¹Ü”--&^î°,™-ûÂ}SVç2]zTP®¹A·q\@¸¨È·Û‹«¼8—vù‹v®ÛÔç`5³?RÅ‘‘ýþ`u®Ù¹U™wî¡’@ ¢Xd‹$UQlÕS”DÇë·JF©Õ,&¹x¸mÚD*fÙ¸îÐTnn9:Ž´–³Î·­{8šÌ"­Lß迱‰[ç›-.´Q¬îÏ;W°^¾©HE}D4#þBê(‹-¾Xž ÝÉ?–»Ãnt"‰  ‰N£4–OœÈ"c3?T‚¡¼ÜW8K¯ÐíŒh+#Œp ÑÖDf*úÅǹUBÈk¥Z} ò{¯Òþ Nùþ |æõawE¨ñè_ów´c>ß/ã뀬Ve…l·9ñcˆd‡i=1Å´R˜­yÀ5•„+>™âšj*Bà³ÚQ⊱Jý®'xÓ×ïк¢®VARáA›P”=º©¶Gw?F7×õéÑmpsXÅ ›†2Ö:±?Ì]|1‡=‰P«A‡’©Ð.€ñ«mŠ&²êuø̲fë<³e#•È…‘@“ygo2~ mc™—ÛYtã>R©üº‹­5߀³·Ãð$ÿö94OÀlÌøvV& ÙW0Ü ±ú‘$j³HCÝšw†;Ô\Mè©BYš¹¼-¯ü’©¿h]zØÒz¹·„ìDínÊU?¡²*j8‡E¶rMysNØáëÍñÌ¢Ê ‡°óÓùbâEÓÔ³ñÜ5éB¼6O € ʤAê«9›K&ãä$2%h> :‘ù®sû©Zƒ«“H…±Ž•œJ}^ïö‡.?^eƒgldÔ§=x³Ú¤ó|FJ¹|sè `ÎÖYôfÆÖñ™ûd¬]K›ÃA‰Ñ„}9±»>lófŸ¥¿sÁéêšhuíþNNìœé Sš#B±êC>§—}é4F{l=äFP1È/ G*K†Dp¨‚EDÚ[DHçm…9Ú±ÉC›UÙ°ûþŒòPÚî˾OënνKä­Zç]çvû® ”ÊB e²^x–-wÁ<”d‰¨€MƒGæ]S~„AM´X¾oa’`ÿ`/0!-£ãxɶc{£x7öþùRÙ>oòcëÏmCEðõøôgÌPdz§µXÉ A&?®ú ÄbsÊîЋB›ÛkBMÇÚ€Â"¯¸èÁ€²¾Ñí¦/–؆al^# þ í*óPš÷òX·BçrÅ…¤ò³ NhÖ«ÏëüõC ƒ#E~jhR7svX£Q*&~U­gÆ2peÄ(˜$°ZëåèŒë3Þ'•õªéüça{°þ††­Ua÷PÝ5‡@›®¨Ó§­]ú7Ø“~çÀ¢ Èü0ÒK2 _kðµO±¬8±hW`Å)¼c¾ÁéJ¤ëÐÍÄ 4ý4²µR0ÀÙTøzîÎÔ:9MO"ÔÈ(»¿â*¯Ê95Q:²ñp‰°Û4{ÿë6~û„¼ªn¼â?]PF5$§ˆ.ÐP6ÞÌ›ý#wâçD©Ñ_êxÄ¢W®½ÈÙŠÕ‡®‡c•‡ÙëÊ‚¬!W8¾,)y[n·=\¼1⃠¤ÙˆGdöè§&<†çLfˆî 1‰î xrùX–žÈ2à5%ý–‹Ž$oâH(EAmóù—òU‡WÃ]}\y;š‡¹D†´šr¾ûsRzBÃVn¶Ý3ÎqÈ%¨~¾mG—ÌCÝ'§69>½®Ësó<Å(XXr}Ÿ~iaa­õ#4ä&,m†’í×ö‚n™š©à®qy·£‡õÇfhx=¥J?¸âÒö+é’×Iâ“<ÆÐP:ˆíÖ£o1§ÞbÆrtë²*‹^ÈHÅŸ‰^¤Pwõ˜Ú[ñ@Óc’"†5Wã–wDÚ;3"83¨ÏùÃ/ø\5 ³Q‡(ExÒ¤ÏCW_Eâå9€[7°Aô¡‡f.ª+r²õ2ú4›Sñ4QYŸb7h‘ñrc~MÚ9/.ø2ÙãT† .0RWôfSnWì¾Åæë $<štú6<Ò¯é&ƿ⇶°Î‡ûÞmTš~ÉĪ•Õ=Býœó=‰~é}×~‹•šn±wpÍòçòƒžlï†Áš0\ïÃöÝ~®ÑÇ +åú`Рܽ^²Ô£”ÂëRǦ²šywåÑÃÆ4pÊÊÍÚem”eMìÈûªqE}ãšy óˆ)HÉX=ñ L*!KU){|b}̃hú ΧÞXáÂÁý¿sÀ$EØŽ•>ì5ÿ ¿Ü~A°ñx {²Æ#r´ÿ¶â|¾#ÈË, ¶‚*Fo”õoÒÓ¿À9üFŒ‡ UQðQú[EJÌWlØžwnx†…; ï=û8%¡ïõñWeh±îÏéëý¿jØÃûÌB §“§9(œâ‚ÄH2Ñ3(˜ýÓ ä†1å^BnÿZìCÄØS§ò‹ÞW*šÊð›¤ý1À_äð»é;Á#ª>ëüüƒô-Iü/ H ‘c¯ôÉä~£&ÃH/7¼´QÛÞúNãý‰ßŸ ´þ'§Ããø…–²Çz˜‡9Äò8™ðI bö1”ð£fî#¨ñºƒëkŽŽåF·c Wef“{?qh†»¬çýšžYùò[ ÷cˆÅÒEšÕÑJŽœ…éxÌ-D–À{–>T¦Â«{"{-ÿˆ˜êþ endstream endobj 1118 0 obj << /Length 3381 /Filter /FlateDecode >> stream xÚÅZ_oä6ßO1°Q-Y²ä÷Ðö¶¸-zmo›ChûàÑLŒzìÔö$›~ú#EÊcÏ8Ùt“Þ!@F)Ф¨)yõ곯\¢ÈU¾ºÚ®l!Ôʦ…ê›ÕÏÉÛ¦?l·ÕºòÍpñëÕ7¯Þ\½úý•\¥ð'WR+a š’Y³Zï_ýükºÚ@ç7«Td…[Ý…¡ûU&dæ T¯~|õ¯W_ž--µ6›/þO¿o»{\ö³¯u1œI‘9Ô°Ïi„› ¸´™HS³º”°.¬Æ}Õ6}[û‹Ë,Ë€vß_\ʤÜyž?cÇ¥BjWxóŸ·WŸ_\e’ïÚ ¾i»k*ï£b¦3ãã‹XHuâ»®í¨Ø^\*—¬×‡®ójº»®¯i– Ý}Õì¨yhé·¬kžTžšˆ‹ —%ââRg:¹ºæž›®}_û=+/”Mî©òhØÄiE^¡.»wl#Ÿ÷ØàZ`·Á¦` ­Ù>™Ÿ î²ÁmOýŽ/o¨yÝ6¿¤Rï]9Tm#4q©´(R ¿RH%£Y¾kÊzÁ$aXnå*×N¸T=Ë$ae—T¤È‚ÒÎMRå°ñGMRç™h 3‹\2@-E*³|ûÝÕ›wß}ñ-ÕÞ¼{÷ý;îùwó[ÓÞ5Tù±­o}÷·Ž[nËúà©x9Úrµ½g²?|ÿÿ8 ×m×/™3sunΠË.ʽkHÕ™)* ‰Åë²§Q3ÓGÃÕ:ù¡öeϵa&qìpÍ%±H•vKœÊ|ê"R+2í¢ßÞ´7Ãù†²TäEÝV%Qäuð¬T5=h­«~`¡dÅJJQÐ8Š%ËT$Ø(8P—50p0ú÷ªÜ5m?Tk dMruQÀÞõT£Ã…·x(T²È(­Bdžs…§$§Ó7 Ú Õr³©ð,¡Ìu*“ÍdqìÂÂØÆ‚/ר©kªU ±piü¢t•I…“ùG¤«l¸xÐk ']Ò{f4„¹°Z¿pl.Ì‘ntáÒy*¬ÎW|~ž=ëÄë<Îé@Jg¬ÇªÙ¶ «:†¼ÄªÎÁ6å|Õ~èÐðÎ-Ö€LÇ‹ih—<&!ÈÉíwïûsjÒ€ýËH NŸ1&ù©®Ñ"QEUÿ‹ERrK¹£Â]U×T*onÂöeÇ Cœí©àƒó·Á–hDC¿SÃ*5©Yà¦m‹7º:д™«.œp£7Õ…LHv ÚáLÃu`15IÙñ wèýöPSc¼báf2a»Ð¶© –¯õPù~v)š ¼dË89Àµ¹t`¤›wG.Ôšp‘ƒGæ-‰kÒ…Ý÷Õ{ † ‡y¬zjÜU·(:ÏÈ£j¨9¸‘’§êDM¼›ï™+¾€•pàäÀ¨ ‡|>{¶àɺê¦öù°¯/ pLݾNœÛ žôâ©úÏ )¨·ëh™3‰ÇSâ¤}\bRÀ¡#lîM‚ãó}µkNi™²³ƒz›}õG0"¬3ÌÁ=ò詹i4Ç’g‚Úuå.ÅËܿɗ~]âPT!”5Òªd(@2ô~ªæì’Ÿ¢Îÿ~¨þS…ƒ«‡EµlѤuõ[P"õ‡ƒ]€¡@ç%ß¶=õ~S®Û÷ž3‚{ÇÖoKØD³ãv—ü@0T€¸¤á<`Oƒ0 $@ ¨¤JÍ%¯³ñMÏ|D†_/aÁ÷ôúZ&pÞ¯}Ge4Cü-ég?”±TÞ{ÉÛÜáÍÇè ÁÂX¬ÊºŸFÿE¥ ÌÞ+êÈݱDµVÉö¶ëO©G Ÿr³°I„sÕÆwg "ì…L|òHar@„D5’µÂdšDl4¢°î‰mö0÷t\W·é…»€¹ÊMŒ§A’e2» Eñhd§„ÍmìG€•¹"Iá×ZÇ¿ö¤N¿4î|A™eLO]Òðµ¢S‘Îo\diWàÉlñ±5F°ZÙ²ôSWÐìE‹üi/©æéÇWC,ðgªJ>Ûíùõ„¥lå “œË–n'»pK|´Íþæâí”OÜÄÉí¤œp°§ó᩺¤è(([«T¨mc!P‘p–nÊfSvçäiDEØ –;ÓùžHŒ{ ý޲jõ†ª÷L'D"zÛ1½¨(=‹³pùhÊ¿¤©<ß ò”íßtAô0Èi—SÁ’Q0šd†°|Øãÿ÷êu!,Dü`Ž­*Pêrv°÷eC¢…áæ): ¡ aºq¨2qªüá»Ã+“· 58 +„à ­“kŠ ‘¼§H§ã€ñ¼:á1(´GâðD!!‚Ð7ÌÂUœyX€Û÷ª^·Ý¦§ ­Œ­Ìf¨„…çREžM~¿nëþ‡“lLÚÒp˹Õé:·Æ—õã-“QÀ=eˆÚ9‰ $ ÔDbH$n 4TÍ }2êE <âóÌYž…ñ@¹|ÏYføwËð[†ø(M±‡)¾lBÑMB»Ôô³‹;ßñ°íÙ²,ïþ5%šþÌT}œI"¦Õ6==DZÚ³C„m úë)#Æ¡)/ŽÐ_Žúó!Þ,òä'z ÀÑ !ŠS°ÂKìy–ì=Å¢69Ž8§¤ÆëÀÏŽW„ØkÍý}43nf¢¨.²À³À‰L¥q.ŒLçÚ–< õЩ£r°;Y°R ý*Ï})ž¥X•0"ö\>ƦaÌH·ŠáYä–s'’ca,ðÞï—4¿éJ ]­ÉßÚU.0s!3ᄵj•‰< Feç^Ù |š œPBÁ=?[ë*Šâärïß-$ÿë¹t¼Ö«fã?,<’)>¶)ƒO*Ù³ÞHŠ ®ž"$„ ¥cîò¾ö‹Ù­ì˜Ýåžs/•Ð#¼Üù…l¯2˜jÏ_‚wer‘zÎ{Sß,,j/ù"ûÚ9_4¦˜Oš©å5øºî3‹Nú±4™ÉÆÛ¿Ú’ñkj8N[QK¿œârÉWì%(ŸU³ëb?áZJ/ X€QΞä€ÊÞo „£-¼à"@§Ž½…ŠS5í7w9Ê+ÃoJù*M‡]¹ã´ã‹3‚ÛVöx‘B#pMy5¬Ð|¯­¡+yÔd«X Pð2ìW”1ó§ý‚ÌN^>5ÕÙßÕ#ŸÐÖ#~±±6¾rñTFt‘ÅÔóH¬ Ér¨¨á¡·&·‡/týØ7&§ü‡rÅÇkÊGðK. “âô%›P` QĦº­6‡ðÖM¾ö1×ÖS aøŠgôq9è\Á=ЊïpNZÃoÙÄ÷k¨È"”§é`ß8{à”&uL1Ü9˜Æ§MãèÁï™Ã-=íbá|³£ZúrÏÂ;"Ih޹ø*^FSUFDæùÍò†ìæ7':®Ûøö9#É3i'0¡Ülž>®›|LòR%è Ç,Ÿ§„±àWPþô÷{¸iºðÂ’sRTýŸŠ´#dž»#¹5½ÛŽ+1!»HèCx[šø¡0ûƒJ Ø?n> µÁ¯OëðJ¬ã+1vÕ|ª"tÁ&¿xT{Þ…çšÐƒÏ7Ôƒ–ߢQi( Ø? oN'ÜÇ éäžÀ,¯‚/"»ëýXнˆÕf„Ìç.„'Sxıôˆ3µ­(Ëós®…2ñE–©¥ ³ù‹3Ç“˜ûáŒpVð4/” J'yüÍ–*À[îS)ªO¥èŽÍ½Ly)7Žu³” 4"“–ûIONòC/©<ùlå)ÎåÏNfβvÏÉâÐüSS̳EMð=™ýŒ)Ÿš*|Lÿ×ò\õ#æxœRñ"^àY©VwÌ$/¦ZÕ*—d,eZÍ_œAýHf.*£,ÆfΨIfÔL2£™¼_à§'BÙâ0Mp¬žàØŒÀÆÿ6ÆÒï^‡º9AÔ¹8ÕÂ'¬¹òñÏQ¥agv¨ÉbÄC‘yÞubâ'91~£±0,•á%·Ã®“Ù˜£w"¯4GÉÉe…Ým gD•u“t®Z â„=žþf3'2=šïˆ·´4ñË«,æStª&ù”bÌMcûj‘ÜõT¥spîHd,ô¿cÂ1àS¬ÆÇæ[CÑê1¶ ÐÇoÆLüv²š:~-#óY:a> ÌCÓ]ÏI•´>ºHá¤ñQ£¯<êûy1ÄÈ&ÐÄLU"“"`¼yp4Ã1ÀÒç’ bsFu‰§ÃD¼”E£ý/§wº endstream endobj 1133 0 obj << /Length 2005 /Filter /FlateDecode >> stream xÚ­XÛnÜ6}÷Wlß´ḧâUúÄ5Ú iÓØEÒ<Ðw­F—.Iœ¯ïP$µºmc…{½¢†g†3gÎðùõÙÓK¹‰QÌ#¾¹Þmdˆ£Ž1Š1|“nÞ×[IµßžG˜ÒàB7IÚ¬*ᛈ ¼Õ;]ë2ÑÛ×/Ï~¹>ût†7!üàÁ^(x“gï?„›ž½Ü„ˆÄró¥_Yl( ‘Œ |Î7Wgž=?Å.,´¶ç„…<¸Îö·ÛH­P„ ÖM[Ùm•ëZtð/ ²ýº*ó;û©Éû·EÐúo²r§U“Ýäð§$®tb6O "~™5ù“ÆuÀ~Ž Â [tÏàqë^t5„§Çç0´€èh0kì_•$ÛsèC«n¶80»cŠc<Ëá…RµÚy¤ë"+­•m¬ŠàÈÞŸtÝv`«¾ö£Á®ª­¡7.Y¹ïrUg­yç@8`TMcPe`òÄ>TMÓzú6¬"XÌc…ï«&V›·«2µïüQ§º¶¯½¨ „#»­úh šãÆ$fáxWDˆŽw%Ë]í¦·à!å4øU7M¦ÜâTïuiÈeÌjtê“Æþ-Lh»BÒf‡\ÏNâÅÆ«‘ §1aêSjLzTO_ª¤ºqðè Y£žx62Áðø‘Ø 4i0†´1Œê³f%pd³¨a9;ÉYþœF–~5ß>½ÄxDD G°´_òwˆ¹[n8Š‘fE4’` јڅÎÔ„|!b3ZcjCöÕ5*-C6ý÷Žz (ö¦ˆ9ã½_&"'kcäÛ9p!eb’«ö c “¶…‚ógŸ˜€~\ñh2ŒðÈw²ô*F‚ KÒN}0±×Ÿ·Œ*ïFþéº6äC³¥G!‚míà øò¬ô$a⨺_pk½Ä¦+°hz—ç&Åb\f†õ,”æ¶2,–§>¿úàT¯Û'Iç¶P_³B壎cõ×D÷PR°ç>@¸#1gr¿¼»üÑ#Ða“ãÉ@À©ÇO|liЙѴöÓN±jýEàV»¹%׃ù J¹˜Uª¯ã'+„ …b.Ÿd™hÁâÑ•×Z¥®ÛŽKÉ~„#‘’Êû’tI†$!“zÉ4¸˜Ñåÿê1û¾ÇlÉ}[5N∈ø‘^ºƒ}mìr¼Vû,q¥ÖêèKŠÀ‹¢¡ï7¹ç~+[çu¦ ¿ÖÆ1œ·ôÅ-Nw_ØÂö,÷~ﻬÓ.[V®îzˆí²“@¾†_§É}˜s±ußKEt¢—–`¼r”q× Š5˜ò衲Æíß÷K°;í—÷ñ=ò‘Rê÷w°i©ÿn+A©Õ…ãÐVÕ­·µ™Ê³o#fß©,ïs’ݳì»^û[$¸:šømjbÆ'#C!±‘y‰YŒK”%h컩Šô³…Å·8Ô•9žÏCò5UŽìÊOÀðƒã Û[£@)ô*[¦v ‹öíê{E4×,ä^êóÊ`/DƒAzûÑ£ÌÆQ’h¢d>c4ƒ”‘Ǫª¾ÉxâHöÇ@šŒºßá Ž±vtò¦®€‰ 8_JÝv¡3]7S±òMC†€¢ÀЊ/ôNÁºÓ¹^WšR¯á¹åàÒ¨Ÿ{ó•NÁ11?6Š(ZÓŒ‘z‰ŸñzIèTM{«ÊuÛŒŠ¥íYâBLÚ®¾À€Ga$›¤´aÁ<ó´Vì¥ÕÞ¾»hF Út7‡ Ÿè´«4i:Hï¦ÙÁ˜u‡ñb°Œî7²|qƒ¥e²)¤c£3HÄA’#H$èÊ#(°¶:††£(™—Zt¿R{gdI»¿Ê´h®¨šÖP2ªoØå­;™Î’ijûFdz÷$R Ñ¥¦X‡`B¤ža@ü˜9ñ*+`HKÏ_뢪ýe}N!™/^Vx’ÑpFB.r—ƒup‘¹R;½šHWŠF“¡ÚžÛbT00ÁDE÷fÃ5Ñ‚ 2û¸èç5•"†GµO Ýó෕꣈‘aþä×wÊ)å'q,8s L#Vβ6 ZÚl6ùîþÂM|Z~g{Å€šAÐOì â<Ü1GTñnNa´Ãå «BŒ¸=[·ên²'sÊ.½BôMÊç^¸™cÞù¢Ç“Š0CqÌfñºòéý˜x9²ñŠËQH‘ÒûóuíæÜßéFSôƒ{,L%ãq– N‡²;§ /:?›û«ÖlÐp·nšïç_®•§Áf¤¦‚`… ©`fö®‡ÌÏœðôªIåûªÎÚÛb-‘¿¹—g‡ƒ©Éäò8ÎÛ¹µêüÍå²lw|Ǥ‘ë‰öŠF{1BJ-Rá‘ÒR ãeDMŒ‘ŒÈøšþÆßøE?ùDƒ‹LíKè"v:¤²=tÞýƒKËÔ_ÔuFÖÙDaÓ*Œˆ.;ÒvyÝO 0zƒÂjÿ×}?šÈémÿdCš½)¦lŠ–»j¹+%rþìJ¡B¡l¦»6í“qñDreˆòCzØ_B&…cirêQÿ ¿‹¸ endstream endobj 1140 0 obj << /Length 2994 /Filter /FlateDecode >> stream xÚ­Z[ÛÖ~ß_!ä¥T³by®$Ó¦@Ĉ'ví-Š"Î-qWL)R%)¯·¿¾s9‡7Q²ÌsŸ9sùfæh¿½»ù˳d•†©•vuw¿’B†©\Å )µºÛ­~ šz-“àq½±Qjƒm]B+:x¿66ÈÊS¾þõîÇ›ïïnþ{#Vü+‘¨P[ç˜0N’Õöpó˯Ñj“?®¢P¥Éê‘–VR›0ŠSh—«77ÿ¸ùY2bÄ“He½²© Uâ˜*^׿D¿®7FšàkþˆõFÄðýí»º¼4÷nÏfC—&6B…ÂŒhˆ+4fsñ”Æl6 Í„†‘Ó¥rLäœ#"çI/QWˆ¨«7Q×o2¢¡§+՘ƅ9Gc6+C{ñ"æ sõ"æÓUb§Kõ˜ˆ½z“Ùl&‰ÄWˆ\˜sDâùMì%•$Ó•fL#¹J#™ÛÖei¥Wˆ\˜sDÒ¹Þc"²€kœS3×µpœŒ"ç ^“Þ#ÏÜþ²‘ qŽ8¿Ó˜Î™ëë‹ð"Ï v #—yðdäœÌeçê “žŽš‹t4Àq ¡c#e¨bˤïÖ‰ ²we¾Þ(¥õÕz£µæá¦8–yÇÏp n™ë×÷øÕÁOY×xìmd"¡áÁýÇ¢Û3³haÂ$ŽA|ùj—8PÊÚ0‰ôÊD*”:¾ @’*¹ž”…¶–tT¤&ÛvOeþõ³—¯ï^óó9y­’ÐØ?„¼Ö ŽhFþÍÝ¿_|ÏÂQéJèPi+IKÊÊÐÀò5×´ü[зÅÞíQQ± Þ²¦ã櫵A]Tk%ƒ¦EÐà„ž@‡¼Âù.늺úʩÎ)Ê$ ušx}Ðɯºæow_°!¿x#á2ÂÑ>_гk‡{ÌŽ=?ÌÒ$Ö¯Û–YÛ"ÿ6(Üw—·Û¦x·ÞÈ8Èwn®Z ˜Fa+Òó£§îÇsº1hV¿:ωeðÜ ÕÓÎøÓå ˬ˹7â±ÛgnG—ýg ¶ÜÝf[M®‚»êS…yZWTAà\}M~Ÿ7yµåƒ@¥5~Áã@;ßvn&«vÜØåà§x*-ìöùÇ÷ |jUuÇùéY…L?ê&G X<¯Ú.ÏÜÉÌ» Ž ü„ŒÌ_`ÄÂË‘GK<.áÂFÇ Š?MæWì|÷å—Ü8’¦‰X ’oxÑ%Â%DAdÓ½©ýð&ŠÅ¹KK#@áàÚâäõ”÷c.- ¸¥“Tâ<úç¯þ|ndèRxÎoAD›?âÍs¾Ú©Í½XÎ/gl(­ý7a2È”™Àß¿'2͟߇+”bpÄH|%Z@fß-ŸØb¨ "5[·Àyª'µ7?°£ØnÌÄnnq$ŠŽWÕ¶! C»kÝ.Þ´E¨«Ok †‚ãEÅËœkNç)´¥6Ïy¶[F/ˆRV÷·|íß½|çÍ{*•$Ešúõï²ÖÝуrvÏCOxàœÄ¤ ŠSSOéÁÃyЯܡýP©àù½¨ELµùDäMÇŠ$¸­+Gœý•a΃ÙTS‰ (›D°‚ Þ!ßOÜ.sòó÷7lÐnkFj¿‰‡u”~ ýš¿SêçHBÙÐ(=$ ßž DÈ1„óZ±îiªg¿¶€ µÜÜåÞÑÊv §Á¿\qþüGî~6?¢Ï5_ØÂ[¦ÿË›zÎàÙ^P×Äf§®†$­ØfeùÄiEd{8#Q\ü^pùSË'³•*|hð(ƒÃm‰Ç-Oývj]ÊH(‡  `2sy‡ ÁGî”»Ù¶Œ§Ûâ^Ö¸Ù©AäMèlAÆ|¤ì¡Ð.%Û9|ßS¸&¦qôàŽjº¬·.éB|‘ H?Q|j">$ÙGZé"­TCHÄÁùíÜF×qa‹ k%§‘g‰ßX‚|mü”BÌK‡l©>. È²™QTlRÇÏÆ!=T‘SK¬È¡j¸]"nC-âІìÈDý"P^G˜ u¹/DÑ%Áð= ,õñ†fFøÕâmTÂH SOhd„Ða«ƒFæêÕQ‚’ŒRnXM±gt–›0Aþ!ßž:,´Ð/Dâ£Î ¸ a†Z#.ÉXt4(Jx,Ê’§~~yÇ‚K˜›DMB,m©x¨ºv´  6¡ÅÇõ‰Ó 'Ktºî’n`¬¾ØåŽO)´ù ³r·¥ØNbÞå·.[N¢P€=L$Å — Œd¤z޲hÔ¢h ÞýÁ½ ""80»å®ì‹Ê—&E…ÙÇfã¾ÀjòîÔT­c»æ°ÒÔ%ÞÀ×YPã—‘0w¹ãªèæ‚B ’…xЏ2M@K•‹ÏØÃ´ÐMøH€¾Sqñ`ž5eÁŠ —!t ê[ÅfS¦±»¼[_óÃù¢BmHÖK ¡b°N¥>.l5„*O9qaÐV”‚FÌ¢)©±÷9óàXчô•ôúRcm*§<íãÙíBt«ü[=Îì9/"³9ޱ_5w$Eý[Ìt¾e:ÌJ Kxn!8^ ã ƒîö(uЇ½ˆ}ÐîŽgvÅÛHØí©ì¸ODáë­ Ù¢dƸ…ý÷àôÙ¢V Í"kxÜe›xÌÞía†EGøzè‡æ¼På ‚w'·Àeк¯Ë²;žV9;Xº7g/N §2ÿ«KUJÊKHaOí$5Ñ^È}ÀÏ_ƒÑ4yæŠf4/7±Û j”غâ%é§ KÚÃñ [”p.¿1¹¤Æ0G;¿soL/øTäž1úºçœn4}ê·¡Ãl±²ÓZùŒžG¹DÔ(8÷r–NAi©†Ò/.^ZÇa4<õ`²Ãm÷M}zØ31çu ÷úè‚äÇhŠûj·h´_¹ÌF¿ùéÕ‹¥.¯ì”×…wÄDdV"µa$Õg=#ÂtFϧ0°¶Ð{A”)ªxlÛÛúÈA/‡{ƒ0TüÐØâ1Ü1ø‘œBa?sãù‡c™UÙ°}¿{ïZØAÀ/¹žblG½õä÷½R蘼qëwpkÆÝ²h_“¨¼JSV”‰¢àP£ÃãÐR2ãuo£ÐÁžûœ°XVò{Óâ’*z4¯ùð÷Eþ8cïþ„¡‡èFÌÐý„1|Òb8E~Lîö ê°sÁ>7"‰Cmf Ǧ¨ÌTD¬e% 5±ø3Z¡*¢£T,ÎÌtFWÃ*óÇÖø2m§„wõöÙ ¿~/<‹’s¯F_&M•¡~¬xÊ| ©hÈ=¼SybtoNU_ú.Øä5F™ßóJL§.]%Ëý¡Òp @»d2\RP²a+ÅÃè¤Í†,es`|è¤ý¼ýŸíi¨ù zÄÞ87ʦÃ#´ÜçÇh@5àž•·YÉC˜"­³tl4ùé¤dÁB;.x|i©ÐÔ¡H?ZÑúe&òoF» é$À×·ºÉ†Ë÷YKæp¸ÚÁÕÂJ@•’̼nTS˜„s3£\<4ŠßAqÀË Ç@^†ÿxƒºT\qá™o1íÒî‰÷1X;û¢‘ Ç8@ýѪc“ãI¸÷V(½`+øƒTš˜¡|“ÃEª¤÷‚/€ÝHC­¾ç—<ßç,§ŸÐgÕ\vtςՎJ³`óÙ$F:Á2:soKF²q”QŒŠÐȶÛü蜀&ê2o2zwÆî=Ÿg‡ yá@//éò¼ÉùüSÏ?U5»¥ðtAšà6ƒ”X–#fÏÒ&€jfkúÍôsðÀÎBõ'Y8É!^¹àÙ€¦÷˜/ü‹Z”€£c® ø.“á‡?½\ µC»>ÜR†Û€SÓ[ ý I¥s" <Õ€D©;Ð/‚ÿRT@Ò endstream endobj 1144 0 obj << /Length 1751 /Filter /FlateDecode >> stream xÚ­XKÛ6¾ï¯z© Ä,ßrh‚HÐ6iÖ—"ÉAkËk²åÊònÒ_ß¡HÉz[ÄX`%rH~œ×7#¿ZÝüòVGIe´ÚF”Pdh¤0L1­6Ñç¸,TÇO‹¥ÄFÆë"‡7Mxü¸2NòsºøºzófuóÏ ‰0ü‘ˆh†¸$pŽ@Jëh½¿ùüG¾0bFGOõÒ}D¹@XxÏ£»›?o^Ù+ Ò¹1aÁ#i$bÚ_*ûT<}Æ_KAEüÒ=ðbI<ÿ~]äs²G{áÓPJ±JÀ%–„!":$€1É>Æp'= Ò¡ƒëtAfdd(Ef„@XPÖ¤ƒÁû+icFæ1†R$gTD<ß%²¿”uAdP“T!= ¢ 32¢†šÈ9—èþJÞÅÐA =Œ­yk™ÈŒÌƒ˜¡ßU ²„5ÆHdºŽ£û„œÈz+l2r”öóAFH‡ŒuêâŒRŸÏÒ ì†Nß¡¡C˜ùä',„3#lp†Ìá|Ô¯KjÄž1%ôj¡YœÜçébÉ‹ùíbÉ9wÓevÌÓÊ ÞÚ‰¢Ü'~\lí“Ç¿'U™}ss_°À„ÃâÆOYµs×T ´R`§üa“~(¦)âFD3D¹ (°$ÓòÄ´@j¥= sí`OÕ÷<}ùz ÌÁÐ1ö4ˆ1ÜP„@fdÓ• : §)oª´@RÐD@DsÅP6ç vtɰîQ5wÓ•]@tD­5šˆ €˜`}2C—ð b–æT°lˆ.âZeCJ¤1ÈóCeCÂ;§õQ Žê”·>­>ýúÇDñ` yxΡŠã|§x0ø˜–•ÁKLR$`ù¶QìÝôÙü àÚçêx®ÜNn:06  Úçß±Ì Fãj¢°`ޤªÃºq¦úºõ@ ÖGqø˜õ…1O-ršßŽƒ 8i|ï•©£åÑÈ´¼_,áYœ²ÊŽ¿»(³'ZiŽ\Ç*AÆ{|s—V'XLd\íl0oÒmrÎ+7;{<ÈÚãݾmQºùuq8ujÀ ¨ïŠ ?˜ŽW;?›'åCZº}Õ.;5`MUïÞHÆû¢lïV%YžnܼÛ'. ° ¦pеÁ„lã†erxð§ØÍߦ @Ã*u—Qq\¸ÊŠƒ6ë°sá]'knöS>•Öð‰Gd³È†ßDè1=!!ô¨Fö…zdtè· m–¢>JRÕ†xq¬¬±Y<Ò@Ï*@¨3HrØx UÞD—°º8áì-ߘQ ‰ ]R©2ö‰tÓ>'O1Ѓ2WÉS8Jù4=Ÿ Æ öãrë ¶V¤ZmÌ&˜Äu뢥Xï…âøŸ ûÔÖÉÉBÛ­Ždì[vØÖ-BÍ*vÕ>{ØySÙ¡i¯‹²Ó¿°”JâÍÙ ªÂ­® ëV:î*IîfŽeñP&û‰¶ó t îSË25º ¥­'LÖ&x úk÷ºÙ96DyÉðŸÅO“üüqQ˜S曪®¯n§Ø*'çuñ6Z¶ZL|÷Û7Ö$È¡ð­Ú¦8ü\9 c?iš¨c.ÝQð© Êžù½˜Ó­³lmÀ{ "Vÿ›÷40ÐUXR†ôh•Ûnˆ_•ÛÖ‘öP7Ó ìú¼OÖu’L° VõqÞàwÐB¯­w¾žÎÖÇvl8 ¸doÓ5ƒ—u8BØ]‘ÝeDFiÓ”è.#Ú¡cDûÖaD;l78F´oõç1þ¦ö,G@6 ³<¹‡{º>Ë\P²µßÛR~ Zíü-[>²#k`8ÑØZƱÐD~zÚºVÌV‘"lSÝWg¯}öorÉ| Hé=ò_HÍÂ!¯´ÈF¼Â:¼ÂŸÉ+Ϥh„ÒÄÔ?jíë­”M¤ÿ_ae endstream endobj 1149 0 obj << /Length 2795 /Filter /FlateDecode >> stream xÚ­ZÛ’ÛÆ}߯`ö%`""s¿¨âË‘ªärâÄÚJUJÒD‚ZÄ ¸&°Z¯¿>Ý3 âB,´Y. ˜ úÌt÷ôéî«›«¿¼q Ÿz#Ìâf»Ü¥\/,ƒ.)7›Åûä°_ —<,WZ[ž¬÷åre„óÉ—¥6IVÞçË7ß_½¾¹úåŠ/üÇÜóT2rtj[¬wWï?²Å¿_°Tz·xSw !|*a [”‹wWÿºz…KÒ¼·&îm*œZo`&-ªøiÿðž}„E |l¹â‚±ä¿ßí˧ƾà‚ëñ(On±âÐaðÑÌ>ŸÅ™òïˆáTѳ £Q9ÚHD΀<1F r¼ñ”¶Ôh9} 5‹153Ñ3 OŒˆoD> b†SUÄÌšd4*fvbg@ì´ãÈhT?íÀnÃÍjk4êg6âg@ž#?6‰BaTZI›*e+!RiMĽY:™dŸÊ|¹’R&æår¥”ŠÝ‡â®Ì›8ð;ö‡]FíýŸ*ù{ÖŠ_cߦ×ð/퇢¹ËE":kAqçÕ&ÿõ4øI'RåõBk˜­çbhQÎE>étj £$Óê»nËü›ïNqhÇYy\%àøq>Ä}wóŸ^G¥p50Žä©3v±R`%âìŒÛSCâ›lÕWíÉd›}õÇ&åîPTÈ6d«²¨›)È(g% ¦>ïçuÕO#)ßG*õ ö&lÊn‹Í4Â[^ÃÀ-õèUÁi/`¼H¯áO0ôè›}z…¸.Í…è•Oð«t~.@³å×0TÇç€_ÃÀ6>3šH 2˜;Áx¥€oiˆççð¤ÆBë ‡3þu¦æ2Æ ¼e´âFOÀ™È™Â&4Ü2E˜™"¨.‹)2œPþ¯GÙÔ1Ýq.†| N†/ýÜšAñ÷;ü—\ã@ój’a„¬çb–oøœ³ç°{¤b0Y;CBŒÂH§þëá_BX`x–ÏÆ… À”࢑›…'nvnÀÍÐl¹^#7;Ûr3ŽæYI*Œ¤Mé þÔàÚ€Â4› j8èÖØKð4—UBq+%hÃûsÈ’K?‚QîëÑÛ)H¤ÅE€…LzÜ&iSíg8z¨³3¸™ŸÇÍl’›¹ñp̰¦ª`ð%#@ÁL‡âùzäx¤|e™;Öúªœ"HXœ‡´‹öÿ¦hlG»Œ—?4Q‡œôs$˜dGú‹MÍ€2(Bº¶û¾ªÛë¥pÒȾ'!ïKÆ{¥Èp+(¨“ÃÀùo^¿Ä‚UÁÉfàò˜8cï¾*ãÛ®aø¹¦æmNS-cg›øýö°ßÅ!*£ÁÂwpü-JNá`H\\ù ÈH—|[ÑBZåðÞÖ¯ÈÂŒ†­¢žO 凢„È#»X‡¢i ¦M)º[E iø>á ¶]ÒÔ¾®¡@ÉM{ç@¨ÒŽkØ×åÀó1Ê,óH€´Î°¡°^è¤)Ýá­Ê'Í>v\ÏÕ£pdÂÂ!bæœzÔ!ñê ¯3‚zKºC(¯_ ×±äSÌÑb¥©-f [gAë¢o¨Õ:åÅf“Ó$²4¼]“œÞM0–Bê)SXÞÿ¿AÁdª!&£$¡M¯˜V­€òH‰\R>¨º‡ÈjƒOñH½¨ŠãQ€w /Tââs_Ý"obGt‘Ü×a&¤Ô蜺ïc©wY<%xËçâP![Œ·‚ –;°ë(¤CPx«›CL§¥êB R__O¦âÿ q§® ºnWTýr*KP!Ç ZþìÚ?Ñ…ð·U{î`IÙzß5ÝEݱe‡Íi´mÃÏì.ïsÈ©CyÈøœ ?`zÈüΠ.ï`ï*H²ê7Ç!hë/Ìq£Ü ¡Ñ•9/§ K«Žyÿñ“'-ÅÉ£1Žbäa…JR-žƒ]+…–ð#ÂÞwÞ½‘ð°·Ox0@„oÂÙDxŒî±+žë¯ƒ!q=Â“Ã«ë¾˜È §úÀ±N§†´£‰‚á¥óVÔquùºÀÞœüùÈ80ãµ ûœÊ±‡ Ï.¸Áë¡sÂäŒ,'¶w6bÈóÉ+ZM/y WñYvXSªu Í1£ôøƒ:05eN¶1 ÞT7á’zu6©nÂW2™Š!3x°ärüQ…D— ážó©X:U>98‘Bü®òi[”“aƒÅµH•;¯ˆ#xÈíQ”ð³5›"5P‘^™Û85@‹Å“4ÒP³ç—ÃO×O\yTt®¨’'5>fg9=]9–1¬Žµô¸KspHئôgÖ@%qïæé‹KHĤ¹,ÔçÌÊ!.RìøÔY÷œÂ«‹¿c¦æµztE±G9ÓíEüxs ÝQ<¾¡x®;¨ãí1öÓ„mÆ÷¢Ž_^Ë£ë8ºŠƒ°Yïw9D†pQ ͼ¬ó8¡ØÒ„“ 0ªøÄÕ–GÝR¿½»+‹u¸&{ùòmU4E†µhñ]«­5¤‰i,ÑÞn‡X¿j$g†¢,–*ï`©Þ÷wyó.¤‚ìé@ÿ«×o€~ÔŸôu‹÷­_¶+8äÙæÅ䟉 !8²‘»IKhö÷^œBfÅßs·£¡ÎŒÐhÝge,œäoöÑ$´ÚSÿ.û™êJle)#,)¯jêÇ<?ë츥IQÉ´4J¸‡&–GEÕNʧöÞszÕ­Z)‹vhŽ y›¦ë¨X:À3£v¾»ë225Èè7Ey2¡)ºdK¬\õ kjIÄ’ƒÛ"Õ‹”O':]¡Ñ_–œ.4†ÉÙõÔì_­:€Dxê0$Kn1ÃgƶqñÎOÞ endstream endobj 1054 0 obj << /Type /ObjStm /N 100 /First 1001 /Length 2357 /Filter /FlateDecode >> stream xÚÅZ[o\·~ׯàcÛ.çBrìn ´€èÅðƒ¬l!ªÖ•d ý÷ý†»Ôj­Ën¤cĈæì™C~œûÌ9”4…()s‚×섥愆\ĉjªN”`™œ¨¡µ~ P—\ìÖ•Î_@ézu,˜KçÚüÙ¬ß͸aÕŸÈàkìw+îèR¶ÀÔüY,À¢ {”X;Ü‚»…Ø©†øF©J`3¢¦ÀÁGTƒ$òݰ‘pòÃW "><D±(Ü-©ÂÝêø(µ @X…ƒ&JN¹˜ÄŸ€°”[P?8 ¸ÄÅ@œ@¹¤ˆ)¨v~Æ]µŒ¨Íì¿ùU:örj~K!³øB–êwCÎ]>&ÐN—¨AO–úÝrËýn %5œ"Y …»ÍBëëµPú¾©¥PJõ'…bäëaóÒ\u À+t甆 ;cæëA%5 ÎB-_³P­ãk-Ô5Az)ÎêãÜã`¤S›Ò® VüäPy°n$ø­™u#k‰ý®¨¾2Ö¨úoPI“Ô% >íf)0Òl.{¿Uê²ÇoÕ ÊÙ ;2ü ™º¾±a³æZƒ ´æ×a'buÒåÀ¥¯×ý$ùÆÜ­ÛåK] jn™ÚglݨÝPI»“{HWt)þr·Ò¾ªu¥w“Ê]~ŠnF›ãv»KŽ+wcÌŽ ÿ –®3â.·ÜMÎèèÅ‹£Åûÿ}^†ÅËóóÕÕÑâÝ—OWýú¯§ç¿-^­.~^^|ð`>.~\üeñÃêG‹Ÿ–'WáD >£M£ÁcX%úþ9•h"à{^¼‹wañçÕûUX¼Xþ÷ËñÕéê‹·«“wK2,Þ¾~ï—¿]…»r{{üËòhñà,ϯ.{¦ðç]<—«/'ËËuuÔûÛòçÓãW«ßB—¨W?µ{ÕÛã <íËš±kã÷ ÌñổӺƯÅàZìuŠÀÕ d ¤õ=1Ù&´âäp)h¨‡@$×â¯ÃP½e9%í³œ[l¨$bB2Îr‚ü{€ÝoZ;¸c[[£{´i¡bºeZ5=Þ´²mL«”AÔA\ßjSZ‡(”š¨£Wr„¸©fªèžürùå“ÿ[ë< þÓ)C¨F/Ì j"XâV‰ 5Ø‚íñ™FF"^26DtA£‹ë Êà FÁ+•°.Ì ŽÑCx”à¶'*ä KFô,±ÂdÙ+4”åRΙá¬Qâïr;.Ôß‘Qî÷î{rÍcšÈn9´÷–vè:Ü·nÜ×jCÔA\ßÚ$ï7„Lša„#JF¢at–™Slf67­=6Ím:SʬÑ'Yád>YE?€dÔ*úP™Äz8JC`A}T€†ùm]Ù’Ý]ÉþøïÕê ÛÈ„±Æ­ßûgF‹'>B“è}5p5z@S†;T‰½#Ý`€FË|ˆ CV:¾é„ZAATqÝ¿Œ¤S;B VlaÄ8 ¦®§d‘'PZ¤ëí‘S=@ù:Êú¬î€êk—­ÍÓ¯²šÑôÀaö°2á@>i ’Û>nÈßk_ò1ùanȪ\dB“åÅq.wB-w·(8Ôºüº‘ñYgØÅ÷!—Œ+Ÿ‰±>-q‰ÜN\BOH\£ÉÙœ N7B¡ƒÈƒõ«h£~µ±r+·±r+·±r+·±r+·±r+·‘?S bdÔ$ƒÐAä§åدZÝz–ÜjôŒ’‘à l5yöùÈ5”Þ9 <®«ÆóáÁߟ¸ÆƒþC„æÃƒR¤–­¾rö*`>8¨ˆ Ý€ãñŒÖCÈ>¥pÍXmóáéSڼѤRy>u©×<l𨡖ä:ž‚r®È*+óáÉŒ4Î[<çùðH‹¹ÐzÛVu><°_Þº—¢.u>wׄŠ.m“…&‹™çK‚F åm²÷¯ó% ))–¼Î‚¿i>oGïŽ>ik>h[ç‹Î"жå…÷—ù¢³À8m³…pCr}~<™*²F¿Ò’Ï_€Ý‚$´y4_töww5o³…¿s¤2_tæb±¤m¶àZ‘]gÀƒ,š€ƒáO>GËw=1²‡Þ;–³åÅwçgŸ?­V¿~Dð(ÙâÉ ÙUæÄKörl¤Âs¢ìCé-"Ö¨4+¢ÄÑÔ¶ˆA©ÐŒˆÈ~ÐDDÔ,Òãõ‰ŒðA£¦›lœj÷,‚‡U>è}ò=/‡w'/7f=¨hºc b¨øwUëyƒŒ2éëcnmóqѺ¶ò)ª÷nó=ÙåMOÉÐ.¦õ7ýS¼^¯ùß³=øoÊêf®NÞÊÿ”¨¬*h†lÏ›³ÝùþÚpÛaö}ƒLzÆ÷Ùþ¢ãaî>Mõ¯Ji‡°úçd…Ûï~=¾3ÖDV¬MøMõ¶ß(?ÁoÆtJwR$qÛº‹4Xçp—á¹Býƒ×Ṃ¤E÷¸ËM(ù–©ªdª7Ù !0Õîa [´}K¯Õ´¿Ç?„õŸÏŸa…›Ð!¬^t+?ÍYv?,ÙÎýï,íg©‡9 ’æmgÉßÂGrfDPÝú"(ÝÓ`î1L;Ì0íÄUX¢=ܛХÕaõas–ƒX‘?ìÎ7W·X‘v¢µ«þHH¸x endstream endobj 1159 0 obj << /Length 2899 /Filter /FlateDecode >> stream xÚÕZK“Û6¾Ï¯P鲜…/HíÅIœªMeSÞòlí!Φ( Ë”8&)Oüï· P¤ÄyÄ£ÚÚ½ŒðìnÝ_?8ßß\}ûW Ç\&²ÅÍfáãJ-Lê70²^ü–¼O¹¹þýæço²ã•Ð’‹”–üõ»ë•R*y½¿&ùr½’R&yQ”w}þ¡.©ßõù~·kì)¤ªâÌ>ß•ÄA¹‹•PÌ¥~ K­#Vwmµ¿–"éqÃÕ››«OWÄH|ÁSÅ2-2+˜°Ù¢Ø]ýö{ºXÃäÏ‹”Ig÷~én!™’ZõâÝÕ?¯¾Ç{˜°æ©e©“žTj ±®ö›f†+H§µ¹W™2çÔ”k×É·ß¿€ŒÃã…'x³Ç›îèBý% ›ô°“®»Ù„GY¯«¾jöyM}¦ð<í°:ïi¬Ü¯©AÛURõe›ãþ0|èï=CÙ+'áµìbÅ%ãš“T7·ˆ$T:ÇvÑtyµ³ h€oÁPµ.ÛØÙ4í.0ÄüüZäKýþ6l+m[Õ°5JÊ@5¹L~º¶ o ».wݽ‚žvI 7jÛ|¤ÉM\µü±Ê·û¦ë«ÂŸ0=9RÌ·Ý2Þ$ýz‘ð®þ~Gdïzê¯/{qØAñÀrnnƒ-¬ËM~¨Ã–Ï×:Kòúæ¼d8Þûk¾šDNáeà¡Âürß,ÙœôoQ„¦ëª`Ÿ#f]P¶ 2p°E@†•à ŒãÙȰo4¬›ý_©íœáœåŠ(y–\?›å¤‡¾úfd Až-µÏ ıÛð°s:ÿ\¸ >‡ '˜“ÙBÉ´/A —1i¤§$…Œ9ÖûXrΙ¶|Ê“.e¤2fm|™K¸Ê]µ0u›Ï+:iïHSÊõØÈЮyôv9{ÇRsæÌ³N ¯Ï59ñøR+¯^'—¼œ¨ƒo×+ž45ˆvØí* £™A-Ÿ‡ N~ï±ýØÅ.Щz ƒ*¨M’Óx["âÚC5†½ÚÂ*¿¡¤vÓVÛŠPVܵ ˜ùðNf®½lKšèjTu›g`'½·„YëCá_i„sGâs ³«¶·Áø×ÉmŽÏÞ>i„à¼@ôÝ®Èër ˜YKˆ£^ÂÛ¦*B•¢….ilДŽúÞC(®HLO¥ÙƒñçàØçª‰é7mâž*9¹ïY$ýwÕã3,Þ:ê† ¼q¢o¡u*ޤÀn~‡öè9¡÷ë/oÃÒŽ~Gv—§3ü Èpô'ÈéZëhf0GþijJ3G{Ò» žÞÌ\Œ{6Þµ!€þ.ÿcµÇ§›ÀúøžÇ1ÍhÀÿO‡¼ûƒá/´fúlÝSÎJ=[øxÁK‚àÕŽÄPçºr~†ˆ‡#ý€QÔË…ÓJZ¦ôEÂi$%tlûjüþ _Å™Pâ"|Á¸)ß/ 꺥ánœŽ¯óî¾ê }‚ÛiNâëòÑIü’#õà¸Lƒ#š:Ô=+’®¬Ë¬‘Ùé#‚[äÑl[èç;êßWuM›ÆÜ¡K(Þþ‹‡.߆±÷©NÆÓ~iµ+a„SÌÿ(zuX˜w;„—(Á#”@g %Ö €Ìªj%òÿ+POû_ Vóº~LÁˆ´t’1§µ˜¹ƒl”xüÀ<-Rá.†`„!ç —ï ¾ 'è›zÆHDÆ4Ǩ®«Ú ùÔÎßnË}B: atè*¯—m‰PFKQ+cÄDÔ'J0ŽçÑ«óy~~Å‘v½®OvæõP³¿Ýa¸a†pc46„ûЬ»CQ”]·9ÔõÌÁt•„|ss¤?£Åx^ŠnÈþ„䯱Q¶­Ï9…ô‘IÊòáŽF:ðµOˆÚz¾-ŸY‹‘%b: ì#4œ@‘B $°r亦>ôåQ’¢Å$§Ê©—EÓ®)[GN m]®Gõ9bë0Ó a9ËÀ*¾>ÖÖàsœVž’Šnt6¾×2 |ž ðÖfSž >ËW¤J¥,ƒùÉ{.ÁTwswÁaU*á.2ð^`ç_/‡¦ByJ"“Ü– \f/Á+Pàs'<é.VRðýs—,ACïfŽ/ॺ„("5L‚wúø‚#ÖñKð_-ÌùéñÌ6$Gpø]Ùû²Mê͉j\¸€~]RÞuUMðz’”*ÇøEJjÊx.jdO‚¼ùäëKÒyA³àúa‚ÀBxÄÒ×£L¨GÑø]NjÙŽÙ€PÀsã¿+}.—Sw“,±ð‹±ÄÀÕÏ5Ć˜HhÍ$IrÎ gF8O Loòd(UG2åÔíX½;àzÈ»LA_’ÓÐÿµéR¥u¡<‰»À÷6žηõ)?Æiè1ª‚¦6eÞZ_æˆWC%RAØ ’@t†Á_c%`齈'Kê0áãOçë—äãNàuÛÔë°¿ì tj<–a(8‰jM]ðŒÛ°™¢À ÿ¶ô™Œ ‘ŒúYKCôÃÇêh ³Ù7ÿ–h>3ˆæy\ªzN Y:uBÅ>Hä›6ôÊSÃÍ9 °€K>}…<Ö«>ÔžF…X9­Oó_>¦Ž™(Àû4å3E1Ðé!|âñ>å"cÎHcDéMƇ0iXgFË2&ÄÀ+µçœfœtDˆÍe†\:o‡“Ôrѹ¤3@@gpù/,$‚«PÖzRHÑ‹bÏDœà–Œ‚æ`–ìË2;z}èÀßPQj§©ÿPÃY™ߪøÊÈV”€Ø€Ø¿§zÂZ„ø ›¶…ä :€y ‘ò¼œ0Ñ„•G9å?в\ûàÚÓ©º–9¡…Xoµ?ÈLt¸ à"¿+È!];E¶ÃMžålj@‚‰úg†eB @¨90H!ÆÏâ¢YM´´› ¿ÒEL˜ “yýGJJð£¢Í ¦Ç‚õ¡äæ)²"À\zÌŸ¾z$¬- m™„hèù¶Ì•eZòKØ2’’2Ørqw˜‹UṜ½SȄڦX☠I­øz¡Ú ¦ß>„ˆ0b³ÜLíì5VÙeRCÎÞSÓÛM‰dM˜'Dˆzúk&Ÿ _äa3Å ™¤ ~!‰‹¥tb¡Q î+M0º>„úK+FÙCÙ:Nø¢WIßÛÓ16SŠ šb­WÔœHòðu€Œªâ°Ô ø ­œ~ …ø&PcÝT 2glä~OSÔGÔ‹å/)ÔøÌ@çcà76}PD“‰G£ §kTŒ$Rã^‚|!€ßÌ|ýÕÚǬÒ(ð‡ê"< àŽ”žh”­{ l³—…{Ï[LUf>E^$Ôã§¡ž9‰ô¤ô‚A}“f3‡PLÃ;®FëæÁßAhëÜüׇÙB ?À«…8νúmê Ç«Rp@|%.ÀQà§]7áø§ •CÎDÏ< â?bFÿ#Sæ]õ¡ªc2fU@æ˜8Í%^‡ú¦KjRøtÁ¸øm;åƒßž¬L0‘:y竎ˆœXy¤õÓ Hµå§CEi'N“Oó}sÁ·…éJ–‡ý¸h©lÄÅÖ¹¸4ÜÑo xL-*ZR«ÆÂõÃùlˆYýį±ðZYžl®}¦=!ÄC®Šc¤ÇBÌ‚´ÒÌêGQz׌=ÝCf©‰ÀÆÒ`Ð/ÁÍT2“Z¤$¥{ÔŽ`“3—`‰±˜Í&,HÌñSœýŸ@ê'2r²K<™€›ÀÏ 6z¡ÌÆËü®„&' endstream endobj 1166 0 obj << /Length 3702 /Filter /FlateDecode >> stream xÚí[Én#G½÷W:Qp«œû2ž‹ ÖÍíC5Y’Êà"³H«ÇðÇÏ‹\j¡ŠTˬÆxC€˜™•ŒÈÊ彈ÈàW·o>ÿFù™/¼fv{7³¾3Ë|Á-êËÙóÅvÓìw×?Ý~÷æ·o~yÃg |Æ9+¬1¡³´z¶X¿ùñ'6[âáw3VHïfO¡ëz& %-J«Ùoþýæ«gJ9W…`r¨÷×z»Ñ*eÁ$ŸD«4…2n¨u¿]ý´~þëu¦Ð\@VèóuÕÔ»jy}#¥œïvUó°]…ªšßmw¹½Š…8e½¹n¾½èÝÊ}½Ý¤kvãdaÝì†Ë‚k•|ù¾Ù®{QÂаª]¹Y„ªžo7©ù!5+¡‡=%7Vðù‡Å¢jš»Ã*}¹Ú­ëMè…ìª_x±&Ë.÷±=i1óuùáf³Ý­Ó îÂàÙpܱ3ÞûÓì°iåªZ¢Ì©U=(z¶Õº‰]WllÁP6¹”Ÿî®9F|}Ãç4ý¨,é=•žßæüz­õ¼\ÕËXÅüݧ'a•†òvU¹ŠmÛÇÁXFÞ‘ÅÂyÿà»+í¿ÇºßÇEs“{œùh^kƒMs¨bµnbÿ±%çÌʵãà ¤ÍÏc¼ˆ}8t#Ž¿Ä§-˜çy¬Ç X倔F‰Â/]Y$)3x¼%±¢ÀÇ)tJV(.‡J?äbòªu±ó}¹ÃêÖ{*ÿ§…äeM‡¼Iøk±„>ÀÒ«>S•ðAúÔÐSéH%ésÐçä°d »¿Ab~©¡ƒß(™à7tÌ::ø C¸ë`Ôü:=:Ì0-ô0@!>ð:7”ê¶-Í>ÞË3–àÒÉ p‹j†[#ܤ$¸upK‡/".ª¹ÃØ0N‹s({“ûÄÉxá0i ÞÌ0 SÂ_zÌ^ú Š»³gIBØIt W c_çœõ㬛g÷±uru/ƒ,×c:¡l‚žGòq_¾_Uc–¦(˜ã3mM!œ½ ö4&ØQ̹aç·¹ú²àU†.²xÂñý•þU»û*¢`¤0­»ŠL«Ø•` œ€rᇈñu!) ×ó§‡zAß{ˆU’Ö,H{It,¯% \$ÇIîª\­â×ÈšZ†¶j· ˜Í#æÐ'ÙCõ²Šú~?ß_ß¼X¹êÖ«¸ŠM@Ÿ]zZæBÀ´'Ò—„¬ª8ªÕК‹¯M8ª”82‡Ñ°:V»º$³Òøù·¹_À;Í!`ŠWËÈOW©Ë¶!,ŠaÚ‚a­xœÈªj»¾E ò—$íÙ.”äK»Paà¼0ú;Kz*û Éb?Ÿ)ÅyáÁÒ—ëTpì<C4;áÝ«ý"1*aõ¨Ð` šwŒ+Ú 4_Á ¡›¸w%N“eb¸yi©ÂÚa65·i•mÖû-òa«5VcM«±®–u¹¯VûX»úa‘Ðï _‰OÊØÐDúŽ•5Jå}…á@YÿÚÄÖVçv-qý£ðè2¬¾ëzðvo¼’ù9÷öÙºÚ5±-˜s½„P…åj¦…,ŒS¬!è Ó-ƒ$s7ÝWq4ër“6jí:¤±Ö›øYÆÝ6žÍPI&= G… äWMø–³"K.ĶîÙ¡©’±Çâ4ü²©R·§„\ý±t‹?²3ÖõýCöš5›o¶©ÐB$UÂn%BÐÐA¼N˜>¤B¹P]µ½ø<œRñ1È (v ·»\dËÖ½¥ö‡ˆxÔ³ïw£š A£!ô;žFC¥Öï†Òz ©'p»Ï¾Æ¹0f¦œ*œ“‹œ`˜wZQLNàÛÿ½qÆÓàÕ`lÀõ,öL¯çªU ¯Ô…ç%„ ŸR:êA}%l(“ׂR?Ûëf‚áœÍ<ó\&R:9ãv ñ…`üõv Ò¶àŠOaª#é1׈!OÙv®Î÷‡5ËtÔ“¿<@¬P$ó WiåÒ·öQìlG4xOÇö¾ åÍ}zÒAÙRÄ4Ù!}{7p~M [‘[©åmùìüÑÓe =1+©6Xz^¿Zz¯ ­ uÔyĘ1𸼇ï( ï/±eŒ ~ ‚ç–ô™0dÂq©‰Þ”fñ&Y+gÏÙ;ƒèŒÁªiš¦ó/‚3O”(²×O…ÇÝ/¶Ž•‡²‰…´¦päCµÙ®"p/Ó··ƒnMúª[Lv  jÂÜž‡Ú}Z…$v‡E$ÿ†¶ÊF™,(.Êàu\§a5Õ¾À…ýVí¶ôÞFäݨy¨»ºÙÃÙ@ÕÎsó²nhE)Ì ¹ŒazÞ 3P·Ä.ô$‚´éÉNqæê>œôÉ$¦NlÙ$¼kÅL‡mB“‹óöcÈEYy ±…=æ.!eúË J9ߡȻÀ dö<¹8ï.‹°bCXø Gfìã=†Ùlý°–s£Ì`M¢„²/„í 3{ ½„/øP=°E*7‰V/à¡é¡Ö‰ÌæLã«×߈ÙyÞG7b\1¬¸=’C“ÕpªE2m©áÙÅÚúwbJ±ã I„eï‡eéqôYúzzaYÆé[1ám–=GÞ=8µõîÈHLÄ[›BµÔ!†j©-¢_lK+ñEt™cÒƒrÕlc糘 Ô›ZsX>—ø ŒB+I †nwW`1p ÂËvOÕñ4\ÚL‘VµÀÖdzœ$z´ýZÀO7‹§âŒ°s´›È“0ÞÈC0zu Ø ‰÷ó:ˆ‚¯u…lnõ$zaíp2ËûzÇQH…Œ“h ˇZÿ jŸiKë  þëÉSCQ¹)È‘’@XrpÇ#˜\“Åc'ÑjDB µŽß³ÀFÂüN¡ÓÂì÷v¨ó5±ûLŒmÊB“Ñî E†©ŒÛhsW•°×ëUïÓ©yæI¡ ÃÜé«Ë£ÐUâÉtŠ€K夥NÝÑ &·ÇdéÉÒ³ÁfK–]„+¿û÷˜g ë4Ow˜G· Þ·cv#c¢·éGRKäH˜±nÛ:Ž$Ï&y•™#©ËyŽÄ²À@…eà—P$vIRŒ÷)Ò¨tË*#7æàšì¸‘Š7*ØpÚ\Î?5 ò‡ôÌH’DÞ6ã$t †O TÇ`ø@é( Kñ>…NKW@C•ÿçœ8e,Ñž %~–{ Þ@Á¬µ/‡ %ùDܼ>T(LlŠ/œeSÊÈÁÞ@2¦í%t2r@ÌÜN»>j™é£éGQÍtŠbÜ<á½Òmü{@”< Jd>•=>=oý×JLħd–ZÌ£›vsÏà­Èé Q–Ù³#T¼•šB­’…&‹ ¯vœR5¦Ÿ¥†Â]r¨ô“’êYª0WŸ>Kõ„¯©@ V¼ž ¹Åäz .$Q-coß“a<ÿyÌ᤼g3‰f­ jh^\KA ÷coí:ÊIt{ªþc¬NJIÙ>>Öù¦/e7eûÿ}ÙäôÚ a4Ãð5~®9,±êa³è‡˜]@³ÑFnyüpN¸1´>ñ0 ý´4´8Ö“{l¿†cކƒöÞpP‹YjÄm±þ>ÓÊÿ,?Ðcþö÷;ú¤ ÿþ%´Égt,3m}ÆPªS[{úÞfïvüwåŽr4˜ŽI,ÿ”…Þщz?ð`ú(¥Ü\|ö²£¾ˆ!ì°ºUhöHÁH‚”ÃÒ;G^”àå &H’\ ¼VíSRLü9)†Ê1$ÍJJí¢_õ˜á,þr€só}õ´ÑïL´á•õÓéYº!…ÍGißÛCºè”éJ”nÃù|—.\å|’Ÿ’à¦)¸@M#‘hºI­ê4XË.`¬ˆ(:FåE4FvËsw\^M*¼/ßL~lÚ‹ç!9¤&óËÒ^Y‰":K@ýó¸Ùb`àM ”Ì£ÌPéâ> ¥ #ô$z± 3Ðû—_þ‚_ž~f÷™xÁ/7çürC.ç0î½'€–«Ý=íÑß°pŒÅÃô¾,,ÈÒ3o /¹§U3~-lŒž@­ågb öcŒÛ¾C,³C~JBYÙ£›!¦Éùã®ë’_1s<íhì’giAʘy›ÜCòbÒɦjó‡ömê …¬Ê”‘´OéÓû|GJbt,XTÕ2äob%…GI*ñ<å^†qu¿¨4‘aƒØœ¿ã}LJZ¯Ëük̉–1¿f»ÛÇÄŸò†ãåk›ª1KÆç´áXÉ©>¾ëÙå8Q­©bÖOÔåsk¬,뜥Š_ÄŸ+ÞfI½(ñàÕgBò-!ùäÁR)QÐó ÁYÃöý‡—ÝY üä1…½Íµši@«q—e`âÈ)I’”ñ/SÁ0B''Ð+˜ ~R_ïŸþ×–`­xE°vvãcúŽ'Þ1ExŒÏ‹û_ ²`4 endstream endobj 1177 0 obj << /Length 3350 /Filter /FlateDecode >> stream xÚÕZËrܶÝë+¦´¢*„x®lnRIURIÊ·¬]œGCIÌ!e’cGþút£’ÐP—fq³"ˆG7> |yöíOÒ­8gNk±º¼^YÇÄÊæŽqkV—ÛÕÙL^¬9:ûý×wkiuöþªÜÕÍÍÅŸ—¿|û“r+Çœ›ç«5wLšÚ¶›‹µQÙ_XóìÇ˳gªä+¾r†qîV¦p̺ÕÕþì?óÕŠ~YåLºbõÙWܯ$SÒBj·zöß³ï±Ç‰Fê´ñ‚´ã¤¶Ÿú—jåR²¢'PË¥e2 `Ô{]^ m÷–楘ÕV‚ 샯go-¥ M0­²ë žÅôp[QœBm²¿ª«¡þt!Š,ä_Èi†Ú`Ösè¿pŒëПËÛºÇ)wXÓ*ë«!ä–!cìuÓ”ˆ½±¡7zìÍBþÔè¬ÅÕ‚hê v jBNƒ#ª®)w»{*Ý`Ö=•ÿ|w±†?è=ýoƒnžŽ“º§evhP!üðlK9‹Ö¡/Ze]…*,ÌûPm)«n¨Jª²«¶éÛ]h؆»Ã€ãÌuöó5e–ÛmÃ/wô? šß•]¹¯`}¨Ür÷ Ô. éC®óŠÝ )²C_uëI¨d'Ff7]¹­+šÆõ¦ì«-´äopºr˜J?´á–êÒÒö$€z¹{l{Ø õÝ®®¶A¡ÔÈ‚ Ú§ °Ârw¨¨ f_aëÛ¶÷+ ÿCKå¿p¡rSÝ”qúß$£¥Á&Ë Æÿ¹Þí(µ/ÿ®÷õ—*Ùê᪆M¡F3¤¿ºé‡ªÜ†&×Abݠİ¡®¥R&Ø,ä„‘Ö¡aW67Qü´;ýø±´*CWÃ[XK¨ë=Ws’³œÑ'|Èóœ*A£©’e¼N¨S7×Aμ /˜Ò£œï„€&Ím¬Ñn¼1G%WF(–Kó”_Ì.õ‹©2¥ÁÕ_àiÁƒ>ã Á”p'Q\h¦`BÅÁ™ÏšTŒO3ûݱÇN'í›GÖ¦8Z›D†ƒ%±JÙlÉs×C°mu]ÂÆ£ÜùþB³ì)›³”]sk™Qjµ†$¾ÙÝ- ¬†bí,,®y%È ¨€’òç@@àze󜧊Á—Þ¢—Ùvj5÷Ô%bmµAS9z¡"¯ÕÔMÁÁn“=>÷áó¶È •¨[0gmºÝI'¬Ÿ¡¡O¤J1‹”bÊ+UBd=B—W \àæˆ»®Ýìª=ý<„NÌ N¤U$®BåЀ1r—èç-—ÙO…ÌH¹LPæ :Eíu/x´Ò@ ÎO!²ë®ÝSM$Æ)óY â=¢A{ £»@SyÿùíݯoFQ÷AQÙPé„/Û†WWõ‡œ+¿’¾U×nn©~€"ów:ŒðzŽC]/:ì%³v’å@µ†_¨¯tUs ê›[îi4sTçˆÝdp#=å$F[xS1t£ÑޤoæOÎ Ãy4fð%Яd&Þa½¶ïëÍ.EÇCÕ¿]B5Åú%p}ÖÛ¸=Þ§˜’q›6mS½E‹S$=£±íʼn¿ »‹?<ëˆIï<îæš´¯EÎÀÊ_ÜÍù Ý6lè]²5’Þ†M‚Ü6Éܯ èç:ª^ÜÑãE~‹vï²@…¤ZD·ægkO…}›TDÄpË.B¥”{R­rx »ÊnˆÎÌ+#JŠÞËÆVh›^écˆ¢ŠLÒÀW‚»Õ¯Ø{Ê<ÀŠ£$O¸0¶c€(ô tjØPÂÊTg2w ë®`q<Ï}¥‰Võ®Þt%nýqé×ãÒÇã&ÆM†?~Í}©_FH¡7íúð³­:àÚÀºËȹ{*ðÎH±ý·ƒº”ä¡J\zÛzuzn 0=e¢_n´Æû…sB‰U©õ® . ·˜?á@ê·¸ó>t3Åt¹%Ê”óçHà!Ó¯ŽL iBI²x!g:ÚÈ™æz-œë‚ZœD§óì¹ÎháÀÓ†%ž¦˜2#9þÜ D÷ä±5Xß"ÞQàò–×CbQrŒ0D ƒÁkÍà ®Èâ—Ü®s ”„Hj tBø¹: ë6‚þb¤#þ2‰(¢g ]÷2C×ÑŸFï8×^yiÉšñ"c ²qY¤aÜo؆JRŸ‹êü_Ø,ã(`é )YL˜‰?3»kKÏ µâSØpgøï7;6…JW‡]é£&X€ü7ƒUˆ¸B^2E˜1ŽÂÏ9ælJOÿ7 [ óxkg$º\r—c)}ŸlÞ‚Í+¾’…}…Wç‡s&x³mF=h¨ï«ŽÀL8—R.úIÝ0fÔû;ðÂa>ÊØ¹FªŽ3ıþÞÈ•¬ÐÙ4äö,nR5f7»ûxR ‰Ä|>áÇÚ¬F£¶&;_tˆ\r&a¯J›š×Lœ»%¨GIÖ>{4PÜÉ ôË$,w¢7œ#a~·ça`{J^áZÜ"ô –`s¡x™F¯µÕ1öi“8üÆ8H qUw<–R §P­Íbi¾ÂÀƒˆÐOE~ðç]|²ìž‚D¡…xU ÆLÙÂKò9Ïàžf¦(N¡—Ë‚XÛDñ#ÀTÀ˜“(NëTi°aaÑ”b†?v2ÿa§<_<™œðŸ/ ÕíÎS•7DL Ó  ú»D:²÷õÍí¬U ²…žðLÖ×7Ýa|k#ÙÎyä:Z¹Hâ¡åÐpÌ‹D'ÅÀìÁ×S”$„|!Å9Þ@q½ÿBŠ£§8r¡NÂr„ÑLXq–ƒ’rô2–s½‘å$Š&b9§PXN¢ô“‡–cŠ#•¸û7pœÅ[YÇììR–/¼å€É)f+WÎ(ûˆ9 LÏ<¼Ýµ³jöé¨+/Ž5‰àÎäJ–¾ØÝ­˜0ÈÉ`戯vÔìÕγu6þ>Ícó±!2éÔJpÃŒS¯b8\Á¡YxQÊÝ]µ[dé °ö$j•?¢Rµ/{¬ã/ÈÆ7:rºr¶5Ôt÷/iåtÛ¹ÖøŠgâ>#¡Ê7Ê„êûpw'œ¢Ð9%}`ÕŸ­£·ûúˈ¿9ŸÊfª(ã&„k›XNïkþúÁ§Ê¨ßÉ…”ä~£î6È¢§D‰¤ø~ȧéîý§ ˆ ôlÚPK‘Sp ðÞRªïðz(ៗÀ÷KÕµ8pUDJ¡Fr¡ô8n~°4Y#ÔdoëCÉÛÐdD響Ê~üØ`ä%—:#lÛSÐÆùoc$"9vŠäh+"ŒšFÍŒêFÍ"Œ†Ñ@ÞŒ ÀGiÕ30 »\Œu³ì €"1 N ßõ*L‘€%ZJ/*WòIW †—ÅIÔ:DCžª}ê™H¡åSX6Ÿ´o^ü‚ç”)©R(ƒ…$(ƒ•P潆,œgy‰¡}¾osúy|Ïâ›8¾ñ%€KclôÍB·mCËõ1ò‚Y'ýá]8þ: ò¢| BjÛÕ75>ñ[ Z@i¬>‰b`mÈlÍ:÷Kx…uGÀú¹ÙÖWåPÅëçÛ Ïdþ\1+¼¹›îß|à¶=ì¶sÌŠ·ëxQÒŽOQcÐ Üã¶!Ägè1ÌŒëAzþøO™|~bÄ_r >IGg“§‡Û½zHjÍA’rЕ÷•?‰;‘áóÊŒž+‡W“‹P)Qà"¸Àd¯¹ˆJ~'Dñ'ŸG +p•¦ß!S¥³‡'x—/Fg•Óåšàß‚kªþ&þGcßÀìduø“ZåE£Ãôx=å+w©Åù ãEþ9í•þ¡¶Æ¶zr'󌚢-\5OWÓ«Ó™A1zþq ÞìÀ¡R‡,Ÿ>öL'> stream xÚíZÝsÛÈ ÷_¡ú¥ôä´á~“×¾äšÜœ3éõzõÛ割YK¤CRqÒ¿¾À”H‰’J›~Œg¬]îÀb°X~wsñò{“NR‘:å&7‹‰O…šø8ÒC>ù%š]iÝåáçþê×›·on.>^ÈI r"c/â4 ïho'³ÕÅ/¿Æ“9 ¾ÄBÃÐc˜ºšha´‡Örò·‹¿^|·Ç[ÊXXm‡ìçy]|ºr&ÊZøòfDgDbÝY„p‰P© ±¨ê¦‰©:ÏÊ'´ÛYy™•E¹ø¿ü>éÍ6F0¦i×弘e-¨eªŒïòö.¯©S´ü˃ó¼)ê|N¶Â_¬’°ÁðsOC¸ÞÐø1+_^— ¦RvTpK¬Å-¹’ѧ+壜†VÙåL¥•ÂÙZ@›DmëbFÛÂF^Ípw­C’å-ÐÒqÔÞ±¡U=´EURû±X.©5ËÖ ²Õ2Êx0¯ë 94‹ývC(i‰’›e1§ç%.{½Âÿ®¦ð?ï0óyÞæ³6çéEÙ —³UÙ´uVÚ-={›ÍªEVvâ×cK”SÑ»ì¶ÎÊÛ%UNF?äMq55JF× zJÚÀùÝoYµ4”‘òp?òù7ðÌ»Ž:¼—7íð½æ¾xx ¥Òlx±œÓØF¨ly[ÕE{·"*«âöUĤê*˜å9¿øs«¤EA½$«<ݪÜ•ƒñÔÁ>c’‹¬X¢Àï¯ô-‹nöÖhòùÚö4*ööÜÚóŽ2¼öüjŠÚCo sV˜ñg¦Î’<‚ªÚ¼¤øÕÈvWëöa p1)kªm Š$ µ#ðbXãtâŒNÉcð8”¤CxéㅴІéHÉ(Eò,óOÈ8_’H³ª®ó†Ì¢D N€ñ·û*g…‘ò *À\3ïÏùùÍËW¢ÎÀRÇ8A™¾~ss•èèÕõ»7¯ÿ@ëoxýl'¨³¬Îéaµ ßeVßæ4Ÿ¶ùwWS«LtsÇç>9ÚÓÙzÙH*¥…!†Â¶ºøbеÞÀ¡Žo$MuÔ_–Õ¥³ÁŸPú ÐåÃ’©o˜5g¤éŽ©1 §R1÷±ôû! [›ˆTV߂뽮Êß·Äh7ÈÀ£÷±ƒ>ò´H1"Æ”¨“Ï–âK0ï&ˆb£?õyë!B† xÎØKV½Á(HO6ó &²¤ƒ8>U ±ØÃ/&E,k¹|Ø·äÔŠdb#t§dà & %Ÿxví ó¤Ç,å-Ê cô9¸K•Š$rOÆÕT5’§){sÖ€>ÌaÀ{<_‚õÊm¾”Àý‚êÙ­ƒ°Ðw€ŠMC#¸÷ø›\gKj’â4hè£8@9 0LÐcL H–ò9õ§fR8 M¿9D8+K‘gÀÎÁëdhçÀ¥6¶CGÞŠÏ7^³zøéûÑ»˜kðH0plÐÊÂhŽ«ÅV‡,Ø.š1tð°G.éôú>ŽcšRö›´›ƒ Bý)Œh;ç#D¤ nq(C q`€.±_Ü4°3ðI™ÄuNõ8æLZÃqá,L  Ì0ý0îFÚûèä,l} ‡?dû۔ܥÏ6†d—‰ßú*mѲ}ÎóEˆŸ}Ë^St527TÌ`'úÐÖ^“CÊb°Äöl^ŽœÏ@çjCƒ™ø‰©‡Mã8¥á\ç«/d:¢ #¬…XÒ›7sð8hìscŽId@ÿÓcRR@)0\ã‘â`Àr|ÖR+Ø ;ä}<âÀnèô,¼!KÕp8ðþªˆ£”Dìßâ¶xþÀN…™·ùÀ­^F#G›ŽV8zãã~´ÁÁ!Ú`kmLìùØ/„- §/êµÝ È íÒÿÇ51¡6¤Î[Tœnçpl9SŽ-¦OÄ–s°åØ2`ûŸ[D“C¡Â=*äS¡B?/T¸§C…vÂHƒPG)ó9ƒÎX‹TÞ)ؾÓÊ›±Új äEb»c.Ötë"óè>oÈêZìé¼m,¼rÞ-bî*/ñ„ÔŽÀ7œR’íνΟWE™óñú®Â’Ò#u:í…Ù ­©;«ßUë%o Øß2Ÿw «M(Cìƒlj£V¡å¢yü4`|9ã1¦ÙnÏ 9Ïm惘'Ü6Ô)ø·½ËÚn&ÏkÚ¬¦ú+ö¸Ô¨èårç•ËUvØî‰°°S¬3IÓŠ5ÆIaጇ”ø¤×+»‚p—$Ì,ÃøÙä짉ÞøiÓ†è‰ð &îO6›‰Ow6…ÅÒò¢¦æí¶^ößÃ’Ê7XÁµX‘{cAD‚„2cÖpï˜:eh .K@ºäuB®ŸÊ$P²à,A1Y­ÐÒ/w\¬Ë™iÕ@&w û¡"fRpè%UÈBÂÓгPøêr*Õâc*‚b‹ÉôôŸöKSÔ§„"LgÃ6ÝÁÐ6AŠ'zµl*P¾Õ½·.ë|™}Q+¬Ç& ±úS´j¬°'!%|mç Þ\²DÃÕ¢·‘^ë¥Y{ç|*¨ /zHÊ76 + êƒ&}ÙlVÕTËʼnmuIc=²ûñ_*ÁÛBÂ|ŠB4$Ž&1’2ì·vAk/ŒLÏÁÕÄÂÀacÀu‘ÍÚª¾¤¬vê}}…Þ`¬HJƒ=š'0͉$IÎ §±x?”sˆj oWFû„ˆ çwíaË!¾5D3•ºSîðV¢0RŠS7jÙZn‹ixÓ†!Oê(\ò@NU<, ºå‡T?—xdY=¬éîFvåV©ùªEöƒ«ÔŒõÆÑN¸Àƒ›ÔgöR7-MŸtÁBpêð°ÖM‰¯köêêæ˜]H'H/´U{Òe zhùU¼)–1_gÞS‡O÷ù4º›Gæ²ØÞY#²Ü[#¾W.¿t­¿€íЇ&¨ßý´sÝYçü ÍözÙ`í¤ªW=T\bR_PÄ…YÛˆ»ÁÍçÝYë^l5Gî¬ó+ë¬iÖ«v2^*[£9ž5š1kBþfÍ=×ÀbÂaj[M±=¤ Lün7¼»ÈÀ3Ø-´û^¯í¤ G­Y>t]f× ðË ‚<=y¦‡NG Ïv§÷ Ïn Oÿ·|¦óæ=a˜ÿ¨7‘©©„¼Ö@þÈr{Ù¡Î?;ñ¡ endstream endobj 1193 0 obj << /Length 3456 /Filter /FlateDecode >> stream xÚí[Ko#7¾ûW:ÉØ¨Ãg“ rI6ìÉ"»ñ-›C[jÛÑÃÑc<“_¿_±Ø/©e{F2 >˜"Ù¬b±ª¾ªjö·7W_~oÂ(d!WùèænäB¦FN„L:üž~<”ÛmU¬®»ùáê7W¿_É‘ÀŸIi³Ü†8[;;š-¯~ýMŒæüa$2üè)N]Žtf´Ck1úåêßWßQ•2d"ä}³õj»a­&»¯ˆü—ßûÎ3Ö‚*-'¿YÍ«Y±+·×S­õäé¡Ü=”úa&hqïãf}»(—ü£ÚòhÁ?ßóM±«fý© ;š›)§GS©3i%üf¶«Þ]Û|‚gV÷xHyŠ‹*7Y?îªõŠÛOÕbÁ­Y±ß–<õÍãõ”ç¥G×<¥Ø¾åÆÝzà æSþ™‚ ÜõFÝäÇâ~S¬îÓ?¹Û_ËÉjV³á'ëÕâCzv5KÝmÖ¼EÑß\#±ýøs’ÒjÎ=›’÷€fÚ.F«Ø]‰†8ŠMv=5ÆLnx13™—wÅ~±ã,»Å>ñv;‹êÉv·aÉ¢ÝÈ“ˆ¥ññj=Ά¸ÿùš¶ aáù‘†Ø6)’4]í3Y0f4U"³ÂòÿÒëµt­r«õW¼Áo¶Ûý²¬u­Hl Ý3béç=f`Êë^êW3ð¥- ÛáB÷¸¸žÊIÉn¤W[éÓÑv˜kUäIA*Âáh%û÷Ìb9©,ì­ÚUÅ¢úƒ=.Ð3i:“YŸäyK 7Yï¡FŽDÂ[˜‘…óñ¹?Ï‘˜Ìk—ÊóÀ´ï6ÅlÀh• eka~Wn«M™”|Y­ªå5 d¿¬µ {'sϼ"ñÍjõ%CJ¢O*–'k¯V´h:šhòøѾB4¬ÍÓÜÁ¯º¾NW ÀVtpÞLÖÄËý»‘UÖ1îa.¼épÞG¦T¥Sçg«û‡š)ü|(h¬Ù(VˆlúšÍÔ¹\Ç Í+¨©‰R‹´xæz3®wøaöO峪diD·äI`Ûj^}€÷*‡Œ»•V”„‚¡X±[ß×þ =U»$†ñ-Ë}PítEàˆÎlîžÓ:•úZ×U$%PËÇ•4VŠ|>î·cð&ám`6oØ·ùd…`þíµµ“âñ±8fOÃ|$YÅÙüi¥2éUŸ?U ù¥¬¡:˹7¢ ÍZ> KÖ›¢øX°JÁ×ÓVy§äï£+CŒ©t~L6yâjÎvA•ìå0Z²ýtý Ü"yRÙµk2‘«Ú¨¿æ)¶7^^æõŒÛºá0K¹‘5"3˜ýqÂïÑCä ÒRДÖ% ‚äãb ”9v[}þ‡„Çíe=aÀñ©ÌÁ˦qËBMø#Þ%€8DkÛ u "ƒG€°Ðyÿý&p2@©ÆAzxç©ÊIá#@Êf¬»ˆ`)e}kÏC ’gΆ×Hq»]/ö»O×­Íiq û•ÈËb„;êa1¿ NÂxøkÏD£6ž´=o}D yžw„8«÷o£C= yôçóGX\Ÿ=Éôé̈Ÿ_¢¼k&¡±ˆ#Ô ‰“q ŽPÿŽÐ~;8"2wýŸáˆqXOØKàˆÁ_§)䕨ïãÈ×/Èß¶ç2gšß ¬œ]6"jÄ )݃V,vIX?¿p”í\ Émfõ†l@^M‘×1„ -#c\&Ìy Ú–É3oòWÀ—FÂ"/BÚh,áû¤?ƒ( ¿íf?fÒ:ج)¶øÃbK¼ŒÒ-x¥À‹z"4¯a€z™ò˜ñ'‡4›ª¸]ð²*AYD¶H¥eÔCLÓĨ3B™ŸÌ¡ê š1qžœÐìäó]4óͺ¨U C›É“x©yüNVÛ]ùí煮ÃôœËëD‰&[áÈÀ‰覂6æ>#û¢B‹±‡p<@™¢+o/Aæåœé“î¦h^ë.ÀB$UÛ3)š1êª ðg $ãdŸ?U3ÿ?BX0É‹Áõ[ÎCfÝAì7”¾#ÎAy×åvrCT8€Šó:`kŒ¨Á–F"ØRƒm`K­lib=:äíL>Xù,تL…kHYÕÄ„Ççkƒ>l ¥ô:a)Ê*žÃx‡´¼Yøì CŸì©\Ñf&·/äŠ$6ùR®¨^‹³–Ï0B}énb¤ëâ>É6‰ïYÜ7Yÿs>ïçq§þ$3µ 5¥YêdÀG£|–Õ‹€¯}ü\„ôŠºiµ÷MZN«}ó’“F9­F«I«½O¥í0ŒôÞg>Ï"=Lù—^ä™Bn£•Ï ÷È!SHµr±è÷,Òk*Þ^„,T—Í÷döÉÙ¼mÑ€³y:ÍßôK~Þðþšú°ò. J^¢>LK9•ÎnIq cÝÛCd— lèMŽïS&¨ š‹Lä—¡šcF8 úî:78î¡ÃCì*:3:¡ÀŽtJuåa5€/ɃAªÕã¢*7Û:RÀYæÂ\Ȉ·,¼Ì÷ì–Lè© Å•o;™­7›r›JÙ«9ß1hJͶ‹L±?¾)ß©è)6%7ªúEx]Ä®—©ý¤iw_úÚÛÚ¾·µ­·åëDZ@{7¢®hšŠæ°Íáì¬ç4…É„…å8uV=SP©KÇ•ŒJ‡¸´ kAíDµ„›“}¢Ã¤,Biw š6‡ÈBŸæ;œß@Ý“°ÜuÛ×tj vÉJ+dÀ¦ï”Ù|†²€—Ïq$Lí•Ðq) 4_á¥Ò¡ŒÐæ}Â'ü± Xë2Ds•yw°ÛâýPŠgàŠmø©x_±C]¦K]T4\¬)‰xйNR…EYlwÓ-RŒM:÷û}¹MGïÔˆØ-6WZN¹kSëÓ‰wÄ?Å&V˜|ºàF6££ =©'rX/ß7ù¼}¸ïù³Gb–¤@ür³d±X$¦01ævÄÏš—®¹7Œ”OPðn¢s™®Ö›eJ7¤pròæŽÇ"wÔHÒ¥fÿk–À¦žW¬êV•æ5vùaŠ¥ÒoçyE)ú¬@ú9çŸÑÊcƒP’‡‰Ì6YP–8Ú\“•‚ÅDmIKEC”›5¥Vδ•ÄÈæ0\¥%ªz©Å6=ºßFŽÑzz(WiV°©©‡'©Ö¸Ý­7)Á¡ŽÇ‡b[FÚvòíîKþì‹@Dz“. ñ¾†«DŽîÏÈóÈåhÄðÒËÌמ±¶–ag!ãô³ ÃWÀôèžpP©¨¾M/2û{-Þ¹dËü ±ú*5øàcÝ=•»ÿCGóN¢Ø•ÍmÃrÃIk[ W¬Ôˆ¦‰ÿIÿ¼–jQ_ŠÁH­ç¼>¢-ü¸'-ët_Ý?ùmrï‚©€ÃÖî¸VûLüuJ'²A ‘Èûé~æ9 "u‹xž–rÂ? F^„ª…~é>ѽñò]‚(²E«ýÁV‹÷Ÿw F•ºgßK!Äp$ƒWýñé14Á\ä.-Erxez| Ê)=îQ~>=¾Õ”÷÷[îâ•þÉ|èÛ?sè§Èõ]jޤøùX]îæÊ/¦ÈÉ•¹Œ;x“jœ S›à‘Jׇa¨Ã¤¬oQÅvÅ®8Mã5SO7m¦C¾â$Ž­º ^Îéz“s1*¢‘q÷fú8ÑNs©½-W_œøl!~ì`9ÌÑ*o¹bÇO]GŒÅb¤‹Ñ~>þ2#¯¿´°=[D?‰aùªØÉжu™2–¿™1ù9m(®"ÿ•Œq/E ,Òô3 {dþ„]ÂÃÆ¥C@Vd.@Ô9­=Øm:€qü¾DEÅ¡ƒ³¦·çc>þ'?RtêL[=ðÙ ]f+ù}QºØ9p#¤¹×Õˆñ‡ðí2©ú+øt.ÔÝÜñÓ* L8ëÔ°¿þVR!oOm̬̫wÕœ7àa,éuRwCå2êï¾Tc!‘Q¨OïÕRêsTïÝé¼0ô•Ð.^ô:Ú·qô³½û‰ïö nWwüŸM øMúKô>ºhÖªIÏëø“€ƒçõÁBÄͲHdâ«O0Gú¦m*߉n¡DtzÀ1 D‘Ã_7µ5¼ñŒ"Ó®+ü3¿uêúäô½Q »ã»áÅâðnS àtn|mçÞróºø ,Ì†Ò 8T…„Š®Ÿî ±†¡i!­_LÌ4âHÁ³Ï$ëÆ«C-ÙSÎÔ ›2 àÉþN“²¤›wyªÞ…Ìû#;Usô?úöÒ endstream endobj 1205 0 obj << /Length 2711 /Filter /FlateDecode >> stream xÚÝZK“Û6¾Ï¯P鲜ÚL¼0»9¬ãu•SqÙ®œâ8%±B‰2ž™üúíF)q&®•jSµ—ýB?¾çõÝÍ«·\ÍR–&"™Ý­g©b\©™‰SÆ Ì¬f¿DŸcnn½ûñÕ[;\ OrÓ’Ý­°Q·¸Ïš|õÝíB)û¢-²²ø=¿]H)£¶¢_Xj¢éÝüëîæË ñŒÏO™”ܱ–FÏ–»›_~g+xùã,f2µ³·t7,µ)<•³ß|ºyJ %B0)Æ: 4¯'¸*Ëx|®š³8smÊl‰–ùÌ'Óç,ÕZà†7œÅ…°,•’vüÀ’ÛçBG¯³º.òŒftôñVò(«³]Þ”#¦Òó¨¥L[í#ßÖU[gçúr‘0¡Ä,Ibfµ}I_É”4c}G<¹HYbRG*RŽsVnªºh·»ïÎ=&á,"¸Ì»ýªXfmÞ[küUÑÚ˻̺J¶Ç™vìD«ŠV¿÷ŠþÅSéÙ3d?CKºã]pɸ7Î;䔚¨É‘hšQ˜xr¬›¿ÿr½;Ü.€}uhémÝíZŸ543bãÃ-ê´j«z±„cŒªÚMá#NúíG èp·-<§{Uÿæ‡]ÓeeùD»¾:áê§Áʼ,i´®œO8/@=9)úÓG$¤Ð„+zXVΘDë‘æ>}l@eu7t w[íPð¬…ç©ÒÀó­YMv_æ~G»Íé¡,öþ©É³Úyÿ,*u<ÃÍ‚ÕQÝæŒÄçXÇÝ~ƒ¼ª{ŸAx´‚!¼á^ÂUvXL)Ý_½)Á}^Âç8jà¨Ú|óDoàhÞñÅ©ù¡®î‹ýfNóU-˽A ’uN^|?_Vu»s= 3™(mˆ Á™Š/I+21ÌZë(‰Øç•Õz:8æßg “}îÅ~@cxhÛªkIhŠ¡'ow”ë|Óeèž«æï+ÂZ–§‘9]LThA' K´ƒI¢}Õúɼ¥™#˜­Ö4Ùná€ýÔ¡-*Œ!œÏe±,ÚÒ¯/@’==f«U+Á+­QÑ?˦‚CÐ\DÝüͨàØê‡"o¼1–Cå+¿ÏvÂI¾ÞjŒÃŽ\Ï:iÑ«æ÷䓜öyêÔ ŸéTCNQœ)× S R,BN¤C×lç.PøËbtž\A !¸”˱¯rôû¢@22©¾‚@26LX9ˆB¸l'CáŒÝò‹K¨ÝFŒ#d˜`ª–dºSõ3>ÑÖ{æœü2«û\ÚÒÌ® SÙfSC4`º3Q~zb°Áûö<+>ÀM ÉHŽŠáa;@5 ¥^[+òSˬ´ŽÑÁÁ¦ò%\$N^Î’sÅ$¬ϧï_l [Ô5˜kˤ’cæÁ猀ñÝÖÛU¾ÎбÝ^»”DõC ˆx¨(N€úUì!MnhHéÔƒ'æûjä8í}tÉ|ê69&B×F͘2…f¡¥Jù77ûʵ*zãQZ4vˆ†ßQÂ&xu†ÜNYý…€Óˆ¿½+ñ€Î7$owÀäÜw¢g©€\2w1—àIpXjGÈ=® sŒq§oÀ _H’Î'B ›n“ȽÎ0‰ ‰óy@ò ~AíêbÝí—¸ä$m^œ|s>ò-¾Ïšc( èÇ- ñ6ïê¢i!O^-!–äì_Fúé牸äœÓ}WÝÛÞÕ]™_OŠ©cñA(vþÖ¶OKƒõÞ:„¢Nà{w8øoËÌž¤ç§©6@1ÅíL@ƒlåE—“Ü0«µ£”HïbAÓ© e:M®Á8‘,–jÌx—M\=s«ékð´ùBŒy6ù3º !]ßy9_! ‹OTmÚüÐL”@i™€óðþ÷>{,(#îПl´÷øK­95#‡·‰4ïøÐ㪠Io%Áû%'[ öªXæ¾!æŠwz’ô€ZߟQIìÓAX0ÕíB'³ôëÀ(Öé~ý v>Ix>ÇѦ*WùžžÃ©-¤M#·%`ˬðÎßwÕ”wTyâPyü•&®Ç-. !àFî{ =†›R|&ƒå‚‡òj•žD×ï¡Ú‡Ì?¡ã³e/ÅFy& J¥±—tÜ1×O%nì‡!šÔB௻öÄk`?¿ÏÔ'BÄ*6tH1¡+ÚXgûMNÎê¸Ê"˜©¡Aábãp, åñ(“Œâ‰Œ.%`Ó¸ÿLò9ŠVM‡z3Í“q:ŸH¨Êj;û_zÄQA’*[úùŒªeì0ï8k ËœpžL©Zá.u¦Z¸Ë ÓgsªNc™ÿ*ŒSŒqÂØe;r–ábA]ˆwƒœ§Ý…†ÞÚñ°¿N8” Ý*öësR´bÞû%Ý4"Ôk=x:½ÎBÇ€íôU Àƒ„{˜plÕc>u[KÐ9™qc —»¨‡ã1œœ1’Ö¼Ü:r,›³®Áë&œÉˆï%Íc_˜¦¯nü—ÕmîÑyóP´TS|© VUov…à3ß7‚“km_êŰoä¡eŽlÝ´4;¸êÄ!õwƒÅƒî’»KÑ‚ÂW(Ð`Ün’®8ïu5^WǨ:aè.t¦¿&º 8½- ûªŒÕEkêkuâi¡^«aŽ3'-§â鸦âöa׉c¬¬¸w>îulZwì> stream xÚÕZÝs#· ÷_¡ñÓzrâñ›ÜLŸÒöÚËL¦íÔ}Êåa-­­ÍIZU»Žsùë äŠ+­œÜIIÆæ— â€üæþæí;]ÎJVZig÷3W29s¼dÂA9û¾¨–Õ®o~ºS²¨ï~¸ÿöæ¯÷7ÿ½3b&¤dÊéðåÌl±¹ùþ>[Âä·3ÎTég/aéf¦˜VZëÙ¿oþuóÍ k! óBŒ¹oïó_-/ÕUøjÃŒ³}Z·Õºù¥ê›vû5²ûÎçj²L;$Vÿ-_}7WJ]¿¯úúéötñØîi¸_ÕÔHZ•¾¨iÍÛÏñ×õº^$b0ÕÞÍ¥+–5CIfsܼçŠ #Hˆû;¯ \èuQ-ت©C8H{¢öHà ñß?ÕÛE\Ô>âC‚R#Aq*þ¨ñÞÀH©ÓbSTë§vßô« ývUuÔè[šï^šžD‹\¢¼·M»mûvÉ…}{ØwØ6ï÷7ü]S-íü»ÅŸÛý¦ ”?‚Ê8ˆ½Ûí[Tƒ+V°RÐè˪ÞR+(À)'–Ä³î¨ âP£«ë µPèÈ‚–V{v7×ðîïæ¶&Š&üÚí:ñ;¸ ¤ÉPPY½ÇUÛ|îê%.³‘¯u,L³Ú5M¥}¥E6l÷+’ÅfºÒš ÀlןhúÀ§yLÂ'Émq­óä*ã·åÌZ8R½v%+}9>‡ù‘RV0n| ä€RØ}:F·Q´¨Wú®mG»»‹{¼Í­õ–ч×Ê÷+²!ø^‚yàB:&&Ëú±z^÷tô~º3hÇÏñœf'70‡¯ 25Û'tmšWÅmûp77¶øqF‹ç¸ÐkøÂ·lêÿ…m»®yXGO"Ø B=Ð#wÅJ­a'‚ 9œáN¶TòQ?öóz¿o÷_ƒF4ööpØ+˜Õ¾®º¸oôøøÙ„$sbð¹’$õ€ùÎÑGZ"›ESΗ͆DIj²‰|ÛàXqdXN':@nZ·=☌æÍ”8ƒs5‹À$\›T “AR£Hü†Õ °[9NÞ–÷ð² ž‘–yk.ñð bE+%kí©‡·Ñ‰ÂBªèáq]3êé6¢:ŒÝ§­FÇ ÈH¾>˜¿«r_mŸÆf¨ß®àc%“=õìºàÑ[ˆQÔ mo’Ùÿ‰–˜ÑÎŒ°iÅfBÇ΄žuâsU<â%€Œ¤L8´ý Ñ¥bÖû#ÉýYÁ¿šØš Ìxbó8A£d\È´dpÊMß%؃¯ü„uRïÜ„›ðGT:„è‚MùT).ú§ L™}=ÒùN)i©#×êç©ì ìÂ]ƒ¥øÜy>V‹IG.@)®½Ã¼&Ÿ=8ïèQGi… wÓCÙ¼Žƒ£^P Ú ,fÎ’-禜?(àpNK7rþ8G>&žS¨¾§þCèµÏÁ¡O²Ä‚Ñ ŒæV¹ù1]躮/ÒºE»Ù=÷u_6áão-Ë¢Ê2³ê)ÔÊ.„ ¤ Šg*ðíØøÜcÀËÔÜÃÑÉ7„Bae³A}áZúŒeç»øUi7FH뢕¸*”Kà,å{üe\Ÿo›v}vàŒ(=ÓÚAR..ÁJ–•Nž‚ŽŠéÈ=J+ @æ§Ó ˆN yHa†'tÉÒù2b‘ /Ò씳Sdìe £!†óåªtÄKü;Òé¤ÓN†ôL«±c¦èÁÎ![ùF60u~||Š¿ àç|  xD&ùÛ‰ƒfÀÔ¯€L@É¥ôa§@B3Å}7ö÷z¼Ñ,Ô¼çÈå}͸§ç1Ð/1Öœ:òeõ¢Á¼0„û0ZmieŸ;ü@)®£ð»ÔYÀ£yÀ_*ŠÕ‡2Wy\¼Ã‘ zŽgjgÅ»0•’ÀPvÅûÇD­™Ä ÅzüïêÂu- oè#beÕ«¬Å•ÁlQƒZTH0=l†ÿç<®td5(Ï!Úpø\éãÊJZúWüƒ,Á?¸_'Iň'º‡Ú9B¡bµ«ŒÕ.ÔNGœ% ѵÓx¹¸ZYf¼‹›ÃRöõG°ý?Ì•qLù#t«LªÎ”ó^ÎÕO[2]ºkð„ K #ž¸_t¦oÃîÓçž@˼¸†Z•ÌóS)¦{.í5xB`Ï!îñ| ÉÿíW· ìeÕÄ{¯ʪ˜×Ô©ðF«P ydE·e"#pË1p˸Un™÷«ELÏ8d, \f©.2%‡Œ)Aæ;ÜA4nØ]ÛÅŒ= ‡´¥‚j+e„êr¢ )˜·nÿžë™Ò¸\¡ž‰¤ŒWªœCïßG9óN¿‚ÞS{¼dC½òçâ”»m 7,"}>5ÃŒâíáJ Òßd@(®sÙ2ˤ4!&8.5D–¡éPC—›ÏJS¥…àùY*Ò)¾é«ýS=UÍÔŠ©C´ñ—ºköõr²(™î<¨Õ›€™ÇE6¯ŠnXÈq´»¼ÿtÏÕzVáÓŸ@ÖeEìä &tLÃÿå>:ƒ-õRÃÿ_ê}l ãT¢KÏX‚¥®§]k97lè¤b˜3߀;~FÕœé^š~•|ö;…¬RЃ˜!ƒ×;Ã-¨ü/þž, /°0½Å þè"»vSýå·"æ¿\ÀÓ*ÝçB—Ⳛ:Ëágò­ªCÆL#ïi'àÏuœžˆ¯²ú€)vûö!Ta±CZ†¾ XôáÚ×ñ®É &÷Ø¥H+=·Æ˜OVxÖp¦ÞoÓj ì j§¬$ΰ8ŸÔÂqrà„¥L‚{ørl4\0ç| ÄU™Ì[:4ZJfœ? NÃq‘žÇîý·Æ„YAÏ•pM\œÕqpôø>5%b,;b1:DaQGsÕ¾VoihY™êH&˜ˆÇÃ…ã1Uão±Šë\\ì f…`V:l->(ÂN^˜Û…^4Ÿðž‚jõÖ;Š.2bXÀå1’Ș§H"̆H"0‘’  §ƒOàÛ\?p©¿(´Ü3þ\x°5Qe@Üd e¼ËÍuª¯qwˆÚÀtY@p¥àTްúl"# ™Ð ©œ-õEwÂ1¯} ¥KóJ&# ¸.¹¼ Se˜‚ÝŽ˜R*3$H&ůÞxžhjBªñ&¾úlw1…p“uR—×s|âbpVxºJÔÑpx«ðBB‡u|ßH½¼<‚ýƒ7J‹ÿûÄ÷ðö‹zé¡%­îŽVçnG¦ûÀl>³¢#GE:Z.¡y>‡%g­’6È‚.¹ü+aA)%Q¾–CKnÀÄxJpPrÌ1fÐèŽ5)TÁÁ“FÃÿjݵԊ·¨"~=‘ô‹F$8¦ƒiâìáí1ö–Ïô\1 ÄòÈ ³·€ÖæŽçF˃§Rš‰otlñ1XÅnWM¨.@""¨UËKÔ)Ák(a¼¤­w]³¦YŒQ¬QØ™ hL0ÝÅ÷ZF‹ôfÈŽªáÐMé´ŽõÃÎc:mm~¡=Z3cŽêð¯¾]qùÓ”_O±ÏŸ~ÔÌe¨ô^†Ú1 ÙÞ—û„ÓN2ŸÒ‰«0µ’Ú1O:,gX—üž xf%³ ’D_†|:u:éô—ê$^ endstream endobj 1223 0 obj << /Length 3152 /Filter /FlateDecode >> stream xÚåZM“ã¶½ï¯Pé¤IV0ñE.ço²•¸ì”SÞœl§Š+qfX¦DY¤<;þõy)QCifk˜KR:$@t£»Ñýº¯?¼ùâ½ñ3/|ªÒÙ‡Û™óBÍ\â…tx^Ï~\ln´Zn~þðÍ›¿~xóë9Kð“3o…Éx¬vv¶Ú¼ùñçd¶Fß7³DhŸÍÂÈÍL £ZÕì‡7ÿ|óõš>^ú!ÕªÜùþ)U©œÈ@n²RK¡åÙj×Åj_äM1BÙ‘H7 e焱fHù6_µõþK"üÅûìd´QBaÔ_жØo œæf©µîä„¶9òzöy[ðûú–ß|Ì÷û²ØóÃ.ßçšLÅÙRšD˜Ô ¡…´’©½¿Éô¢Æ&Q‹ö¾ †^¼/óÕª^~·zWƒ•Õr‹_xÈaw³TÙbHÓÐݾÆ·XëÃ>¾ëçÙÜè£9zƸosƒ Ü.þ¯?¶9Ö½æ>‘Çü—r{w¤CKK†k‚ðJžtIà› žD%·8üa)Ž€ ³¤™‰Ó× @ Ÿù¡dý[!µÇL Æl®[¼J!e6Y•@ ‰’½lðJ{á`† ;«‡„ÙÞ笃|»î•…?K­È¤ÆÜ©òüÉ¿;}ž¼›7ÑèŠý% êŠÓj‚…hð$ÕKh)œsÐ5‰*Ò!a^vM{¸ ˜ X>6üO‰M>ÜÓn!Ùò¿Äµv‘ïvùSN-æ÷ÆNÀ©MœðúLÕÝÜlÙß• ‡ƒ½YnvU±)¶4¾ÍÛ²Þb>…Oèt,°6I«T ^!u×»ãÐî]^55· yŠÐǤ¼[äkL,mùíý‚{;n©Ý´äFïù >,x—“90¼ÞÖm½íŸØbà{xyî£oþ-¨¢*׫ÞÞÅžÛ::ó–õG½E^q«['õw½  )þÅkú˜ñ±ƒ!‰°2íFlFÜ‚“Òà<µ)¬X}¦M ˆ)— ˜0•…y]õw¬©ÌLAWCö S è^Þ¯ÚZáàq¦ laÝÉeöx#úÒFHãÏÔ•]Ô–dͳÏ$Sh£-¬‹ÛüPµ;Dúj/ ϲnþ ÿöýJð€¦Yrò Z¥ØùúEà^\ø  #Íã˜b z9H¨ÙÈ ˆK(93êW¢)‚æ{5UE¾ÚËSª¼âšdýpÖ>#á‡Í/àHüI(J.΂)K¼/hÀ¾Ô_šgðe UY;ð‡ÿûðÒH–ŽI^/½ÎJ³°‡×ÁKL…fÒÞ?/3ŸN@–àeFŽû”ì• „ƒ‚Ô„aÚ„.OéÑ%TÀž’uУK8fì¢)Ð¥iæ&X‡O)2Ë ÐÐ0‚µ¯&l’Th%‡„/ÀËÔEx ŸbŠ9þcK´Ð¥µS˜¡KkÎ$Ô£Kâä]jcÿOÐ¥ÀKO¡?íá¥'x 6îbgD˜¾G˜Y0ý ÂÌ"bð€cÓŠò½Ž0¡¦ç¦OÒ™uN@^¯E˜™·aªÄ¡À•m«1R¹)ˆÃ³ˆDž¿3‘;ɲu(cÎ(ïê‡b e/$IzežhL±ö#ÊÌ:”éOQfÖ£LFÔ ³ [ÛOdÖ þ˜)Í ^‡ž®ë·zjÐJxBìé„FZÒ Ó˜s¾ˆE*»øÌ–»Š‘‰³‹\’E4#@–6•6‹,çÕî~ħI¸L., ³¹®Äga$ä®]¦RøŽãW=ZüÄ®ƒð¦ iL6$ú8"~ÈBú^?ßí}ôA óÚºK="žì²×ˆ ›¶ØÅVù;AÈaž««zKn°d¯Ì_³ì´ÖD™Çç/`6§zÇEíõ ¶¥çûÄð†a©!ºŽ9æ nQp» så½P´Ï…à’¾&Òcàø0“4qß>Æà&ʪâÖGŽLü°Ê«Õ¡‚Ý®ã°û".ùˆŒŸºOÓWC Y*¥á ΤùDìÈéì±hq-»ìÕÙCÁ­ q'¡ûÈrÌEç»}¹É«ùh4ûž¸©›¦üXE£ŠaíP4ÑN¥95T*aaE*2‰sü”H÷Ô¤©Õ»9fáKZ«¡`Τøíˆ #”—l×ËNòçlœ‘>¯Å7ljøùL<šìú޳¥Áî§ûöû&à3ë{¹d±Ï×Ó³¼)·ÃÜñTày·ç6™*6ù§Ë¬æŸ†Ç(/eÙ^àß˸}¹`oUg°HH#¶ ÜD•ª£é’ÏÝÊúhKXÒ¶˜TßËõ!¯–åöÈ'rò÷ûhx—íÚpâ\þüõ„ô=øKÛ,‚?¡¹iQ%Ú˪l9?ŸÌšü¶Ø/ÇS•§âžo8Ý8ÏkáÓ³š åÌ«òZ„{€Zš)qi<%š"Å’r ¢)R¬!IÁüm´ôCŒÒ$¨»C¾_ýÀx<ÊfÎãú=2ÇVš)J:¤s@ÄŸkq¼— °<ÙO·ð˜77ÁôÞžmã“­C6Ö›iyÛÅÀj,ÃÕΩ“¦é«˜('¬¤™Le?1í¯þå9ŽNŒ2"~=F!›0rÈÄ( 5H9M§ ‰]c­Ò|¡h€¥œ‚¢¥!½¶®ÆÌS[(¥7Ï—{’à?ž5Îν}†i¼ús¦imÈ.”—Á<^a›6:µ˜)Ab§>Ë6+¤ó0a’LHäƒ&Æm“´åõ4Uøäæ˜m"ÿ´ÚMAîתtHñ’uj¨ôç:Ï|µ*váÆI0ÌwdR9–l¿ýáÏqÄ0Ó» Y\;ŠÃ‡}.ð8vL/åO‰Ô‹rìPßM³)rlšJ§þ9öDcŽ= :b7Rcw@ƒS„1¤ÒIÂpÆê*)CŸØG1U±Ï·«óœ®y([†q=8ëŒá蔊_áÇ:06‚ÖöÒåó™…våhB/¹ÒJÿõ–lò‘öEUpæÙ• ÂÐ[ú·‹ù¥¼©¡L  v¸×€#Iu¶,̤äµR‚/H•ž‚&|EÍÇù©”l‡²›P QœA£8<œµá>MT×O½äLŸºc]„Z\AëZà…BcV‡Ôê8 )u´ƒJ=­ñàÝÓ$UÅ«*JöiÍ6>ÖÜÝCè!Å©7@¥Ž f.·õ~ÇÝÆIºî ¢ý× éªhšn¾|ÛµbQsx£íö ä‡}+%Î ®wà±»Þá:ßè,M 6üëïî¤J‚·#¼KF¼¾ÂîE¢ÑíÞŸeÆJðRHßÛ_Øš\…ÇÊR¦¯«ƒ§p²Y8¤óÇË»ƒnd¥Å' šZ‘œ ˆ>ŽAt½ÌLBhß8=$yŒÎò¬zj®•Üú㈹´ô™Øh…Ö/ˆ2^tÝ­ØÑ±nçNjh½q±Þ*á²3gŒ˜9^?Ýû‚ª’cÁ;ðK"3M¼~]ðFRK3i‘yóÒRuˆhEU‘‡ô6–C=íË»z_¶÷zLƒo¡×¼ŽP]|žù³0ɘåö¼3}êØÂ wVH¤[~ÕàË=_!XBúJùÓ¢iá§Ú¢¹pÖ\?¼NÞüÒð¹,sL¯N–Hïk~%֛ݡ£âp×ÕªÀ1¡?b¹‡M¸¾ŒxŽF»oø ‡Ú«Ã~_ôq/¸NPÆ¢ $åsD"Þ•gÉ·c‹ºlKF8­¨ŒH‘˜¾âjD‚ý¤d˜Éy’-ëÜeRäÅPÃÁ j&!ªATŸ…‡¢’¾ò‹wñ §nøÀ9ói™N·³l±)ïîÉ&Z~ìÃ.=ÜÕ ¿ GÞY4%z›nÊå?Ї¶Ž]ÑÂÅÔdñ·“ëÑ®ÞÒÉ6ùŠžïù#2J3ú­º›IÙó†qBc}§Ñx­X+:ññ À#bÕp%¤ü=?^¢ìªÏ17'×éU6D=ž„ü=ŽÎ»±›²-â¼M±©÷Üþ•¸EÊ^ã÷7C}4cäövlK¯vð…ƒa½Í°“'!µSÛÜó{$?ßÖÿ…óš—U¶õÅJÊ©¨‡å».]\ ãu£GŽÓUÅãÆú’µrènÏ…@°Œ1`„ƒ˜Tu1 \zäûµ™ŠfïlçHþN5v† endstream endobj 1232 0 obj << /Length 2870 /Filter /FlateDecode >> stream xÚÅZmÛ¸þ¾¿ÂÝ/µÑ˜'¾‰dÐ~Èz@×¢E¸wW@±µ¶[r%9›Ü¯ï ‡”E­6{É-X½â ‡Ãç™úÛ»›o¾Wná˜ËE¾¸»_ÇÄÂdŽqÏÛÅÏ˶܇Íê×»nþzwóŸ¾Èà/xf™qÒw–F/6Ç›ŸÍ[hüa‘1éìâÁw=.$SÒÀÝañöæ_7ß>ʹ`B¦b?ÍHä>QW‘(SOEÞ—E7#Uqæ„»ŠT¥™ÌóTjß^£Ôo¾·£®"gš Ë÷ù~eå´«ÞU‡ª_ æYK)—ý¾-»}sØÒã}ÓâÂEkާs_ôUSS[sO×#~~>ôÕéP•mÇPöbíË]¬¹d\s’ú7ü"O{WÌY¹È]΄PŸ³Œ€Ž.µŒMÀ0g¸):z€—^utݬ„Yî›®¬é¹¨·tÓïËÐãܶРÓëñ…\VõýŠ/¡•/½íàÁ›ÏLÇ>”]+êxG­rùa¥óeq8—¯ðÙ¡ÀšZÑ£ Ûr0`s\“¡%ì˜ibhX¨rËVë\dË;?¤(UƒTйÚÒ›¶¨w¡‘Ú Zbk ý]s «î ᚑ‹q>ö1X¿LæÑÉþL]4O†)kc§AÊœ™L-r+Yfä:B"PJÇr@•Ü fz $l%-øUD* {-•8Òdàžî*B Ám* `f™¸Xá“U²ÓEr±ÃŸf–Ñ0£†¸+á˜v:v¡½…îÓÿÙ–÷ø÷àš´!#×Ö‚eV¤¾ÍÃŒT¢wƒÛý’eü±>ˆ,Üyô^ð À i±ö•¹9χB?3ê†Ð4ÈÊòÇ’,S öãh F¤CË:­vƒÌlfk  ç{~Ç,€ zùcU£5Œ^¾-‹v³’|¹§aÈÀ8`i îX|œ#VÎ2tHWõ"Âɔ߿,Ìê ´k@Q@Ë9Ö±0G­õ÷âcEÀv$V©Ãü·ZÃÿ²M¹¥ ó®›v›7 óæBE}[y¬‚^]_ž:z[ôt- ‚zzªú²õ,ˆJf¹ ~~·o¼:MWÕ»ÕZeðn­x¶ÜV]ñО<\ckÔ_=ñö¢g‡hl$ø”Îî<Äb»¿Âç'XôÜ,ÿ½Êá?®! tO­oaJôæÍZ3—6¾9ìš¶ê÷ÇЃÞVõEAœeæ6ìñt(Ù"£»<§° ô䫵6.ðÜ„MêÉ:Gò€["ƒD†”ØÑCEã—;¿jÐm ¸¯B§lf7KôWˆý,Ô<“ˆ|hf_e†Y˜´vŠý"xczOÆ¡´VÑñ7óð*2õyxiþÕðª´KáÍêán"¼†T2&õñ1æÂ¾©Â¦Qle„m"èÓ‡l÷¢ßàe¿mv3á&`X ˜¿qdÖ2~(Ƀî¡¶}Y—ÛÉpT_E4°2 y"Ñã±Pk2} ¡"ÓŒ+‘J|ÛÁ6šXÄ$†xêOc©-ÅÁ.Fþ/ƒ4úŠ"Rxû€#ã¢#”¢øäã^|˜¯b 7ó0 MèÙ7ˆ˜«Ø%|”è‡Ï5]öÕ»í'BÞÊ¿ïÛ·¿÷Ð-¢R”ã©ôòñÖƒjØôtS€"§~2ô/Wmßz®ƒj º‰2ª˜0 sù¸)Ëm‡ˆŽ{‡‡›@6 LÈð㜷¸¥mæßžZâ¦M¹=·¡' Ë\Ca>ÅÿŠ»)—a·Ûì–nöeáÂk¤éE›¨07ïD!ä99d:f”rèKÊ¡cÊ‘)‡žP¼¸dù2vš£ û Ëóç)C«!&}€yÍ£—Ä¢|©¹†€É¾(,‡p2Y ™‘¼~½ƒŽ_E²’°1KEÏ׬W¹ŠTmÐn*5Êc®TôvŸçÊÑ’}W®qÙ4Ä#Êô8ØÒ]2)ŸbGˆ>Cü éQ0$ W G*çf°7AÔD*¦Sx\C¬ÖLs%bç‹CbjœºŠTc˜€Ì5‘ ‘ß /J`Ï‹c}yâñ{SÎŒì›LªÔ³(¼—jð* ÈàÛ#0‘os‘\ìSäh9Ú!¹Qv‰€Ì‡CƒŠz˜öÄ®†Q^ƒ„AÔ”Âém‚ßTÞBã$ !k;ÿ~# èoŠKJ"„\¶eïÇE¥ñ¹o&ý»T ƒ¤$Š–Y"l¥ øÈõdB£z2"%|—ûÇNsÕir–»ç¸$ƒH/žKt)°‚ ê‹Bú%Ø ‘% F1Øzb¯ki}Uàb`°Q©Øù½®s 0(¯"5Ï}í'‘²¼iÂe!²Ÿ!‘µ† zئ/L»²Kýë8DÎQÈÁä<ͳB0:S'‡tƒƒ™Á·„/;)Ñh ^lù™«lçNLò:’!d&•üqåÖGw×jÀ™3™ŠÅšÑ‡q]ªÙoŸþ°$,÷-ÈXº‡—>[ 2_ö“•ôÂ"{À¢gÒ¥xú¶ìûºØ+“p "(^o?yÜïné2¨PÓa‡Ow†À~Dfȉì$'²Á©áæX¼§á',2‚w©ÝBãn׆LÎ,Ë9¾ðºWea˜æÜ“Ýv‡æ]4Ò¦ñ¡|°Ý•õ&ww.õ ØK,ª)¥mÍì@L>Ηæp %£eý‚´do¬1ž.EÅØ~[7·l¦ŠöϕϪº ÌK_¾{=C+x¸¥„g\ðH.܆7•_ï§\O­Î‡Q…tF½5IýRõ‚ ¾¦•(~ß&¾žQgˆ`._EÖ¡žÚÌ…™ ú 瘲æeg¹@ÙÂú¡„µš?|¥»œ qø`•»8O:ĨÆDŒ!æe2.t±æK1*žãYlˆë¸¸ë`Èà«XV>×ÝùtºkÀn@ ±÷4òe‘-o)2ž?è]›3)óÇ‚SiãGâÒD €X¶Ü}º%5üvCuŠmqêC)èbˆê°yØ¡pŸÄÔðü@vã‹?ÛÐ?ÌrlmxŒÖÆÛhcøîbch\ *Š¢zÕRñgRJÅœ29A¿ŽŽ| pêr9üŒ9uP§nHN²õ®ôÉA„²±¬õìéÎ6lpþ”›µÛnüûƒ¿dÏ)ö»õ:µÕ±8¬·çâuoUõ”B ú6,qúËRÒÐ{t8¢Šç€.œþ´rˆ÷ÇpØmÿü1 U ࣙ=mXn@e˜Í^vˆ›R *Ïâ‘HTp"Vâ麸ŠXÈlœv©Øª®æ¤j,³\GjŽu–‰TbLVáÒÏ‘,©NÂÝÀª¬ÉH)<à †CLâ‹¡”‚EИ§…öz[mCCaôa_¿úÊ©UbŽÕoñœÏ© âÁý¹ 娂žƒ/CÏ ©¯ÍzÃ@¯èœñ*ȡЀ(ˆ½§!h7õl w†Í XŽ!« ?z›]à„š‘òJ¶c¯( ½o›cø€.§¶üP5ç0ÊÄ*Ðð¥{[°h¾Ej@‡c8UÆNWãS©$ÉS_ÎÌð%Ñ&ÿ…›¡TÖW%O‡•ëy_ñ3 ^­g†¸ô7ÿc©Ï…aª×‚è4êœj&Ç^<ÖLN¼ØÛ™»œ9 ík†^€É#œü._÷v endstream endobj 1242 0 obj << /Length 3506 /Filter /FlateDecode >> stream xÚÍ\KÜ6¾ûW4|êA2 ߤ‚=e‘ °@vã[’ƒ<£ñéÇX­ŽãýõûI=¨V·zÜ °ða(ŠâG‹õUÙþîÝ›o~Pù*Ïr#ÌêÝÓÊæ™XY–gÜâùqõëúÓë¢ÞÞýþî§7ß¿{óñ _1üã+Îlflî›K«WÛ7¿þÎVxùÓŠe2w«O¾év%3%-J›Õ/oþýæ»XÎyƹI‘MQ7°RgZˆE`¥Ër§°ïïî1ãýq÷8m1N-Á¶*C¿Ïßê7?¸ASi2‹¦,Š¥Ø–¢”ëâ@X¸3#ÖdZºkF,²Üå鈇£Ð -ìéˆÃ`žöuMó|Ç×e(×å‡ã¦¨C‹jW5U±©þ[Ö tu/F€.﹄XyèòÝ3}ÌÄúÏ;mÖhÿëb÷!¾ X(4ÏÕ!¾-‹M(í_šj¿ åö- Bå*ñ6€FB©c$Ó¿f$¨œ33Œ”[1ÇH«Å‚Á¹-VÈá8ã{Òj†° ðÛA¥à™a*…ÿ1ÅF.“Z-ªy†°#=GÖyË»¨ã# AÏ Ê8˜9Ì­¼•í¡¨Is=6 À°+ˆ¡÷DzÓp¿›¤‚¯¨LâÛ”¸•CàõJRÔVg*·K°"u%ðÝ5¬¸l¤Åvž—€Ž¼˜@_Ë `·Ä˜`a>ë"1‚°Û®ñCA]⤱°.pcž)á–€†g ¸=•Õ ™4-3Á'3i:Oø5º-îîùš‚Ò±M@E¡gJj˜¥Ž)µëÞN3¥A9ŸcJ©ç™Ò,°þöVª4\ø®8ºšãJiİD–˜eŠzž,ù"˜šh+OAÏ’¥Íž`Ëœ°)ì¹Tè’ÙË©¼v|a*/Ï„‘i2ô¶‰ŠÛód¿;@’ E´49íœ@­ð)ÑôÒÁV~óÁ–›cC:ßKØPŠóiS“¦M+jè±²ÿÇ!£2ÎçÌàCêJsq.ù0çÃ%#&ÈdA'P7· ªÃЉê¶økŠU&Y·?þUüUêÛÆÌ?E0ÞÞ‡çDyÕú oOØ¢üx„¹o¨›Ï)›V/›ª¬íuK5EJ%´Ç–6TËOª;£·6Ô€6”Š[k”M¢Þôþ7ÆØÕpJ<ˆŸæ.77Ã;’_) e7ü&«k(sß“4—Ï($¶„²(v#Ô3¬£áðÀ.Š j¤IQ§w•¤]¥Í"¨ØU”ˆLçZüu¥n¸±j¸›C0ÎG¤£Ú³:5$¥NC0HE˜ÉŒOm› >HÁ2~:ž$ÁÊ㦲+C‰YG ¨©„í2-âWÌLLKeëu?h) Ê úȵá0~8Æt/ŠºèüžñÝ=çB¯ÿSš}]Dk`õúççâPN!££øL»VþõâÕòaÊFs(èUæ2ÓJÜF…ƒÕ¾+ʾ· ]‡êý¦œÎcr¨ÝØ`%ö öK½îv‚#4qD§Îßï Ÿ×•çòXW‡¦zˆaS³õUH0n>·PC Çs»6è&ëŸã:vàp£ùèz)©Rm²,>´•Û]µ 4úKgb|ÝTwmƾ)ËáèýÏEüt[Dö¢‡Ã‹ÊÊò1<_Úæ±Ÿv"UÏzTMs®·Õ.ê oùþ~¾óažŸ)K ÐëÁ‘¸„mG%#Àº •4eú[„7ö!p¤Êõc¨ó ð\ìâ'ž6c7¡& <ÂìÃÛ‚¶0Ýe¸0ëw£>~c\m0Ïð´©vehp(‹:Œ Ãò?”Ǻüå<ô2!‚:ݺfýâ·®ßÅÞJ¡ê¡ØlhA¨¼Ý×e(¥z‡ /nÿã^ ª\]:Mfò}Ñ=ô&£Úµ½Ä÷й¦.ªVͨîÏj¿˜™èÏWuñ?Ѐ…édüäq©"ˆ…dêT§NE¿æø»)Ÿ¿lýãÓèû~Ià™c|Ái¢êÖU6-ýæŽÃ,ŽÍ~‹±<´‚Ë’©âüA£ÆAÎÄ¥%ȱÚ}Çúí5µ~»Û¿Í¦Dù³ß;‡Îp ÀßNqˆIO ô¼e0nOí\ ¨hævûoi¯v~­êeÛ+ˆ*š·nÓøÉLøh,÷âµcñæ‚f‡éÞÑNôܦ®Šð<0 ns/C“àó.ûáºòÄ,ODŽÒdm*•¿‚2…‚×tk65P&uÅÛ¼Õ5”¹v¤Ì»]€Ót ɘ€|7Â}hö›©X.\`íÆ„1yÞoG[ð‘ˆð@”ý¥è.ìBì¸!õL8ÒÜ_áºbJséG¸äÖÚë—Q øîÚ.­be&WñíÐeí9~ɤ(]Õ]u T7`zŒ;ìa¿-¡æ°%«Û®Š][ªm)®Ÿ7Ü®‡»¼Nˆ&¡/j%¤ð·uoS™³PbÉ}Æn~ U£åÐ Óº_'’ÂÀy‹!MŽ-7JB{g-£Ð»+ôÜ* Ýz.êøâ±:xF$•گ}Òaoƒñ®©ë°»>Ò½À»’÷¿¤0½ïÚBhbÏûÐóˆ¦ýµ†I­aú_k¿µ'ˆòô‚°š`Ú>«>$*„ºzêÒé…+ÂÐÊI…Œ4Xm¦3§o»$ .¤‘Œ튘Ií/l,m¸d„}–(¯#ãHoöy#R`b€¿/Û=›x`\Œ²Ý²Ív«èBû›ÉœáÅÃf3Õßüâ{Âô³':a~µ—Â-]C_ÂI¡žtŸ›šwR€Ž>J=ë£ÜŽ]”öóE€Éûts—¦xÐô”CÄŠB˜,hQ㽪›aAº_+ô“›c"0ƒi¼z9•Åsµ²…×ãääj¾ 2Ø¿ÜGòË ~t{·÷cØ„#Dô(P $& AO½ Uûq›'ÍGyýÐpäê fSÔüûþ¼§#ÚC_ªzô…ZÄ%¶g–˜ndÁäZdJßr—ZilÙ\úžzš_ãÜg5—€ÎÃQlÝ-²_[ÄùP$q’«õ‹ré<ï厜ĬîF —¦ ÖºVx%6i»+Ãâ–uðw˜ ÞÇ`ª¸4þ†›w@è)lT!k\¯Imš¡š¶ýäÀië®ÿMÒ9‡Cå^CÂygîîU¹ò÷œ¨+ήР­,Œù"ØZ3ïE'Øg­¹†Ç&ãHoÎÑŽFüù‚Ãqéw£÷Z"Šòý~ÇÔ)»º|¸Áòþw©Ëm¸×œmŒî«ÁmÍ OèÏ“3ôÆÌ †„™ÛÜ8_ô{íÜù>„S˪yž:šgƒ’-€)ÑBéÓ¬)ßÁ‚‰;]{G Ér³‰ [l>ìk v›f¶˜@× êÓ3åÒbŠÙ'ÀÂ_ŠëCÓþ® Ícf ˜úˆp)›àŸHÁÚèKôyV)xÀGÝÛ˜Ò{}rø›ø€•Ã)Q‡ñÓ8%ë§4¨ï¾;9Œ ^Ó ‹.±LÅj7ê¡ùi¶w D§2ÆÃm:ÏÛÛa¡6°÷ž|ë}†</벤_'u?kÌ6Ô|ª6±¿â}è°nÚ7Ís赈ÕæX—qpïÚ>;Ë@MG¿Ú`¬ýßüšùÜØ„Ï4®î Ë—§«WB‹™Ã,Hü»ÝÚvÛýgÿ½ endstream endobj 1156 0 obj << /Type /ObjStm /N 100 /First 968 /Length 1332 /Filter /FlateDecode >> stream xÚ½˜Ín\7 …÷ózĉŒ,ÚÀ»AšEÛ ‹ ‚¸H }ûÞI[_ß—Ù8鈤ÄOºTzW)­ô.³ã_µÒÅÑ­:{'-d£ô¦Z˜–¡^x†­H×è "1±M)Úú -*C\ÔÂŒÎ2޳µÌ®Æ,6{4¬x †W µ!Å>ûDwã˜Êf´C‹ŽQ¡ÅÇÙhÁ…ó\¢ïh„"Š ±ÆŠF4}Âúh1h˜?´Á…ÁÙð0bÐM˜3´ÝÐoAæÛX"Áo ¶Šš.£V¨k+† n^¦£‡˜vÓ˜Óq_&¢Gì‡ÇÖ·ˆÍ©,YpŠ•ÃÚ›ct6 D®¦,ƒ07ͰŸHÇ®†W[¶*ÜzÇB¨a†«G Él0‚¡u´}¶è9o±¥mæÆp†.$‚°iÌ« +è b–Èa7X{ä ¡O‘´¸ð€oä Îf aë1 –`.PC®ØÜáѲK„ {xÃ^ ZŽV0BÔÀbçèëAe!¨Ð‘€îe.r/B ´ÆÜí‹ vˆ¢Ï#p1Ø¢Ã#È@Šز f´ñLñïú{üÅ»4ÁßZv¬÷妤5Í©¯ÈVŠw\÷iB* )%¥[ÅzF¥’Ü¿,¥ùùÖ¹ÛèbúöЧúÅôÔ ´–=xm¥xbWÜö©¸Wš’¢è²”QV®Ì©P °¡Œ´¹-yþïmñÍ^nD'¸¡GpC9n(ÏÍFŠDà5Ô3R¢’4%%Ô#â))ÊjÊ(ñ©Mä NëïÈ¿Ì\ Ón—À=ÀJö0éÙ§û ) Ò”UÅÁ•A©ØÄÓÙRRê5þ4!eTdÂ)«‘žüÎn¥(ô§ê7~»¯@½˜M9Á¦<‚Mɱ)ÿÉæ_­K¿ endstream endobj 1255 0 obj << /Length 3382 /Filter /FlateDecode >> stream xÚ½ZK“㶾ϯPí%RÅ¢‰AÂÉ%vâ²].çá¹y}àH”D/%Ê$µãù÷ù ð¡áì®=Jt thô×Ýà—÷wŸ-ôÂFÖH³¸ß-¬Ž„Ö‹4¶‘HѲ]ü´|‹tõóýwŸ)QR‹˜INõ«µÖz¹­OêVk¥ôrW7›‚ŠjÙvyÓq±UOLB‹qƒ°òvݾ£°krwtë®^£qýàä¨/§mÞ<ñTÍ¥*ÀGð€²åÿSÝqa[lš"oËÓþjj/öÜŠüÎÅi¿s±Y>¬°†'.çwW˜Ù»±¦ëèg¨IìN àÁÃÆ£uzêñpê(ò„f¹¡Ë« 'ë÷P,qVZ™åW‡šw„H£ÞÄoxØ¡hüD۲ͪ¢¬•—ÊÛ!eÐp” qqb_©‚R¯5f¼ÃÞ¯’²•[?6?í}ÏÎ]&)ýÎðÌNE0W}ö­¡7žA™ÁhdI¸Øoc©™ G56ÍQ"L šeEdä"±I”¦êC†ISìÔ0M¸)€³‰­›*Iõ@K¯$»[ {¨t:e{~ 4à$½ c££D›ëõ¾ˆ‰ [|Ö‰H"'SÖ|¿¼²LF“Z{-øësŒXë4E2½ìžQ¨4Jµ 3•§Ýó¹„b!I~ÚzWÆÙhø2Ûb—_*ïàà’ÀfT—‚ûܽFs<³§‘Îz]žA:¥& ý¿hÎC*…€zê"5g¥`›$Idô«<‰#“Êͤµè·lðCY•Ý žËÓŒ™Â§· ã¥O$èõufGMcgœg²çU6Û¬ñ‚¨ùa:Böº)ØÜ'È~Ï(Ä6v0ûÔ0òÖÂdÐ5ç8ÀØN 1œ!Þ× þÈU§hDÁèÝÀ$‹-!“‰—— Þ•“ÀŽ4t N—5| 긋¨Z.îê *NáAÜöÌ0ËfSœ;ÂOQJ߀¨AW]Ñx‘O³N…§ÖW;9F3ÖLµd p(›hïm¹òÐP Ùh bÏ#xL¹/ß» …Nñ˜ œ=Ð£Ä F^Sœ„óÑá²—^ˆŽs%0›â93<’eð8g-ÆðEFþ.t|ÙÈ÷L«„‰D–½ÆnËXEp<œý&ÊgF`ÆÈTD™µ7aŸj„_Ù”ý±®¬®¶ˆZ>€Ó-| Þèë`ôÕ3£ŸôF_}ØèCÎ4³Ÿlôg-¾Â¢ÍÔÞ?¸0‘¼å{+à™X½Ð™ÄšW\íVÒMÇ>R;’§ÍxÎYeQŠóºg„}¤+Î0Å[XHoÃ~D_±í`|¨«í<ÂĶwMî%k›Î]ÇŽ¼ –Íž«ÉaGËsUW§|Ç–Ts†¶ùmY,3ZÊýŽ‚žv”vF&ËojâûHV0ºxÖ &ÝñÀ w&l yà rC߃pw_8Ø=;I^-PŸªÅ .¿mŠbëÞ-·Ã}ãª_h±)É¿(|kÜn@éç`x¥éx˜pæ~Y¯žT¨*.°yákþc%÷aª±@C¼>¡è/»}îˆÿ£ðð&d€™"Ô„Läk ˜œp†4•L”Ç„Y<”äVÉ-¸J„žBê)×ð@†2„§·`«áºà&lýüƒþF÷/E¨ÙÿµÝ\>ËIY(k"¾ÖÓ€oéf‚¿ø)ž†êŒq‰™ò}ÑÏ3}¦j’M™þ!/c’Žyš"ȇЊœªpû¼óH˜06’nƒÁ(°]g'Ÿ^%\fý’xÞ!1râ ºkœ7bf›«`ZåràŒ¦bépËĬ¤ùݚѢ0®7þ˜‡¿ã@ÞÄ…=#XA9ç¿WbX‹]kŠ9 k;@oç’¨Æà„Ü=Ób0õ„GM¹ß³èyäü±Ã©Úùht¼Öžk 3·L‹s¿8`Ôb䠣ܟjB½~ø¯P x…/8WKUWz„WêƒxdH†`ç“ðê%ËBÐ!³d¡´r¯’¯„ 8 ©ŒÉ>XJE©•7᪠"?1åú`%JÜ„-lT"§\_Wæcxu‹Œª/SúŤê<^!8&c;Á+¸¶FÓä°Î¤DãÈjl’ ·Üäu9Q) %Me2ÿœ_ãžÏpÕÌ-¸êz"®¸Â`Ñ¿Ìá–†*Þ„1€~âjØ<"Ÿlž§>mê 7¸ç[÷bNôèr iˆZÓxôZ ‚þë¸ÏȸüÃ{ŸFp=NÑÜî,ÒxbJ‰À5 ÷†>¡rÙ=A«å·ô‚a³ðÌk-å ²eÎ.R¦œ'0äL¨öð^r¿R÷ÚâæÈ;îõÏôÙh‡©ÙZ2=4jÆlr_è¯Ña™œar’BSÜs†çÚ?¦^¯™ÅRœ¸\üÊÁóH y_á÷öÒ7e[0­_‹+'UåþàžÈvyYy:ß’sõZO¨í‘_÷'ÓO•,ÝYÒ §A'ölâ!w&$ káŠÞ±þyÿûšÓ7œêá6NjØðÆc¯©ìðHEE¾%”-Ä{¸xî‹É$c¨Ã0hQñòŸ'nˆiÏgÌÏž„ËôXV|Ò˜ÚŒ5»ß)_xm¢‘T›³š¿;¡áÅoþc—SKý(xæþ¶ttì4¢3¤Ê¦n»Êݺ]ø»b á:*ã·m>î¤Ãyöiåy7=^Ò”7³Ù¿Vî+“¶äw½±ÿÕ~1ãä#P·Z»Ï¿ÿÆö]yf>W‡ô‘/Íü2ql˜o@±ýƒŸ?”B©˜² ¸6w=ùP‘¾ãôß/| 2Y~øçO°’åuõ~¥pS›–NÃ"lòJ]ñ¸çUœáÈR÷/­|]ªED‰Õn*ú‚ÒZC2JÈøÂ'xi¿½ýÒHýh)¹¯_Úbúö¡øs8Né£ÆÑ¶;pïS¬éu AÏøjO<¨LÂ&–œ¾çj$@9§Àaïðô>˹ùœ»ïÜu┿ôÙwï•dräG¡âEG7‹žõoô Uu ù|Á†dÜ_öá5‚瘊Ø>µ|‡™»G_Ñ17InK——>"ƒ€B‹‰úÕ£¾D;Hléã8²&ˆæ¨;g¤n¼)÷U΂»Tj‡œÎ­7t2ž¼·»ÑÇsY¹õ æ_lÆrõK$d¬¨?­ÜCÀÜšÙ‡è=#z q_=ZÿB>{+Ü[Ž„.øüxè%»B–oz}i¸ö­‡ÓsÇõòÔv€õ<< Xá¡( Iÿ4¼´¾Õe]¨À›C†£¬èÈ ã?ò´#£Ú‘ÑžYo‚ÑÖ#£­æöÑ}(Ó7sn÷G öBJeÂ:ãD¯ånXš«ò_*H¸ó endstream endobj 1265 0 obj << /Length 2316 /Filter /FlateDecode >> stream xÚÝZKsܸ¾ëWLé4ªDX‚ñpåboâZo­RNY©=¬÷@ÏpfXáCKr,ëß§Ýà#jW–¹9äâ°_èþ¾å7·ß½•jå„Ó±^ÝîVN ©ÔÊDNH3ÛÕ/ë‘4W¿ÞþøÝ[;Þ £dÑ–*‹Í««k¥ÔúØåW×I¢ÖýÁ’õY{Ûu^–´Ò6Ǿ¨yõæuÌÒ'†\“üëX ˯0$}¹!领˜—òÇŸPøÅ?n/~» 0ZÉUœ:¡Óx¥µ2IV›êâ—_£Õ\E"qvuï·V«X8ë`T®>\üëâ žñØÌXÇB+ ’´p‰"so^›Y祶B9ó÷­þSÜWZD2^Â}• +“à¾Õ˺ïþœÓ•°N.á>HÒ.î»EOÿ.k·E×<÷è>í¡•»lƒSÿ¹Jõ:ÛçË•á}WÝ f\]Ë5[ðó‡›÷4:©N—U]¡Øcu×yýiÍ¿oÞ)7ÏöûÙº7Ç®oª øJ®Ç¾Ó"KÈ»¬¥Cèšò³ÏË–¤+7¶òÅE˜ FD!oøíGé*#+djV©LD"õï¥k"Tb¦é:Ñ+¥©S^””†ôv]ŸW3zt¼ˆÚ4{pR»ÉÀãý«ÇÁ½Æªý›¼?@bC(·å]ÓÒ€%œ•ÃévM  ¨?i|±^£)§Þßó>o+xÎ41šÅÀ bµÆ«… È8õ ýnšêîØóþî¡‚WÚbƒ)؆9’•-d"lÙe›¾iYyqÒõrÜWyÜ“¦4ß÷1J£.gmY ÅŽ^Eìyãe)©×—O&d”„²xðÖË¡O&ÔI_OÎtF­†Ý°k½ÜÒ©Þ¦žQi”ˆ¥[B¥1"ŽìTå6¯²z{Iánîú¢©á„¤¸ºÖN®oñôxøírÂdQoó;ŸÚ9Œj„‹žîð7=è?zOƒ»¶ùTbNŒ¤z¥ñúÍ%º³"s'y¾ÍwÙ±ìÿ 铺õÍ÷ÒáHySð·©ËqžãÚŽ~}SI»Ú0“òLÖæ4èò2ßôáÕŒÅŘD4€ˆœFz}{ê?{Â(ùSVeœÏÙ‹2ƒL²ŸôCÙ¿£ Â©ÐóÁ› ñÉ4‘\׌ßPÄE™3¶ÜýyB$òo´péalò•zr )à€à)á ¡qX¿¬6Ò]Š9O<§7]W §~3ùêºW3Ä&Oà¦ñµ¬Z7u΄^só0U uU‰œ œÇ9Û‚ÏDn)žÅp<Á²Ï½u`^/Öst%w3ן2(ŠóÎc°ÉŠHú|`K5I ع%€$…ë ˆúÔ†®Œ[B¯r"ñ.Œô΢6tÔ2±‹èÔ©HM:ÕI°=Ót¤ÐÉhòÑ¿-3.Àèb“õ£>º§‡I¯1.œPâ `ˆMHRB)9 õª£a›ÿv,Ú|:–Ä3%Sh`Ð4ö„)Ƭ‡9Rˆ3£`ÛgZp‡Wë=.Àøä¬W“¾ V±ÉÅ^ ‡Xë«¥²~dDwðnGSËŽ$ÕW7V¯$ØqY7—^ªÃ¢ªŸnlä˜G£SC…ž‰p ·e[Þƒ¸ŒÓ9·ãôXpŽäº—ËŽw-,5üÀš#@ó¬í‘iM .¯ bë—€Ä8Åž­É¿†ï ²`ð¿çX7€[_úÀåÝ%F&‚óÈêŽVúƒO@?Êi5+÷M äUÑ<7Œ¼Ùg›GçìÎÏÙ )Rð0üܤ:$ñ#f]°¤9­Ïx5$—e” ý¬¥´ÇROOS{ŽYƒáBë-­ölM¸Ô/!œ /Êa'ÍC[…Éè‡Û1‡Û©Ò#q¸8Ü2‡C:ìéq(9ëk|ÆåáÔÄLÿÏhIýuyõæ›§‡î„SùóîLËÐ(„éóç#h:v^NnÎ!Iên¸Z9˜ ‰#J$Ø1J$¸¿‰çp•}™c_ —W¹‚€°F~#EJ(k½(m8‚m1TuŽw¿$”~lAj…ŠÍ"h)¬VS ÜwÝ %ûÄi:Üó/…¡ ×üÿ2øq5܆¶ÀœÔô‚;9Ë”(4bÚ^>•›gXYÆ‘ppß×Û»Áê]å¬2öÜæëZô€ÉÝу(ŒŽõøz/ƒ!L°ÁÃ…$ÓÍ©3ös„*°)§vòÀ† íþ¾Oë‚:uÅ6ÇËGbÝÃ$cÏ ælÇ1¤ hLh<3CgÙ™pjéfð[œGL¯[]¨yƬ|[~ ž¦üñæ:ÆYÄÀVlé±Íê=¯p¿gŸ:ü¼4t˜n‹šÃ#£9ŒÍubš;D¸ë9X#ØS‘ž€:>ÓEÕøÜTdæ‰wú¯ˆð{vn8u8V‚‘+„·V'þš‹³ežu<¼œ-(@~a!/î¢ø[¾µ*Èc ÷)Sacý¸¢ü)?6À:H½„ ú‡‰>Ÿ/C0éààv¢`çäü¦VñL†â,³–Çy ¹µñWWx:•ŽR’Ók@é… ¾{žõRäZ\!Ycãþ{³ð+†§d|¢K2 ˆ’Qj d¹6ZÆ­g´¼(+ÏåX`e8i«%H$¥qú|N^@3SòXóÿ#lã·;à_ükø¿Bâù_±¶¢ê endstream endobj 1274 0 obj << /Length 3645 /Filter /FlateDecode >> stream xÚí[Ks#·¾ï¯`åD•MdðƸrrWìr\vesŠãªYr$M$’ò ¹ÿú|æ!ޤõ’{HUtÐàÙ 4€þºàׯ_ýñ].¤¥µjñúzáK¡¾(…ônñz³ø×òÏBª«•”Ê.ÿVw]Sí®VÚÛåWZ.ëöplßT‡f¿»ú÷ëïþø)¥(rD¬X¬d)l°Li[½§F¯þúúÕ¯¯$j‹…\ÈBŠÂÊ… ¥ðåb½}õ¯‹ ê¾[B—añ.¶Ü.´0Ú#u¿øÇ«Ÿ^}McŸp“…&„HÉ–’yÞ¦!Ÿò5…(¿_c„fÊ÷BRcñ|Åò £ŽÞ‹¢Ð {ü½zßl¯TX·$à°|{eݲº?Ö”õËý5·õÍñ¾j›ßXê±î¡j«m}¨[Î^ï[n{[í6÷Íwõ ú¼%5×¯íŠÆ…u2JÈà‘ÐBÚ4 ¦P‹Øª˜VKÜ‹r¹o7‘3’‡=oŽÑŽ8ê:UÝV‡œJE]]µkjtËùMÓÖkšUÇùª òÙmêzÃ…íÂ¥9$ž›º[×Ìë1™/Q Íò[î°809"+—¿^ÉåM»ÑøffG«J‹A`9›Š2&®¦Z³ü¹°Eu¼Ù¦‘Dp@¹ä¦XÌ—Ó݇îPo¹g\­ ­Ž»?pn½ß>iµ©ÝmÕqM?´õ¾¥)s)àiaozAÇ<Ùãó„±g ‘P.“Ôºf´iÊbY77Jœ‡MH™Dl·?äÑÆ}ð%qÔØÌÔYÅÜš‡ûx¸,+–Âæcihõâ:4à{ Ô®ØV‡¶yÏ­ã"â[m6|2m:ü&ãEÏfTû}uqÓ7hvŒSbÁç†ä£-¶[3»º#m¨ önÒîí8;HÓóîÉ:— F:W%Ë}b;Q¾j¬|ã²Ù´l~Y=Ý…éº~øe‡…ç/ª‹‹zz8ëÝþxsKzMçÓvrhí.7iRªa¥Òbö9¨gÅàXSiò£SëbÙE´»….xÄ^‰ÑS®N©ql±ÔÖoéÎñuJ',Ö€(©Ò³¤Šñ\ŠÁ¹1Ò Æ/:7 ¾Û©s#=¯Õf0¹¢hJdƪäÈ•Í1J±C© ”æZ9ïßxT÷‚{3Ò}×ÍìùÔ%,!´7°ý´qçy8Ô‘’ƽäáÀ2ÔÊ^‚1$›zÊøcC}f䘺8çx8s;@^˜ÐqF)!×ä¼_‚©*›úŒ­>£]%…Á’Câ…>K»* ^Áa²4×s*Ýà a ûßa§L˜^WëÜi…nö"LX˜2MÊzfñ°©ÕpÍñín Ñ%¡¡F£T§8øÇ Èuî‘¢²¸x‚B']3âj,çGQ\9 ‡ÒoR¼Y…rùî¶aàì!·Ÿ ÕGuGÁï4× gßÝÖ;NU‰NÛDmYð–b“ÔšÆH?Zr„¥ÝÓt릿ð Â’fj}3á‰Ê‘†rSd5îTšÓ+Ç>á¤Å zÊ qp§f…‚â¨/bâ.$Eõ»”çϦ]·)öœÙ A¶éé_ÂìÅNt­ƒÎ—HE Åo² òÍ„´m«fÇ·iaf‡QØÞ–zì^†ä5áû¦jg@ËPÇ×á¬<Ã>ÐV‰BÛHÉØ¤ûî¢ôf,ø~Bà ½ç ¨L9¿‹ÂÂÜ„¤Rñ/éÆûÒÕ¨â‹$¬~A’Ìg=`~•ƒl´pLNˆ¶zælkULÜbdcœ=c•lH*Ž·qÍPš‚µj0f(͵EïM  ÆŒ êã­™‡§I…0–5Cî,F"¤ ù .i8ˆ8|>K¥„óvÊr•´1¾÷x/$¼ª)Ïl+žÄÔaÍ”ŸÛݦ d9u·iûÒþÌ%5ÑØÃ“ð“‹yßU›¨8&¾ëGš:ô-Ê‹˜: ¥äÇX:à™-OÚRs‡£Î28’ÕPê8ÿ £ù§`bH$Ön%ËBH}¸2… |~NœB'—×ï×u|£áU&,5æÐ›x´1>0ÄqÕ2ï¢PfAÏ`üºA• 6°?Ç—Ž^ ©RŸŽy4îÝDŒ³˜ÇðUéƒ}|×ýØ{7&aÞÁk’§–CÁ´÷!Õ=ßsTæ6{h ô(¼ÓOƒmJ~×àŸzЄ ÖIiýyxPD< RÞúç`Ï:a¼ºSøXÐQž÷ MkËÿˆo˜Ç #c$ö0HYˆ³—À "å\Š•lêõ|Uy¦F /Í”és(Ô»½©âÓWEuyÈô;ÀÈÆéÌ‘‘$0ŠOw(Í`_ÚQ³Cn?sHÅŒ 2 4=‰—i—dKì¿I ±&hš:n==8yõæ¸Î$ø×d8éL)ÓcµQÕvß;ÏkëÑë?évkºò»>’“nNŒ+£Ë1z ýs.j®LU§Ï¹ „Ë伎”´3>à×ürEÑ×%"ƒt hâ•îÔ#¢ižæø:÷;?Èf “-§ùAÕJÑu»×%ý2ÌEö\Ò]Â’ØôE€ŒKêó®ç‚(H€”©§‡’Ëc/ÁTQØÉš)ÓË ƒdñ'ån²r×'áXÛkvý|8VZØácñ:þÍ"ÌHøYvŠÿ©Öû7óW]Péè)N…:ïÕ†¢+vIÉlo=zˆ7{lJ}þÕSöo¯œ‰+0‡°<”yú‚­ròø{Œ8Õw«MMF2Ûú~™V ûÐVM¯'Qö]Z‡.GF­Ž¢çã#?(I¥’WÀBÏV9ýÄÍ—´83"ð0µÏ±´¥µ6z˜Ú> kƳã/c„šQƒSåXä;.¥ÆÊ‘²ù‚Kå0cäçž.¸PÖ_põ’Q³o#ta°­ýïzñô!±Ð ÎÚOì„£Å9w0Æ&’}éØ@®»{8a&NdÄþmTQŸ°YYúƒ´}?§ÕüÙ^ò]ì‘DÏ«ó$æÞHL´’Î-ér¡‚î¤ÓO‚~:V]³ú¡~wø˜_=ýÊö¢%ÖðÚÀúÝKËWº(í2Ç£aѵû+x&ï›íS¯‚‘ð>l´iÖÕ¡Nëùޝ°Â“GyØ?ûv[>’â÷Ó:ÿƒ3JÉÚ–ŒHsbÅÇ÷Š£êvÛìꔙkhSúYÁ5—LBü*‚ô`|ဒá2¹__;~OÝ®»õ@-‹ïG(•#]L$ú3?%ÉïÒÅ£ÀÄsG¨Ç³!&ðâ{TŸ>IÓË?ÔïaKýaöWJ?^űtÍ›ûú‘—Û}5wJqéhÀ‘jxäO7 Å´_â¾âiþ³KÏ.ãØk ï&›dmÃhs~”}½6^‰½møÇd–/ "ü‡ïäwŒ4OYâ¸CO­4¾*¡B‘×ô²¯j endstream endobj 1285 0 obj << /Length 2451 /Filter /FlateDecode >> stream xÚíZYoãF~÷¯üDaW=}ÁæÅØÝÈb³ãä%“8mÖá!){œ_¿Õ]Ý´HѲl3H€äÅê‹ýUUõUµ/.ÏÞ½grâˆÓ\O.¯&N&åÄPG˜–Åä§ì#efúóå·ïÞÛý‘PŠCVåºlŠÅl]¬·ÕÃWÓ™”*ûϔ۬¨®¶Õz:Bd9þtû6™}Þåu9ûwqßl7qðímµõ3|)×ySBsAº=f\G üBïÈ⇟ýãòìó)é„MS„*9Ñ–nÅd¾>ûég:Y@ç·J„³“û0t=D ¥ÕäÃÙ÷g~›:ÀŒY" SQ+8®çWSB™WÃ¥»¸»[Ø1ž-ò¦w–XÁÇç¦Ð® ÞLú%(¾:¼&BÁ72Ý“ï;Ç,9ÂÃ!áCC¸.в[åmše’N8TÒ-òåΙya&3¦,ûA˜bQj¸O$ôÓØí/š¢Z—›¢öÊì~YΧÜdK¬ö„•}aeV†UÖl±þ)|GïjZ¦5É´&u ¾óso·ä¡RtWwé'õ:´(®òݪA»›*å«]ì "øöfé…öMuS•›k,ooƒÎ…2öËìüÓÕu}>t}[×å§Uу«ã­èØŠ vfÆaœlg¼ÁºÈìâ½?˜~@;'ã>REïËfWvSÞÞÂÚ • H3C—JSW, óá¿ Wía7ÛQïæT7qS%6«Õ£GÌ;Ñœ)0/Bš1Ì™ŸŠI{š97š³.nþeÔ*"`kƵ–)»  Mð\'.-aš¥#ÿ.Í ï}š³Y]þâoœsÙö [‚JûBœ+¨nÝvÊ2˜…ehÌ|gÏ BË¿ Pª|“l™!†ª®êj‚3÷¨ÙP^ìÙ;_Gá °‰k„¿Ñ„Uñk¿JfQðmÝ`­*æ¾^„Ï «ª‚÷þánŠ$oÄžÙõœcYTÅ$©%~^4ó ]–DJÑ1¥ßÛ¯’ÙÕ8¡IBúÕ™[àXã˜f™oÒÁwµ.ØwÖØ6ÄK¹±¨~Î'°pŸó TÈÁôî–€ Þ`(¨£"LÅ?®ºÂ)b­×³†õp‡TW‚Ã;¦3Å@—;˜Is¼‚T`Õø¯Ð=®§¼}Î(ɺÞî÷A{%‡‹Ãm÷^÷]„Ú‹“%àC.‚¾0"‘Ý1êFq°€„û¬o6ù†=ØrS6%¨ú/Á` ØjàZ¶Íp|Ó ¶L;Wƒ…¼~À’FÙ«/´ù _iù*”{|Z XJoøÅ»Å8ì§8„®Ë0Ý=VвCaQæ×ÛM¾ÂÚwyS•_°|qx\esF,5/Ô¶ý­äJ€ß³a&MclF8¯{2B„.«øÖ"d¡TnÒ8´ß¾Üî°¯´yG9PÁfp¶»Õ"î°‘À{ºÔæu¼ÒÌ·ëÛ]ã]gÈ{¥_.úpѦ_dH¿€È)Yp˜Ùy=ÏWyÅ~…$ÌéY!f>‚O.¯×1·ûu$A<ˈR Î\±x”ÿ‹[ zêÓ—ïðŒÙðÓ¾©‡R9 ì«1úåÉœ°,~tY¸,þL¾bYìÄo†—å©€|å²D\V^•Ír]4åïGîo ò©*¿Ž—&p.ˆxÐ1‡Lû4b-L(£„×qmAÆ …¿ !çÀ0›y\|Þ¨®Ç“Ž‘ƒ7SàV¸R`(Ù[ $È­¤ 3ú óâÊàÁcÀú´íÁzÇ8Ü¡Ôø§ Ým(eÎ-ô É ç€ÂÆà*~&ÍN$+#ÀF®Ò>–XðQ@­$F÷@ï¦LÉj€ÁIø:*ÑS+†\àyŠèíVHIfUÝD®)>`…zøþ%#¯L»CmÝÒÙH,¢C¿ˆào°²ƒâ#®/¥YCA¡K†ïñ}h[iâ-þ~ ¡q‘¸ˆ÷ì‘ÀÄ£¦¼]E‚1Ûª\ÄT*œ&ü<> stream xÚíZKoãF¾ûWh}’°«ûÉf°§ÙM€‹ ‹xOI‹¶ˆ¡H‡¤ìüúTuUS¤D{nœYçÕ ã,NÚ%«DÃÝ¿F®_}ëG[µÊ©°å_ÍFùõÓF¥ë¢ÝlµÖë÷›-L5ÇzG㦦ßǵpŒãF® œ1뻆_y—ÐoYÓBET·m^ •ãC ºËûB H«­´N$™‚-¤•$ÎÍI½îú¼íËúžF‡¼oËÿÒsà¿}ÜÊÌp`ÖÀäû@õÄ÷o8é@Öð`×eGïßâá÷MWD ý¢ÒpT ÕïK ÖÑà€ U_>T,Csw&T¹r°«ƒƒŸÏÈþK"MÛ›„™¨<³Íûµod ;mò´/xT7øëÆjíheŸ#¿Gü¯ ºÏ"¾ú@ÇjáòàûaîcØÞ Ê1Ú¯óš—J¦{ÛÔp't¦ê#Ïáˆ5‡ãœ÷‚²:’/ÚLȵ;Úq г}æÔ3x”9a½r¬Xé—üD‰ÌgS?Û>8œ0BB)zŒ´€" p•Úà Ք-bQ™Wåïá’¯áV” ÚÆßëAÝ ÍkJKRr\e­–;‚ÍßóJðH| +«@Ox›Ak²*¥ôÀ/!˜r )Y"”v)þN[ìx‹L„•ÃŽgÉIÒ|¡&' D1ɦðÉ´RŠÄë%øZiD’Î\á W°ËFöV®`86ͦ\çB‰µFxçajSámz¦b€®KÁØný™…Œ-k²®Þ²“Ó¾¿ÎXR*R“EBe}wIJf¨¸%Ñ©ì;Š9»â.Lb• ¸CkêaZòÌĆᘑì/I"/YИŒ[dô°+‘¥Ú\½‚´‹gB¼/msB©Wâ/9>Íj;¢#hÏ$Öo¥sÁÈC}]2çd~‰\)/_—Ë-À–S¹ Ûâ˜Vë⶜ϬRáÀvßÎ\%€!g¼e/X*P³Ëì,ÁÔ¥VSžmÑõÍ\6Î*ügYøjÑ1¾ßÅpPÐÄoǼ+·?O=…u–BàL·oŽÕŽösòÀ ´•tfvÇ“4JèRpb; ç”è€çñc>ƒ.ù°Ï;N“ :ü‡ó¦ ƒž\ÿÐP>µ†ËÀìÍH¿þŽò˜æ¡§}Ç.$3ð”ÓÞŽ6l9”&Xúð$҉¤8$e®ïÌ®äßþØÖ‘qû}><ô̤9»†4‰¸ä%¤s==<áa›öÃhT`Ô® jWXï9GÆ·Š'z8AŸŠ`ª}ÜØ÷Ç*oy}¬œxhI˜ÛôÁs¯žÎ~¸mÈ,È-¨€ÄØwA¾týݽÂ^r~ô®9›p˜™tdŽ2ÐæˆKåçš4rrØv_ôôð>ÉçѲææ@…å}YãÅãè²€É.éï)D84(¶Ñ×kÊ»ˆYÅ7F1ÇMcŽ{îø‘–8d}è '®zV×us-æHütÕuåûŠãÛÀºûz.ÂAü°¢¤*†'™^b E1†’Ðfk°Šê˜ËàÌ]~à©#9LäݸÔ#ÓÃ0ÜG{Aÿ‚gHrgäÝ’$¯|µÀ|IAj¥Ö'©sb bgµ)MD\˜.Mp@¢è B¢È,¤ö(¶=')üfByCBýCH–Ê6·åãÆ©5{Ü`ì‚©]ßl2 r÷3‘/>Ö34Q¸Œ|À=IÔÊXCν)îj;²@ʸ”í$ CRx5TßÔ9Û¦f¡±`A¡ ÐpžŠÇ"TßÂ<ùËÖCºâÎâaJ½žç8L ëä¾CÈNèÚ³$ÔÏ· þ‚…îf뤊ҹ‰tȈ`­§ÑSYUô4ÄCœ—Òȇ»0)ûƒ”øÀåž@î’Öúâ™&C9Ûl{‡NÓ‚p¡“uÞŸ¡=X~KK²Ë]Áp>j« TôDª4™bÿCÞ~èbˆ™Ó“!O”"ÊÓÅŸŽÝCy[6ÇŽèß ôûs¡ñ,·¦êSÃ)¢¨¡¨~Eëâz.ÑxŒÊÏÀѺ`$Ý5ćÂ=bI¼V¸Ó‰·D=§Ñ[ú –€Jn;m›ø±p—²„„C$·¸ô©eõŒs³Úƒ„ë n8oSrh_ì<]qÛÔ»cH…ÏŬCãpÇRz¯:¢^“’ò64Vb@çì—FîµØ›ºú¸}Å©õÈF'?Ð̸6»ÖpÀOÞá´<â V§òóC—Ê,Ô=~‰Ð…¤”ÏN¡k†«…ЕøE¸Zàfì”+ש-T ïöÏDO¨œðà|¹?•¿ãëe^h±u9ä)%ŒuÑõm16»3N¼êYtñ±‘šÚòZ$&=oË8µé L“d“ùj Y0mq, ¼ÎËüfÊß–œ2ÀRAîÒ–E¨)¤á@9l®JöU˜áî'>Rx°±Mb…,Ϧ§à`CS{&òÌ5A'}©O·@ƒ‚QsæmÁš #SÊ{ïÞÒ¢ÃKÒ ÍyØ™¾hÞ©>5‹p3õ€A®ã ¾ÔŸ³ÂjùB‡0èoè‰=×ôÿo ¾®5¨M"R¯Þ¾FÁ‹vð5€¬™{ø.À5‚ï„kSÍÀ­r`síÝì¡ÆÛ7Õn’c"hîeÊ[ŒŸT®ÆàþÔ61^ækG%¬u—eŒòܧ€ñ„šÔcóØRx,-qØÜÑF~Ãb¡Xrlô†ù•Ó(èy‘…»ïÚæpFàž7D5‹>ÁTë÷X@œy_ëƒÿ@}¥²áÛ¦m‹Ùz\rCƲˆÐ8œ‰DãRXz„iþÆ•sC3¨~‘ïa§raüám.hÚúe¢€ñ|Þ†vqš½í[˜ôq&²™yÉÏlâ ¹ÑKpµŠ&Ug\›êË>/R=µ–?ïóÐÜåË$Í W;‡&"u'ä†(1ÿÍF KóåÀ,SÐ7(e`FRÚª×ó\˜'\ jÇÏþ9„°Eƒ€Ú§Œój6"X‘ †úàÔíésÈÓ¾ŒcÛƒÒ*?}A&¯ø›È¡OH7­§ŸYÔô3KÐ WÅ.ßÒÎ’òñ·2êúSªéðOÒð‡'£ºï…f\Ê-'ÜZÙ» Â’[Þ/ûÑE{æÏjrËÏïrÿ•βÖ«»WÜ1~¡éñ?êbO¤Òdc/ˆ(%Àà63`òœ¢{ìÕÎw endstream endobj 1301 0 obj << /Length 3115 /Filter /FlateDecode >> stream xÚí[Û’ã¶}߯У&ñÐÄÌåÁNÅ»ìÊÅûæõWâÌ0ÖeLQžÝ|}N£Š8šÝHŽ+×V A Ù 4€sºíç¯_}ú…®fUQYig¯ïf®*äÌ•U!Þ—³ïæË¦kº±z^÷x*9on¾ýÕ«?¿~õã+1+ñOÌ„¬Š²ä•3³ÅúÕwß—³%¿š•…ªüì)ˆ®gªÐÊ¡´š}ûêï¯>?é€PUÞ‡¾ÙõV(|é¯bÕ˜Bj“[}S ÝMv¦¨ª«Ø…¿µt¹Ýv³lÞýŽÌ~ú… kè6Ú‚Ô—$us«”šoï詇‡Ê÷õæFúyßöôxÏ"ý˜o¹øöæõ K/Hæ¡ n¤›7Knx;úx‰!/æ]‹ÒO7Æð¢ÈÔ¸‘Ôw4ŽÙ­@çW(¨ó‡@ý–fÞ?´;.¥ç®écuVÚù­ü„ ýC³á¦zµâ¯Ðqg¢–ºk¸pÚ­eqs«µœÿúº§v×DõwÛ.ÙáÁRùà׃5› zÚ°„·Qr÷Ó‹–p§Â‚KÊÜ¥‹®íÚúíªáî O-Ï¿’6|˜Ø07IGp%žËí&êxSšr±ÝÇU±¹çÚ}Ô×]åëø} qA^RvþÅ×óÔƒðA³Øn–ÑÀ‰CväL¡ØôÅ#/µ‘#]wã}vìXÙõ]ÝrŸ¡E•ì )«±+è5è#ž ª"P ùà÷(ÅrízŽl¹yR°Y¶ ê0½ì¢—HcJ U¼“7¨áVpC×Ü5]üqèXè!™ÄÞƒÃþÙ,†54<ýn¿AóvC‹¨šÿ¥ÙíÚzC‚PÍŽ_µK~íêÍ}la7ù2î.ªŠnl+¶ ˆ#ôr¤Ñ…qæ¼)Ëò—\ájQDNhÉÞ”R³ &y„„À1 kŠÖÓÙh! [‰™5¶pNžƒ_YT¾Êá73ª…)¬šŒSç¸0^`þ5Œ …w¹Õ»v’i´µE¥ÜUÌZ”QÌ̪‰36–¾¨Ä0e8ó|º~;1¡Ù¤·›»S·äTLd¶ãÃF"*i ë4wõ~Y-®÷}Ãm“‹V”²0¥ù˜E[°@ÆÍ·ƒÄ˜a{e%Yô‘P|¾ÅVÂc*6(x=³nVÅ%Å"hRjl½éú}÷¶{w"8QPa¯Ñç ]ª¬]½l÷»©àDÞ>ÿ¦~×®ëÏYDÿQ§GQ‹ÂŒó\6inG2üé6W‘b Y”ضc° ¡„iò8¸Ü®¹±Ïa,S¿vüÎ=AŒ¿{¬»¥½™+2‚m§ÒClUw÷/ëÆÒ!õn¤žRçØŒTàm»J™µWs`”Q¹ƒDBêÏP·Y½çRM2޵«åÆÿí'Œ_FL~ i%à·Ž™dì1çÃI.°»~¤Ü|RÁ%7<µý—ØûH|£)Õ2ÒÑt” »!?·M©nŸ´1k? iŽUAÅ Î@éôVжD|§÷…3î²@¡Š šŒñãp1” öÁQX‡М³xqfØê‹TÄ" §Ua¼c~*ÅĆäЭ41ˆåŠÊ)´,pæõvˆ“ÝHÌRº¤¨ô§–|¡5bø‘¢g‚i¼ÅÒçQOkL0×@=R¥R÷x®ˆM–†´UÅF„³ñÈç^&ÀP%0ÔS`¨`ÎÐN±¢Àý(¬í}é<ã¤÷àÅöã®á¦¸„C™‚$Úû‡q; ž_ÃÉï›h Žv¶]Ã-õb±ïê>Áö1Š}Íç¨Hƒ ¢ïw}³±Ûóí€">ÛtÎÄ(é§P2`DsŒ¨g`DÃñº P\…MHE4ô&¡¡©|DCÔ¥Øò†ÑÓ›}"¯ R+¢¾×ÏijS𘥡ÿ)8 C”sj,÷Ò^tJ ¤ ­Ux«ŽvÌÄï°ü@º1@†”oC® ,Tir,T“þœÀpbKËÂÙ€,'áIbܬÀø$>Ÿ”'W‰kà©¢ã`uÕ>Mݰ±½ŠQé ‹©ÍŒ"7œ:ÌÐt†p«X(´°2«wõ¢ßvÓ¨,«ÃUÇèÜ’–ÍSˆûºè%ä]7À¬÷G!é\¨JÌv$o{Äm´ßá–,ŽNJ©âÄ¢Y¬æäªÉ©“t1n‹ õ±[3[Ç+¤ÈJqnÚ$"¯Äl‚’¼8²É“Æþ ÿà ?œ•pËáú,ºáOSÛ!lÉ`ÂJž/ÊÂ-LgóõÔ†;ãFÜGo̶(<n>Lªví¿biè ÊëpP²†š ÷YÀ(–¨2¥ºhÎè¤JMÚ¹FqÇÏä3b#aSaFQ¶‰:TÇühˆ¬¥‹ãÀ#­?Nx/T2Ó™o3Ò”iª4å4e"M™¥S&ÆT|Ƥ©Ò”#ÒŒ0º©W•ºZ¾t&# ¥Ä ‰„@D‹TbŒ¨.»= ã€ I‰ê xke ƒ…t ›Š³–Ìè4 PÊDÇ>װЏ¸´6·òdÎTÙ³1A6O¿äåA¨6ÅôÍG„%øÊÙ«„PE³Æ«©ž öS"7»†M‰àÈ™Üæs‘@YX}«Z¥?²z6–Ê?št§p ôY0ÊÃÆ@Iói&#†é?Sõ ﻑ˼ï&çI¤ÄˆÀÙ¢·KXÄX°¯†&nðÎ1?GØ«E¸!ŒÉ¨ß2õçÞSÿˆnÑ’S¿ÔOLôoTÎUäwbúHV†Ž`ÎPô¯DJ¶ËÓÙ‰þÑø–ÏCyýõk:p ¾r—M çƒ&ÚcGþ+™¥ÑÁ÷ó¹Ã’8p# §º i¿ç—©ôxP\¹TÄô88"1=;kF»üÜaÄþ¦JìRb™MözMìoã/5¨.æËÔÊ;ËT£Ð¦Š¤å$õKºrÐæåë˜J»óÔ¯èÄOP|‡ðûé¢ûQ˜ ÈJóV”Rw» «²<²ûÁÙ9°xݤã€8§Éø 8뜟!l„ê¥8½ç×&þ”Š Y¦NÛød¤¡Ò‘áðÕŽŸ:Ç¥B¸âb³Ùîï>á«øQZʺBʆ…·>jä!Q)ñw7Yd×C]¥=å3Ákübìüɨð0(«kœŒ IõÂÎÄvªŒºŠYC—ø23{€…þ¹¶.…Ìø4å Wï§7[‡¬KN^²ß¨ º9ºk·Ã]»¹ø®ÝœqJ{•S]REÇñ¿Ü]»ùõ®ý¥»vñ3^¶›ÿËvsæ²2æÊ^ᮥÿÝð_¹jÿºi‡cDáwß‚"DúmWi^ÿ íx© endstream endobj 1312 0 obj << /Length 3267 /Filter /FlateDecode >> stream xÚÅZÉnäF½ë+ >•0ûbÌÅm16ÚtßlØ%J*4‹ÔÔÒ‹¿~^äÂ"K©­ÅÁ@€*™LFäùâEd¾zwöÝÏÊ/|å0‹wW ë+±°ÌWÜâùrñûrSk{þç»_Ïþñîì?g|ÁðÇœ™J™ØTZ½XmÎ~ÿ“-.ñò׫¤w‹O¡éf!+%-JíâíÙ¿Ï^ÝQÉ!Ây?Õz»þ¸ïÛMýù{ÒýÝÏnô‘•0CËßêÏë͹pËÃæüBJ…OÏùòã¹°Ë~O5r IͶîVM|¼ê·±åþ&մ뮩·±¼ëÛ$¯ø2Õýöƒ¶udqá%úá\V\óØ…_nÏ/ðE }覌|‰ënµmê]Ÿ0.ôŠõ.þÞ¬¯o¦5åi†UÌú…ñ¦B=4í¢òÎO§}<‰³È0’Ä„>™õ؇}¯›00·¬SßúmN½Z¶õ>=aêûußM¿³L_çYM¿ìöÍ&Í)w²r§“úîf©ÜÓ¼¡Têºö •¨OXéçÚ,ëu[¿o›Ôð*þ†µ±qmèù¦NÞ‡5kš$xÕon×msŸ>­÷7±—þBI%ÙЦ—uKv–Úú®ÓËh]œÆ;‹õo'C¡Q³épC[˜‹öÎùx‡ØÊ› þï±…ž´`•æ&·¸gË _1&Æà;!Ÿi;Su’WÞó ÊBÔ‰ñÜÂW'p§ýFÈãTÔÝeܧë}šœËæª>´iW§U8¤=üàr]Yç²ü¦ˆñ 3ÆxÛLêB`Ü–IlÅ< @%*'ùI¢Œi¶± Kl°´|¥íµ›*­Û›ZŠåª0…ć9~[_5" ЭWûŒ» €åò5è·bõî¶Î½i€1é˨ WuÂ'b¸]6wñÛYø+s‚ß„^»ó*ZWÔ»›~×tß8KºÐbw¸¾nvä ö1PUoúCGìãÇýU¬ÿQ¢? ¢µ<ìšKŒÁ§ÿì©q˜”&ú mÒœºÝÌnÝ]GuÑÖÛë0TTuÉâB¸ml´!ñûú‡TöëKRAëdâUÂUŪS!ÎÅ>>¤= `<Ðü(Á€|ÙÇ·]¿ÏßüÁ¸Y‹±[ÆÜ«Ü«÷j€{*¥žŽá~Ü­±+VîÕîÇãa?sûQ°ß$ìgvÀþÔ8?ŠW4Ðm,'ì§û™;º1”ó[žÀJ¡È2ìÍÌÿ`B}%âKÇ+cLÂèýK_:U$aß@бÊHfP© ÂK7ÑI&¹*¼p•çþ13L×ß  « ëîª ÃUV½­å>-fôNDï"ÔHϪSV-79-58-^ò™¬²Ò>Ùgé¢ÇR²ÒL%‡%žâ°4ˆ!‡Þ–6Xc´Ìôàž£ßTÃu0efQ-}¥œœªî·—Ͷ䱈 3øcñ{Û·»I`-דH"HJ|£‹$…íÃùŽ‘%“Ø´Ò\.ùñÍ»×0Í þñô®‹ï¼q™kÊ Þàq šÙ‹¢nTGÐDo€WGê|ì+`Žä¼ÒZ΀9Jˆ@µ4(ŸwæE ÀÚ¬ ¢¬;šQÉ„”•Ægs¨ÕÃÔSµqá `=žã¼Ý=:®FÝåè!òÛ`AŠxªž"ÆS8oqï³gízlY«Ô,»¿¢"JöýôaUPXVc”s¨px2º±êÝ Û¦».ì{e°°êþ}¶täžC÷#¯Œ"ÓvG0 ­(íwÅ;åi°ƒÔD&‰BÞ±Û.ÐÔdx)Qâ7£"êŸÏŒœõ”ChRyÛ´ëúýº]|$ )yœ¤4'=ˆpJ%ñ ±¨C‰+Ù@–h`õ@|‰úôñw×ìO¹Ð‘ù¡YPÔìš•Ûæß/¹N€É|Ì"As£ýÂÜÄÝE‹ü ÚÏi¾vña·ßÆ ?vñý›®ÿ¦*5øW˜²Ýns°£Aûîûtp¦D®™W\ð ÜÞµW* ØÜõßcÄJ-꣖.;'²œ )*RÓ¨(ä\b=Œz»þ\èÕETöÜ^¥e ]ÓË·wz2ŽÏÔ¨'rÒ““hÄìs‚m‰èαY¸ ‰2,ÑÎ÷9ì%ó¡D`ÐEÆgѯˆý»©þÝú¯¦Ä_°Fþ~{#ϽÊa6„Å©§Ð37=Fê¯SìÙÆW2Ö¾zýÃÛ»ÄçÕO)+**%Ê <Ï–ù÷¸—yÚËô²‹¿i/øÃ¸—Q7&?î˜eÛ¸“=ËèÈ*¸u¡pI8qi%?¼RÚ>B~°x  i-iû"BÌ–B¢Ho¶ÃUÁü"Fáì,j­¬„5SµÁb A´‰ƒ.š²]w Š5ñ²)1(sbPÝ!IÅ˼˜%A\¥ø,,‰D‰< .ÂËe)¥‡vس¨–®Â¶›ª®7u{]oB†§1³>¬à›&— >ÆŸÆšÛz[oš}::‰,I‰ û½ à”COÅ#:ˆ„ (Ô14²"¡ÞÑPŒè †Ð( ¡ƒ…Fô2u¡Œd÷„tŒ1¡ðÚ0JøVaÔ‹¶)–ÐD1£²• ;°"2ƒRí+iüTéÄîb„Ñ•qòŒ ¾P9=¥Ñ_™Ÿñ°41ÍÏ̦ûP!&IÌ’÷ŽUN$­;Ìw[N¡h¸€9Ô‰ÁȧjÊÞSqËgQmu] ã$±!GI|ÅDŒ;¨@ýòo‡Œuk> ¥8›¡Ø¤m׌КUG‰3E¢rFªTTUÓ‘hül߬öù+(ý’€6 ·'y÷pê ¶M?äàécª &L…x„ŠÂªßn›]Êqw—kJ"\ÇW´BTKÖžÛz5ÚŸÈi²dŠ …ÓÇ7ñœfýWØÐ„¸Â'¸úë.¶Oéô¤ªÞ"D>´õ¶ýRŠŒší_7C˜Hîê$>HqÀd7RHÛ&Z xÿOia¢<¬XUÈè'#S)-¼ 9¥ìarò /"=Æ’Ú&#ÝÄàiö02G’¨Û5M<Œ…»£n”“o°zÿ”„¿ó{ưu¯´yYö]ÊÊ{Då<ê=Ø£ 6‹Y´YYÉ'ZïËøyòË|­Àd'J¯Úúº”î“Á<šî;ž5ó”ÙS4Οìþ¯rQ,y(é‰`{ ß™x¬Gã$Ãà¹Ð0lKY«—¯sŽò[ÊøH¾ÌYÍSR ›ÔNgc³x:nÑt–@$IæÉ¹ÝbCÁåÏ 4Ú©94ƒ[DÍm|]Ó–|ކ©ðSóþp¨ï6íÿ˜J¢ÔË8ŽžœX´Ké™!—ãk›<†+Å)…&‚e+ …Ç;7QÝD™b”`§wk Y*º¦GàÄØ=äÌÝ!gÓ;Á Î%–’ÑI4ƒ&Ò!ýËŽ4 vA™H”8Ú\ÁÞ¤2áDv¥ÊWJè±RØIÓþÏ4ÕSÎL¦‰Nï@:šÚ!Y^Ù^‚œñ‰H¶w_¿ÊWm†°`šý{ˆ$61áHQ(§¬ ÝV(Oˆ>õ³hVhÁÌTs{[_7åƒK¡†HçÍëtRy•²}«¼,¹ŽÛI“äPF=¡4Ÿh¢Sê$¯WPg“:;Vg—ñê]nRw™p]¬ÂBzkÎ\ÌdR±‡ýE5j?IÆXüÜa·OB£Þ¤6UnúüºlE (˱èvmr¼ä]ÅÃùÂ=»!ŠQm!<×”$CHùrµš+¢©VÊÜ¥‹O ®ënж™œ+®/®}}÷²l& 'DWÁ‰Ð¥‡Äuï^j˜ÀƒÃÜ0þ̃æÒz =G Œ1ö¢_ÉD% ”¹éû´ë¯®J{ž²g’éYôJ[ pì‰Þ6o¿¯rö1wàþç)Å|9‰"…‚úÓ,ÊCî`Ë|n I6G‡ú zžõv÷À¹¢Óõ$8' »9×û:8Ï€'—‡Û{á=:(”œ„Ë@º;ª> stream xÚÝZYoãF~÷¯æ‰ÆŽ;ì»{°»Àd’ âlö¾l’Ú¢l":‘š#¿>__)·4ž‘6“ Xd³YÕ]]õÕÅϯÏ>ûJ؉%V15¹žM´%l¢KK¨Æýtòc±¨´>ÿùúÛ³/¯Ï~=£“tBKE„ S¹–“ÛÅÙ?—“)~;) ·fòÆO]L8\ãj>¹:û÷ÙçXR0ÖŽ¹þTR1¯3|™$ÜÈ“ðe†¶³Û¶ù­~áØ~ö•Ìå”P Z~Îõ¹áEµ¾«»ó ι'\­fîWuu{ÎLqF»zñp~ûÕºZ¿ cq~ölµƒ—/µ~iÞVój݆ îm]`6-âÌΑ¨z)M.LI e“ Ê •4¬ÔÄ)‹M[·ájáÈTKO Œì®Ï…õµÏgZt÷M|{õÐ5«e¸¾]y*Ýz5O»û:\‘0©¼HÜÈV$žÌ²&ç‚Úâ›.Œ$‹ºj7ëzG—#ªð7 ÷ÿ&ì~)μʱê¸ÂÆï^1ìK– qvaÀÉÞýNW››yÇÔïYßÿë:<¹q³ßuuëVÌÊâÚ¯Eñâõ9TÍ›i˜·®–wu¸œª8§ûs¶†›&,¦¾«#Ï^˜¸nâiP>*†ÚÇalL$ýû©d"ÌÂ6‡vD$UiRÞl…ÐDI;Q†“RóCæÃˆ5vl>#vB–D RŒ-×Y“3Z¡¡JŸ„«–8]5æêµ-ˆm8—q¢LoµlÕc‰ý-#SM´è)4ËÙcbéXíªå4ØiÓEžÖ³j3€gí¿iÃ0+­¦’‘Àd„UPk¦IiéS0Y ȆÓS`²#¥8K\ß¶ÝjÃGipn4 ê²zÛ,¢¡úº×ª»z.#ð‰ˆS^`Ë‹[°7‹•7ñiB8‹ó ú¸´¸[×UW{j%Œð懫׫çáÒ#ˆ»XŒGûõÐß´˜U·Xp¨ù-OÃ&ÒMK¤„ͳ~`µé.V³‹íŒí&<¹pØ4‚Ák÷oõ‹C˜zêðEp/( YD›y„i¯RC¨ñž)B—qœTf fJœâñPÃ4Ü«„ÑSEäQ6Ï %F(O‰ó±.fÌ^¢èÿØê©%%í¥ôqæ^æ ª" .þ!ö.a‚›SØ»#Ÿ \—õ¢YfŒ]pl/Àï‡úÍ‹—‹j~W-ª­º=TëjQw1|ñ–¬±G)Çú}ýÆÛˆY^,Ñ6Üû8À²¢ž7XS$îtëºWÕ:^,j„fÓøÞ,¼·®[n쾊Dgµgé½±#åaÃSÈŠ›˜†U©aF F¢I ׉ ÖQ*H;ð ³n*D$>ê^„¨ÃŽ£ÜðRå”avÄú±à‹C¨3@«OÐn-— Kåú(tà&£ …™ 5f&$€Ÿ¢öÿL(ÄFõbÇRœ$A“\zö\Wëi½ÎeJ¸d½_R·Ámæâ37Ü.$›å]¸CÆ]ÝMÌUÜè×Wße,—ˆ/Ÿ°×÷Y&c@&5ÞªN¼…1@Çã1p…äH ây\ï$Gîi¿=wR7Ò®æ¯} d·ÊBãà%Öi¬8b§Ì(P0ž’²r»SŸ—‰ˆ7XV¯­îf ­ƒM°” º]tit$ôü\AÓ>#Q ¥ÃÔ îïÚ¶¹Ir϶}‘ƒ%A¬Î:e´¯èÇÊé®xo˜‹é q‰â?mäƒÄ=jF!2ÐÆpø²§ÎËÂÄ%ÁbDsùJ™À¼zxX¯œ ¨V]\ðl¶rœË÷}î!\îjÝt÷‹Œt.,2¦RFñÑòeOY| ÷¡ &î ê%%ÊÀ5DuL‚Ĥ ¼äž’Rz(›”¤ ÚÕÁŸš©Á¡¿t7*·–îam@ãràðÝLîÊÁ¡G<”PÌÏWz]ù…ž`BºòËá³€ã÷ÉjLD5s^cRmÒX1pkÐX·³[.RDª\¸MU.¼YaS"‹«5”×—œ£pÓûDÓ¤¬£0cþ„*—Öì°£àR#ßÁ )L¦Gy GÂ’ݯ¤#Ag|D ª;˜ÉVÿÑN‚*9vN´ÞI3pÂŽœDP „-ð§ãÛVR†;¥’hcžŠi€Í™[¼L¬Džé«/%'̸ôÈâ7âð+B ô’"½|i–¡eñ]³¬«u¸¾rÕLN]53ëéOMÄ(ìEj±ztp¤t*‚=¬›å9gðžYsI¸'aÍ Ñ–ŽYÏë׎s­%áØD¯6_Ô7›ˆB~½.Rè=GÆ™ÿ|§î¿:‰¹ú<‰ë¼û sèx…¶{»¯rÎvëÚŽÛM19+pP»Ó\bü  ?99èÕ0øHÎéQ°j«c‡ƒ’»å“ƒˆ“S;N•/ISƒ;. §îƒí)IE·Z—Ñ8î3u ®Â¤†c®Ð”zþÉúaˆãôNAS Ù";NVîÑ@•¡ö±Æ˜}ë¢ùH%UÓÆ¡ÊA0B2¬”= ”«Vþ‘½ö?a«=kƒ±ÕîÀSRs‚V»£¥û‹·Ús²L­vÿå¬:I«Ý‘¢ÊüEZíœ=¡×þ$p°†°ÃàýTl¥Rÿ‰;íïßéíÃnÑqŸ}ÔfWƒvÒ»mv÷tÛfÇÝ ‘Pø×ÄN;.†q»ÿú ³²ÍvÄb¥˜à*T³ÝÏØÄdýn}—§/Šõ ×®Ì¨×®R‡ “º^}¯]éPb ¿ÏªM·Ú¶ÚXöiZíXGìµûçÓWð!Ý]uñCù——_Ä~v2dßgŽŸÄ?„Ôù—¤ª>Sn},P¾vz˜G¾¸™Žôw›¹™ endstream endobj 1252 0 obj << /Type /ObjStm /N 100 /First 961 /Length 1316 /Filter /FlateDecode >> stream xÚµXËn[7Ýë+øçÁÇFMà] Í¢­‘…‘ E€À.Hÿ¾g(£•|¯Œ¬®<â=œçácbÕT±Ö¤â[-Q!_4_è‰:'%1U_‰kwÁ’‡Õ’dn®”d´ >•¤swÕTÛÄ´Ôêp¡§f¾¿ºÎO–úðín.œ0ØÔdľÀÉj…â*ÉÌÕ4MDäzšï˜žµ¾·É!Ó Ôˆ»ÒaKÆÔcʾ£CªB.ágcÛðÀÖ6÷w(î4?z¦âŽ}*îÐ9¦ÿÈ Àئb·cІÔWRJ‡TAx:‹¹Ûy¯¤%q³8q‹î +ϯH†ºÛl(C-¾×’Î@¡¯š; /†As¯- ñ¨eŸèô\˜{&Øæ ±“B#Ù¨PƒGB€CBNldeC^wAF¤°õ·¢| °J:Ù!Õ¹"Ð#ÍÉ"ú›²K0Ð`,t.AIï´™M Ù˜„3H6• ¡ZÔ¿’$¥©`%¯€€ Š´ºÔ 9-TQ¡¹w@ò: H^A’brûª^ð­q§¶Zœ>ÈeªÄ®I­äœ©©²G#O¦’i¯¤§ ¾l®®6ÛwéGŽpŽ?¤í¯¿ýžºeNmp. ØÝ÷¯_?mÞ¼y ª”’€Ö1²âäG RsÁ¹@uPnàwÊ##ÓdiY-¤Í(s­(åN¡\¡ôÌ×ëû»Çtu•¶×Þ?ÑEæžkç}}’ÝýIÙ5zª¢ØO_ÀqpmÿÃM{’»]çØÙ¾¸ÿüËî1ݤíûw×iûq÷ã1ýëÂÇ¿ÿÚáÃퟻÍö-ÜÙÝ=~óÎ9ío¶vßî¿?|ÞÍ5Ù¯ý¼ûãËíO÷?ÒMÁBCüÝø Ý>`·7à2‡ù¨zä7õºV·#Ødc׬èG(Že®Æ!háL1´XF‰@qÀóVÂ!+CBP¦Ì*§ˆsÄ‚Câ1ê˜8‡”ºYÚ YZ”,{OŽrÐbdi‹²rË~Ý ÒK.-‚dä¬`¥Z3?'ë¥JuvuöÕ=®ÎÞóªÓ%T#˜g§“e<ºBPœÏŽ€VÕL«×ÕŠ« ÂBPÂù\½P\áYZ ÂäA¡\‘ùÅ&!(PBžâM‘©œì$à²÷‘?Ëp*_Eâ±ÒbÆ+Z̈µ˜±¸ G\jZ»d^¥ÛŠ—InECPîëkÄ$÷F(¦(íÿ×óή¿­Ôß^Q‹Õßžgª3gáb°ÉM8Uã¬1PˆÜ(Å“} @ñÞËECaa¼Íõtymã8hÕb¨]a‘Í"Ÿi,:†½È¢%´áQ‰‰(­j¹ƒS )ÅŒ›µ…\Ólk/¥(¡òˆ@Ñm3¦Û”Zlj«!¨öÌt‹¹zUŸ¤ôÙ,&^°XžF®³XLb1Q˜Å hCékóÎZ{Ãh4BP8€ 9ÕRr¯ ¨!-® l=“.gƒu(á6À„‚VÎ /Êñ<ªËµíKtgnK^³ÆxíÿÖ}Îk®!^Á^æõzš×K(fšµËx‰¬:²YÈU­®r*fÙZÈÉþ?ñ”æh 9ÀŒž¿ö?ÈhÁ¤ ‹0T"ÿÙ%{r endstream endobj 1343 0 obj << /Length 2649 /Filter /FlateDecode >> stream xÚÅZKsÛ8¾ûW°r¢kc ÞÔîVy’LíL·fËžË$9Ðm±V=$'ûë·_%Ù‘²{€F£ûë¯þxsöÃOL&Ž8ÍursŸ8I˜”‰¡Ž0-³äCú‘2sþéæ—~²Ã‘ð$†dËÙ›ó )eú{Ÿ_!ÓfîDúë_ñí³÷7gž1xƒ&,aVƒó£’»åÙ‡O4™Aß/ %ÂÙäÉ\&œ8ëài‘\ŸýëìGÔx¨³ŽpéÆ_½Õ6Lž=>Vå9·é—b™5Qµe±*–ظ^†Q³ü¡Êcg¶x(«¢™/Ã’GÖ¹pŠ0ª’ N ãæÙæYæMQ{©Ö@¢7ÐU~S\‡ÉWyÝ䳨TQ×ù]S”«¸”N1?ô#U´¸]¸˜ÏçJ¥Y±ÈnÏYºÈ¡ŸµÀ:ƒ%pI5𫉠ƒ~™Õ{D5‘š'Zs¢ìÞMD 3ޤѬ vÇ:çE w©¾ËÅêáͶñ¤&ÆÊÖzoÁ°¾¦*uX{|3,¾ŒF€ý­Š/(,¹0†H+’ &S,ˆ¹™ð:·.-ƒU¹£éÝH8öv±û¾¬B«ß-ß].>ãyFLº7·”(c-XFáßÜ ¢´ñ’¸PÑ¿/!|À…UE½fù}¶^4áOð…Å:ö Vámj×`,¿È¡=à¹íµ¼Óò æäTJŒìùZ¡¬ëâvCfÕ~ÖúÍDð0p<€– *ø³cgU®òˆ-ïÊ%e¶·jM2…½Ë³*ö…pŠñÒ»ÇVPûé^Ó`ŸÒ×pwç,í´9 „o_× ^ÉCšéhfÌé43& øÀ^‹× Ž¢¸O‘E>Y”¢Þ©O€,(жñQ/³ÅbW¸žÔ­þÈ«2¬ò·Â‡tp+ 1Uåõ¼\Ì‚÷k˜AªèüáÕK_!T„Kû·¹°½u:šy¶ m;Ì` ÑNJBí1(Á%`r%4±vh„0}Ñ*Tå™Ï/Ø˜ÅÆÿ€L`"\ÉÅ,ü­²ÕCÞ PJ°7Ïâ< æ¤ŽÍ …ýwíF|¤<º?c¸µD±n·¦M(ð„åÛL8šN: À$¦ŒVÀF°Lëð×mWÃð#Vñ1fþeb™†ÙI*V÷Û²1)ã×ZE‚P41vЭ‡¾¢Íl ‘!vL¿ ”Mdb0k‡°v/E¢‰3ÂöÐ#ˆncÅqf0 èïæât{&K09 ä)ŒaZjøK@F:C`ê` J¢1CÔMÖwSÜ\»÷Œk?le"ºna„1;šk¤¥Ü˜ô  ²~ø3+1Y§wëeØK†q‡AÌUú8¢''0pÚ2\1"À¤¶ºÁN*@’ Ž-ó7€cÔA§å^]Flèñº@w –Ûªü}ÇÌŽC r +( ¸Ú°GÜ‘¥ÏÀ“ð%-€;öÔʽE\­Î& Ç”1‚§ºõV9Èjà­¸ÇBz²-5|zÀ¿1=à[>=àCHøTçæƒ„ám–ÀÎvÐd–€2@ ~8KÃ÷g ¡ X6òŽÓö˜,!4ˆ0FQRØÐnÛiBH"¡^Ü&ÆÚsz`ZÓšÖ§°wŸ¤¥‡`ÿà JK7*&:Áô%¥£iJž|^EX\¿™4ƒêRÕ&ÖŠM¬EæIÝx½×á Àøú Ÿô¤U2ÆŒÐ%ü ñ>ÿ;CHÀC!*pŒ'MøT>B{[æ›´0NB1ø ÚÔs«´‰9‘6‘Ì Û~ m¢a°ƒ’𠘑×ÊÃLj[u»Ss:OHGºh™ð1Ù±  ù’nù’ ‡$Íhû &b,Ç jì{y &OG¤ô!"Õ¹µÓDŠ&¥÷0)WËÕK‚YK˜u§fa#x®—Ù—i¥MWÓ^e_†Gvòp€™fƒ~¥h:BCøÛ”á÷ihÃæáï~”KŸ ¬§°áÖƒBš‹ÕsíSÜ,4µrŠe<} 'F¡ñÏ5 EêG+`s.Kz•<–Àß6·êxåÅÁÞ€"ðÔ%UÕ:Ý@ó Ï%—#Ê0 ­àß-°{T‚eœ¡¯{QDu>2…‡àäÖ•^ý] Â€ŠŠhAE¶ "¶Š0Õa¢©ÙSÄXû\PL`1ž…ƒ—1'òpüBáK#ä”1Q¾%Ìc2`¡W—rŒJmÏ€àù3ÃãÌÉ\Yµ-†—™3{àæ—ò$…Šâ2îýcU¬Î‡ô¹=µPD½8ÅÔÂãØxêEþgÎ'Ï’`Ûdç6ïòÛuÄ!¯/R…®ÌC1ÿ‹0 ¼" ÔxëØrpÄŒ}~ç<¨A¡!ß<×ÎGNWÄã9Æ3¶®uÌÚIF4DF ÙLtŒªŒ¼MPÏ`¬c§‡$¥ì/Þ‹:Sž' ñ'™sæ(Zψ[áEQgzÏ›ð:! QBœdZ ¡Šóñ´à.ù79m¶«˜°ßý¬i²n@¦êmÝ<탮à…8¤ (¼‰ w ù²XMq(‚z~ýÏÀýg1ˆ.¡¢È–Y#÷˜UÙ2o|æ¯"ë‚®6¨ãÍ“g*x¯"ÒU+´ÿ …S€NY{1%ð¬6OY–yõàOoñ½ûðpžpëmó, ½ÏŸú+*ÑžC£„é8Âsh§Þ(!ƒs¬ ÒJâV ¬æSþÂß`ÅS…¾3:»¿#‡<'í†Y#¨‰Ôä&¨‰žuIXN3x¦a™æ…LhÊ–œï²¼¡úpàPñjμ¨îÆ,ó»Ã÷?ˆ¶“àÀÊõ ÁV¤÷æ<X¸ð³–Õ,¯¦/\_ym_JJÿˆgmmRo¯¦½È®PY×y$·ñiçgé¿g¬õPdrȤÇKí‰胺w³ì«ïë$·hï–wEà«lÝ”ñn™ŽŽ»ºSÏÿ\æßü^eú3툳0­]Tº¡óÇ­ÊK¢ý=¾§ä`šy¾®Š:^ÈP@BóÃÚ_&âc¬9ëføÕƒL/¯Þ*‘^½¿ùùzê6ÊwEÙ‹¯“»‰£Ån°j­¾µ*›yÌ‘A9Ð?nyóe¨ªÿÝ:¿”º9Ýü·~†Äx¨ÿ %Ëÿ—Ÿ!éÿ×gH§û”"kÂqK>»èBsJÅéom e8¨Ä,Xž‘œÃ³@9Š·ùÖÒîë"ÐѤóÙžŠÖëGÁ+Ò0®,îòñJ]p´Äeg¤b]k¬>Êû6{Ú!á°†%ZM¡\¼ŠÓxûÁ÷XOÉ#duëpãdÙZYî³–#†é—‡ÃÐí"r¼È넵‰„5õ#z0ñþûÅÝn·ÛRX†XÄÏûÔ€)Ö0È<Y´?ñõ3ô‡xÿ5-÷N endstream endobj 1355 0 obj << /Length 1382 /Filter /FlateDecode >> stream xÚíYßoÛ6~÷_!ôIÆbVÇ"Ylíº`+Ö¡CüP,˃*+±YÊ$¥mö×ï(R¶dËq\«C7y°Dï¾;’ßwR^Í'ÏϹö4Ñ! ½ùµ'5¡ž 4‰÷ ïÒ_EZN¯æo&?Í'MÀ ð<BÂCkʤðâÕäò*ðøð¦•÷©1]yŒp&ñ*ó.&¿O^í„t¡´îG­â(Kó›&òósÕ1ç!‘Š£¿Æîâv:£ÊOâôÏxRMgŒ1¿ªË¨NnîíÝuQš Þ:µ£in¾øu7=œ(ª“%Zé~z]¸ $Q úÙ½}‰5m¢#ž$jáÙÇ©I¦4€¼eŠ„8uŒ€;u¾LìÌErÝeµúq*B?Êî’­Œëeº)É:õâ¶N —¾}Îýg‹ûÐ]0ÿ™¦o¥µø­è·ƒÿN›p WéË{T_0N[p4°Ã}ŒÓÌ*?·Êîãîj=`*$ õz€®zÔIjÁEùâ À1jÀ$#×§«“”(tô©ÁéùµjÐOpC¿G©ÁpœìÃRƒ'1ø¿‹<©Á8jQÊ$™Ô€2Œ.Y>ÙAE˜/Óò8A°WÐTaN”âk œ$¨‘ÐEé^E¢¥ µQá"àUWð¶QÑ*‚¹X+ÂÞ¹Qž¹Y‚þé†5ƒÖÚ•d^h:µaFB׎œì˜…Í7U爻‘1êÓñcEM,ò V´ë•Ôzüslö. endstream endobj 1364 0 obj << /Length 1931 /Filter /FlateDecode >> stream xÚíZÉnÛF¾û)ˆœ¤"šÌ¾è!  A-ìž’h‰ŠH¢CÒ6üöýg“H‰^9‰Ñ4ÈACræß·ùœ·g'¯Þs“d$•ÙÙ2SÑLaƒˆ‚çEöi²Éš~9ûxòÇÙÉ·’aøG2‚%âÒoeJdóÍɧ/8[ÀÇFÌèìÚmÝd q¦`µÎNOþ>y{Ä’ mLŸkS­¯¦ŒNŠÖŒ#cdÖLÃÖg}¾ÎöÚò}õ^w6Ã^aep›ÞUÛ)Õ“¶®ÖÍtÆ›”KûËÝqê_Uµÿuý׺ºlËmÎäuá—M±ð–ñ³°pÈfF!ÅY6# à q¶ ÇÅ2¿\·žÂÕTÈI¾¾ ßA>iWe`Û´u¹ýd¼hKÐÅ«Ðø/¶Õ äØâ>ÿ¬@UÓ”çëâ€Y,Fx×¾à)γ%ˆÐ@ã3&êØ¸vÅ¢q·ÕëéŒs>ù§ lÞþùæ4õ3x™7mQ¿ ÚLgdRm‚ºåæb]l ïÜê”:Ÿ’ILTnçÕæ¾‚@ ˆ>ó=Vôç²ÆÉ/¢üÌÉÏöò;‘וÝ{íÔ{)z:£`A¬àW!lÈC2R‚ÃO‘–’àis]¶s›‘+2#ðW4Âû²nÚàwŒªÉêe UðÜRÀ?^¯Š­÷ɰV BHó­(2Úôµêe/Q Œ>Pjž¯!H?ü‹mq±ð0£÷ öáƒMv.os…ÝJÆH€PO—š‰QŽ3=¡_ÜlóM9·våz²±!5( ¥.HC)èÅÄ4Ö„ð΄`—`Bÿ2ŸÏ]ŠÖ ›‚®ðÀ–¶ò_CY‚7ój»(mÆ"ÈM‚‘Å-Fæâ]ˆjqi\ôöÔòq«'+ê…iái>¿¬Ì`DmqëÆÅ¾Æîë*ŸÄwëóêq» ÷u[Õ6Ð\±ªæÌXq\ÍY·š[ã¶õζÀð¸¨³É ¯ÁbÀ’T# .´‚Ê0Ê’Œ µÅR¢Ñ”«!–œ"…E –\ iXŸe]@C -lÆl ˜Ø:l#+| ¯C?8õÉÒwLÜdݜۭ@iúRÞ—)!3Á(¸_ެRZˆ÷k®Bµy݆>ÞÑ›ûÄ·S‘‹Çã¹®6qf)b8;Þø×Žö u(Eâ*¥yF†ŠæJŠÊŽy††[˜ó°IÁ•cH Ýçêã N‰ÅLÉw½½„Nî&¬—±$Å^îØ,voë"_ÂÞA‡q°x|f@ˆ ®a~Á|”Ç4 „$%cQlòíâØvìnÛÁo#ºÝ§7|¸p;¡Jûuñ êN»`k7ú_ìn—ûšngÈÈ üpeǬÀÝvÇÑ:lâXºQ:7‚®˼„d§Ò„EèN§ \ÅÆ; z]§ pvBc)¸ ;¡Ñ>Û}š‰É›8 (O AОˆAÁ‰ ¦¡íCvž_†ËÏ.6.aᆇ4M7¨—»|±;pUVጛj`æ ã&è‚ãÁ±±*¿®ü§°~‚;?j#üD¡ÐX?%JvZç6#n†úó=%Ñ•4ÿrSÅ{|»ÊC ċ߶q  lú×~kÚ¢‰99`JhÌLêG§Ù=¦„4§p•L`J „ =0ågnë1MÁYÀØzœc² Ý©ËSç@Ž;´ÞvUm×7~å/¡v±AÞø§²ºšm×shbm<ênWàðÖ¯¢Ãí:_ø‹L¾ö–k$õÁUa/CµòºŒSë(1ù.1»Âún\'¬Ô·Ýl¹æà0¦ ÂÄŒ,×\+ ¤‘¦ñªúë;кÙyi{W¾¿IUË»Š©F ÏxÑ ¡¾`¡øì݆ °²W®¡T£FƒµyI¿AµêËÒÉ´£ùKx0ßÁáB! ¿ ”¤¹ãrH†4á)X2H8Îú,»3ð>ÎòýtugqU4h”+$`Ðï‰vÛ¸B5\kh¶Üi“äÈ"‡Á=Ù J¹â)a¶”3r¨ÿ­M„)‰0%)8»¬²Àþj w‘Ç௠¢Wc•€µ¤$Ö‡,½€=-,––¥ Ï¢×}†·F$ô@-ßÛè,䊆ƒO€`-ì+…LÁZJ\¨qìxq";$}6v¼^„íëµCaÙÏ‚Â:´îéõwø ÛÏ…KRè5vö¼Q˜¿ HûSá’ª©14…y€’2ìA¸d®—ìqý_à’v6׊Œ‡¸,!©è/\òà’DQ$ǻ̒áÃ$Gs ˆd‡åcñȱ"D4òHëgÅ"S!hŒˆ+“A³”¨2ÿ=02•%á&À„NaI‡˜c‘ 8,²Çùù X¤‘k™™2i­B‘£%óHdW®§!‘£‰@d_”ç"Üx¤Hàm ¤¤¼†Ï0 ]†)@ÈÑ‚E ²+Ø}äx¦<²Æ£ÈÑbDü±¯û½ðãx¾}<ÖÞgeoW0¯Hh¶ñÿ*iÅùu©µ| endstream endobj 1371 0 obj << /Length 3230 /Filter /FlateDecode >> stream xÚµZK“ã¶¾ï¯Pù$%šx“®ä`oÅUNy“MíädûÀ•8#–õSÔ®7¿>_£Š”0£Ýˆ©©ˆnôãëFßß¿úæ]Îʬ´ÒÎîf®ÌäÌåe&žW³ŸçÛªt‹_ïÿþêo÷¯~%f9þÄLä6Ó–‡*gfËí«ŸÍg+tþ}–gª,fýÐíLeZ9´6³w¯þõêû ’Se9¦zøØtË…’óµú–¨óC1øÄä™Ösú±÷ë¦]-î”Rá3éæë…˜Mïô|Uwu»mv5ù¸®wÜÚ.îÄ<¹:%ŠÌû9«“YY”ãÕ 9URd&7g‹[V›f÷¨˜æÀ|Ö»êý¦^eÄÎìNj™)|x'T&Œà|XÜé\?§ ™-m&¥¾k!lf1œfÊ¥qý×Õ§]µm–®–âV$–­š€| ]Ë$+Š¥A¤ß @zPójIÚ]îÛUSØ=òn~×ñ£å~·jºf¿ËwÖXSÍ+|VÓhTÇMǯ?,Œ™W›cÍdö-ëKh“Agc}1o˜]Û¤èýÑ*_Í¿ÚÕ²˜×íWlùx¦·Ô¹?¬g#Ö3r"ôPƒ:+á!wЃaŽ_rá.}‰Z*ºRÏÅ·Xž6ów,è1¯q §åWCÛ=ãäŽ 0'ŸÍHÕ¥íÛØ™•.³…¸Ñ¼ 0ˆfÒE`êÐUmç—­‡Ëf›¡5¾_Üñªéáx¨WÜMæÑî·aì:ô1~â×~î¤p¤Ì4yùêé%ñ™ñ3t0‘²b Mårn&ªsFœ!Ѷ†˜ÿ•Dç‚ u{è‚õ" Täx_ósâ€f2«þm[W›T—Æ2Í—»J¨ €9La Ë›Vda"@­'¸ª·Õnu):õ²è›dÎÝɵåüÇ'? Å#Úúw`Nêö©Ý“©³½Ç(¼ßO÷Knò&«3f&¨áé@½HKúÚŇ-Ôƒ9¡uuˆ8›‰\Áñ¡j> #®ÐD:%aÝ:C&SÚb¨´UƒµJ5Uc3‘=y™™ >µx)\ÓNÀ†„•1©Õç|ì‚oFs8¢q F0šÃШz~ê?øÐìÃ7ô¾éÚ”i™C â‹cÝ<®Š’@`R”ʳ\ߤ(  !EIäÆ˜)HhS‘K|Jç+è!-¤½û¶Ž`W¿æOÁ_{2Áª¶Ž²­Ñ)²THX¡Ì‰E™Y)í¢ÄLNÚ3Q&(kˆ<—SP62s¥SŽÞfŠ0ë\†Ôt @z`Rk¿Û|âo`¨…•ø©é´©½Dë⧬pjAá·¢Â}ª¼â ¸Ú0Äêù•{&¯CØTí)P~lÂiUŽ©{ÇòÊÁ¸©½ÄVi¸ÖЗv:³Fß׺p~&m‚PÖ1À¾Æ"ÎÞ7¼ªù ¤‡—ÐFä¹7Úkq" »ï.@m‰“¾&ËòÖ°¢rhN¨sf¾v‘ÿ"ß+mùÐ9‚¦Qj c&È/ê<•çp=I—ÓjLr˜Ÿ,­:%X/š™ÖÀÑ X“Úe™þˆµç2Y`[#'!KÙ1¹É…Dέ;iÚ `îôŒ(s%Î×ÿlQŽêb Ê®Ìò¤¼‹Œjiw²Dô¢|Æey)?§‚§©À2A¦¢ˆ§zLÔíD‰P]ømã7 û®Ïaî×È0ÖûÍŠã²C ‹Æ¡wµ×»›¿ùkBËÎW ËcÜ0T¡š£æjÕ’fÅmEPý:©ˆãACÉcjDßÚ?Ѧ(ø››ÇyÐd©i#œG “šaÙCyaL¥Õ£sƒÌ8†ÕËòK«#rùGÒT½QÌH .Y/žå< `D ÌÈ8 að"ëb¿aA'¶H ‚hWõCEÙû¦©ïX³e(ìcòóâh,O‰T9Ì!Í×§µåâ’3â¼7NצfPN§¤2Í…qn0ŒJž½ äÅ%%Ä L”¥|YÛ¬æK|Y9hX—Sø²röWcÙV$tI5ׇä7ÕÍ–<ðöbWÜaCédÂÁ ­gÜEppŒ uYïàx„ƒ?†ön4B5–zÙµÑêk±hs¯Lú5e6yqͯ±!®ø5-áÁ˜‹›ÜZÀ 0ž¦²å@S)XB>V¨+¾MÜOêÚ)»6 · ²÷®½é‚#t’3ö㓯óÎ=¸u’£1Ù}.KpÖX R%-·4H¼§!FçTÖ+3 1ùѯ|wBH3óï7oß gæ?5»ºj¹ýn¿ù°Pb^· ï¥ú=¢]ìzKgYÇíÓ!±–Ж,]V¸Ûœ$•~ªXWyj>tûMÊ{eܸˆÆ±œ°©áCË „!Õ©À½‰‚ ò6 Â×»¹ÏË+œc!”Æ5ü†Y3?l«Íƃ‡]@ü;àÐñ;ð3³bAõ©jØô"þ´Ànšv¦!ÛTíãõ¹iKäK‘§éñjº]õ¾Ù Jñ 5'ÐQ%8†Ñ=|Ø`¨ôÎïÔ©Uqe”€©ÙÐIêd§¡ì]ÛqÏTñDÃD–}µï—ûíSã¹èécÓ­¹„îÛŒŠh Ó?v{øXU ãëƒÔS-—Ƕê‘Ó1Îðk¿\z—ë‡~:tõ–6]2ÀcéNçÞ²·ü–xS‘¬Ù?X²=¤Ž¡d€ÇSÁ»à‘.{0<â}> ­ùå0iÄc„Ç“våà?îåøßŸ1 W;N †.í€pågì …½–ùœ%QЬ(Ô-`)àª2W~*ªúŽý&±*kq}›xZ„8+ÕhTÐhzhT/¦}®(®ä}}¿HböhÀ{¶½ºŽUÂj_ÕŸ«h*Ó“®·©ÃD§b¢é¥<# §Â‚ëv ÷!cOßµ²§»Vo9Ï[Æ­ØcŒd= ›£ßeÅç.R¼ ÆûGÖm³$( WO1}Ä:€J­ûÌ“º{£3S©–~C¨I&B…ƒqÀ! RßrÍE—Ž C3Qø~ÞÌ m†œœ€¦¡‹GvLò)äÜËÁá!í¹àÄv„™}ÀS2Ÿ¯ë Y§(ç\ìEƒÍ }ýŽ ý-Ú ú©&:khÕ.›@lwÄýŸ;Âá+ŒÅÍu8}&;xàaÕÞ_áA7]{hÚzp+øh”8ãÅžŸ¼„]*2}›¯ ™2†²Çf·c·À_Ü7åé >Ûæ?ýU‹-Ͳ,øS|RñlkáV¤ïl¼òQJŠGö=O74ywÖáÈÔ¸Ëa 6¾©å ½ŽÏVÝÖ«£W8éE+ݹhý)¿¿-"C¤–ãú­t}¤–±xKîÍ £Õ°»×¼$÷Œ[†ê­LWo¡1ìÔ!`œ‰’Ê Øf·ztŽ)¦~äó~¬Í4œj ¢¦Ì4àvDôÉ;q—É”ø÷÷/×2‚?'¤:JŽšÝÃåw$SÁ)6\ØeéªÍn]°Ç,µ"ÀL.^õˆq™ðÔKœÌrá¦àÀ™L=â ã§êFÉWŸ¼Þ³×¶ûM?Á½ó¼ãçèONbŒï•5º½Ó„ãrâá–—ÊrÔHÕ\vAÀ`ôãëÜÿD÷Ë,]þ };þ ?µï RÖ|3ˆ¾  u4¡&ô®;ãúöAáçÄI# ÌĘbD¾¥ž™© ¹É·zs¡h&SÚÞµ·ÏÕSl¡¦ \˜Ì"ÏަÝSÒ º•æl#ínÙp8Î7éVEAÕH½,þ¨(£tþ sé´é endstream endobj 1382 0 obj << /Length 3026 /Filter /FlateDecode >> stream xÚµZ_o#·÷§òR©þ[’$IšÜní6I ìÙk[8I«jWçøÛw†C®H‰¶'¼$—;3Îüf8Ô÷7_ý¤ëIÍj#Íäæ~bk&'–×LXèßM~›./•œn—ëþò›Ÿ/~¼¹øï…˜pø!*V íç+[Mn—¿ýÁ'wðòç gªv“'?u9QL+ ­ÅäúâßðHT"g½žDæÝP`­+¦þ9XkÇjU嬻Í]»ùù~õ“K&+hJ¤ægýЭ.¥››nÑ_ΔÒÓõ¥˜‚ÔÒ¢Ô0¢ˆ5ç+šôî_ï`ÚÕ5’ŸÌð5FBC1*ð”oçH‘µð|óÃ/7oç·ðOà'‚ð^]3jß<¶ôòãeUM›ÅüŽº›fõÐÒ”ûnC!pñ”@æ¡}ð²Â@·æÝ*“>`Ç…HÎ`3¢F~çRÓ,XI¢cÎ*aâ¤eÙœ´2̈‰© “R¿¶¥’ծη4c§a›ªºö¤¸¬Fk*Y’6†)íÎÂÖ€1‚­eliÿ'ÁêD}¨7÷¢Ú,íB³º#ÃÑVi÷ g>ôdlwí}³] dq` laÛC ÖjñÌüOfÒ2^‹OöSÁÓÉsø?’²NëþÌwõPpCm`–~٠שÛ)òR3ÞåK.§ƒzà9ºœ .§1­v.mr9h¤.ÝèrÐ$—ƒÆ°ãBB—ƒÑåH„‚¯ Ëœµ;›áüP5–Y=š•,P±°gÇÝÕìø¼ä®x>à–Ñ’9%NrœŠöI%³Ý/éì^‹£®“,ÁZRkâ;„¯Oñè<ªëeuUÉè=C£ ÿÀ$޲š^]*pÞÍݼ­¦oç«¶ÙPûº[|Ä÷*ö=Ü£rÈ‘‚?”)3©gNœìÖ*Oʈ°˜eÿ°ø¸(¹cÎ+£²¯Ð®Ç…‚Ê– :1íûæ!èpÑ~Ä9í"x#À‡,{£ä°C»Y‚®BðÞfÙmɇ¨ßÝÃSÔ°ÉÍ⹟wÛa½ 3î7Ý2è\aèy1t{‘a¬Çý€áv>á$‘'>ß]ÿýí¥búï·áÅŠø¦ŠÀ…ò|‰ËÆK¿mÀ£GÀÚRnÄhŽ@#à´r©¬ÇX‹‡èÆy¥è-gœËãpàê1Ä¿h~ÀŒ)n'U¥!lÊp&kãI)!Ró «Èf?é¢|ßÁ YÀ—…%f¨9_Ýh€W«q  iêÝaÆn·a×Í'ÐV ¸`D‰¿ƒå§z¼ÐLwR1˜èp‹ñÿ1ñwH´¶gá©“ƒˆžqï‡Mvý\@P¤7ãJ >ð8†üø%Aõpèýå Q‡:Û¾½£×ïñÛgÝwÙ™Ð`\V—ÀIŠÚè雫K§¦ßý³¡(]ðïWôÌ0?Ȝߩ*¡ó€”~·Z<ÓHƒŸ‘}ÍÍûE&ÞÓóÍÚ/hPÿ± ÂâÛ@ø¶[®ç Töžæˆ)D 9 ®Då!Reæ®b²£Æd²aªÓꎩÎPÕô i`ÁâK˜+ÿ”_°pz±º¾ŸûÕg1ºÿº€r`Sµ†-”‚ )"Ô {hVØRѬ¢<_ÓÒG+#qwÒ¢¸ï ò”LAg¦ð­ðq(ØŒø}®`_‚†¢pÀÜËg÷åÃI4‚Úé·òÜ­ÐûBTê_R^6i§Ã7‡ÊS;ù2ȘA W#˜¦§•£H©Ds–ÜI r#H3 LˆÆë³0Õ°Öì1½/ð„´\užˆ²9ÇÛnÓxÚŠIȶÏÁÓ:fÁ3®ķ¦F¢'üW,Íh@3ùWˆZ`sfÝýÌ ŸàÅfÞŒù#‚Òý‹1Ž%vï°p݃7ÚÅlL;»oíh¬¡n@æ~>Ì)ý¥á¬ô‚è±lL>ø™= åQ(?y$Ü|)ùQŸ€â@¶n|s°nOä±Ý´qm pï›Û1“T\(Déi¿^̇0´¢§?mN`㌠ÏÈÆÿCZ„Ó"äO³äÅú¬ßRlºë–€=Dš0€â!r¢§cì;‡ŠSMùûu㙞ðMmkç£- f`÷l·Ó ™0a|‘aìî‚0ÎòAØçq·¶†â.¾JŽØ Güüsþ µ‡ <¾; 1µÜ-˜‡—‹{€ÜÌUÇŽ³8-M^b é»R‚Ùª>å”à‹FuíIUæU®˜qî,<•ó……Œg †5 U…e%™•:cùC"®ÕY˜Z ç™1]wOc)S¼XÊüæXó³Ï_\Èüü…ÙcÌöÒ]ÍF)&/–lf€ÚàI•=Vnd¨Üüzýîê´’ÍS¿\¶‹;VÕô'á4#NËI$ãJxR&&C+*Ý–ü0Úº³0àôãáqÓ6w}éÜÔÝxTÿ„t ¨ †u$N¯áb‰×ïÔx«¢¸Ê0‰BЬmVS’µñµìPž'ê„ ñLSÖ›Îó¾mû¾Û:dø:RÞlW+ŸY_=’ ç½é7t¸Ã‘S2ÞWpÆ|Æìc\)„ë$Ê€9Ooú1Ò@€XøÓÕ½ €#]°paÔõÑÁæwÔ Ñ¿õg<£PƒCY"ƒãZaZ± -kÉÊ´?2Žéj¿tx5ÖƒËþ–ÎÄYpÝ“àSCº.œõ¤THwV%WÔ0A[sžUÍ4dÀ)ÏèD…¢ø‡û?cö 5ZïçNŸÝâ®ªŽ ,žµ= Ê)¡]rÁW®UŠæ,œ+ǤP{œ½•ŽBp2mýoiý4‰‡'‡Ýíôî¦,nH· åñ}l=($ød\˜xF‡­– ìT«ù•ÄÄeÓöÇVÞ+Aðo©tXQ bÀˆ ðüõäøK Ë‰XKç<á8Öš =ŽyÄEÎÄõ7¸–û>“ÇÆc ¼Ëë•©Ì*ãÌ*„Y|AÅ4ã²z?tc½¦P)ÍÔ±”oó«zãv „ie˜Å uⵡóå“#‚ ®Ž€,(Ê­‹š3®«“œÁAS¸š9m޹#⣄£é98ÉdUíq¦}(ÜW ({ä¾2S¢ÝL®+¿ÁøüëÊÓñO4D<~")Ãõø»Œ¡+Þ*JPÉhrWT4‰?«OZð“ÛRIÉ9Þ1ÆT«Ïþ6o—bîüÐkNMµ²¹r¿Ã»<9í—Íbá?ƒŽw<„¤%6Þ{dðùTx¿Ž"öÔ'¡ œ†ûù@Ù$ðý+c¶çß.šÍCÎb?+~•öмŸ/â>å´E€" /o`2øLXÍH1Px ,`[šƒâÝV@D“fØM0z¡•¤šØý¼;OHjÔÚ¡»9¸éÌï!€I]} »Aðbc\Åå©â¸ð¤—©+¼tÃiÝpŽÒ ÒCöK!>Ö°>=Jutð , þ+™5£ÌtŠ40vNæ÷¯‘S€½õ9p(q“ª~ÙüYXˆ†&¹müsît» ¿ù{™ÆË0]B&•üÎ E&‘©†lïe÷“©ñŒê05¸Ïè[z¬É·›žf<ÎÓ»[8u‡Ž&>´Aøø2¾ino·x»Jã°€m<åí¾Ãë¸V?õ¹Ú%“ ¿§8¼qÝÙã³c²fó»Oį€U–®?ñ™åk6\b#AkPV¦eUD(+³,ÍÆ_eX™!t#BÙ¸Çv¼ðÄ·„P6ùY—•Óyñ¼^ò®,ûæèO*_ð8×NãÕˆãö¤r p¤PHÉp·ç2ñ1WÐÇN—6Å+¥âÉP±éà–y,ê•êFè>œD¸ffBé Ä>ØKojµú?š¼ãx endstream endobj 1421 0 obj << /Length 2940 /Filter /FlateDecode >> stream xÚµZ[oã6~ϯðÛ:ÀFåT±/Óm LÑé¶;Áö¡íƒÆQb¡ò¥–<™Ù_¿o²(3iRk1À„²(ò\¾ó#}u{õÅ·¢\”E©˜ZÜÞ/tY°…&eA5®ï¿,»Íþú·Û﮾¹½úãŠ.þÑ%¦¥pS¹–‹Õæê—ßÈâ7¿[‚—fñè¦n¼\cÔ.Þ_ýtõÕ™HJYA8M¥v«ªm¶_ZÉ_|kFÓ…*´XÏÍûºîëæÙÖÝõ ç|¹Þ]3½|ôýºöƒMÕšOv,–M˜i%Ôw~üÁ>ôÙ~ÿîÇk#–…½¸B•‹Ê *©z»v‹H¶\퇺Û_ß0³ÜmïܯtÙïü]/ƒ×R.«öxM—á—ݽÿûó{ˆû[Xí­üæßï~%’P‚ÿiq}# IÜíûf·õãá·mûÙK®ìA M-«¦­>´AZ¤½µ;Õv ½®Â Ü êzëMÒã®v›}ãu¥Ìò±é×~ä5Å¡)wyëN‹—ß6áCµ}wîw?èýy0j¶×Ü×u¸5ÐÞ “ˆw*F~ÀJQPã#üJ˜ð³°í±s¤&å}YY”¥\(à ¢ùs¾ÌŠÒ”©/'⢄w*à £EâË™3p ¥:?‚™ž€Å9Ü+¤Úå6}PÑ]}_ÛÞ;-7¤0œ¥f f9ÖiÂËLbÀtA˜y (Ö³`€]Ja)¯7(íØV‡¦¿æ áy¾% àœc à#Yº~à^ïÚ» )³ ¦û9F±–Ó¶áÙŸ½¶‡¥¬P‰ç… J”/¿v‘•@¿±¯ÕÆ‚¢Né£ÎÞè6UÛÚ ²>¾c«ÛË´ã¶î‚´¶ùÝîµ¶0bïTþç›v×»«W8›'4œµÈáF-2-B—Ão´0ª¬ì h‘Zxàm€WZ$‚ñ ¥h¹ËLá*ÀžÃ.=L‘”Lá÷S¸ãa ¿õà uÕ&gÉœwˆ¨é éB+Ýå9¤"…¤êy¤¢¬,—ø³`— å GÝRLðiÄ墭$e|á%ÔF'‡ɨO”…t¢>ó¤ö¨7„GI‹u}0MDIw³r Ñ|4Ô”§ø© Í0œzØ#^…¥æÆÎ°s9°HÅÇBažMScƒ¯Ps.ÉÀ@ùÓ:Ãy¹ ¢àB1;ë†3Zl醋BEfõõõ ÐV.ÿåüØžYC לBŠB?l*?ðLƒ7ï~üÞÞní3¢ûjUŸoÑf¤Sª"-ßïÚÖs4›ÅWÞXmÓ9’dÿ[u¤®êÓ ñCŽ6oÍë6Ýó—O$9äI¶X­Võ¾wÏŸû>G~‚&%ƒ‘™¸(Óp W5n)Íä‰bµ¹§róˆE‚“r"¶ÙÞg„‚1p¦9„užÊìwm&| ¼ÖD—ã-±]ÕÑäË½,@8ó{”Ó|§Åzƒ„ÿê“ lonïïGç®pƒˆa3Î#†¯ð@X p›Ã#°” ±íúCÎ%ÀËÀ0竚Œ¦r?6»œ#šÒh©%C'S©¯vŠÀd^êV—Uãý"¢Ã®­b&?ó›9Þ ^î ¼¿„Íà v)­¿;V9«H](£g‘ª(F¤Róð EaÔ,2µÐèTæ_…‡õ3öwÚó)޲½¯+ç5öâCÓZ”о¼8óÐ6!äëQ|a–dÓªM¦UŠG(PïŽÛ»Œ°%ŽÒ\à"/‹R0J{xAÁÁeˆÒûCµ:ןQôÔšëšCì°mšm³‰Q8v³¡à|'WŒ¼Ïô…¯¯Gšã¾Ñ†|%U1Už, QòÔc_¢<^–.ÕΠ<<&‚xcÛ¡W3…ƒœHg‘,XAI%[…æ(œDÍ#UaF9‘ŠºB,«p•C+÷íØÚ“ÚlŠé‰É_D4®¯w$*[®ÎáZ% P²?vëLÙ®šüó(ª>t»öØg"(VNâ¥ÄCø©RÂU¤¯†‚ŸžEqÒæ’?@>eħøÐbØ)©XTº½O9©ÅP^14¾µÍ&?3õÝÄîUh‹0o -'‹d&uêÊO‘ÀMø‚s“êB8³ý¬$ñÓ³5$³Ý 5‹LN Ay*ôÿÁ/¨mm Xã‰LFƒ@q* Z^ *ÌZË’½$»ØÞ’A®¤J?‘\löåóUö¥Êä´& §‚¾«>EÐD\ºî“Y>Z#GXmQô7ÝÇê|ááè Ë.mDýEöæ"Ê×ù‡}¿Å¨™Ã?ìR„–Ïøœ;¶<‡TļP&•ú‚€M2Ý ¢õÜÏÖôZŠN(ôH(¢eQx?wŽb60maï2c€-ÝRDDèìQ€õu—ïò(%g‘¬QÙ–J~9nDz˜°w §É;Å'ûÃiÊøçõ5ö$.žhu0 ½`’¡º EñKÍžKbPˆ_œC(£8a™ =&bŸÃR Ûähžïn¸–Ï„CÔŸöŽ×Õ«–S¯„ê8-Xy!4!´ˆtK‘²¬àví¬ ² È±sÈV Û¤²÷‡än²ß›P^Fƒ|³=uVÖõñÖݬºÐ‘ \úc³²¨ô{û9¾uêë•M'}|/•Z).˜ìaÚ‘ä…ä þ+¡"§+¯2È ¶gÂ.z-^×´+ÑØÀGpo-jæ„a—ÖÍ/—Lí÷T¥¢ÛÚãu&n0]êá¥Ù,¯¡Hìb„lï;í$ŒvÇ~ :i6“Fø´™°®rt Õ4Š×9¿°cNìç Ú-EcÇÜ'¹i|"Çi3‹L[›ƒ²$2«|}!ªg‘*P‘J­‡lÑ¿8½ñýæSL^üÛLUw]õ+âsuì, µK8+²Ì¤_°Æ¢Mõ”òe t‚_؇òíÇ%v)ª@U{Àƒõ~›~O$g¬­ a†øg„™zÀ,±üéÀ¹ù¡~ìãáýºˆaݤƒ0:o®;ÎÍä-Éz·Íve‰)4âÆZX‹¿b~%ûâ»C —GBñšC°´„–¥’Om.“;`È`·mw÷ºuý›Aã›æa=êÌt­»F)Óˆ§·/kXo4 ߉ï¶Í¶®ž0•Úñ]qiŸžºoÂìR,¶ÌGÀM¡5=›E®°à£S¹YŒDi9ý2•ô®5–yWoªØDK\ yêuzÑMxÄ$!Eµüjçdkÿ)]ÇéêzÓÅ®ȇ%ŒY Aþ‚KYˆK_ —ÀRL4ƒë‡Ò+ÛNCÅUõ½ß¡?©}Êî‡\÷2DƱ«§ ¹^É@¥«ãÓE¢e†d‚h¦"Ë9‡†°‹Móî36½É…Œ*›C¨ýÑoÿ$tü¥jb¡Ã›wu¿Þ9•ßMZœ#—§º¤›ÐëÉ6‰˜~ƒ±©˜Î¿Y´_9¡(6æmoEVâC_¾ù˜­ÍÀÁK1|ö£ƒµë³¯SÏ«³“Dpd38ò»7þ”™Æ»ô5 u‚™C#X‰ór¬‘l³MJWÈåšmû±†Dª¡Ü;ö,Ô£†Ä !×^"®™†mšÐ™/iÔÈÿÜ šs endstream endobj 1459 0 obj << /Length 2913 /Filter /FlateDecode >> stream xÚ­[Msã6½ûWè(WÅñ ¤*‡d7S•Tf×»™ì%É–(› %*$5ÿû튠 Üü}CüG4SD¨~(×r±ÚÞüöG¶XÃßáÖ,žÝÐí‚Á5üª¿Üüçæû•Dkc­ûòã-g˺K¨æŠdBÍ¢š[" U×ͺhPí×ïÌh,§D+ÂÜ Ô»[f–]SWííçb¹¿¥K˜4Ó8i¸Ã½ ÷³ÜõƒÞ׃9™ÇenIwÔ).^@Ï;J‚…Ø»ºJ,ž+XXü=®Ó ë„7Š&ß­Š~›Ú/º{*úU¹+ò¦ÚÖ•{9 s%ˆÔ#"/BDg„1 $ *3rŒÉ6ÿt ‹”„f2Àò>ÿTnóª_×~Œ‘ˆ1â'‰F|‚Ñy¯1’˜LL1ú”‚ˆ’LÒ…’ÑÜ^‘€1N”½ÎÕþÐɱÖÌ¢“…¹Œtvå¶85ÓDP3éý¯eìaÞ–] K þ&ù[°B VÌ‚%Ï*¯´ìRì`Jc#OC9lûeíüüùp{7 ¯zã ¤æ]YïÚÔâ…&Fë)ý¼¶xJ!<çq$%à‰SÚ¿gTìŠm±CúO±¿4D0=Ë %F‰xmWìÛ!X–Œô{í°×CØN°ïCº4^'¦÷N·Ï&cI9¼À°í˜(`\ʨ”2¢¥zƒKKHC4ãsXUZJlæcµ­aºl¹J¸uFü2TÛbUïÖ“L+–«ºiŠzºý¦ "G¦¸¿$–™ QL¡6Cð{&³÷.àê½7â.ßßÜÞ !Ï€m9‘Ò.¤†–æ5°@]ÌÀÏ…Zó5N—öH0-ê³kOzy€êä2®Ÿá J5ábŠ8'+µæÏ!Ir’Ñ+½ŠAЃ$F —S…r¸Ì1i‰¶*žÁkTA§.wcªvŽ­/¡ê7ÓÅQRš.FµWÚ®‹fšÚDr·¢ á ”¹Ytj$’zÞ¥BR U:àú#Œ"û㭔˼:œ­®ò¦Áú.éÒ?Üç „êm'”©ÁL¹ó3`P(’Ÿ ¤{‚…"T¤ ÏsX e`IlVpù‡ƒ ›¯ó}ìm>Y<¾œ¡OL£oÁJX½›ž+”Dµ ­[¾ªe!D²µÿÝ/Y,sÅs ®ÁUFÝÜȽ/@´+}6öáy2)B{dP¡Îæ€ k]Ήg9 ̪á—íמbÖ0x²¼ÇnŸ 1낵Gìª}³‘ÐÝ]ç1–0€’2ã=¦]åÀ–©]HÓàÕ3è¥\“,£±âtmÅ­‘l¥Š+}lòu9Ê—ƒ+¬9ÛcàˇŽóP¾"cçI~a–ði~yÅÞÜO°9ì ’$HºÐÞ×ëì=V aðÔ—ÁëòX  ÝÅ/Eì„bºb…?íÊ¿µÚb=Ùr Ë‹ßý×Ï÷I‹d3“ž·†¢D‰åŸ ³@ÎAö ð7”B×FBc"(ÔÝV_`ƒüw½^4 wK)Þä«®n’9·ä‚MÆÀúWÎìv!‚R-ÿÄ.ä˜Bá­Ã®ïKÒûTM¸: ?z´«ÌÆÁ º¶k ¨t’„d¡§¡¢Ï¡S;@}ÈÕ,j[Íc½Ø7¥w]éÐ!¾+CÞv££~°‡«í/ü"ÜlÒÖÅ&?TëË ÁZ6ÿ»n)µ»ÝÕÀWÁ&‡®*>&¦© €é…m!– Méú€T×YZ‚¿Cy͸º¢?dÐÖKMA’‚^Ü»;N}² M¢XþïÖèún¤n¡ö†¿_üÎCž¦th<5) ÚRë‚¢V1X—Ô@´Wº-,4v(Šƒ¨‰ßN»dèØ/q ÜWu~Þw¨k]©*rDd\vmÑMJè]}”tö’Ïù,FqûPë²­ShBo‹ÑÈ xÞu‡ ˆF#°£¡Ãî_·Â2á)ÍÉ WèY´+ ô.bí—¥ïq–˜jW¥#r>Ý]×C·|Ž8Ÿ89Äöô âóf¡†=‹U@Ótˆ­1c¹açÐ)20«šèܤêT¬ø*%d÷XáªnRéGCI ã *µq9%Rºw¥Y.ÿŒ$O¥+ë¼ïý°Ëª¢"û®Þܹ©;Ïóç7í°6×*,¡Ï‡Ý£g‚wá¨sþÍ,Ô {Ì'gvÁ2<ÙP †Ý»ò¤ÂÝr' £pH(X•<‘zر4Ã}šÑ>Íè¥o_M3R¡Å£$sÉz5ö³,$Q3.ÊÚ„Z`&ÊÄjŠEj×~ýv;óc%iâã{!½wUƱO«ª°×á©yY¡ûDWP2èó²‚ '~ÒO\b)‰GÙbSI<Ëöª¡?jRç’8DÌ¢Z“ $Ò:òIꢄS׌†úñ1Ôû`«!•ÆpˈJÜTÞg'ÅjSü}(›bÂÊjÈ‹Ìm\u6 ¼Ì¸•…3ˆÝ¦ÈÛò¡¬ ÈÁö/‰î¸aŽÈÀçãÀª«tˆHFäñÌþ¿#¿±7šø±>J‹¶ÿš¢…60?>Ø?åmzo]e®ñŒÌÓV¹+±þJE'VÛcÑâÊÈÀ#qåD ªúlwØ¥|ƒƒ3ÓYT㶆0±êM“§Î¡ Poý³h6ÙâJ^KTyÜUCÖ¿=ÎPƧhxã¯ð)†ßáí9̓pÒýi¢³/°X†_ØY,–ÑË­5ƒÚ`­ vhŸ–‚ädåç-•?@isèV4žµ÷VG+AE´>³u"˃ä7LPîá¹ejæ«Úuã¾{,†™N>m¤8vÁ³™Ðœ‘º²2ïsa›šŸÀ…„é9ð±0c–xvå¶]ûÏê¦ëï?—Ýöp¡—wß½¿ÿù›þA‹›¶ø£Þ|?¬ZÒþúÛoý› 0œŠW'ä~õíª{G/Y/8¼³?–x.µñQ_L4e_LïT‡¢ý — X@1ÈÑNœPé]Lô(£wÌ×+ëC|¦Äû;ƒx÷®‹â}Á„‡Ýá#µ‰ì#¾8j[´mþ˜¤n&ÜÞI”Í6EÐÄ `‘!èu»ÈBhE1:œÖäM²”D26‹Zhé­´±ÚWHÃ<%ŸE·†Öf¢ú:¶bà–Ž8ŒZ¶þL|Un^ú;O5ùsÑm¬ðΓB©Z÷¿Ç×Nëppß?ÀþA¹k˵¿ÂÎó­…*ÑÄžß×Á››âñÌÆð—¹ŸUÐáª9¼?1¡ú"ç›A©÷½±Òð-Àé§x:ƒN(͘ŠuúÍ€òÜA§`PÜi«õp­µË PíKœÏàÎΟÞô®Xuå¾NN‡Süöܧ]T¨·ºî(k:‡[àŽ²f¹Å J½[Œ•ö‡åUJ¯bÄ@¸Í W)¨Úe¤÷U&Äûl˜±œ³BGšßD„R0çŠøwL„x‰Ð âÅ@„‰Ð½à™ŠäÑèà«í¹<ó…w#êøÒÕéž/±.h×s£ß»^ש½k†Ô±‚ˆkÿñ2‡FI,üÛ@¢éŠ]²çÖðªžE1ô΂FzÃGñJt# ½îõ*Y&pX¤³kÊÇÇä>©!úøU§ÛèðC}±}è+±ðu ²c8N}v›ñ~Wíç Câ> stream xÚÕZK·¾Ï¯à1ÉÃz’~@I€0,’,tPäA ÄØ V+Àù÷ùŠ34g»±éqàËnõ°X,V}¬»I¤¥’HX“ þ+'j5MÜ,K1 “øªI)&iKjcVOÚ1LžLúŽÄJ²Qb”œCŒqroÁK©ŽÙ¦©Y6OÝsM½S`,2Æ:¨«:æw°Çº±8—?ÅƒÂ£Ž¹ŽG­1jQH¶*޽IJ’}h[ñ§¶X#¦5 ¾ QÍÇ($÷æÀ„®±D…Ì>ì¹ð˜Ð@Õ1¡'&êeÁ×(±ÂM@õ˜Ñ`k•0,Î –°8Û0{sP±Á:ìeLÀnÁDlX¡J¬Ð ¨± Ø’‡:ƒ: Áh/XK± )¯ÿý¯Þþã°Û Ý÷"bHÌßí¿;|8~|xwøpŠ"ã·?¾ÿö«ãé®àjç7XèífGL»š+ ã(fœãTû‰a®Ù†^-±‚˜Ïˆ«X©À3´†UU3áЬ`ÅÙÏÀè*VñÜÖ)€Ÿãį`åê9ÔV–Œû_ yÀÏ¡yÙÿ4Í®¡iò|h𮂿[˜°2ga_ÃjV2’ÜV¸:#o®aEÖÊ„hº‚µ×\ºÿ‘èÙv½ö°óó=ì²ÊÃlO{øŠÕÙ³w^Êؚ«µÿÅ϶l¥Ÿ±l¾ekYeÙ ¶§-{ÅŠD›£ZZÁ*m•DÙË*=‰¢­Z›‘'¸­Jµæª«¤6Í­·_eÑøj­<jVAí‚íi¨]±¢YÊ]d+¡.Ñ5œ¨Rsõu¬\Q–¬áD[…Vi*ÐT¶€¹bån¹é*˜ñ··5¬äŒx·JîÍÛ†pÿ ÈØ.ª•¯ht/«P­|®\¾¼¿?BÚÝ© }Fx&l>‰:‰6‰“Fÿw&h< ™„NÂ&ᓨ“h“˜’iJ¦)™¦dš’iJ¦“äŸols·õñïãùOïïÿ¹Ûu|øþð0LTÞìÿ°ÿãþë;aÕwðGœn(mL¹F]Å‹ 1EØVp}9àð*í|}L€Òo>`Þûãýï²òo÷›ªQhÜ/ ºGŒ®Î½.èQ6×CqBšÆuÌàhâ YPƒ¶WÃZnqÓ¢PX½çÊO«!m{5¤ŽÌˆZ7k»†œºà•ڷ׃`ŽqS¥¹â)Bx­ n±íí ¡µWiÙ‘qÆs{Z ßþ¬ Öæ^Ã+=«FA†„ ^±í½‚1÷¸V­È½-nÕPGÙÒa¹"¹H ÕU”þmÁ-R·Wƒ$w¤‚;Q/ ^qÙ\ F%TPßEQMIØQn-˜Ã·×£¢'æP·Ä­äî àÐíÕ0äµ:.Ès\аõÜÛ‚[Ķ׃[¦0CA5Ž ò\hÁ-ýzD‚í'x8B)#´–…|ÏÛ˜"ó9ÏZd˜êQ~<­Ñö0 Á‘i;p/WÔh!ÓÚöu± ÒïpŸÔ@¦£¥LKåö(°G¤ZE]ˆ‚ŒÕh)ÕbÒæŠ4ÊñjМ£KÀ /)±ýiñ’åôÒ™-^•Ä«†5„nPwŒæ’E„£ËKy–ä¢ðˆN0Þ‹­hî/Ùžlî¯YÝ¢¹]Åj PÿUÞº¨õëþÔê³ûÓx wnñf«H³Uä9Äsˆ? Í.Rf)³‹”ÙEÊì"ev‘2ûS™’eJ–)Y¦d’uJÖ)Y§d’uJÖ)Y§d’uJ¶)Ù¦d›’mJ¶)Ù¦dó´À1—£ŽõŠÐ/ñãéxm_Çz‹Ûíú)ڀΦ¶¤Èö9w¦ˆ½çxãµ-)±}…àZQ ø©ÆIv´ÄÂBá¶}rFÁ 2tAáäÒP×/ÀC䩨åñ¥G«èþ(¾@Ù®K9q{ÇXG!ßYp¼ˆ•Ôˆ£Tz(m¡^©ÛWMÔøÞ…£DÙ„³XS×íý¢=>™€=I¢L°Â˽Ž×ÜmòËø(iÜm¢ÂîKÕýw›Œì(*ûøŒÊXËBq¯70ÇxAÙO­'Š*T4áž=n`tXÅu”w›’ûRªŸZÿ|§t endstream endobj 1479 0 obj << /Length 2692 /Filter /FlateDecode >> stream xÚYMsÛ¶ÝçWxIÍN¯Ò3Ç\"¬ÍÏb©–ª~¿ObÃytÍ&±LEt7‰EÞ_ùj“׌zÑýnl¬²Ð›ïå¦*7E™OŒˆ²z+Á£Û¿*ü³ò¯Ùv[LDTbÿ«óI¬U]Våbbd”ïZ,nþƒm]t1‘&Ú¬ªêízÛ`1ôP.©ï‹ÝnS,|§mQ• •¶=/×ù6D7‡±H‹/Ï›fliâD0 k Å„4µù‡‹K©èv]l²e¾Ù­‹ŒJ~ã†K.8<öM Ó.…5LÈÐÅWÖøŠáSFoýSE—{˜`Ý8o£Mô1Äßïï€(¯}@GŸBƒùbÅë¼ü!ðëÿ&øÅñO‹¸ÅN[XMßiYµ9½U%5jס Øî6ù6/};¿¤¡âUÌÂwQ†ž‹ªŽý|»éú£ÙîüЫPª€0Iú|dýKI¼ÉÂgµk‹mñ£”’“Þgõw 2u› r0óŒ,ŸÁ,6Ù½_iØaGyk ÒGdz:o` Z¬Y Ο÷[ÇÛ^dúP€m™îb.ˆUgÍã”Ö…í–c—)K”<"ªëU¹SDõÙ8_WuKÕ¼Ú·À¸lãs9‰ÞåmKÒi:o³ºõº‡} øCp¼~‡¦"Ϩä8}Ï(Ý÷-º+ÿ³Ê1—¥SÆ…êÙàû¢Ìh@¤^óE‘—mñzPIf@úb@7~ã ©I÷ ¨k_y“íñØ,Ó§P:8aߠ›®B±­ÊËÁ7 JŒ³ ¶k_—Ávù…¸/Ï—ù9˜e/ëj×Ä6DNJ&¬>BTð>¤ÂŽCJ¡p‘fi—ƒ§ßåDÚßå0Š©ê㞀äÐ|=\ÝÍsw+oÜP ɰo%lßS‡Àë` éªïsúØÓG¸^oŽúpÎ\úœ\Á|5þXíƒë2ÁuAá@õF¼V¬³Ç¦¹w³£ä“NXšQ >k§ ™H`ºÒ½ºsÏŠØC)zP›ŒßîQÈCi¬ñPbÁ]x `þ–èc‰ß,ñ«ïp©„.ëà¥YgÍ–NºhVýÕ‘Ä1‰Âþb§‘[h¶ÚT÷ ¾{ømÿIˆ·rˆ²•ò€2~ø_’òïPÖ`¢Ò¾¡IáÇû(ÃQWøb×,JB™flM2P˜È›ä/쯅;•à G`rªZ’SÅïðš¾ ‹;lÒK:ü¾|¹êÀ `ìûÚß<åô1ï+]DŒÍôÁ¤Ï)RÜôÔÁjt `<©üÈßv!ýŸ@ †±9æ_êóO°1—¨R–9rúw^0Üì…öƒ‘wg°‰éT%ö§\¢P=˜eÂÇÁò˜áËu¨{ž˜•4¸¾Ô_€áËØ•>–#¢¾_|Hb<ÇÄË=RÁ·ë]TQÉñm–4¿¼—ôÝõ´åÄzÿ 2ˆ‹„ .Ò0ÒSŒ÷ÔfôšN=_ðòvD÷Ï/d…ȵìI‚Ä;}Þ¿Ó7OƆð ñ¨¸¾&ÀF”3¤Íñ-?×xÃïðB ùøà¢1n …Å¾í¿ tÇ[gì D¡³Á@SØúÆ)-a®J¢ûvGªîV|õöîÕÿ²oNÊ endstream endobj 1518 0 obj << /Length1 2532 /Length2 21126 /Length3 0 /Length 22563 /Filter /FlateDecode >> stream xÚŒ÷P\ÛÚŠ"à®BãîîÁÝ]ww —à$ÁÝ‚»»»»Ü]oï}ö9Éþß«º·¨jÖøl|6çê&#RP¦2±3ŠÛÙ:Ó1Ñ3rDd…5˜ŒŒ,ôŒŒÌpdd*ÎÖÀÿÊáÈÔ€ŽNv¶ÜXˆ8 A2QCg¡¬-@ÊÅÀÄ`bçfâàfd032rý×ÐΑ jèja¥HÙÙàÈDìì=-ÌÌA<ÿ}PS˜¸¸8hÿvÙ-Œ m²†Îæ@£±¡5@ÙÎØèìñ¯”¼æÎÎöÜ nnnô†6NôvŽfüT´7 gs€Ð èè 4üU2@ÎÐøOiôpds §ÿ(”íLÝ ÀÚÂhërq±5:@ìeI€¼=Ðö?Æ2ÿ1 üÓ=ÓÿÂýãýW Û¿ ílì m=,lͦÖ@€¼¸ ½³»3-ÀÐÖä/CCk';¿¡«¡…µ¡ÈàïÔ âBŠCP…ÿÔçdìhaïìDïdaýW …µYÌÖDÄÎÆhëì÷W~¢Ž@cPß=þ®•­›­×‘©…­‰é_e˜¸Ø3¨ÚZ8¸%Eÿ±‰à~ËÌ€Î6FFFvNÐt76gø‹@ÅÃø·’é/1¨/{;{€)¨  …)ôÎËÉÐpvtúxý©ø7‚cb˜X;Œ€f¶p¿£ƒÄ@Óÿ`Ðü-ÜÚŒ õc0þõ÷¿']І™ØÙZ{ü6ÿ{Ä rÒªšJê4ÿ”ü?¥°°;À‹Ž@ÇÌÆ`bbgp€|þçøoõK -þÉ¶¦v®ÿêÞ qýg3(ÿ96T€3ÈÙö ü½þ:ŒlŒÆ ¦ÿχào—ÿ»ÿW”ÿ×õÿ¿‰»X[ÿ­§üÁÿÞÐÆÂÚã Ð>»8ƒÎ†¬è„Øþ_Suà´°µÉÿÕI:‚Nˆ­™õÿÚhá$ná4Q°p66ÿÏýw  àÖ¶@;'‹¿.#ãÿÑΜ±èRqÍêot¤þM)fklgò×ÙcÍÝÐÑÑÐ4zbx1© ÐýïÝ0ÐÛÚ9ƒ\ â|¦vŽpM” À ô—è?ˆÀ üqD~#NƒèoÄ`ûâ`0ˆÿFL‰ßˆÀðé7b0HþF véßÄ.óØe#»Üob—ÿâ±+üF >¥ßħü±T~#»êobWû@ì꿈Oóˆ ¤3ü@™ýF Kãÿ!6ÎØÎ4ÜÿJXYÿ’ØØüöÿkê &@P÷€¿#€²úÏÂýÏ€Th Ìÿpmú‚B˜þYÿ‚Dáßå/èú›“é/õoý_æv.ް Ìþ€ øæjëdŒ  ,ÿ€ æYýA²þ‚ÚgóG ÖüîÈÕt*þЃ µûÝ[³Ý¿Ô Ìí«AÁìAoA[k éïv²2ý#uüW—YAYÛƒ®'»ß“aUmoíâôG|Äá÷èAl.vÎ@#ëQ°°þVü›……ëÍ¿ÅLMì~3:ú›–í/tþѹè-ò¿LAr²þׂ0êùMº‡œÍì¨9Înv8€b¸üAsrý‚wûc¡@Þî@Px? ¨1ž¿“Eò:þ‡ê_w™±‹#hοm@ þ_ü÷— Ðh ·8ggÌdYÔr_!„çF·;Æ7M¶«žBEçµèØêòˆô>‘ªüGàºã­Pâ`Êʶåàá‹×QcÍû¦xÅæ'ïgý¯J“»Íp X}ã¹GBÕ½°øt*‚{Þ/ÞjVàíRd™.œH Ùè÷n=îÕ½ÅË#_æv÷Ê٥់§è¢T#u fȲŒÒfqˆ¡é`¨ÑÎÝ‘gnn§Ñ2Æß¥¾ÒÀùG±äyim0G?Ìz®–ª0;uà’âjá@Þ L’{ ï'IaÏ{æG®óͧs„Å ,õÄÍJ«áû*à8Ññ}÷—iG'íÈp3þîh­f<. § ¬†ñ &+”0ÿI2X¨Ÿ†oá÷ðBB §nBÓÚù±ãøTµÚ;.‡›)êטÍÇ[>ô­¶4_öçh†ÃI ¨DS°5’%9y¬©Qå,1¥A§¨š\/íÞ·,úü;:KHËï|g5îxwNl…±'#…šýø³“—¼öXóAíÚ ŒÌÏ(úm\¡ÛÎ̯,ñuA´’ÌØÂH'%iœR)댳6NøªêŠ&ÇDø“½HÓ/im'ÅËŠ§hǬ'@¥ˆOQðºÓáô©ö~ú£ø?v8OÓ¹í¸ëU?¸äŠÆkiÛ¤ê1 ÖN¯ìùͱ&ÃÔZ_³ÄÍbí:Ëðú’ª .u“1ä2CS€ét0ßTôÿ6–‰Õaéús’*øLשÒA‰øe¢¼?˜ä9xÚAPŸøð¥%í§ðéü«£øwÞ;1©ìª§oâŸÃL¢}Zâh›à'.IÏIÃv>Ntã¡žÜ µfƒo‡GVßyd VþHôÚ ‘ËL]{Œ=3j€ÉÉ­Ûpi­Zòá}Cdöµ€¶[ ć­cXr­_¸“EmkN&Ÿ€âùÉX ÔN{ûˆS*&\3†¹(ÁKÚÑ#†_I“̪˜šŸM‘ßëì'¾g<€å8ùh¨4®‡JùíYÛ•d˜ÈÆm¹™¤ÙvØq“Ô;âmRíDæ}B¼î„W‰FÁÛ#k/½D¢z]éβ·Â=³ð¡ÙJÛ•‘U‡xE:<|€\i©%O´‰I¬51 ûq A—Ä^Œ×à *õÃÚéI2î$<:­²âs~söS)9E¡m®ŽA•®bDÐgî}¤­ÕÆ.vk\[F#®/6º-ç´G K…y:š¤ì´iTÅÂIú"e³ä)Ç«èEŸ7eÊ·Šqtn¨7ï=Y( òÉ'ÙóƒÎ™“W ÃÛÉ h(¯¿YùTሮ¿2T @$ZQ¢ ÆEÇX¥ Ø—#9Üêw?†àlÍVê| ð=ÔD׿-Ž«yÅ„yB7&ë@ö¥Ä Z‚“rwBBöIéçr˜sÛ›ØðÚÎdÿ‚ösÌi,U6(öž\‘®Û>ðEyxª,yG j#j’³ÖúÓ;G?o¶DÙ‚6âê@ê¶räv‚ã¥CފȱDÑèÈjÚf™+SKš„¯ÇCm­íÃà·GƒiÄîŒ]wæ$%ë.Ú‚K>›û‹ÄsŸáM$¿ŠQÃÒ,Û÷t÷z]é;Ýa0‹`Ïâ¬Ä:5­³Ëó}LBèé€Rð¿ªûoDbßûåóIocÕŠ"ZÚ–K{`h„à!¬ˆÖyß“·d…vßXñï[¤µt-£€a »WD5ºt à噬ŒЦž©5:¥yv$>ï #ú5#J|œFÈîã5¶.ê;¯ûè©,ò©Þ²R&ªý]ZÒˆso¡ÄŠî„F怵٠äP«Uœ®&ÕÜ;ÇÅ(Nг&þõ ŽO™Íà=Ñï[ü(zê¨Pᚶꦢ«3$çÊ!ò²!µ|¿‹üJ†‹P¥‡(!Ҽɒå3g´Mê)ØCÿZJô ò¬í>2êþÓ¶KĤ–DÅ¢‰åÚâ^}žáÂb—ú³€´ÁÒ`zVÊâ Þ›ÏÏXû×*äÒxÁÜÖHþ¹Oåþ¥GOgEË6¶\#L©t!w»™O˜EÚ(qà¥'½ˆÝ¿œ-9àaXzeW=¶<óƒöh7´Îë÷•0„-ø¯v&ŽòÎŽ—]CÕÄgu„Ì­*íRê~Bm üà|G ‘úî쌺½ LNòƒ¢k+„gó[ëüM2À–“Š@4ípÝH·1ýýïÙ¨*¥ÙîÍÂÃe®N§¢ÈzOC}ûj"u¯£Y¬„T"áá\ÏjB‰².³ßàEŒeý еøÉ©—z~v.tÆÇ7~ïxPÛÑó»¥Þµq¿¡Þ•â_òéô U=¼fv ×¥qúO4Nj Î¥ÊU´ÖD–¡-l¡YÀÙGo¤DPõ;ž!dúî¬2]}ƒïšùöž—ÇÏ„¶\oš=o×4V¡Ã~¬Ðûü§U‹gGíõG~ øPèкJ @¯=¨úGšÜT6¾`s…9Ú~šA¹¶°xHÛ­ ÙŒ*þ–}ôa  5i¡­û&‹4å¦ëJ´M;[»3ò%8ÅT•—õ5"ª*WÚ²ñ*î1¨úk8´Ys¡YòºÝÚ "ꌎ󰼢æÊ™4óÍ~ã|Fu{åçìZÀfÍFj«<ŽöDhܘ¾Ž@´ºó0ï@0OcB-ñž~™Íj×ÏŒïT?o‹0¾‹Eë8¨3!tNOÆÙ%äM ƒylÏ…-R „Ÿë´ .™DŽK ØÄ‚®9Yõæ&‡¶Û'E3ê𠟹8¶s:&¼Ê ¾£•hÕèÐ9.Y/ÆPŸ5;€~ÇIßÁ_lZÏrFx'#n6Çmk$ú(ÓÔãó!¡ßñ—%›^d±œ’Zµò¯2 æÆe¬mÙñæxºf_¢Ë€óœ_ÒÇåw¡Ø¬} Û¼ÄêÎÂ:9|X~ 1ö5„ÂpQ™éÛå80°×%ï‚è¤gAŒspìQãK›PûÙVäUoz“bÓ³ÆS N; ,ÃY܇ŽÛƒÕõné8ÂFq! •tohñ>¸ÒA—ˈì4'ŽÑ,sBÄ`$á?xDл‹L-öe¶«&ú,êHî~u$Lz–2ÃCHëØäÞ[ÀùP4ˆ{Oùýòj'}Ò1[”†‚Ãòck¡×{.ƒŸœ˜È1[=Kâh¢ä2#Þú³¯ôƒ¥™q®†‡Ê»É<ªd#V<Û2§ÎV¹>°b]»Èµþ:¡Ÿ”ûF‰ÅSO4P*B¼W<ÆÏ\|wQÍK¬Ú]YÕÞOçf‚c I«7¥q^&øu± Gƒ?¡Îj>ë-|¥;‘[¤ôI!🧿úªnQ‚i˜;„Çîö¹@¿äƒïÈ-HÖRÀéií™Ê(¿;ÏÒ \oèc†ÌOûã%4£GÈ„mêè8&°Ò•¿1Ÿ½|¡¾èKè·søÈÓ:Û<ΰ‡ÝÄ~¨]ˆ ƒ2wŠb×ЉW¯‚p¹S”%–PÅÏׂr±Ày^N›ža²ANÂH8iwŸàì¢]3­8:ò$¦ÚO„Ó;¬C¸ë„î&övu_Z¾xÌÞT¢>ÿ]‘ñ¤šÌÝš<¯nîº åÔWØ|‹oC¼&{˜Y§Q—vÇoºRÐHYˆd-þ‹º7\“ãy1jiÁ ¾Ò^Y€¬ÁÂ{8âÁÙLæˈ÷C–ïáǶÓà„mí‡À ”ºÉb7fÖ5”ùà£SQ_mªò‡÷f¬Y,û/«ä` örŸ»È yÊZœã÷Á“¹Á#qì÷1º|Üd¿a¢2€yÁæ—úç0Ò%o[imG òFäî!Þ¾zzÌYÏP½½W–Ïo¤³ÐÇ·?w¬ªÚØM¥žÂ,2ç‚C$ûPù§mÿòŒßàÆåE­¼;»Y „Í´ë:ïýŒR”¾³/!ƒì1¤²ÄqÉ+¶|¶õÚá¦î+R“ý`£‰{Å÷ ¸MoBöˆ°ÇÈÿ–ϳŽÞS_Oºs¡7‘ÉO«ùƒž@üi%!ü[x‚D7v†e-9Ø)–*ù˜ri1#òa*^dIŠrÙ¨Y›ÎvC×SxêÑêä;sNú ¢Á‚¯o¬>P4½#ƒ×Y)g&"#sY<·G%zÚ*rüsûzµH„jâp²ŠªÏ¦P€büÈíJ2Ű¯þÒ ‚¤Þ‹¢êe©Ó× rÕÐz‰,ÔŒÒ7;=/+}õT>Ó?¥d͈§HÙ9/ôÛÌJDœ˜Ej9h¥Ó2gÓ`ÆšÇÆ©2÷CYבV˜HÀ»ìšJ’ë±1% 5ŒÓî|Ãê™90†—;zy½¬/˜ƒìÓ T–òùK†˜€CD=;—(½Ì’)r.ôõä°˜_ý%dÙí¼¼n[…|V c˯–‚¥ ÞøV·X~¬9â¯Ç_œ|¨5^º¤ó- R¯Œíuý|S9y;·c;SXêr,w™ÓBÉÁ¹8äÆÎI=}cõº:Ã!ømdºeä¶¹î<ÂŽª;q¿À ç© Ç UŸ©DéFçÀæ¸ZÒÊMY•n™‹Ï¢'5GaÜH>"ë+yâÁh¸P9lnxÑo‘n`XÌ·•׿ÿRÀÜ@ês‡¦â„™>î‰'›KîÚUÔå±ë1ˆð3ýÎçð£µCª§¤T”Hk¹mVZopʸóîr—7[§?‡>mŸpâÓA#"Ë'¬Ð~°à"©˜›.HŽû¸D’á1J4 ƪ›%**›à”éT„uÏbÒz&Ëd5Ä—¯ÊôÒ½ÅäÞ!n³/¸ ßÓI7ÔÂ&å²Ú^­m¦Ø˜u$¿øm$G6­€¶ç‡ ²PõÀeƒËqìKqT¾›Ùdâ(Ú“®ñ¤ãÁYÅA5°#súˆ>¨$@N†…íщZ¬¡ž,«¶Xá#R4ú@8:œfÖ¾_dJN; ³0wvµÁ«ÃÐsì¿\£‘Y&Àg7~Ú½)¡ÿºæŸù^Ò)&¥æ7¦ÍÕn“Çzì‹äA<=æ©q×›:ý¼"÷9e$õ ô«%‡zþ!É÷ê©8èé÷ óCÕƒýMÂj”~;ØÚ;’êB¼‚ ûÛßù*ØoÊÑÌÀP#IU†$ŠŽÐ²åœdØnÁƾÊ^¹„ÓEƒ³Ï™é»>BÀÉìÙ剕7ôeûJRÕH±h\Œ¹µ¢ÁƒÉ(Þí¢yÝu¦8èñnûtè` „2„R:)ÀXd‘ѽW«¶W¹EöוN˜èzœÒL)OÔf g=…K¥‡Ê^ mËãžuWéI»`ŽøèŽÛÔÙMøB)ã-îAåퟛ¡)Éûö†ëtɓ˗·tX]t)×Èœy¯é¿ZÞ§(Í×ñžm.GgaêK:±¿›½ï\ñ Ø^“ΡŌí²Ã`Sþ„H"Œ­MŽ0_гwmÜ‹‰ uÉÃûݤ‘å]wÕúVŸÐ"Å >§ ‡‡¢ò‘ËêY¸†çkºÍÁ"‹ûüu˜…4QT™“KÄDœIDõ"Ÿ#ŽH¥†À•uËçÄ5?uÕe6)äØêÉ}«•#Æ£É{xå¦fsåUéÆ(ªL(ÿþóÅÂk­Œ6Îñ*^½À¸%½j ÈÊö¯³3UàÙ)_j®™@òsÝMŒPVGM‰>sçÌcºmØ".ñ 7&…¥a¿ ˜Ew½“ûêðå0ù+X' UOŒJÞ(l¯1XÚjaŠ’rã¸ôÐ(÷‘kÎÆŠ2L’Ï" oÒòáP-ïa2@YUb,"ÆÎþ¥æÍ”˜MP(6{ïÂÈã\ÿ¶M}ŽZM>æ£l™óÒ­ò¹™>Œ¾nm&cpøÏC:‰!Ù{Ïê} ï8˜,Sý8G]1‰¯Ëë†Ë?¢Íb l`gukemsÞ’a\)+D«j®—dŒJPý"æM¶Î•Êx–%¾ Ju«© o¾zèí/—½Õ›åØøn|3¨ÒbŽÜßœõŽ€šðÚ’2NVTºÏEp°5¡\C^þá‘zYk':j R,%ónåêSˆ§’áÊuÿ4ÂsÕKÎ|ÊüaØ{ßÁæ×ÈxYû1^í˜(ÆqÂ`?„–Êáu Mp‘’v¶Õ½YïxAÔæçIìC¨àvâb$½J£¹óжõÅXêíg?Ü×cÇ»ãÅ ïŸÜÜõ(jPr±ÂòªžHƒ+ŸŒÎ %ÊE?!•Ÿ²“²:Ë´Ô¢”K×µHžÊIâˆÌýp¨5¤—NE¥í+Cà÷‰ó€³N„á H·1‡'¯±bêÝ,âÞ³x .BÝu!¨B´é\Êûƒg¤B2ñ„…ŸŽ1O}´(³f°ñÐY:ÀùMÃv` НmÜž< J«6Úuã}daì6¥æOú©×‹g¸¬;«j"ÂÂE2¿žÜG™œô‹Jq)u˜‡¶µvÚ´è§Wà$îV·ðÒ"k\êê8‘Y6쓞9QEhãûÚÈïW‘µYd®7 {œçÐÇ‹;Tx~Æ=Õ!‹ð`&芊Vº0®B¼ÏA˜ÍU|ÖæóôÊSÈ¢–Quˆ³ÊKø¼M2Ž!ð˪±‘JöâäI_écE¿º$"!±’&ÇyúkóÊØôá\_ÅQØYê6#àXõ¬ÊªœJ¿À5vdîòi€a³T‰»‡o#'}m¶7b“ÛYî©6•Ó‹œ oItùÄÆj‰ì %çâÇT#±vÅ£Oh»Ð(Îô]¦ì¿>Ïeu«bŒ, ôgPïf¹oûgÈ[ÌÇÔ;2èÛ‡)s¼ ¸ã”¾ÚeÎ@«ÏßI?@(C2“!ød#¿˜RRœi„Ä£›Ùöá}á]Wâ$\âàRЄ<†ÅrŸda—œ³Ú|/~ƒg냀J®‡sq‰2d½ÃlA7²Fá¸ç‘‹¢ƒ«þ›FÀİöãþ£Ï­64Z°;<::A)ÿ`£•¼Ä53ôGÒ>E¯$&Jè˜(½v˜3”©”ï! Ásr¯Š‚=³h½€3%¶Íõ‰ŸfK¬®#ûŸ˜[³êš•D×eGe7>Áìa™$ Š`2;Ö?ˆáÃMÅ6Í©ýë[‰¬˜ÍI\ÖÍ m #†Ïäv²¥O$¡NŠÃÅs8•7B0C^¦©†1GN2¦±°zùTÏ›>Gĉ'cÌÄb8Øhºüìö¡2¥}6iŽ)Ãñ™"oRÍ¥lOﲺ״Ò{ŒG}“U)ú¯rù•í—>$Ï7œ¼N˜q âA˹¥ª¾Wß4e}Š ,Õ2SzRF›¥“¢ú_%e"qî•éxfa>’zfþBÒÙxÙ úT™_º"³?àÍÜÂ\¬rgF_ßøæKK;yþ@—ÝŽæÝÀuël»5o¡?é†×,¯Ë‰a ëm pô졃nœšWÕÚv„ÉÀ:÷ž¡ðG„à;¦ã’AIq ¶¦©pqÈvƒwkÄ,ßQ™_ýdQ´›EÇøpn¤øåÊúQ Kâî> ÞqíS5àÝ{Ý5¡&Cë8/>ßí »Ì((£·ápÈ.1Œ,‚Áˆs:~/æ(^ùJk+šX´›®…¯ÕàÎwú9~?xqáÒ2(…Î%S äV¡\â~œ3n“9NK(h†‹ûFõLÙ C»&ž‹œ .$Wql0²X²¨Aéåj¥]×òU,³‹÷Z=d=X8wÅy—5w¢kŒ {ù6¦0ˆo üiç­M·ízð:rÑÑú27MØŒbˆÙrêÊnêÈHÔòWC÷äût8ý‰¸Þ{ӌ½Gy}õüY»–‰g¨‘(Ž~xø5o“æ.þ¼õìj¥^F„6³ôHºã‡sìwÌT1Õõ¼Ú¶ —ŒÑXéµß§I¾\èÚêJj›Òˆ št.Ù‡øóq ©+’&Žz,­±Ákö-PCPª›žþàÛ±XäŽR튠µj~oT3!ÍÓÔNY‚ZÓxMù‰~,”]Þ±kYÆ Ì»KY>¨Á¨ãgõ‡a{á½;hÿ6>ôFòÙmX|èSQQ§ýn/“‹¤ÎŸrFç45eÝ7n—Y†¡SŸÞA”3KÙÄ$-LãÌÄQ˜7×7d@ßû +í†iLÝÊ4ù­"˳}‰Ë¹y/ Þ¤Šó;ìÎÕkŽ­ÒNa)ëË*lz€aøeV<úAÈTaÅÓØŒ FqpɘCëÞÑG¤Ÿì{/ ¼c¡’ á@>Fˆéï"þÉà‰zj.«Êy… ¿îœ´©óT[Ÿ—²ÎŪ‰Ã²šÊäFd™Ëè$øõ#öèÞð@ˆØãð·{ÒOg­ÓÒ¸ë5É ‘\1îûnê› ¹™ÂÙh?R”ÙKØAbn= q>óíwñµ¸•J»·&Ò]‰EŸ¬§¬ë”ðGÝÁ%©[y9áæ»sÿš*í0 &¶ëL2D' ±Üþ|Ü|骆V<ôŽò3Ý}A0Þ–<×´!®âŠG„zÝdà€²^¤Áœò;ƒuÄoúëõcÄr;â{ýAéêü@½ZÎá`^¼÷có_èÔÐ|Ë44T:#C 3&Ë®b©qH>÷(ˆª õ\Ͳç¥=£%—Î-¦_?ö[h*ºü½x7:fùä²Åi¾~¾Ò/•uM@>ætßÂ"DYô¼£dŸ¦ÇsólfY§aüR!oÕ¥š'/q_%‘EV´XX‹šÏ¸®È·ÕˆVæj³Âp{Ó€þúÆÄ„ ³Û½ÇE:8<Æë®´0oÛÊJïaw|³ Ûp×R@áTBh(š¨ym@N1ÖåŠÅV6ƒ¾——Z~$ôaÁ}ÿóŒ‹P6=ÙÑë4:Ïdœ`Œ/ñÞ}ˆŠ!—­ŽŽ•·¬¢&É%|®ŒîĵÛgT× á\+À²xÝèN0roõ"í˹7¬­EßÌ4Õy TûÈÇ«ˆ&ÂñÇž£WéöÓûöYôŠº×Ý]&è[lb·ï¹kSĹö âè"9èÙáßê8ˆpù~Ÿi"ßjÀòK¸,ºVVÚóFæÂyÛ¥?vGY*=+F`ˆè¼³»ë]À¾ {-Ÿ;ÙòPq3Ûþ¬¢Ö|³á²Š×z™¢^¨)>¸$b”Úf²f!„ýìaé8"(öÖôò£äóÓ;édüobRÁp^]Ô*µý¾`°DÔJÓÜÈb¿\C"z„5Å-½¤N3º÷ E37><‡pîßдš)¨@1vzPÄY[¹ó<ôCò„¼§6×ÃïO•-*ëâÓ{ÐùNfn;´È†5 OyÜ,É­‡ë`VLùM9îó½R?qòFnÖ7šÖ^"˜ûô(Ióž†QNÒˆÁ³÷âÃwù`Ã/ŒsääYdÀ™F˜ÉXÈ©cÏÂKªŠ_·l}=qS,¾Në&/¹cSŸPä ûòÁßc9ÐYR™j.Ý€ wœP»…^ËoaC,¸¡øX±à\J›(5†ó,ƒgç¨hÝ3ÐøÝëöê›p-”hT0˜ w22Ï0'½Gñ÷'oÓR™Ömž³âvœµDòœ:ÛCýê•zo«ªý ³ØúK»Šn(_3þàMYÌV7!½\SV´1"ŽJ¢‹H„É€7ƒµfyt4màƒØÂždƒâw‰þË¡ dT:ô]íZ·dõáÅOêå ³íµ‹<’ÍŒå‘[rÂSÍ_1²7€È9;Së…?ûžëû<ÌÜ+¾F’oE’›Ÿâ÷¼ ˆOº¥3 ÿZ#vʨÚM?×@KL9@ûk •ðâ¨K±¶×zXÛ–õìnüõ2%Ìþ𯴠³ÔÜ~v7²êñâhð”MWˆ€ÿSc9yn6¢~úØ£¶Vl“ æ•X½|†úƒƒOÞÕçÿëàz(ÉÔí’-ì8Á´©pmaS,Þ»t©§ò,ú3e2Š­Ÿx0`ƒK¢È1²·ó$vz9 ï°N\‹’)•CÕ¿7‡œ¾È>NÄšqý½:œ§Èp5KÝ‚ùvÙ7’ú8õ\ø³£†z»7}V³c¨fûKì0òeöˆ|6“«WÙ*ŒL«Úþ‹j¶våÉŒ°på— C$:T·bg‹»¹kr+ȵ'{T ódç/¤ÙÍÓ^Kù‰È™ÅãÏ{ZŸÉlز[¢ã[rÁÂ1$në·á)¡ÚÅPéì›ëQÕ,ýF`·z12j¯T[ú_àÛÏßœ-Ê1ˆÅáâ ¥#oz™§?aDÝá:IO“|­ŽÆ½©Ü ë³·¡Z/–åõ[šˆBŠ(EˆAƒ,†…tXª?^å+AKêb% PqzØÞ9&ēͰ9Ô<´ÅUÖ6ÉAF.í4Kô7±‰km³HvŽÔãAýšz¢ÀÕà¬y øv.Î@!Š«ÕŸ>q¶áÃ;6\¤L,ãžS4™çz¬ru|ª~'E¸$PÔVö‡áÞ B­Ñi35nð>¿ˆ\Ô÷¢›+ðJöBŽÐÑÄ¡e”ÝÔüc±"ZðÔY”J ºÅ#½lµ¢xè5…*ݱ]pð-G1úÑh=%h £}^Pð'‘+¿xôÅ#Fã…½¡Ó ju86‘Ï.ŠLçœ,•ÿêŠ&ôý‚v) f›ŽLi?Ÿ(ÃhÁ¿×Þ÷° 9î'ÀGèp=Q_Ã$ïXû˜%| uóô‘ŒƒƒEƒB'G!¶Vbßhö¶…×3Âþ!ýbãè Ö+4Ù{í=Û–ò¡ÈŽC7–q©2ýT/Ó¤g>Μò´½6ê2*PŸ æ‚p¸ô'·uÙÞªÏËKôáOJH¹À ÜÍY{ Í»½'\9ŘSËÃGÖ¬ŠÃê9¤ó´~Ât /FDXHy{>k‡MTÇ.nš€¶ –ë¾¥ÛËy‡FÓl–ô4qBÝ󕵿DÈÏ}(n.Ü÷Õr&°lìFÒ ÛCX¿>‹Ifþ×¾ëeÈ Ñp7ü¸µò ï¡QŠË=ùˆʵ¯ ŽL“FÉšíçõ« ㊠£µäµËj…G#ÊFQVŽê LT“&¯•àêmú‡øÈ/±2Lågʦ„L4ñ )‚¾q݃¼vþ»V”ß´‹‡ Ib²úȸsý{gé~KÚ4F™~ØU½\WìJŒ~á»tÚ6j9¸ZzY9ê3Öág¼¨"Emô¾@GæT^¹ÜnBxö½<¥Y`3Nðœ-íçâö‹ŽÛ…«âæPT ×k|É­º/$(u– ïk*äN,Ë©Âç­%öûˆ}°Úøê)'r|ˆƒz­„õ­Bã#>/Ö§©î@&Œ±Ýà¤Ó4¤|˜fhpA/|Á¸ùmÄp>J5ÜÆéŸmC_¿±‚ ÁI‘Û;ϲ¿;-ò*Æ Ìƒ ŸÓ›P¬+'qK4mÅ4PèIÖDÖñ+Ö% @`’ }Z†Œ¶ó•‘ 0D» óÅŠw³~8µ¿åpu Ue½f¨1Oêi?À[i²!h÷Uð×%—’·üê‘çPìŠÁ´p]•X4Sü)^·zýZ,ötÐùʱ&-ÁCg¸^SõÞùÔÍÜ( ƒ[IŸú0]›$»ïsÍTïÛ§¨žL©‘å3`E&HMù éÖZœž¡õT@)JtN1¯´ãSɧ+Ç 0öíIÊý àf³HÔšü§ø_“oZ—€ç×yìWHv´Î¯m¡È™ñ'ÛãêÐjx¾eö ý¹ŽŠãž¶j^%ï2¸ƒnq[ÚûÔ¡›Îº €ì‘ö¦7eXïnê^;®ºJX‘Π|¯ë(šBG*< —¿‚@ÙXõÍý6n Z›K æ{©—oŠ|“\¸M?0šˆÃ7› to=µŽî•) ’®Ó¬QѲd¬¶1×âàNiÎÝ…¾ai—£é­P÷ !ºŸÈxûßÜOϵ¹Ú=5‰<ņ™']ØÇ2f{ßùï=´ÑòÜiL9\aÎ0ßöðœŠA¡ìný0«—ýèf§A ¹Þ÷N7š° ‡‹ÃÿÌÔ­»Î‹”ð :Ÿ¸2/ š+‡aÅißÖ\²¨ÒÓV!ºŠaê›G\Mcš›at3.ø£ïQRUÂeVÊwIKèò´(¼[nY­€@Þdؤ‚“¨ÄÉØD“†“êæ1éf3zâÑ{vÎÒV }¾×¥Me¡¯yëî)_˜Š³’à©cº3 p*4o)I9cÄâ ǸŒ­ÚRXüRÅÜÓbá‚>Bf6ôö_K«©‡»æ¢¿ŽÒ–Rq20¾„ ô[P”bå#]¾ù·yÆ-uúÚ8­"Hu×Jl؇9šÙ%vÛ\³òÎ&øÇ )NõÙvDd)Gü–ÒÉë÷¥£»äÚW +þðG¸7f¡dø¼ÞéÀÚPEØý"JîðI}He·LÒ‚E’Í 7³™|Óín1rGn×`³©ÑhœF¥éý¬Ê :h/cØcOŽÜüŸèø'^ê,ϸ=ÏÍ*îZÎéÎשóÄVe`»…j„ œŠW[ú N³!䛕é|8ø=øëbÙ55Ú” O>lgLX;zK̾¥<±}=/C¿ÍêñÕ§>ÖKaq?ôIØÌ?ðδæRÝ5¢ïIòäYR–„_WDðTV4³òÉÀð'‘‘šNvƒÅ’—\@ÉÕ§@ìô¸›Ûšz» }M~H¹TÚú¦ ñÓKÙbýƹ®$6 =Wå(€=©"Ö0»¹Ž“)ùÈÀ(rž¨Â؃‡óÓD•g÷Fw­gÂ… ¬QOdš8°Éá×έî£ÒPZ7r¾º×§k÷øè|1(ßðdÿ&ŽK4ì%)aVhÈò‚ÐëNó`•îCr×êËoI]ž«eéN_2)nê_Ö_tBéý}\ñ=yÙâ¼{ø³ºYWæÂÎ \”ø ¤c JCŠ%ìÞÆ½²ßì!èøz ˜BW莊¢Fó£‰ß$÷%Ÿ£ô%ñ×"_€ 8eY>®]ô^“.eË~̆oÄûñéË)ÙuA ¯“§xÅ}¨éun=D×f‡ÁÕ¥\^jwVÏÕW“6êÐ~QÅã[‹B! "ÑUL™öì&û­= ɪîþw¡Ï—µG]Ö‡Êð"Rû“ ½YÅN]@‡@¯ÔR”·Û9V‡†®:8vŠm/áJ›916ö|ÛŽ8ò²YCž1¼þ}0Ÿ:©"D݃nÝÜc˜ãfÙÑͲ$ºUÁH[Ÿ§/±dUÅ©Ï’Ž‹Gû(€/µ‘¼’ôÝ¾Š¼ìð7”íñ/”bœåÛc5”³mA85!“æD•>ÐÓŽ2ØD›žX~[]cå« ÈhÐs.ŽÞúè‡Qyy".Œ~fæâåR™™Eºä° j؆ºµô˜LE´1Æ«¡ËëñZ”_-±¸¨>Þ©Œpœéü"ìf« ¯|™ÛHÑ‹‹ÝGýá×V£ÝU xÄ•œZƵA±W¥å'Z­5Ü‹‰œúeš@g^Þw¸Â†+tÕ<™LfÉœU­÷v/RS](‡9F7¶«×§³Cô°.uÚ>¸àšaè ç_L¡_ò™y‡uZF8Wy`õØDkG-ŠÖqd<›2]ĺóãuSàbUÔõ{öëí j¦%ˆ.Ò?Á µ6…±=v>Næ'ÚØC0l!”$'|ÿuÀ_ìQÿƒM›~%âPÊ'Q{ô¨pj•á[°¾vÍ®:zj²7?T«e`K= ¸«OIGÕQG„ÍÒ{ȼn?üŸ6ãxÆCÅBµtárÄ(sÅX7DìØ3ýçØ|xy¾Cº›¾p•n‹iž)ÕçPŠIIÓ(ʺüyK´îÄÒ‡$­羋bh*19c°Xæ#Ø?½éàŠç¨«ôf‘â's™J‰Œ7¤,²M£L, i`» Ðp3Þ—Àûè´” úz†ɼ`Æé4R zA’mË„,–¦môóX®ï|K“BRØC›ô|§áêÞ}&Y)åys&a;ì’ïA’»à‰E[çŽ< ;þmŠÇáó ¢¬c. ­Ñ{ÛoAñ}++ érá‡Âþ##ËýÙIYß{>]ŸEFبàä ôühMÔj É8å  ¿YììÀîhYj ‹ÍÉõ·a!q÷œ‚µœø¨N<Œ¦Ë|’Œ?!7d°ðéÞMñÒWÓ”Ý̪8ªÄð4ŠhW}4Ž=~fðôÜ&#¯p¤Å¢§åŸ’HjY¦z×d¹‡,Aë‘ôx¨îóyϤ–mG…NQŒÃsÍÙTÑÔšìýLi¤Ú²Šc2£å‰ÈçìŽÐD‹Ç,'}—…:É/Ôô‘ÆK°Ï’=RíÚàË´ª ·Rv»ÂÓþÛ>:(LZábòÜ÷ Á¿ä0 1pq¿šaÓµÖZ`ŽørÓ·éNíðrÉ(Þ‘G›½]w |Äõ™™(D1»C5ÓPŒê•bÌqº¸~¬ÅŠ-8»ÜN A¸†§)Ê3¬{¯@W4Ú"c\ñþˇ¬½~Þtâg&¹ ±b. ø>7‘´qðç»OCˆjGºßÞ»Î[DÜBö;›|M¬Æg ²š™)³ênÏLp:½c Ù±†w*Zª˜ÚR—ö¼ò#:]·r2~ÇI“¢÷@~ñ~‹Ó}¸f£Eå‚™Yq=ß?A«åàƒb屮M±þµak41¥±Í?)ó6ö•cùû ÐïasTITõp jçŲ ²qOÄD\C¤·a¹6©LÛ ¥Ï:¾¥âcÚK‘ýÐÚÊ/ð0 ¥¼ °ìó×V^–}=¶9QfÇÌ×%;Þ ™ÞZ%)Ygº¨~¤f>wMƒ¾Ñ$"±¯¡»ÔoÓ1p¯û|£?(Ôø7øŸª„!šY·å†äЉ‚æ{«À,4ràš˜d©OX½8T…·}°{V_ª‘¾U']¡}°GO+O ãêó¨ýEÛ”U ?5¬•51*Âõê“zxmFדŒÏ}PwF´˜~÷½ƒÓºˆ@äùÃ/WÙ¤†e­k™H|Ï÷ŠJ=iËlIþì³R‘SXž!^cyßš_|wv¤ô¸áA£V1õ¬é}øù2bÔ<,·Ò$̺&&—¨?…$ å[fÂòO'?**Ÿ*N {0ÁâÆTñÓ¬yµ`Â$9þî@RÛQtGæž ëÎ÷~J¨EmûÍm:–ǪÑÃL7êò±-¢Í“žÁqê§Œµ‰ ËÀgýï¢t¨Ó(¢ G-DÝq+z“Ií×qÖšH»ðªíQÚƒ£vÒæL§-—õP¥_²RÖÞá2í¿éÊuJ&Öµr&·|4\Lñ;Š^Ÿ–Oj5Š)!ña2"“$gB„ßæn08M?ËÙb¢¡óêR®­µq›“ÿy"t9Æ„Âá«xî¯5«ÄÍ~ è“LC¨‹Ž³è½ýs>g‚0va‹äž%^;ÿ‡~ï—8ÜüX¡h•7<Êë´Q¿™¼¦¥rŠVÂi§°¨L,ì!ÅZ.—ê+JË'Ë‹ÒEˆtµªé¹Ýäv‹ûIýF aCÆ+'¾3åý_’ ¥4mSžd¼­Õµ—Ô¼à³SÙPK o˜ßv¢bØ~&«ë~Œf²<6üáà&¤z¢ºå÷‹YÆIŸõ)äÊaã©#Çký†1HcúÖ=.àÂ}ð MÊÙ<œ ,7Réàâ+©VÓÃIëÄÇu.y)Ì9qt1ï¾Ñ¡I'¹Ëîý#¶)˜5ÛñÕ%»‹m#m‰šÑÒÍ7íaK˜ÇÓ  [ûà·Í»ê\{ÂdzkHAÔÅâp8J¤iÜ—¶øµpq˜D0@ZXÇ^Ñ»oŒÞCi‚ÛËÜÆµFÅ? zß(S٘Ф¿èÊ‘<®î«Ø ­Á‚-…fÂå9FÜ$ÙºXÀ¬Xjyi=œÞú®+–ÃDTu 1ò"šÆÉùl¡‚5$3ånãÖtî׳ÆUÇ­¡½pX]{`ŠwøomÍ6ö‰õ.LZNÞÂåߵס™¿ ¨tð(DP·Qd»Ü~~´SÁèÙlmÀyüñT«`Åüd$gÈuœ˜íIµÒ\ ¥~+ádã3ÔyTz‚³:àô©”9CX®_.ºònŒÇ"/ߌ'&‹µ|µä«Ð’ä*/j#1bcÕª¢ÜIÿVäû” A7üÇ#®&wì¬\âÔJÒ£“Z1Æ0¬L?u;Ça÷¯èµ[vq‡Šø01¾g†_ÎõFF•6R¸ÚŠDÀÞÉêšCˆä¶ÈXó¹—û]ÏlqY•¤Q a“)g麥b' ÄG7@g‘Òq¢Á÷,ë̾ªU9×òö}?W:ûz°Ð ¡•”»3ø‘)vzDßxy"D)ÄžÖ¸ivÞîï]ü~vémh†3Š?Fз`~a¥Ní*aíÇ"Z;ò FS鸬R×ÛžÎÕ¦J»¨Ñ"? "ÑøG®ÍWYÒK—äV)DSžŠ c'Ö’¾¯à«œs &¾ ñøYcMe6efû+ÖeÐ(º¢qxˆïf0±hÞ›¼ïµ$ÂåtŸh}É¿»øŒÏ7ÌiCÈÅ’~ÔMž]cûe×s9}?–Dß¼ðÓ³ÀªŠŠöÚt ›Ÿõ"Öš·f®l”¦ ˜Ñ#³«ùÓ )¹ï²$¯<›N)8÷#º¥_ˆb¿ 'm`Ây à²oC‚–Y³bÖ,àqN~ž¼§M•ŠíÀ>P¢ØŸ'*ÀDü¹LHb+¨R(Ç,Ó Ç·èiùf³¦,Ì 3Tì0eÿ$AœZ?rû*ÒTψSá^P®°Ø~ßΨ8¶©­LeIÈ:u>)Ô{ŽcŽrª<>õ#‘*§!%ò¡è#÷.©lÓ"9 L+œXªú¨Èk=ªä›ª¹çt]âXq’ÈÇ nÚ4.iGì§{ƒKäÿ{âIÈä;J&>ü8G]…Q¢ÅÛOчЊBtŒßì±Ò)–œ|Âm§€òdVçD”ÛßÈ=õàÄÔÇÿŸbé:Ì–i_,úd^ã¹qgžÐ]ÓJPm ›xVGÆŸ«yü*Ñ„Páç,7ŠR§Ó¹Q#T‹%1ö´Vîÿ \ly¦ÜÏ ²˜FN÷í%šÚàº&´ç«à°—‘Xs~m¼5ˆ¨ô¤$ÕçzëÅðPV® v¦ž¶Ùœy»‹¨¦ÎÏœ!µîBܰ ‹µ4¸Uá:IQ¸lh£ƒ¥ÙnŒýóõ·Yg?{˜gܲFänÞÁ*¦óAÔ×µ"ÿ|îþ®ª²¨RÇ7¹ IAu¤ž?n$û§@a®ï€ø·x€n-W*ë®_E’vES8 ;KÂq)J‚ŒD‰ÍŸžîO2 3b½‰á; â`y“$ž^¯#ü†³äº ¤[l vi?¼ÛÖÑ|<Å<­¢Î†Á8,?Ï%ÜspqZZâKôV"zq‘ÇdŠ|äÐsûÈ =K$ SDÒv™)ðdëÈ`P¯æ¬N¥@ícþ¡˽ñ;”þ’úDÔXrq•×¼²¹€vòR“Ñ ”Dh¥/c]ôõH˜Õ¸û; %ÜGß³}óþ­%;œÁÌ…aÿŒéœ€ÐîÁ§VqfŒÐW4pq(%ÿOö#ЭǺ†Ã&¨¿¹ù¸[ËÏg/~²ZFç€QX«x2¥ra&¥rÝ#Xl7½Ø—¹£ü?o„Áº#…56‚@ÐlØê­Oàë8Y±=&ÑôO jç*‚^ÙsQV_.)i1Hdµ|VCæ–&¸¯ùlÀŽ:)â k«ÙSév´'oúÈÐè¬qÑ%„r2ö3¶Ï©³Ž½Ä0ïUQcÑ>}—ÓàâÌF6཮ˈV:毷¢fWVg†ì2÷È6g¥9'v¹²Lþ¹þ¯*ß²¸äÈËf=‚EÞ6‰±,¼—Ô`¯)ËóžLw¬ýÈt*CšÂ§Ñið·ö„eÛéAM£5k» ù×ÎwpC¨ÉL&š_®AOà8±Ïâ²ø;å0€çE>* h¶7˜+]–PêpÚ· œ˜}TÌ¢pf…lM9v­üJ"ºÕÁw ‹Å‹IÜ"ëJ“÷÷Á3ïh¾-›oÒèöüjxèÖožîò¤ŠW~.{zˆ¬^aLß¹ýʼn¬BšPbuÅ8ÇW‘þEði·”Ë}g‹õâ§KxuòtAûòe[ Õ ánº•Jí¹35&Öhä²N"–*o&ËA~§×Æq«w(ÕjáNºÅ`Àk÷Á¼+Ëöøƒ¹ä5¶|®¯w{¤Ôx8<7è?y‹ÛöøF“Ž…ƒ0JÌn -ü{WÎw@FV³*/¼L¦vþ&`݉O+†›)”íNxvŠ%Æ :¨ønTì°EåiÞ=7yá|,¨þØÄM)< ªbªÃSÙ†§x×Ñ4¢÷À%›z.ÇM7o—çm¬DUXÐó_Qñ¤`IòVA‡Í6œ` ·þ-eÆ^¤›aÈ}·W£ênƒôP«ÑyŸ…Ãwæô#wƒ¾í¥ {#;ùl’—P&!žºTp„nÝòèCÙÞFü< 5ËZÍœùšÌß*Ey(ÍÃovÿ±Uüº£Ä@&§ ± ðWœaY× Pø¶T`ã-̲­nä.Ï"(üPÈ·¼Ú7Šc%ó˜É¦ïÖ`x–G1Ç¡2äãÆDZ`2†õÍ?Ö«¾ºÏ~áò ~ÔÃsLi—‡Äã’WCŸ±'Z«?önÕu±ã-{jD¬];‹¥Îì·œÅñ3îQ–÷Áú•%«iEfî@‰Èìãe_C‡Š:„ß{kÓv¹"ö0@­I*i‘æ*Ô±C^­W\}\MóŸÈˆ^­,«&ú»aÒPˆ„ß~¤4ãÆ¾‡CÝ\Éϸ[9Á_ió¢¼-¦kK‚w€ ío‚§Œs!(5Eæ^áÛ‡Ð_ W27)Ú&ìà:Òƒ?Ï®9ê‚ÜVØ$šÝÒ¡ðéÒmÛ0vº*¾-/³/«r°±Ý•†*÷“Ë<„,ä ;iáUú°íaso¦ò•2`³7ôãÎŽÕç £1ëØ“¿NI ¨+ùÞ–²@÷Éâ²'he7:w;¬ZEÓJ:³.@nç¾n1éhí„nõ°“ª¬”*EÍß[¬ËÔM5ä“ï¼{÷å‘g™25}Žß¿[ökfšNBý©­x¢™Ž<Û<¶þ;}µ²:D5¸S„’ÑyCQÉ×ÜP)—g—w¤Ý‚ð¶ƒæŠM]§l—Ât€}ˆu²ƒÓü-¦¢¥Ìàð5¦Ú¿eÇ¡™#^ZßGÊ`Ù–}‰åJÖ ?_É…œìiïî5¤—“”D|qx”»²×—³c¥Á¶å].ï$ êóTÏh`í^þjØh¥!†‚Ü aäéóÉD×La6‰î%Dø‹,Šw‰N㔘¶íÃêÌø/ßñ¾\ zv ÞZµq¶’ vÑ Q–ÞªüsV”¾©‡«Këþ&|¨÷ûÈSÔë}в"¦„fè®D87¢å'Õl6}?†Õ(H±w8' ÜóÞ—º}FÚÛ¸†ž†èµçCxGœA(¯Ô¿S.ç’Ÿ”Ú~W ðn••Ú†Œ¿sß*ËZéVdÏRî\o{ù©5|ûâëT4j«ê!¢†â·Ü…FÀ&GÏÀíJÚêv„ ^ïygïhý±Y¦7D³ôˆ0 Ÿ&ÉðüCb«ãQ¶YòÀ¿¿ã!B_Ð…:d sw“(îHÚÔôä+£r¿%&yžÛTÞŠ•dE[0š½—xJ”¿°Uÿ`"m¥m6GH2ÃOøæ#‘ØÙÞ:¥U²®=!­±'Äð³G|•¾S>f ¯ûgrö¿vL½qÔU™³ó²ºl¡~ñC¯XÓ»þATö';>\Üô¿¹„Ca¥ÖaÛ9ò¹–Bª“i‘Z¥›ôÞ_ª½›·tN°jÓ£d¦¼¯“]²¸õh¢›çÙ—¾yLØ6wkTÄÄÉ}0”xj‹’Ø:ÜD皃ÏÀÄüÁ‚(ýµ_G3Rò.hKeœò™p{§á (•ô°vñ×oÄD‘ûrNl–1}6å kJáÓ»Õ-áU(û3Ë›VôSpc:ƄМÇ`Ál—G-~¦ßàinÞ¡ÛÀœ\ÎT@>pC¢ÊÎg*À”0—?žƒ|Œýq¯™é|Ùœ¿NfyXzB°ŸÃ•½ÿTP>v¥ëìÍcTô¢™{*ã<µyä_q³ÙpÇsÄ…Šz"ÿ/9&­ _@Í;2µåì”2X­'-JlJûë߃–l KVMaCóÍ‚ÎÔmó»Æzôò NÅáêX ÒÔSt$EŽðoÏG8ã¬TPx±lƒ²€ðÎÂÔæ ´îÿʧõ†ÂˆÐÝ «ñGØR]œÔÈýQRÀÀu›¸-êÏÖà ÿçÝ Nª z쉢®ûó}Hú丗²gs\ŠvXÒ·¿² –Ø¢vXe¬½j_¯Û¦|œ…Öi\‘±ÉxŽéíV)EÍ4œ¢é~\é}GI Æ)Õ>}°ü§éÊ•ÍÃ:w¶Þ˜¾¥…°Õ ‹ÍïÚGë¡_ÄQ|AZª7Zdê—æ¾ûi¶&¬#Ußàµr´à*´‡Zhyÿ(zΘ)m zµr^zP£Û C„}Â/›.KÚnPÇNÄÁÚÍ|ni DçŒoo ÉÕ—0@c…é#òÿŸ¹6¾éÒw¥²£éÉmƒj«ØFÿ†Ë¯bK|̳fÜÉUž= vÒŒA_§+k{[±srˆ=7"žÓ}T"W NQ¯&Gèpøå€ýÌo ËÀ³*"r¾¿¥ /RñËc?Óq<Ž…UÒ_Ž.Ë̯æez؛ʕwŸVw—Gö®ŠZhDr­ Ð×r²Ãq;ð2¼S’ºŸ‘xZá¹ã"Ap<óÃ7Ér–„(…9fÜ‚uŽ·iu§JÌóÎL#ÏÑ- ‚Ú®«!¿E×ø&°±§ó7iÌguÆÃ­4¹8ËH%nÀŠh߈P¬>ÈW§/y‹H¯ÜZ[úåyLW&§iŽ_­ÌDM;ÃÒÇ*IÆ!quN‚nD:‡¬“ó¸æÃ\Ù"åâ+…6¦‡×@Šå‚ù‡Ú]!ùCÖ éO°óÅÅtc n/¨)¸P+]7ß Û3äy ?b}£[BøÉ@î&I’lŽ]=qJy#`º%-XtlWÆ!‘Ï›8…Ô­˜dùAë<øúÝ{¿w¼Ùó6䘠 Á»ÓL].yã“ÃÆ x©¼jNîfÑYd°y¥°X§Eìš@5:ƒ ÊF×…ÛàÙ¼¥MGÙ{R¬‘ÐjÙpÙ³{ò(ºÙ8rmSÜoŒ[ÓÿÍ©A´=*k¹r¨‚ï!eÑØ#ìWgtü; \›|ê~‡˜*£þñÖÓ:?/©è6Û.vô°$ O%‚RÏuÎ5䈥 @:)^;б #ƒ«\³ ûÀs¤U êÝúþ‘Jœ’‘¨ëëÆ,¼þ½…[a:öC¤'šOÈUÚ¯´å=æÖ˜­q¸hÚkò=צÑ@=ÕH{h¯‡ž¼é´”gseQgô¯Ìá6¬±» °c—qG¯ÍáÄíí x¹ý´—ˆÿBÎa“cæÜièƒ{ "~ˆ] Œ$ÍÙ‹‡î!ÍìÌît¢ÒVVì6iºê¯þ ôy0\ê6Ÿù^I ËÍá¼¾â¹yu4äÞîÙ4%t-—̼1ûuøñ°Jº`<;õ4ÞKŠLnr"ðQ4‰ü„M aÏÜ ø’…GäÇ;š~-¬ -5ax"þ<ô…­@Á` àHZ¬Ê®N±*S|"ÿŸ|‰tUÖËû;\Äõt2.§òwâõXÒi°<ÖªO±à¨þU~sÆñ‹\$Á‡„Ø«Îü´t¾k!âkø†XÇ¡}sQÕÒh²ÛVÜÅÓ­ùnï a+µìóš ¸PI ]¬y3bæ¦gRuâ±3ð „ö@rƺ)Ĺ 1º¾ëãémq“Ñv7.P¶x³¬4®H‡-5N*—Ð%)>pyC<“;œTo²×À-΢wÂÛô¤˜" g†gS=ÖÁs.#à¢À”³Îkž¶ÝQÄ@•I.ˆTýk÷5Hˆà1„Uµ×‹ ˜à5’@«Üù¥·—¿Éd¼:Ž1R÷b…OÂ$ Óâw‰adŸû)†|{©êÿÁ‹’ÍÔr±µÇB^U:߉¦Ç†P¯ã…ßDýÖ"”òu©PÀ ŸØå>¶,ï ®‚”|Òô£ýÌõÇ>±û…¶|‚·ö’Ä1aõñDq`ñÉÛFEV’ÏIÇæPú; Òó}ŠÛxú==wÝ>ýÃr·o«®bÛÖƒ>dèât2H­Eà©‹-Q®·R1lßOnq¨!fÂ݇)C i}“‚ ,OŸpŠ™ûïi*ʪ.F ±$õ}> ™ß¹OêìeJHumbX‹BÞ¥¿`œ›Ë“>É÷°`tKÂKp£åcM^|ššü}“Í_ãxZ{¡ÞÛ—Þ©ÿö±M—ºõsÏ1180 o^%±qYS>Ÿ‹Z5$bÙŸAMe\§‘ŠÉY“i”$ˆ¼°r‡”Œsž‰ÑÄÂ{˪_˜I#z0¶6’œW õª 5º瑪YÏîáÓ[›=þzàÈ1F?ŸÍ÷8½}4v«5š“1EŠe ½¾¬vm°VÇIš‰øÛ±ß;®zÃלŒËCù¢¨$}xˆAò`OPsC*?ŽÓIý\9 ˜ì `æ-óH%Ä‹A"8L~îà×VÕ$áHÿÆð«…ï›|Î]®¢ýkFÙ&—ÚÔËmÂVU¸©ÖÀ57®‘lÝÙŒtÕ¤%—CŒh´å*÷O``ÖôH<ã¼?àùÔœ:Ð3£Û¤ø†Ä}×é,ËÉW%Œ¯½ßlˆ‰ë¾´ÛøŒå {ÀïÊbvºÊ: Z‰æÐY;Èî•®øœB!–þ]^zË›7÷C *图ÚÝŒ÷ŽÜ[;&I:‰ÿ ~ˆt5PB-o@¦ ¶“A;·£ûÓ±¨ŽÝVès½‰b—ûIbdßù|™‘@›R›ô÷Äç&Î]oA†“?9o98ðÅ#-J?—ð×3úŠÏ”ƒ³’Òð-¼µEZÙXP òІFƒLà5-B”y«„ÿ/WùšÚŸ Š%/¿q-Oj©Jò©]ïëÅÜ Èz þ*3½ù™½™*äˆP’í*iSYžÞÈô…ºÇΦtl”SS.ï’—üÅKâ Zpl]CèuÛœ‰ôrM­NlqYµ®H}â6~ endstream endobj 1520 0 obj << /Length1 2349 /Length2 16740 /Length3 0 /Length 18109 /Filter /FlateDecode >> stream xÚŒ÷PÚÒ ãnÁ5 îîîîNpœàîî·àîîN‚×àNpþ8çJÎýþ¿ê½¢ fµ­^½{ï)(H”ÕDÌìM€’ö gFf^€˜‚¨6 +€™™‘™™‚BÝÊÙø;…&ÐÑÉÊÄû1G ±ó»MÜØù=PÁu±°°X8yY¸x™™¬ÌÌ<ÿ ´w䈻Z™²ö  …˜½ƒ‡£•…¥ó;Ï>¨Mi,<<\ô§D쀎V¦Æ €‚±³%ÐîÑÔØ fojtöøŸÔü–ÎμLLnnnŒÆvNŒöŽ‚4ô7+gK€*Ð èè 4ü% hlü·4F €º¥•Ó¿jöæÎnÆŽ@À»ÁÖÊrzOq™ïì5y€’ô¯`ùÐþ= #ËËý;û¯BV ¿“MMííŒAV €¹•- $)ÏèìîL0™ýhlëdÿžoìjleklòðwëÆI€ñ»Âës2u´rpvbt²²ýK#Ó_eÞÇ,2³·³‚œþêOÜÊhú>w¦® ÈÞ äõdn23ÿK†™‹“Èê³ PFüß1ï&„?6  3€ƒ™™™‹“ü º›Z2ýE îáüÛÉò—ù]ƒ—ƒ½Àü]ÐÇÊøþÁËÉØpvtúxýÓñ¿…`feê 0ZXþT7Íÿ…ßÏßÑÊ Ëü¾~,æ¿~þûIÿ}ÃÌìA¶Âÿ>b&q EeIºKþ¯STÔÞàÅÀÁ``å`°°°ñ¸8˜>ÿ[ç¿øú¿­ÊÆVÿîŽùOE¹=€ç_"Þ§÷!®ÿÞ ê_Àÿ2(Ú¿ï3@ýgýõ˜9˜Mß±ü¾§üÿÛý¿ªü¿®ÿÿíHÒÅÖöo?õ¿þüÆvV¶ÿŽxßgç÷»¡`ÿ~C@ÿ7T ø¯ -jokö}2ÎÆï7Ddaûß1Z9IZ¹Í”­œM-ÿµDÿ9…÷â¶V  ²½“Õ_€…™ùÿøÞÍû£âô~V»€ïWê)%@¦öfÝ=VN€±££±óû‚±rp¼XÞ/©ÐýïÝ01‚ìßSïâ|æöŽ('€Iä/Ó¿'€Iôâ0‰ýAÜï‹÷ñ˜$þ‹¸˜L’ €Iêb0IÿAl&™?ˆÀ$û½³ËÿAïì Ð;»âôήô_Äýήü½³«üAïìªÐ;»Úôήþ½OBãzg×ú/âyGÆÐ{/&Ð{/¦ÿEï>S{Û÷ãü…ý/‹ÝŸü¿Î™Éìð½càŸ ïSø×Šý xaþ'à]„¹•ë?2þrÛ»8þ#á=Äâð½Ë? ½ µôp°‚þñn³ú|×kóø.Êöð]±ÝÈò®æO)Ž÷TÐûêþÃÿ.Ïþû{²ýÿ¸ß»wøã~/æðþU²šÿ™;Ë¿­Žÿ3ö÷Q9¼¿!ö†Éþ®ÜÁÖÅéõß-ŸÿßgñI±¼ ÿÌñºþc2ïáNïôŸ„wÎ?¼?hLΖŽÀÆ»g7û$¼Äåð}–®ÿ€ïãpûYß³ÿAÆú^Þãð}Tž¤¾Wò:þ‹êSÇ÷Y9ÿýl¿¿ÿÁ;î@S„å{S¾`ëúàÎßµ"n {?f)ö´Òh¼–»\Q`“ij²7ïD’GúÑVw$¨o…Wˆ_¼ŽÛaÃÚU:ž¼Ÿ T§÷:–¦°¿O‹4|#‚'dPÞ÷~ùì­`ÙÞ#K‘ûÙ…E9ã·Û ”{÷òŸã¡ {*û5œrˆÏå3 1Ñz%sy&Ùó¸¤0Î Dp´èî¨s·w³è9“oIJ t>'1lE^:›¬±óžk•ê¬N½xäx:¸D·èãÓ”^¢‡)²8‹^¥Åq²¡QÅæD -‚]¨ÆŸÙëHz–ùËÇ&·Æp ÄÊQw¦CãLU¶)DGŽlÕrºqÑs¸Jf^X œTº^°=£ªæ²ƒ„¾Û8Ÿ*³†¥|±ý|K-Ó}v˜²È¹„—ÿýï Uã—7?á„%V“/cwäÓn®ß—>““R ¸¯º7êŸNÕ§ÀGÈŒGY,Irø`ŒN¿j ¯F³'(‹™†³¯ÛíñDyPüzl$´bÀ¿ÿ Œ±¹øY}Ï%xɬ\8›aÍ+Û‚“{Š$cU˯ÕM:þ–-j‚.4^©h\ÏUSjl\˜‘O…ßfqSr¯LÄû£qºl&ñȬFÔì‹÷´LùÔYˆ´[¸juÅ$L\üœ%»‚M+± 7‚q|êºG–›s±zŽˆ?MOaä„´I0Ø—¯R1pëk ÒvY¦`‹ŽußeþH]šÆ«[ÍÛåÂs#yüîÀÔ¶Þ––"£XµæŒÞ¹âþ>anW+Ûè9¡+[C4§¾2…På–ûrÄîXs5Ò­…“ÍF<.D±ßï”·‡ãk]hä\,Ëbçg†Å,çµ÷)ÏE”øà¶´C÷öÎ!ì2”þðÔ øù‘­òÀ÷nGºÈ 'ÈsO…b~¶ƒeak‚1iËÔ½½»À7µŸ:#_‡?’s)ƒCîç\Fø,çó©®…±íÀ:ÁÅogì5¶Ü)ö!Ïõð^ä•覓Oä˜ñNY™b-¤[¿ˆ=)°îs8VËÇ]óàî6?nVuOøn¾šæ¢/*Á—nF`˜ó *ÿªñ“,,»«„^ÚOÃHnNƒÝƒcOì$âöBhÀÑÉâžB?àÙ|ÀC⤗ö­6¨×¬ñý€¾îKŃ“"•ÀiL79“Êú»3Þ.ÃjÿáG6 ˜c]rÙÉÍ7Aгñu¡ÉØ îmep»Ãx2; ¸òÍtFi8g;ABÒO±«€¥D¯¡6õwøPÅßi°Ô<ø%8f üùëÚìåÐ$qHÚb™0µeïb+º[Ðô–æôµó0qÛS>6Vg>/ÛÒ¶Îð~"lb$táºKn•ojZÒù:$æÛ0d{ûp[‰Þa–ÎR8ÁËð° ¡ÇBèZõ‰ÉCQùAwËæéèNV‰±]8–ªnjÞFæ#á#†÷øL·µ_q‰<#Û˜ì'r ¿ïzoÍä85¿’¤C¤ŒFÃ^k¾@§ä mîì àHÑSÕ!ç·Ì[wKë"¾|bWÁHr³4éñ“~`³’ð lÒE-²;ñ¼OVÅúMN4û ©+‘Ëî…2èà©Ê¤õp„ÂßPjl(½ß”hg™X4¿¢êlõ?ÐýœÙRǘ½ ÆìB¨‘OtÒEY¾÷“^dÞ”Ž½|½Hp¦­0M€¬(,G«Ñ)Qã e8 ە4„hBô£ ¬àZÇ,î¢Ì2,%¾>*nPÐ]ñ´,Ýa'Î ²8»MJÞY©ÈRð:gÖ>æfö8·4¿lE–ïB–NÏá1¡,Þ'îh¿ Fì‚])Œ"ÀH|¦O·ëphÉéæ%‚jÊ/°^íê“9Žª &V´7Céí$²˜zb.÷…$ *¦$Q ôPømÇ—,ÆÏðm¨>Ñ×&=« ¬Ù «¬ÑÏciv²¹€yWn¸­Ú8ŠÏ]„•”&§›q 8ι]}¨+?š§Ž üü³â/ÕÏw$?i¹F\ä•:˜øMøž=®É¿ˆÊñs\A#ª#y:•4žú¸È¥(,ù—w“r}•ëžE„<»?è¸Ú ]ãöPDy]]ÅzçºÑ|ìg%$dË[ÞO–#OÆÃ,8„OïгùÕg¤Ì¬9 d‹ãtlΪ¾E$õ«#7û›ÖÁV°ž$Q<{ˆë)4~Pã‘^ºP‰éœÏv4¿‘*1xÖãàK&ÛYvÅÒ ù4ÙHƒu€-·«Vd@Øè jK¯RÀ×~¢ç¦,à2FþnFþšº–Œhà̤…°ä1Ùã×3ˆ[w]ÉÞª"çE³,0¢%Þi&Øaüµ¢“é°œŒoÌDVþ"ÿfç]yGæMÊÙ#ƒ"O¬¬=¶ái‚Rœ£j:sïópJC#¿$g®ÄŠºV°½  VœkÔˆ¯ah¾u9úåD_¹ ©V´yD«ÛØb ¶SmÖKŸÎ"­óL2$Ñ<ô<¹Ô!ôºÐaÚ6šÝî²7µz–™Ê;…%bÿV—…Ñå…®týÿ²-¤¡ø;J‹¶¹VÚêüLÞüÚ\rŽ©D±l<ÉíǸ¡ñIî*ò¶è/gý[Ï@½.œLèÊõ$U¦tGöÂãÃcl…ÇÒìy°ÌEI7¿ás U¬þ•_£N¯òÄG‡aðØÅÅæbÇ¡aåxãàÔò‰T ß&M±>”G­Þ³Iù©ƒãPe¬äÅzɆ !âfr¨r2[¡ü×ýW%w»)(©Ç׈;ɦ©´7>öyÁÂ?t©¯w·Ü°Vkâ%T+:mÌÄ>]¡úuSˆ­XF_ý$'\¤ßºÌÙÿ¶?’K]!•Ξ¬A™CÍ´V°þE+՘࢒­£n>ï Êœ¾ª2eQ–Y‹ßºg´ÍU™·‘¤°Î)UnD`9ëð4a©®Óò_W ³“k nû>dNOºÊÄæ[0XÃ÷t—•ÏÄÕW%0fÏp Jṿ J!”m&탿qŠ0õ[öbªJòÔæ¨/ yÅSçS¦]o„ÄûñŽÝXöàß¿ÝÆ)¼Y÷À–æ -œPÄKBàh¿­„Km»¶Â©ñnóÊT¿7 þöÛæÉ¬‹Î[ãÿt¯ Nm®ºZ‡ˆ=†ÃœÝìÞZâþEþØCF „›@Ÿ·!B$º4_7ÎK‰‹ÎC¬F/ lDRv#hâ)¹$Wì^áÏ)} 'µÖ†îÐv‚|QpÄ_ú%QÓx’=/ÿLzHrBkŽK—I®!‘09 D/Ć޻ãΕrÉIFÐófLr)¾C6Œñô‚8’<âR„e’ßÊ”¸!ÕÓ°JV¾×+Ó32ÙÚ™'¿s覙Šg*Æ¿ç‰åÏ´ÇÕ@ûu¼ÌU͘ËQ¶ƒ+Ú¼£*Ho(â1&ÅÕ$ÁØ¡$rÿÀb±_r\ù9Í&Y %ô$š ÃÒSÓ¹&­{^±+i Ù®æ*j佑î·ì‘›m\¨ÎÝ2Ñ^jR=À$¥¯; 4²~ÄlKô‘¡]oÄ›ôÊP2‡îdOEæÝN®3‘8ÈÕÔfižÑ¼x0¡" “³—d63‰7Æo?Á{ÏY7g—2¯´ùBíu00Á»Š—Þôº®Ï”mY2ÁO3 ˜ªËy·¹w¢Cÿ‘ïùøÝ°É)óëwµzœìC"zcçR+ðºËéqÇ×6ŠÆ+I6¼g ´¢œ¢õ(Ê|Ÿ¥Ÿ¥Ãl9â6ÖF1z9Ž.f‚—|÷Vm"†ÝgXö’†Óé¦6·Š™sQ¿‰AFù®‹Xó4¬É?Ó¿ì’“"s>L{½žÃ=WlW7ëIºÞjœh!öøÛž!P¸CëZ4Ρ†Xsú¡‹!Îa­’~ùb`c+VîÚ¾JAøJL3EjÖš—ÌRbÃT@K÷¨òÁœ;ð½ÖùÜuZ¶Bl%“@^œ#6¦žIëTþMÿ©ü …æ†Ø*Ü™]'3ElNßn/"@s,aEé)1À¿ú¶“ÆÌêµ áŠ‚BVã{®®y­º6×#~ˆivTœT8ý½%×9·B>ûä/BxÏCÞñ†-ëW;G×ÛLå›X2dÁ/¹p&þîW;†÷Åcò­ƒ9ˆ¡å‰Aµ7“¨ÓªÂL^æÇ*b—>f£½pËw¾K;Ž G$5ì/9Óñ·ÑæÊö-§þ= ³tTôi(gœ†L?µ¼,—&FÎG˜"¦3~[4¨ù̼žÊ†y"N;…FÎ7ïFn-XãÀ—®7øzfÊ{}ÑS±$§‰âõTT“•_ó ´6ø:˜4ô…¨ <þ;áGšõ)ß)9H¬Gefè¸@Yel_jA_žmÊ¢u×¾mƒ7R¸ ènš®0mŽKHÅ™@cE´¥ú2ŠèíW–U W¡vήé»ìc’×ë&Å›—>ëüm%v¢Ò.Ìån“µ·½Â¶pç<É+«ý†½ÛKÊs¯k7]:HÙ/ùŸ[èÚ¶„Ïwì@ôÖ s$;ÄRU)¢ ¨ªÆO(5Üý¿CpJ Þ²åÐ"y ô EIÊ¿á( ùËbEžP-Š0ÞÙôzñ+÷§ í‘3™äïP˜ª6„n:I hƒv®2òx01¹#‰WQ] Õ³e°4#SžÑB  (K\d¼o‚éޘ˚HyÁãÍpÔ`/ª*ú9«5Ün•H%Ÿüˆ¦.®Ž$ãø¿ç¢Në’†¸3c‚}ØyAL¿Õñò Œ¸Y'f ÆE:å¢jÖoì›04¦°0Cöíð‹7Ù9”Óš«8ÖÈõ ½¿ËUÌÍ¿£—LϬà l›Ÿª¶Lw B{¡é˜lEs§}1!=Cîös»¡³´°0´L;ã¦0ŽB"p¢…üú5éÍüÁõÈùŠ+ ÕU{)0¸ûÄOüZ§äsœ>yEˆ7’±#þ÷2.Ó³æk!¡™æPMLÈI ¥P9$î!Ï~¼[5û€β`†‚ò<úl,!²ÊNÚS̯ûk¤ÒšËŸ‹b©=ýÀ߆‰U¦Ù&‚ªªÄ Ò„\4ýÎ{ˆïÓvbum¯¤×R9=Ö]Ö~½`í1aÎçϵFظ˜bQµgô(œx+ÞWx‡õº¬Ce^¿[Ç÷ö½n #ß—Û6»S·—ú6mU¢r'$>‹²QŽ„‘Ùùˆ¦²(Íüâv~îš+&Öv”¡à¶§ÍŸ…è=‚Üó;¯õbÝ —•¬c”×{lª“s=o‘]ú¡¶hÎÆñÒW&L"¶Èîfî2õ*¢Æ„¾_7ý<0`kíSˆpKÚ¦#¡¬sg~T¼¼x˜wª½‘. >1ZÝá‹rJ ¼ ‹&|6Ó>‹o¼mÓ–ð«Ë: Ùj¡wæØÚª”ap¾ÀXÙ—|‘äoˆÇg›KÖ|]ÛV¤À^W1pû»5à•I)QÍ›o#@8"¸Ì -­k‘ñ.JFÈñ_ɬ1—+³²q/ÄyöÙ5µgÙ—|íNmT ŠüZv;¤ëŽRV"VžuJö*Ë¡ô_ûôqòùIš±,iÆÞ™æºÒXå¶«¡l?Fu7Â<¿£|cÀ”œ}z)éH¡?4›Ó»îá´I;­™[ê=l×è瓚×E›Á@1o,ñöçÒÖÍEB‹‡=2C×¢âì)}’º•e:G$÷#Š%iÜöÉEÞñ‡Rk@iÑá½ËÅëîCNH°÷Á¯–TÉ[çR‹ÆNlQ¶TƒÅþ±¿âÚö’¡Q`ÕÎ]»rÞÈ©opŸt!3>ÐY™ä‚B›¡Êß·qµÝLzÎËyìû#ý7eÕSèr“:|˜<"Oƒ”¯ñ.ã<¦ÇÅÐêF„7„ÈÑÙ7GžrËÖÉá}¢íP× ¢œ/ÿê˜{Ú¶‹‡±"Ù¥Š)÷èSÓ)±"–ÞD§/ÞÐgêc>E8!§Dq¤A£ÒÈ›Ød(èÚbµúO| 0ÞÅî†"†)ôaÚÿ©;âö`»ÃD*QíHÔ¬æê¼Ÿ|õÍ@SÄ®üÐx¢ú\¿¦A_1dsá¼9Y‹ÇÁb@ßN>—ò¥²ñ¬hÚÿ—QA—U¶X„C˜T€ïýƒ¥˯±­Ù JUoRH¾¾·}ïiâËâÁϘÁ°:Uä"Š%3žxŽâXñÇ7Ëo:šú«QEyÄäÚ¹) Qæ¡zL¸_ªhTcýB]ÌÛ°ep-#ý‚?žÇù¨%)di¦‘[TfDTÀ´;žNst‡êĽܮ»è ö¢¸8q1Ä Es¨Ÿ‡Ò%BChêÄâ(ð5b;ftØ85>®²~2³Wÿ1ô+rI³NVwøµvM÷Ð_x¨‡’L’ÛjÞ€'³™?1<ØmH—ÇPbÛÒ%šg–•éŠq.¸+ZÏê°õQ—û×zÑø{MZýÊ$ÐÉ&è•£J(õ¦ÊhqÑþkút‚¼Á<0"ýC(¢RÐÔ²qÍÅ„ì¬ÊµŒ“®íÍm¸‡L`8±çóäºûà²r¥’öŽ¢Ä'— L‘g˜èMçT}Âùd(¢O¼Lìn©×¯~ СiP;Áv´9B<ŠÁa=’™ä“óŒR µ§ô®5šßo}VÛº+Òm(þ¼ R%»·Ò8QE)Gƒ"®oÃÓŒÛØ6ëM¤°'W+¡ÂáÞ Ÿå ÚŸM¼Ùu?B×Sö§óòÛ«y´uȘ\wU1±QNûç¿´ÒwV'J¤Öèç~ãE¯r.öÀL&1&{†ÝÔÔZ5"!Ï5 o×tHä yvíŒ!€§3:`ðåP¯ä¾É ×›ÿé²/Õ>§GÞBZ]J„œ²Û…ÅïHs4zÕá´gÊVþú1/Sé&CßTúOùÍѹŸ“ms ?¦_b™ÿ¿ àûw!Ü37Á—Ó1 Ô“H…Û t‘Ü T%‹­ƒŸI¿iW´÷™¢=ÙÔ¹Œó¨ÑQª« gë$?"vìèœÏÿøT³ï¥J¿ªz—mår¹ÿf“¢÷(š&ú€ýµÀ¼K>³)²É©x¼KÁ¤^:ÑOZ€~~8úF¡È-…‰&fCïÒ«íîÖ‰žL.Vê!Ž¢ê¦y` Æu¢fó›}œ>©&/Ž-îV©¹o° î|ýêA9ÞÕZ&0·÷å“U[?• G³)ìÛXHB.k.œl°rbálgSQNTAç{jç¯|—-ÍKÁ¤×C¨yÍUÛ9CÎ ¡÷Å“oœC_ ÑäD}uº)øž †‚ÑëØñä¾}.™Í¼¿KT8vcñZ3±]5jB=h 3»„ ‡“Üyc÷ÖZʰ"bšƒ"CÏàš´·û(:Sÿárý{qºk{Å>î~Y©OÛN´·áf„®øíiÝÝ~ÓþC9_™QjUÅÃTÎKÅ“œª= Il¶ ¦ó¨_0H[¿zm+üEHж™Ž ,ÀöðXnÄI?z±ˆ¶€M~&üBÁ\*¦ÝÃàøÙ“Ó¬”ò㽇™Â/W6ߪ!¥èhØ;µ}$°ÕÆ:½Ëê{2_Ü>”ÿ¾N+CswvØâ>U À6<Óœvýö$>Úu Ý«oõ9(ÖF5¿Í¨›æÂ<‘n¯›dÒ05Q0(}HÄiÿ‰e©g®{ü¦/'b¼øÜÔðÈ-··@Ÿá/"ý0½u¿JÕOÙ(N1·9˜yñ¤Gú“ÂÞç &œήÄB¾{÷s…Å.E|>ƒŒ6•­ºÎû—xáY>A,¾Ãš$žAˆB¸$¦o¦l*ê’‡P)ψHRúÍåÉkí!OÌî7Ù]Äb °ôþqŒ¶ÊsÕ¼ø~6÷Ȧe姨AÛG˜Ÿøâé4àLÝ †ËÍ~yê#è`‘¬#Yhøõ3#'k"§Iï$ÙiU8ÐâwrØ:ñþ3X·ÂóèÜ6#8¼V÷GÂȬxƒ¾òÖc6"ÒÙf'„J»"µ{®¥cšþk×ÊàbKçˆæ›ÜW®<9 '5P[šï=·ÙAÉ'Ð25VÖÎÀž»g"¿5åÆÜS¡]‡I®ßŽ-¡´½ê* 8è G^¿`ÝòÚêCoõÄTdŠ:8”3‚2«VMr4B%•6ïÝ$ÌMsQ;ä—#oTÛí£é°Í6N\™“ý¹¬fœg8§¸Î%š³yô»ã‰YÖ”ˆQy‘zíÀH1Ø÷®bV\OÐZ_Ù‹…ÄÛóá%²ËÜËR»mé äË2c$?²¦í"ÁÈê£é®vH_žsÒdiËýôÉ„$ÔÚã %$Ý¿O÷îZ×äáÌØÚói²$[jàÐé ‹’Ò'U‹NÃXþðrah‡[žyWIRŽu)¨Y_vh&»0$£­¦|Ïê]&ÕÆ_GU«Õ^ÀWl˜ÎÓ©“OIØ–®ÛýL|Ý¿Á6 v°®JíZm+¾§]$wVRü•¹sßú·Û7[Q&|“6êÈË̸|•6—Èløä/ÚèD=0žÀJlla42|²îknÍø!7ÞÞ€i"¤›’šžôìŠÊxÏ8»“€5ÊOîyøè-ë'¶@ J;Âú£îM°‘éïÚàþó¼¡]à'T5ƒá/ü¿ls#ö½ú†'h"äÜ_-SCbP3+f/dù¢”މ]pôG[°TÒ¨º \ ³ÔKwb©¦m«ÅJ„ï£êyW2 ¿µÉü˜˜êÊû`'ÎKpÞ}‡ñxiÞ²DϘ´Švb´”(6Ñ(h¹íŒnBõ+—QÆ_âŠÔ…'þ×À>Ö-àFÓÊc1 8°š"Ê)r Ö!ʦó Üdº'wµˆ vñBŠJ[rÌgý’“)œïîö{þ”XEF±×Ò¸ÆOnÀµt(Y’ûÊyÀ˜þá%ñWp-1ŒÔ ²oFò«_ÓBZ¥!”Kü°-ÃQcûÄO„¨”E%ÆëOÀS¢Ã²ž Vøm)£)ºj ph(*žð*퟽Z}Œ}q¯?e¾ü ž¥ö^ÔôpuÀEMAZÖmŠçOà•ÕÖªbÚ!?E•5ÓO{ûY“æŽolmmÁÖÎg®®Ù-Ö€›ªr«Kæã§Š[PmG 3ÇS.÷ Wå¥)A-!\uKueÅ¿Œ¿Ñ·¹…BÝÉhïË e”(x£7Xårza]Ø6 §=âð,½A*ñ J¬ØŒðc¥p|ü;[•*A½‘¥Bipt¯å’qšgMˆ¢±q§ÅÀªFé²a ¯Ø³­ˆÁâkv©1^©!ÙY7þDÊÊ•æ’E©#29‘2É–{ A’žÎ©Žjì 1/©ó"ãW"-é±¹$7JÉUºMÍWØ4Å4èÌiJ¤­ýºHטŘÉHÌ{ÀQ²vヶµå.,á2krß¼Èò·£ w³Ûd¥œHz©GY«Ìî”éÀ{‘8LwÉAÚ¢c~&aâ“ÇZÜæv:)›ñãˆúuBb‚ù Iµ@¬RÀˆFÓ‡õ1ns!U—´ÑdN¨1[ñù—oÑtüÏüËQûѨ¦i’îõñ¬6Ì‚«\zä¾c)¢v™>^ÚwÆzT2ϰ )õóN‹ž¤t¬"MŠAǬ(Ó2ϺwEȨ"…»,V6Ý ÝöÊ,¶/!©¸=ìáʧi4CI8µ‘óF08D‹2´/a¨_› o·N©Ðüe9ÙV#˜¨ß :åËcö+ÝDãÜ8”ØoBbp¬È~‚‰³÷·ŸEn´ ŒÄUz7ÚcÖ³¦pëZâ?Œ]UÄ·ãÞZ˜íô϶q‚9VjäêKíJ)âQÄã)#…äÈúãPT¡…žÊ÷¹Íüš`û‚ÈpQÍ%[6=ï;êÇБGî0õ[«*ÀÝ;X‹ür=*èK›¯W™×‡Ÿñ™€ùm+n“èmæ¦ûG[½¥ùƒâ E£lX%k‹Ó»’fêk°Êžl¼ žÕãky<ü)ßR$7nsˆÊ§bŽÁï]“Ú¥xÈ.ý×°e = ×’ÄÔNïv…8‹7àÚRïW«n,øÝxcÔÏ–Àº…+.LQ qBD¾_üR4­Z%*`‰/@X9_ÊÒ¬ià]¤c±¦±?¢ XóÔêT¢ìÒ^'ÉDSöÞî4•ûyO~ó¡½¶ðZß~£03É)yjì Î ûòúS2rü 6õRö"ˆ&´m<êµ"SÙ(ügèrYÞ!áç¸ß‚¡²H.Ÿ‘¢PU ¬ûµª×-ž!œ`T š Á»4ãè!?ÐÁ[hü,ú56ƒΤŒ®Ê-jÄ3Fa®#2šŽa¡Ò÷·§·î_æñ™,äÌ”TúyÙBGä‰PÖ «êrS×GYp=äí3ô=Êki妿ÅOù+ûr&©në!ô› ¬Ú•úg–YgÁ“+¨4Ÿ¶·Í–)Rø -†a0Pͦ é­à=xƒ}x>ð*Ï`¶§8ÙOü/›[ ql€e,‘ô¥Ù¨Gä= úÏðð·åeŠ‘[H㫈ÿÝBÄ«Sg  ä¤Xæä®B\øÐ¼…ËÕÏ[h, CŒ›¥X°é°uÍ8Ô×T¦ Xûí:ßj[ôCÇ]¨:ÊÝlë+&#~Rs'…‘~º¶—$Û‡-»i v/: ElðrêWu‚–|bc?ü'‘ég|ɺ梗òŸv•ûo\I5„„«Á½øÜ#ÒE„ÑÒ¥>9è–až½õ`¼¡»©¡Ì×uAÖÚxl¥{¾Süy@¯_Ï=Kg  „u4aAЉ#„ûo:­ÕÜO¢³ä¥CË««’²¿HIF/Œ·. sôE(î΋—?uçpLCÍq: f7ŽV@S%PKIÒ´ÈÀµL#\úBäg;}†~™c³I7ë0U ŸXþàÙ!³8%4†…ié™âÌG*ÎØÏ©Ä¯ŠÓjÎ+[5àm*ZÞALŒ ?ø<.Ï1•(ª5úiwx÷ŠÂM§µ¤¶bÁ¼±¾w˜ÞÕŸé²4¥îë“Ù›ýÂ7Uëoê+àØ¤îj7?‰‚÷¨†3®©(ýïÛÓ¨¤±ëǔí„óÞ“Ӭ5ð3LÛ±²Dk¡ìóRÊÇ ßG³Ž„F{ïxt/8ÞÆ7Ï3"Ê&·°”A6‚‡6ãÓ;¾Ž¯êæ=XPäd?ˆ(Ä ügm.ÔýDÖ¸ú|¾Y*ÿ†JYYùVŽš4«-ÙÆ¤ Ô~õÏí;·ê¾£Ã¯¢ðØ/­Sü.·>3W/ÙM$K=̰4ò5¬Rf?2€˜Ä[ë¢áá½w;.dvîÇ¥v3.ÃÍJ‹¿ž÷Gÿ‚fÐ Ü$uAÏ®Ì WCR.¿ÊY¸}j¸î¾ÚO$Ä"’Ov2ŠhIEF±KÚUònQ!E4Ù´ðÚ­‹?÷óz>ôOØã7Dâ"ÒoV „~XèwÜÎfyÈÃè‘ëÿa•œëGDòt;Vý–›ª™Nic3ãMUqcÉEÐ4á'/Áý .x#y½ ñ‰º":W‘ƒ ½‡·cãÈ ´y÷S¥UÓˆöìD“THm2 nmgqRÈC̼l-’—üÙÂFÖ©u„Óþ#Ã,&qªšDVaÿa2üEê¥!³[¿L‡ÊeüŠšš°iŸZ¶2æù¯Þ½nÛ5ê_éļ"M§ó®ƒ±T Eo‡|YdŒîl@¶¥òª¼{¾Ï÷÷?9Òí9à¹ð7_ÕCçy%xUDÈêͰ§1o” ’“h.¤:ŸµX•ªÂs4‡K‰o/Õi7`­Z/±ü:–´Ó‡àι4UÖÐÊv }‚q„"%Û–H)ì/–K·¨@”; ¼pABžn·äг©íxˆäëÕ´·Ÿ 4\Ê{‰¨±ˆ”+b½=%¾V@L×we‡ô¢5Dsi¶‰ÒBTò©‹a¹óŸÔ·‰õŸšÙ.((³¥…”­îIc ëpÏ"1Ç2§J°s·æœh¦nsNÈ~èSÅÂÄ(àoÜŸÄtÜMhÃá˜Ñs‹0­K0ì)@Éd£"føöÿŠÇ¡efÿe\p¯}«=;ÀÖÕ—å¸ÑÈ yçÒ<µL #`µV8ͤ‡ýEèå.å·Pbfp2áBþ´[³XFÆkßg—<äê7q+Z®ç|%õ6¶µ7õ)›§-V±­HËW¿‰¶æyq×HÒOIhü`Æá4ÅÇ…ðÕ Á„øøW,2Äl¾ƒôyß(Üœ´kzõ.¾"Òé-ãHˆ1µ€;},Þµš 2U`ëo ¿6áœÌêKHa¾Šû`ñ@~x=1ìbÇ×8²*%ÏÊùA¢‰ãºÓú´ôý(ɨ2±§<©}ÙaT02ù›nÉ6+Ž­Êã>ðk—äùO4Ç·.3zT?ˆ"?M¸þH‰dJöè¶Í¿‹=·Wóɼ¶ÚÍ3¬Îëä{]I†Sà\½¾AÚ—qÌ»snÁ¥ ˆæØ}GÂÂòTn;ÎüYcö± q)fn/Ît_ÿrï ù«'½”tU¶ÕJ¡˜l!Õ î+V'º=“å`Ù¸?. ²uÄžÚHøT”Ï€ÓøHç£nÉ®ßé$¥¯_´\î·/}ƒ­Ï£ÔÇæ}5óçµeFB°íhQ)µ\*¿p…üϨ·¥G–:\´P cò?í#5µœ88 ÚžÜ[G4jÁÄØÉ;èÏ}vú°Àfh<îCeR]K‡¶àƒ .0 ù,VH+N;`}"Œ²ÎYü­¥©ŒU[‚VBÁF•†êB&Ð%}‰Î$š7ZÙ¾D­ðÀ9û.‚}*‘#<°ÄI…ÖÊzµK”Ô€å9ØK´žz/=«DJªÔ«6©@ µÿ ±é88Øfž4ΈK.f'›ßtÁ é‹D{×(¸{[0xlT¦ÈÕŸ&¦¤oÞD .ÏÙCó©Ú­‰Í¼?ø.æ§vëI¹.äÐ÷[É 5 LÓx(ÊF3¹Û²AV8^_Œ ¼5y,µÆPÌQÍ´â°çž iÒ„ßq€¨É6ˆ­fißP6$,s,©Sˆ*IŒ¤í"m|›êF«Pøò5 ‡î;l5½­Ý°]'èœâ0gMKéF<µÚ¯ÖûÚYCpÞ/ ý§&®äyCY^ ážð¦íÖëý*¬Šõbböcw&•êë#DË‘ÁDœäÍ…V³9!ÈOÐÀÉÄòec{Z^Û9Í™}U·9ÁDz”99áÏ9HÖ«ºX¥ê8ä?Ë1—–\(îI‰NfùoòôçYëÈ>=lC«{é¬k?òþµÐ¡DÒ­DQ^he‡eþLú§]ÉNˆÉ›¶c#S©ÃR„Ô‘û߯¨ª5LÈ—½c³Ü¡¦°mµ°êÆgBˆÔ?Ónde,¿­w’‡¡,ùæ¯çô™QÕ äÛ¬\¡ì }A-I°kåç1s¢éA¡>10GµVeØÊaDh`¤Ç÷¯v꡽_ŒNÉ™äm‡Yoe6I,|5®Lú¹À$±w¼D˜³ƒÛSê5ã?bM«±HQƒ­Ö€“óç Èå[êiF‹z2_(˜_t)ÖË/ñJH+B­K·À‘µëêë —`(ï³~½5ÌWHgêM¨çp%Øï3×AÅ‘ãú“²×s6^Šƒ5çdŠ»Ý–«Ó{qÏíá/¬þÞR2;J£PÔÝž\×A#Bñº+.þÙӥŨ³x8›£f9Ý’¨ªO[R§ú ×ÄF夬Ðâ×HÚÂ\ƒ%&Xe¾·Fʼn÷– ߨ%žå¡4°úªßßÉ)1–ì‘ä¢~CUTWk4?½.ÕƼ"¸°6¦é3©HcׯnHì<§¼e0=H5X§pô$ úÜÿ`_HäòÝØXë&l[OR¥wu· ¨hñ]³‡hfÇí8&=Uܶ>}&í·l×öpªñÝÐí‹JkMùŠˆe´úºŠÄPöh»äÔì]Þš]Æ”äwØvûh¶ñv‚&Ѷ‘–‹& ±Iqôm2}MÀÊËËîñvvôr égìîØ>SÔc­ àR[O6±<Øá~E,ÆpÀ#êqÓRÉÁ/f=%î¨íœ~ÙËã*fb±S^v•à ^dȯ}o´—$¦=ˆ´µ7ÔîTY™ç8­¡¥8c† ÈBO´¯5•¶¾t ¥+If©&ÛSxø'4ÂZñ“Ã0Á0rWéQ Nìß¡J+j¿ï.Ø—?#-õž'%mÁ’éHêÕG¶ Ú2:Añš&ÊÍÍiÁŽça0D’¶÷<·uL$aÌ߬Õö"[CLêŠ]>‹ùM­;2”W_jn«eñÏéjÂö¤ÂwÿêÏLu%§Z•Ñ4U%H8 o-=½_Yµ¯[˜ŸÅÇ›m¦òæÔñýµØÂJj ÕÓ‰q‚æI†Y hÌÌJú½øsµ*ÉÞ¦u®9F°Ûï(&fƒÖšê±æ'/Ô§†15~å:ò’ù¦fg25(s†]ÓnÇ÷»€…1Ut>¾'¦tæèœK~ë•úœVĬó[è/ ³†…Òd{öB§õ' ø«rë»=–×+ãAæPå¹ðÕ4Óbfßk‹Q›¼G§ëRðU$5¦³m¬š„†7+—þ‚ZŸcõªƒ9ïV­\›þà‹hó8CÉMÇE®4V@-Å6Å ­¢.už¬/ðcEÐMJ4AÜ ¿-á»ðÅ~†—·`ÃôÁ!˜/ëªä§5éæ®N5¯Á»ˆuce¾¢4ƒ6¤Ÿ·n „<Ì‹e¦;]vdw‰Çm︶‰3¶?AÝv†Œ’iZ»E“®Õé8Gž„6! ˆ§-ŽâJ¸Û;“Áò#ÇÊPtx‚˜‚Ú%‰6dWÑg?2’Ñ35­ƒÇ¹5žçô ÇÅ€éç›ûÕU²õë0^¥6ç;ÓÇB¤át¸‡ÌÔŒRп ™ÏµÍK³JLAdȯ½¡à'O>ìÿFG\bä¯öY ¦Åª^s_Ðô†-ºtç؋Ξ´3oLBòú[F6XO÷cÌÆú=Þî—\ÌX£Z`“fÓ¼#p$‘£#*öa‰Ä—‰BŠmÑrKÚ_Õ¢€­·×€3g¾?Mÿ–¾¥)|H{@B¾/×€2p LD¹ÊÛÞRñè¡ÍQ]íQŠ„‹††Ëu„ uý¼½Ä+@»]Q¥?´Gë<&• ÈÁ8—kûˆ {Ë·9bÖ²‹ºˆs|‰q%ï_Nrù™æuawTšËæb¾M™/*r/M ÙBaÚKöáÐ7ˆ6¿ ÆñfÙ4úòÊ!A#Hò­úÂÑh‚YU‚ñâ ²MÛ‹é‚°FªªBD¡é Fø^ÈÛ«zÆI£¼~¯ü³~Dö”³ý³÷œ’öËwgÿ6Dˆ* B/ìæf+àO› ÞsËDßRZP׊fæñUz(ÇŽ1,d?ºNûs*Mõ~>dˆ!èýæÇc«õÏv :µñê§`[‚Åá‚s–›p.8oãLë6ͯi29-ôMIçþÃCè­Š*Þ2¢ªá5"7‡ý<{á00¤¹‰3¥Lª$0@O ªª9ø dÕÒÆ bÕ#µcòðínÕàó– CþwÄÕþxµh¹x?çé3”TƒmlMé!ˆ›ò˜&äÍ/8úP¿yrFèã†,F¨ûè²”‚+)˜øŽd7µLϾ|BQõÄ*AEá¿…<¬}–î’÷ßùôé‰~¾Ñ( éæ/‘ç³ó5¹·}Ô<'f^ÒI@Þ ü“Ädº &ïn»àr$e‘ŒcÙre3Æ1xÛs^^›ºß€‚ÿÑŽ-"7$¨iîZ?¾“8ìe~ðråôÕ9pyÀÂǦKŸ»áÙ¡øÃmgME ëöjly²ž®g ç™áqÃ5µ*¿=Ød‰»>bÔ4ì0E¸1ƒ—‰ÒY8l¤­˜5L†R,Èmº³ùÛ‚Ô§Îf,{4aXüh`uud,mCÐw}c[¤~B‹M¯Ä ¤î–E·"Už4Â9ÞêÙØ¹¤K ÏøIíÖ:bCwÚ̶¢ü™ö:0r+—ÃìêÕ0¸¤©¥…gqœ CdPÄéeXèë–tOàÜåâúáËÀÌ€¼Õ¥ÕP…•Nn° Á²ýfߥ]®Æb4€´Å7=ñöŽ9ù*r.¸1‰Ý1¢ý ʸ† DcŠwI¯&¤Å«_!€–HÐÇøÖCóË·O Ô*kõ0½·„mkÔÌÜ›ˆ{‚J‰ûúj~¦Cú é¥0 EЩ:«†íY@€Ãrt(±äm‘5Tíõhk|éß!RÒ[ÿ¥ëUÄÁœ;œ*¨k§Ò-¦·ßîw0“ä¤fmÒ)Rꀙ£jb™ÿ¨Ù:ïçÕ [ëÄ(œW.ãÏ/ÞÕÛYÏG;µúKd4XÃ}çt6‘ÛG­NÂTµ˜„—Í{ýÙÂO¨d¬‡Ríól•Ü(²ÁbIÔÉÄEq‘hüÑ^^ž^¹;ËÑ긄û.Vàès_nòæh‰ûÑ’\Ÿ“YyĤƒ$eú×Ìk°…HÄý$gF„“Çý§¸Ä/¬fdû»Ï?h&Eqïœ"¿ÙÑ Äl¬{I­8û22Ó{>8Ó©b¶;ÀTùL0°}í8±_–ºÓÈcé,faYýn Paéª!Ÿ~̘ “Ñ«Ó4-b>¼vÐ2ÊëB¼Æ?;ÏÞŠ•8}›ÁÙo±Ä‡U¸ÁͶf¢A^AìNÙäßQÃs]v4´›¯oü)5+ ýk·¿0tF4gz­íát5¼>K˜Ù¼¡ƒïÀ˜< ™ç;ÐÊ'¡-Éh¨X¡âñK¡8U×3[ KAÁ»—¤ ™ˆÏÐ?ñ#/1fÑd·ÚïÉÈ%K«L}2 ıäZÂiÄPé-„ýtô¤C0Cû/æ_z6ã4'š"¯âó'V¹"ØKI±†F}zᨙBm¾Ø=v¹SþÔ12i‹]‘È×÷¹Š$~„"ïW¾ÊZ½UyÓÆccŽŸ|‚žt®úÒÈê2ùc@­~Ö°q±DæVŒˆÕ'‘kõNÝ%@ äU.¿ê{EÎäR(‘c2ÿiÝa)…³‚‚.*ñ#Û>ƒg Y?q¿ªÍ&Ì·Âd¸,%ý ®Í QvP†Ùý×Ð~qIƒ}y–¯~I¨:¸,eåÅ&¨§ðC0'¢g‚ùc"îbLÕ£èê’Õ𠇥ûýdž”i™/Z¡Œ&h)kEî‚LÇŠ“ùštn‚¯Úô¨Áåœî)Á™n’ÕYÁ@R{=eòzð6_ô¨† ZÔˆs+ñ_x¾vÖ<¬~VC÷!Í«‰GOûH;$à19ÛÊM:É£ß@‹N<ÙZ'–-±WÇÇ9hòËŸhGl}Òe%X½÷ˆÍ ?ŠÄÐm%+Ïúà‹ð©kŒ8¸i°òjò,ÝŒê.emßè«À3A——Ä(v‡ŠéÔ'én•KÝ=¢E¸+îa0±#›w¿Ïþ§fWÒ¶ŸÞ×Ìã4kÄ+¾§ <¸m}ÜR…b|¢I˜<©{FVõ¿Å3ËC r"˜HEñP˜ØüvJ™¡+z𘉣Ì_¤ºH‹Ci¤Ë¶ðH¯0Ëó<8rªMž®¯ù8Ìz¦í޾¼?«±÷½eÜï· €ibßÌO¾_ P8ÏÌÂÁbÑvªJ­>äGI7,@!zH¶w¤~×Ã(ŒŽ¯N„¸fwGâ<Óe86 õäÚ”N 3Ä æž¡ü”ñ„ȳÚœV1•ù²x¦»LžRßWLrç£Aóa®HÕS˜v6ŸEK¦Bã&Úm£3Ÿ|uÙƒ6Ái8ü+ÅŒØNPh8¬&úEý>3ƒ}ѵ0àôSûµ¨·;ñäñªÆ¤B•uÜ‘Ï/OèOÌèÞR8+w’çÚ¤)ÊÈÀÑ%ÓíGVýØ`SíÙÚÛ‘›a÷ñÌ!QQÏ>%#îå.&áYFò‘%=G3f.›ÏrÉHSFÒµ#ˆÆBwÏfVŸõ¾u‚Tñÿ "Ýú¶ˆ,úxúóC£é¥D‡¨Jà‚Ó¸ˆ³,ê‚pcQ[vJ#³­§ðñ[I3Ȳxàfìßn‹Â~ѾüÐ:ôÃ35ßêe“…a£ù߉[ hôµKÃæ…Ñôä< hÒ Erí0Î'Àµ¦ˆõÛô?pÉ®R$Éמc {¹æ’"ø¹SÄUg7+UÖdÕ¢ÜϹú0NWá>$;HØ:Õ´dKóqMj°L/Ê}yÒ¬Ômn©ªá3{'}; @×€"nÜò‘…t›#ë3ï%0Ó£S޾Q3ÐtKRÑ-ë¹õ¬ùøîNˬ^d˜²rmí‰@Œ¸Ê@KÔÓb"ìA™žî ŒXŠžEƒ.²7-Þ>ætüWÏ¥ŠMŽ2éªP-õØ u¹à¦^UZAúJ о Š6Mô©A„÷Ì`9ÕÇ]€'·ü1I}­_¶—@ÊEzrq :ÿsú!ÅæñA@kÚÆàÙÜ剹sÒ‹LÀå¸7"µmõ×Õ¯±w÷p)ô©4厧ï^BJt¥­Q³® Тøûlõ ¿K{6Tƒ¿½®Ã9J‹âë[Qƒø¡ù½mäÿMùÏÓˆFöþ¯T¢@%3 Þ† øògU~gO-­ÈÄceÍ·¿nZG¼Hf”s6˜«AØÀ\e&ÑWêßRJ?¨8…õhHN@{ˆæÊ ÏÖP`*ª!”¾:k™eºñÎÅŠÇ'Ÿÿø Ìs<*ÙÔN¥€BÙ߯™¼X4ÌÁx]ç:>!7³~ÀÒh|˜ý*SÝ"ןRR\CïO k§gÊÝT'ŸasP#‰È7NÒNz\ØT"éV‚ÑN¿zžùØËš¨y§~eù#ަ(´71n<º´?Áë½ø;H´lH_}ÆTÑZæøÙ@8NèÐ~‚‚ŸaŒ!˜V¹8™ñm²n¾#PâÉ·+݃|¥ßÍÁ: ¢I¥kåߟUíª'T©G'Ì­ÒOÁf™O-\±¸?›f†cDèxnâ¡6À*:Øvì88D“xÕw¸ åéT$¡ÀÜĘžîSô®M‹šåבäP¯Ì9ýˈf~ïAˆ³CR¶u¢}ÝÏ.@ow•ðÄp:óNæþ$ë f±}[Á;S•G¿AR…xã•b1€Wø9‡.‡EZÐT:‹q½,˜ Ü/~!4û€¿R%p½tE„Ü@ 3û¡Oò7eÇÏ)º»ŸþIÕã°¦#²2´÷Œ&Tx;ØØæß—…Ñ"A8AĘü `KQ³½/gV“Œ=¡Eä²ç×PöZ‹ŽÀYb…ÈŽÒŒÜʯfÛö+`-L‰Ï™Ç/:÷w]høN¤®ÿ(û{ˆ¸à&àü¿³/܉a »B†mÐYþQùúgwI9`ë•'‡Ÿl¥ ݱz®ØQHAè ðŽËFÛgÛóyÒ^¿IZÙ ÌM²hIF1†‰ã$äÏ—r™oC·KåÓ¼ F+v%ö³±Oà ·Íþ¡"•wU½àûU߈s3³‹Ž0\„€­ ºmXÿ¥åf—„ä¢f|,Ô˜3 R*ƒ†© šŸ ¢<Éê õ~è“+àðÙJ?á‚ݪ™èáþåTÎ#ÒÌ•Ë5q$Kû[Øà\M¨[ÇwJý â?*‘ìWQãïR}ëÈ Sÿý {¨2 endstream endobj 1522 0 obj << /Length1 1470 /Length2 6897 /Length3 0 /Length 7877 /Filter /FlateDecode >> stream xÚw4\]Û6Ñ‚D¯ÑF”eFï½E] 3Æ £w¢·Ñ;ÑE'z z¢†D ¢¾Ižö>ïÿ¯õ}ë¬5g_wÛûºË^gؘµõxä H+¨2áÊÃÇ (hʉ@ ^ˆŸ€Mæ ‡þ)&`{E¹Àñÿ0P@AÁ®h™"Øm§‰DÔÜà>Ÿ°8Ÿˆ8àÄþ2D¢ÄŠ`w É PC" .l H'/ÌÖνÍ_K‡5'€OLL„û·;@Ί‚YƒM°«Ô½£5ÐCZà®^ÿ Á!içêê$zxxð‚]x‘([iNn€ÌÕ  u¢Ü¡À/Â-°#ôf¼l};˜Ër=¤« p˜5á‚öpC@ (zs€žªà±ñ‡±ÆÜ€?sàãåû;ÜŸÞ¿Á¿ÁÖÖHG'0 †°ØÀàPÀce ^WOWnùe†» Ñþ`w0 ¶Bü>9 ,§£ þIÏÅsruáuÁQþ ƒÎ²¢€tt„"\]~O†‚Z£Óîü£²¤ÂçO`C@l~‘€¸9 0g7¨ªâŸ&hÁ?2[¨+@‰‹ Î¨§µðWx}/'èo%ß/1šŸÒ `ƒ&õƒÙ@Ñ/°;àŠrƒúùü§â߈€Y»¬ ¶0Á?ÑÑb¨Í]|Ì` B÷ôëù{eŽn/÷úÇüw}J†54¸þ`ü·N^é ðáðð ||bBôÂïßaþNÀ_äKµÁ°?ú'¢* ûƒ:yñpÿ³-8þNÀ¿wÐB¢{ àø§õÍ@B kôßÿy~»üÿúþW”ÿ­õÿû@Ênpøo5Çoýÿ£;Âà^ [ÙÍ=šHôp þÛÔúÇ(Ë#áÿÖ©º‚ÑÃ!‡°…ÿD˜‹2Ì ц¹ZÛýÑAÕC@µ‘.°_W €‡ú/zܬÐ׉ ºR¿UPô4ý{K%„5òkìø…„` ìE€.< |øÐó zþnltE»Ðäü6HÁ¯z €r¿D¿‘˜þ‰€Vÿ 1ÐúoÄÇ'¢þ¢ã¸ü]ÃÖÚ …BñïnBSù ÿ¾1 PO¨5ÁÜ ÒZ"ÄþMÈÛ³j9:ž/£R“l_ S9y|æPmnDx/9«2ž-¡Nä^¾ë&YXSâ8–ýÄôÓg»¹/¼%Q§õÒ÷êé Ýñ/­³cTý ¶åjûðéyôe7|:û> rÀjÆìPcËqv%ÒÎ#?óèUñ¬í+›ù¢³Q%¬NxU:ÁkcT<Å–k•9Msו‡áöC²}Oâ©ã“I²ì7Lj/¸üvb }L–ùŸŸO{/–ëó»tÒ²ÒšÐ0`“ ³ûÈMV£þèSR§]dÃ`1Ó(ÝF v¬a,}ÿaå=Í·§A ¥ÄkãaqÖ:«lòï¾Áõ²ÛiÈrjEŠ'~ò=Í'pÑißüIå]¼'$]U(Cõj^‡tã@"NTù½_+…N¦/z·ßÊ&ž´¶"Á’°ÐÌUÒ½qK0—©™Ðø3gò`ey錙Z¼W…µŸøÈo:-$ê˜?ÑaΖ¬Ëg.²'ÖÏeÿ4cð#éâf€¢³•¥‘݀Ɇ‡AÅÂÝÍmC²9aV»'l®ÕƒödK«Â UtþuvÔ×ç’±ÙB9Â>÷—|+ÄÊáEÞÿ¨ü1…†10F2Oj¥¥H$+ƒqaI=;PB2 !—f»jæ¬õóÜSã=*¼NùiB¯ô™Ö8zMÿÄ¢_JÍ>«fÄòåa3á0'q<¯±Œ>—¼wü°…[CþÉïháTÀRWÆHv{¾7U¯1ö§:/“äNxy;·w‚aÂBca»÷ý"º„¾Òsù°Gƒ¼(æ‹"UÃÙj Rÿ™SE^:ýRí,éÜOêH­èMïzÂ$‡R…À–yEÕ/oôÇ ] z"Å'Þó…ØaeE¾Å ¸VRT^ö‘I'i»`ÕÒ}©½} -ve˜pòªî>PŸ#ElíDàXŽ ~ÔI %ä½ónã«å"S(‘ÒÎ]¹Åùu:FfƒD¤·érëÜ=P"Õ¡UÏÕÏmíË™#Ò‡ýi½:wo ÖRR‡’ÍÁ³·&r4Å"ÍÂá¦YgM»µ&DœnýIúf ‡:hÐYÀW+Õ9‰) 5>ÉªÚ ù‹LÄÙ æ—Õ ‹)‡S[qúƒU=E ¹ò‰Ûbwí"ö°e‹°H“È(¨­†Ô ‚(„½=ð“Ÿ/öÓÛ';©É2û@Yæ”=0\d[P+©¸ªÉzNÆÈ#“¾õåëBÄÙv™üçB”ªÞSÞ#’¤7lÉ?÷í[š$]ÖV(Ä8÷Leº÷˜T>O‰%HàN× j0y †õ‚éœAA>Ùþµ÷Ƙ-j»}aëK1ûð'©ž KuOB´"ËÎä~¿eÙV`€Ytã°¨q>.òIª¬ÒÿIë=£úü!K‚,wb½›g¢tÉ4•žrWXø÷8—™1­0&Õ ™öÁÙE•ü*%,·ƒIL>•q2¼ª%nL|dBú½•hHØ¡zg¬GBÀƒÀî4¶‰ÏèÒ²´à~ÊȘõ–iŠVáUV‡ÿf³œHLÃê¼Sãud®±•:}lNM(ûèù$©‹J5mCÂ8@1]Ðm‡G<ËiîìãÛ'|Ÿ¼Ø¯)%‡´¾«N)aó"[‘_Û>³Ä½hШçcÿ6ñƒï@i_¶–S¿ÊR~é̆­‘}ò¡8Ü‚¢ãÜca–äÄN^Ü_D“ÈsØAS‰‘Ï_í8uÃñI|Í Tï´mR_r¨$HTjÉ8¤Ýÿêë= ×¶C¥ƒr¾qd ¤|ö¨SF¹hTh8޲Š0dyÚeHħôHJú@i\9í-‹.d°qióz£O‹»H©ßÛFƒS`ˆÒÓ–:Žÿ‹'Sµ’1ù'¶f-£ô¬¤7r{g¹Í²†::_Éîv¶Ýܰ¢îBDnE9æy`ª suðÖÒͧz÷Š~ä¼\#]®¦ÉãF4Š=±*º •OøÌ)(z’óÁûù{iÕìGŠaÑÕl#ܹp åæƒ¡–Ø¥"¢(ìçG¶l2ùAŸoMzË8CdÊW²xØùž¨×Á éÒ‚Õ·8Æ÷ƒ¨v&¯…¢qœº"¸7pÕÞ,G-¢„-£’w§Ò¦»F!c6§ñb¯È, ŸÌI”¿–ݺ……eδ²0í(Y7ÜÎÀ02t_±òE [ÅQ}7NQ?,®,›Ç'–’òU«çC¯ W2I9I=žà/Lc›OC¬u×kTõõLTò¿°{!P‘Œ®–߯>¦[¢y-~þDô„9|êuùœ‡™"-n”jb¾¦ž&Å»58!¡ß_Úº6Çhôj—ìȱ‹£Óž*|a¾‹Aúq¼¹Lˆþ<™7¡C9Ö¿CÛÜ¢1JD©sé.ðY<˜ÿVùÖ"*õ‘^4‘%s‚^ã„P_£jVú} f‹ž» HBŠrÎ&0®hå߃|¢ÎŒ¹s€ cWx€‹O/¹ÿZ%‹`ô 0±¯Cºå°ú~åüiSúŠ©ýv!·’Ñi}/øë-÷ÚÝ„ÄÊØ5¼p¹\»¤ëþ§W«tƒ¥quºp[Ì¡ã[v±iÔàÉþøòšŽ¶·06r|ê«ÎüfGË ÝÑ3Å­ÉpòÇ‚íá¤F¯ïÆÕG‘Êö R¬ÖZ÷,Ú)|Ï.â\W¶öUJáéÀúy¶&Trç±Ü=NÝHÀS†¼d-º2deŸ%)=ØØ%ï›ÃÇ%ä²c{còÁ˜ëÅš¡ÄÇk Ú}··£ûéG_H2†±&úmU‰=Å^ß§Cy¼ë£¶#/Ó¥©Š¢Êk\òW·‹ËÔݲÚílYq‰Ñ̦˜Ixî0£1¶ûµÿ8º#5{}ŸŠ©ŸŒmÎý±óœ>W2%öV‹;IbÆuÜêÔ¹vDíh6në1Wœ6™#–Ûž×ö4Y4–µ|ÂáÄï}]USJ{ŠEáv¨& ¡Ýš(£SMn|Ö¡Áíû伆8·žˆÓ å d¬…?¶&Œ¿ÍB“ž°Hʶ¸a±ƒT~ñâÆ“\)½øãÒ±œpˆq0¸ú•ä2‘°‡—]Š)k«M÷¾Û›Â,çà“ ¶§3 ˆ(B³™¾ÁÒ+§Œe–R÷3ÍÌêéRíÄ'~âù»Ô}¶÷îн~i¯;gÂí™ÑÐ;†UÕŽ‘äP>²üÜå7`ر „l5* fR\SGµ‡Oèè;{BkÛlFî¯Ó–=@hÄ(@qÕ„ÄØ½¢æC Ôéï¯_×ÓM]¶ª¶ €Ì²›–îYh—´ —Q©/Ç]O©@~ÔÊò•¼Ê™¹Ê%ÿSo6b ¡LBqãâ²§ÌüáŒyB2¤ßÈ#¢¦Wãx aï@;lÈšœ¸J¥×R Këϰר ê·³$5ý‚"ØîH¼ Y)8fGAëë¤ã93ˆÊ·6 ùÀÛ«ú¯Æƒº¦\·E˜ Ÿ!êTâx4Nˆâ”âiÆÖ(?À»¾^·æyVÉk­2tý¸ä³`‰#MôF;í%'ëÕ·lió¥¯>o«ðÏžª©™úæW'RÛ+Ut\MŸjT‡xöyË·6âŽvKÚס†Þ—o£P%&sAõå7]Ž}2ž:½ÞÑZߊI§•$ Ó-eŽs ^½F±›É¼¨v?´îËWVësä†ß2W:ÈH‘éî›GHfuò¯­Á^dÝûô.¸ø@f[Ý=*Ž_òR.Q#¢ÃS[ò`=ذ۴\®ßÕBî$y|SÂÈ•Yde¬„4pŸz}ǸšÉáPPa‹Ub !ÕV¼¦œ¢Ž¸w"y÷“+þ§ÝÆJ• ¤ýäBø*ÞTÖ°Xз+Å›*;,ᾤvàÄNV q߬oÅJ\ ‡×§\«I2‡‰#ÿž}zýTÊîªæÚ{ªï˜Q‡èOòhŸðúû{FƒêË|Õ¶É /äút5^ñ“LŠü•Ø •æz„ñÚ$*·£{\Þ+Ü1û(ÂLÕÆkzÔÚ´qº\2¼É™3¾-½kè0šg«á²|—h“ÉôàÁØï±´½­ŽMôø¥G|˜ ²Í8ì:Þ›ZÔv({Y”Ÿ/õ(ø(‚Ääìĸô–±ú›a„eãRÁ5\{Õ÷‡|;éŒLËm:>(ß]×¥ŠÝÖ–ö™A?Í·J&vÎ$ö,;äGzç²OÉ„Ù//B{ïûÜ=§Ì&äºÉØ K"Úö_XµÇH>,Jì·ÛrÝÒV8Ñ_BrixFª&%ÈžÓ_c04ÍãD_Œ.!ÃÏi²o…6ñâe‡ƒYv—„¯Rç™ÓYÃižNœÏ§Í^ZîÞ ZA] ‘døÄ»Lù˜§àö.äÝÏÏ’;qœ| Åö7o€Ñmä¤g¬0!=é$Ú‚{ó΋Z8S{C²_µ¦Ó»§ùäM%Tie†’ÕϾϽ,= õ&˜UŒki“r[wf‚gUâüÜR‰#w,ïºCI@f2VCþU½æ,‡Ø2Up¢ÖpNã.„ÓË$?€Òoæ8<#ž³ÓÍ8äš³'h€Œ¼{^p½µ"90ùŠzúISZý «:Ø¥á‹sýjaÂ?ª4rUôˆkËÌ4.üç笺vnmt1W/›LSdزäÖ§Ýþa„¡Ïà¹Áãâ` ·z§Þå[‚ÝQ¦E°±¾ï~¤ -õ ¦oi3€}šÚvA&t*7 g-ÊÃ\K»7J¤é¢KxÅ´phN^yÃßmZ—‚R[w²±Zö(ƒöM¥߇•˜‹ïl(w&ˆÞשÑLx@ãÌ€IÕµ”\䢄&¿¨Sa±ë¡ÑšóÛ¬e¤]¤enú¦•P`šbR =ú ïËZˆÝ¼JoŒ”¢ÏÐæFŸÊ†YzëãWÔæâ)»ƒZÃ4ñdìâ(z·ê²*ÆÑÍù"xb½ò!Mù¡Ì©— † œ8ÕÚÎÖZ$Õ“W¶Èø‘­Üªo«\”JËýºS"ð}87˪`•äãvÎO^Ü£$ÓRØÃA‰v%­˜Žµ© Ý!"éyì}뜖=ž(ÿz’zÞæb×áé—ReR{‚VüŽÀ’5·Ú´[ÒÙxdþoV-Æ)X9»¾+Ð. ¦äå6ZÞh öÉÑýA½ÑwÅœÎRÇ’!ç=f’º›R‘Çb£[«r /ˆät œǺT`¡S{Þ¦š±Óßš½®ájt7úéc&ÌÙÃÙrR7:°QŠ9½Ô‹&ë`ª|?V'¾ŒcWãy^m`jÌH¶Þ§Ö÷°EP_ã‹´ýQÖ¿/V[xÜî!Í,­ ¸&ãÈÜæuf š]Šl‹T÷m"=Òåc>–îe¼¬ÇdßHØÅÃohT?/r(ÿ¼üÖÿÊ.{y(´?S¡:½¾ö™àƒälWÄrOÄùeø j”Ê>n"¡§Û£éÌtøš~ÛN:Zò–ÅÎf¯Ø\ΆB¨3:–!nxŽË˜NÃ^瘮•FNðñ“ðQ™vÔ+6ä¼<ÏwãIm{@6u8Uöp¿–²”ó=£ÀÂ×pñ•>EÐÓžmÞjAŒ7Äáe3]9Òî$q{Ë3‚¦àÙ¢&VB¼¶™ œþ¨]¸&§T§×HÅ!•v…íÄfŠ.iá‡ÙW÷×$­øX|Ft eNݬî³&ÖŸTiušd´‹%ýP x°~­Ý¸£ÜugàôÅ.y× åÝ÷n÷‘‡Ž%Ñ^i/£žY­¦‘®Äù«Ó”F˾ŒÅLNŒö˜¹ÁÄ¢æÉ+Æ|D²ÿÌÒ; —¼¹úÇ0|½ÏC'jRè»$Ù„VûNy÷Þ .rxŠ.;ý 錰é¡QÔÙÛE¹YÞ%‰j.¿ˆŠÌ÷§_®¿(Ý•ÙÐT¾ð[Þ*ùž« G+^Ã60äB&ÀQ˜Ùáî uT‚ï ’s üýî0 «ef¯T:šºlì •—ƒÜW1„ܾ<…Ypn¨QbTØ<’Þæïž_é»ÈµBÝŒg½ÌÌÆ±*s‰y ï$¬f.ôð-ßT„4=ß´{Ýóc‡?[<ûç§,›–[ßÂqŒ÷Í0[þÅs;Æo#·#õ¦|y²{è¤ß¸)4{ÓUhŽaAllT\$:0lן¥=cœ?³§_ø1 Òf ;`ãÉ.n:"åiJ©ð…ƒ ßq©‹6®¯¦Þ'ûÈéF\³ãpöÒFy;ñmûBù¸*7HÚ—±$yµ/_f žõ¦P!º\œe°/¹¨MOq¦No§§DÊÂò2îòÁs\¯Éù~ËU½_þYK'xdq<õº¹£h˜ g”2[йÂS=–·ú)‰ŽíöèÎ3^ÇSÀd½›õ¢cœ0wéòn ¹7¡Âm#Ònø´Rî•«Q$™ùÁ{Œå)áYÁ“ÏùEYb£,ª¤`Õynó76$µt¸³e »·¬*(‰—F"ƒ'’^ºØª> stream xÚ´TÔo-L7Ò-2 (ÍÐÝÒ¡ 0À3Ä04JKwwH‡JJwwƒˆt#Ò ážïû}kÝ»Xkøísösê9ûa¢×Ôá¶„™ƒ`P87'P «.«#Ë ¼œ@ “.nþÇävvÀ "ÿA‘uƒà69ü©ƒT\íܼnnA À ÿM„9‹ä@ˆ%@ ƒ‚]p˜daŽÎkøC¢¿?Ì,naaAö?ޤÀÎ  ‚Û€2Z€ì:0 îñ_!˜ÅlàpG..777Nƒ 'ÌÙZ‚…àÛ´Á.`gØð»i€Èüwoœ8L]ˆËŸ˜Ü ä <ì!`¨ËÃW¨%Øð £¬xá†þIVû“Àøk:nNîÂýuúw ôà ˜ƒ#êZ¬ ö`À 5N¸;œ‚Zþ&‚ì]`çAÄdþ@ø£v@AZ zhñ¯],œ!ŽpNˆýï&¹~‡y˜³<ÔRæà†Â]p~×'q[< ÞƒëïûµƒÂÜ ^ÿ@+ÔÒêw#–®Ž\zPˆ“+XYî/Òƒ ç_›5à òy`'ØÝ†ëw ]GðNîßæ‡.|¼aŽ«‡FÀ>+ðÃ?/ €;»‚}¼þÓñ߇›` ±€ÌÁÖ(οÑÌ`«?ñà 8Cܯ€È þþûçËäaÉ,aP{éÜ2—¶ž¾¼¶Ûß=ÿã•‘¹¼¸ù<ü@7PP øðáóßqþ™ÀßÝÿaÕAþªî?*C­`€ß~wñ0¾¿;AüµÌI‡ðß)4`; 0ÿ+c ?Ðâá‡ûÿYùÿÛÿßQþïøß’\ííÿ 0ÿÅøÿ@{¿(Kí ˆ:ìA&Ðÿ¥€ÿ”µ:Øâêð¿^e8èA(ÒPkûf qQ€¸ƒ-5!p ›?7éï«xo‚5a.߀ƒü߃ô,ì—‡ ûÓryÐ!ü»ýÁJûïä¡0Ëß’äလA8ûð€øÖãA»–`÷?ÀÅ …ÁŽÚõXÁœq~ß²?€Kú·éO$à’ù ò¸”ÿE|.•ÑSí_$àRÿ =0uÿA|l<mž¿MÜÀä? 0€Ëá_ø°…\ÿA~ì? €Ëñ?àC(—ÿ€uÁÿ€ÿ5& Wgç‡9þ±Ü3üÿñŒÁî` œ…Y˜…h í§Àæ«Ò4n›£bèG)W†<£¯±à=ò“¦«q:™‹ª¥ ÝÜ ¯mÛ4dœ®²–çN½6ªéj<ø.8èv¬éÌcf] OÇ{]>f˜%h@Ê5H’y"Rä܃¤INØŽ-iiÝ£ÃDàýüS×|¼Û3ÒbA• fÖöÅjä…õÖ´áŸÍûu7ùÏ(Ÿg¯9D¬G‡&k¤1¨Šµ^ãĹU®ô ö/uÓv„û© ü70ÉäEûËñaVé/å=ºÍ.Bì§{™+’Hí[ö”²“lzƒ™¬úßôûoDŒ»%Y‚äS ÎÀßRkÐbA“œHÁždehæZ qˬLIÄò¨*?·m‚^¾ÝÞöHco 9Ï^(·t*ÞtQT^ÁË¥ô1äcF$¯_@ ‡ÖIåQi Š*m¤?ÁüvóUB8A4,—]B{ê ~ÚoÛ|»¥8Þ+<=Ýõeé Çò!îÆ« Š©¿Ø*´®Ö+¸]›ˆüR“7%LØíËÝ)‰©Í´c&ËÖ÷\âo”ü™*楣ky4rõt.ò%«|¼ÄîÓEDVçj;ám iÕÁË’#•òi±—ðš®Ó1†—–^/f¸.އ0Ãüá¢E–Ò))6Dò¦ÑwÄ~Ñ垬HUϘ¬òÓ¨#9åœQHí"wí/í?ÔD#‹Ä÷#)biލ5-´ñï2q§©x£Žvôù2IJ”4>¦WÂbŸØÉI5 ̤WHñü¤U&ÿFòý¦þq.û0©d"¯×U½Ø Í—ôüäwD©œgRl}¼4*)çz¿wîÒ¯¬û¶|¢”2B˜èz ¹íjoýnJ‚7Æ~¥ *k ÷'·)‰æ]Zy»YÅÇz_ƒ4ÕÈlÅWu)”–åIµä衞°Ÿ™pæêú!É3p(Ø&ÚȸÃÊ÷:‘rÝà|SËZ‡AÑVñ¨·ŒùÇáïÞ/lïÔ¬†},¾.ÁÞ¥¬f“Cåx0¶JÀ >éЧ‚ÁF±g¶›Õ´B×çáŠBǾ÷éŠÇ M|¶[ÜŸë*øÖt¸,ŒàéKÜÙ–y—æì@lÛs¾ö¢é£Åĉ­ùàeYަyÃ|O<˜nZ_´ï=d_Èš«#LÃ-^Y¦ºÃó*Žðžc‰f´‘6c—  J…¤ÌõËJï6GC< tkLᆦl›]vªq~±Ém;l¡.Ù_â¾ô%}U®R?Ž!30ü¬ýy§¨9‹UTòG/™Ú50ã3_ù¹ñrâÖô~ºT³é ™Ë¬¶ßû`‡äìÉe%"ùé_˜Oï±þ“'6¹BÚϽg»Á×!ŒòÔÄl†rÖ€éQ½€ÔÇTîI~’ĹŽnêTsÂ5_ªfÞíùC‚åÇdú’]ùHééD¶·¢Ñ»S¾~4MæÇþ©×¼¯qIMº&®’‰§Y‰ËÁsl]°MõÕeÁëÖ3*hóùÑåDž¯:_Õt,B^hB³w[WM·HE¹Òã±Ò«š¶Fu[Ûsµ°K?çì€o’!tI„zL!=TLù7f±á¢ë@…n€Cæ]Üõ×4Þ…ÁØ’)üpE“‹SçÈ:ÓõÃ'1‡5¯Îø¸ÑÏÏU A<Öðõ¼iQ2ô2£gÄ2PBŠèIAvo\㤓xÙ±_”‘½ØsÙÃDlý̨xw€L°“G4qo§Ôl鯂s/Ç;±ƒ›Rò Ïpdã×(~|4)P£xô5ä#%j%¯qæ+QIõeê|{Êy늉Àô_jPˆpFJÈEEk}ÿ^!ùàEgsýцg?õÖòzœL*g#‰Ñ Ô/ÌBhL»ŰP&ß® ¦>Áh×.kóáRçËuüÒ¯ž¤`ˆP‘^í$þ~¾ I£§Ð;S”¹=+¿]Éi9MdMë˜wœé"ÞÐŽ‰ZŒ0²?6-VgewH°idVZ”žV=26>Ð$iæ=?Íå'²Rê ³¹/ŸÃH©Êº£úZ‰!j61ƒD¯ÏåªÀðÆúMtŒ c.5ÝZƒ¢ÂvTÈ»Í+côñ¼ÙþSC‹&¦‡¸CX;õWis$ÚeoBJX_€† Ç.´±á©Î—MP}¶âûØ¡÷8·ªÒ¥/Ø*Ì h9„oûˆq õ̶Úèå¬ìcç±ât5Èp)ê‘,LÆæÊG.OlŠ!ÜÆdé78€ãÞu\Ýhˆ,Ÿ_Mtk~9Vë2&dzЬZ&k…<ÕO8®õkiG²qÊ£uZhlò'$*Iž°`Ð1á+ñŒŸýÔ0ÙqTœm<ýPïàóäèiçåxïÙ¼×;x.c,^í£_žó¹A⩯P½ÏÖDÛ‘éG‹A¤Ûrk¼ øúž7ËÍëwß…¨ñaÏ·ø>Y¾z³•\Àœ®ön†Y¤ÀŽA‰B3ß­”ßaˆGUM¯<'@-0GQæÆu2iOnmKŰeê‰<êDã3ýx!/{ò«=VTŸÒ»¯àÚ²´ÑVf&i¶ÉRõU›¸~ÁûçF®EËìfj˜8Dùš"ÏK?Ø¢!«·“˜ÜUIZ“x®LÙ&áeO6]¿G}¨Dp%»ëKC«oÅ’Jâ‰7\OjRvõ€'÷zk¡ùÕ‹¼‘4!¢Wzf÷¢ÂqØþ„YJcZÃÎû6û•ØÄç›`@7)Í7ËåG$Õ&"™Wtïî÷ÏHè­v¨Âo«Kxœ¢‚\oúÝz»¯ªši«]Ñi:´Ã0Y§–ÀD1fdça¬x×ïú4°d>•yXU 8O]Ù¾¯/0Üä“{$9 GríŸï ÑdÍøšl Qq9ûM_gš˜p9`¥à›×Ü,9› ©°1øœ'^Ö²Î&?¦-ÚRŠâc½ÁÓ7_]ÉbüêvÝœTˆ9> M1ƒs.[S—äL¡gS¦'vF¹ÚùŠ¢¶’Õ·­ ”Z&Ìqc*h2µºå:ŽäU'ÝœÀa¥S«,³Hén©ôÎ|bÔ¡MôÕûq¡:Œgº#f˜\§\CëÄ1AC"FCúõ„~<:}ÜPú#Ù¢¯49ø<#ók¨¹°Ј¿]p<á™üÅÏ™QöG*;öZx¹å_õK-]dß—UÈ7£‹ °@¤•pµ1[CM³ËrP*¦:!¯×’ÉÜ¢d¸¾°D+â­™‹à$ù…+Ñð乿0Ç]ÌêhøÝ¢àÜhVÁj›PÓl øs©cðë­ÑeèœeVà²ê»°õðÓê)b;÷4œ¦!mšà*Æè¶uÞóÏ?zë`„¿½\äæ‘}ÁF%Ú²½Ý^»+½8o•˜j*Enè£ÛoŽE:û¼ènì6D#Dâ€]ëlçÃ9Ž›éàÄp¯ýj‰‹ ©ÄIî“Ò²ZɦI;v<®Áw¢Da 5® ¯¦ñ¸ò/ÂËÞ#̪d÷ó-;±uÞ^ Øa¯{ þ0GfZÆ«0Ý“½{3O|'xÌðúžMð£ÃcwE-XüWú°*«s«*#D³ÿzê{ó;† 3ãΣúàjeö0ÞÀ9ùÓ9½è‚Î.oÝÍQ¬¶7yƒv;:Fû¶æ~$YŠHm ×ÝŽSTæ5»CBâdx÷Ð` ëжg /ËäJW{Ñq=h|i!#/躋1—ñVˆ”œ–ˆ‰Ü+ùQoUhŸÝšt»LD‘ZÇîò}îRG-Ͻƒmήvn}“64‘ûx¿ÁcŽú¦lªäçîµtóú-cs¹Ú«Õ ®&‹œœ*¶ö'D)n8o<3gƦæ"{PŠPé‡ÉŸL“„”– ÏCè~šdŽ2 ½Ž¸ gYHy4ÿ¡œ§BÞ¢XsH6â|;&ðM‚Ñu¤†ça´RdïM* 6$ñØ_¶“üì­ß¡gÌa:wZÓkJŸ$’•””G€†\úñE3¢à‚VSÍ@Ú 5¸sB‘`F6–®ÓfƒlO’‰ø&ý[öQOBË‘‹>º= ^í—y1:îR|i£ÈZO›û]¼Z.W¾P%~¸`Ÿ”@é´œR¹¼ÀsË 5k+á¿÷ãÕ¸nuÑOÁømûl95û²Q1Í"~Ô4úñ©Í1n sØ€€‡_ð&„ËIò8Þ&æ³O…H)p.GkZëŒaùÏøô|_šïw¯xd¾Ž†NÆV±ÿ !ßí1>º ÇÂdß‚Gzp¹[@öZVù+ÛV9Ò¯†c_Ë.¯ÉÖåe=üPƒà}n­1Í fÙœí+bdÌm­aþbhÏi÷Ô\M鄚óüg ­ùB[ìôãí¢Íô;Ÿ‚Ûºš”mÈ¡{€ËOäÏz¢æºŸÂñ4®¶bù’¢CÎØK¼â%Ô½‘ÞbžZPŸ+—°ÉTxow$£ÄÑêÔ1½Y´¤;ý kßÅå? ceˆËu™C|.w8Ô€ð?vÂq€Å}YË´E$ÕD^û/ÿbðÆèV;Ä ÀÍAÍIÚ^$.{ɃҲZ×¥­½«¨Ç-Êt)éNAs>µ‰³‹Nf™°Y³º"yi±]¿á¤Lµ%£1$ÿÖ>I6B,IZü &ÀÕU‰&êèé.V`÷y[¾©+í4Þ½0t'}2ƒ^µ\­µÂª(`a"C2“êYØ%S—e.üŽÿ8Ñù²ÖøS®×M£ZéˆæM:Ö§k™;¦ºI²½{›Lï˜Ý×Ì“+–*y\"¨_h¥®!£×Ó¯¹DÛyP×çfx†ô•øö­çþZtJ0».h3‚³‰ãCJ7DÒZßÞœWðÐÆøÕQ#|H2nX¹.ý›ÇìH& œ+Ã~„¶‰…çt ÷o1Ø©•w¹ ¯½úB;óD9Ÿ€´î‹Tp•x?ô¶¦@4îsE)÷C'Ùñ€óÓX;n—W‰:‘?«‹PùѺ¿Ìöý¦‰<§Ziè0§l@°x»¼q$þQüí¸Þù[7‰s«‰—+ÆûgÂ$¯æÎJÚ†ÄpÏü^-Ì ÊÃÕ Ðƒ0.xÄ Œ×ÊFȬ¾¾4Þ_< RWí;6&» éôÃ¥µMñ NKxpŒ´œüU«TÖ.Ž•JÕ!Ë0¦™}”öîÓ6Iz†Ê[Ü6<Éи¦ð¹¡Ÿt®¾ôÕ½îR¤Ž-Î6‹•ÕšåÊ/#:‘–éL»K2ŽÑmì¥nùÉþÛ†ö½¬¹I…w‘2ÝGeùô¦ 1pgŒöòdsdDÙçáóåíé¬!¸û™À5P·£mB<ÖÇ4™Y².Î’‹‹×§(¢;d¢ã¤põgÖãã“=©¢`=ÔÞ\jK¯ÚBüJ†ýúrÖ[ý&PÞ¡WÇesYšn÷³'F;õÜÝzÒìÚÙÁ×wä{Ïu -ü^’"2°·Kb](E=¿ªA$¡µßwWÙ=»‰„ž‚ÒêÐÕ¯_LèHl’T›[÷4Ï[wE†¶ítÝI& "kÅTáp'@ýRkô#ÒØW£(AãÏ7©”ƒA 7¹emiIšýû^®!­AM^Ö±nx™œ¤0³`«ŸŽéo7%PÜã21òm/¦ôé“?k˜0*éF;‚¨ØÍ–Åk¾8MäßeRõ÷‰µ1^÷rÓJ\ÒØËÉ2Ž kÝ33Ô˜ Úà£n_Ú#|dWk†¼Êc›¯ð›G³4A7/wÂJY¼Å"Æ’:¸º”ï?x ŒSJ'OÛí;ØNŽÍÉji‹ÐýÀÎ+ðVzßsóÑÖN´¯l•\šuÌðù‡nMÞÌàžº›Ý0 O 颧}My¦Ê®¦…;Ax)Oï:LäœGŒÁ4ÊÉÚ&ïQÕ.¹¨­Ïqð|ªgÙmxH¢5ãzõômì.ûK%›—‰ãYêQ¯^¸EyÉX]íÖSfÄË"È–ªu-ìϰógº&yß÷°Y[Ë’@F^Ù#fKî—EEžpÛ—zºˆ]q”XíÝEñÈÇÎEöç×¢¦Ã¢ï¯‘ %ÛaíÁÍŠhýç§y'ü(¾ü— žñ×,—ÓNÅše¡/ê ÕvìE±ÅQ‚ )nÊ“–Éþ7Åkå!ù_±¤º:_/Mh]TÛj(æ 'x[“™<=©×굦‰W1©C?39 œ¼PÌ<(¬}±þ“S<û|;v=œi¢òèÛd²Àÿ\†²cßôö9£Ñ2 –¹]qG+FgËTèÁ^H‰Á¸/®maRoÝ\¼åÓS_{Ô7 ðP±¦ž<ò•Ëžé”KŸž 7·Ï¦DV›À«Þ¼ –ãcÖ¾ŽTÅÔû[à±”) ]ô„¯qLu'÷˜¨pVÔŠÙ’5';Ý9³ñµ‘*h‘Ôqj‰¯ÃSXóÚ–ÐÚÀ‘V Ô“b”Qƒp`ÿ0JÍ.¢^Jšý˜ø­¨À"·‘¨ƒÛ”s!̽Ρ ½|¸°!š¹Ê.?ìYìŒóžÒ[G†ÚØÒÑ(Ò*s‡yj…”ø¸/Ÿ#¯~øÉLfuiÌ(òÌ»ÏëkØÖN@ IGp*"I °c›6"}¯“¨o\ßÄ2)°çÈx\˜ç‹[0cº&ôd+™¢ZÖïé’4«ålr”¿¤AuSOn©¿èŠæ`:?9RQ)€n S_Ú™Œ]Û‰Èj:'ñ˜ºþIôØ7â|þ³64XzRâ—ûÐëØÞ&‘|©ôK†ñ昙#Äçùî,Ö¾õOU±íl~2¹µØ Ÿ·;ËMáG;çjˆÌwÊ¥9~¡BÖIÒÏi Nø¥ñDÚUÌt#»u\oÝèe’]?»G ã{^ ó%Ê?CÛØó÷lzh¾ø._3ó.#8ËN…e«¦ªZ\T>œ’vœSÝêº ub¡hõQŽ2õÖ¤ïw‚ÞÌеT­Rø‚TªøÄ~­¸ 𡇢9°„B#)1Éðü©0©ì¥øjózïßûh–œi§_c¶'H; ŸÌ1ƸËpïÙŸ„ú(â8™¨B¾7ªÛö¿»»_V (.\Œ]gYä“=`žJàÞ"Ý¡œì#—¡ß#õôeZx­/àŽš.¨Ð§ÊÆ[7·Ø2ÌhÍ@<ÝÌLуq¹QÙŽªåøzâùø»{'±Ñ7ÔBÝQY?’pÀkûòŽ~:rW€=Ÿ—MOí\ãÉGä©üôf¾ñ)b!üZþQ ~îÙˆ”Õ—\ýîrÎ"ôtLaÈIЧ  EÌáZ‘óàè:6Œ%1¼Š,œ± ¤¨ÿøQZÓN)ˆþ Ÿ*O+z½ºÌÊŸä×bΘ.kœ¡p—š¡7ÇRl£2Ó¯¤fµqùÇ÷"\ýç1,ñ÷¼šUNôéÈ¥VUb½¨`µ7dƒmó½c tCÊSûÚ•—Ï:e[_ÅU'ïr™ Fkô=ÜüüŠÍo<õÂS_ãd R&õÏ…Œ«8ÏÁæpˆ±©æãÖÙ ÚQâSó‘kUGã£ØööÎôTýüã÷‘MIDø>òyYÁ2Ûmòmnð‹üžÎï5•š¯R2KØ¢½ªÐ ”¤ML¥©¤O€¬Ÿ>•M?§xV³°bE*Z¥È2ñ±ØÌK|´PQÜ…"E%ï ™Ÿ}k߃Žê:¸ŽAÕ hh¬%ûæþ¬XD¿¦së†-»q†Õ@JA?˜…4w½~láš?v¨©Ä-N#’að~CVŒ}‘³×ûaO_Ó[<“[Œò©š¿"“¦ø / ½ÚÂËôÕ1zµ x‚~8Á8d‘1¬ÓAà S¾°°’qbÉNHÑ>]ñ²ZŽQÄ >õWu†ÅK_àÛªÎ, Ì~+bóËOÖyÑ Ù»§ Þ31ÎtØJ#ÀÀßS‘°Hp¼]Û=¼àÃ¥HTÕfû8ÖvâV’U°tädK^ØRÞµ^&eîfÜ~,.XÀëÄ9ûË¡pûËFع'x‹‹Vußû‰{7ùÚL{O(ö¾S ¾/ÓÞ‡•¹ A©p\aîXÜðçƒI?!ؾÝä,ÇäèÛ—êûXSO×nA/ €Z>`~b•ó&ij;ćÚÛBÝ—_ï[Zp.Ü´S¤}/u»ßÙ§šÇGéyΛLc='PPÀ9B|§'8éø”q¬ Ј‹çpUø¥LˆqD¨ìK¤ÂEåëî¬=7 6921”UšÓŸ\ÿ@ÇWa¯ñ@OƒJÁŠÀûd$pc2o½¾8«‚ÙΤš· %áœÀ½*bª'ˆòòÝÒ¼b줅£Ýó[wñõ寓56=✗c¬ƒDˆöŠÁOoÜš»Iä ÚÇ4{c=Øå¡o¸ø$±uþÈeú¨ŽgÄ××£ÕªMxû6Ñ4«ÙÀ,ßÅçïp„=ÙòF¨?Q ¯=6c¢~X_PŒâB޾І$Òp(Ä|D:š0fÕþp¬ŠÄn dJ$2í—Ì$zÙ’û[ý ŠA‡È.sNCFùo|Ö6uÛœß-¢²Hîø¹P Á0c¥Ç¦ömú©÷ß%«TUšu”9$÷*'_|w‹xDv<´7Bš¶gØ÷´7³ä&XÞ¿ .)ì)…£é®Ó½Ö¨œRnKûTïöá]Ľ͉ætäé ™Atœ]*ÔÖÑKå‰Ê•„ ~öÊ-¤â’KߨM1Ïr[ôâ5Éönëyðr (¢Ì•¬’ÌkØÔñô± ¤f6éû}Ö@Úh‡B5=œ'kÏr6æY$jâ¬ogÚxó®ÉTñ;ö(t=P1ÆäŒ;ÞyúPýˆô{… ¼VUù0á7ÒÝ“o;ç»s±3'²¼Ø!Ìçæ—@¶UOŽ¿‘¥ 7ä ðDõæ¿(¶S{–)å2z‘¤ÜÒAC)m£[òhtÂ÷Ì>~ªÛ,˜¿ÈF>É[ ZR²½j”¨X8ÖŽ‚¥˜À"C}à5ö_K×Áüæ|DÌ«iM"ÃÑ¥Aø±¬083—:O`~•ÀådµßGWTú]y1¡ƒ¯Q‘Þ³§7ª|²ÅÛõ…×}Üî§î¥Tâ짤ÙQD½i$_å«I;)8ŸýjØô¡Eø5ã¾Læ(s›‰!1ÚmûZþx$eëÂ0Ú3ÔÓÜk±÷ßKZ§‚õ­çË6™²- ¤~ÌÊâ°[õ>üð[Ä»Ð"6ùÐJûÏm/i´‘픲¯ÿW½Âø»LªçG@ŒI»<>Ž 1Lw*$ûŽ,yZDNyKj5ÝYŽøî{>ŸóúhÆM*u$È:Y ‹Ø© 5Kúü4ë¬-·\²‘ÈÞA²ˆM]TYvGa*“öµð˜W*Òl¬¹±% x< Þ«N(O)‹3¢^lìOÆùœ0(­óC‘B”‚DK³áHJ©æop•=ŽoV1µÒâwywàQmÌÒý«ož›Éçªc™L‹ùõlçR3œ]U0îöÓ[ŠB`𮼠èJªà]dâ]‘Ü<É®º@)÷cµY¹k¥òšŽû†œ±%¹¦Èâ>»ÄVø…¼$÷ü19ýF˜ÇcÕ•(ª•`c6âuÇ<ï4%ÿ—ýÊ8­—&Îû±f¦úÜ o ª¬6”m>ÝšÙFño?ÇιÚ)ÿ¥ã0xÎ÷3Û`‡dF«7Gâh‰eû¸×ɉ9'ï;KÞÝoakÏKÕ¼n¯ü²Zyß35ª%q8 ‘̾Fþbâ¥.MÖ5eZSÔ§tFì˜Aò$ 6pèΠܟLoF À¡ÇxÕFŸ:~ê–ŒÙîCaFÞÖè”Ò¥®F\¡ôã'vÜuöÝÉ¡GC %÷×2q9áÕ0ÝmWCçȧÙçg'ûNÂ’ÎJï9ÇóâÛàš9>4îYtÏ–„žŒùÖRÖM¡OÃ7®…ø ЊtãñqºˆÍkoî=YWîûEkö8ì'’¦[OgHõDþè–4”³ŒxD‰½V0ýe]פ{gn~`¤l¾„ˆDæW¸¼dñ½&â òk.“—¯«Ýµ˜ ZòW_P§KÙðŒ£b0|V‹ß€™—ÄŽ."úZDjŽaŸ¯wI¯ÈÙm‹—>ÎÉõšµÂŒ(Ms õÕùü)6‘q|¤O ý]3ô›Ù6,†ã|ö¶}¸½ÊX‘9Ê¢œ˜¶ö2÷:VÁB€x8›“qäts¹E DØš+ðC g:?× ‚ñ6{jäÌ£ñÍ®ó ‹ÔfÃ|A3“ÄÏ!'½+¢àX9=¢€_D²äŒ®qTÏÁ*¯û˜¨äÛ¶3,y÷7ZOP„¶¿µÚgÍ–¢yI¾š lޮ̅NºEÞçz>¥ú¨:Æþ‘kœ*7ÜçU×3øbCªfù òË#wwlßüÍ݆ÁüVwKÝü(è3[‡gqÀB÷¼|MŒ×»nrºcëhÓÙ;ªñ4˜èi%|ø^Æ‘§íN%ïRŸ£¡’žÎM89åø<îEo¶27Íæ¾ímY™Cʦb¢hRÇDÞº8ÌF·•ê+l^µÅšBº½Én­³¶Ê…_®Êè‹Tø|v ¸­Ò¿¼É5‘3àmv¬«œÐñÓ¢¬6.ÌWò'QøZ¥ØúJPÕ¨Á³× +*RÑt´5dH¸jÐ YTžÑѦÓN~Â*õ8q>Ö³ø›©â`†.!oÎÌÕ\R„{>ž mÝ/ð¯L|‡0©GýR^ ÄàdÖeõÔân²iµ6ÃC2ì(Û/˼¡Õ¾!,ëiv.ŒòRæåbÚVþcòÇ8"eXäAïD+ö×¶ ûþWâñ endstream endobj 1526 0 obj << /Length1 1651 /Length2 6740 /Length3 0 /Length 7776 /Filter /FlateDecode >> stream xÚvTÓÔ>ÝÝ(1@¤a£»Sº¥”ÁŒØ`Œ!´H)"€ˆ”€€€”‚ÒÒ‚t¿èÏ_þÿç¼ïÙ9Û÷sŸçÞû}n|Î8Ù Œ” ;¨:Ž ¥*ºjwA@(" qršÀP®Ð?íDœfP¤' —þC £®mª`Ô5QÜñr€D qi„4¥þ$"ÒU°7 ÐÜAÀ¡žDœ*w?$ÌÑ uçÏG·=$%%ÁÿË äEÂìÁp€.åu»Îhv#ìaP”ß¿BpË:¡PîÒBB>>>‚`7OAÒQž‡àC9Œ žP¤7ø) vƒþ–&HÄ 0q‚yþ#P>`$pmp…ÙCáž×.^p ¸Î0ÖÒè»Cáuþ ð~ýî·÷Ï@0ø/g°½=ÂÍ ÷ƒÁ0W(@_]Gå‹â€áŸD°«'âÚì †¹‚í® ¿^ PW2€¯þÖçi„¹£<=a®?5 ý s]f58Dáæ…£<‰~¾Ÿ* µ¿®»ŸÐïæºÀ>pôŸ'âðSÄË]Èóð‚j©þæ\›ˆþ¶9BQ1 ”°„¸8ê€úÚ; ýL`âçý‚~š¯5¢Ýî‡kÐ@˜ôú‡í ö†PH/h úŸÀ¿OD ³Gì Ž08ÑßѯÍP‡?Î×ýGÂ|VÀëñ€??=Ù\Owõû›þ«ÅB¦jÚ*F|¿%ÿ*+#|haQ€€°”8HHÿè¯ü)ÿ—Õ ûýzÿ©w@¤þPq]¾?•xÿ îß{Ãøw=Äõ@CÜÏ¿5P hýú?oÁ/—ÿßðÿŒò¿ÎÿßHÝËÕõÎýáÿÁÁn0W¿ßŒëöB]/‡.âzEàÿ¥šCÿØh](æåö_T ¾^%¸£ë_…„yªÃ|¡ÊÞé9ú³×á]ap¨Âöó΀€Àÿ`×kgïr}¯x^wë½Þª§TƒÛ# ?×OXLF"Á~D×Í¿>‰Рë=…@}7@HŽ@]»®åH¢Ÿ=„ì`{èõÝ耲ƒ9:þ$üÂÄ„ÿ¡þFDÿ…\§ø ùw<”û_ˆ0è/ä×Tü;•ÈÀäû7ôÏdÿ ùl’’!O/7·_×9æéî öûþ¼øG²ÕÕÞ ‰¼¾v~ÍþuÑÿ<ÿºã P_¨=ÑÔÂ^&ÜùExËqÒMå!¹œËæ<è)d«×)~*OuVèWä¡Rj_'Åô¢÷âgÖ ôFS=~ÔëdžÍgç÷.7MŽÐõ m(Õu32 ˜(®\x˜…¸`7a¶ßáÌóð’$3( >öy«á[×]öå}äIJáJµ¸6ñyÙxÓ8ëgcœùvÙã ìx(f^ª_ò±ƒÃT¹ÃW¬wñnÆ‹£-ç„NÆýg*L„=ß0Þb´d`Æ> z?z­¼šv‡þº´x¶pŒ-ÁÁýJCÁêÐ$åâ•Å%F§Obý´¬RîSNÝTFSIß›!v4dB øänÜ<¨PÑ…hã3aGÞ¶¶0AsxWºõZðÔÄ$^k}Í'á ±ê.Žx*'ÒM'}ÛK/ßFy‰ð”’¸hèÒû¬“›j!K↙º¾®‹% V‰KÈcÿò'¼Åw½¼}ž¾%{6yìx{"¶Âô|›†OµÒ\©¸{îëXËóRï¸A¶¯L!§ 2›R±hÿ*!—2_?µjîÁÖrÃéÑð ÉÉ´wŠºî~ÁqðñB#{fPÅ7ÜäuŸ§Þ ½cQ—´ †Ë·Z$nwîºÜ tÁI _ëѪæÄGÏ2ôX ˜#Ü]ïqo}—¡ýà:/k~¡wš‚°”ÎýÅS@8Þ:ŸüÞOóбíÓŸsiÑŽn¥œ¶Sø5†ÔvóÌÚziR*¥Žâ;"69ñàiˉœç <:ÕUÂtѯìžÝßd°I‡›ñQ3…µ:[Ñj¾«3‹ÐMv¶“,Ôž BX*/?å>^…Í;d ´„4Xjñt<8–ùOô=~Îßh´m…«ŸÕYIžÌZob@ËÿH3âyß­ô‚[H\’ú›S‚Bµ¾Îƒ’"™ø_¶çåÃüåo¬´’Kéfy |þá]8ÇsnbR¨ÊËܬ¥˜ûÒƒ©f¡ô‹ï'ù£Cf/²ÀÖ¤ªÛkÒCr®6ã,›OFÒõQëEjc+a_žmY%*ÝK¾8$îµJ"_V3”y·k´/“BÆÞ#ÎÝý¼Nû¦‚ Û ¼Œ£OÛ8‰¸é;¡Üð9ëÌÙPEú•ÈlnjVÙϘÑñ™7ø"yÇ z¢h„o?¯…°¤y¸ÙŸåXÔ"szñrµkYýªu&m\‡Ãœ3EÎ _úö>]lÏíàç/ ¬:ëܰñÖR؉µ¤~دǡµ]Å…i-5íÓwÖaP…ힸw‰ûÚv½V¹‰Ã½$< ‡ËˆéïP\ð£:N©¥ÿ‘•£à“þ«Àôàz_xºPºH°VsI—KÿæùÁù ®7ŠÑŒ Úy‘4ÙŽ®öLÒƒû‡g÷§Þj€gLÚ•°í0ûc–¥Ê襢|RÈÄr+žðôª%ù3€„ÑG‚‡CÚqó8Ÿ“F'é;L(dÞÕ¬nVòY‰&)ïñb0¥¶xˆÉHäÕ]ÿÁŽ0WÀ2>j¾ýI$µttv×Jgyë¤üpç:îÜ€Çì}}P¾2&hiÃlr?®"L•‘Sü(1 ?­' `Ì=g™æW£ Ék8 åëoæ¬Þ»O¦L:ôZ‚›‡8ò,—V[üIʹGg—áŵëŒ4}aIŸ­ÇÖ˜ßwXîÞ}ýÂ6‰5š]m¶v±nÏuÙ~5 A³¦Ï¬å†¼cý³·ƒšxÅt† V½X)¶eIbÅÏ_ŸH?®¸½.È­6î”î8¸¨0ãÓX…äV¥Mû2ÆÍpÉùFv˜kþxN "ò${CE{Qáu_X§_ÔúÀl½*:–9v'RgŽáã)gr*#zÜo&Kƒñœ]š¨jd5}Ùõ=›ÜŠ>áÍ™·P]Lû‘‘eº}?M¥ûVÎb¶–êdFOyWAbø£¡ï‡ªQÆxo o}xàŽy³l<¼_\öêÛqMþ»êZ»ãxˆfŽ1†#Ä'¹W2/?m‘ÝŠuãn_ÕðÈzMåᇈ¶‡mÒôåw)u;¦7ÉòC¹©ž¡ð‚|ãÞ®îÛ—ò•ÙjÚ?Zò¦aÏâÁf[q\LÀfv¥`átYj"å{ê½ÉNúŠó‹îóN¥dñ‰H=tpÄ;Îש6ñ ªg/leVäµ6ZêV {–_²eå«ÃV'»2#½Žô1® ^Ò‘<¿4fÓ™‚O;Öà\\ºÜM®ÇsÊç3ŸxO.TÄ\Z^T;ë)¿° +¦Ùô{;0é:#CGǽ»ÅŽA-ss퓏My‚m ´‹>Qk^'ØÃ¨73æ÷®Ÿî^ì»Ý X䤙’ý°°Åc¬Òþ-mÌ…½ð‘+Í"â…"¯‘é'þ„ ñè%Ù›¢¢¶q¾ª=;o1Òj¨/,hÝpqé¨ôȪ§6>ßfs2U”ÊrR¹œmòåÎδE£q÷™·Õ”ºäŠj‡¤tõÇÀ=øÌîöY-–ØñÏ0»§x›b’Å¥Ò-cjlú‹š[¢ÃªmYú‡hèbQÞ»ê«>“CHažžfÖ‡,BK‹ØúÞµbØÝ”Š~ÁÏcC¥6¯9F®0?¾;ÙÃô ŠDc|g#(ôÄ8@$¢ìz•^ߨ1|9”ÓßYPÃù¡Â(:ÀšD¦Í«Ç¹´ÁLV޾ÿá¶ÝTŽR–i ‰zë&ØÁ(éqïÛÓŸ‰bðòsÚ¥DĬ ¯šö‘#®æèZ^›q/dÔœåÔ)hÆëÑ7¢çz·V°næöh¥Os¸Â꿯úÕ=¦Ÿ"¸u…¤þ*[bÌŒÝÅwåm Óà çÊ^Ô¥%C{¿< }0ø0Qk)b”ôùÜ'Ú¸¸e<æÏ 5üØê{GÒ5šù“É®¤êišÆÁÛ´0¦wnļa”NÕ ±XÜ¿ýC£Ó ã!ÚÜÃdµôö%á]öRÊp“Ïý´ §ÒöWµlÐ&ÝœÐO[ÕýÕÞ:8&Ä%ŒT©íÖ”K’ý„0Ö¦÷ÖÍ<&æþ–ö Abl«OLè^7Õé5¨%—%Œ›¹?IÚrÛÛX"œÈKŠ¿¹D¯U?W)•4NWk\L`¡ ä*`O©5Ÿqµk!)Ê¥r0b”Ìî—d4‹S 5ѵ–1½ß±¬“ܽIìlƒ˜Špd.x‹ÄÛþÀ[pÜÞâLøÔ1…$D&ÆÇíç0G½íd©ŠA‚± iJ{ ÜaßZi&ñ*̆ð?ò4ø\êÀ㸭Š¥¡¯íJô`iåM¡qÁ½”ƒÉü¬FãI›//Õ:­3«®òa˜5ìÞÏMÓd¤—¿[î}\–šdrÁ€´Ežø¼Ií·ùó¡ž`\`´^Ôr@2ô ŸÞ(TH„Ö(¤Ÿ¯§}ë õiQòòz'6éVµ‘x}µÑ·™ßD?>©$øÀ¸hŽ¢ý¦ëN™ûÂMÄgÍOOêni#ÙØÞUÐTécïz_íÆæäù›WC4°8nž|ûXÛÑù’j½ò©œ…oVÂ2ÌðÀfn8ý1Ù}Pvèˆ9Ñ•byó~ƒ·Ùà ¾)+k.Æî«Hxùšòk_r(É¡"ÈÈIß÷8‚Ž âÄú(cPÙÏÞ‡,ß.›¬§ß@mhøøQó“BR÷U=aªi*AûÚ{µP&òÕ¥ZÁ —à^­ÇUsö¢Ž²kÍôK_”×_ŸXnX·c)Ó²”Gˆ9…f#_F’3ªæ…ÓBîQwû”uÆ`MÁÝ2øÂ$ ì ÝëD6¶÷kéž[ð% X0­×†ö}2²xB˜Â¤8¥ò(é÷2!áÆâÁcŒwã#ãøstú,Jï ßóSô¯’±6¸Ð¦/nœ@_0º•oñ« A–2˜cƘÙ5%n(t:“d™†¦ ­¸é×»Úq«[HjPž~­Ý­ì&…“`¼°)•­}‘Lc§ˆ~ßW¤ÄŠ)hMÚç ‡xs¨SØ“/ž.4ó­=¥«›Z_³ ª4_…Ó»?ÄA!í¼½LT/A\üF¼œÉbéÍÈ=#ofdýšn=½Þñ„Ù­Ñ)PC‰ï½l¥µ¡ñ«¯A+Ç9ÚÙ¬¸^¨dã«G¶–asF¶,&©Ž"›š¢óÙŸ¸F¡ÚF¤¶eÓ!.Ù|峌ó³”ÎóMÓˆ¹fM=<ª‡I”wGðD?o­Í¢OØã¾aéìâÏÜùþyRpmw{n„UauèGí]ûHP+Û¸…/©WŠ‚ÖyÈ´^ÂÝðØÁ+¥e øm›a~­K—§Æ®îÝϺ‘…ðü[ù*?aÈC9œWaCŒÍ¦ä©»8ùЭÉóM’‘м²¼ K+l‰I‚›~¹6N ôz#å£ ê÷º¾¯ -¨·_Ôè&Ôõ.Å’Q­wíß¿Û79´ÔܶôâRúêî¥æ¸ak/ï 0ÿqW£Eò=ú¨Í’"™´}—®œ JšµLuEšr°{šeÒt\зõý~TD§ó½X•Q.+xÜVß²PZérLÁ4!¥,øYR›ˆ¿Œ:<_Fó,0Iè>i¦À܈j.â“þ’!Wl­ÎСbÉóIA6Sß‘AäP#g9S¹¡bU•Z풯ɷs¼¤ÖÎp=2‡Te¥¿ªc)çuìZEZv¯‚Ãí—.q9?ûÚ”z(ƒSUÙñ›d‡¾u¼õ2ÃÈ/2—ô‹ågéñø.×G m‡÷BNàŸü)ÈØ„ç¦q%Xã%Û¢<ÝNúɺøº·ƒM+ÉÁ—$ уz¡»g=Á5 @öm¥òІÞ(òÉüËd×le=ò˜t¤¶½Uºˆ!Õ•jޯܹjqâô–:àBÑáϘ²(Ó×v§Þ;U¿rï+þ2Æ/i»¼‘þòpC½iX=7$ãñÃ"5ó–Uµþ£bž9‚&xª #`øLLE­ôÙ­™@¾0$ïZ¥yJpNæ!îƒÙ*S»ö,kµRoOü€.Ä‹¢ýª¢±KX¯züÃßÔAnɇþ ùZHXש¤>¡`ö»ìY5œÚ÷`b]R*G6Ìw¾-aы滣œ»cº©¤d¼‹J ‰$z[ycLƒºúpYˆÀ‚Âñƒ†ð«"˜V—5Òî‡Z-p·²#뾩Bµ5`Þ΢ècëFÔ‘VX‘[ú U¯­/ã¾IêÐÇ–Ò8΋µ%k(s]†Öí2™Éꞥ,ÏÍÛçÖÒ× fθ†NX•ˆKH2Æ-øÁÞM—\œo‘¹™IkžÖœ¡äÃýÅ lù±¹`ɸ(ƒa'e‘ì,xùiÛ¨ í sàà(—ð^$pebcÈûÌÇUÐëúd$4x‹ùd†¹›­Ê"=Ý?s‚}à"Lý«‹Ñà“—ãCËü•Om]æ9c3´¼ìÀçpëK£ÏQ^ ÆY\ÒAiÔ´BcͦE‰qÂéY¾ù]W:ýµD²*›t©sÑ›Z‡ôÔèûÝR–×å,õ3{¹¿ó•]Ønh½# zš5Ê%q"x‡Õ>QncöT?>¾™%\@9¢Ê=dnÕ%DƒÒ 2¤p7núçåjãTOįvP–‰X²Å2Ëï'è<‹ýjþ L¦þL¦*Ô§8»dß^·Ê¬”V“2º98­CiÒ¬–Y¬!‘ENßÃ!{‚óœhzÌo[—„õð-eF¤T‘õæËÎ2ê•ÌcXyM±rÞÁC?¸ÖTÕ)íä\ßé3­úôûË$Êjo•ܽG4D¶p;ÑBóD¨—‰¥œí2æ²ÇK}x³l±süE°ë`7±Vü°r¢–Òm»´²çÁ5ÜéYó¨®N´fö¬ŸpEËøö³ÊáŽiÁ‰÷¤¶—W˜‡ÃBßvf3Ãî €TvU:6»ÔÕb½{‡zÀÁâ¶Åų̂†Ö éVë%ÍQåË—Ïâ%Üö§LUcfŸ„”|‚y–ïo7d>”Û,Ú5J»ÜÚÉŽjöKjáCEY‡ÒõÀð1NB™•©ñMkïoZ« .‘Ûa‚¾m›1†[dzð\• ·.®o:<±\ËØ­ßf÷í)s¦oˆ6OábÐ348£ËüÔ„68Gƒfr)T‘gÚtXP¥› ¹¼=†¦'Qõ±¹Ñ(]ð‘ë1Æ]û+m…{F*²yñ'-Á’¶¬WâPC Μw¯Nò—l'Gš{»Í 7ww^²FQc”®¤Ô¨Û?•uŒ\¿3¾PiÆ€ßÝO‹þFzuº¸ìÉâY­VÔ³,~ŸÊûäÒ`=Ó;…·ØÅ†@ìCõL|%^¡ÂwEdý…³q¤Zm¯´fvõ&ïʹçciuÓ³ƒÂ0=_«§‡ÄßGžÃ÷ƒ) >}1s˜ãxg*Iζ‹çCü¿ÊÖÙÚEilÛ‰œgûð f·&r86ã•GÄ]ލKO½ÙÆÞ½ö¢V6;R3é/§½isð’6!µ 3'ê8bÌ`ZÝXvä@¬ØfëÏ~l–/Üe Ê¿\e!£Êg²Ä²2w÷i|N](œw´Ñ6Q»õ%‘B;dÓd‰jô¼ÈÝHžž®;°í–b@ÆwêÆñsÖ8Ï=ú’>=kz„Y"#aÓàxϤ×Í tV¬!G›-\áM²u§ÙJ<ê’£a >µýfiR!Ë^ø¨ßåÝ#í`׿\Éü4Þáý «§eßý<ÐôRü5Û_³äT%ÀŸÈ7PŽùõ~G§a~Á 2­L8ŵJt¾¶ïx¨òÚΑ¯| ¾—2Fã9<  «;ÜH" Ñ©jmã‡oõ˜íT²3i©g’ŽËÒzõ†ƒ`Ç1’rü]ù*UƒwžRQ¾çǘXõpN 5˜xÝÏuwÛO§p­Å:ÿÛ¾Õx`-ìBì´å±{ž)]—éLàUäã³’[qì]ûº¾­°+p’çwŠaºgŽcQàÏÂl í­ÊGlx› Âõù,O»µõP©¿‚Ü)¬W$b§¨I× 8`ÛËBO],½˜ß¬.ßÖ‚'41 ¶=Ž.Óy<¢¬XÝјeR÷uí`m_FÝ‹„š£ 4¢pš¸ÜÞ¶îmž·-6·BÑ"™V±C½ßë2:hWeF+!ã®!ÜWýYºÊzÂ;L_5½â ñ2ñ¾ê;°bw­,Ô¥®>žæUÁ9*'¶Êñ· 9²¹;×K¥|0Ó¼Qèk¬™a'‹Þº·¿½en°ËôƒGÕ Djÿ×GÞsYÈóF#ϳ$#†‰£÷U ùÛÍøð[=N¼ƒÜ$¬‚I@éÝʶõÈš¥Ü5×y@RƒK\Kñ#F¥B9}U1ø {ÄG>,Í—^èMÙÀ¶tc—Ï“r-®:¹˜(¯ÚŶnÚ¥;‡b1µ"ìEd,ïÖÔù³¨ì)vPÄ6äêU)&O6&ýJçiAgÙ³žÏ¨N&ŒoŸÒ®.Y˜É·u”¿)™Ni¡Ž_gèˆÉ8¸wn¹ÚUÕñp’e›(ÞU=v}- ,Ö¼`0Pº(º+ËOÔ!à´ÞaXhcüÁ¶V¶v翦„L±³ÇFïa â’ûB½E«š(-ýiúÍ$[Å›¬ŸËÜûn éjv.4¹0AÉ(&=‹–eLÞ8_Rg¸˜qS_ì±É1FËn!£ˆ—¼Ì×x3SÓz§Drã-Û›ÎŸŽ¶òFMÉàzùÞº’¶ûÚÚ«¢­Fed¥hÆMØà+´À±@¦á 4›¯@ô•QùIR"~in«ßJõðdRálÔ6ºüQáZN·©&»gdˆwKЧ ÿKÃäBCd}o”ï“ÃíyÏIvyßz­Å–BÈ·0Jò'ãŒÞJæ æœ W Òt’Ï'ª¥¢ŸqáØ1îŽ2cÃ[oèy·² ©Isê•\n¤÷'Äû°ã·å>± ²Æ†4Ó—T}rÉñ÷‹/mKÅ÷ß*íIRÚQ“&1d-}%ïwž`¼Cù³g¬t9YÑÆ~óM΄êõS öâyÚó? ¤:ý endstream endobj 1528 0 obj << /Length1 1453 /Length2 1941 /Length3 0 /Length 2858 /Filter /FlateDecode >> stream xÚT Tç. €APÁ…Ý)eÏÂ(;Ñ( ‚C2„‘d&$’TYAPÜ…Ê"‚ n-EYK‹»¶¤jAѪ€€ÚŠEžo@p{ïœ÷NΙ̽÷»ÛÿßX˜‡Ø{ó°(˜‰¡¸=Lu¾lVh( ¨TG2•ê@²°Epü!@²àÀb ‚¡nŸ@|Å0„>?'l K¥@s4ºÍÅJT*cˆ‰Ý€ð› –b(,!Yøb"…áÇàD£ÉW`ŵ4ÃÅn<x a1Â…PÀ†ðXHtäB‚qW|VÂja Ž‹Ü(™LF†„2&æ{XÛ‚Ç€°ÇÃ<0¶4„„ðänd’A$ï#!X4.ƒÄ0 „ £"GŠò`1 ÚƒVÁè{pÀ{€˜8@#Ó>”›È+„ ãÉ—‹ Eª@P>ˆF0bq9n ”7„ŒÈ‡â!DE€ñÙ!Àô^ bʼn%\1"Â%d "[’2V†8g”ç‹ …0ŠKHcóù!b˜K¼‚2y¿±(&C7~0£”=¶O*¢¬D‘8)Ìò›.ÒGÆ3•Juqa8Àrn e¬E¨Bicnb‹„"L¢‰Eà$&þH%P< p±NØøiàs‹D£ÂÅAÌGPÒÇꄎ~o#r°šJ0¨c¿ok ’ñ0T ø¿eŠoxèR¿ ÛÉ?D}|09ØHtµwptt:Ðtðy™0¹ü¸7B&†û¤ ÆãýÄáMî?A « áXƒÏ;b£a`õQk¨ÎT.ñ ýß2Oùoì«ò¿ðåHL©@0°š@ü"Å„ ´'äÁÆ‘ _BÃà÷¢fþõ™ƒæ…­•ájÌU…¥‡äÓrk|QKãP‘Eüó¨[eS2BÄk.·–gèäÿÐfó²ØrÁ×U­ „“qâÅI‡N÷Gòöúâ‘cª‘°ååÁ—-Æ'¢¿Ý<{Ÿ­n¦¡ûÑ'ÉÏ"nZ]~wp4çɯÅïNW:åU_}¾Ã.‹†|Ý–“WÃi4öÍÅú§­?bIŸ®}µáë2Vf'%aKÃ¥Z8†p¾ï ÎOˆ×T6ũϔ0ª‚BͲR{8ȦŽ^PW½›UÒk³ÆþÊŠ»ŽÇOß Ô½sØÏ«wQ8îPÄ¿è=å…3;Ü6ï‘ì—-W1&Ù²ÛÕÒº3“›ïk/D=$àTÅ¡½mm¾k\܇ȓӯ©®‘ӳϕžÑ»0gÃ:|äa(ßÒ¯«4ùF-öïMêνäV[à_JõW³Ó«M}8S¿ÿBèÜY‰WºÍsS¡ºÂ9«4*¯ïï$Û7fø?™½Ôí)Wž_Õ{m·¾o×°Ë39}o½ÐÿRfކ+<ܪb™¸ßõö“'çãv¹‡d öƒœ·ÌØé3¬¬K6JãòÏ¾ŠŽLì~ ¯Àq3ÎF›¿­ÜÙ9 «VŠÁb­‘¶uêéös¼øŽ… x6eRà®rÞÞ¹é{ÐnýY Ó2ë<ƒæI«à+7æ¥t³ý;؃†½rÇ‹ž©ô=NFN>ýôƒ-ÿPÕ<ð0{çÔÙ ‹&K<ŠïÓ¿Têk¡RmÃ.kçíU?Ù7—«\a/[_ÑþhÆßœTú Ùe&Çs† KnfH‡3­¥ÿŠÇ+­_ŸŸ£¶à²áz-œqW£ Ì/ï+^j#ùÈÓÃ#[Œì§Ñ³}ôò%%îšÃ#õ‘,ßÌ<†Uü7μýÎit>×<ý™~¦^¨ì«÷LUz+mÕPÖßîy3Ó‹>y{X+ž÷{ŸS©±:©¼‰†Ö¸Ï¡6ëèfôÕP÷zÕ>ME•ŽWÿxXÖ¸}¦ÿRkXwôʰS˄ͧo˜V“ÜÌôß¶ÄôèåùçäèèXZv}\ ÕšS;¯£¦j¨?Ìêîáܷí%yõ.Ì ­×è;ÍÛ:|´9¤Ž§0OáwÜ÷mÙ¶=·ˆÒT¹= g8-t6tµsÔËØ?‹æ:£dX)ètYšm¢> stream xÚ·P›ë.L‘w)VŠ»»»w  XàîNq)Zœâ.Å¡@Ñ"…âP¤hq·›n9{Ÿóÿ3÷Nf’ïYþ¼k­w¾ÐP¾Õ`·€˜d Pfv6€¤²²<;€“…•†F µý-G¥Ñ9»€!ÿ²t¡0™ 3T†8\íìœvv^66ÿ߆g€Ð lPf(@@.¨4’GOg°•5–çïG9=€ŸŸ—éw€¸=Èlt(¡Ö {XFs @bA=ÿ+5ê(ÀÊêîîδwa8[‰Ð3ÜÁPk€:Èäì²ü¦ PÚƒþ¢Æ‚Jд»ü©Ð€XBÝÎ L`69¸À\\,@ÎXv€†¼@Õäð§±ÒŸL€¿ÀÎÂþŸpyÿvøÃhn±w:x‚¬–`;@UF‰êe,~í\ 0 l4ƒüQ: #®ÂþÅÏÅÜìuaqÛýæÈú; 옥,$!öö ¨ êïú¤ÀÎ sع{²þÕ\[ˆ»ƒ÷ßÈì`aù›†…«#«–ØÉ$/õ— L„úÌ p³ññròq@N‡¹5ëïšžŽ ?”ì¿Å0¾ÞŽG€%ŒÈl ‚ý z»Ý@¨³+È×ûߊÿF¨ìì °9`²; þ&Yþ‰aýw{ Ø`ãÇ`ûýùÏ“lÂ, vžÿ˜ÿÑbV)em=}YÆ¿(ÿG)!ñx3sr˜9¸Ùìl\|^؃ïÇùÏ üÍþé[ ø¯êþQÞÁøâ7 ØñýÍÄí¯Ñ ûkoèÿBh€îŸù7dãf3‡}±ÿ?oÁ.ÿÃÿ;Êÿuþÿ·"W;»?ôtüô@{°ç_°v…–C[‡ÿ5Õý¹ÑÊ °«ýÿjå¡@Ø’ˆ;XÁ™‹…ëO9ØEì²x †š[ÿ9Lw–Ãìz qÿ¾x`^llÿ£ƒíž¹-ìrqõìOжˆÐ?Úûƒ`«ößuH;˜C,~ï$7èì ôD… q¼ÙaËkòøcæ¬,(Ìãì °„8£þn4€Uâ·èÄË `•ÿâç°ÿƒ`CÎ ´s´þGÂÍ`…] öÿ²á°Z€ì ÿ’°qX-ÿa¬þ¹¬àAX56ÿ°Œv@{3‹Âñ°ÁD¿Ïç?5Â<ìþ¼Rþñƒ¥´wýWá0'‡A˜Úñ|0OˆÅ¿,`Uý“‚v .`«Ó„ùÀùß49`9<þa¥{þ ÂRzýÿ«yæ®Îΰîþ±u°Îþÿ¸]A 9êü,Ä\0Ħ.¤ýºFœÔyk\é(ýZ—ƒy¼ÐúYzÊd=Q#;kAñ£Ì|?»Œ±M—Š„ÓuÎÊÜ™÷f=Eƒ'×%3…ÌŽ…YüìÓå³™$ï+2ªY¬¸:©¯Jœ?ý%ÆîFµ°ú¬Aƒåó¦®ï{’;-~© ¯Bh»JgwMi–!¿öÁuh«Ùæ÷ùË7¹?ìßoÄF¦©¼§Rê¼AMt¯Æ^ZÂé'ï‰Tp Ú:¦ƒâH ‘Iq½¨Ö^ÊǼÏ-qÛëm&‹'¶oñ¹|•>õºNåÔzót߈’.¹›×Ú4Ù2†ýÀë†Çq _"Ý9¯`;Êb1'œ¡yP$éÊE»/,×»RùƒÜV!D õiÝO"\¡,—›Uãöõà6lšnôwZÙm¡kÞ"3±¬yÕe’öÕ-¶qš ߎ‹D?½­ ¹D¢p£^»K‹ÔÎ-0ûö€` ½Iã5±®FQdGt0§ Y] ÄçVqrÐÝÝ«Áó t„IªJEóÝmTÔs‘û/÷šIáB2¼–/#·ž…ó¯ñžSgh“‹ê²¹Õ8ô9^f7“ éÉNz³_?™kË× ðЙ8+S]GBC-‚—?ªì‡q™ƒë—\gOÂGäcΟÜ<«­zäçk} Ï¿ëEºã5’(ïp214öG¹qû²|,â/&ªÉ¥â¶7à`‚ôvßûÆ#ð”qø*³ý2Ñ®!ÿóbq”µ„§Ûo$’íÔV"1bàÑî—ˆ{âŠîžÐ9½ØšD7Ü<߀MfêLªL3|JºF/[)5u3¨`ý æ®MaK¶-Ú¦ ñ%Wåôs®›ŒóÕú¥'q†LS«©pµµu(tÅ?GkÔ0´(B$ÍvÆÄ¯û$áøA»´2tѨù÷¡7ñ7Å¢ã/cá¢ÓÛÛLΫB_àLYª"ë¬|…ß(Í-u½a[¾JˆµeM¬¢­æ¾@ÿ2UzÓøí;J`-óª’ž¶þG³.݃Q6×QBéÛº€:JÝÏÝJñM×´Òj.37Êáv·šrdCSž™ý ­§{—PqÄ¥¬(H('Ÿ Ú(cs›Ô«5pY¥Š6…$Yö›»Xc +?¼àà¤ü³½ ¯dêâέ﬊ðvs–<Nkyä(ž¨uî¾µArr¬õ 4·‹f)¶IÕ÷zµž¯M6U¿Ò< ê4:Ò =éˆDÛr´w‚šˆ_Ý™XÚé¸Ú~™FÐB,)[Œ¤ò5·&®ÕG øâv·øêÕÌ ©éf§+<œ~ý»€§G­b†[RÃïgMÛëI BÃ{[oc¨l*ºvÝû ¡ŒàÒpU¡ÂÇ™œæû@‡VÑç‘c—½¶l›Pß|TÃ^¨œäÞ‹£á›W¬¨Rë[€OÃ(Þ`PÿzB…ЇjÒν‰Ÿ^ï4óšp»k¶¸‚ºÂIätÆ_cd-dóú-ŽÔÚl` VµôÇD¹X{8úU¢•BN¤ èªú8ÓŽšÆÃ–òA2C €÷§É8ó'_[?¥I±Ÿ‡½#²ÂýÆåÖß÷èm«3[Á(|fÓ ×b.ÆDײO, aÈXû/U¯ÂÞëGÿ²©ÞÁ×\jÿŠÁD < &Q_¬¹u±Ln((ünh`nË©eÜöGÝ^E è‘Þ 7;Šf’¬r:ë£ {ÐÅÛ—/ȘIGtî0\lê úòôãN1uK\os¶ r=˜˜©ªÎ²ü&9Nð¼¶l¶UéÒ1læÌöy~ðøx6ݼ‘ò&ñ 6þåR¼q`åä7Õ”Z»å‰¯žÂdç¥Æ^ÜÒ1Ä^ÔA#æ‡+l#¶QŽï:Äá­Kœ]ÐB;"L‘Æ’m£Û[Ge¥­ghwD ‚CxkU¤¦)ÙbüÑ”éC1¥$ fš‘:íË««ú CÏ•–`³ô$ÉVh䓦Ùå.îÍêæ®ûŽäN‘òE'ξ¢µ/&ÐòÊÌÝø¯>“:s4l£ÂÛÒ bÕmÉ,GÆkÎõE¹tär" …·£Ëõ3‚ÕWßç>„øÚëdí2Ÿ4*¯‹{¹˜º˜ùÆçÄÌ?ô¹´ˆá›$¹´³Â§ålÈDt…`©&J÷–§ÙýŠ^±6”55{v |ÅWø¾™šnåtÈX‹¯Úé}ÃÌÅÑÆ™$Uù“[WtË…Í#\¬hzîíÒˆ8ùtó67K©‹@§Ñ © GUhG¨]WC9>îæ#ÜÛ¢«sJrÁâ3”=î;+ ë`‚™PXJÒÒƒíë–÷êóÝÉdHæx^È»±„ƒ">YœHÇñö/ûÍÊ'Ó)·½Ôæû¤Ü”sÚØR¢~,ˆ…R¦6ùmJ¡L¿æD÷ÿpÚðtæ‚Hžk¼W#l%yœŸÐ¸,z³³?çõB0ÖÄ(©ÝÙö‡Z.©:’zÖw¶Ã#YÆ+kך~ó…TëFB˜ŸúâÅÉàþKêL†fž„‹Û!kg¬ Ê` P…àÎfÀ”Îg–R ¿+ÙG6éôõq¸Â1öͦ¢XpM”öG'ô„Ñ–êòäJìYÇŸV…*ÏÜ=Vg ³–\8œì=Šæ°|/Rlº½ô¾¸Ðlå ÂëÎí}W¢’4ƒ½ö¼Óv­ßbÍ£GÞZZx0¸$¢È(ÑÈ ™Øí‹ÑöK>èî0“c™¸ê5FQ8bÆãÞg”š4Ôo‰æ®ž­Zê¶kñ°7’ÆáHÒò±À®°ŸvÝ·3yÚŸév½V&÷ì½Ý:âúT  ¹£'ïͱá¤2jGIÑL¡¶3+Ì™Ù{\ä4%%MH2¥7GÄèסu$ÏÄUséªÂ\¾XÖÒÐ-Ý9ŽK-ÊQqÐ"¥3;F¡)ùÕDšmœsR »JŸ©í&§!ÓíK ÖÛÔô7ß®ÎËoÝp¸à“ç7­Þ‰7X…É&©h F™pÌÜ·Í9㲄-oð~“Œ3–”È[Þ©Á^vŽŸ4M=Åϲsª¤ã0ZîÊP‘f+î$³Õ“ˆ–L9²§^ ǦŸbâà˜¾õÓx¢V\~•¾ÙV$Í̤­g<‹,p6¤æ@¡6˜‹aõ˜uäì„Ûÿ¡§õ¡Â)©‘Þ4ÏPv%ŽV™¤Å70øÏàè‚Nvƒ!]tig[b&æ Æx6*¨žã“Éá9VM2ßäûêÓŽâîwEmÍà×å|$ë19)ŽÒîÃÙ9“„Òæ¸hI¹}}Âò»‘% ƒ¦Ç_’uéÕ=ŽVwãú=P¸'Y¬K_#·IÉïåγ Á›7úõ´*¡o„µ 8! Y{*.7<Ê é=å~ ½÷ëó9-o^E™ÁÁ;×duîz(¦¨>ï7Ûk,h¸Û´« ±ó:g{ôsù™$õVR…KѰiùt[Túõ‰ºÃÔU ÕÞºíëåÜóD1¼[4ú§s9CDÒçø¾LÉSnZ¢RBô#©GF…™…¿R>'VüXÙ•ý:ˆÓ“„×ü^“zG^ùrÝ3î=!«2¹OMs×ë\aS’$x¤(Þ8Ÿíð+pþÎs!³›”¬ÜÖg¨¹/#_ cd"Ê.úû{ñaój8;Ò†ÕQGÚ^lމm 7§G•"zS‰ð_×|îÒÏͪ¼Ê@C‡*…óMÖ²¥ GøLLïuª¾¢_uúº…-“EIUÍ…/ö¨+jûŒ½€ñ½Ødû³ðSöcZõ”*ÿV˜¸ïèˆhëžÆXLÂ&1=åZHŸÞu¯~àQE·‘XØà  ù¹%…ô).Ì îÜS*y¾ë…½N±ÉëD³hàSª;=޼éVeô¸t0³(dk:Rq‰‹Ñn{Šuþ˜b}þ<¾;Âzù:I‚æ–rvÁ8JÈÀÛt$7ar­&tþ’ÝÍE5 5XóYý¢í7î4 ]—ÛT¹¸Ú` [GÞ-'Oõ)¡ÁWëhÂçÌYnˆ÷²ø¾5z­¿¼Ì3fΫ'˜éÁð'öÚ³«tJïS7t¬¢Ëž=: ³ÖbuѲËhúJ´s~X-Ñ !£UnñŒ-Г,LF1»Ùh)ŽeDw'P,@½êU&d¡Hól’Ûé8‡ =çz¼V6!1ÒŒÈð{“îVM~'ªæ‰j³ú5§p=Ù¿-݇¹Æ\ 1ä¼A'÷——ß|Ö©Ò-IïLQ¥,£~÷H®DLíjTמp 2íh &o9ŸŸxüëô©µ.»”^> ‚&ŠºÏ-Ö wÍÅ=ydùt6±Of[ „Â>ÐR&ó©$6ÜÏlvÍG5 c.BÚmîpƒìSÉW((ÞÉŸ¦1—ö-Ößàø{A¸ƒ‡Š–Êë-*°¥ý“î†iûðƒ¾?()¼öWjeekXfþ¶± a*‰ÄëÒ|_HX"dV„æè­k^™ªjꨚ†‘Ms±¨zP{$züÄ9‰»Öm!Ϋ±âS”Å7ùÅVO8 9÷*Ö > >×ig¶¥t bjÖ—+ å²h-kI¯/zrÈØ”/ ¯­'5wiúO·ž1«çщ1Œß¢L• qpGX·ïµùȳp»ö˜ª½-¸š ¢7=)KSSlÚ¥»qÅ•Äý2¥Þ¸$x%$_yµAŽÌ-Ë`*:¦.£\бÖðømÔj#nϱÛraÞᮓ{€Ë¢¢°5áP±×@ ճŠ¥A¢»‰ºOì qÄ0Ï.¥Îþêxü­4AÓ€|ëÏ5Ó¼fuxìã¸gæ|ø¯¤gr©ŽàÖí'ms룗v´‹«dú–Z{±U w©_E!SJ ”ÂEãÀ…ÒÐÿÀ¾ÜÈTöHz¤2QJ»%ëµÀe¸Ÿe;â0âõ ;hãrD«zË×Î@Æ‚èÆMžã2b&tWo¤¤ÆvÄpݤx˜2ÇØ,&ba^€|œ~·ó(I\EŒ…˜úa Ànûh`ÒÐX‘€Ú­’*U”±`¶Šüèx³—·Ä[ôqÈM¢aOýPóª¬à…ɵ[´wÁ[èë7§a[­‘,Ïdó¥!k(L茤Œ~$QÁGÔÿ1ézócƒò ä°…ð *7X÷Afªùú”>‘ÚXs½Öü ^6 ŽÈý$Œ£jµ7&éäób¨à˜=ò.½0š z•åxfþFÃPàSÇ47í4Eà „ˆá]E#÷AÓ‹”/ªë>|–HÇ©qØ%-<že¤g²Cà8F„Ökì éub£ü”ø ß º[Økx>—áÑooyV¦Fyý`n ¸D\G¾]Ý6úàá× ÇœšÄ3úÕŽø !BCPV1Ñš_­­Û@¯«zŽÓ>²—âú…åa ³Ãà'D¼„yk¶R~š«èX Âì„} †I¹ô¨6ÑDm?à8MTå\ü=²ŽCßøp泟ôQ«î‘’ìêkU¡b'Ú$oºÇ&Ðï¾GD Å-;'à't>¶Ü C Â/Ð Ök& “ÊùƒNˈ&¹ò¿}¢³¢¤Z`3†ö¦ äëI7…U }¯œ&ËÄÅ^u{š’^só>ØL£„¤*-ßì¦õûM¾¨)è•)‡¨ke0 °—„.¯¶þªÄì°–…®ð.`ܘmFÃÞ7¼ vuf•ôµVúQxxÆí¦|ZOb€xõ44ÒªÏê~ ‚˜}Pñ`¹¯A—an·¹Ez5h>Õ;á<Âj¯%´†¡P™]oxX À!­:¶*ÐZeÞ¦nR¬°F«÷¨-ØOLsó³÷—\e1sÊ…Æ6ÑäÒûßJd¤KÚ{“Ÿxäì‰? ¿aÏP,:+ѹ¤ö$=á•]=É· צ›×Xb›¨±gK-3è ¡—;/²h¥ÈŒãRKòÄŸX‰©ø&œŸƒáƒwqÔÍÓFKTfô…J¨¾?GT… Hºžã…'JdE4¬‡$ÿŠ´UG‹ Ÿ'ô‘°™™ÿ“Ó¶üûûºpN¼;A¢¬Eç»6è8Nyeä„¢}Î¤Ê ÜâU敞µ½%*åf‚ /Ï"ݓỿT›jrZÉש ùH¨Ç†x)b*Çäç.tÅ™4W^ w<× póaHCÖò|hÏ…¯­ai¹V—Úö™‡wÉŽåßË5–Nˆãq›ÎÍwzÌÓÈéò‚J‡Ò/ñ†ÁÍ 7DÌUWÜ€¸¼…Žv«;µ9Z…G¤6BBâ÷W½Þ˜7\7Áª'}Ž^u™ÊRÀRÐ âwtI÷¾Ó Ä$kS¦;¿îÅ^N7¤ÛÙÚ¿<6VúJëáÊN$H‹Åëø8U"³4Ï'µí)ð¶¹ã»Uæ¶ö58N~.(:Þ‚]BÜ/¥¨FÛ›i݈dŸI…1ãq¶=KÜ’Bxd‹u6ì'40Ôr¹)–¼ÏϽÝd|ŠŽy”o{Gç÷« }FÊúÕL…ˆ³¤þ¬ .öàkî,â,™¦Öš«„ªP~¢ò„•Ù ¥ÚÁUåÜs7_iC¿)×ÀgÇé›Híç2þâÛÚ<¹™‘î¯ëpß‚,}t]ïKÊx{A£t¥":ÛäCkšÄÕÞœHEdV^•Æñ6>s»èðìÒV"I—žÐËð½JeÓo=Uͱ¢/­… g;Ø+|—¡‹9wa¨•'@Îãª,‡r«j³Öq® mI2k>‡›–Z¼žAÖ•ç…/ã6Ô3‘½Ì_]9.#Ï/øùĈÏgœ_ŽŠ’ÈéHÕåÁ¶hKŠ-P½*t>&„æ!`~Ó%~"Udݤ‰‰n+z 15êí™â™–æ5Á×ÙIžÒéô3RÄ 7ލs!¤Â_žîR€9”ØÏH‡ïuTî±ÔÇR/›ò T—?U ÚuÝøò1&š&øI®F ˜öO^%Þ~Fû¸>NéÔ¡±«KñµÊÑÕ¥4þ躦·ûŽ×JR÷¾Ù@v2K½1Ñ[„šäÙ½ù õ|¼æ%¡†iÔq9ýÓbñ’„¯—tÅ ÉÖcûDûŒJ½r¹|É¥1êÇvöÕ‘ÓììœL¤Ü1½@: £ÃfF¬½-ÚDé>SYs;/7œž‘`û…IC¾ˆn*Ð/}0ãW£íA“×Z¹|ö±C\S‡뼋Ĉé -pœ¸fú¶' ½qA²AÖ>‘ÍÈ D¸ž-›S#“öˆp²Ä*õ˜|;¯\NµÉwü-8_BçIU0l@!%t÷Ö³ž¢ï&Åj˜YA·¼º¤Ö…Ÿý?Ø¢„rŒx•)vô½9.,8 9…ÒJ[|¯÷_u8¥~ùäxÙ&÷%™ép /þ೫˜˜cÂldoÎUHÞÜ&S_?ýâî÷ÎT²í2ÝTÛÔŸ!æù«)(o éêpxÐÞœG^èË–ÀlzÈ„ ´ùu7×>!y¿äÀsy'øÿŽƒq~Ó mÛ<ŸîY ?¾^Íûèaf˜ƒ“ÿëÍ(RDd-É Ó®·Ù¿ø]ZGHÞsù‡Òy˜G~PÌe7X‰|ØOíÓ½Ê}ÈüYkËΡDû†ÇQ›{Ùñ³¼…¯òKÇ]fw×&õtÝq¹Wd ¦òa¨¥-W8®Ë9@¤še $u|iÅ%ÃDð+F÷‡>O§i0˨H3xP¦ `L¯;×LØÂÖ&éã"æÆ©‚‡ïõÊß à8Ñù¶nò=îëª —’«>Ú6 ƒŽ¡?´°rï<ÎCŸ¿¥DòÃð·Ÿcú˜ÚBø4=AgŽýXIN›K|[£ŽÌz¨;>º©™g;Y¸QE6ÀxmHé2Ü;á ^>BËhðCxË.öëä~ûd¥òÀu±ÚbIëëÊÞír ò‡R ó88ÌíüÔoKõÉ›£ Ä0&Ÿƒ/>_£Ð:%bS¹„àÎò»ð¶kŒ6mÉB7‹°æ;„,¢jCæ“Pâ\…º *¶ÈS†µáUJ&dØžõbÌDRÛvT}¿ÿ¶R¾GöƒÇÑâ_ç¿ÙïØjÆCóþBIlpH«öd2–Fó•‹fh;þ¦î>‡Ny”Ò;fQÈaQÇe*ÑB9~íe܈¥Aë8MpmÒ[k«J7ºh‚~ì@ÉÇÍÒ˜T)Ú5ÁÈ>‘lmÃ4o_!vóÍ/³A$v˜71(7ÚÞÏ ?¥¥ ±r:èoQËñްZæÓÞ^N#UÖ²ôQŸR\rI¯Û'EA'^4Hݦ|õë·=§È1}ö¢šÉtASEvò0C?võµSÚÏ·.Ù%Ûr“8‡PRù<{XÛ"µùí%§0¶Ñ>ñ™šÊmÌh)€;Sïr\u%ÐWMÍTõæ5ÁüX Çó¶ŠY7½³’1 lðEÙ&kô¢G•EÏT\äñ’WšP{ž)µE·»ûªÛ, QNh#Hm[´½NÈ)ÌëVæU6!I¸V‹WH2ô½'ºâ?å¬ÜÌUMÊA!= _KÅ‚¿‹å¼ýz”5<©{AÐBâ¨Înaܬ¹žÀ>Eºïâ’3pÖ¯teøLHlJcdüQI÷‡½0ÃZ¥ûvaálY’ò°>Î7M¶!K½Ô*.Êúçç¯@”CmôTQňÉVjq‡“*˜(=ØÑÎjïõäEv]0£&©"i(Â0Þ_C½Ãú9®O½EB¡SJ^³ç5Ÿç©á–z>‹qÿÒ8cë¸Kfs ZeN {P×8ëö“ÛÅüÊVdÎÊS«®ªµ;¹”R8%˜Måè}AÌ>ì5¼~»iÑûÍ\!óòD<°ï$­É"Ûª)G’ w®àŠEÊ¢ô÷ïMV»“½û·*X®µÏ9Ê_ì¹óùÈ•ëS–ì§+öÝ@·©|ncÇÈYÃE ?¼¬¡ ø/2‡wƲJ W(-‰%_SžLuâz,Øù¤oF‡]’xäÎ Ý›ûY¢«ùˆ}´J8ÑX„~ÇÛ`Ô)%6·ðv ·a}=GÃPat½\èÙŠ”ã;žB;ÿ„õlÊ´äNÞfÔHò´yßó;1 ™)ΕÕ/’ïË._–+ \WQ •­½³mÀ ª‹Àí~«¹Õ<ž3šîß½`ôh#IÀg)°|aŒO/Ò€s˜öIO·ð r•BV•¢ò?ûbEá~¦ÐMÜ›eá\Þp#Òì”„ÃæáÄdØéÚ4‡‚­Pµ¯M˜ÁËë¼Ývûiå8_sðz:O×ÜÿÒÓWŽŸÚßn¢jJךsô~^íÈyާ™“ÿ¯çûgzܘÆj/‰ø$Ø;×OaùÊg]+BOÅM摌(HÖ?Í‹©éÚÆ¥"Û›ú¯ô3, ¸j<¹ƒOw×wñÙ¶©kÝR¹šA >B­nYCC²\ZLrÍ 1⊳ºaNHÁ¯~y‘!âf×ë Ï·Â;òªDÚ¦~[QT ‹,Šä¥é–¬ù{•ŒÝ`¥Z¾.Ãë” µ-Yg˜ô§#ín¹VŽ€À[£k5–¼‰þp’!©Ê‹~ùUÕ ú6Õ,–¿a)Çü«ò˜IÂJþ 'QÔΙËÝÊŸKõáÛ ­“R ‘–*‘ø—6‡¡(ÿê=õ¤ŸŸ6_ɽ|5xuÓ÷ qr"{mO@¢^J5Äe&b¹$ÏM¢›¶ž9|Ad™µè §¿·µ2™Ê»aÃî ý„pï%r¥^ËZŸÃó×7iÁÓ_ d•{µ°ýÖ;ªb®ÅãÜ&¨7jñuÀWk_nßó!ÑAOØÞ3ÐÏë3 Ȧªj„å\|`d×J³ÔG%Ò×6ìšÛbL;)O{·dlQáé‰àôÂæÜÍ+Z­“!õÎPÀ¡˜Ý«6ãÙ¨eލ¿»09ìÅz3ð)ŽïœrìÿaSÞZ endstream endobj 1532 0 obj << /Length1 1505 /Length2 8227 /Length3 0 /Length 9231 /Filter /FlateDecode >> stream xÚ´TÔÛ6L—€”t )Ý " !ÝÒ 1À Ì3t·ˆ€tww# Ò!HÇ"ݤð¢÷Þ}ßZï»f­ßœ½÷³÷9ÏÙÏ>Œ´êZR–s  ãàáä¼RQQàápsóqrsób12jƒ`vÀüXŒo€NP,úˆWN@3Ø£OÆ öT€ŠÎv> ((77€—›[ä ÄI c沨p!` ‹ñÄÁÝ dm{ÜçŸ%€Ù‚À#""Äþ' etY˜*f0 ýãŽfv-ˆsÿ¯Ìâ60˜ƒ(—««+§™=”âd-ÁÂpÁlš@(ÐÉh øM jfü›'#@Ûý+ ±‚¹š9; }Lq[»´”j@ð_`å¿ì€¿/ÀÃÉó¯rgÿ.ÿI6³°€Ø;˜ÝA`k€ÈP“S愹ÁØf`Ëß@3;(ä1ßÌÅ dgfþøst3€œ”Àì‘áßü N ” ²ûÍ‘ëw™Çk–[¾‚ØÛÁ0(ÖïóÉ€œ€÷îÎõwsß!®`Ï,+ØÒê7 Kg.0ÈѨ ó7æÑ…õoŸ5àâ@7 ®ßh»;ÿy~»9x{:@V4€Þ +àã–'ÔÌ€99½=ÿ3ðßÀd˜­A`¬Wt­þ²ûïrr?ÊÀýû÷¯•ñ£Â,!`;÷Ãÿ´˜KFG_KKŽíoÊÿ JKCÜž|<^n7¯ @èqáýßuþuÿ°ÿãU7ý}:îWT[AëüÅâñúþaâò·4˜ÿžÀo¡ y4Àüoýq p[<~xþŸ§àOÊÿŸøWù¿êÿO$çlg÷'Îüàÿ7³Ù¹ÿx´3ìq8T #þ_¨.ð¯‰VZ‚œíÿ7ª3{)°õ£Ð9xø9¹ùÿòƒ r 7 ¥:faó—˜þéÆãv 0Pý~x³¸¹ÿ'ö8{ïècÏþ ™Aö§½¿màã¨ý÷9dÁËß3É+ 0sr2sÇz”Ä£%ðäy^K Û͸8ÁØc à‘³7À â„õ»Ñ¼.Íß®?Ï£"¹€ÿa ¸@ÿ6Âþó ùó ýSÀåòÇü¯[8;9=2ú£´G6ÿØ^ Ð h5?± ²­ j½ª’¢påØG=JºÒãåÍ3Á€õÊN˜þˆÑJOƒ+•ÈÍ÷ðÈ™Øv¨J;^e,Ïžy®×ÒÔ¹óÿä ‘Û¶¦1ÿ4óðq*Öó’’næi#B¶n‚4µh¡S/‚:U8^'æKKë^-Ƨ^Ïkºçb]™ˆŠä„ƒ[UÛ;«ŠÒ”‰)EÞì¯jšÌ´7ÎIŸg®ÚG®}4 KTM¡So¿ÆŠq­Ä[éXÄï¡úî¯è°qÌ× ”áG¯|³˜ƒ{—Yè²—Bài.OøŠXK%›V“kàUN\Ó©Ñ=ºžmZ˜M,ÖéÓ¶œ”­|ˆ_â5Ÿ@W pbæ]¨õOKñ%9M¿ö¦ÙС ’ËyÔ•¡u»'c-Ìiô^6eE§¾>ÃRZá¶IœºYÀÂìVW î'—Mò<‰ân½y§IíÁ¢: ‰ùX1†ÎÏUÝÛëX­mµGsf‡SFµµš€Ofvïú±¬u6$?ˆŽ– µ@EâÐãâãHV£¼¸L^ÆFÙ`f¤=Á‡’½¿ÚÜ=rtáaK»o}_ßÒ­_ŸñZYö$¸Æc –èÓ>Ö=i¸w•,ÜL }!õžßªrÓŸ°)#od‚lˆ4ótA)ÜðC(¿,¦rsÓîí´uòôFP“à3&‰ÓûúæLïa*}ËíölÝ»xihÎg:xëøKð¼H•Ü›ïAM´×ÏÆô<7iM¬½Ê]Ηy<ZÝøbð+{bMehšQDË”ò@‘é®H)ý™É\æ¯ßFXY˜Ñe´Çó[˜¸’cˆÈÖC—²OuöÆ0æ}#*‘Ú´ö ”d¹:¿í($ŠuYj/Ï%ˆçß_x VlÈ^óôÍç*Hª!×€X Ú¤Â|^nøÜ/ O$S*²Î­lx5Ršõ`J.8 ˜Ž(bà#sA:Ç|§…½ø¼i}$ãÅ^ä‘[ÃÔ¤fç^“ƒ%OéçÜòJ©¡ÚÕŽn¥*ŽXèuõ‘;¥ͻAÑX¤X¶)IVBµªl€˜*œ³V\¾îÒ¸È6a­1öð…Í,h;~‰¬ö–ÊMK¯¢BTò®KØö±ú\†">°W€*?qìQgi^øç¶ÚNÓÆ!n.›¡ Ê®ÛE[Ía"ºp¼x O½¦š óôiͤ¹×¼§»¹2T•pÛ\–p”i¢Û Ûvò áõ®¾[³\fIïÜû$d@áèd;ÿøvÆé("«y$Šå¨5Lž4óËíÙFï²µuºÆ5ïô8onîç8s{•Qvdá4ÆJÎ ÷d"¿åñ—UÓÔ’ ø]âz¯bvO” yNªºíòf «8d› Ûh cyÌá]ýté!EU,÷ä÷Eð÷ÉUF(%èÚÅg1kÛk™·íwñ­Lpˆeƒ„Ët©dé ²9UÑîúc±ïwDïÑç-磒•¯V»2qEДìýG0]å×Èöµ§0š‹R¨ŽeåÑ(†ÈËÙå3N1¹WÏΰ–\‘œà4B%•^ÅÕICÀCšÁ>Tþ²Wë”`/5º°'ößÞl¥ÖÈ`Ã¥~ÙfÜ í`Pãœä^¤,Š´ÎuøÃóߴ蔳!c ÕJ8A#z˜­–k¼DpÕ6–¬Œ‚R M¦aF–rù ’Ô•U¯b{ölŸŒ’czß”BÉSíwüÙn§™× 1@h¢´Á¸Sm _@5MÖ“IH¡Fܼõ7Rëw\ï0TÛ^«®sè:$Á(ËÐý64Ç]ØÍº({«N|G3F Ë8Œ_ØŒ¶}S¢­*è°, ïJÒú®;Z{çø R3ÊKH"s€1 *œ°¹“ù‰{¬î"à€"*¶<Ö>f¨ò<Ä™–q«r¯áKy'$Ms3½û±­­þø^ÝÓ½†‚S¾±žXÞ”„HûÓ×Ý377z/¿I‚^Ûö9  3Vncê^¿E£N^Uê™J+¤ÿ|!]3­k_ÕPR4›wK–”Üw™ÎKh;§ýÐ¸×æTωO㓲„ôC£ô­Œ uú¢Þ»–”›|ÖfmÚ{Û¹éÅ謞tU XÍj I’/‚éhMHIì2˧ÔC¢ÍKc‚Ö†ë×9AÛjÇësrü»¥ŒM§hWßQPÁ’ªñ¥—F EZÝ6ýíf ¯Kw¿¬ Yü:é3 Ùßlp!ày½^«}k“j Îz¨ßÏm¦b\ z§ bŸ~‡Ç#x:õvZaûlA"­²î~Ý"1Ž­í„ü”ïé³· F½¤ùQ3C}ÕçõŠû¸ÁÞHCÖOWÑ%ßô˜§¯~P€°°ÿ¨RXËð¼ÁÔ—ä• )ó—q M×Ñ WßF_Xè ›¾ˆVxκ´l³ÿs)Ѡɨ)¨õ+lgR®¶wh- …„la^PQ¸Èw¼öœÌu:ÞžŒÞAöÒcÚ}dáe0ót÷~¦A„nõÊ;”þJvÕ]ÓƒFs¶Kè;I,ÅE‘{{?ñFf`Ÿ.ÿÑ\Ô¶X=ÆÍ =Š“ò[̵ôêçªNûÌWPÍ^Dïï;¡—$…ÙaøË:­I'·3’ÄÉÅhrv?¸Îí°‰”q0ê;»G bŸ‰Ÿ¯ìÙÊ'<(+)×\»œ/è{G|­õ+—»•%™ÑןÆ<ëyÃî½_Ÿ è׆ódù‘›éX¸”1 u g,*–]N7[Ÿ°¾XNœ"͘0ñ4läɺ“(ßN²Ÿæ³¢d}Ç„eÒ*Å^Î¥oåe²G3¶—ƒêÔÆ)Y¢~ݳgKJÛ$e´œ… ¾•|ï£}f £>jîžÑ¬n}ÏQmôÖ1Wt3xÁ¼àgÖ1µ¢ºá Q8ùq׎®Yµ@TQPwF¥(¿ªœI·¬þát$Df²9­“GmQpè7õ‘žd˜·¾^˱/Š}û][Tßty—ÉúÞ… ¡ùRž@æ2ÃDR†Ewê6™Ä…MR{4°‡®)ò±önë¾gƒ _d%3¤Ú@ç/¨÷ògA’º†¤æ;gsD%ì1!¼̓èžHÎÏÖqà£Æ‘ï_Ù`ÑÍx—ç )Mï¦RC˜“ §}C–u’CÔÉ.pf¨q†œ÷¹Á6= ÀÖgþ]ÙúõrTjOËa©²–¢+‹Ë1Ñ}¬èVšYñ⊂ør%5õ'77³xGȱ\~ñ ð¢+y·²]Äm¸eÕ³ Á¥fðÒWóÐæÎç âlQT9àÈÑkv7}Uâ"Û¶(@“:<_Ml÷ÁŽÕ-tˆšf[Gcm¤G‡mú»*ˆ__yˆ5“dË©|ð²»ÞU¼t»A"ÙùuŬ¡6È |©©?ˆ—ú ˜>¼M_yòs‡ý„K"O~Çø_ ú}³ØÛ‰w<#‚ ‘mј’®Ó£†¯#ø£’Óg‘1 NÛG7Õ«_“’JOtöûOÆA+·ÌN}‡™*wó›y… kç_i~ÿ5_RÅ€+0%)²í?û¿nâ¼OëŸ,få ¨m³]xK±×¹,M‘ýþ“Ü£/œpKaöâ×g³>–—XE²žë;sËhVgÌvÔîá¼çŠ2‰§ö-pîC¸¨5÷€ÿv§Š“ŠÔùÓ[ql“Š*«Šš¡hˆÍ×”‹’ï ýŒëÜÞ°†}ÅéB9  ù€¸$z"/H­1²rïÚ9­Ë;ùÔàV-Ð3Õ"m¹(§ÐãîRSµ>—Àæ-Q¢EÌ2ï“K$åм’seW5 R×ÎÆàÔ+̠݉·µ„!AÂNx8ï¼Ñßr¨–œÛIÜ„çS|BÝ"žOødVäÎWUK«îýŠŒÈhŠÜs‡!—ã³|i;½arŒ§Jrº(¥¶ºq]³™‰ãMGeàW·8¬ºUp[MC#¶¹‹Pdc¡îJiÇÛµM,ó™V•®¤öîÆF ¸^Ä¿òœ)óÝ¥q¼—ƒëï°2Ð|üµhý`ÛœVªR ˆß7Ö­ö“\dúÓSÒ×'²ÑÅ®ûÙùÚUl†àÞ ˜Òæ#.½Ò™hÂ,3Eí¢‹¡˜ƒ9s¹šo)§þX¶ý&Àê?â:4_Ïœë!E=ßj0*›}ÞëÖkFþ|Zæt»QÙb½¨É_×á»w žI‡Tóì¤ÿÍqFJm™¦Dæ¶GÝfÑ9IÂZÝhå>U,ŸÔ!µ³!ü‰OÊ.ÁÚ6®ÃÆlÞºž˜·6vá–c* ÆõÅßÏ_ *µó¬ˆ9FG»fæqý0Å·tÂùÞ?°Æ±!¸oÏ)køÝË?:vP+È­Ù¦^ EûŽb¤£•äž?mBü‡zTí“gÏlÜhïÇË?¸ù¼üE§.O¤–Ž ëåîñIiL:ã6Eã€!1Rknų`ÿ´W$„ ¿d%¬PBP¡1ë’åaGÝöf!cïM3Lº‰%@š~Ž>ö2óþ…ɯïTé'f<8GO ä7Ò’Êð4žâ.}PÄZB’p­Í+È‹‡Ü¬(¯ñ%Ža\ä?ÅÂu´²íu8æG˜‘Çí$§ˆÉC2Þg|Q©Õ§èËèÇ ¢BžîShÙ¼8͈Ъ¤Þ‹3ôe^{Ç”Ô,Ã~‰v 2O ô9ƒ$0ÞfB’wŠ£K;Îñ"ÞßãEãPZï [Àm‡xÒªûM÷Q§_ %Téä +뻼ªxÓÅå?LùD¿ðXœ"l 5é—`›”ï(øn!í­^$>Ûñ¸¦0ƒ=±Ÿðv• P!¨ÙðwueØuðÌ)Õ6,ð­¶•àtŽ`åÖKt‰£†ºíÍër̆îÑ3V•)픓U–b¢ƒž»ikH{z~A(Twø1«"ü®çF§ýDüØ%çç²ûÍ!ìcdƾÇL1:'5[ÒãÓ)yAKÖÁ}p™Dw¢,t…^9V7ƒ:à,Rᔫ²ïµà(¥…ém0\0õ¦Äû}¸ˆ”B|ÞH^öüc¨ÞŽN¯>Òië Ïm4i”è—%ªÕêòò½ªÙóutÍåÍæpvj~B[˜ ›¢ùwж=¡±ëi9k­u+;çDÔ±’ºcÎdÜév„”9¿÷-,¼‰\/EÏ7;käOËò§Û8¨Åø5vuư…0[×8Ô.ï¿wÕ@·fŸOˈý˜Ë­µàÛØ1Að½º#ó‚ÖÕMª‹ÃázFlÒϳÀ®}tÞ’â~ó¤ _öÝ’ ·:©„c¾~K©EùÜÎl‹ýÉ6ïÃMÝŽ…ÅÏJc©¯y!®™9ãâ~¥‰«²ÈøóUw“<øÆÏ øbL6[x2Vt÷ã ·&üéßKåïH£>r×A[âx¡7 y¶Qä»ý)’0…öÔîÎú!UŬX÷øF¾»q@Fò#™în®x%û¢.+ù d³SlV¶*jT—êÈ©Ñ'á«´UAŠþ…Pö”²Ÿ Õ Pï'Þï¾ÆW0®zIè(ÄpI×·O[ÿðÍêê’<·ui*€s7&áåNz­ÞA¢SG~bE2’¾ºp‹áùöÝóc¸‚JP^XÁªý2#IGÜ>»Ì½©ÕÔ=›ûU]ž3Õ‹†¬ûí%¤‹ízÞ¥—Êa–Vf<“<;%úš¾i”nŽÓ3ûî±ÛA73œ=½¹ÜfÇúrI©ñ0èÛ•éâyލ>¸[•+?5òà‹¢‘íd‘þЛ^¶Ÿ8çÓŽªæK4§0¼›Ó{8ÈÌÚ è¢:$ÖAˆöD3¯ppã`fí{MûærÑß²¶ÁOÌ’?K£nÀè7T÷â—…^ÑÒ‚jFãÀÒÃSØŠïò;qsÄg·Ñ,ÀýÔòëbZÜ,”ÉЫÝw>†#`dœg}Ù É„(±WÝIY»>×,¼}Ÿë´ÑÔ4÷ɯO9 Í5ª¢“{ÇŸÕÂ*·îBq]Ú®Ük -“yRž-p€gY"Ú›râ×ú¼:à§o#TW Ø¢ãéâ[]¾ˆù,2©c¦•ÉÐjQF&«qO<vêEóÅ´dËYò¥ Yöo™‹vÌ-9ƒŒñÖik‰& *[®ÈÅÜG½kþ¶œ­HOzxlôqÑkùz”5¨~°<ûE!pé®À²+4a[V%ƒ=m&„š”Åÿ@ÄÒÃuÍ‘ŽŒa½2 à±bÿhãâ-‚ÊL&ïG¬VJ×6.|ƒV&äpSt“`|7Z¶#,Vÿ=ßÑ`•×ò!¿ ˆáUrv#ÖA~¸“.¯‚Ð5z€©RñFä½ST–‚Õƒ‰K Pû›¡²¿XÿÐ0p´¶U t®±ŽjÞÆG.áMym×›^­ôKZ3Q8ËÙ‘0ä£7pgÚ!¿Ùÿ*¼½kUNQVÐ9j2°EšûiÀBدŽ)©d€xrÙm:/Ó›$⎮{]ñ$Úpí7A,Á4ƒÏû þ`óù”.Þ²TÓÄ{ ‚4'^¯î2M²Pˆ7UÀ‹`gšSTv$/bü;ô^:]6•stKϯ®ÜYøtSÒþÔK舘ø›…e &Šg’¸e’Õ=æQÇ6°4xF G*œ}P¹ê(D¦’£6™2ƒ¹ªvÔiŸ²a ˆÝܬ¨H¶ì–q[Tmj"¦ FEl¶)³6'Ó?ËDI!*3HÛ"ˆ&Ä)ÜãåÝ|VíG ôÍÌ7COÝ 8+‹£Í³}™û³"!B¢ž#”^ßS•¨ôõ€øTT:é•¿vª ËU³¤¦þ¦%ÁÐÎ(±;vÏŒ,Îú'G´¯Õ[‰‘išŒrZ^(4?zÀ7ÏÞÖÙð¼XzÚ£³X1±Å®3Ïà‰QQ¥ºiI i„Èâ+ÕÔ†(­+E™ÄL\E ´ÕÓZWdK=>ô¬Ú6Ý.€[ÛècŠÚ-mÓûxKù’´˜¢n%¥µô¡< ‘žW-ÕíKh5eIÏ/³‘]\e’daWc&Ä2'ùŸ*\ØøWÝemWÌ}m¢©Â8£ß’Öz©hE2zÏ…½Õ§+ÎLÐJÕWlÊ?Gýõ+Y9T©ˆÀs¤‹3û“?Ê}Î,ËÀùÄ(àôƒŽ9FŸXÇ$šÄ‹±+ ‹eZ¶V´µF‰=ԛŗõðÃn‰o‚ÝNŃ1º_.ªÕ‰íWЪfPaoßá4EìÝôN_É7 án-Èdîæ$ã'õçÁxÜvþNjz’ñ¨=oŸDè€éœyW<y°8$I2¦–‚7ŒÀ°Ë·®8ºç ëd‹ïQ6GïÆ7üÀ€b6HœÝ-®îFöœA¦y"K…„R–ñ«ÛSµöì! ò>t_;ãÎ1I\*–Z£µ]r zæµt¡ãN¯'«eµ†qÒì*İ­ÜŒ­ÈÉú0qôm/ž™'+hG›­Ôh’«á ­™šÞ³A1bSDx[÷Ü~L©~Ð׺aÈ&Uýš—¤[¤0‡h°yQèÞªFœµºxÀ‘)t¢Vª:{ÙI¸@x'&b³XɱWsøt&Vp WâLvfüษ lˆØ¾auÔ+j÷TÛÖ‡«(Ï_"àB˜×p¤ê÷>%-‡½wÔÄ/.#õ¸¯Í¦4Q•º–¿t%-yEÑà™T•Êèÿæ–»Y¶‡*è,äþ*ñþØYpÉ„„ï(*\B¶üÞç,SÃÞ˽õÆö4:¾OëÃÔ‘N¯1»©¤é¦§þ~Ó ñÑí×쟯“(ª®"x?J§U-!¹Ý*½(¬müâR:MûR<¯¡#à •º¬^dÜ9Ÿ½d®ðÇ7˜´Ã+’9w튕‡Wà§²í¤J‹Õ×+3㘬†ïr'fµ‘³rÍËùv<>y(yëå©ïe"ïAEˆ‰»Ï'C5íӕȉ§&×»?~(,nÌ(´§: µšFD@¡ 6.¡s¦¬¼{k^y+’Û«Œg\TpºN5yøÂ% —D@,¢æD_^9ùAð«f fÇÜ9ìbŽÔðlµa<>26Òÿ:S¥¼°¯ç@6$` ŽÜË'þíþÙŽÏ…$Þš42R¯â3|'F™DÆL’åJó¬=í'|t§’”ìË1qÙ–!Îá"CAíéMÀœÄ†æ' Ùù¬iB<ÇÇ@ì4M"…‹8—Ûòœ ãµ=É7@†„¹êŸ×å1#¥åØDs¨4}•¸Çš¹Åd2mð·o3'‘Å_Éý\-ƒùÜÅ{™DÄ3—õØ Ú¢ÉR¬`§ÕE¸ ]$ºelÉMáµn ß]j箳kú’dË­?æ‹ _jÈø±dÀ“|¶¾÷òÑ:çß®ŸžqI–•Ôdˆo¾†àXc…Võ½ÜGáô6ÿ”3óPhzÂà,Òí=2)N)¦Óm‰¹‰HbL¹}‚¨èÊc‘UÄ*ÅüäZ‡ÉžÌ5д½{š}m ‰Iß6v¾ŸxUÚÞo#)õÄIj*Ðèü}ö[nßÏä©1š®¾ctÂT­(¨•u#ŽÏIºjš”dxv›0Ï%Á`’;³¨°ÚâcÐÁÁ³´l^¶|EÄ‘¯Q/'/€Tå)Áª4X:õ©º ¿|¥Üí©tjGÔOÕèæ3È;x•;¾íF¾¦}XK¨r ùiGŠ[`µX(å0ñÄ!Æ•Gù³’r%ŽÖ§ÆÁL™kv±¬Ú‘zçhÑLyq1Ó$×»nfž“ôĈÖŸO˜¦F[7ºh÷ l}ê²G 4#uÉ Û°3ÞtùçälcG¥4GZýÚÂË“°×¨>Í*iãÔSotÙ$ŒÄ7•Kb–Ð~H<Û¶´Àñ.7ë ¤üjNf¬Ç ñÙ àÙ“L}µ‹:^U½ *ôÈ‹PÝÈö]A‹“A#Ô‰ãÉ$„[ó lg½NjlŸk¤VgEÁ®ƒT”læ PZÓ¾Q vàíÖ™7¹Ñ ß&$‰PŒ5½MôW~»‹3vÎä˜Õ’,LѸÁ6ú^v‡:,ßÂgñn¢@ÆìÜ|"@o¾^~ 圕۹¯/…8^x|Tî¡v”ý8ÆÇ€7gtæÖÃÞ/œ!SÃW£o_\“šÆ1„ñíóº ^ËÙ¦¤-åv¡É—R&„ŽºÒŠÿgã¹ SzEpX¿oÚ¤ôdÏÞ/ÍcÌ^ª9¨ß··ž½Û–{ó@ ~–‹·æÛÔ#²«F‹Ù-U)Rr¶¦Bz Ò¿Þ{H¨Ò¤` í¹X×§Ó¼b %«¶Øýiâß¡;Û–‘þ"ü„8Ïâ‰F¾uÁs´8o?_²Ë“וT°ªoó–Ød¨4ÿúNûM²m£p™þe=Î÷ë^Š&Õ˜ M¼¶ó+:IU¶£ÓÉrváFÉlZ¶zù‡EüÝ—¼k†ªþRûž•„¦Å\Áµ)_üÜõöø|%+9‘ìMbÜ䙃s^úq+º¯é::¼§¾ÀÊ×˼u ÿý£° endstream endobj 1534 0 obj << /Length1 1407 /Length2 6046 /Length3 0 /Length 7000 /Filter /FlateDecode >> stream xÚtT”kÛ.Ý©’ƒH×ÐÝÝ ’20ŒÀ 14Ò" ‚´ *Ý ’Ò ‚ðº÷·ÿý³Ö9kÖzç½û¹žûº^&=Cy0Ü¢‡!xøyEmmua(È  °°AοÜ,&w(&ñ¿Ý! ʧB ò´á0€†§3€_À/"Á/*€@ñ¿áî% ÐæhÀaE¸«¯;ÔÁó÷+€ÝŽÀ/..Êý» ïq‡Ú`mÂₚhrÂí „ï¿Z°K9"®||ÞÞÞ¼ ^¸»ƒ 7ÀŠp@< î^0à`€Èò/ ÀÈêñÇo·GxƒÜ!”Ãjy *ÊD>à)²ÆCt+?^M1ÌÍ™×|­2×ůbý䣎‚òåÒÌ7ÿõzÆ_¡sF•mFÛ¤éÛsôÉTÿ ºÓ¤ïÐòMÓ$JÝ»ÑôècÉ>áË‚º YHØê:gS½Yï•©ˆj„¿×ùð©¦,G‹’NÜdÿ«¢Ù¶ÏhCø;5[ÞW—Äе8Ëè ¬šR. R¼«ÉVzúÈ»èÛcŸix…l?Œ@+KöÑ) áV›,\ç•zíeÝñ·U½+·î®XæHGÖéœ:®ŸîY1qºu½l¢îÂÛ/ÖRMyš•Ÿ0"7œ\ó-Ùrº2¶tχä£,l‹ilüJH’|S㩾/aû—ñ¸ ¡£‹öIÏüóŠ™ÓC‰×&‹“K8Ñaa M!ºª7ì.ƒä‰¸/êË‹ª Ïž’Çd¸E`ÇLDBöw¶Þà¹ÏWL®9›J¯™>é–N):±žßÙ· (}^܃üSÑÙùV>Í–£Eôê*`ÜÕÒTR1@wå Ðï`Á»N·qÚà9{¨éq‘¬ÀBÍZlT´JGð„,Æål fœxSo ×Lþµ¸ºå!fPzÊÏ$êÇØ˜Ìç#ÍO¯ð OãyY +:k ûÔ™Ýb÷îã~oö*©ÿ4Œ®`t”ôÁÄh^®å£!iyò~üãzFéPì©ÁŽšs½'y€ª¦f7^Iʧd§¼-ªK, V2ŒÃ7VàžÜ'³ïÊ#5ª§½ª±ºÓ'ÉoëäÃלG¤ ÂÌ©T^Pïæ>Ë ‰¯Ïz: Í2ÂÌÏv)ãÕ~«oGØÒ70ºA³…iZå›ü¾Ô•ìz–vKTɉ§6}z\–8|n4B@û^!;!nŽT‚„ò³ò3ÍèLu_}⤖•£³Ñ¹ä9Þ©Ÿý ·5¤/uåU±Œq?ù«î8 Žwï)k´˜œqjæ¿g/ÓÊ“ÿ”« ךœžûl-Ù×v%è‹%¿MJ¢a¢êņ“]=|gDy¨?s3=b`Ùá(PgLÈo×à§ÉxŒ¾Û#4qƒ{{Û+æ‡G»íZ4ôéA“òõ×íkv|cÛ%[åTȵQ“XjÝÑ÷´”Q”OR…©°~¿áÕ  ±Ûñ3-¾!ãøÉ‚ï‹c}1‰0#”'1‘õ#'VIîní¸«¤‡ì S®Ò+bhÓ:¡dW¶¼±‰ïM¹G0´³2SrW½¦Ö’—ÛÂÆ´‹æ¡Ó‘$Æô„/®ÛÕ©£åR,ÌÌub6Á‘-ãí\~å±ÿ=¬¸ñó»e‡„goñDZem„Ü/b4Ú˜ÜN×oÉ õªƒómÞ^lí¤Z‡)ª£_ï Ü¢ ¿fÄâæ9iZê’lùIû°8Iq¾»óGÇaᬧ©•¯F0ºC ‹‰Å*Sz_-K.¥‘•ý ˆ€£4„lí¦xœ†Wú~FåHɦFŠ"ìÞ'>Z ö¾ãÊ9$­¦nšà˜"aÄlè]LxåËÀªÜèöµ?*„~†d?¸Q&FT=‹iMa¿ÖŽ;»^Ø`ê‘öò™nÊð¾þË®’†Ýn ÚY“E‹¢¹dôñnÉÉ»Hï`œpîWR.Øo8óùkæ>ÓQäùÍf½×ÉõÛJË¢Çô[÷ŽÐÖò™[ž›“K›ä÷4a,µÔ´?;s £9EYâG]Å¢¼=h-äýС.–\dís*ÞŠqÐoÔ”Í bD+ ã«WÌv0ìöÄo¯EZ7Påt…öö¬ôŠÐâ±Ë ©“# ¤±êIM"áÑœM™Lr¡ýѪ)xfhgk@å,_áçAM~ z䤼mÉàÊ…ò»7¢]¡ø® 'åÆ Ï‚M/t°8üh¸vϧX_Ü͈zdK¢ÓÑÝn,œœ˜RßZ_90íºÈÔaËÌûѨ6¼ïŒH-›} Mqôlx Ÿ†‡»iÓøÌî}©Øö\bÏ¡¬?x EX¦{«+øÝ¿“J¯AÍFÚïKÖ_9Í^ë>ñ°}& Ôx¤å—Üâá:©a]vnžÂnOrÃY2Ò~™ÍŒh§ƒ.º«gª’eSö⋇•¼S Ôs]Ô÷UNÚTkoqmÈ]_ÎXdjêá¿ò"úÀáªÐ!·h+Oî@è*ß¼&‰îièKÔ_þ–,MÔ~¥êÚ7¸»¨!.‚ý©±Ë1tÀø¹§y㵠ÙKÀô¸êuÞtHhGŠxÒV(žÃ¦Ö;SÓ)í©‡tø'ºIòÜ=ÅÖZ)žr›Œ‚ Ááº0dNxi©¢`\îDkסáyÚ¥ ŒæƒirÅ ZmfsÓ×| Õ[—­LT¼ø ’dÔÝ^vmNÎóô>øÊ¬*7ßæxPånÊ]s޼í%Ç6ÙjÍ2Ø[ð©Ç€5ÜüRÝÓà@CÅ/Ú˜&xÌ)‘ ·eév4O‰ÁÞϹìˆò¢#üIWZJñ– Ì"’l£Ò"¤ò°2Šï‡î;Õ°€æD!ãA3ÓÓ•Wg¶"Ê_Þv›hÅ’ÂØ6-IeÊh6ý5Öëзº®BÁ7†gò¥#‰¡ZÜšìøõ†Å›’-þßšhÂw] Ç#;ÚdûØjZUÒ®SƒÎŽp®gG\¶R;jÉ6•1 Ú½Y)? 6&¤2[5¯kŸJO0èÃ#ÞÉ•" î8Šý8gƒ^ÀzsàA~ÔФ iìéá›o1`äCJ4>ô ­¹>7“Îɘó' ÎXõ¬ÍÙ{R3÷cÂBåGl›S„‚õÌå|Ü$Û’7 -¦Ž…Ú†9Úyqû3Ó}w3L ´0‹c#=&ÐmªÔì Sc¢ißæ|ÀhU¦¥-ªkÜŒi¤ß ¿´–JÊŽµÿ h> ¦¤cË#»À—Z #0œR8v"0G -ÐS{$ZMs{l‡­ÞŽsÍ’…Ä0…P·›óf öà§qó½šÙ3µ ¸k-‰c†}é™1K]Ð=ˆ7c,&eÐÝÍ$D ¦‘æÔ)Wî™Y{+œ<$7Q%ç~yVñ˯¿CºÄ3¥œÂÄò.J•l?4Õ~ÐlUN–¿ýôzƒmIŒþf€×©z!ž¼ßÀ]}ÁU.…ãχ16 T° âãG¬»]Îî—^Âû1%PKfyg5‘ ®ÀÜ×"·j÷ºMûU`-rÛ´7T`VÈ!9m•”Á?²)Ý¥°Ž9ÑplUök¢ñÁ“”R½^¢ìä¯é¶ OÓ¢÷fæŸÕEšgº‹qÞº¬"9ŽÕ6¼Às]•; *aÅdÌÏ%ÔÁ&¦ÓdFØG“£c{%ae(ð¥Ò|ý¼¨mŒ1ºoº,Û[¶ß˜Ô ÈÒ³)ƒ~P®‚2#å ïךè`µ0á§ëæa²ÆU¬ëÙ—Ú±«™hÐE4A”ºÏ*—Wf}‰0§»¾¼‰›ºì¬{g¢’8Ń<´éI5—~ÀPÕë¦# ¼ëÖ»øªFâ!%s"—jËDA7]”ËÔü²Ï/BSM²þ†PØúÀÈèm6Ë«Ùüwƒ&ºà¹·Ö”Dèw!ý ˜Áž’…Ÿ""£¦ÎS ??ðYý ò"–õÁ'Ïìi§u%½Gy9[ö³ÍrÞDïÒ0wXê-Ñ÷Ù=Æ48ð˜¯üD©³Zª†p|ÕSÙØ·³Êéת³]›?Ä÷‰Å½æÃ¦H¶ÌÜ z•Öš™x¯f¡ºÜ–W‡—äc¯ã,vxå2ûlqGã!ßÖës¾«¤3(Ró…Ëqû”» }—È:^¢ WsCPF46§Û¨¥zRÜýü}Í«è{3k3“3œ¤Ó·³@™Ür?·wxïÚN«Tàü­ü4”w€­_L ˜¾^pÆš!oÊ&cÐÌ-æ$óÔG¤‡F¸ð±lÎØèÜLÛ:Ž-:yS¶×쎜 'c^FË>Ma/;ž~Ý£LŒTÇêH¶È0ÔäÑÎC”›JxÓ åù÷o_<·¥=£J;$ô”çìpÖ¿&¡õ‘¡Ì|7R)¥ÔCaQðôø›œè´MÓÝ~<—¤Ø´!¬FØ 9Çj¬ ڛ㠆íj|Á7Œ¤£½šZù'6^L‹'#Æõû¬+µ2`»/ý äm74Æ–§XUû³_ìQ`'ûF,Ê’^è»wÿ; ZIoG˜àú¹úû©ùyïG$Ø]i‡þƒC?’iW‹u¸Ý€X°^N¨ÏFÖs.™È›N¥hP)ð>Aÿ’Ãn}¢œ¾wKŠù V·RÚ¡ûìåEM¸>ºÖãaw·ÌcÞâ(GðÜìþƒ’8f¼—U·ÇÒà°ÙNùdãO)‹eó>až¢U àçA·•¤Ñæ îêÏ¿$˜ ÉÛ`ï(Ô–3LÓAªV}dãæ ×¬»-*y:Gµõ„,¯`8£ô*kÓ°T­},ñ-KÚ¬NäIû•Ÿ€}ÐWLVn{[¿£›‰”:1ÐÆslÃÁþüjEu{æðXƒ•Âð¥ ekÈÄ㆗ê8OÓŸü¨«0HIŒŸ~†ËØéWbpª¿Ñ–*ñctÑcÈ /“Øz­ðq»ÜÄP;;P.)8ó¾³Fµ÷ðzbçú~©D?×¶ïýÆ]ÿ“Sk&ÖË(¶ãS§#Ás“’$f«Ãæ!ý¬!Kœ«ðæ<Ò™Yâ"Âl#‘·?©Ä·¦°A¯ìã úoUÌhv'›Nk+â,’´ÿÀ\“M”Ë~˜Lóîã(ì{Ù:«”O^4ŽŒÛ§dâLU•Ôà¦k†½ÈÉ‘™ï… XP?ÍuE¡%æ¥Oó•i'¥é¡šž–°åvê”±¢GþKš®•EdN÷ÁÄ)cD˱ÑW‡¥êðÕ”¦<¼Õvª‹sÁ‰ð#±–n–¢åSÑb^׿ؚăIšÕŽÉªï©º/-',èÚP1Ë6}h—b'dÓž0¾KÍ˨ZŒz_,UƒA³Ã8»cÍ‹|õ_â̤Ù.O/FŽB¡Æ‘é6wµTù&«{`Ø:Ì0ùžÂ5Å€¡ 'Íǯ=T‰ù ‚\7ß56  vt©ûFÓ¬¡%ig…)~¦gÙ†ëñ…›Án+†âS~/ôþ僱][²Ûrì2¤ÅTlæ ÚÝGËcÖÙx. C›óó÷|å“ý#“ÅW(k÷ÂTZЃúÍ…•§jB[avL·;×¶ìçÆ‚ ¬x»çPÔÍ_G/L¨×#é±){ŒY÷,ÉÖÍcÂg(…¯²êÐD¿Ùx“bN%\vœ=ò—Óµ^žjŽnÞ7¤:ýAü@ýÓì¦zçܛۻ‚¼ëýÃ"³J2}ÇltG)=%M<“•-C”ëå…g§9”ü"$Èö~‰ÁH²w.ÐR5R5¸-R-ö°W‹›æD²™«Ûg{ø¡ä}\c ðLëÝÁæqé“™¦í8¿-dzÄä.·6H±ÂŽ ¸v÷$¯á„Y¯+ާÆ”J^ñE ÝsŠnI.sùtf üYÁül%Ç&øg@rˆ¯ú©AåJƒ6Ÿ$àÒê[>ã.‹Ç¯í»lY§Vz]í…2\õuL âåv¾Á³OEwçy. 7ÂI FlˆIÉ¥œ÷çæíŠ=`ð|Ï0˜Zq^C*O@d¢ÿE>ܾB˜tž*ºz6$¢ZrP¡94ââý=MŒ¥wω%õ8|D J»ïõR“pté1üb+;—”)`&Ïyh#OºJˆµÑ«|¹ÖвO ëiŸL©ÂÛ$o3ÌŽTdζÈš>‚Ñ,8?DÝM#ÀË,O@cú¼èI3E±Í–Hƒk¶mƒ§”ÔZƒ€Ã^‹ˆÅ’ÝKóg ããF©¶UámÁ‹?ÊHxt2àKÝKÂèXb`í×6—ÛÅÛ¯á»XÄÚ'Ã.xµ€˜Üˆêvk+ÖÏ3,ÉÌ“N,¼ˆoT›+&+ÛJÀ㾞~ è âvs;Uh´÷|´‚q6ê5ùËç6 ý÷g­öôºLÅŸæ+Š˜õ—Ì‘†„‡ zÚ?Édû6`Á  jÓ\µõÞ­’¨ìÖ>$ýH”Mbç‰Ó«\S¯Â«>Ur?¹ñ—£O­«žo«CLžAcµÀq~Š}ó _¶A€Ïô&Ìõ• Õ^‚;v¬˜hî2MÁ¤êº‚£÷Úi@ç§oÒ/r^?3V5ÚõÁ˜ä¢ï'Ã|ZFGì§9 .K.|¨oÝ#©ývƒJ ºç;'É)Õ¾[,挫PU*%\p?k²À BûT2[óí–ÑéÆ}–بšÿ|æõºZ¿Ü²t?ù÷È–UU™a*±²ß¯×·@~ž&{ÕõyÙ×D+%[ Ï.ê;‰œ-tÞ–ÿÐø¢ endstream endobj 1536 0 obj << /Length1 1611 /Length2 9247 /Length3 0 /Length 10301 /Filter /FlateDecode >> stream xÚµPœ[-ŒCÜ¡q—Æ-¸»Kpi ‘Æ‚w !ÜÝ=Ü‚»[py$÷ÎÜ™ùÿª÷ª«º¿µõ¬}Öþšš\EYÔÜÞ$eqa²°ñÄeyll,llìÈÔÔ`[Ðßfdj-“3ØÂÿâN —›„‰ËKœ¢= çj r€Üü@~66;ß¿íø&n`s€" @ÎrF¦·wðt[Z¹¼´ù×#€ÎŒäããaú“µ9ÍL E+ÝKG3[€º½äâù_%è­\\øYYÝÝÝYLìœYì,…è™î`+€Èää2ü& P2±ýÅŒ™ avþË®noáânâ¼lÁf ˆóK†+ÄäxiP—U(;€ +üÀø{6 ðßåþÎþ] ù“lbffoç`ñC,`[@YJÅÅÃ… `1ÿhbëlÿ’oâf¶51} øsr€”¨*Àä…àßôœÍœÀ.Î,Î`ÛßY—y™²$Ä\ÜÞÎqqFþ}> °Èìe재ݬ ÄÞâý7°CÌ-~“0wu`Õ„€]A²‡¼˜ÿ±Y‚\\l¼<¼ì#äafÅú»¼†§èøÛüÂÀ×ÛÁÞ`ñBä ¶½ü {;›¸.N® _ïÿtü7Bæ`3€)È Aþ§ú‹dñ~¹|'°@íE{@ÛïÏ¿Ÿ ^äen±õü'üÏý²ªK‹)¨Ê1þÅøß>11{€73ÀÌÎÅy€ž—ßÿ®òoþÿâþǪbþûllÿ”…XØ€lqxÞ¿x¸ý- º¿W†ðß-”ì_´ Ðý#}}6.6³—/àÿóüIùÿÓýï*ÿ7éÿï¤\mmÿ¸éþøÿ?n;°­çß/RvuyY Eû—å€üo¨6è¯UV™ƒ]íþ×+ëbò²¢Ë‰39YØ8ÿ²ƒ¥À s°‹™Õ_Bú×]¼ô°C@*öÎàßoœ—,6¶ÿñ½l™ÍË[ÅùåÆþr™8¿¬ ËŸËýA/Köß焘ٛÿÞFv.n€‰““‰'ò‹ ^Àø²¶æ ?z°²@ì]^R/œ}öNÈ¿¯™‡ÀªðÛôñrX5þA\VÍ#>«É?ˆÀjúâ°šýÙØ¬ÿ_ê€ÿ¾´´þøR׿?àK)»à‹$Y!ÿ_¼îÿ@ö¯ÇÀ—¾^àÍÈÌÕÉéeˆ¤ý2Àá?¯/Èd†­Ãu5—fÓ-®K|Úìu»ØQúá)Jéò‚·È î•oVû–0zIº#äÜ·N©B\0$ˆ%8+µ–rѲ ÝÒ1½M¥±Ädèõ&è‹â¶2ú´àüB+í¶£·]¿ôø[”=‡Ô)P‹8'¥‚Í-S£ˆm'ýNç™OÕ ÆÜñi‡G\¯˜s ó“¶E®i"0"ÓLé!Bö‘•šùøñ Ô½ZmsÍÐUC[K¦ÞHâ=¬Bá lîÈ÷.òNt–4É5Q®ø§'³ YŠJ.Û*´¶ÍîPJ퇯¸¡—³}¹Z X„™†Ìïd¬ ânÿšÑT¹[ØجWkä‘Ö œ[?y#m¯•¸F žåõ2þ„-ØÒ‚¥¾Š×êMg=Æ"¯¦õ«ó‡Ò5ä8©¹gãcA DmtzæcX¯¨Áã sz'û )(ç6Q;»RÏë¥&;Üg€÷ú]v§ýa)õ®J‹B˜ëÜ):´ÂÊ".SÎ`ö_ª3b<ü dXqG\ÃIc¨ix­:#æ¥@¸•ý¾…üç蘻àñS îi›&8ôIÉêhíµ…˜Âà¨Çá%ä’v«ÓÿÅ:C¸ÊLl±lísꯖXüSN%÷ü¶5NfÊò>,„=r2)Ô#iÜ,Ö×Á2`¸’ÇÓ![Ëcš§y÷ª‚“°à)Ÿ.qm"úܨ”Àü€»ó°‘Yî47ßKìNv±0!4˜¾¢‰á Ç2ê³÷‚åå#œÆƒ¢ö_Gsl+;“Ôæ”f³ðvë¿Ê<2âvS3$†¤´^ieM8¡Eçh3˜ÃAŠ]2§Ë×¶ ñ%¬ƒ«$°íNOø‹Eo!¨ÕåiqŒbÅ–6h¤¤Jª9õ´â8%«Üµ‡JÔoæóýé0)W:âLá¬TX±dd§6øí(c|R\£½ÔD¢[]«Ë¡~<…-ßW§«жDrÖJC]ž_3NÅÆ„—¾ï¼@Û0äDmeÂK¥¢L…×·ÿÊÒp”í§b¨æEãytº!j&lÄåÆÖÊiòU|°c< ÙWȃ¶h Á徑'„r$*ÊÉÊŸÄ8ìq²¾ík›:>3r¡yü„ñÔÄwÅ^Qf1mh #7WÄùÚ./? ›C^§6s«Ÿû†ùŠï7C€$¸º_ݽ90LÚºRpÍvÂÎ…)uV€øT,Påí`ôð§(Û2F8‡ì»4M,ØéáCé%s<7غ.bÓ)§Pÿš»:Ãh¬¾›&P â!}åÓjl9fÏæÔù>c©ó6Év [º¦&l{01KsB„Ï¢¨a 7š R?Ôë$c²¢û-ÙƒmOnL>o"¸ïF ‚5dÔ8øXU¼³Ù†HÒÓøö¨×ŽLi^½‘¿I^ðë:¿ý]7bF1õó=˜VìG;·KkNä¤ñjムƒ°¡ºéÛ&˜ÜÜõü] ¢üÖ'&zÞ\L²ÉþÁ ”:w#ñFx¥Xþ‰mÝ÷áÔæ(Z±+ô«7! [™XÀÚÜ'7|ÃjU“™‡ÓnŽ®¯±}Dg›½Zú•¶%ª°¹pˆ ±‹î¯Fd›a¤?§ï,€¾ã#}­[ý`œ\9›:†Ÿõ üÈŸOrÙ¾èÅ ÁÕùq;ªi¤d¼QðÆ5{V }à”ÿ¨5q×DÎúmcðhÖœ8†Ý"óŒa¤©;³Zתg`è°S¯Ó—̶ÅA ^ú½‘äRèÊ+g¡Ï£‰ÝWEï͈#7ØÞÎQ¶š¦EÞ9T;XrY“*¥Ò` v $kd-¬÷&}øÄüC§ÀåÑoFŠ<*¸jYøÕP®;Ù7_Ff•×d÷¿öù¤¶I¿Á®[hýŒ¹Îëàüöýœ ã×WE_;~ƈhÉ 74?4_Ín·æK— ‰‡Ð1¦Û¯i8ñ]™±+_ŽTÊ<Œº£6¢”dx‡ÿíÀ®¥¤bä&Tµë³j‚ƒV® Ÿã"†ª½ìñãC½V2\¬"»Ioì- ›ЬüaÍÿѧÚbžu]*Ö©äé#ºš–ÛC¼áåÜiÅ+è«aŸÞbæsÒG'°¥èÑYˆ~´ˆ;‘–^s¸¶5E‰¡7§ûLŸ·ˆFk)› Ò›EÄ¥ÊÓ’uí>¾>‰bÁ*˜sži‰;"² 7 ž›•Ãø<1)þFú±Ê¿eoZ7fÂS<¶­BÛywõkÕ:MxM€¬†Ôˆ¿ÜQhè}7š†¹D¥õy̆¯æUïîQ²›-å-÷YÆëÈZÞ›ÄHT™•ÑÀ9žŒ/UàÙ0 .Ò‚ÇÐðæV«'…Á)ò¾Ð ´£á–qÂyÀ]MÆö{ÚÚ,_Xã Ž'¸î½ó)ºíM`éÌ"Ùûž=¯)5kQ÷× ^J¥Á*Çœøh…yTo —“>`Ç«+gŽ+ãäî‹Ä—wFÖ·mzbx¤úJ‡“¿~ 0”’ð÷•c¹!äôB_Yv|Üà ‚±!` `;-ÀéΨ—5™á…Ë)%ˆ¸­$&ŽqPù©êT/Þ.K˜³1p{OF“ÿ;¬âñÓGýF m}_Ú.´oûoý âÙ^Y± ÁºæŸ8]ðÄÎ6¹y»ögˆu|äA7sÂØA?RÖ%ë?Ö¿)×ë„þºžðéªINˆf•"\,ð쾺YúlÄ%é ¯—DÀ–„fr›ÕÔž¼P‘ÞæÛé½Ê53«-†Ë|Sê“Yû=ž_⚊‘U׊U5ôY´ÍyJhgÛRå%ö¤ÊM7ÌÞ†fpŽãª»‚‹}N§Ÿ×éaÄoÏ€{È ‰“ û%TÇ&%~±ßÁ˜ÙY{£.ÞxN"’öÛÓÞÐQ;ùºTÝô4‹j^±¦‹ùàÞ¥B:z¨ÚÊ4 ÕèUjÓ"ø}ŽŒ †*ܢ㛮d%½¾«pA*üÒtpðÖdä|M(ŒÕ¦Œ²ë]о÷µHC]g x+®ð’I0Ô¨1ÝlR3—>U`¨Í,Ïøåªxõ©Ûl­À9"L)Òk¹ð: wp÷¯Qkômåc³£aÊ]x( 6rK0=”’Dµ$T¬]BUëE«b14æy§LNÃÒG‘PKÄð%gšƒ·ŒÌ*àÕbÞd°»)a~³•ZÎÐ$£mÚôôÙ”„úr…5ÏAô@R­+eÿÙ¸ÇÀÁ95<‰ºíòû–×¢j7thÞdÙ÷ÔÃÕï`ºô½kZ$˜”¿ Æüh þé›6.Oü< J£‰’·90€‹ÀŠÒ<-à™—ôå±÷ˆÐKJ!Õ“úãåN”ÂÉ­e…ÒBVk>Þ=® ]ÿŠr¿£ôörƨ“+ MÚ°š~]“w mðeq¨}õ¾ a…þ ^$Á¶þš„…du·–«'j"ùÕýˆuZÀö¿jÄGBN¾hªöéh$‰ïlºžVôtƒ;gzÉE©ÍU?¦0v<™$WÏnW§µîûÆäüÂÑF®û.ï6•™—Á4¶.¤`—Xª¹šÑ§àWDø9¸SLa¾Ûg5‚«wzc›Tž$ýÙ ÅŒ‘ôt ðŽlò¿6öz—~̶»”‡vÉHŒ+h£xÃêĪX>ƒ9äÞºðëô„‡ÑŽX›ì}î/S:î±þ0áy3£QëÜ;dƒÅv­i«·Ì¹tFý†%QdüÆÞ#ÂÏbš÷ˆ³ˆ49-Ð[K—WSO¯æùdz5ÙÏo™÷ €)fþmæ§ ¯óÄ·ºÔn¸Üä·%ïÀZËäwM;·ÍuÕŽIè ¤èHÛ.qÊÔ<Ú^‰)GÖï«{N4-uÛ‚¶ŽvbcÔ»‰“ëVNµG°-¦wÀÊmÃGBù:ò1 'ì}B|•TáY$ü?OË6üÒÆq6È’\¨RUÝÐÄøbÖ¶>³w‚%®uò D'‡o yyY8ð[[ ç0X8ǯñŒ3 ¶?Š{%¼ÿ¾Ž@1uS¶ÈÑëMõK³åý}Qxkš…“r$䤴æ-¡]Ü«1šëE&øÓ¨oGzŠJÓ1ųp s×­Qï·W¥Ö-kΚ¼uomëA3n¬î+}!Þ¿NGŒÇZ}[3R99êɤºk¾rÐMÁ1™]$ÉRŒ– gykr*²RgþmP’Ø7#Z%\•Ajvʬì¡{a£G6t…9®7ÃÿèBåÇ0¼ E·àlv’\³gÒÎ7CÅTä[ãÅÊË)‘ØeF°i^-¡ck¤…§‹BÅ¡©³N5z[°Qž ÎÙc i>JZQ#z?5ŽBä²Ï©£­{~vȳî¹+3õÈx6<®-…ª=}SÝUyYYþñ¨ÌÅW(2é1Cͪü_¾"ÁFÙe›9n”X®¯Ëó÷!2¾} »œ ÛÒ¹~ƒZZWͱ1Ǭ械-¨ê5™ÍÓz)öd!ÝÚôé³9+bú@Ü#燦$……oêy½c3~ÐA­É*ÀNù¸M dZ‘ë9/S¾S«+»ˆnÌo+c+Àç?'FÃ?çGëø 0ÎÛC°†ÖâØÈiе;£t¥lŽP0^jT†.-ºñ#“ŒˆÚ<+ râ5+àžâ·Ø˜);ÞDQDòÒÐË.ì'ˆ$”}ŽÊG¶£{[¤ÇÉéØèçøŽÔup‹Mň5~¾ð@xÂ5±ù(¸¡=O@$ªP9:=·‘NaÊM§óìk®E¾"Z#¤f æ*ÅþÂIJµãY4¤•`oqlÆ"×=~ÜñšØä–5²Òz`Ç϶èóóâ+W |Åa«[îT¦Í‡¢plî¾å|U!k‹K5ŒÂ_„ÝÇ ;G}… huXSÞHÎhd}0…Ö±PtÝÛÅ¥‰x ìÔ{'l},ñÆöµÞJpôW SWK¬†]ÜØD1Úu¼;Sò zÁä Pr‘>À]Þ(ñáËõˆ Ñ¢a˜Y£ózlhRú=EÖ‚jœ­+¬Dާ• kÿºík ÷ñƒì'ÆUŒ%q"º™XeQNW!ÃСT‘W†°#æ1Q'âÉÄ9 EÉÀЦ¢Ëþªd=+­bÀôÊsÝrNC¨ôò†êF¯<S'Ñ[¸ç‚s*,_áö¨ò~Êm™°^ÎL{Úà ¥øÎIí-~à saÙW¢‚ß žÀÔÈQ¤0„a‘QÒ”JK = ëí KZbSJS`dµmÆÜP:,wìÐÁžE®9Ép¿ü1b¨}àÞûpZ¢*a€Ÿñõ½ï{ºOï&5³p¸ºÓå) '¸$4ž.Á)©®„Nä!¶RLÖ§‚•~:øªâmI:ü¯/2©'mý“¾·:5Í?ý8„ä¼ID&Úïhê494ïì5;t¤B$@oi²"Ðë‹IMåIòAºƒÂmŠ¡ÖÍÝ÷_Ë?ðD¹P~è÷ׂ=4(ÍÃðù~¹…?ó{Â~…;U§!ŠUþ%¿mtð…4â%¬Œ¨*‚òîCX—ºâÞz§ÉñÍ-oq…Mš¥¸ÂT,òäÜ=EÑXâçXÒ1[lÊÌý\D>ÜD1Eëv€.¿}މò…ª«ˆ$A‹Ÿ±Æs‘^}ÖÈBö81RRåÊt ÈzEbwÓµõ5»²jШ Aö¥µ™zª9eQÝ­½žÁE÷éoB}À×xxþƒà†#\ìzO6ÔƒNßãÔƒ#„§b ¦—̶ÕCIþ#E;uâ~((Mš b¬-ÿ ØCîz«Í›‹qá·í„"v}µ® ½ª¯há@?JË­0‘ÓÏ;»E6ª2JXZm‡ªwQ&ƒ¦¼Ð[ŠMår¾$~ýoZ‰óñÀ{ê›êÖw"|3iú?-±/xSäÂîN„fðÒ…ˆ`BÞ¡Þ™HÄ¥žÌU×OňxÍÁe8N±ÏÝVG%wN¥ðyk]Ût³3_ 6Dq¡h‹“ÿ<š™]aGå*‹ÁqW{(}Â릹¯dª¤æÚ§>¤Ø T8–­Ž³ÛCÕNóNâ½í¦Ï¨¤ÒÆò:µšÕiCõž¬…Š7Pa>²inÉÆø”ùIýø(`ÌÂ?¸ƒCñµºj³ªªkvÕc¨ék5G(çèqÖf:Àâ÷bJ¸g .º–/‰äÆkŽÜÚçųýP«®ÇÔl|81{8±³\eËèá#|,cÔç1‚×MM‰ÝÝc ÛÓ4DˆTL_Èø[‹9îù`|N7†Þ#L¹‡,±¬UI‡:ƒEÄ÷?zC³s.=E àÃÖ-U°NK·iÊòæ1}ôO4M™õyÇŸ©…¢~yøÆ‡_Ó¯€ÚÁærâk‘ÚâÛÈHéåtK>w:ï‘EdšØGÓ¤+aA'xâþhŽÏï‚SïÌ©‰Qo~õ¢ ¹+k18(>â|8»Ɔ`éÛx±¦Ëù<à ¬YYasX»Ç½þh¹iÅ­Úµœ ´sÐö¤ë®v¦6¿7má´[зèŸGNçúinÇ"vO}P;@P¥þЀª”WMJ(o_ßÖÇ|P¡Ø‡Í¯Ñ´ß‰'š3ÅýµÕ7Y`ZeÐ3|®œv©E½Lâû o!:݃ZELþ5¢ÊÂÇãÉT’w‚ÐCðmXóåØ7‚úß…#…U¡Bù§{÷>®ËåèWpµITŸ¾- h&©ƒ‡è5&ÖXå…Ie,çdg‘~VS‰LÒá¬.Þª—’˜²›òèX× v’þø:á—l6̦ã /3qшõˆÏÐÿø¨åS«ùóØà¯¡å¬H÷Ó<ÃJÉìÊ7œ®‹Š¢‡4¶[l¢3èR×ç¬|¬ÁŽ+ÊÂ?ÐBkQ»^kÁ†±ØáÓ—'Ÿw¡=i>|N!SÕjrÏ`D^.o°5+óQ‡«x†ü¼·-ÞײááRhù†zÛ, 5t|‚³¢’x8fÕôÁë’š^÷É Zè?®»}ØŽd»²c&þ4kEÉBí~ I¡9ÇÄ·jJpÃ@½¹Õ;·„úìs‘€E\jX1Âk‡:[Ÿ!²õE©Jo+/* @ŠaЕÏö®>Ääã o³#ë Ò{É—¾"íI :Ï3qúÉëÏ{à&X[HÏHJ³#o;vàñiñn€@¿µ>aÛÇÁá¬ÌëbšÞWÛ½¬ÝØB¹òÎQ-Ò–~­¹÷ýî]Hç|ènÓ|Tö ãZÊW«Ãf£ÅÙŠb¡®o*c=†ÚÚñ9U‰%R!9‚Äè»"‘‰†“£¾Kj×Ì…Yll1î܈lOµUXCUŸCŸôåLì½õ˜Æ… î«iÓå€TB>ŽíÚÍ×zê6†Âý<'¥ò >ZÁ‚*èýŽÑðè©]ï8¾ïˆïU$|ššÿºp¨O@£¬»êXCˆ=EžAp6ËX<)墆¯Ï7@ÃÚBæLtõÝë R¼~œý‚ÊBŒßšapäª,¦uÈlÈšõt|«ç¸¼CÚ Õ^zq¶(w¸»8®hß„=!µ% ake×NÐ->nñýá.b-ëÍkìYLé$-AÞ,Ñzà™I©Ä°1ÝÅ v.´Âw-„R®²š:êø=©H~ÒvÂsj(»Ð؆òu`ôÐ áã `žÔ ,¾­ž¿=9œ©¿Š«ª ø˜CìÞ™° ¸tbÙ±Þe£¥Í;)Œ½3{›cÇtûù-?yC,ùϘOœŒ‘ë>ÇæìDe—rÏïµàÈÜE„5Ƽ¸›u¤´Œì£«!%]ÕT¯7ènÍ3jy±YßËùìó1ß'i®¦»â= ш};(Ä#qÆÃ_¨—s¾J>@íô&Ó¯å^™oá2È  $Ü2~½Œ°Iõ»û" ¼fÕ“|¦bÎKÜ£i°ÏØ]Kîîr¼ßÖÏY½L4.†ˆc¯œ«·÷¤ž.<§_“2zø•˜‘PóÈð}}Ã@(sQ¹_ü+ç-ª×ù²'ÙÀûŸAÓ°ç¯t59ì®Üð»O| ¤ƒ½ÓGé¢7mYG º¥?g­‰’æ„pF[R&bí+‡UØK¥fG\ˬñ´K-ˆûoå3åCÆeÃo±5s‘š(Šò8%˜ã(1wg˜#t™´š¼5²L Å òBͯÍùøl–kàWP>_pcóZì$nÀ›Öæ‚ý6h”[Pj¢eYrX¦”öÜùø£3#C¾Pª‹û¸²Ò^¥Jbk¬L|"˜ò¬S»~ˆ’ø ¿kD°ßÿò£³+;4òÉÔ­©`Dá•›½ÉùÓ¨Ê%‹%Nÿðòä2ÝÉæÝŒõ™çÙ ÜÀ…ÚÒT0,zz ‡L7úcÀ”¬PßùÝê#cÏê1wY½„£R¤µž°=ê$=ÕýÆ/`î³ùP@üÜ/:Õ  þ['(ç®…èÝ6 A`n¯âÁäú$Íd˜’QH/ЍëäPuŠ®Pµrç2Ã%iô§fÜûê‚wXÜà{öX(¡K“ûP,\ð¤ñÉËz’¯©X8ü)Zwå^1íDÏ=mö¸]à˜@àOmî!ÏO)Ë—„)äùòÍȸ†‡ !ÚÏΘ+Hpû X(§*½×ÓÎqþd¦¶B¾ö˜¯ìeÐÞóîêRÉ:° –B.WG´¶hà ú~Ú™‡J›¡ì<×4øTEŠFvøŠÝP3é: Rjp9‰õ'M­^Õ·P™$·Ho ï¨ot±?¬Mdž’Ž’-·ZÃñƒár⻜L¦èQ()ΰP…ÌVræõ/ÃÞs+¥|ñL¢Löhuk@ê¯ÿàÕqPMG˜3ŸO› ÒkSñXX&ŽÇÌXU1f2µ·‘u}xä›IŸ>U–çHfÆ'aEÌì´©ë¼48d¤»[Å»ŒyÄ·—jƒÃ¡îƒÙ§m|õ‰‹‚ñÚ{·&¾•…aUî†ômö¾–Ü/”,ÚWXˆÉè Þd=Üèƒ÷¢Ö‚ª&ŒŠk0Û›2‰mÌ4s6y ¢x•W/¥%–Düt:îõÈÞļÁ2kõ¥ÛÏüŠ[OLËÑÚQÚªvºOBÔ+± ¨ßg%+ɲHY)M1GÝVõ Är@Îc»UCìPÒYÄѽ͑¡*PÑ,‹?O»2ÃÉÅ€¾ÅXRóp&ù ÏŠ\ȓ̴ê~¥·ñÆÑÀÎ8ÉŒ/?Yœ:Sno¬µ…LÂ’c£nÀW0×f¾œˆ¥+ú„‰ö_v ¡F“ ì»˜Ÿñt‘p ‰4ô}ïód7É3v¹'œ|æ›e®fc.åéÔxíWt)>²û(IäD7;ÿ8%ÊQÑyÁþ&äôù¬™íw.²¯âÂ㋦Ö!|“z[õCš0k¶psà Üɯ¢¸¶µ:ÃÕW• ç Ü<ºNÉ/aÑÆ üù×!l&FÈÖƒ’©Èà!«¥>Ù¿xÚ³ï—Ø1ñcßÛ„y¤&Ãý|ýCPF¥Â‘,}Ž!h!÷øÁ˜¡`¿~¢™Õ¸8 }7‚‡¦~¯ ?µCØŠ›ä(kÃO݉€´ÛfÎaòÌœ]%Œ˜hFÎ…à•Ý ú­k:Ç€s¸,ÕÙz§eÃņÕ^5êÈzÄ_©¸Wø"™®½WwÞ«µXºÇ%Hä*oaûùm½ ÝDhÎ/YÎJ”GTí >Ï1wµCÊÖd¦FM±£Ưô¦¡ª–ðO&ÜšY¿nŠú£Vý?³Ì}­Ó€‚(þ`¯Ö®ò8¥æAÛHA»-æ¬ I··6šÜú +§õ€6@±À²Ch,¨»xÿ4´M)žnØ)(Ë¿+ ¤«HÊ«ýJê8¢âî¡÷/?ç‘XÑ€#ó`që7ªÜAgbbFKÌ ”ç»3šÆòP¸Z§:'§ŒH8@ÇvÅíXâ²(\ËÐäÀ­V~o‘Ñ4§?•&¼ÊÖ°ºÛÑ0º}ÁÓE¹cóÉ Ý`õ{¦¨®×2SâØ}h™c–¨%Í“FøÈnà·rs‰p´†%±ÄÉá±Ûé¢Íå@³us!EqwÐ:ì¤"fò y$´Jq×r4ºÆÜWÑ{¤ËûÀœ9BàzÔsYõ[{Òf€ÜçºüØ+ßüï ±êí˃Ðj1DðUo3==‰èÅ—”ÄMà2–Û„üÌ¿£”ú?=¿ endstream endobj 1538 0 obj << /Length1 1408 /Length2 6067 /Length3 0 /Length 7023 /Filter /FlateDecode >> stream xÚtTTkÛ6‚ˆ€J©4n:g(éîî’pb˜¡¥SºA@º AééùF=ç=ßyÿ­ÿ_³Öž}÷s=÷umF}Y”5\ …Äð@xÁb€¼¦¦ª ð‚ÁüD,,Œü/7‹Ü @!ÅþW‚¼ŠÁú lž& ¨¹;",¹/ü`°è߉(71@ê°4y5Ž&b‘G¹x»!ìì1Ø1¿ì0"*zŸûw9 ë wCÀ H@б‡;c' N€> †€c¼ÿÕ‚]ƒqããóôôä…:£yQnvRÜ€'cèÁÑp7¸ ð 0 u†ÿAÆKÄØ#Ðüú([Œ'Ô `N‰ÆV¸#mànv8 ¯ªh»À‘’5þ$pÝ á…ü§Ý_Õ¿!¿‹¡0ÊÙŠôF í[„ÐVÒàÅxa¸(ÒæW"Ô ÂÖC= '¨56á÷É¡€’¬.Åü æ†pÁ yѧ_ù~µÁÞ²"ÒFåì GbÐD¿Î§€pƒÃ°×îÍ÷g³ŽH”'Ò÷/ô±ýÂÆÝ…Ï‰pu‡«*ü•‚uý㳃c!°È}î À½`ö|¿Úx»À!¿ÜX~¾.(À …cÿˆ|ÑP8€qs‡ûùþïÀ¿-"°AÀ0€5Ü$ú§;Ö ·ýcc—ï†ð€±Üƒà_¿ÿ¼Y`éeƒB:yÿ“þ{¿|Êʺzò\ÿ'&'‡ò|yø~!0@ÀÀ}ì‹ß¿ÛüçþÿÛ«Eüu8ð?U‘¶(Ûå7ìíý Äã/^°ÿ¥àß#´PX2Ãö¸oðÈÿ·~—ü߈ÿ«Ëÿ‹ûÿ} %w'§ßaößñÿ# uF8yÿ•€å²;« MVÈÿN5†ÿѲ&ÜáîüßQU «Y¤–ã<A^°à?­„ð‚Ûè 00û?Lú{ØN$\…Füúä`«ÀàÿŠaesÄ~VÐØý AÑX b~/÷— ǪìßçPDÂP6¿äÈ/$ @ÝÜ ÞDXB`-!À‚Õ­ Üë7á>^$ ƒ-°˜ý[”ѯ5ÿbò—è_}aînnØÁ¿é€ú·ý[óp¸F4;…‚‰‡:¼ m:®‘¥õäY}/¿“qlÂÏó¾Èò:¦KqÌj)Iÿiöœz¹Òl'DÉÒ¡EKÎõ8çãô¾ïJí½:oÁCž{Jëv÷¬¦.¯L$ûÑ1M‘¼ÆÉ7N“c+uëÂÑ¡&m%”¶±ëÒg!yÄö²c&Ù“õv™Ò}µ°&­æÖš²l»t¢F_—õ0o¬{ V…~P±å.;LJ|Ž1œ®•ɤ.Ñ|B”äYMºØÓß;OÖIߤæ¼ú9C¦(ÞK§ HPm4_pë<·Ôc+“Ü×Z™Bþ®¾f>£Q¯|AÊ›*ós‰Cöcûd¢-*’w™_ŠíQé'Bí!"é¹LvQ¾6 JzÍo¦#úÇ(fñûWœˆ[GÙ³A쟗íøÈêG;dTÁÌxxóàSù䜞00ñÑeHº„WNWÑ^Fs˜˜¡=p$"©{&¬‘¾çýÁ“®ìZ< ­»ªã™¬Gn[¬{¬~ÌÒ"<_X§Œîº‘}4ÝÏ?ÊÉO}¦cUœf›’e/™+ó­ÖŠJôïº1ApPÉp[ôú–¤JŽ ½«¯õ²Ì½Ï䦹8ƒ 7øb²âõøã{Ìœ>ÈIžç3n<¤HP‰”ÖtØÓõÇèH¶oA¬ø&"ûô8dT?Î?àÖ¼<x›Ÿ‘þš¯¥åá y²û?Œœ˜úç6O¬ñË')µà:ô2êF°½P{Ñò­³ƒ‚<ŸÏy™;YJO,&W2ššœКž毟LÖYt¤û‡QV{öF§U!Ûj‡+C³å%œ.¹¾ÒG7Ìé•[Ò-Ž76²¥Bj̱a èçŽÈewÕÜü]Áº2À1‘¿­‹.OÖËù§—§¬+D«Z_ÿypÍŠX˜;NR|>Å=¢u ª™í`uîa„ÂYeé%³Ï/íÕE\Þd ™H|ì.î” ÎÔ  í$8${ûq'éö2¾4éÍ™ŽXVÝ™µL®3‡í˜òóþ¼íp]t%|å@ˆ‘cAE‘F£&–ý]À“™ô#ýiñ-tDêÚÚæ—[,Š䌾z2YÎry3K›”©ú«§‘çK°Ú“ŸOͯ[ÍÕ(6-ÑÖ³Ý í&Ñ!#Üõëb\[Ü¥``.æ~X®Øö¤ hP@ËÞÿŠ÷¡UË‚üê¡ÏêCêW7Œ}xi ìVbe¯Òä?öˆM‡“]u=XèöVzàÚ>KÒÝžŽëäF´q¸ZŠ“œ½FÏá0ö¤'åTZC[–Æÿ²ÜîËh¾‹ÁZ‹ÌuM>ßÖßÔ!ZÆ9ïèiO-§1 ¥ô}ÌöÄ—:c¸¹/Â*7ëåLu…2®ùµêÞoFëé¡o¢Ïª#%E¦ŸARóLw‚ë¶=q§)½‹úcš,¼QÅãx€ŸÞ·M§[zjÞñ¤ÿ"ö©º{§! îܲ€F!«a9hçþ„¯aRS|V9OÏë\å‚ð H›íc!ÃV%ðÆÙX¨Ô¦¦å+Ó$#ל#(·Ätð=½´Ô±v¹RÓ€Y«ü—iy o&Ž!âFÏúŒïœrZ˜<“>»)}t GÝìudH8ŽƒŒ®[üc#fÙ¤ñUÐúk‰ù»·fNÞn¥:®‘úö¡yÌpsó]]ÃÜ:UÉ&\q0|¢ÐÜp­ÛÑ×ì`f;w'”"l«è9•mj$˜ž´É9ÙUž†Õd•ú=¬þü9»Æž™2s93Þ@¥‹‡œM¢ÃÎJÉÄGÌyåhðè¬ÿà)µXƒ?‘¤y™âáÊÁx…u> ÁÖlù’'õB]œ÷~þËÈF_Ûrÿ vOC?ÍîPáóër÷ž€qç ¶·º>Ö° 4käÀŠ8ž8”ϽT⬨Xø¤¦:¢aBWû¼öÔNñF‡TG .ÄýSÄYÉÌOÙ 5¯ùÌ;ê³G^9y¥V8 ±4tX±^‡‡óÓsU‹I¿Þ¿YÝ+Àz¹Âó]ñÉ߃¦‹B¶,ŸõÝæ[ÐfãEÁy.´R‚ø ¸L]7·Úœªe¾ÀŒ4›–qPÞ]å(ðçKRºE%ÒË3åÊQR­sþMè $Ñ`Õ„ ¹/ôBÂ{ ÏgÏ?‚Ì> ±2±…ÎUû‘…µÙ=ðå‹ÿ­ ¥ÚÆe<¿mýñ©íí Zo΂n @¢M¿o¤—îÇÃÀ.'å%“™“¾•—‡{u¹¼~m|¾4E SNTUõ„”£¥dLw™u=ÇÆÞÑ-v›æÊ l·ã~ñ£ãb=¿0$ïQwúx© #ìXîl }±¼¨¾1M6aSAgJõˆ-$ù$¤Bâü‡)Yî]ERí" Yæ«/ØúbÚHµÍï–4Ë©Ê_] ¨yä#²Tk˜5Þš·_¤'óB†W.ׯìjqŒpAHP0¡A¨vY×OÚ`ê†Ý›kIFZ=²+¬ªƒüzý³âع™²V‚¹\j¦é¯òIVÁÙ”vy îò!=ÆI&ö*]QÏ5x·—Y `nþtèÞò™ªzƒT QuýlS&36ï…«ØÒ,÷¤¢qõ[ݦ½@{ÙRÞÎÑo§²X¯x½½–»‚ŸÍðãºw^¸ãI}óå„£—ÊØ}«è­™Ç“¯,ÁùfÁ úÃ, is’é×¼„LŒM² Ö #^K°À§ì;„c¾²oÈ«Ÿ–«?“!¸C‘·Æ¯½Ù§w‡qƒJý6gÍ|5CÜEÆëLG¿å‚™[»ÛLâŒ`NÚ~¢k8åÚ3¢æKJ§j5S’„GIs÷ˆÞV©‹F‡ÆÓïL’Ïïî9g˜Ž?ëDÞ”z¤x¤9ê™zK¯5ˆ¥ô\£ç,‰õt¸9A1`w<0—JƒÊÖXmc1õÇ5Ó¸hÄnçÔ%¼¼ÑØý¥þ~ô.?ævÎz£có°S,ì«Ô†Ùd3Ù,ÊIlü¢ŽÛ©¨‰7-2¶´Š9˜ˆd?ÇÉÕ¸çhVFL˜ù1k3_ðeîÂJôî0«wa$ºßIv¢?]€3rWÆË‘[÷‘WëÊ<_^èìèxÚ4‡ö”„lX;5™É£I£˜«baáNí‚NzŽä§$^A® 9Eæ¤N\Ó!Ú´M§ÒJ)¦­¸Pã¡o*Î!O7ó_š;åLÞ—‚=ãhq‹m®›Ú&‘ŒëÓƒÚ°Ò‹ò1ñ}œ®ií·>Bk·HµG8Ð*TÝ7tG\î®^ûiyÔÙ€|¯QˈSœoCÕæC'‘"p¯=nv?ä{ó–[DòúïÎV ©¶÷¢Ïøïϰò?gò1}äðBc þ‹Ë]‹S½¹ÃTùÊ_ðF‹Œ8›%·ºˆmðãñ™ß»?g³#.î…•ü—ôž=qÀ*Cblø+KËr¸›ïL³h ׂAPÅeÙ×’9_ÙnAê#ŸXŽ\X*´8 \p`{‹Ça#]†ƒâ™ÎÀWEöÝóa2uEN1]^ÿ4r|Ü@«02•zܨ©;ép«)â²›Ê7.í4ûP&;5ÑO÷ûÏ.ç\¥{¢“ “ùϾW­ÞŒuÂ/h¹ËølnÕT¿ö"©…W¼³¶œ‚x2ó שze‘á Zß Pè› }&Ù´Év©{wûk8ìú§•cÿ'Ìfͼ†åQ€ƒJh“w"|Ì(4j\zóˆw`ÿÄpðéi|v„D¬ù­uÁõ®>Õ½ÛWŒÌ“ ñýý+L¢(/wEÛb;‹Z* £EåÝYÚýµ;zëÙu×™|Om——‹ß¡ZU›©Çž wÅ©»|då³ýãfèIy"›; 7'^ã¹45G>7'ó†ˆ7$sù:Þ õ®öYÕî|OòþƒÇ ðgˆí‰Ù$Òˆ•΢zñã> u@&˜Ù°ýšò5Æ…M¼Ö£ØµE·J)KÜÙÞ¾w.?»²j‡kZGÇ»áÞW¨IãAoSòµØvUël¾?T¹öØWfc^Zál×È¿ð)5 ªÚµè[š %ºÿã“qÝ´ÓÕæžhfƉJJý`ÔéX*K¿4ô“Ã8ÏÔ®¿˜}Ê“ÌÈEƒ ú@!«Â÷ÀôË©¸ÔúQ¦‹¤‹$ö¾Ó9aÃ,-{^‰!‰œ)pCyW™®ÖÏò¼glH㢚=#)sÊ30„C›s3²%Šú›Ÿ…×y°‡žm¦´­ñ~½èlAý4ÖÊX&Ô¹þ*ÿ>B;­¹¥ß¤tv1ÃêKh+hl4Eµ¹^}<˜·ÈhBÿµ=tµÐóÜêÀT!³¸2Ja1J’§&˜±9榯øbèN÷+rpÚèó’4ãŸJ/™Â#ä/‡dók&Ò eð¶ýE‚Rh½0 9å¼Q¶†µÌ7‰-½:}7pj†ÇEÞ­™}XåÚ½Ð=û©÷2¯rx®þj÷ÍÇ‘$UÀS– †Pý^Ø6x©Q¹ `wn|MüƒäÑ·”Í‘C´÷VK=Û¾™©¬Wm¿§ÙÔ¦­ò«mÕîðûQ%܃B«¨µÃgŸZ^´KŒ9Ê”° UÍ>”U ¸þB‰'Ue ÷3õÃçK[ÈÀÑS0ysñ.ËÝ7±–.YÃÝîÁh‹”Z}Á,¾ZZÊÙx÷y‚Ú}A®èk1·õÍ]¿»<­¢.üå¤Pµ˜2ö,È£ç9Ï N» ŸÙl¿3ö4ìó½-Š›JYcHãúuO‚ó±üLuË)­‘¸ËrëÝTŽÅ–øuÝ Tj¿ÐËŸ žÞ^û|I:É9,«\&ØqKpŽÛ¸¼¹=”-ùpäCˆªÄ>)§Q¥$û€HÁ1ˆë˜kÕûþ†4Rz„EA6]¬\ù1C\ çÎÒO!.¬¥€¯®k´m›rãžZ±ÁaXŠÝœgzºµãúî˜+}.MŒ,*#çÓ{¢D–¡S½Gè“$? TfGŸ-'ÅÅx—É+üÜUûT03âU1V©†>Êb,Ý[?g¡OÈZž³C[½¡(žE~m¢ò®Žäë…x{Ç—aO“ã ÔŽM4É9SE-g}¶`ð'±ä/GÃ9ÊõRo´0¦ _íò¬ßÍ[Þ½G›5!FöŽM˜ Ý×ì¼B¯úP c±ñ: ±ýN™ÈÏnÙ&ý‰¿¦ËJyDö3Ó%R;¦~ÏÃT&O…úrÂ:1àl2RùÁÑóh¦¹†PAÚí÷§sg“8‘D¶Å¸|í$ÂdÚ‡‡Þ)‰£C >Šf<Š=³ÐžÂïy˜âP¹1[ !劌È4¾ÂfS¢•ùy¶ƒ=¦ÔéS¤¼J®oNÊÒb©°ÉçúW›†` $=¼€\÷‰!¹+Q CùÁmåÌd9*†¦Ë›óÉF²lùßôJÏ]ÇÉRo8x¬·…pÄÝ­%üV³{küÖHt51üÑ$¢«…Öé¡;Y_ôZ >ªÑ]Êj¦Ö—ÃR”‡! ééwÁMi¦õZñΈü•ÕGĦızøðW>í‡ßšŽÑõô.#§]Ì7¾]ð‡ é©HSòù.a%¹ 6.-ÒvÊôÓ¸”Î^¡Õ‡}Õ^oª­™«8Ï<5ÅUËú‚/fÛë'|ÞOÅ›~@EÙ¡ýÍ>´XñÙ'DLî†95'¹œ×c\ù©‘' gƒìþc Éî6šáÄ›ÉÝ&楽SÞ‹ºïë…6¾–[]¸°ê µ?ÖW›²2߯L4¸ýH5iYsŸ¦Ž*ˆûx3;éóÓŽòîÈsn¹ÒûßH”C_hO*ô(«ï›ß˜×j‡õ–î™RÇÈÛ#3RÅ8wK×ê¢dt¥3SC^é(R)êï›WGŸ>ÛfòVr‹kB«åk©N÷Ãö5íuu“sǼ4‡ÓŸ(xÌXlÄ4æMžV•T,©•s¾1X.Í3íÙ  ›ÞE[ Qô?I¥¡‚ª”•Óì3Oƒ"p"Þðâo~‚ºÓ¿›âAñ¿vHâ& Ûî/ƒ:ïRÄo`ºX}œÂTMd¨1YA]Ÿ^/Ö§ÐÕpžî|{‡Ë&õЭτ>“ô•û6UŽ¦Ú®WŒ¶Ûz}ÎV×¾|šWÄ“á*#¾+ä´xösTçÛ»öÁ[¬©÷Ÿðݩʦ~™yø•H1Ù‹Ó4‹œàh§Œyfµ½k¡¤u)v¼ $o;gÿ[@yø$Eè²—*Û\êNÉø¡} h 2ª4kžóP¶Ò‘ G_ÚáµÊrÚŒ—þ …1 .•bƒ.!ÊÛíѶwÍâÅÌûí*À½;UÏ–Õ±—?¢Ž:”B‡#ÉúRŠk¢ï.C§ÂÌ…Èü©Ð'¿T§¥˜í`}n™sÞ¶C“¼ ½›bÃâä‘™õCÄý@„>éâ6Ò’ën&r$YÝ:î¹0ëO’Ý+sA̱7¹aQ™ü ¾Ý[=^ê튿B$­È›-ãq–2NZK€ýж4^Y²vyw±Uj]V$ñæÏg^/=ØüFŸ…»ù4ë 9R³¼ìh¾w,›~¿&¬:KÙ•¸Xìžå-ñ% ‡%÷Á•rÏdš*ÿqçÈÏ(Õ—_*·ƒyUbnÁoøfÆ$› TD-õáÏFáÕ]%ªä—X뮘Û¡Yÿâ2º§:}« Jš5§—ÅŠ6¥„dW•äµßŒ(HJíŠfâx­ÁÔ¢é>ŠV©yö*ÿã¡ú endstream endobj 1540 0 obj << /Length1 2940 /Length2 24743 /Length3 0 /Length 26377 /Filter /FlateDecode >> stream xÚŒ÷P]YÓ #Á-¸ÃÁ!¸wwwç w 4X°à–àÜÜÝÝ-¸Ü“™y‡Ì÷ÿU÷U°Ÿî^ÝOÛÚ*2e5FsS ¤ƒ½+#+ /@LA••ÀÂÂÎĆHE¥ní þ#F¤Ò:»X;Øóþa æ 4qËÄM\Áv öY7€•ÀÊÅËÊÍËÂ`caáùŸ¡ƒ3/@ÜÄÝÚ Àu°º R‰98z9[[Z¹‚Ãüï@kF`åááføë8@ÄèlmfbP0qµÚ#š™€jfÖ@W¯ÿ¸ å·ruuäeföðð`2±sarp¶¤cxX»ZT.@gw 9àwÂE;àß™1!RÔ­¬]þ–«9X¸z˜8`ÈÚ hï>áfot€ƒÔdäJŽ@û¿åÿ6`üS+ë¿îþ9ýÛ‘µý_‡MÌÌìM콬í-Ö @IRžÉÕÓ•`boþÛÐäâ>oânb 21üÅÜ )¢0'øOz.fÎÖŽ®.L.Ö ß)2ÿv®²„½¹˜ƒÐÞÕñ7?qkg ¸ì^ÌwÖÖÞÁÃÞç`amonñ; s7Gf {k'7 Œø?&`â‹Ìè àdaaáæa@O3+æßîÕ½)Y‹Áøù8:8,ÀIý¬-€à?ˆ>.&î@€«³ÐÏçOÅ"++ÀÜÚÌ` ´´¶G|ñ-þÆàæ;[{ôXÀ³Ç `ùýóï“x¼ÌìA^/æõ—Y^DWFK–þïŒÿÕ‰Š:x|9XŒlœ,ÖßCÆ ~ðû¯› ð¿äÿ’*›XÿCî2öž¿sïy¸ÿ3´ÿ¬ à¿À³ оŒ¾> '‹øëÿçøëÈÿ¿¹ÿíåÿmôÿ/!I7è/5í_úÿµ‰5Èëð(»¹‚×BÁ¼öÿ×T ø÷*+Í­Ýìþ¯VÆÕ¼"ö– Ëhí"ií 4W¶v5³ú{†þ×°{µ=PÙÁÅú÷e`7ìÿèÀ gf ¾P\À½úKïÓCJØ›9˜ÿ^<6N.€‰³³‰"¸õ`Ä ðao¨9Ðó¯Ñ03Ù;¸‚Àéù,œw”‹À,ò[ô7â0‹¾ n³Ø z `ÿ±‚äjò¢æ0Kü‹¸YÌ’/l-õ‚ØÌÒ/ˆÀ,ó‚8̲/LNîÉÉ¿ 09…&§ø‚À\”þEoÁ\”_˜‹Ê sQ}A`.j/ÌEý¹h¼ 0Íæ¢õ‚À\´_˜‹Î¿ˆÌE÷ϽTlibž½%`v&.àa´v±}9voú‚Àé˜:›˜ÙÁï4 ×9û¿ò¿7ð_8ŠÙ¿ˆ œ£x”A <¿eÖÎfnv ððüOÌ Žkæê¿ô~‚/æ?RO0³ù d'hn tº€_/F`Î/I‚Ç–øЬ¿YíÌM\¬þOÿŸ2®ß~œÜÀwÆÿ$ì¿<Í@&v/F,ÿ™ƒ_×Öâ‚]Yü9~Cë?¢ƒñ ädÿ Ý_r`ý-x¡ÁùÛÜÁÍùh`Ë? ØÿKàѲòr´þI,û#> ¸H6@p]mÿ€àÖ€þ€à¿€ LÆÎÄÌùƱ‚ßÌ/ìÍ|Û¼”ÜÞÍÎô÷5oùç1p•^hƒÃ8üqŠõw•_ÔàŽà/ûÿÌ%ë?ÒÿN%8?Gðœ;¼ ¸dŽ ·?ææw•^ Ž~¹ü¾;ÿÓZž¿®@sSÐb³s¼(þžçÍŬ¿çà.²‚ëò‡|Èhgýߥàümtÿ£—œ`'.Ö/‹Ä.· è?ÃÍ Nÿ%,ø-Éìjå ücGÀµtõpøã؇Û<î@03?†|Úóvïõ—Ëû…Ø“7ÐùïPÿyÓ˜¹9ƒÛæú×·xÿ‡ÿúÞ=fˆsÓf|!6Õ!Í7_E=·†&¨¶´Ré}æœ[ÜîPá’è*3‚Vœ¯D’:_/nHÐþž'}ô9hø÷¾1Q¥éÞ÷Á(^ul« qv§w¤à@ä[1£ºð¶ï£“¯f -td›,UŽ“Û[Tå<Ìn)Ïo=% ƒaÓ[*Û•\rH%ãŒ1Ñú_&©rM3§ðÈa]‰áß`œz¢MþºšÀÈy&•§Gô;Œa/ôÑ]eûp;å½T¦ÎæÒŽO‰¯‹G ý cpŒÚGt7YwƧ¨p±wÖ³¿4…!e‘ñ5Ó.[z¥µj”}]W•ûà\+ëfN „†°s3±ª¸ËÈ™\ »²É( ÓµŠÝH¼Ûj!ºÔ|¥Ùaa“B4Ï3þí0‰¢cuPßásÿÝiiàG/ãuXJãÍ@Ý?­/B=BD–¬o$¬ô"xÓ‰S`J\‡ Úµ€2X¯æÝ“Þ>À˜„òû‰Þ°®°°è¾…é‚$:æÌñ=ûàW^sªØº:‰>òÀ0~æR|6mK9=-À·b—0ΣÍM—èˆÈ]Ž¥Qá«ÖL—0Ÿ®–ã0‰{‘Ê'¬sΞõQrÈHumÍT DêyÙÜòä3k–k4Åqæ«mF1íÖö‹‡vó\™ï®_•–Šbï9hÞž–{„‹|XSçÉhU ÈnwQJ“‰‚ú|½1Õ…`Jq¤.êNfW‹¦¥.p·1ÔþùÁƒ¡DFœŠ¦pN¡Gnÿ½ïœÁ¬xaþ×aœˆ_ulÕ-J7´È¯—>Pel/@Sµ Ôiž=ˆª©ßäQx¯BtÍŒmýÛ ô•ëáè®ðqF§Aƒâ©Éf6>]¬ÐFG>YDÖ/kxˆ|Ÿ'ªJŸì®ö¾¥€kagÁ>”Ód,ËÒc=O'fÙ¬{g ß‘ÆÖ T¸èW/cýâ-Ðoפ\ רGÝ~àJÊ÷”ÊU±ï+%ü‰¿i]I5ý1‹lf Qž ·J/ëúåFá;:²h‹Pí x³]ô(xˆ þ)¬þêØä3ULev‰\²FÞ*tôÕ§QTY´J&˜¹îj1ÙaY×ê.nØ8®*DŠ@ÍÑ®Ñöƒ©ié)ÂÄ‹(æâ¨’3–ä’œc=ÎÔÂ)}+ŸTø‡w†SÆŒýkù3IXYŠ}áÓžù›öìN¾×ÝÎf,X.焬”ïÀ×Ô|ýš.4€o,tÁ|€ƒd4˜£—ÔzñÖS™ŸƒuŠøBÀuäFb …+­¡ÞÏYÎuýþ“†Œõ'œïÒ®åÕc~W^x$ÓOþf$Tú+N'úÛJîdzéF×2y_O¾U>`÷n›E°¬—ž+ÈÞ*dë°” ƺûp­à}œÖ¿é@9g; |"gǸ†þ˜©>®#Ç´(‡·?@×Á€+õCÎÇ$\LWT*«‘„Øk5RŽ&¬‹M‰eB3¥‚KF™’t¿wWVϘˆ»ª×Žw0 ˆºé#€Ç—œ¡f£²ühZéýþZv?ÁÍÁ_¡Œ­Ï{Ù-!-çý$×›OMo>£ôt¢”Ž=ó´ ­uçË}Ä1£Ãû9r½¦j™íZN-T¼ña¤ûòÞVýÀ£%q»™2Ç\Q_¬>½`x^éjzD¸P‹Í“t÷­™¼ùxÅ¡Ãÿ&«&st¿¨€pÕåÝKB‡N®ƒ÷-åÑíèu_UwyÛØ¶ÇÚò›CI×  ÂèQHÆê'šÛn®¨Ý±$,.o +*ül²9|q¿×uPûü2€X¥(OÞžSí܃º˜ñ`âke–”÷MÏ>ž@?MÂ&íàc³Ìƒ•âÝ÷iŸM% j*+´¼»Ù”6ŒuÍçvê~r…Ã}»ná:­©°r¼‚r»ES*–¹T˜7wÆŸàºsW™-~ue‚Z¨”%ØryI4EèÔDå™·ùKpŽ91KIJDòW®3A|>?Û‘h)gµaì%aÈᣠR!BÞú¨Î:$ wt«ãÒniB™Š<½“óuP@2œžHÑB_y"ŠoAñÚTØ}æ (Í©2l¹6qÍ"…Vb=Èe΄<#ýXËîEB‘¶a†¦ 03*Õ£û¸¤mWöÜè=-ùTr[JÞ)+X|5«)«%Jä·£I÷jQ­ÁŸ!÷$pùˉ*N=NaK“dLtI‹r&Ón‹ü«±Ï›WŸñŒô†µ5ÃÑqû..Ur*QÔ•Ÿ¹çÜ"0$8>Í;¿³J¼«OtÃ9‹ ‰6¦ùÀ_U®§ãŒ„-p¹Ø ¤W”MÜǼñ5†°¾faõê–²’¼)Ùì‹Á¨ŒU ï3u ãóY*D,WaÇÙÕÔä›Ím Ÿ@EÁ¨PbRÊZµfh~û¶tš$ø°+,Ô2[@_`U˜\rõNNòF=×ô>5¾U3ðˆdYÑ‘9o:^³DV¿[2•<õSíñÖ„C…÷ë ? ”gÝI³°þË`! ÁÅÐö(ÏÅüCº=ªw|<\yþNï4‘|–7¾ÁôÓg¤È¼’`wEñÖ()nJyë'êD‘YKÂ5{—ä{Y„XI¥šs~9„­å¡¥""x?ÜÃß-ƒò¨wjnt¶f¾ÓÌ ChÍnS·ç±Êžð±?1[#XÏ»!˜ftŠ!¾íëö‘.œÊf‡Dôb:×ËñlX_req+/ÉDvaÒãÈW›e3õøHop-.8VàY‰V/!õ§‘‘øo–òÑs;êxxâcè¬K!.qJT -î&bce-6$KÕ\¯îÐ’ˆ ƒê0ÇŽYߺ1]¸ÑoÌ‘ß]ò2¼óø>F…èÐT¹’ã ÝÏ’ê„>Ý¡Å*é9r<¹›²°|²‹©ñÔôúU3>–In@áí—òÅÑý¼%“8,>íj¶§ˆÉY”'‚Û¾^G¬\Œõ®ÛµÄ\˜âºè-Ĩ­âûÉ(¹¯9|ùíû“‰ @É;ZX¤ÙhÅ‹ÈÏ|«k…æOe÷G å¯VÞ4Gò÷~ÎMÚèÁ Á,viÿÌÃ_#‹"&aª¹—gµÚ2ÐM…­’8,Yè ÜÒ½>†ü޲$®…|Œ½ùZ™g†çP7Æ…ç=$ñF9 Ê¡ó¼Ö-¯âÇÂÃ~—‰_}ëH…a-‚‘3 ‰µ–B©Ù8<0ŠAÞHÛ”“lZ'˜ÕK¡½‡J<¦Ïù[äJŸ³1 iu½‘Ä0XbþlìU­R…>ðQ_%©“PòMÉ¢µ:ÎYÌ®¡"àÊÜ(_Á8¸ LJý›b£wl%<½jÚô¡žsaúC¿Î¯Ì#' _sÕ,raÔõ¬Î{å»KÄaIH ‰¼Ã‹§èÓ ¹àö)4éhšêAH]áa4™¹UWªüÍçäŒv½":înêÖ‡«aûLä*ü=šÉ“ÎZõ®3mçw“+iÌöFöIвò¹8Hð´ÉˆÕ;9?G?!–×(ûÈIÖ¬,œÚ¦›.wÚïûãËWæÀ/˜häB6ôø<„c¸¯ŸÈ¯,6nçq$^²¦R¾Ãt¶y>vIÂêì½8·×]~“Ö$P|ýÃåשC:–©°O¼×4<™˜i”®<“Ö;ÝÚÃ’m\{¤USÇPKåTsJÆ1ý«ÊáÉtjy~ǶWõh Ldßÿôïow“ké-†û¼½ŠÜƒI׌ªE½+~¼Ï»drŸl†‡…Ú¿hþ5ó¾KÒ$Ÿì-þTbòÂ{–gé·` Z©|ÃØ *NPŠû>ÚªÓ4œf½æËâs"´ŸÝt tÉ‹±&jw8‡RâgºÆ …6£F½YÅÔèÛ‰ò•Y»üI€PjlCHì¥²É ó?B’@´g5”ð$À•-f;GEN9nH­G`¤/]×Âì²I¤trùªnÃD%‡[Œ†_[O÷N×e,–`Œìg²NÒá>Ä-Ù$¤ ü¤ÎVÑD6¾Õ®Y¡Deý!É}º€èÜ Œa€,ë5€âb¢Ý uPO%LÞªD‡q+È_ÍùÉË„  ¬#U<5ÊGÂó*†ÈàUñ®NT¨0g@ÂÒÊ-âMF¼ RfWpÝ€¸´Íû¼×.ØÎØAž‹ÉˆÛL‚ó£Ó••¹#¶)ó n>êäJ þùO_Ïqtc›’ÞéÆu}uBy2fÂjÒÔÉüÏ0Í Ç¯€îöo13%ƒˆô74«JØ{.LÊEȼ¼š7xÏ&è±²ÌÈò=Oa’ƒLGž¦#Ö˜-üØW’Ó~~îÛ —*NF/ß¡±Ppƒ›$ÕÖÒxô{¸ª©«×鮉1D ˜œ¡²ê#“n=‰R’~†ú@jt[Å·û¾zøü]üºl½{.ju Á""å\ Ú˜•P gˆÞ#qÓÑϯg‰åx™ŸLʾ0b¥‰¼3‹ Û9hA~W =…u†¨ûB±`<3j¯ãc³`Ìî ‚r'®0n¤‘å<¾[­"ÛúþûkB¹óÇ¡ÏÇQ¸5ž5o’»âã,…-ðè;hzµ)ãìt"RÄn!´¢ƒníVй´ÙuÞ2vr8Ž¡ãüzXü×ol̼9 œj!ô QÄù€±$Ž‹n½Ñ¤¤` Ñj}„Goò‹Û3¼Ú\~z·º\±‰6妇å@b­R°Þ:”g¡S_p¾×+Úäçf›×œò_JdÚÍjü|­HÚ)ã½Å×15F:ã<štbè[Ëty‡OvºG z2XÛÎk@ïæ€í„}Æn7ÂP¾¯ÊI±§Ãw¿ê5œç"¤²Ø¿AõA­ é{_D%ýÀˆ¬ßy{DêÈ(?FÝŸ}"g,0þ^DÕiœœw¼Ô6àR"Ôèþ³©×Pÿ!âMöô£Êµ"ES‹Pú…æÖå,r„˜¹/ÍÞc–û–C&›âܾK挥ñwajßy-Õ—”Bݽi†ê·¼zæÒf3èŒã(’þ4”—>sþɰcÔIèP‘ªqtá|]˜0Ê-xH×[p‘&m—ÕXT.ÂM¾ç#¦ÊÏÌæú¨ÐÓwyë²õ9àÞ–GFû2Á"¿8c zýyäñžsî³¶Äá—ä×ýLûkdí£]äodÔ¸QÛçuH*á‰vaNlPˆ©ÇçDve‘éK·ÃÛšà1æ1~%+ænQr¹W«¨ë GP,àUȧ˜Hò‰f¹« Šáxõœ:TÉë;ý‚ÇkÃÉDhbh$¾4„vß}U€¸~wŠ´Û$׳JÏãh*M¦ {¿)Ÿ'EýRö RµAÞSô£ªzWÙx8fÁ¹JÏÇÄÎšËøž_`›éÖO²;j @™·Ðœ­¯õvrG%ù^3(RÑ`ZGêW)ªtÈœKO]Ž’¶ ©ó ÏJžàî(>#Á©iw,±Tñ—Ñ5Y­jMöpX4HŠ×YÅ.0Í~S‡¢3Tƒc$ µ÷ð{d@ ×U¬—Àƒ¼¬¼FÒAŠQ…ÖxwN^²7ë#Öκ==é¬qÇâJú¥{vÄCkdùFÑh'Ôô½‘FÓ˜~Í%ƒ¤Oš²³x%øÀ; it5 8õ™ç ‹ÎD>¹Ï,6ü »Æ¼wïÙ€Û¦d†ôà\Aè/å•¢tqáoÑ‚4 3î<è*N-1#b;Mò®šÛP6T.b‡[Á9õ!f4»8 06' ÊAKqÇn—ûªŒ¾‡Ú.¹Ûèž{»ø†ùåwËO}WÃŒ,ä °(™²kþÒ)Â~;}ª†ÄÖ-€?­÷ͼn6ñA6CñI9Ñ9ŽÙá<^ÀÃ-š/ìO×VÖ±Þt‘ç§HìŠö±Š'üAY÷N9R_H„óï¡#IšËqqˆ©é*!ßõ—ù5:´y‰^Í/™Ñ_Q­V!)6-Šªqò„Ýw|ƒŒ)É"ïšîÎøf¹«¾×¼´ihZ¬Õ»@[ý†í[v³K‡¸jˆ¥Hæ\Þ¥ã]È_FëœÂ'b.#FhÌè‡Èh€äòÖÿ :G|ŒÌã x3(Lj?³¤U¨¶¥5T!R"EÜÓ½x‡ûmt|Pâ„mvTZ™»·’äHgSk€±ZrCB!~ÆàS¿hÄz6%„Á¿JÃöºÿ6´•áÉÆÞàá×wù}ó}>æŸ=ÆBˆ!¬ï¬÷Iàyœ‡4|ì½úq©\(máFÔ¨šUÔU Uõ¾D^+9”ô§½RL—lÆn¿Ü4w¸¹µêŸõ‚«“fW±_ßB ØdDµÒãFA¨íɆ°Îö}zºî}w] Ž à`Œ¢¨_#© _/™1:ÎmJ Û%Nަ$’¶9É;=®™»B›˜ï‚M&ŒRß¶©/`4©D+¿Õj#†és®K…Òýöf°¥¥æ3[Ê×cÌŠÞ1 Ï«±}ÂLݦ§KÊ9­jtÚ º@áèøæTÙº_^­Âryöœ m™9Ô‹Þ“¹ÁÆl”ë«Û˜â¡Í%QQÇS—ÁƒC ä”$õ‘̶Áäl}·Ôét¬1“5¶nB5 >¨:H¿>ä±/¯Q>ż‰Ý÷fã(6»¾ê“ç µsÿð©à Nпï[^ׂ¦Æ‡(öX/™.…ýR6Ì$¥\o:xìÀñºµ¦±9Ó훱İڼÍzï*ö£'ª\=Zy!#‹Ùán«»ßšO¤„ù¦p"E^½Aªˆ#á$ ž ÏĸF êU‰vWï#çáõl,|ÀŒó¹¬ÉáÃJû–„ã4J}÷mޏV±Ab=…ÜÐ(õTc5$h o»ȉb8µÛôpß”ýÈÞDylNè!Ïû¬ ;9ÁôcV¯lo¼‚H˜Ÿ®ŸkæC˜÷¶ØQ×^Gðõw¥Rð’¾úâh¥ÿ]¡£s¦?Tstõ”.ƒrEÃ6¬ É<žáåÿ`~aùLÆŠ.À­g7}åÍË:Oáñ weÁ^(Ž>÷Éj=yIñuÙh ÖõæöQÒâ-øò7Eë±Ä|Îw` û1‚„±ø3Îp–}=ï@òë(v ýÁp~ÈKÈo9ŒUa ¨òòÕ¿mÞ‰A2Á¥ØÎ2RÛ‡KÿÛ]Á¶%—/1o³‚¿-îPÖ>×>À ›S¯ªÜ©{Š_¢œŽè€:ñ (¨§¥CИ~Z×>ì‚z¬…Ô-N J>Wš0Ôçý¾~dãmšvôŒ°_ ls‘ðˆZ9ó$,âeþÄ¥ôqöóÔòA‘Ý(U^²?)ǨøÝÚ†~êÜÑ ßãq¡þ ᡊ%ê¤ÀÛ¤:¬ècC'†²i»GÑh<¿5,oÑ~±7JxEÏjc_œz`¿Wa ÆÄÈüö–°°¡Ý¶ÞYœÚ¡}ä¯ÿîcžÚX(yñÄù±r—ßXª=úç+Û/·ít³Ù#³!9ºuHœk%œ_è6öjƒÕïO;Q6R¸-*ÇdPd‘` ÊÊSÍëK#ð¢×%»{sß…Ö>ëÑMYÚMiÙvg·˜_³A‡Óï~õÅÈ‹\åÛuKqˆ‹8o'ûë¸4o)ÐßÊÜÓ"»ÖÇÚM´T:9PYû¥åAñ¯´T"bÅÁÙ{òl&Øœ¤’úpxc¸bpì54v³"&U%ï'ìd-\¶,Þ&üu³0ÚãÌçr¹·øYu¡É¬}ž¬ÏšM -D…Y áMÄZÑâzƒÓ ¾Ðîi<Ë1×wšøôœD ]?Ζdw8èt[‘Î ÆBØÇÍDø'ûÔiÍ=|œ|EwQ­±R ©u¥Ïû‡öÎHä¥.CÚGlìQÝÒ4ò<5œÃ¢ ’SK#Ã(R÷ÞŽ ù¯¨¿m„9 ü<óJœX7¿fìd¶þ˜9†óž¤¢èm²kLÉV_ð§Ô}=ÇUЈ¹xŽyÎ.KXøíOº)O¡¾Ý[ýƒÜWe˜&Ä_ÍÃIKHƒÖ*|Ýõ‹Ã§=׎&?–á.7’’Æ¿zÙìóüz@2g•ôcÝ¿ ‹e ’û…؇“gúi²÷éóÂaD¥å›¬G³kDŒÝF#Ùµ)¡+C<„ì’ùâÓo\œî‚FÔ2$Á’ô›1‰pîåbšÂw™ïýJCãq!FšýË»îte âšû_ÞPc6ëиûyõ™©s2ÅP^›ã2mŠÍB­kó Òæy[7+žAÀîå”-`]~ɹ¨“cTâsW¡l~ïåfqñ~Å{¢„‰l'R3›Êˆ/›› v^Î¥ ú@Ec+™<“/¯è“¾îyyrý@"6PXÒ«ÿÏVÕ;ÆÈ+“0×®–b°ñ]Ó45ÂÓs© Eugð I“ìÇ–¥ƒÑ¡î(²ïëÝEEÈçZ!r{§Ãà3ŒmA±L©ÔoD¾–+ácñè'CL΂ÀÕ5:ÐÁ7ËÉ—ÜhNÉÙ­Nr‰Þ.ø`ÞUí 7ßE!7D&V£´6‹fô§-½¾èîÁ>‡D„… ?S­*„ýk#’ÏÂW„•a­)7*¬íT¼p€8Ùi^!P›äƒ O0l½$›ÔÙò$³yGoô—G ÁÙa'›Rß’ÁH¯=mñ‰ÌRÿsÂEÁü«Ï|xšêø-9çVYÁzœÄBŸ(“<&&ú.—J·Z¿cÁþ½÷ÞÃ"¸lÑünýG‘®óë¢Îµm*Ágæèu2LÇÐ×÷HF«÷a=„•#‘ Ý$ì¹W‰¤ó4møŽ0¯*~¡S«ð)N«ªŽ®"~¤%}õ±˜â +ܤ¤ë|ÍûÜø¼ì'˜qµ]ž²˜)Ï‘4 ËÊÁk\»ûãä ™}_™æ ÌxhCä$²­e*hã=qEžŸ'£¡S‘"ù¹»œNAõ,íVÊjó(ˆ©%;Ù÷pñÜáp| CÚ¥éšUWVlûFF½žÁ“òÀµãl{©Ÿû,8<ò*KÐG— A&µJ¼Ù¡ë2Oב"uÅ â@“Ù©š’bñ ×À{ RýÔZó5þª,¾Ëu †º$PÔ­F/ž}|Hé>ÂϯsEÉÚŸ&Ô‡ÆðúÚ©v‘)hÃÛÀ¯• \éçÜBÅÅùž¸ž†=ü®J´ ͇rãWžTøïÙÛR3‰UÖÙ(©ãQÎ>©b®Ã àp:z:¸YlâT«Z .g­@ECàƒèyÖ—ƒ‰sÞ¯Œ1‹ÛgÕÜøb+1œ¥Wa òAôy}†òåL«¿á,ñÃÔcxC—ÃM2©´Z 2^ºéúûÖ,!ßý¾$¤R^ÆTêÑYVFÌaPŽWCæN)¾y•wÞ»ì-ø¶*OJÙ¦¹«WæxŒ¦£Då#zbŒ%Á½f´d%ÏS« Ec½ãî¥7UÂ?>4дÇÑ Œ*wö 'ÈŠº°3 ·t#ÂÇ.i˜ 5w¿R@ò¯€{„Ññ)Â#éZ‚-U Cê°Ä_ÇÞ‹@Ü»*ýð½Ä¯2)üƒ±w_ =ÔûªZ_}­‹õq:=²£g¯§„öÏŠõðŸC1@[fPQÞ!Bâ‹Ý,µxئ}›èI‡Î6ËfÚk¿Kvä&ÃKõT¼#HýÄ=¢áÕ«ÜçMGë¬qß•Â5'åæx†º-ÑœlÁ+ÐN…9ŒÙa wL KJ% ÍÇÞÚ%¤¦;Ž()Ö)ƒÇTÇ×IK Vx7Õd$v33fr2àû¤Vþó/CIÚŽ 般3âñ‰7|cîa 6¿™Ñ¦d2ÿÁ×,5,¬E‡;S)ì|®üÞ—x?øê†>îg<Û•~ÜÄþ’‚¿+ñ¸‚óÁ.(¶¥qn¤=![iCv9-¸;ò¤ˆ.æeÄÿánYª(ºLHy3uš‚“PPGîaP5)ˆ¯>²ü8)C4OŸd–ºÒ±Ä¡”®ûPOqJ>08™®ª¶ëo«yg®æ>Vgþ±ã71î陽J)ô–÷–5ÒåU)C]çÜQƒa<³riÖÔäLè»/Ðç&¸Æµ…’QôTrWãè´9É®ŸÑ©îl=ÞØØ8¢¶NË'­¯].|ž¾–•íÚ.s†¯\h‰¯ÙâIÐqhÕšÔ‡÷*¡÷úLóÑ7Ù:ÕäÈm‹êÒ ^pÙVc]g5ý¥¤,dB´\ÖpQeÌo[ýNýŠÒ­*>{ßvÙsCÇÙ¬¼Þ"=O&gw`žÃiàMìF: Q»]p‹,~7À†‘ìŸIÇ9Ùï#«ë\JqëH9Øi´×Ó¯!hÒ¿…0ŽïÑ[¶×ë$DZ¥@Ã.¹ÞgÍn"Ñ^¡f–bÍ~Œv ÔlŒ=skaù…üú\¥Áwò¾ª¡ÚRçÒÕt„Ÿ{J5X)mÓÊtÿŒ¥q£©}~¨$±³GCš¡7}ÑIÂ98€õq “I.J% ¦ÞÜL:÷Ãç7JADf7Ö¾Ïä;€&†Ÿº:û$dg«‹¢ÞE]bcö85*Ä\S÷£ Ô~£Ö­y©ò¸‡ÇN;ÝH²Ê7P×Xy} …¡Ž )žˆB6¶ךxç>‡å?PKh&R"™3aïøñ|òÇ ¼„ó?øG Fô,—B|/xçW©ÑÐê4Q=ønÝ”µZXá2§R<¬“f¥·/öT¬øò5^ÙnÖrŒmñÛ3Zšz4}Îá“Ýi ”ÅpS†–Tñ¢ƒ¬‡A­êÂswðUMÊÊÅ&1t®Å¶Õ¨ AœsèrÆÐÊAA]Ø„i‰fŠ(ê³wµ×ëCƸjSÌV”,m+ Až>M­!Z»ò^ŸLiå›skVþ[SLÿfW¨O¸'óI'ZN®Ä‰#Å©bAªþã0x1Z¸ØÌ$ˆH÷Ýéèq¿°ŒÈê<é„«~"ùü´(‰³Z⧉ Ñ“HCçT‘«Pw_C›SbÖ†ÕAm*At·»AvUœ&.†cå8‡KÓIÍ”í$¥[ŠŠO¶ÄQ™È¿Ñ. |í 06ys{žÕH^aþeç æ›Ëî­%gšó7kg…á_ÜÓâÁvÕža¡ßÏ»&"æWÖOg}ö𻜶9¹C FÔÓN»uÔ‘—ò sÙ!l¿ztü^õ…ŸÙÊÆ¸!Ž25ÎÓâ°ÂmVø  ±{?Ìb×C¤ÿe¶P–çV…a°-Or zÓñÕÐ$­“e™/[‘Öh3×Â<àêûGa;.rì«zµ6®E=¡4JKïà€»MªÖÊ­2ì¨Êo¼i–ë_~`Ç"kkCy´/¹ÛÛnC´-33î_R¯Ã™òBŒØÖ, 9Èà.üxedÁËï3ûší›Ô«rÙx Å /ûÐwïbå fG#¸´b*ï`¼èšâÕ×BLè}:ƒzo”³Ùߥ¸z‰SfÐ[ ©¤Æp㦠$Ï=mü=R¡ß®M»{rM»5ùÆem"B»t÷µÎÁß5¤ôÄLUMz`·öIXwlŠ$GÁÅÎÛwaEÕ°F$äÊ ³e§;’™ü³C…ö 16r=º³Wï;¿©nf¥¤õÙVÃöý*¦P×5.ý‡½T†L‹pÎZëoçeL¨`¦aòe‚aóª›÷µK|€‚kŒÇÂs1ŠþMg|ððcTÊãðð+=‚ö£ærúý V†™¢¦Ž)gBrî{ŸSw!±²jòSùÙt.b®éú£’TŠ1§D“$Â“—ûåµ*Ž e510ÙÏ4©6"7Qõ HÇ̾ aZ›0!û FyƒÅ(MÑʹ>ZF^yûÇÉ!ÿy•}ÆSÃmß³ ÞÂsýFL¿%g/1j‹µMÛÀÓ‹"LŽ!ÒV8Þ<Å.*²Ý÷Xê𢛼 ïP>Ê{ì¢r˜œ¬ Æ®M6Œê䊶Èf*ɦ»÷îîG¿EX4Nü5IžI‡9& ‘Õjs$¥WôKF}H±ŠªÌt€£ƒ“÷Š:£Õu(]_™¹b¨dŸÄÁžŸÿµê¾õÁä{aÃØyR51N˜:†úQ(vp²&Wk0’YK’÷d J'–ÂKر²‹ÚæõÓTeGpwW§,³üsÄàRŠ^Ó«I–Á¶«¶u«T÷¹œ&ÖÆ>·ŽdíøÞNr*’¢4^Õ‡*Ÿåºs7y ãÍÙ_á˜r—¹¹pL¢š§3œ”VýPGÊb`ü´”‚‚GC’vž«MÎzk–*³NouG7{ŽDõòÞQß5.s§i‹¢;·åÇ·Û%Ǻ7]8àÜ'ÌÔfbD fïÕSð g#ù|%×Û‡÷%9Û#mÚ/ `#TÓ<®BÚUkxÐS¡j‘ò”„5ìoZs™x¦«¨ìu#^ ®#Z²¹a©ÌRóRõÕ_o<ÅYaˆóî›{ª_!ÜL¹‘Ħ´r—{©÷ ¨ÕT†W¬vÕþ¢Ì­ìæ_ä$Ÿ6»ä`*aËæ±jØ„Ji+.2ç/« ¼ù”©ó0ÎŽh0WŽt!hN…”Êé·h€<夻‡}•&7D‡."êíÒ „Òº>–p]• _Ú // î¸|ëÒ Ô½ÿ"ÃOôh+s´AiÔþV%`Ý ê1§µ+‹tçgì{~©C_ÖÝÅ‘õu…µØ¾¦¯Q×-Z‘±Ž ãmE Z·Frv!ݯšAæ\ÞÜh-ïÚi¤¢£ŽGYÌB%üpYO0´\f¾óÖŽf!òµÉƒ€0(ð!!ûðpVZ[» ¤ŸWÆÔlAÎT²±o¼f,8!©.øzâ j6Í6»!Û0‘n{HÖ+ö{t5BÑÙ¼QÕçj¬GÎn‚ ­½¯cÞÐÓUÔj¶ƒŸE˜&G8Û}²yžà1ùø%ŠØ",vèêXä‘õ·"ü?ˆ?º‹t8Œõ”ßó"Ã7vò# =±IÊù3÷,QÎXl-¥MÖšÞ‰Üá5ÜbœæaÚ«¬ó…6”¯è|<Ü뫟sÅ¿î_÷Õ™²œô]¸’£­±þíÅV9µüVÁåÊ©ŽTÉx= Ï" •rÌa[eù”’0æ›÷^À7œ'HC“É‚$ƒüÉÓýŸQkñöDÇhqÃ%Çx2P>°­Ͼk§¤—yòJN!A•‹„¢@¡'ÝèZ¢ùz§œj«ŽY8¦B¥h“,‡¨oü‚$ñ:øv>9/Î'"u]¯÷µÐQ´ó‹ŸéHWëba›Ç\àwdd\+x(Üž9ýH{8B­­ßÒžæÄM¢pýÈÚÑÍï_¹r"Þ:ÑÝyîmOH[rÿßÃhuÁ€€’¸Ê*œMÑ¡Ú ßžUó¹™ÎELC=—Å¶Ô Oеp¨#Æô¬±DºX÷ ³.$¡Æ.&²r¹'ÈlÒë4V¶eÎÕucëÓˆiz^|®Â*üꦀ¹ï¸.ýIm”F«•зڄ?t¼šŽ?bª9BZ_¯ß3ŸF¤ãa1ØùÕ¯øpØ]E5¿Ÿ¥Òӡޱr›Ž0 BêÁI.[ðkthWBIé›ÐçÇÊ|£G¿F& JNª!|á\°´¾gÀ7ÜÓúAqþÈßl®x\{qcÆ´(ÖFWÔú²Eïwzúþ4™¿ýÖYlß¹IãØÚªòœ/jq¼Ùr/…È:eÄÀ؈si.¯~‚äC?'oûmxtŠÎ¡Ôñ†‘±Ú•j 1»©˜´,½‚uà;œìir§¶·5¨¡ªß^ß( Ù½áÀ•­ ÈIŸˆ7f¼¯ Úi¢„ÞàÁ&ŒÇÛôqþ$ï~—úÕœ¡.¸€çÝä —‹êcþ}+w^³ª²ë.WðòÚX1×kXmL²‰·çêÇæó|93û"T'VëÓïÙÅ›œŸá¦ô,ŸÏ#’íVºûdÉ{tý>¼JÙô5ÜXœ<ì$˜[²r¯äŠÖD6GG@O_ãjèBe‚Çr·ÝãŠãø~–"˜ªÇWçFÙÝà†qËLܧ©¡æ—^Û•BA邯õ´DÇN¤§B„ê'×a)iSi}ë¹RÓWD:AäzðWi¾´å@ZºEÖÕ#²ù±žm_ƒ ¼,8„QÆ©WNºÏ‰˜$ŽŒjÚIòµ&œs1ZQn)Âyo-! PƒÚÑŒwßêS ï}S^xU¯LÉ„*Bæã>ÑpÐwÓ]¶î¯.õÓ¢b[¢ø}+ß"“[ËìêGÐT’`çtæHqFîq3sªÑ¤ÚÆi¶Áàâ¡@?ÑÝ+­ó(UPåÑÂó!ÄCâ1ù+ñ$fÖžjñs­ñ¼®ìÓá~ƒ×&ã×8¥­w 1Š6 ¶«­SåóÝ[Èá+m!<Ü&WÞä"ª1Ðèõ±wŒÛÓ›EÆ@?“‰Ä†ð® ²e-©Ó& Š#AÄ%“]ÿÉšm•(G½$õË:þó¶ueõðÌï©°M7Ì•ÛN™slÓƒµOò§;)Ž“@_XB¹UÞ±R¯Ý{594Qô¼„Cž4mdg½Ð|­÷ïÞj@w3‹ˆÙ~&QŒOÐrÈÄó$•_ –òdQ7~5ðEº$´Pz|° ûU‡ÊÏæS'%*·ûÁkb4Lƈ K1aý`1 )’XäP¸È±Upð°eJi…_Ò„7ɒºs°|M1j/Ù¥«ç¥ÎËä¦Ý>SÓ5î,qEÍñnÅ {ónÙOJR Õ¿F?+Ðô2¶AÉK–új­:ñfNzàçv9·ë¼òÇYv!|¼‰qÔ À¶Ž0:Š­ÜåA§¹Bq‰7î ¿úZ9§Ýyì+²þgÅ/ïA_W´âr„ã˜ý°”†ñiWórö¿z‰Ú'ùvq´.¿-&ëÛe…‹2†¾‡—8>F=š]cšà›ÛÊm®d†žû5œ1ÔV2FÕ~,GmÌTÈ`DÌ®‡JÎV«{ÿÚ†øvFýòU¦ã#«š‚bX 2îµbÊÒ"Ž Ë[ñPíq¸Ø5®µáYzl®kÝu*¡;½©Š°4¥ÎæM)ß>ã#3ki“Âzʆlýò°•m.Î.¤ržà$l¦ä·þ•)Ñ+dì“¥¡ãqºf(`2»KWFޱ]+ki`R ßѰÌïÊ$£MÒõUò Ã5!”r6LŽÍQQV0þ܈¶]»ç“Y˜_DÒ•”Bô Ó’¯Ñ©˜ñn7„‘8‹¬½ïcÙ9ÁÏTÖ4Õ½Âüw"j• ®é‡ê4He_%„ë4µÈÈZPs*Ö:p÷—Î×õCa¯“õøÅá0Rö¸ìƒHÞ§ÂÚÍÝ·ÕËsjìd˜W™Ö>ŒÄ—‡ß $ÌJ™yÀ¸ îDj‰}Ã=FãñN^¦?aƒòÓg,Ïr´¨dr6wS‰®·5þl×{ŒE}œ[õEîsØ>Omˆe\ÿnÓ·Gbðœ©æIù­Ô™g06"_á*á炱… [ö¼…ö -x¯+NƒÎ»[~î¨ÈÛ•²L4t-y˜låó'Ò¬Óø:q†ÃJɼ¬jEÉa‚mÓßíê"š>ýúÕá`fÅÞ›} 'MñBÃQI•Ìî4߀¦ýzNgPiSŒºbƠÜÐÌß犴‰t£ÐŠ€Í¨rÿýòàtàg\÷d{ôçší2¤«¡½\uwæOõQ©¥ï{~¦.'Ý‹L[T4ß¼…óÁLQ\¡ÛGšg-¶·V”,ŠÚJ-Òs+oé©'¼ð£Þ¥ P”ŽQöÊ–}ßL7J`àƒ¡KQo:?Ãv<‡’[ÞÃ¥ÆÐg«oÅ…p^Cµê ^IÖMPTчà6í” ÉÝñ5S"¾Â«·ÁH/6ʉý”QÄ|­X’%–ü#Êc‘Æxšƒ #Ýî¼þb¿6ûíù“l*rUFß# F{ŠaÆ¥¦X½‡n²Ñ8âü[ßµÀ"í.ò3E-A;+ñµZhV‡ ~î”{.MqE<¶jý1÷z„.Êó;æCu8($²¹¼¯‰©œ¢ýjtëÿO÷$Û W Í ¬qeg[ }]‚éÅQ®}Øš\­Ð£÷Í>¯Øaî_V§ ”E»Bàì¹½ó”ÉJžÉâ¿™¡¥¨TÓ^|¼ð²0þnhq}H¡fÿ´PKå¹¢‘·Ã´Æ­ÂwtŒJmûNÕ7!ö¬=ü¬®qIa‰?¨öF·@¿= œöˆÀy^þ(~Q„ª×ÐယʄÓalõA躶Ïw6ª=ù!BI€÷Úâe ?pÁÒ´çaMÔz*³­ù>YAV`°~pHë´IO“øÍÕKÖp›C¾V-ó…~"½ æ2Ã.~2‰öpÑay†¾÷šíi1œºqNÜŠ:õ ufiö›€^"õ<¤ÈÑ}ÉŸµw)Á¨ìá]ø#µÃGž4õM!¢m<4ö'¼ñ²«·\pðÜ»”&Q<²<ï^-®Y,«4o*¦qlÜû+h³°%»õGÓløZŽÒÀ&ƒpȶ%úùPç‡ÆÎŸ”ïÚÏóÍökXXÔïU‰íúùmp;Õ×ïLíþÐÿ®šíï|mÙ Ö66†¥œøC°™µ­]Döã%Ä%°é÷ƒð}ûRsœ½ÑÞÜb¼„èßm -¶ÅÎC=ÒøÁ7д·˜ö¬¿cU7ïÆ*샄3vŠpT@é- ֽ⺅gDq¦šïr½\ôc†Ö—ä 飗yö ÒºP¼Äp½ˆ'íÂ^¦ä¡A•~ûƽëºqL* çß`-7îŒÖa=n³¢ ¦«Ž`kdÇ0¤i­€¼ãoÔh Ûr¦Nþ­ÞïÕ ƒùBhL?¯”âûÀ„[ÔíqccëlX[|]¡?I_þðnÈ!Wôÿ.Hç2Ôr1äU¢ñߢyg‚`6®ê õ Žtⱸ¹nlxÉ–÷fÖ0ºî °ü;#UÚ¦-ú}`¦Œôó¶,Œn÷™~çy…ÀE­Ži¬ågYŽ•>õ1Ž„f‘MîÚ“éòÒËÿ§}ˆ‚ÕyAVÄ•¶—T£èÚJ®9¢èàÔøã+³Š.ãkehãŸ0SÈú\R4ìÕ¤Ûˆ¬A²ŠÊ67OUݸ§’]5/·“0Žç‹¢ó-,†ÊC•sç8ó‘ØØ÷¥û—U‹„‚sÒl*JÐlPóÓ; ¯…IÐÊvµ`ݦ#¨‡#ý8V°©m"8 «,ª¥sŸùÐІ@`Ak·ƒçýJ zøWè À­Æ‡DϾuzŽ/o „'@ÑuÈÊaKWÌgº†4@¬±P!§Ïž@Ú úÑ-G Qâ+Uv„Á³;´xEeÉ`¯ñ'$÷J—‡¸EÈÙþ“¨.‰á9ÂA_Û©h5§^åô$#ÑÁžkÂH>ø¤t¼ùÙ@Ð5Dwçdî1NÊz†O¥¶µIÅiÎÔ^ã æjüÑþÃS1ðÑÓuèfù ®q¢yŒ¾ÂN•èIµ~”¥ÕÓ‘•ËR¦ÊÖí7:bwV§C­e8 û>ê™%Ù©jud¡Vñg®ûº´h܇÷U#€a1¦XÓâ§žL õÎtrÓ^#bØÔ¼¬ºYQËLD…7L~1*¬QÏŽ†NAŠ_/¼dî Ô¸“Çz9/ä9R`ŽîÙûr>Jü¡­8OmJXúÄý¢¾Bb¹7œ=xĸ¸äuÛ‹Å|¿Ú«©8XE[,…1úþúT ¼%%ât¯ãâȲfY¶/ÔΤ{\úÄ™=ð 'zÞLTûFfÒõHy,ûþDGDj—ÔŽ–ÐY Š¡úÜÿR?Û:.?ÖX¬”®gº^§ƒ^#s³é®à_¼ šw Ð>7‡/ùn~Úq‹xÙ¿sAÔÀjDÍê¶S©Ú€“õR–wZ ©YÝŽ²ÒmÛz‡œ‹š1è~b›ÛzƒïŸ¡v Ñã[®^J Zd9knk…9HPƶÅéP1N7ç†ÎѸdÊ“Rw[•ªù\E¹£¶Âê£Ù†˜ý7¦¼ƒBhZk Z9£Œ½#³V·¡H‡õ§ÁÒ=lwùÌÏ¿eؼqŸ%—øg$—Ù¥…IBØÓsÐIF",è£ º,²üÚ!–jÕù ÕFœ É0å·JÈ,FxöFœÐ7HÉ‘0×é“„"i/˜+U×·T6«áï8àF™OËÔ•¡+%%Óª¿˜Q Õ–y.Š[• ù7Î?¨ôÿ¿º{šÂ¥åcõï‡]‡:£d0®ðÔ¡avÑi\ø4ù‚ |uÚð€{¿ßà— Ë“ý #š1Ø¡‘ ،ÁßóÙ}rnÐo,†8{Kpvƒq+t‡¿€"‡†%m_ëuõùÕšþˆ¦y}æ`¬vFx`.Ž5p2𙄥MóîR2.u’ž½íY!q—y+>pK¿*”—œ]3åÎÿBE7}ï\5⣠2bàQ_¨,™ÔL⤂ÅÔU j¿£×³b}oŽ{­á¨$øîeþ¥±oòP$Ú)<7-iuw˜¯MÌ  r«­€nÆÜ~ÚíáËÊFÍ ²Þ¼}ƒ|_‘kÂHÍ©+‹ýøS”Á\ÈëWKÅñþB¦kdwfOøï…"Õ´©š>µºËe m‰ëž÷@Î_>s,ç{t®柦¾Ë;«k¯KÆ£||¶ByÅ«\œó)`@©\ëëQ@M}Ì*~R O¾zbœ8¯Ü{çré°&ìE~ÈÁ|_Œ« ]¦¼Ù“?i»¡&íïúÜýãY¾ÐÑ-ÄÈ ÿ4ƒå˜f£Át¹>Y h}Riy¶é§}ŸÅ‘ül›ëË ;Lv¿˜rk©£ñþˆ_¬ÔdÅS‘9”–¦2ÓÙÚdé71Ç {ÚürTê<5žªÄ¨YvfA­ÌF_wòÏß1pDçoÍÃPáYòóg[ÝÅ" I`‘æÿ¬±B¼DÀ…ÇÛê7º gCŒBœ~Ë%´‘ŒÉ"ü©p°ïÚ¨ë4yJCë’§If?¤Á6‡¼’죉è¡ûK3yJ¹ÐC?”e¬>K£+æ Úªï¹x$kæ©„¹ƒˆ¥z¢Fºä4ñªR8.ºOä„h*oi%Y4íýs¡„ ÀçÍ0ÈÇÇ%ÊáQ‚æáñõÔÖ?·!µÖÙm*J·¨5z>ç²» ‡Ðq¯þðÕ ’ÀÖ$˜/C©nC@âôxN˜î¬Ê– êN»ÔTõ}òxÈ¢ A>§«Ñ^ÂzÈ0ôŒ‚zà ¯ÝñÍ:âí!v¦v.j‚ é[÷–¹- ³d¾HÍbG€CuÑË;RlDÈ(Ùüo­ñ7®ÞŸÁ¼Ëɘ¶lÁv zº=ÓU‹éMÖ7ðºw¼~ "RŸèLq/*ùj m ÆL~³’¹Áê@3qƽ]Ð`m¹q6¡c‹~?%Æìëô‡ª’bÄó˶g_:ÎéâÜ[9{_¹’ · öŸAI hŽÑÕøð_—æx#Û°n=z,r¶D“ <•‘yu, N/ì%[‰™©W ™çÂX,Ñr|€£$.N¦¯H˜[$)oøÕ÷éîÏþ%™õÁ¾R­Û,¢;i#VÝ2òE0kËËÌ&˜©2ލgòÚj…WQ\š Ì‘)&9ÛHß7ÿ†é™1íP6ƒK`(H¥Ö²ü'¦&…üÐLb”rW‚òGv=ÁÉÆ6&NЫÍÿáp’ÿµóuß_ÔžqøÄAí­|-ìžLù‡[§Í+õSÕò­ÿ¡å7Ï–ŒfA*©bL$¦BÝìev×FÁ®iëh(Ž!;5÷à‡ý´ðGHú†Vâ‘F§Uce§¥äª(Ú¢“ŽðDf”¶Me³Θš&§®÷Q?À(ÈL޲tÞUªËõ îôžÓeñÆï ÙŒ5m1cù®È±ã&“FÑ…A÷eýD çÓªUN‚n%‰ˆÖˆ +<.(\û&´ &Ù½щ¶£h‘B/$\’m=bn9¬1zÁ»·oøûÐ]BÝÒµ®æWäâtV‹qCxQvâþsŸá±—º”<£|DjýtžéýˆFQDf¥ é|2gÊkÓrÈ.?U~_¤ðAº¥—äXC…ÙUaÞ ò€ôÔ³nÈ´²¼9±T «ƒ<•ÝnNa‹Ë³½­U¢—¸/ý@Bn‹.bqè1g&òÒ9ÅYÛ`EªL&¬DOôÁeµJY9GԒù­ñ‚Ñ 2ÚQޱԒΙ¿ÿf®¿‘d'!ùÀÎÚÊñðŸµÈ¬‚`DÃñ*,†:!óí8 ³K¨ õ¯uDDùmî·mF!ö|Ô{~yæ÷`‰×Å×®5ø–Hwê"uò§Oõˆœ–3–ñê¦úçŽåH“¶«½ŸÚG›· ùJ«+Â@Þ‘=¨‡¦A¼ %…Gú¨µê w÷Ú»”)… u²I'ÓüÜ…åë°"¸”3æéHOàh‰ ³ô|ßí=´˜.Öm(“,Dß¶5rLVþ¬sÓ:M¾Þ*{²9„û zʶs2]¼°h«ãCJð:ýÞê¡i^¾)‡ÞñDÑü ýðüŒÂëÖø…t^7\,1ÊóÔ/²‚€üu@)d\§:êôg¯Ä·’³æ®0û¨ˆë-Ø1UXêV,sÈ„ìët1¨½¤@%ÖËÖ j?·ßÀךòzÉš)Æo =ÁuÀ'ã™%|ÆË‘ËoJ@ GºÊãÝÿ* uÁ2áTŠ=²zÍCÒl²ÇÉ7ëNmöÖî“yO«}äÅIæfƒMçŽl,üD¯X­|[É”º9EòÍ¡"ˆ:Ü¡$–ÝiÍ¥ÓõwaN$û^c ï!+lIá†â„×¢Ša¬ûëîdVZLqq0HïÊ?[×f ®t&"Qù½<¿WÕ-‹ÉÚ×ÍzÂÕ“^œœ1/ËÜ>Æ%Wm)ØaÎò$ÂÃaíùÜU ™·Äø³ìaÏ’«?º{+G4»°9Šñ,|5ÓÐçÛGý^ŒÃUÇòB!”¦ÓG¶xMx¤$L«5ü’ÜËd²ô)ÕÛ¤)L2˜dCÙUzîž”Íl K]ÄK­kƒH^zúüj$ݡ̤‰ŸÒrÓ uÜLö3ÆÍJ3²§û·ÁYZ›·ÎdvÃ2œÚÖ,` øª|–y¬lË Å/ö0*yáþøPaî‹cË;‡ÛÅp‹þ^Ršðñ+š ¶þìÒš›nŸûvTטUic€Ý\G±'796B9ú¨Æ’d\±!nuH.¯޹¬\¾köWWߊ®òÅ=œqÛzD•çÿç­]Y:·–ÚÈùÚÝÉ–éíä”ùKQÊl ˵ˆï‚Ió|¼héÕfÎ ;M¥Á‚˜…v·µ¬{eËH1þ`ôÄyOß6…Äêºe{Ï}ìEC!+Aòé YÈ:Z’\OåßÊ]î‹EÝ %èÏN!+Êi«ÂWèÖAYnú40—*{ÀÝØàX2Ó7pc´ßöR¨MZ)_{ÀÊ3mG0¹²æ„U¿þX#¦ª±îö!žZT®ÚSʹÀ°º¬RSB7LЄöÍDzq®š…ÿØwo5šéUÜA`a³¨ˆàg|™V’‹Õ^Ù¯Ž—½ëé‚âÇ·$é®g®2_žáxø«3Ê£Ý.&@ú]ðøPfc¹:ù'ì5kêrðvv5ß…Àéõî„ÐÅfqŸ60âæ[t»Œt!ž¿­ZG«²³jâcH¬;²¢‹¯¯ÚqbÚ÷–r­ëçÂØÉE}ÉB‚ðõž©`Ò”:ê‰2„–;+q¤²¾ó‹n'²±É%—‹ÌÿŠ÷¥6üKín1Åx°PÄüc‚xÁN˜0fMþ¬ÞÚU ‰ÿ»6 öÏ>±Ï„ªõ[…Éö2QPWÿ¿Ô ƒ¥ªŸíæ%óeÿaÚ½Á"MsZ?Wr-ù)†f3dB”c0±»û!„¿ûvw[‡s˜puªv¢®È[aÍînW)ì4Mð¹ê"´ú`߃[&?ÎTš7á47¨¹™n1ExâûRèÒ“ÃFû7û¾„:=2º7P¿Ü*;@3ɽ1œ†©&;Ê º®µô ¿,Ü对Ÿå’‹ŽOÛÝeQÙ‘(ž0Iå8ÉO}bú•í¨£Üœ¨¥æ\…€#‚9Ä­È}P £®Œÿ—¢a#k1„òG9R³q»©0’QµyGÓ¦Å9˜4ü%èh“k¢?jO‡.ôý˜€°´YæÇN( ˆ;=±\:£Ñ#Á½w㘤ŽWaÙ m¶èBƪӔûydÖÛQÅ-°Ë]ªÿßNaø\ä`Aâú‡¦åmŒ»Uf-›» <þ[\”¿adï€]Øl`«¥†ªX¬jrÀE¾…¡)~™ºµÑnøªDR×ß|„“ÉÑg;Ë(´h_-Ø3¯΋¡¤3œMAÜë-y>|IkhÚ¦mä"`¤—(§Íöe¸<*qÇ8Àáˆ0׃K¼R±Ÿ•øaÞëqòÄ·Åd^æuUè…¶w”´þ駬ÀÁð½nJyÊk•W:·KBtsKÎXF¬O‰ *§àxE¨·áyL ’Ï×½ÒÙ²¿e¸ rf€^Ø×ñK+Äql¶…p åØÒ˜ÿƒEþrþ{ŽcÊë„â© ëÏ<|š‰hñØ–"O­»ýÈb”£d€K ÜRHæ¶¿&صØT) €Q ý€t^fm–f˜eÝcËà=˜p´ã«˜ûº›È² µñ0Êh_Ï%±ý¾íc¹[|ðâA0œÇè´¥)+,Rj~PÊâ$æºp˜C6°‡(,uÔZ©ý@ŠÄÕ¼†eâä¾ÞëDF1 ˆp¥üa)6(GõÀiÿÛ¬8½ðW»…šy'¦~´—^QáXkXõE²6óíG|Ôª“™×Ÿ.%þ³A5s=Hy+)H k͕оî¦%Äk¦Ãr3ÓŠÜÁ6ocoPÊSúI™WvLü~¸”qÖ·d,õ‰™lßD` ­—†z?Ú:üh\gÉÄ' Ðz‚«Í¦£)û]Мn5ç7ê‡ðøFF (4=eZM†Ðž¡EÄÍs`Šáè1Õ^s6®åBz8ЦW¯IÁ/þê­Þ¾a{³y~f‹ÃCwÓϾؘÎbøÊDÖYŽœT”ãÇ­Z! y%¢­OÁŒ¼±¼½‹›Íp~3Ó”š4haBðhXýH$>ù—:˘l3ÎyIù“0Jšùïí§MßÂdttRܺäîHŸw ¥»{E¶5ÂGäc ã³ÖÝŒ_ZšyŠp{gö8Žó-’ç^D÷]ú¨VuÕÿ«x©)P«†oO€•Lv<ììc$-†$÷@Kp$w¹†³ÅâÈs¨]‡B®–ìëhÍ­B†Ï\Žrâ RA³36ø): ""N,œ¹¬QÇÇñ§¶ZƨðXÎ<Ô>’&;ø´*Z‡be6Aµ¿çrÝn;FµDv“1qú†ZU»!Ìb<÷ó*Ÿžz{(JÛi8zÆé5yŠvmº³`ª—Z1Yš€¨ Äìà„´”äN Ÿì2&EôàJö[BmK‹\ B¼3/£Ä‹V˜Þ¥Û/mª#Šò  ãI¬øoÀž³ÊRTõ°*4¤¯;øK6ç=¥ÖåîNyÊ•@®~$º-œ›€ÌSºèGKàœÄDú]¶´ø{Ž$ä*KÍLX.h/ûsƒº±ÔuЇ›hÁîLv[]ì%…ñÍ=e.þ=z\ÕþžX›*Xç1ÈÂnN'È50&AL’u:I…Uüýê‹mØÏ«ïå•,••1fð¢Ôº§W¤Û|Òñ8TïÕT<ÔãîPñ®¢¿ÖÈ“²¹¥É»ê½î¯7uæѧŸ²6Ï‹±É)ÕÅÃ|€!ÞP4Öþ—„î§§ÚÆdÇã Iz´ª5€ÏÙ;RK¦/“„ƒX1¿Ë×¾„ˆ^¨J<íoÿÊöbp™Àö¸Ÿ1’ăvóðŽÛlÓü ¶öŽôP£ û`FôŽ!½Ãø,>p5¤k–?’9oÙ´wŸNt‹o)˜ŠQPÁcÖÑXV.fN@)¯ù°§â~‚ Ã`Z>ÙñÝÄg¼ ‘»ôÎyPæ¸×I˜®­âÐòx_ô•ÁÈ»­ ê£ŸRÀ:„ #%n"·êŠcÜ6i³Œt™È}‚®ÃjA­裑% \Šx‰o” ] ÷! “Á1uA®~ÒTY@å`ÍŠê$p3G»ÚÀó¥Ìj^Üìõ²Ød®µ'CÞ›ÍÙµv¸+µþ2W´ª9Øv³‰–~¶:Cÿ£êü{|âD¿aê[Tš¦ë~½*öZäÁ šÅðóˆóBÚ71†‹Ø»Ü3¬îIõÉÆ­‰Èêz‘x?AànonŸãú1YV}Eã|g(îß+åšO¢ijÕ&¥…~|õ{Û^D‚«Ñ~sä…}*Ìm\j”eb9d¶˜¹#ëüt鬛eb÷yxs^07ôyD×÷“ÈŸr'XX]uWØ>ê8oáÿݺéÖ<:ÔP£“» HÆ[íýçK ’g^=`¥Y_v) QŽöø@nŸ|!|}F9R¡—B—|€«}Žˆ¦jõmû×wôË3‰Ú®;Ÿœ1¡¾håæé~’N>‘"b!λ W‰:µ†KŠ .3wøQ÷ÀeËw¹™ýT<Ù²epåt cÊ™p'$ï¨Ã¢ ,3Ùy?i¿´¦ÈÄ÷¼Õ²"ãçZ÷ xÇ8°•YH^w5îƒÚU¦k3®ú˜Ò1ÉÓöÕ§¡96LÎ[&7#â †3áhlUž±yɇ7ù¤aV¡„hB@† ¹’ÞÄûùu@=ºWå,H¸dé"»à;ꆴSÖÇ>¥€%…¶YÖ”fñ!¤ÝÉT’±"d“0ÙAÔJØ„vGŽn¾AC62¢DÒÎùŠÙÖïÚÔ¬ÿ1c…d.ÁäíRžbh#¹ #϶Øq¤9ö>ªlÇDÙ”{ŨùÇ]1,àÈêDE]üͼÛnÔº€`Œ0_’èbâWé$fQæC;ؾ­û“sw‰,ouÔ¿™Ñ…âsLöŒCsÕͰŒ(öc %Ó%Ì»> ]Sb 19¹™^  »ŒNÊ­Mö)–Œ~‚žš"W¢:b ilkJ.šcÈîkD‚h3^^> stream xÚ´Pè.Œ(înÁ‚»;ŵ@Ñ H€àîZœân¥@q·RŠ·Hq· ×"—îîÙÝsþæÞÉL’çõç•FS‡CÚÊɬàuãàæŠdÕ´¹y@ /'ȃÆÀ  qsÿ%FcÐÃ\!NP‘ÈÂÀnO29 ·';5'(@ÅÝÀÍ àá<@ ð `"9 ˆ@ â»¢1È:9{à 6¶nOiþóÀ bp ²ÿávà (@ÍÂÍìø”dáÐqAÀnÞÿ‚YÌÖÍÍY„‹ËÓÓ“ÓÂÑ•Ó f#ÁÂð„¸Ù´Á®`˜Ø ð›0@ÝÂü'3N4€®-ÄõO¹Ž“µ›§ x8@@`¨ë“‡;Ô <%è(«4œÁÐ?Uÿ4`üÕ7'÷ßáþòþýÃÙrrt¶€zC 6kˆ ¡ Êéæåư€Zý6´ppuzò·ð°€8XX>üQ¹@AZ `ñDð/z® ÄÙÍ•Óâð›"×ï0O]–‡ZÉ:9:‚¡n®h¿ë“ƒÀÀ §¶{sý9Y{¨“'Ô÷/` ZYÿ&aåîÌ¥…¸¸ƒ•åþ2y¡ý#³»ø@  0ì{l¹~‡×õvÿ¡äþ-~bàïëìä °~"ö‡XƒŸ~Ð|]-<À7˜;Øß÷ߊÿFhÜÜ+È ` ¶@Ñþ‰þ$[ÿ‰Ÿ†ƒxŒO»Ç þþüýÏäi½¬œ Þÿ˜ÿ1_.iE]9C¶?ÿ­“‘qòørðò8xø¹ÂBBA~ Àÿ¿£üÍÿ?ÜÿjZ@þª øO@e¨µ@øO O½û ¿¶‚ù¯‹aüwu§§U˜ÿÙüW@~ èé‹ûÿyÿÿpùÿ[ûßQþo›ÿ¿)¸;8ü¡fþCÿÿQ[8B¼ÿ2xÚdw·§«Pszº èÿš€ÿ¼d5°ÄÝñµÊnO×! µqø»WˆØJâ²ýs…þ3…§ð(XÓÉòû­ppÿ£{º7ýÓ{âú4«?Tà§súï”òP“Õï»ãáXÀ`ÞhÀ§õâáçør?¨ØëÍpqBÜž\OôüÖN0´ßâpiÿý‰x\:#a!—å?HÀúñ?é@NOeÿGÂÇ÷[âèhñ·ä7.«AnøŸOèfþcðTŒõ¿àSDÛA~ä_ð©Ç ÷S.è¿àS.§j{²}z—ÿ¥~Êäü/ø” ö/ø”ÉõŸBŸ”®Oúú©òª~Úi.7[ø_ÌžJqótú—ƒ €Ëý_ð©wÿÔö„|À°?Íÿk¶ wìéÍûãúžÿüÇ {Ah ³N Ñ0»ú°ÎëZirOŽí1ñ)†mƒ ßX—û-J*KMNÈìR:uøÎò¦<ó…Ô"õ½ï~[#Jd{ŠVÇ/¿;³$í‰í´ù¯Dã%ûÒ ý”¨ºRßýî]üôƒíÛà»U \Ü…°4‹ð¯=û½ú+–F"f·µ¾×¼@¿«˜äˆÓ‹}\6ÍPh™;CB‹ìÆAùœïØ {úâr /ü‘Z%‰ Íÿ Ž·Ô×h'þfÆgå½.ëGRzR#JÄ ¼‘ F_™Ý4â9ßw¥k°‘ô¢®Ñ Ç7Ü»Ì>ÛêÚ×°½SSF†qfR.Då×±kíJÉŽe4ÉÈ|¹ÇË*k^ʧ‚m–®ìÉG Á~mtáížÛüŸ]fÂú—¬‘Ú¶„© ÔÐ^þHJøüF¬¨âm›Á»8âÕWƒ •Ï+M­ÂXæò”m]Aßlrê=ƒ÷Vti†—½†”§OT|&£<ö6YŽÏAÙNÝßG]­IMáSššBÄwkÛSóåÐÙÈ_5äRº_ ·‘#‘ÅÑ¥æd´ñ6i¢š™Ôod×ìvô{¢]GõÿØ$¨Ð«x”®©*ÊÁ-AUBIˆ¿iAˆÜu'Rüº!"·Š¹¡ÿÀQtfPõélôÃÙ‘I1PŒ³ÂFGCÝá ¾QžF¢êÑTa»àÃŘþbK‰ÞÕM•¼Øé|–¼±ŒÊHã>TäŽ÷Y”zѽâ÷HÞGq$ü„ÎoŽ[µóõ®ZOñíïðC˜Ò8Ö³Ëë…ðS'Ü”¥½XGŠé7h–m¨µI”‚tà(*Eµ{ôáõÖƒ$iÞÆ©-¼Ÿà±Áר]â$×íL!¹möO d‘lC,•}¾V¦oI húÍ>;¯üBEô=MýãÖ3Ì…8EŠoKÖü²“§{©¢ôJA£ÕkE»XÃï¦7R&m³ŒQyÖš¾æ'RQ­{èg}sèÔôc`ÑlÅrOK3IéÁa˺]¯sH:7 ëØúZqÂɹt#ù)jê4GB«;’±TÀ%Ú …5ÙóÒÆÎÁ¨FeëFž0&É+ÂSê¶p²àÍH®Iã)véB}„uXÛ¡À©6…åKR¾!š% „ÞZ&WKzô᪱©¤lÖà÷ 0ÐdÿJC÷ÆûAçŒ}5^‹% =·«åÔÝJE‡»ˆ$Ùe¬ÄÚžÎ÷©ëÏUtŠþ82MkJ\u¤S‚ïégDcÚýÁSÞbκnòçp Äñ1'ŽœË²Zýñ€‰,óñÅÒ'Þí.ܓӽºàJ ÛqéÁ̬†N Ó2?÷-9DH†ÿõû@Xº×:´KŠºGþ‚œæ£D{˜ž@ùbéÀ´ºðÑݰB‚ðº°Èžn½ÚS²Ç¹w£ñq4¥÷~í)—ˆré#7 sªÏ Vï[zg…‘¼Éž2)ujÂ6ßœÔ#»„íÓvÅõ}¶Ô>Ыî~qKÁÎ8¼¸GN]ûŠl *qyëk·ªLmå8ÊV=|Óñdz‡Þ“VJgbb á(€nìe¸ nÒ A#U9Z‹âÔsëïÊÜï($§íÜz™†…D¸˜c•ó óQá>7 Ä >#ÌÀ e+¬/‡]®s¼òæí‚¿ˆG5Ötwoûô* yöv † VTï~©î,Ƈ¬çjb)j“OÇ¡*²{ÅEø~±zÄßb>í9¶ÈæWn¯›Á7§C[æIÈúSOååòƒ%›A8$X³×²K郙‚‚õæƒ ôÏjªÔ<ÖP~Pþ òkgtí‹èxIÓgCµ4NñÄÝ †2‡Y-ħ;M;Q_•™…¼qâÁÚ[é¨@Eˆª£ÄìÁF ŠôRKTî6Eë:¯2¦·’Óýa4‹sƒ1Ùk×ײ’ñÓàÜ‘ö´ÔAhwí—AñIܘÍj¤iÊâ±9F(™½#x‡³¾4j‰‚eP·.%qcJÓ®A_œp7Áwð…C“‚_PöhÈr©K—oˆ Ûð‹˜zŽ0#y7ö=.æÉRÕö,º ãø«çŸÏ*ÇË}{“œÝ]™UJÝMœH2Œ°ŠDkâ߬@ÐÝÿ1iA^ŸgÈQ"†úöŒ×‚8¸ßOCeý-yp©#F'‡Ñ€ÐWŸ|®yÉì³k½¯¬‰+=Ó„Œ¹Í2ÏŸï$Ô@Î…Ñ>‹¬ß¾YSv¾PÖÖ{’‹ÃjªàOFM'‰¡Iþ=¾5ˆùî( ̱7ÀîøMNòs ýuô‹ãyN”WL†E—ñçF!1ùøq”ÑQ³~ßñ„Qrºú±V­a‚ØÍAZЀ*´Þö!—q B‰qJH†¶;¸ŒøNb[±o½Ôî¶ÆNóK »ÁNð"íÅjwÁF̃Žk;G´ˆ˜,Þ|šåcRaXrØ>YuÇܽOˆ¦žŸž¬ôìÝž^æÆgÑÿ¥wØ­¸×Va1CdÏ?c¤Ý`RÛ´@A‚wлsò(½ÉgÃm Õbðï.ÖB¨" ­˜~ù¹qy$ÒÃqu«˜á⦷#¿a’À佸¦¬ØÝ²Ïòà´ýý>ãþúž(¸NQp.©T9í:¶ ¨eÝÃÕžt‰ó‹ští(;L£óÍ'>Eá«hÜl"”0ˆWäBÑ.1òŠ%À>5kdAIúuÙ’¶„,Eûšš©ÿ­I„•ªŒ{+³gÆP?#`FQ…ûhúƒNÐ`WÖkÀ©»¢ôBJ]*#vŸ ãʺ¦okå&”gµ¶ädV(8Á@Q„ï31ÊW*øúPèKËaXP]äP¿}ÀŒÈCW®œ§3m¥¨ÝI­ô³Û*Ô1síW͆ϰê8'=Õ׉ïeë’ì·½ñ+VÝ•èö˜…°ÆÕØk\ÊÄTè6¢»)@5k2ßùä_ ¼”¨)q¡:žJPg¹:à!Êíþ¹÷Å–…uIhлi^IùËxNmœ|,ø5¤íàt$иžŸÆé;¶6=JúFØ„øBdtb594ñ¾q‡ß|$µ˜}}ƒkúØ&Ê/I&üyþ[B+G}NÑ‚ú~í*'É&=ÂYÜ7bÊ {(8­4*Áü¥ÑÝ kªÔÇ/[w¤qS_Ym³Æšu­8Là!Êh§zÑT,=G›ԃóšu[ {>!êæ,;D¿è-$Rr«(DEÆ:¼€4wŸRû- ÄwK‰®‘Ï9¾€Ü¦? MèÇlüÜð®Q©kfÿƒl’»èïDº9Ⱥèjé9ašUu!æGÎÓQ…æ>±¾LÙ9Q^ÑG„lYÉh_ˆÅ~йÍ% «g-ôŒ¬9(+Q¬¸æöй‚±kG¾<#¾ ,áV«(g›«í.W5Îlé‹seÙ\HÍ8Ú[{¼“Zù<ˆ‰)¬ël$•`Š:2€XVtn©äiN ÑR­l¬/qþˆÙBd%µÃ¢mÒóh+¹hìî,IwàUœdæù]Òɧá4»eù¹ò7wu%l¦ø†ãxâ~}ƒ ÂXš—Óଗg\þ®×Þ£¹Y‡ÌKþÂÜч]À[® Q}ÈWîHÑßωwj]‹1½£^•ËžªÀ°3®}tT‹f ¶Y0Ò’õê™twÏבSAgÙ÷Ūex¥*2mÀ‹KÜ‹l퀛bÇGÑÐø*TÍo,øŠ5w›Ûš$ ØõÖ& nÁ mÛ›$ÖÒö(ß ñ$†góÃ7š¨ý›¥¢ÌÆ[ê7‘ÊÏ wÞ± ÑÝŒÍÕfÅÎþb+$¦Näù1Ë,—ÉõñxvdNa"»7hbÛ žˆmkDb ý|ÓT½­Fl댸*œ{5:ô€ì4@½tæØ®VÎ^ªkÜy†\¼0kvÄÔ‹_ü°Ð2&ÎVÀ¹çfÖ4ÉÎôö“&ËâÙײ<ëîŸA¸ó}:…ž/%Gl󻉙hò3@~l™ËbAfš…¹ÆˆŸËf´URáêÆïâTo;ýÆ®3¿I5íÛóXòõŒrQïj·~ýù½6§AW†÷ ã:‡Sf§Î…Gäé`²LyìÏ”–ÖžÙ0¶ Ø@çs«Å†— r/Ý© ŠòÑÛ¨,yÔÀU˜ÛѬ๹ë5ˆöÒK/¡6éÝty¨^ê+mÂBäïtù© ìàìOˆ™ŸBÉíÆït…¹IŽ4SÊ`5Í ç&º~}îÀLŸuµñÚÄÄ3(9ü Yè¤}öMöC_Üsðtûn\ßÌ5µtñ¬Bî¼}#—å«‹ÍÝzå•«ïÃ-舅Zx«xg¹ðruÓ?Î~Ù_»¦ÙJ4g™‡'å[Ä•kÖ2Ø1hVG´ K`£5)8¤ªOH"dæFn5ß¼½|¶’TÎØcë~ÇØE% A7Íp/ z¥‰A«ÈL»ŠÑÿ­âæþ¢)bãiøcAê$œOø3ŠØüt6Ú”­ òV‚ÅÖÐ ýoJ1™É‹¤MqÜŠ‹ùWJ^1ß ±;÷tëG'+‡á]9zub‘+{dê \DÐB……½À dí)_Ù:ÄÈvIovYÎïlëºtæwæ´ó€`Ôû¤{él‰mFŠPÓú•]RmŸ qkÜè½4–k;é•&¯HKM+±šÍRÓÉxö)ìÞB™mÇytš¤:V±ê:.z„¡Oâj#Âþ/)—´y7n¥yØÔC­öi¿yÀ) Ê_$qbŽM©«‡È‘Sn~Ú¡¶%!Œ-ö£Æ;~±#Á?ùš“ŸùÅÆ-á”JD(_‡÷ŒÔ;ÂU¤Üø¯23? ©[;ß\ ¾§ä0¿ÃM~“t2šDSZÆáW~¡­¯@µ¢Çµ‹»ªô¬“å·WÅ23pšs^žbº}LA3'9 ŒÊÛ½lL€roÛ°¡>K`íÜõ :èãÁªF-ÂÃB‰ç'O wVõÁk,{8/PLnæ£~ñtð{¥O.Bµ<Ã%㸼'Ec§§s3ÙçE¡œÁ:YÈlCÄRŒØ]1I¯ú&L>æZ¬Ò©¯–:/Zôþ&['t:$¬@;¦Ðäåâ0Qvea"'µg”¸ÛÓZ8ÏÄ‹·à’v ¾ä4‘# ùR%9ÊêÍ·ˆ¶h¹=oæWÇ­UàáÚ d5ú"jñQ}—#4Ïÿ$vÚÚ¾• w ÑÎ1šÚß({lÐÞ¬Õ§T =!7#‰&ޏlþ$³|{AŒîA?±C¢ôš¸TDoÂÓú{ ^î›ëw<¬®¹dˆáë ¿5FØšå%b‹».ȹåèK£-oÓ"§8 ÜM²ŠV×0YY§~2…ŸÔ=>Sá–Qn7veGQÕI&§ÆÉ“¦µí&EgÏê'óÇÃøœÄç86’i“ü¶G߉ñ—–uËÊYjÎ!qòv­ÝÉ`’ÒÏrú±Âû“êHÄ/h‰’ÎŒ(ñË'‚‚^Š}¤/¶bdFN¶ž|/­§« ןú)~Aò¦¹šä¹(™šlºGjŒ'`èEÒèúV¤ {F¿^- —”°°Vòý;pSÃW]¢ÐÖ'ÍNò}ž™:û¼m«á•†`-×v["˜BAv|ºý1£ÃKÕÕ£·[šŒÒx¡aäú¨u« ¥`Ï‚$­ã)ºöš=D@’P5â½<˜R±Í Ð\~lø®×‹ÜèQq– ʨpFV ÀA‹YЇû¤ŠHõø‰ÂåÃÒ¯hœÁu#örõÒ˜ÁÍ24ö®_ÓrÒm·Âß;¥–ÞÙÄHMÓµEñ¨Òë­9 ˆ´£¡2„|2,5~0öÛ°sš}±t`h4k-Ûñz%}A7§AzÙ†vR¤ˆán©®Î•ÿrœN•uhgû›Ø{­Èí S‚YV‹ ~ûB‹—öÜÉVv«þ ä°läer +Åþ²¼ÿú&&O/èmÕR‡$ØEÈ’õ+I›ö“ϦHYá¡À üþ@&ÂËye™L~àzÖðpp"a’w þ›im–eK×k$K%`ƒÈÑ¢©”¹«E…ÚPéû•kó‚X¾²ëµq°µ‘ò‡×¯Ïäx~RÕç2àä:Û®ŠEcF2©?“5 ŸFê×÷Q¥}¤ˆK«m·s‘YdÓÄw˜¿{ÄŸã<ª¸¢,Æ;]vD†*Ö¤€üQ]ß@@†?é5?­ÎQ½í%žNb–k±a…Íò夊<ß™­7¿¦{åq\2ƒ"8•Ê9½ˆÊ¸¯êJvÂz¡ÒºT,’Z4õÐl?"+†R…7ª¤viæzŽ¥rCä­5± ³Þ×%gGÙ|WJ~ú<ÅðûÊ‘w¹Ïr¬fNÒº5¥â×¾°W1æ¥o|»oWîá ‹MØ+5épóí}íõN±b’³ Ê?oLjjªfà+Z¶Ò>í¬ië¯!+ºÔÇgº©tKI{\„í¨èæÕ?~V£}œ %#Žô±›¬¡´ÑÑ;ØUü¡>öÍ ,QS¤ù1fW€¾0i;e@1ò)¶csÏîªq †+±Ó$<:Ý«ÊS¯F]1T°äapšñuuXj@n”~‰,uøúuœ˜_šæKÜŽ/ÉbÅá^šÔb3…£>@à N¥xèAìð$FO ¢§ÌLcI硹ɽ4u!C™î‰«¢nsÉçïXØ^Ÿ1}_ç¤^+¨I‘yuÈ]BE†#®aÙ –BF’ß÷V„aMçÕñm6Ò[Dˆ§k¤$ymsÉÌYŸËœe_0ñÇ4Ò}¿æã%u$r{¶Ëq¥ž±IOtñéœüܯfÒ9×iÞ¬ô™J©(%7^K›ƒ!+;Hðd”Öׯ¦™'ôhbC mÂõJÞ]‡›OQƒ¦T:ûcÛÏG ¿xìù”U‰…(Ïx>’gÎÈ“8&¤ƒ«oýI¦â‚žë4õožÞÍ볎¸ìca„¬¨-½Ò"1+*z/ßÍÿ¼€†ž³Oæ>­UÏeÔ3Ô3|¦TmC{2ß×=|0 ¼Ó¬Âk¿k~èf¶³:=Æœkˈœæåd„$;¡žt<ãKÞY×gÉõkW~èÂ(WðYÂIþrºè[×|¥_xË׺ˆ$¥’Ù/·ÑÈ‘äï¢.ÚL^q…~óH³W­S°Ë»_ÉÍ@~6ø¸gL®—²­.ýƼeÑ0áuòØZÐ~ h7E`?Ø[’ à ˜ÄÇk¿~Û½©÷½}ü%ª_Ø8DŽ©?¢?ª†ää œa㸜Â{ŸYšC\fo”‚‹¤×ÍË¿+˜&+'ßéýªBá$¶žµ#¾aB/¥c¦B+¶:ãCµ¥Äe"å.m>â´ &I‹›ñB~¬—´AGžšÍšÖ1ªô4%/'1å*þ¸E *Øø½WÀwÛˆQ£-òùn†OýÇY¡—Õò¡qþy Ê&Ô°3»³õÔQxßþ/>åáòüø¦><í¢èfY_V°íÛŠ æÅ™GMœ&8ÊŸy¸h0n|WÆüÞCTéßê£Òƒ§çdõIÇP/!Å­QÄiSñüj¨üÀ‘‚s×½Û™Ò)g^ò˼j¶Bf¬ éÖjÌÍK©¨&]Ò‡Ñ-‰ ÍNqÞ„²vê-œÓ‰¦‹åÇ(&ë¨ØnYr3‹)PàÊ ,Â\8¼ÈWÜÕã´¦›¯wõãÊ=Ó2›· sA½¢¥uðå–!ÓŒ^Vü7¬3Ò“ù!o{ìí¿õšÊ=4{ÍPÕº?Ó˜éˆôZ CÍuâó$KÅû¬,•—¢ŠOØò¶É¨ŽîDwUö1¾¢òkÉkRâ‚@ Ý|Llíµæ@½®kÌÐEL´†9Înžô\—ëmÆmÆÖž Ñf)Ù£]‹¢‡sw+3¡ˆÄWD[¬äã ìË™µô¯§ÏôÛòÄïê÷®ˆQà÷x"ĬõM]§"µ´=¯—Ló³s‚¼Z¹}JÅ 3иFæÍNWœ¥Ñ*%|«W’®&.Ô×àq½‰ØQ®ñ6e=¹’ÙŒ¯…åàŠ=׊.*|ÛyæjP®Òõ&çŽPçG{´®lñ‰Äo¶…çd2~&ŠÊ erU6?ü0¥ˆƒøó+Žª@ŽºU;ªÓÁäy\/š´Š}aÖ×Ï’Éëp¼V ï€×f2ÐÜ^pà€?í‹wÅB}W —5ZQ(>$áÞÜôŸµ²½ÄÌŠ·v0àV?·— »ÁGèyõSÍsT&:®Áz«Î¨:3ûuH3*»6 g°Cÿr1,ލfsoõ@ni.Mi¡‡3ž a“ŒÉ6‡ 7¡ê½ó à Þ"«½ÂÀØ…—{ÑÖc d…1C¨ 0Æ(¬/”2§Ä«%cT\®Ø*ëœ6c·Æl¬Û‘v_)u¯Œ !s ‡}µ-ôX )o6˜ií!„P­HFæurê‡^àÄpDƒ§j|ªÉ¸&qŒÒ놈qo$`ÃBVØô¾ ôÎ ü”æ*•¡¹wôìã+‘XÛo"¦1A1KŽ”ì—y×Ü\‡½­Ô†¦ýSéöcÃ1ã@Ӥ䎫1ÒHŠ…ÛI šP7…nw&ø€dJ7Y ]ÀM\sç¶êF`1ÈÔô‘=퉈@î§3û†ìAŽ^Þ6¦îœºõõS–õ‹èÛ+;~ä3îqšñòn:R[¥? ¢Èg#ÂþX®w/åŸ:ôÒt½ž»Öü"³rƒèÏH`,Qn[AÊIÿÜD‘§â ‘¡”ŒlÖvÄ Ý pkw쨴9Ö›»w?ØN­c™3†¾bb_&25~8¦Ñ®Š3×øZ5I$ïÐjÓì,!O‡*ºÛßö†¾3Ô-ú³£{Kí}—›ß|ijÒÉC«Ù½˜ ê½€i!&|É÷A%íVˆøÈËVt~Þ< Ö ÅÙ2ŸŠ‘ÏÖ({©³Ý)ˆMØhZG)×HMbŠ^ÊŸ³tEU4[ê+oøÊ¾ÂûNêáRö@\D:øŽËÖ,vÖ>d4*qµ˜ÄQµIë|­dLÓ€ñ¥«r×;™/mo5ª»gê)6´à²â—'ã“âvk½:2iAažãì$ën1ì»37°šý9Š÷eh‘ëQ,MN#‚qx’Î~ÑUàÄÖ‘_¾6ò›/ájéÏèý§‡ç bËtî×⤨!­óÖ£ö^jrDT‹_?‡P¹ö̆ö ¸dhp†°÷åA×Z3AB{ …èkWÛ¯C{¹ÄGo³0 ·®õKÛñ}ƒukÄHœCr܆µk–¬,œÝÃCÅ“$Ë>àÁ½"±78­ ž5™ÀZc”ˆ ‰è™‘—Õ¹[÷;^ÞÑ#“‘òn¤ö¼ûü ûºô¢¼IîçË\÷µ%4¼>–Æ‚‚¦ã‡“Oca‘ i‹¯8:1‘D´`ŽÕÄH®d½ ÂÎþ[®&»ìD ƒ?Rü#в¾|iùè¹#’9¹lš±Âm¥ùä ¹¬‡¹«’ä,ÉK7÷ª”c …tåh’æsɆbhé¶³œ0µ¡Á´Le„þ›> Ls=6 ,SòQiœÂ‘œ‘$< L´JÙVšLÖ“šëò—„—|Ó}{ÑŠïò°µOc瀊{B…ÄŸ:¾zhäöãÞÿÕO±%ìzHaInS­nbÎæ}±…3Κ–ÁZÂðz+Áí%ö~J«\‹ ¿t.œÖ¦Ô×o×äâ* KE~¾áÁ»õÇ,«aP®<‡ìp¿HýùRÒ‘…«!Ï#gýÕì—3_î[Ùá)sW(k6E#sX[i‰‹½Í\Øå6 ÄSØ3š²Z’ÂY«OwCLJצFUÇ øÕØ„t|*¶=(Doš1Ž@k¢ØìÈÛM*šp¹'YÀÃÿ…Â\{{JwªÜXQoŒàHÅöÖÍ ¦à°0BócŸçæUÐeÙ~5ûBæ·\ùšùÊ«œ8Ç=WR›š²+ Í÷i_ ôUN Ì îô]ßá·· н¥&‡âDæa–PòŸ&‘C(á¿ä¼ÌTbWqƒ·ÙõOI˜[£è®XùêŠçÁºÓö0Jö"ÛôØh$& OÒ¯ðFÌÓžc§Iݲu²ê§¶f$h"z×VóE-‚0¾¥’3«Ìç^è}#÷, 7’Zø×ÌÒ~½²q±à°ÄŸQfQ§Ÿö} ˆ¶!ö"Èè?æ?„ ”´š«I£Ì´˜²ù~˜‘PÕÿˆˆ™†ôõ ×;ŸŠ’…„GLq‚úo à‡Ôzv%ƒ³!RÑÏg#{"þbûóõYÎ ã±ó"ÏÁ¥²~è6+”0­›E©¿ - Ãö|~ªâ£¬uzgíîü¾Ð(/åÿø…+¹ endstream endobj 1544 0 obj << /Length1 1642 /Length2 8915 /Length3 0 /Length 9970 /Filter /FlateDecode >> stream xÚ¶TÞ-ŒÒÝ%5”4 %¡twƒHÇCÌÐ!Ý ÒÝ Ý)Ý )]Ò¡‚t÷Cýÿ¾µÞ[³3ûäÝçîs´”Êj,"¦Pc$âÈÂÎ äˆ)¨²ó€@NV …–Vìh úÓŒB« ²wC!üÿ ³9>ÙÄŸâ €¬“5€ÀþŠŸ‡p|BíùâFÎ`S€+@ 9 ÐŠAmÝìÁæŽOmþú  7a°óññ0ÿNˆØ€ìÁ&F€‚‘£Èæ©£‰‘5@ j9ºý§ý GG[~66V#V¨½¹ 3ÀìhP9€ìA¦€_„ŠF6 ?˜±¢ÐÔ-ÀØÕ fŽ.Fö À“Ál‚8iüõùû—Þ“¼L¡k·Âß/›˜¸¼º˜ÓŒÿö‰ŠB]î,œœn €‹ÀÃÅðüo•¿ùÿÅý·UÙüçÙ€ÿ”˜A|PxšÝ_4œÿTýŸÃøoEè“”Aú”¯ äš<ýaÿÖÿï”ÿ?ÙÿªòSþÿHÒÉÚú·›þ·ÿÿã6²[»ýð¤d'ǧ­P€>íäCµ@l²Èìdó¿^G£§í˜[ÿ=F°ƒ$Ødª v4±øCBÝÂSyk0¤ uÿzk,ì@àÿøžöÍÄêé=qxº«ß.ÐÓ:ý·¥Äjúkï8¸_ŒìíÜP€Oòâàæ¸³?-¨)Èõ·²l¬¨ãS à‰ž'À jòëF_qØD~™~#N›Ì߈Àfôâ°™ü¸yŸÔúéØY¸¸~YllþɸŇÍô_Àfö/øÔÌü_ðé$àÁ§Öÿ@ö§RAvô_ð©·ý¿àS)‡ÁW6ÇÁ'ZNÿ‚O¼\~Ãÿ ÖÄÉÞþéÁù-ý§©ÿ…¿n +Èeajò:À²& õªJ„Ä…e{L`Šv[+™Å}Á¾Íé1¡2ÝoÕþB$ás7Ö×M úsáEŠ{÷½OuˆÁÍq*-·w1ªÛ-(ó_úÇó÷DjûÈIYÔ…w<îí<4}­`?=ë¥Í¶sâÅPÎŽré•r­í+Y šÝVÙ©|%‡zW2É©¡ë[8M›cœ1CD…àÈB†ÄˆsäŠ9}~1…“5þH!Äâù3’³ÀýÝGÔõÌûå2u‡NbâwDd°ç8#/ÝE¿'Êι} ÇjbæÈ½—ÍÐûŠ2/KI¯¿íÓãn9&×…(þób-ì¥+(¨mxçÒÇéè½d«XRøŽV ¶”k—@³ )4þ36«És¬wW3Nû²…©`cô`ûʧ°(|û$<z~Íw™%<™\Õæó»ÚÌs%úBí{xëEµ±µ1vW•§„¤s³±à—”SxÚ1—Óºv’ à NZ[ˆq"_cØø½¹Š˜•TWظ×,(R~¾N½57áöNª-Þä8‚R½êízÒ¥§¹•_†4áOt‚˜s÷ò{6÷+Á« ÕÀýk¼Äî—›Z3»ç\¾ß/]7,&[W¹‚ëÉd\mчbßdŠóÎisj~wN˜¨¸—!g½ ¼ƒ~YѨÑSìi`¾[ÝhÖjð?fV¯¡0@2\aR7C yuƒMozC*£Ê#ü†¡dö.ï9€´S-"îÒ§Ž)ËÜhlQõ€*îÍ‘”Oƒ7éÔz-拲nDÜ>×J 0™.«„ùϓɺƒoiC¡Êß^ÃÚ˜WW¶¦÷,ºJ¨E§ÄŸuzæÒ˜6û¤™ÇHÛ0úHøÄ¬Ýέò…¡mÕÙð¬ÌÖ¨`ÃË}Þzµcþ¼MùçK¨Ãxx“—ïI˜Àûb=ŠrØåëÓÝ~Ôû‚¸÷0©ÁË¡°kLçÁÏè|x8w8^ÂMˆá&X)z£z²/V‰†£Úê¹P²ç]ÀGsäÒè…穊]ÁFç¦f‡Ááa¹D3â+H¸Xã,înú *Íxñ›6¤˜>.¤0$¼×ÐøÛ¾g x¼àïÔÿŠ.ùÞ@Æ%{hÞÌGøvgÍÇ»üŽöMR´V¥d›^LÕøYÉõ+ì‰ð1Êñxi"%F>…¡IªçÕ9΢¸ç}ë‚ f…‰=OÓ‰èPÑÅÚà‡6Hgü,®´åëøG'RÅ5Oü­@ïâ\"ýüg-8î¼IF´ãerU œ"HFðyâ¯Óõ6õ#{C­r£4j=Îòs ÑËNïßR"ηcldògy·ùüü`HJ†Íññµòx#gÚ±°‡£t ü‹IÒ/ŽzxV]™™…b ôyü͵*ÐSg™'m*‡Ô»r]÷S ¨°7áÔ…sB={]cC nÊ{xPæ…’ݹ¶ÂBùWÃ@ԫשÖ/ÒSx ^p(h¾”ó¦ñø2GÇÒ2ºPr “®Z uäÅF>SZÚÂ3m5v°Â5¿©Îl¡²‡2ì> Qè‘ùÂ]¢óIÃæ'ÇVÑ¥sÛuŒÎÛ¤° )2Î*q)8,¹úõßX;ZãtÍ•ÓóËâÝ~Öc"70¢…é´›wÐ~‰[ § =,z¡…Y-•¿—ÇMã¿u(4i;”@ØNèsCñ€y÷¨DÌ´V1²Å(ÊM5 ÎtòL†ãûÊg±^̧’Œ“ùô†ÿ@‚«Ö¡=ÎÃ`‹¨Þ½j˜[<êÁ‰­á|7„ÙðJXM1ºª[nòÅÏ{ŸlÝ׺°ìk'Iv´‘@®9ÇÙzä*&&r^ÒV~ã·ÿ•0éúÕu»ë9ִ٠ͼ™Mkì…(°¾~¹ ´ëäYZ1¶!8î@[ÓáTª(~Æ>¥hàYÐbQ\£_w—b† ‰ÕZénÐÛ,$ëæ m7¡Œµ¢á…v…’;â ç0/-é+W­á®¶¶K|ÑLÑ{q 43=7½þÜ:¹N¾ñ€Äÿé«MðKäùäÀ/N»è”¶B™]&Îo}˜‘G½,CÁ+Ùo>†Ìâ2’ ëkx¤œ Š–ûcí«Iø»¬ú ,ÁÓX>®hÐÝ|¶Äá{r¬#, sôÈ0Þºª7 Œ´\ZßuÁ={|'¾ ¢W }æ’îÁ>ufôQû£¿“2¸Ì‹{7AþG×5çíF¢›ÀêÙ`[tÎÌó»8 %X„æÐÏæëÏdˆ~`šEü8};Á±QÁfÇ×`U·VóDBoêRÍ(¤bT*ÞäcDwºÑ…¦†Bß°Âý¥°ŸèÊM¬ñCÓ—•ËRbÙ½Öyñ<*Ÿ˜­ šÁw(¡ÊÃ䄨Xôsõ÷É7x”ËlÏÐ6:ýUäOGàMçÄ?2…Êt•á¿Æº.=ÇÓ@ò‡¯ç„ÖE)À %ÁdìÑŽ=4E¨êá÷dž2SŸÍ„É«®±}, F±Œa]®? ¸™EµíI‹v]Ýp-U‹´qÁ³Ü/Ú|éÍ<ƒeQ_ïtk¬Ó{w†•Çf^Ãj(FõòQèF®ž÷탻S±ÂDóæ“Oú|·#•Õ(<|!ë|Î ¸ﬤ1˜qý¥öž­‹Æ¥/I"²$ O{ÃZ ¦ï*7%ÉkÃ"’*ü[lM‡f…œ¿ÎŒ†ÆëóåWìÈ›Ÿòˆ¿­ 5rÅ#R´ÛR9ÉÑ#B,Ü}AX穸Æ2¹†‡9bTƒ‚>¹›WY‚‰8$›£j§%ÜtEcG©€î:ŠŒTÍTίä)«ªÑc$sÃ3K‡Òƒ1‹-Zy%ÇHĪڨÉKú:8ÒŒü5'Rse.]ÕxêqüþÐÕ3âœT/üµÊ”“7¾àÑÏÛ®â†uv*.fE¶‰m’%KM×%Ôô²‘Ât°ž_ºDÉ) ïŽöóÚÍ}•Ø 6CO1-Cëj ü_@?2 ¦lÊžpL…úŠ¥UŽa¸m‡ Qô«QcL4"û¨ióGäy÷ò¥-Ç5#ûÈsèkNnr­%ƒ)˜º5­øïFYxR›â»²_kg ‚„;³— •¹y5ŽVDO ‚ªµÙùz0³fnœ½1=¸õ”L‰„… ìM£3eøÍä@xUžUðº)ÃwÞcÒØnÁ£Z4÷;åÅQ€/4¦yRcýs±¬¦W‚õ¤?Ð|²î·¯ÚŒGíÏCÄ¥­·¾Ò5š)Nt-NÑh+—O˜TÁ ­Óh†ªT=—,BQBÜ?ü¢ÃóüÆÂüÙFòÝQº»¯^Küú(Ž!ß`ƒÈ…¼0I)5ëXÀO$£ÝæÜtÊÂgp9GÀ’9Ú$WÞ‚ŒdrÛÓ»Xªý{X5Y\;¢›x­ªätaê‰ù˜‡wï•ñDJà‚²¶ûõê|Ý‚M`5;! Ø]ªG÷š½­l&ê& L„K9òH}”™ÑIÚ» 7ªz…f”ÒÂû²ã£b½íp\KqN9×ÓNç2ä󳋸rA(‡Aûc±¥¨A-ÃÝù`nôØ3ùÇ¥I6%‚/uÚ80©;nE\HËÞwiv}ìü¿ÿ­L „«"0öÝ1aæë HØ“´|ï­*“~¹+)>†º–hX­H±Ãý(Ö™üüëÅ» dÁ}9ä³µ^µL¹œ7ˆ IJÅKÿâŠsdÝ ½‚Zá*6ÎX­…SZ7Ôþ~¹RÑ4œaKU›ÃiR‹—Ÿw$uaFT¦éûÔ0ÓjaiQ:Úx Ó©&ƒ¬¡6°WÇ–Sß"š;WÝv±6o%Ú î¥I$“ð ¸/Œ0Xkõõ¥»ªSÛëè)÷›rQ¹Öx.qŠçúÈ’æÅ%áQÆlWsßW2§«ù0{mòã%‚«ZçH.¤ÂÐÇ4’t{>‚ܵQlÚF@–ÏÏ+ 2nužÝø} Þ¹r³ò>¼8y™%W2}ìk¯†ÁÕ¥†4Þt>¸, _­Ì9jWé+I2¼£(pumEæÑ¦ÛGaÆÿ“mµn>Yé¼lbÖ=nDd Y!“y˜X+~ª“ŠFi邞bVÔj@ˆ=8œˆpƒùËt26úª¯ìl‹„¡ää½…÷ê| i_ñ)Ë왎 LžàóàÏÞØÊ‘ÇšI;)u(oŠH)ês¬ ÈöÖÓI =…MV`òãV„>~$óP†|ó&‡tïi¨\Þ¹ “ÄóMî ›Zi®l×ÜÎ,B•0qÙ¢K»&•1_X ˜-SÙeK¹˜L«5E!·9,ð¾Ðð<°žÔIB_Ú+ˆ´ Ì”iXK01éÇï& âô¨ìsò2 óøT¨Ç·<ÝYIW¶y5¹™j5œ”#胬J!¼ÙÂ!Ãh;TØÅ6Jìlà9˜öǵ4 Ï{æö¸Eg„N%Ö}[ÞWɆù°WðB¢™ðëXûÚÉÛ•‘][x¨„[©2eê'Ùô£36_üxˆÒ–M†WE“ôSF“8sϽS6ßJ‹¤Å½$硇¯çm„ ö:¨>[Ž’¿ªõoa•tÞF,ñ|È’R`‰‹9ô.°ü§ÅúÀ§¶ÑG­æGØyÿ¹Ÿ5«Œ[€—„£Œ3•)¼ò¥ÜÀP$¬„"‰~¨©™iØlTÕh@`ìºÛU|ø‡ïéžúª:¼#5BÁf)*LXLÓs¯Ú+wîkÑ»"ÄЈhkxI|0†póSti„Дõx´.Ëûž'd>§Óub¬žÀEi¦À•» HÑefW˜ª)l"\¶J+bØgïtù]»JÂât˜¿[é°™µ‚ky«e± ¾fÐ?P",®*;šºs»Âa«ê„ùšZœCg÷X­œr?wÀ¤§]oÍœ–¯c’L_éáÙu™ hjÁ¤N8AÏòÙ2“nfÝoíÈšW\8pŒ-*—F`ieä9û{ƒµ¸f\¯ŽîÒÌOuv)ÃÕØvï;+MeJqs(Ó³‚_M|ßeˆ ½(X2‡ÏçôI O5¢rû±»Ýïú2P_êr¨UÚ9¾²HW|„Ò‡?Uû9jö^±²Z?¹;¼GÏë$V}Ô¢¦urŠHfõ’`MÃËÂÀ€C.Ýýã[ÿÅ2ךJ±¶‹Ì¥—7V +L̲î†5ohÒ4 ‹cJ% ]·ªZÔ“[žû§v*qá.‘Œaþ£pH¾¯ *™‹Ô‹ˆ‰a¢V.°LÓB0Ö“¿ã¹ÖÃåå]–8ƒ„ ¬m1®Ø×&¾Ò¿†…ëŽ43Ž¢§F|´",ØžÒ.É9S9[=Œg_|¯5—e»5Eº00êp³ðCºŒ±O‘Wwé³Ú?r Ï#غ÷=wÓoA8ß­—]Ýg“ÒÌ·î!ˆ„øðÕX™ªÝ]²ˆ'÷G@Ò㈤ûûxúy‰NΞl–P¥Õ„Ž€åáfCbÍ>†¼!ŸGUX£©oÊõ.G@Ô,™Fê7¶†t¶Oöz÷‹N’”%Æ©H³Á~£G‹‘²ûˆ'³¨³!öX¸¥ŠEøÒ*¨Yô<Ÿ62R¢À±äôlÅ{èz…Ç=* EdÒî º6C蔽¨ý¸,ÙHá —ýV^ÑyÞ“ "¢‚Þb!±0ÜéÉB[<éh8"½$ˆ,*–ÔYtÃÄk³º"_&­îËÚŽï—çuriEÜß$­ )Ÿ£­½ˆþA0€¦ÉgÖ¤Ù…6=€W}'áéC^´a¨@¢‰ßiýy1±óÅбÛp\Œ“g$ÄX×Á¥0{d ¡_«6¼ˆg1{-eéH‘ÆÔ'Áì½ØsÞÔ Òp&íÂÖ$ÈþPné§Ðþ²/ûLªBx$`ëó›eY r KŽ]´rÀá % âJ€o¯éL‹Ú\¥r ÑXh?9Ívß|Ròò»1…Ã$8-øc¦tZY!Hž'&KáùöI_-Äj þËŠt¿go}l‘â: Ú¸GL€õ¦iqüQÍoºÅNI¦ZITµGʹHö ˆ¦gx¨÷YKל0T«á'½d{ÛX ìãI·ø€`K“¬çFEÅX³¸¯–éb>ëž¶ï×ùJV¹”ë|²¨`º-ÙákÊ­Íór’&/ÀÊi륇q²Ðܦ‡=x͆àüÃA«ƒŽà HEH%³ÕŸÄ”ŸþÔè5n™/>¿4Pý}³ºØe?¬²L¡)B$É¢dkMC>]÷ òDsÛ Ú²óbü*cç5RµàÆÜa@i¨exåGëá´¯E«ø?<ÚÓµB(øÖW͸_ ûšVÑ©mL©géW» å“/<ÎÐ*£BQ—ØÈQˆ~C]V±<áy7‡‘u6G£îG[Ó2&#ÎüZ$ó;Íí­'vh˜ÏäM^¹¤* à#ÂämÙ+ù[´§Ášló„è"4~QYÁ»[éDÌÓb6ç+L”¢ ¦—¯Xª#¾ÔC:¥—¢Á´æC⹪à1®äMÀWÀeÆqŸ"˜¨Õñ Y1ËÄ|ñÙº#]ˆ+ãLÉñÎô{p9K]C´šk'¬¼Dþ €FÚѦð¹íh¥#x³ÓÊÔ6 iø«¿¶­“Ðó\]9Ò¼%€ÑÁ¤œ9¶œr¬÷.ÁWšMqyŒ¬'_C¦á²Ká}sŒÏÆf/ób);®„Äb,®°¼X°'æ™_AnÏįË)‰L5,‚q±Ûˆu‰t¦ÔzŒíÚÅ×ÞÆUU‰3-%G”çz”à>wÒ‘ä¡/Ceàêi8+ÉéÿyóÖÆ„4ûù[ 'Šo‘àÒüØhú¤‡b <:‘ùQÕoh9ŠµÃ‰’uí£o°g¶RM³¹ßo*Žã¡×&3{FtÕÚ¯pON`Ž0,Î)Sk {Ü™ò9w’¼7òŠ¢ìýâ- ÈÞðfš$!“%Cï–c=Î~yNQן"ý!c/¿OàÌd׌[cyåâ†ðJyK‚äw«­–ÃxŒfdÑ-ŸWè½¾td1ç‘Q/Õfçß.&;Å\à·ËôWšïܧ×£æ3hÂýŠ˜h ”ÛF®p™ C‚ªH…Š ¹=N1—‘ùýLagÔ?¹íƒìc Ú)ïw-€ÌÝŽFa×<ùž]ËécÊ/‘ÝñBèöCex߯ÝpëS6ú\¸ƒ‚^|Ft¢î†Ë²’¸ÆTú‘áWc×*“@+™….׿ÄÂãÿƒVÕ,{ÏoÎýÿç3Oa endstream endobj 1546 0 obj << /Length1 1380 /Length2 5966 /Length3 0 /Length 6907 /Filter /FlateDecode >> stream xÚVTT]»&¤»K`hº%¤C:¤`ˆ`†I)A:DDRé–NA:¤Di¥KàŽ~u¿ÿÞµî]g­9{¿¹Ÿý>ÏYÃÆ¤£Ï+o³+à^> $à‘–žâqÙØ ðV\6#°ƒJþ7ÿ#0´)‚È0- îéˆJ ˆIA Pâ¯@˜‡$@ä±hñÔaP0—íÌÍ×âàˆ@vùk à´åHHˆñüNÈ»‚= ¶ (@ „p»";Ú‚\ú0[áû¯œÒŽ„›$?¿··7ÈÎópxÈÅð† z`8ØÃ løðä þ Œ— `àÿaÖ‡Ù#¼A`Òà±CáÈO¨Ø€ì ÐWÓh»¡kþÀøój|—û3ûW!ôw2ÈÖæê‚úB {ˆ  ­¬É‡ðAð@P»_ 8 ™òA\@6Ȁߔåu $¾?ÑÁm= n8âò !ÿ¯2ÈKV‚Ú=‚¹º‚¡8î¯ó)B<À¶È[÷åÿ=Vg(ÌêÿÇÚµ³ÿÁÎÓß q÷«)þ4áþcs#"@ PL\v€}lù7ðuÿv ü2#ÏèïsØ#!€!ö`ä ×òžà@ÿÿîø÷W@`±ElÀ(î?Õ‘f°ý{ää= >3 ’xà¯çï•’[v0¨‹ï?ῇ˯«©þDG•û7à¿] 0€?¯À+(Dr( C.ÿ]åoüaÿmÕAþ<ðŸŠjP{@âÈ»û †×ŸœàüS.\€wx Cò àü‡öæ@ -òGàÿMþß)ÿçUù?hÿŸçQötqùíåüåþ^+ÄÅ÷O?’Åž¤"´`H]@ÿ3Ôü‡ˆµÀvO×ÿôª!@HeÈC\þ¾D\â¶Ó lÿ Ð_3@–w@Á:08ä×g€ð?|H­Ù:#?%pä¤~»ÀH)ý»¥Ôf÷Ks‚"¢‡È9xäNà/€§Øç7¯ü|P™@ ØÃ`[Üù˜­T¸SmxëEµ<7ïæ˜Ì'¶Mã .^ÿy6Ï+B¬T®ªìÐ3ùÔÁn⥠%ÎS¹ÆÿݦwX‘Íɺ-×?­õ&6[pç>RöîÊ×õÒãÜç5ûpã`âŒÞ„ڡΖçî)N¨“OváÝ£âS×[¾81³©ûµJTïgù$oœa¬yHÉÛk›œijfL/=öÒ>DS§gŸH_ß1ª'rãîÅ ù›® ¾¸œö[®0„wÒ°Ò˜RÓ£Ÿ’ŽL°û+l¥©SÍú—-õÍù4I1¾"àI_â%æÛ|YÑ{møPã52ß.ð%/ÎA×Gö%¹¦¬ÜʃY›¢ªÅê9¢FÈL¿Õn¯°@i®7ÃÄ—tš[´ûf° 7A¯7!–ÿEà÷WþˆWùò‹åBÓ‹Ô;•%®E>9~Y†Qz3ï¨Á oð{Öæ>›Ãí[Ÿ6¼ÞW¼Ð!•W>½èa»*Å)+¼·þéøøzÌËïk| vE.D™ÀÛJ¸ñ=D"ì²”Ö¾£jN¿P]á‹É9‰£°6ÔZy7,]4€F{9q–^TTˆ¶U[îöœýEµÅñ¬Qß7Z1q¼”Ž'£:;v©R¢ÞþÆq#êژʩr„¶PcL!2ð~ðn"flC80÷~5ü~÷¢’êsǬ7œJlØÆbßIŸ 8˜úxg¿¾J ”—l_•Î:vÅ‹¨x2â–|° ¸bßÙ^½XmØeçào&9.6§"Æl|ÈÆ¶ç¹TõIn[ä”Öø¥I™ÖÍÍ»’–¤0sìWÆ4âñ OmÊŠôøŠ f¦³(‘ŠÏ‘©(¼–˜d~º;=M 8p·®¥ìtYyÓ$¯K{vò$aXÑ$îÁêÅÄUíÜF1‰‹ërH¡Ouürb}–{v yêõL™´\0‘³'G—çZ69ä-ÖînIܦB \Ìø’·ø6¾¼£µ[<ß•{^w³ó¬ïsMAéÝÁ×@©îٕϤŸÕV­ˆm­˜tåÌY²6XH|3ç=pì©÷úZt0´O66<» èÕ¶MÚìÅ–qMa9¿ÒÔc¥ÒDSO‘éø™Ç´ü”¼âž! Y×I…Ò&]•ü„xŽŠpŽX½!h˜¢p¤.mBø\,¢Á̹Ï3Ǭ¯ô"éEö³òÊWÏŠhÔlÚƒÕ7³[™ç»Á/c«Í\UÖ—†ÓI&]ÁnIF}"XAﳩ‰Þ1牄lÕÅm/ßžÑeg¹¶abHîôºžHU[*†qÑH¶7cµB}[¢Â\ñ9-Ôv5Æ)´ˆí ß=¾r.ázÞ.·ÑQ{h¯_'òò)*Aô‰ØÁ¦Ôö"ŽÎùtœÀhE›™Z{Z­ÏSÍosJŠ‰Ï˜,Ÿf¯¨‚iîßòØy€Ò¸Pë³ý ¬«]ª 7e—e¶ŠìØ"Ï뎨 R7U:ÎÓˆ˜i8ˆÜÏb䣹cuH(âŒAÁ5Ýw‘øzÎn}ó=£ó{&F ÷âW%¶‘ÿ}Òø. »¬U3°sjÛ°¶q¯"o6•º=l% ùÜ]xá/ÇwÞøè[ä²íQ³h昳DXÅ9 ãÃÌ|ÂMˆDR³‰½,†yãÆ/F·+4PœñŸwÁý¯Žt1‡Üïfû]U¡fTp.†Kæ×Æœ_n"Ì-šÉR ÝM‰%–ÒÀo«=­9ÝhF]¶AjI£i´ lN¨¹IÓ ¿¢+4~6·êûª¹ÓÁ†àù½å]·¦†PNÐ2eP:Æ¥5Œ÷Hóâ0NQÖø ŒÎ§ù$û´Bã‘ÇKã|Á Œ;•&õÑÄöxà±¾‘šÛF§•I!þ—¹“ŠêµÚýn àìá*©Buµ^v‘ê‡ ‚¯Ì9´–«A„ºÑ·‚ôëTÞ¤OMÚR¶-Z<ù¨p–‡$õU(·e…]˜¶¶â2|€&Áƒæ¢v!×\×è§AQ÷ì”J´ˆý¤,×=\&,öX,•§Ñ‹´ÄÍÑ;†*YýK¸ÎÅy–‹¤) ãnE¥E½SÕ†2¹Áò®NE¢¾!‹†Ö•øíO"UÁ'W½/+ž’ÀßþÈ]DixaÜ$K\dÆTÊàp½ÄWgª‹]8ËÑaÞÎèšô{õ¶‰Ø6ÛôÉã,¾'Žlõ—ФðQTòV"Éãµ œ÷{Ö5[k‹iu£ÚäËêS› -°Fšž&eˆ×W7¡O͈Æl82ûð'¥¹_ÙP%ï ßpí{êj¸ã>½´d>¹Ðd‹'áüüJª¡[ûRvôÓ^ZäŒjTaM¯Ýü ‘¿¡ÝÅ^]ñõÙ­Û†é§ÈiŠúB³hKTó×C«KT0ÝšóDú&)6ìuúÚ2ÓZšcHdb~ë5 ]ùñŠÐKB)þ…ýÏ(Dã,Þ‹»—äæå„;+ýÂ}Éäº{£®ýß Ü|à ²¹R:é«,O- ß4l÷WáRFþ¬èy¬N¸Z § Ð±ÍñáTfÀ:›šÁß™äôÐόɻІÍ*-%¦µ'¼‚}éÊ"ÏG¡Žs¤Jû§4F؇«£Û(nPRõ{=\šÇsé •ÅiRÖ$”QB=ÓÓ÷ÔîK†  w`s¦CàÐ'#n>¬ÎêM®Š¡\^Ìf&ˆ‰Åèՙϒ)3ßRg·ûSz÷׆yN¼Jîж¦Ž;ÌBƒóòa„ojß=ì„c&é¨ò¿ÃñË2N’Ó¤×ëòr¬¼÷Ô1FJi¼š‚&Í8ºcA…&¹¿W¬y}ås¡¼ð1§ê 'ýfC­óÏØT<‡E7Š[„~ÉýëyÇVKÕÞ>Ó×$ 6™ óøWÚ ¨¹žÎ^s^ÊQßo­ÅÓEò}ÓÅFÅ”§º)î¨Ý´’òrN scmù'÷E¸hÜÆ»ïýœû¨ÖwJW½Lãúœ7Cú|k7^„uñ3zJÕf:4ã ^9˜º˜…å¢Ö=6š%ØëýÅZžëâALâÑ—W¶.ý^ßïÞ/N.S•+xœ&OŨâ€p¨"ßµ¬,YòÊpÅ(…¬=U§×À”{wׂ_eáÕ¢Q“£­×KÝ.Û/ÀÎE&©t@Ïúþæqn¡_„ãgGÑŸ@áúÄü—qiŠ×ÌÜ ÷±<´ Ñ éQ÷/‹6?ÆÛÓ+²tUgÜlÓ ÛÕErûàüµêõûÎâã׋ A*&5÷”±°àIžÓ$h^~Ú‚ …(º‘“E˜ÉsN&xWóÄ&\×Q…«òšÛ郶Õ`Q¿æÐjâ7Sû |Æ5BJK…ç|?f§ã+w.TíÉü~´jy«„ª]–ÞC¨ø1»‹ ÜÙ.¿@幊]ô¦ãÑ+o,×jC¯+É«&;†NøíFe51ÑWß‹^ºw÷;)¢-¶u¡÷I~'ú€¯S±·¬[VÄð­éÒ·¬2¯÷Žãé< ',h]+r è8b˜¼ýŒkÛ³®Ëdûbl¡““¼8³~îËÝ@Sk…Œl&׆_Þ‚ïýÞûäMNIê&Þ¬ú¸È1Srí™ ñlàk?[‚Æ–E¹ó§ÓËT9Ð(K» Uó¤3J6¹¹þT0ËTÕ ªæiík¹â§®B?<;Cr¯cšn§Í¦Á¼¯'6C䆸=$Ø=ëYkïf —4Ïvòe,­š7í×&¤`Œ¸·õiÜWfÅX˜=„œ1¸u¿/±°A$0¨ßå+Ÿ»iõŒ',X,‰bxà¬3­(ÒlÞÄÞ¸øš?wë÷³ÕEšO÷:q”ÈZ_£ÚW,j0;èñóàzÃ~þ<™´Ù1Á9åÐOt++ä^+]ˆ´~}àü…AFƒã’fFz‡xúäŒ;o°íÁ#:foÇ{Ú>¯éý-4Í$dãxºõ{‹ÐöLg* ùÕo8Ñ¥ûw÷Ôë°£'w¢ 3*ÔŒÉC|¾¨€˜“ÊdËr`¤öÏìÖ ¬Â¦)°,i¿mã¥É¸°ù£Iü ÏÃ8bé|ÚRäˆ Ì»F{ÔK EFdcÇ?n×Í¥TSò ØÕ×óÕ¥xL±åª$ïÀŒbzº$#×î“7nÕu«9‰åYWÁ%BŸ›®ç¬ÊòÙgé&ÞYEh/šY‰¼gq1ì äK–[5%Hwinаg'KÂtXtR¸W­ .tœf>(ÃÊxºË4ÙD;§Ø0—ˆÆÆí@âUýt*ÎQ›^D-µ$~äâ½Þg>8 ÑѸd(ó!e‰š©Â™È+Æì÷]ï.R2m–¿¾wOï+˜~Bé~)«Ïß•¥±@áñZȽÕg'‚ö¶0}5M,*vÖ© 7É×o(j:ãítnq­#ÆÀ׸£å zÚi«#{î’4´¤ø¿WÀ„ƒOÿíÅáÌ«|ÿ•êQ§ƒ(1Ý”¦iè{b›Î¯V5*ĈÎMÔ>;ÌÔ~ÍÄàü\5^²þû䪴ªÙ­ó;pG_*Ý©s›ô­¼ø½Jeïùàk“-€ö<}T}ÒðÎÂîß8¢gE òO;Îæˆ/ÂD,S’•Åéi?G –Ç[/ð³®´.Ó›½“jÙ$£åÜaµ©¥4½‡~JX¾2?9 ó0ùý6ÍõÇ•zJµ~·ã<ª’.Ë49°çöðhæä«e ð¤™ö¶ïÙ{7»Pô%å—ý‘hûë ^f“¯Úp£8~¦f5ØX^gV«•ñV·JñâŸÛ­°E*¨Ÿu<`‹¬Ž™ŸßÐo‹˜éžbuÂŽ™Õ½Òì¨rqaN)Ï"ÌÍ,&HöªÝÝ/Ú Tä•b…Ð7º5§ô‡JyŸÒÖ˜í\}".wçÒ´@ǯ¨iäÄ™ŸºÏ¥9²³¿6úñ\Ì\¬pTØé }FóVƒ†ë¦;®oóQ±‰28½ŽŸEÕaÒaèÝMëózHUvã¨B Œ랆o&s‰†ÉbÈ9VÈ^ð̋Ƹ/C­±Mt|lû»ª±èò¯ÎÞ§w7~d—(߯ï|= e‹E÷f?cvøpXúeÓ—’£Ž+›]ÜÄ9}ÿ{ðiSÖò94÷´Ñ!©iæ#Yñ>¡–%Ô·jN¡ìbý@é…è[ìÑ÷Þ5Þ¹Ína ²dB÷ÒD>ÀŸO$1ã?ªàõtæÈKkM5–Xs. ÈãV¸‚b†š|À˜ûRš”¾z«ö£*,9«ÈLóÉõH9³ðQ'‰«?2ìí1ÏÈ`[¥2_ÊJ gAµÅဣ’›}Û†˜*Òò-¤l¨çèMgü—åÁ–mn%Ê¥ü½ ‘C¶¢¤Æy~™T¥Î*40öIÖ‹Ï¥ò‘}õ ô- $@3æ[ÛJº?Cn2û‹ÎWr‹Ív÷#¾©˜=>i=^wÞd“Áx^á±w•¾È:¹Ž2`GŸæƒ£ôõÃ9¹ú®LPr„×KÂHù7jYYväî6z›ç:QX8Ž_ì"$8‡PoœÔ¤õêüµ°¥dý¨ÏˆÔÜ_n4ÝFªŒ¿ÆEƒ±}V/ÛwŽÇÚŠÝf‰ŠëÞË–-p‚_í`^»äYvrÀn æ’W2$õ¤cú!´••¾|çúBÔ‰iÌèRhÅ^—›‡(ïÀ“ü¢q~÷‚™zXU»ò”žÁNîXà° Î;Ö'³³¦=à]·î²}"˜Ç©$&¸r¤mÍçíi €‚[6Óqþ ‹Å%ˆ¥ù«p¢aö[˜¯Á°†ŽuXæ8[#i_r| ;ƒ¢£¿´n–,:VAN½XW¦½ól©šQ¡£\q/âYå›èP×±Q>VÝñŠy 2»+iTït®Ãã }ð=çµ,Þ–³<òò(JN¿‡óqÁÛê¢c©î¯'4{-0ØŸo‰Ð¿®ú$n’1­g\ÍújcZ„Ž*ç¦(¼óUL’²[›Ñ¾Ô9”åuó ³:8 /´žîÒ^hÅô$¸»çzÆû‡7$“¥BŒ9ïæÇ.þ#ö&1Ñg/M?3t^4Yé ŸgÜ÷0PBg›ŠÎÛ=ü&µ¹g ‹60òª 5ñÉ.ZݳÐñ¶Qw<=1ƒˆõ³«Ô¦»TäñäÍ\#•K‘ºO¼-Nªä°«?F73®Ò¼±èµJu1-åºdZšlT" ‘HoìüªÓüYÅá°0² Ó+€ÿÇ2Zrh^ô‹é\僶‘V{̈õý¼¯òG*^Î&Y‹p¹¯ÎSî"ë7'5üúžömOÈ8W‹åvÈ7´pj×S=;•'ªñîóQÒRÆgá\Ÿô'O!ÌÂF/–É\ ZîuyN%«³„î+œ­îRéˆIR^ôTZÑ­Yñ/™2yQ &C«?Ÿ'Ã¥,YI¹ªwmÒ‰y¼}N ž85tùÂyÛ_†ÍM[£6µýlR賲ї‘.®¨¥2Óù\:xŠHøìÌüIªv§')BŽe†ÖåÑ •WdÌ dj{=U¦§ÅÞôäûuLÛg† Wå=ž›SðQ-¹p6+NpT{¾ói ÛjF¢ØAbÙgÊjUUæî5à£Éän.᣶¼°S…0ž{‘;™át$â#2r%“÷cˆàfyÊÑz…ðj+%œ™‡ ™g¬^‰Aï°"ˆȘšo¹¡¼àDz>½ò•Ü%ÌA‡“[‚~á4wý§.¥—Î*¸cÙœÜ~ÐãÄ ÙèÄ/†–´øìZq i¾´”bÊ%u“†ßxVbtGñd)‹ŠÐ“å#Žù—m6,–@–Þ)ÕjEÄlJ‰]Ÿtjœ$/Ç)«¤¦'z†„ÅÏ?X¿™oö‘1éb1õsï;Wû\š?É’y6ýj¢ÿ¦ý©™ ­Ar+<0ÿ>YïAx ûCï9c¼ãØGŒ Zô±C™âôη Ã3Ê3. y‰ÑˆžðZÒ£Ëÿ+´x› endstream endobj 1548 0 obj << /Length1 1533 /Length2 7479 /Length3 0 /Length 8501 /Filter /FlateDecode >> stream xÚ·P^6N§‚H¨°ÄJÃÒ ÒÝ%%,°À»°,Ý)-]‚4H§”´HJwc€tHH|«þâ}ßÿæûfgvï}NÜûœóœ;³@:M)+¸DCrps‚D2jÚˆ—â!u¡HÈ”¨A¸@á0‘ÿ°Ë `$ “#Qnjp@ÙÕÀÍ àá< ðߎp„@쵨q”á0ˆ Pîä‰€ÚØ"Q§ü½0[²¸……Ù‡¤!¨%P#m!ލ-Á¸%‚ôü¯Ìb¶H¤“—»»;'ØÑ…ް‘`a¸C‘¶mˆ á±ü¢ P;B~ã$tm¡.`¸5ÒŒ€P€ÔsA¸Â¬ êl€Ž’*@à ûã¬úÇðWiÜœÜÿ¤û+úW"(ìw0ØÒîè†yBa6k¨ !¯Ê‰ô@²À0«_Ž`8*ì†:€-P¿/ÈKiÀ(~±s±D@.œ.P‡_ ¹~¥AYf%wt„À.¿î' E@,QU÷äúÝV{Üæýgm …YYÿ¢`åêÄ¥ƒ:»B”dÿò@Aÿb6$€  Έ‡¥-ׯ亞NßFî_0êþ¾ÞNp'€5ŠÄj Aýx»€Ý $ÂâëýŸ†ÿÞps¬ –H€Ä #ø7; †XÿÙ£:€zŒA(áq@¿>ÿ¬LQÚ²‚Ã<ÿuÿÝ\.y=M¶ß„ÿ1IKÃ=Þ< ?ÀÍ-Ì D-|ÿ;Ë?üÿæþÕCÿºèߌJ0k8@øTíþ¦áö—&˜ÿÀŸ Gé`þWö& ~%ê‹ûÿYü¿Cþÿ4ÿ+ËÿEöÿ{yW‡ßVæ_æÿìuðüËŽR±+5jpÔ\Àþ×ÕògˆÕ VPWÇÿµ*!Á¨É‚Ù8üSD¨‹<Ôb¥ EZÚþÐß=@¥w€Â špè¯gÀÁ ý 5k–ö¨§ÄÕ©ß&j”þûH9˜%Üê×Ìñð ÀØ“ÕxÔŽàÍN+ˆÇo]¸8ap$*€¢ç °†#~õÄõ‡ þƒð¸¬¡(iÿð ¸+â_@ÀCÝî€OÀÿ=êl.ˆê%ùáC!(ÿ³çp!mÿˆ¡wø¿9…\^Äà¿([º"¨gà·$Qõø{ÿûÍ@< –ó3pKÑ»ÚÖój©‡îë#â“Àuƒ4ïyD›ë%n2KUfÐ*âL*y ûÞÒ9æÓ§ ´×Þ;Íõ¸/ZµÞýô¹2‹×_G07FÑ;Z°#U÷á1þ#ݧ>×Î>úö˜ÍèÊÀgW!"Í<Òs÷º¥‹ÃfÖµ6ªT¯J'8bô¢M‹§€¹YÓ”ô8HŽÇx¬÷=ˆ§NÏ&ïgÞÒ*dzøîÆðz­ñÄ^L{-—ëò¸tR1RQ>Æ<½ÿqü‰·ôfŠòƒYï7…«ˆ©Ómß“¸6™½ÖÕµÏ[ߟ?ŽŠ0SQra’)EE¯¶(&8Ó%àðe.)¯z(}l¶pa×H€Þj8Öb•OÑmX=Ú§x¾³º1^?±-'AÄ[ŒUÀ[u8y^¨¡“|/ï“«†ä{áÖœÑÕùOk©'Õ÷³Ï£iÇqܼÀþY‚sîð´¡BSu1DÎ4É%:+V; $†^õ­l²;¯m/F6';ÇU‡‘á—;’Éš ¶4kØs(˜-›|Ö"­öTȳd²:ÀOñ›0V QÊ‹±´×Õ¥Ð7áagoâÙþÍOSb6̌ĎHm²ŽŒ:®w†‡ï×—¦ApV³³ýý§³ƒœ“ùüp옌帗ñ¸Û°÷«T$Ág$Ô„êE«%€H™gd˜hâ^è“Ø““ÙÌqp…”Ÿlk? ÷q8²@“ äjõ ªVÉ¥1Ã*­Ä€²3Ípj¥ >Oäm‘k>Ÿ,=Øõz,̈ÙiôtÚÊÓÔI‹¸—C"žM™‘1(MJ¦ü8¾ÇÝf²ÏŒ$þBÁ)GãõÒ€9œ!HMýc|ƒÀ‚묜èLÇí˜L/U^ø9÷Oþâå&ÛfOk‚’{ œB£Õü•–PFþ!Њ®Ã ¦ÓÕìÓy Sª[ëÏóßBµ^*èï$­•à îù e‹›boÅ™G“äí'†±n`ø nÒ¿&ÎÁ{¹m¹1÷Ãý1¨)£8òZÏÛ0 Æ9hæ¡Ô¡™SQlX¤eJmþ6¾«WMn '‘â´ëÓ3÷-‘Ã:mÑ0dEÆef"›©M|õ6©ÑÙ@èÍÝk¸‹{i⦖^ Kf£PTe?8ò³ÔspŸ›„GoLÏbP«lpÞ-0=Ê—ê€övÉ?J™1¨)X~gB¥•R0œ§Ý:«Bæõ¤@îÈí*ü`š/âIŠéη…´*«á[ù€%'ÇmRÜ&½ûUĶM9“µÙ]TŒî…&UÊV¸Bl:9râÅÏ"naCúñÀÉEɉª™l…Ac¾àè÷²£,‹{/qâ}·ƒÅbÞ²ìnãdÎûqø÷gÌOpâÛû,±"ÉãÄžOµh‹Ê+aä6jˤS¹äÀ°>µk=ÝO]òÁ}ט;>F³ÈÜÙ½²ýí¶ƚH¥Ç‘YE»JlÒsÍü¨K\ÖØŠåéÕ  pšÂÂðf>!Bm>UJü‚_ñ %·Vª}±mÙFÏ}ŸGUþm,Fý–Kä³­Qâ¾qÉ£Ï1>º0A\§¬±«î:ÑypžtâÒ»Ð]Ìè¼qš«uSGÃëOõJö;f¼~:FAf¶ç8%+Ô׎ت¨³r7p5ëú2-ÐmLÑ Þ@«ßgúȰ¬‰GØJPÑòa›%’KE;©Ùß"¾¿8Œ]Š™anrÛÒÙ Láo‰ ååžëpðØH¹3V¯‘uIB^ÝIóŒÎøKÐü\V¬ùÅ€–õwßOÚ—qø|ôQ8~,$8®ä{nwVåõÊÒÛM¢ÞˆîD¿¦žPUÜxÇ8SX¼W¡i/ùaØóçm8_h ©öÙòÊáP‚³¸Œ#àðAJÓS«ù®ìF¿ã)n-¡ )ŸÕ ns¯Š;4@}\ÊbÑ•‘ɽ<Î>ÄAÉ¿¯}.éôo-¶˜j{¦§§?AôË‚îÙªfèL³l—{ ¨mˆN%½¡gjÖÐØL¹éEÕß›‡-™ñÞä‰oµØìÚ»„ïƒægµSïñ¸kÅ™ã2Ùg–mKÞ¶ï}9¿#c-—È)o9噳õyôÑ ï.Îs‡ß“›ošÕ…ÒÂoen=¢… .V¶ñ_)?ý`ÎÆE'ÕÀSÙÜS¥L[Âr{D¦ÈM&1zýˆ] > ƒžM¶·éa«*fŠ+Å&°¡Ü­üVøÛúbGÜ>¹?Ï;1:.ž²üÔî¯ÛüÔ½É56·úè }øÖYñÉV2…”^«ŒZšœdîjÐ^e‡MÆùúê¦lÿ _þI*œõHv‚ykÈcRø 7Í2Kšå¾§ýBHp™®v¤ï’ÐLiLºã'§^ I{Þu¨øÌ¦—Aº8BN/tV ýœÔœ´{reS¸xW!))^ Iðæwª˜6ýL “5¬‚ƒ'SÂÒØ·‘/eÐëÈ+öÃýurÃ…¬Åµ{e„ÿhO(èViXcT™A(þ˜ºüF©?´/×þRæjï@¨:è©„–/E¨|®1Ö6éq‰×1“SÎ64V½zFšº¹š|´Ø °¹ö¸’øôk«=·$3Ú9šEƒ¬’Òk-§5f¤mü Å`ÆéG«O¾ëm_7<ƒV~ŽWWeé:Ò8t»¯”jª¯ôfµ2ÌDgŸ^)¶gÃÈ?Û'ÁÙÐ)gTÓô–ßçÓ¡±€ni¹% "?ŽQÑ÷™ÍÙ ãû±’Û9}.Úq’êÝ|—•úèËðöÛÛ\C >ŽÝÉÕúõowꆫz1 „Ëûòú5ÞÀ^̇rØfw*2YÍÇT5Þëíô%©tT( Î{¤h#Ñòê µ ­Ø¶¢·cêLëÇI!èÌæ¹¬G\_Z•j½Ýù i`úŸ·=1&¤ÙkÍ@oŽs¶ÜKó2¡åOOEß[åúQ÷Ó`<\yè‘}lÀD¹vh#…¿ÆˆéÖé<Ä M§xZFÐô$3s/Û*nðŽ,ovêÈ\ß½!RÅÈSK¹vŒSc¸&Ð&Ý2|å_ßšY6Î8–³[pv‚õ°×§H 9݇v==®ÿ¥ÂK2¥ÔFók{ç‡`ß§È&l£'YLñÝâ_ñx C¦,°”Šmé½æÇ †Tô÷^—HµU¡Íñ½Ï~Uüå…” ¯×òÐÖHÄ¡c«j"莘|†à›ÐqU‡IîN—>g]æK¸‰ý³\zkÎûJ,¶ûù½ÃÔî…Ò P™.'W„5÷‰å»RÕ=dM‡³Åht³áæŽáÌRÂÏ䣻ݘágjþn–< oxËAßvjŒ`üÛ»JŽn¯Æ¾_jl·Ó¿a' aÎÊì´¬”¨AŸ ›œf×àœ,ÆD “'ÖÈÅ7côÔŽ`ÆÒfäý<)f˜1DOa®i’ªìä²zdo¢§<šÐ¨Ä]}“’OzHÝ}ìñ[Ëè' ÿåN«÷ƒÑÈéF@[ߘÕÐ3µ´í«-°¯j – xδG8¹ÑØë.|œÕÕf~Dۿ£­]¢‹¨Y ´>¯—'Ø(¬¬¡eivFñHêI},€Õ_n®SóvÕŸ {E$(å4 ••”±o ŒbK·n¥9èÐü<['¨œ¦?FN”£É _›©²Ú»Kâŵ]p¹Ê[°fG_ÀÚÉüX]óÕF¦ª‚ ©¯ºç ‡J=è>œX¤ñùñ™>#šnÙHhÿñ8M¸RXW¬m*{ð•Ê6f~h¶0…±’wšæ¥D0u0?‘¶«åæýRгIÐR©[IíQN¶è¡÷ïµ–ï;3 g;–E6Ä gŸ¤4¢ã±+‹$D“_ö¾›¾ùÉ{ñ]çVãf¦/N‡;ŒÝ@ó0‡¬ÒëFJt¦è ›v82TøÙÑñaB“ ×¢édÜ{ÇzÌ2n½˜î’гøvÈ[?4ÙìJäÞådpËe¤œf‚q¿1ZÙ$WLmH.OcKå8ÛZ}c:q6Ñø`Í€GèG¾¸Æ%DqJŠ6Õp¹¦ys°Z‹‡=&Ul-1v®,¸ˆJU|í·õ3nVdñ]sˆØ·(…á¸ØåûÝÃÐ:ŠûÌ6žü:QG/š~z·÷áµÐjEÜne½µ:uŠ2°áP³(Ìvúñ“ÊÓdÑ ‡ÙF»Xo rÐ7ÒY®óöFáA‘¸°ÏrñƧ`Šºf™êë"šã¸iEÂÏ]p§XÓÅ–¼ÎÎÛ]½¶¡%Æó†¾‘R*Âf[Ñyü1%ô\?ÜÀ‘”‚ ¸ìy¿^[¥\Ù…|“'\´pðøPreqbÑQsL‚š~ˆ¡/¹÷²ú.Y¬.¿2+õ¹ÿúƒ O‹Õ6„žÌìr_äxÂ.{„_­œ\$Nð7V+„Ôè®LO „èûãžÜ'øQ–ºÇf€V£cL­±íÈK¯éh±ÅNRÆ–¤0FÙu]|¤»›fîyzO[Œ‘|øërþ'ž[0Þ“‰³&ŠìÀ9ñB™©œ³ƒêOê#w…)Jk?û öªEžf.éÖtJÖK{‘ŸÕnÎÉÓ"«õ*+™5½OêUª»sx2©ùT3$?T£o -¬Ö°îU±~°ÎÂK—±¯Öz†[¨Xñ×ãa÷­>nB!'ó¤Kõ¥èÚϪކnöôkÜg;Âæ4 Ø!w®5 æ †ÁG‹ãâÖrÀ© jªX'+ÙÂeǯ~ì’™ÓOÍäaµog ±½:_¨$±ay(‘ëÛ¸ãÖˆœœ¨µàæ8ŽÏò ]•ê·3ä^|niÊhV»Ê;4-:gíË›ÍþBŽ…¼ äg@8.|f’›…ÁG2òŠ“—'ؼ„`\â’0»ñ:Ê×ã̸³=CÌìE<î„[b¹ò0Ënºu©f¯‡úcÚ/É{”ÒßmÏÕ²éÚwÂW¦-Н˜\„»ÅqÞÃð â'OÚèí¶ùŽfm*i'ÀrÛëñªÔs‘Ný%^” û¤OVTFø¾|L+ ð›ë´œù~åÚ¤ô¦‡¿û<æåª°Œ'õDÏ3އƒ²‚È¢Ô‹NõG7k_ŒJõKßµg{‚Ñýt€it<-Ì¥;8¬%ÌL´7½¼‘,Òù”Ù¬äº)Kd¯•s^„e?ˆ‚ÆxŸZËâùSý°ǧsJsÞ±×·»“+ܵjAPŠ^¯ì=KCˆ®É¬‘ÇŽâ]Üγø,{¼gÌuávÔ(Ëk¯—|bÜ91ËF;SV;󞆒’}Oƒp¸ú‚›T‘éêC  ×ýú›†¨x¬;ÑWy]Ó>ìynâ;[a™´2ᥙ™žæ†Dš¬M'/1+B¸@2o8Ÿe÷F‹†Î‘t•.žÀN…©ЦÓr]7ç{æJvC‰Ö­„Z8OWósu;ÿ}¢.cõé§É9¬FoÏoˆ2ØÚ.©~cà­’YnÈ úYÃs×]æþ˪ØxúIÚ^ãzOÙ2å~v†a ÿî£p}VA€ÉjšÊWÑ×Q±cIžCnÉÂJ,JôøŒtñ=Ó\o.Þ µŸÂ˜5ó<µ·»êI‚õtò͉ˆÅh/È輩"³ŠÆº ­lAÁÌ2Au®RÕÝÎXTc›º–®Æ)„çÉv3â/å2pަ³©xÎeø€CÇõþåÕä± ùÐqÃýS©㑆o :ÿ§ý'wƒèÄjf‰ÕG2ãó¯¾P`“Ϫ3õÅÅÖñ%I¸±³©­qoëtrŠ0ûR»[:„jÜ ''Dµ–½ˆk²)l7â)ê·eNpˆŽü"nï\ ®*?äìä&þš9·Â$"Ê2³bÊG{Ⱦ#ðÀÕÃò›ê¼T 8xþ9]ɉ*ZmD}Ž+ÅkÚWŸ 2ýÄ GeÆxCŒÛœÜB×èKvJ—ºsZw ´‚oÉi_'y.1Ê‘³vþ”è(gZ}±Ì~—Æö®ˆ~@ê²9ûæ©‚W÷q¬î¤÷êm/¹FûâõA–YCL¬ØÎHȤì.~ñ-úŠ-ù uD-/ é`©Ø§u(çö¡»"µHõäc+,s`ãu‘xYÅ~Ù$ ¼<Ëž1«ÿ~q«h„úØp"€Á@žð uɆ‰Ÿu›$”˜|1D¾y^#É Ç –G§9÷F_ÑöÖ±Áë ÑN?ü¢3N¼âßîª0×RÊAN€aÖó:ëîVn>©ÊíYwJ /I¯4à2ÝWì -d1Úw&ˆÞ‡Þ¦Gã•R%WÍ ±ôZ9ÍRVÚÙÕ'^¶ùIJ­ÊáËäœqgƒÁ–TÔ²}FGŸ Bšo ÷F¶k~¬&~°Íø™c,F£Û ©õ„,Ä貌ÐbKm·Í}â6`UXóAêï™Ð˜fç'g¡·J¾ËR{´¿wŠCsîºþQÃ5´R8‚j!çëÖÖUÙ÷›M¡ñmU?¦»Å³Å¼ý›^¬WN:×þ÷ô»\E$Ú¬ÍG‰èͤ³à°$:wõöTÂQO.þüQ„…äÚKÁŸ#Oó%ÙBõù£¦iFwÎUVäHG‡ ´ žíÁ ß9û÷<¯àO2r4"Ø—¤<ÿ,‚©þA‹¬³>­ðt,(5¹ZŒˆŸ.ö•ãËð’ªØ\!2x‰øøh>£8ïdÔòÃI|À;îÿž³ÓûSéi«Éf¬nÍÚ÷÷ɰŒƒlŽ•¼ß[©J©'ôúãûZ`>‚ì†qÉKÞ•j2µpÍšqè ,+p^NŒ3æåS“Ö- w7®!ÔÛŒ+@¡«W¤|&‹›UaÒðÞ¦_2äË _¾Á@˺^<”Hbú€kU óhUOc€Þ˱7“ZyÕ0]\ç ںàÞ6ŽÎS8y2'ûÜþæ¤ g»$¹*Ý¿‡a‡ë—Ò›¡÷³7ý*Äÿų†ƒÍFú}‚üí]o#Ö;þLS¤O/&Ò|øÏc«ÔÂÔƒŽœ¾¯-àk¯ÝŠçï•V½úl¡nò9¬±|VM€ÎŽ]Jš÷>Äms½3eŠHxϪ0I9ÜŠW”ц–ž!pÉ“å6­á0¼˜2ûµ%\ bØÃf K;ƒõ¾¿ g–õɉáé* g4ÀæÍÉ¥Õ+ÅäË£cs­B{S¯©¹˜ÄÎ~ƒ%vY}µ#³/Ì+᱈­oî•h´/]ð1g³çGçÈ’‰H}òÛg¾>,jpR5Òì<)Ÿ)-mXaUÜJÜüæ§WêyÔ±¢Ô/W=‰»7§lã>Ý1Yáx˜ÒköSnƒKÑYüÝ€ˆµú%¸çC ˆÎcE^ÕŒè»Õã!qmâà@=ºós'äÏòèwTÝÛ5E&ѲQ”ös•zF ·m9ËïÄÙF |üöž:ÚvÎÒ÷;Ñù,äjÈ„+ŠáDB·ó¡lµ$@GÍòMçDÇàÊ8|*é<°  &¯‹Èòié5Fô½·¬gÇ{Þ–TníªÚÿ‘Þ§„wÄ|.¸ƒ¹R`{YMw›ø f´!Ì&Eä¨Ò@¹Ý¥bø=ž÷5ÁóõÇ=üýˆŸ Ãh©ý“jØ;¹U†/y,®¬oû…ò6@õÀÉw3i_+µEšÖÀ¡R‚Îä”sId(›z…¤¦aϳýhK•ȲÉþ÷"U kìQ™£ý“GF.A¾wª.¤Õ¯èt£†×nD±cȾÎÝ v&ÍPŒ¼†;¾Yvù1) LT\êV|Wß–7˜]ßþÁ£“õ%8›ÜhùÍ7¬] ;j~Ir_IÌYŸ¢Ú®fŸ¹² —hµÈ™÷µ?™1jÆÏýëüyŽBüv“,k²îí¼^lµÛÝ覔>ÓÀÜÍ›KüT)7óêÆC±ºkm(ê“9Þ|sEI…>¶XV¬?›ðµUS”ã7V´Ë j¢c·¸À¶’7À»Öœ™ÝÃÉ›]ÅFM9c[|bÂíèÚà :ÌÓ2ŽO…ÜáH}Éîùí%ç Y,¼ô~ÃcÑã–ªë0ù™‡ôÕ'C9dZ>OÂìôr5ÞñJ«yÉú‚_Jñ)£Ì ïâÝ:ZÄ≸¼A½Æ"Kª0Ïw<'£b/Ðu¾ÑtökNŽ8v ½õwÉ—G³öm*WÇt ¾þ›ƒÍó±ŸähV§ß¥=½}z2eº¹+ÌÀc¾pΜZlˆôîLHë{S¶“r<nêBÚ‰2Ѝ†xHWJ…‘6„ˆÓDd;«cß³‘Ë¥¶«>éc­„õ–Ð^‘^›i¥ncá(ËØ±’G·íTÕ[&¾@WÃDÿyÊ(ÖÀ¾<¿ÂÄ}véq¼à{*%®R'=U%"dÙm# ¬ TŽÓ¿%~êàB û#×ÇÞæå\üOÞ Ù2tô¡põN̲ÛñІ¦¼ bÃBQI§„öÍ+BuúH-|>Eâ?½Óv»×hîk̤߾'È(,ÉøN§èÝÌÓ54ËŽí<‰re´£Þ½’ñHy¼)Û+(½Uô…mcµÕ„9òžéúçî“:?7~§çòsE ¨!‹+ŠöÎvÇÑgÒ&1Z(¦]þ5 ðäEàéqÅ’¿PjG_ÙÔQÏÀˆ7šêypvŒÈÝÒP“ÖÓU•?“<÷V¾xdµpr«`dwUoé—ó®/Cÿ#V8¿-RRs¡D*…p•Å;?¤ès¯uΔ<Û”`Xâk“xÍ+¿äF$-Á,Nqåk‡±7qÑ4[äËÙ"iáºU2K*Éx³Ðmç;ëÚIŸÝò] O5zïÉw¼j[&¡ƒ‹µ-Húàß‘DG<³ø°eIùjf˘ˆzzo ·'‚ûz!µÝíscˆuÙpÚ8ÓKýäŒþu½«æVâÿyÐsâ{•K¾BÇ*¦ \ : k> stream xÚí\[oÇ’~ׯ˜Ç“]hú~ ¼gaË—8±G’ã8F° %Úâ†"’ŠüúS_U5”E‰²x²Y €Øìé©î®[×m†2ÞëF7Æ{ÓѱM×xÐñM  ê„&fŽM6 œš87Fg†.±ÖîÔºô R›( âÎÆÿM×ÿEŸ/ ðËãá—ä‚ôîñlz6ߥ”­è;’ %t”€f’…yž#so‹§ä'mþë´}ŠäcðþÎÚOkµmZ“)[¤dÞ£¶þ ¸†x·˜$j5!–†²œÿ]FŽjV޲ù­˜“3…&(  \b¸\lù‚¿¯t©·IK‘´æ)·›¶Á¢Ü\=Úíw1Ò¾¸î»+Aùõ/†\ã¸5‹§‘V äÝ.Ëñ&·=$e·D¹°Ù¥SôHwMë«{O”ñÒ*”›Ó>ì·QÖ‰FRG8’΂·²°eôDLa?mQŸ0‰}6 ôl`(®kJ–­8ˆÑE‘7yí>˪X¯íµö²Òpc{G'ôtq“½áØyKtJˤ44êEï ^9rœ‚£í‰“PO(PöœAÀÒ”¤9Q– R ÉãÁ$î¥Àp¤à&ø³]Æ…%ŽàHÀãn\‘·´\ñ¬‘æL,gŽWdÝõ,g¤&‘_e9:‰ÅPHa¸ØXÔCñÆ!IWs2ãù¸9ÖÆØÊ#!'}¦<²–%–%C&XK kd)Ó}“‰ŽÜ3€OmçÀé¼úuE“Ö¨eÚm'o´týZ§¿÷ê•©«cI³]àöšIÎâvsè<æÚÍ ¯_üðµáÚ Leé*²D–~\ᛢÙF^–”\ƒYÈ‘•T¶‰ž +‚‘3:A?‹‹ÈXÖ¸MºAZîVÚUb¼,bØòõðx:^XË<’Š ©ÚÌÌïGZÎÈvhŒCëð‚«!I³AŠlœøHëpé {yp‰×’q„RÀHcUŽž}'žý ÿ_ÆÓE\Úœ!+iñ ¡À*rmŒ•ØÍÔìTFbZJ[F žlBƒq>ä†l ­ÉÆý~Ò³Õ–¶Âôî:ö[ýÕîÒöq“¶£¹ÆÀ­Œñ /ötdK dá9bq5‹Ò±Gړײ 1FÇ^ G`êʼBíg%’ìR÷åÖh¼ôÞˆìûÌø´¿Â*q"Á^Eú<¾¢d­rÇèR^`<¹s°,ÅØ¿+I¿Â'qVý ì–-f'¬Õ/ü@ ]m‘ðŠ£SüèáÒ'sø%5”P—M`sñu†Ñz` CÊx·ªæ0-×½-½>”÷‰‹‘°aÇþ Hÿ*ìÖ}êì%[ž¤•¡.›ÌêÉt‘Š!CÀ’Ø–vAŽ‹Ìv?šI.¶Añè ™]â3Sû9">é*nÁ‘ŠllŒä‚·‰ù%˜Ç^ÿ2UxÚ ‹Šljß&64e´/c¨»‘E¹„Ÿ@»ܲlúw…WÒ—¶jHb[ùq~¦N¦A"ž¨Ù~M[CÛˆ8ÖÀ.Ö¶BdIrܲÄdT– ÕTƒ³ìóþ ã5‡ú‚ƒý».¾[í:L7iëš½VöêÃÈHòœ(iV"¡9 b9Ë‘$"pøµBd–8†Š–Ïgé­$Iϯ;p,'ª;$·¥p,Ö‰œ@öùÚçJŸ&ÌXnË«ÊïåXÿ\,HJËÑP¼¬¼ž5K‰UíqÝì9m䣿™ GZXniÊÊ´/iÏ¿7)µ/÷îÒÖ5{-í„$CÒ^© ð $›¼~åà“~-ß÷*ýÒ´$Nÿ+ÒL¬‘ª÷WÇua«Âliú… ‹œV¶¹èõ¡úù_èURø^½ÏÍ‹ûÙ±¸_i+{À:ÉZ„,¼d¼õ€H&Hp5?ìщŸ´³Œñܺºøjüyýå“»Ü>tŽ B/÷z,àŪ4zýžôxtE¦öb*а -ŽÝŽÛ*éÝ­šÔ{¬t¡+U4úà¸HÍEj)ì³2»ôܲ'wîÒÖ¥õÛÁi;SãY+O€|áX±ð(Ɔ3:TAà$ÙБ¤éH$®*$`p ì$IKcâ‡V@­° µŸ<T"eËþ×36¦`ÆÖ®´1§%ÖØ§Ï>EÁ³KDZ:¾Å€zÇ¡"Çö‚~Åø:R˜ÿüm8QóÑG5¥…ZœÌ†Cµø0Uçê7õA}T¿«?ÔÃÙô aüã±ËàPà÷+¯«®—äÃGO¿}ñX$i×HÒA’xçË•íHR—[Hòëž$¿_ÊòÕµr|WÅÖÉìä÷³bçè³·*’Í…aõm„ñèå«ïž=ca”5²ÈÝ©Âÿ–ÙÊ©J×ÈBx â—è²·¡kÿåöA×ÞÁÞ{A1Ÿ¦SZ%,˜K„¹ Âôª’íåÌeë”êðB1 SÒ…O)õ·¡ôå£ßìí¥ÖF JùÞà¿=‘Á¾ Õë>¥º'À¨×‘êÓZRßÎG¿ Ðì·£÷ïW®ý«áÇþÕ⬻â“П*‹•Ë‹É|I³ççtñvúñh~6ü~1@À—ÙoÃ޽ׇ_?üŽØûôðp"b¯C@>ºÄÞ1fEp¹ä/þK× w¡uÂáXÖr¸ >ý—èº~þÃ럞]ÏŸ®Sg»âó 'ß]wò{„]sJpFj0>;tÆu8^ Ȱ¾g8œ¾=¨ñp>Wc¡HžÓ:ëxBörôžæ-N†4ï ¹[™Æ‡/_<­ñSÎt²qKŠa-‡öÉÙŒØhÌÕo—(»q¼ÿøÛýLY¸’0—*]Η-ÑUôZº&—h¹•ù;xòàÙ÷_3-éj!u22¨)m…–lÖÒòŒCqbïjàC}Yoe‡ž<ù~ÿpéÌ×Xy&Ôèm×¼±Ðne|žÝÿéé+míñº;YúN¨70©]øíM? üæÊ@AýÖÿ{ut¾ªÁôü{Ï«­8)ŽÃãÑxLÖm4;:?}7&7¶K†3üö"98åä æÃ_Ïc5üxD¦°~O?L®Ï–áF—BœŽf´g H'ç§o‡3²›“Û%Ã9{[l› ãt$~®áoeÃï?9|õð5+Ú:î%ÕÀ*·¢g×Ùïƒkˆ“eP(‚`–]û_Á”[™ÿ½‡Ï÷1SÖ˜LçäôjtÙ˜)a S‚ë3E¯>¸ýËL§?ffp.@„¸Dó­ÜÄ÷Ͼ~ýâ+ÐÖx‰Îà8}Sñ@o¤y½ÁÁá¼DÌ­|Áãož¼<€ÿÞk\^æln+ZÝZbªö.“_ÉséÓK^—ê{…ê.Ç¿ý‘} endstream endobj 1550 0 obj << /Length1 1613 /Length2 7913 /Length3 0 /Length 8971 /Filter /FlateDecode >> stream xÚvTìÛ>‚£»eÒl£Aº»•n ÙFŒ%(’Ò¢¤´"!HH‰H—„”tJJ7ßô­ßûûÿÏù¾³s¶ç¹î¼îxÎ8îèòË; í *HŠ"–*jˆÁ`!0XÀÁaC¹Bÿ@ ž0$Bò?äŠP[S²EaÔ´‘ †—+"„ˆJBÄ$Á`  ,ñ—"ÒC¨dë sj 5¨'€CéæçsrFa¢üurÙs!b|¿Íòp¨ÌÞÔ¶E9Cᘈö¶®@C¤= Šòû— .)gÊMòññ°…{ =œd¸ù€>0”3Ðê õð†:ÑêØÂ¡¿‰ 8€FÎ0Ï?`C¤#ÊÇÖ Ä®0{(Âcà…p€z1±†êZ@]7(âe­?ø€–€üíîOë_Ž`ˆßƶööH¸›-†p:Â\¡@]-”/Šh‹pø¥hëê‰ÄØÛzÛÂ\mí0 ¿·ªÈëm1üþdçiïsCy xÂ\1ýrƒ)²2ÂA ‡C(OÀ¯ü”`P{LÕý@¿ÛúôA ÿ8;ÂŽ¿(8x¹î#`î^Pu¥?50àÌ ŠŠ€Á`1 0ê„úÚ;ƒ~97òsƒþB~Á˜üÑnH7 #†4æÅüО¶ÞP Êà ˆþOÁ¿oè³Gí N0àïêøÇÓy˜/ÐŒ<üëó÷É3[H„«ß?ê¿› 2S3ÓRTçýMøo‘‚Òˆæò Š€ˆ  P sü·—¿ùÿÅý7ªg û37ð?ÕŽH Ä0µû‹†÷Ÿ3ÁõçºpÿA‰™c(럱·‹€í1_ÿóðÿ6ùÿÍü//ÿËØÿw>*^®®¿¥\¿ÄÿÔsõûSŽ™b/f#´‘˜½@ü·ª1ô%Ö†:À¼àÿ-UGÙb6Cáäúwaž*0_¨ƒ eïüÇýÕŒ{Wª‡ô„ýzf€ü0ø¿d˜]³ˆyJ<1ú-‚bVéß!•öH‡_;'(" ´õð°õ`¹‰ÑÌr:@}Ï5$€@¢0&@ ½@ #Òð«Ÿ#Д0ðoD‚Aܽ0}ø ‚a˜aÿÄH/1 É÷o@XBþç ¹a^„+ÔñŸPÂ?Qe Œ‰çæêåù{ Èêy™þF„1fgþ¾c<¡œ= ÿ‘#&"ÊùSq Èêñð¯Ú{y`R@ýqL}ÿºÿ~àP_¨=`b iï±Kåã'åòŒ>üËýÒÃËÆiÜüè F¯3¼dîw/Cg=Žä“»>‘M/*sÊM²\¢7êÞã=­OÔo8¸°N0ZnŒÒ|x½!_ÕÎLÀÄo$·péðàÑCœºÍÙî^â$z¹”'>ŸU}«ÚK¦zÃÇ–õWÞ‰j^”|å¹mñ¨p„#ÇîÕ(+.ŠŸŸ‡b×—täðh˜"kàšE#¸#”6›Œ=õÿþÆHг…žÞŒŽç¢wè.Za-Eƒöº(&oÄ« RhºËR5hl@LÊ– ^!Û‰sgÅiþx³™°¶Á§Q6™òzå’¯4¸Ì [deõ|˜ÕL¶c.¡¨©dm¾x-¦xò>zA42Dƒíƒ´ô!gˮdzIo™IÕú”²;á b}bí÷AíŽ ømFžØ3®LÖ;°âÖ,€fˆ¥ Q{ÞC"Ÿ†UiõFú›|»–¡V¹ÿUZZ†¯<Œ{Õ¼‹‡±]t}Ö§Ý7± vÞåK\±– Iï½êа¿Íšˆ=*è5ŽHäÎLL}ÆBÙÂÐÏŒS@ó°-e%*Ùf+Æì퇤6ÐAœ!1a OŸlr5n°}ÞRÒ²q»²)a;ár”¡»¬Ò®&î õz¢Gô`{¹ˆf<¾Å ö0¡ÖÆegtwɦ%£ºU¹ô>7ûGµñ.¡‹‚Žã³Ö©–Ú0½.£èqÜú‚¯¶Öì;ëdo‰»¼”¨ÂÇ…bõñRèÍ ý¼„‰Ö2‹|?ÍÔÏÏéœJ]eECÆ¿.ä˜Ì?L£VϨ“á`¼X ŒsN-¥_sQ³«sô_»Ï=×Sg«âצHX{àû°Ÿä“oû¦ÜÌÇ‘©—”f³¢Î!;o&¥å'Ëgû{q%ÉšÙâ‘vcÞõ3T`h“Å%ËiÎÖO9íÌàÄ®µ[‡özïüÑí ¹ŽXÒ³'5¨ßU_p¢Û ßZäú•‚üL<š’•ÊtÍâ‹”»â§¥7¹8¬ŠA‚Zji¹k›^ýøÚÞ±Ä5»»ß©§w¬§Ç»EÁd+¦³™‰ü`¤?Ý8ZÒ§ŒÕzÞÍJì¯9®Í ¯`é˯ȹ{1NÀkµ^;æ-_õ€Tî¹Rõe)ñfÚÜ2ù î+ݵoü>ë5^çÙ¨Œï¤â§’æ ‘¡›aI;w|r†­Ö‰N©Æ?ç{'qá óñç…B?ýü8܇/ 2ˆ\ÜL•Uªr‡º·¦|"SÊ„_ÅŸ“]„﫼µ d?œN‹¡‰ÏåB~œ/K 5á£yuÎ.«CÚe""8¥³}èP×8gj8Zö>UdõtC„–g †BÐBgÒÊ“.eØÂ‡#f:Ý‚¬w‡šA<>êe¯nм^ÛfKyŸ~S¢„áÞàýMù[Ü/ôüHÅ"§­ªá^Œ*Û/Ç;Ï¢r’Þ”ûÁE?áJ=°ÒtÅaé÷çw\öšU9_œT•ì$g¥}éó‡ÏM .$«£Ú Ólâ-¬H®_œóæ[f²Û¶›pê)º$MªâÉCy¦ìôvç%5ßú“ÓvHH³¾m0©­8}s¼ mã•.!÷Û¹~„Zîé}i™(´~E˜~?pyž#M°oN¢úÝÒ7¯SD¢òEM Ì­Ðöï<û$ˆµ»8IéÐN@nm™9MFç%[GL9ö31X÷ï&ˆÞm1ágØñXŒ¬èO>‘Y*%e¾‹¯Ú.ë‘o šQD’Þ©Å õùT@—0Ý–¦Àë1¢o¿:•™-ô¤Õ‘:wçýI0Ú‹^ p»-wPþ6Þ”K Ú]ÈØJ«˜óÕw®KJ:Ó|¬NgxÌø³ÁZœá¼,–Å)Öäg¢KìÍT³v–òšäˆ8Xâýâh·ôDcídvG÷F"ºÚóôÜ"ôQhr³¹«•ª³N'Ë8®ÜùÆSj¼'±ï͆3QêÄ ¦Š›vgÚOqRðüÀ¯áÄ))h]–]ZÞ@4Ëgס_f–§³ð5¤C"ÐÊG›c¾paúú‡³+\TX>”u®B`íS²œæ¬©•y e¬(ú*ÀõöûYüôC·Ë­>Ô–ßw†Yä©Ì)àºðÊÖ:õÝã–Ö€¹Rz©@Ê6jHK¶9TËÉ!kú'ÎL»FÚŒ}Wáíñ¢üž•ºÄm`BÊÆ\[pš+‘ïé/üÓ$’µ’ÍnÔG i®¢ó kÞŸ3ãKt¶~ÔHªîˆéTñ›Ñ$"h[`«4 ø¸¹‡19 Äºý6å.Ýl|íÕî·*×pbQœ'ó‚ÉKè”UÀ +h]ÈPaü;Խ>Ïñ¼ý‹ßÉS’aiµëJbu]4J §eûlËï§ZÊçÚzàa°[1¢¤÷™²Å£Ïeç¼ãÌb)ÝÖ„ úÇøþaŸ#‰è`JH…ç/¥²³ì8‚vÔÚ2šŒYvª© v½v_XmÖY¾d Ûüt÷ ÀWŒjùƒ¡2MƒHy^²næøàÎýnIYä[w¢*2c Ò«nêŸË,YîQØ´´z³XÝ(©Cjç‹ÕŸ:úæ ø¼ß‰=#U¶Ã m_©7¡’f8”iË8MÅKßm{Iu’ÇFÝàlHa _µ)#øy7 _wTÖ•”Õ}†‹tHé‡nøÓC¯‡‡8ÂÖ,S™lÅDXù6:Íg`R¼P²kÅå7 R Ò¥Nšº$Йmã­;OG¹l4zÞ~£—xÚa×SäÁsÁ+øéŠHÕª:¶9s<  ) ¥{;ÔWâÕ¥Qáâ£4@‘ØíÔ´2Óº¾ÁUýµù¡Úš¸G{0í¦"(š¦×ÿIéúÐâJ¢ÆÇá§6'à‡¯v?oÕx¥Ôœ/q9’ßxO!•]H^—áÅ3ÕÄcT4£zÂQ’äIÅíöuàxÆw÷èZM—VÉà›óc­sìÈè§Sä ÅŲ¾GrSâ_t´¹ò/pø’PVÏy­~ÑÂn1JÍN‰³Íî,Ñw^EÚI/ O†bij‹ìc^FÚ^V<ôLÝk>0S~rd¤Îº-ÈÔuyŽçE¶y§š8¡¼lªÅǦüãÊ;¬gì²V\6„TnPjü.[¼ÓöøÅ§ÚËáfÓíTÚ±Q«ûà§?µmš&Lø&ºŽØþ/ˆ¦t,Ë®¦ÏqI wsÝìÆz†›;¯-:Чít‚|Ù<£»;Š^w .AJ1låЦþÄ€žóÀÛç׆ù‘¯è2üuûMR-W`# ³/?ΚôVÕOõqm;oÃrÐѸ÷nÌ¿.¦À{lSøtë@®ÊXñ{ÏñÃHASµ9²¤xUö ‰Ï‡#‰©ºÕ2š¼ˆ™xU¦ö94§·r¯¿O’’L®Ï›Ý"Jö²gÒ'Ë=5ˆ¥*ˆ_5z ɬ~ ü.³ã±v”‘²}Oeð¶êXáOÎË&fÉÊöâ<êM“§ˆõ‡–}Ey¾î U:þÓ‹zOX»[JÈW·R÷íÁl] Åj*»§UœÓ7LiãÞuòöää}¦éýdTÀ)ÞÐå–üÚè™\Âz$ñYWþò¦þ瘢O¢à*q—ýa{)„rÆs(f51|Þ—{ü6¹Uíè‹­–Aç¦u}©†T8ß©‘Ä^fSÚM7½+­s¯@FáÈA~c!ôãë”ùâéöÖ1Ÿ#ÁhÏöOóü)Ì~–Áò™ïŽR=ÜÂÞ…E,ñ3Í­*¸Ñ©›»æ[»M6€9¡Qï–“è{aè”MFº Öô ØÈñ„ýÌFÚC§ù´ŸSÒ žy%b¤‹ý®§uìéZè™ó”ÅwšvZø]3gGx÷ðªjØÞË«Š*ÈÖ°´w€(®¡Vw¨îà\ðFZo¤’LÈ7ÞhU+hÝ6 &Ý’}V©²Ù ­O.sNºQ’ÜŽ‘ø€â³-¶Ÿ*ôÞ2ú&wÒÅgpq[€ü|¢Od…°5Ÿ ï›ÜtíYõº_d¢Šjãµ÷(ˆx2 ñ¥ôW¨Ú¯Œ0"?¶¡hèÃ/E䇰˜âüéxËyçm•©‰:!8sG;²Šò»vÕÔ¾&œh¯èB~Ȱ„¾ÖjÎ-W[=¥X˼ÀLê³ã„Jî7qân¡æOI|Ökûx¸JYÌï–zåJvñà¼òxáµÍßG%VTÍꡨ€ðteëÄxÓV°‰Z1‡p9¯ö”Êg‹8ÝúlŸ+ðÔ5dÿóäGÛ …¼K+_û!š·f7°Ÿ n+zQf§N Yr)X´ !£Àq®#¸?äB¯v£çsq\’ºV¨þØELŽ3÷Z°NÑÍb‰¦ !¸U`½HÌc£[ˆ/)ò‘0R{3óÅb`BÀɲ™NÃýŽãØ;l³Äú_IËS2Õ›uA+HÆcB`@æÍ¨vM%¢#ÀWâe}ÄÖ¨Äëy¼=´­^|µÝ-ZMZ#9|—Ž'{á(áVçõ'»ßßIç„ýƒ,M`UÕ!wäY ƒ¼Æ*5‡0ÔÔ`P‘ëð¥µ`ÏV’qµKIƒƒ¶n[3ËVÔ²áZÌø‰µ­q–p@:~£D"1Ê~ß±Ë.àÉSÙY¢åä€)³>®\K¶eÆá{z=Aç|Ð7ãPn“ŸÞS͉¦€® œ½ Þ–Ä{Í—³µZZ)£Ëx¨Jmêùc D!¼8­{©;te.탽Sj{ûÆ(‹èãí/ƒ{ª-aŽ®ô›ËMòé{ŽŽ2¶"JŠdìÅ¢u ®NñM—É5<Â; Ê4¦Eví9ÆÒ‚+ø‚;^Ub;8ú&teÌUÌÖvú¢,‚˜‹qÛG(Âb=ÝÂ$sQ¾³9#X8æ×òÝVJ@¢wøbؤ ¤™;Ž0óòI–C£èM1•ú‡Š+ 9,ȸ†ˆCÆ ô¥j[EäC˜{hYJ]Ë<–w¨ãlËl¦NÇÀZ€œE#μp¨¢õ¦L%»É¡¸½Â^-§#š(? ‘¥»ÒLç‹AU"« Р12ƒ§àO¼²žNk=ø2úÛ‹ÕO«ü¤ÃøÊy‡]V6¦áˆ‡¬Ï¿‰º£ƒÞ,Ú=‹;T.{"±ÁÖª’7*^ ÐQr{›jÄd$jÆñó|PÀžì¢åR²ç/”õrÒ‚È“DV×3åK0›g|ÉjÍÙ¯ OŒ•l%`iÎ\¼³ª &œ²ÛáP`c/Ñv¨ÙdçÚðL|¦×ml_`z½+)˜<¤swÏüfß´pÚa<{ è©wÕ§/j5¸u´†ÀPzUB^Ù¸ÒbÑ®%™OôîÝeÅrÄ&þäDKç•lK¾jj¼JÑÞfAƺ1²ð…Ú…ptUž ?z)1x/`ÎJÄÚPí}‘º‘Öƒ¹Òba‹[uzùª£*õã†ÁM}Mñ ‹“ÝíÉäG°óav0DªìZœ*ç ±_Øø€DDÅG½ÙÓM¥ð:«·­Hïc‹'ìXdåŠM*v;û®Úú7ücXê{rvÕ§Þa•‹×:z•òOôÏasLfæë>V0zðü&­Zñ”)-o‹›F !`¶«îÖ¤A/^ÔeúäÒ6דè{Ö§›Õ<†ú¦Zõ zÖæ¡jÆ7(>ë;9®mv›˜‚É‹b7Í}{§pâ@7±ýÜ ÞÙ0ÂZ™ zßnŠñŽe¯Á7«ÏMrél^>ƒR‹vd|·à<%no?=ÑI@78d+‡DÈ9êdÏ9‘ä0Û8°¶W‡Qнñ \X&gðô¨¡6äo»OÕEFkíû{îÚ¦W…dv¹9Ý'u¦è~¾'4˜‡eY¡Ù64UÀõЦ<ä¬â<§\òd1 Ü~Ëu›4ß'$Êÿ”ÒµtD–öÑîD˜e 6Ñèö÷ûw£" ûu}ê†Úéº ЊZ8!2©Šaikmïë”AvRðY±›€ùÒöý 6— 6RY)—$ŽåØè¬ûÙt$[Ïv«-»è‰=]Kž'ÚÐæ5×,ýªfÛ«áìç8—yK1 æè»æ©Ì—ÜÄ%1ic¤ù$¤¦buê|${®¡!¶²‡|… JÝNqG£9éOƒOZõÇpÏñlîAß¾$¨&`W³˜´ÄqpcÉ|"ùñÜê3ö7iŽw–ÚÞ­ 8×ðÒê§9¥û%ýf×¢)öÅ'*k%Þ,i´Y3!¤‡¾’´“õF°M•Ûæ£¨ù½¥ˉQµŠÒ5 !'’ÏxÖxLS>¤¼Ÿ4øðÅc'´7æ?Šë<ÚøÑ¹vkzø>)©ÿ.ïèµ/Í[†3»Ò>ñ‹Ï¡j„4?yHoÅÓȦ9}cªøái ’*ƒ—̪ͯ3,ë﹕79œ®“Œ6»ªdè›í¾nú¹¨|üe ‡è’l™*IÓ×ï=¯†{ÜW×o(cí/VCX…pÒ%ƒi¦h…~Áo[I3‹º‡fŸÖ6<çqÔ¥Š;H)” :b-2&—Q$òüÉ´I¢:p¤åz1IG%^fÄ•P&úi˜¼¿¦_zì}·És¾åw–¥ºÅµéøÙt–©Ä9UÑ,1]¦íY|ê%ÊÔ³ÛKo¬Spâ.(Í|ǶB˦n ¿®=›Ð‰Ø­—v÷ïomnÖÅþ®³OÛp¦Â¦K¾%çúeÚðªtZëb ÃãxÔüƒäù5‹L&=³ Mó#oŽž1H§J⯜™èÓÖ”Uíµ½.‹ÅµõSáã-§”»spt@&Ù˜á²^/¼¯àqGªí*¯ÓŠ7E:ú:xX=§Þèé|o_ƒ“r+•“Å—+D¼®hÚÔeÆV÷“"5%ö÷Y5p¹¹F²™/Mê~XùÄꪖ¡5%¦õDU“¹q'cú~œN*TÁhQñ&¥[År´ƒ¢ 'àPßIl™ë‰”òkñÚ¶:Рl~š§ñŒ " O Yó¤z ~÷âh…ÀwòµW>ãAÕ}# ¶v¢•µK“%°íQ_]Ø—wöf®Èæà²s›Ò×'aè£&ª —sOp|º_q&¦XJ‹Š¤Ñy” è„={î© o}\5ÈDŒû¬õ»ŸëøÊ–OÄåÓùkÝ\ë’täèÄS]Ý…¨ïþ¨ñwýø•Æ~…uWÕ#E#J·| Mh7a.‹aVb1Î'‘ ‘YºË˜}²|™Zt,au,ç<…Õ\e_T'v‰ã”iÆþEÀ²Ú¦õÆ×ÞèÎelI¥=ùoùƒ)³«T• Ë‘ÅZ~Íx®@1r·ªÃÆF'€§K[æï@ÔQ¸?Ûºöë»âg )Íïb|ª—4¤<”@ózìøNÖµŒ+æ­b÷“î?ºÍ\üàR—âxÉšwê[Ìnª¸\Viú¶Lüªó©K9ーÒ{Oõ'¸ü2G]=ŠÞš?JéhÈÑ]þ¨tÐö bð›ïNE;‡•¼ë{ôJŸsKŒ·î¾&ù%ËŽG@%2mÒM›-hõbîÖUCf4+¨•ZáXÏ5ÛÏùö‰IƒÂ^{ÜÁã.)v-Eð‘EDÞcã…àòëÅç*Ëj5BbÊyîu|»âj°íIú) z§Zµqûª+G äã¯+ÖɵJ'Ó„«|2çºO}t÷r¥’ÉK*†‡Ÿ\7TÅS—צúÖ?̰ÚÒñˆ ”[¼ >øÊ{4Ù°72IMwÅ ,i\f>3˜Îmey7‚tL¦–e8³ïÕãpä·zÃRžÙ­ŸDK!Ó_zGNWŠ…6ü9/VëW6cÂs åzcåÔ®ëµp Ïì³Â.\óܯä¨ÓW^ÃzW¶mŸÒ™%z‡°U¸ôÃåʪBÎ;yGýÂ}”ryÍèížÄëÃú“…VánÊëúQÕ$ù'tJOî¹™š¯ 83#u· ïÈ ßDݪ>äW¶ÓžU´gîÀÅ_(çÈ{ñFƒ;óJpêÇÌÛ´•ÚWÞøžÀ ÒMôɳ¥Ò›$ÓE#•LÉx]äRdÊ5J_ÂÇ‘tâ—ü¦Ç|Ìá`jß%„Â`žŠ€‡u‚ñå8Bògå[i%Oß+xüô\qM¡µn.¹aפ¢µQ-4å£ A‘¡öðWkƒNÿNrh喽МóÇ5‰"+¼i ³ýD’ÉnÎ1!ʃB)Ùm"Iùí…x§˦{iL8"'r[8´ =+«.4‘zÿŠéa endstream endobj 1553 0 obj << /Length1 2208 /Length2 15968 /Length3 0 /Length 17280 /Filter /FlateDecode >> stream xÚŒöP]ÛÒ† cÁÝ…»»»»»³€…»kp— Á]Aƒ»܃;Á!Áý²÷‘ìóýÕ½ȨGîñöèžJRuFQ G3 ”£ƒ#+ @\QÀÂÂÎÄÂÂOI©r³þË O©tq9:ðýc]Ühêön“0u{wSttȹÛXÙ¬\|¬Ü|,,6Þÿ8:ºð$L=@E&€œ£ÐžRÜÑÉÛdeíöžå?sZ+//7ÃßÛ¢ö@¹©@ÑÔÍhÿžÑÜÔ îhºyÿOk77'>ffOOO&S{W&G+!Z€'ÈÍ tºx-É(™ÚÿÆO а¹þˬîhéæiê¼ì@æ@×÷ î@À{n€º¬@Ù èð/g…90þ]+ëÃý{÷_@o657w´w2uð9X,Av@€²”“›—ÀÔÁâ/GS;WÇ÷ý¦¦ ;S³w‡¿n U˜¾ëû·:Ws“›+“+Èî/…Ì…y/²¤ƒ…¸£½=ÐÁÍþ¯óI€\€æïU÷fþûZm=|ÿõl r°°üK‚…»³¦ÈÙ(+ñowü›Ð ÀÉÂÂÂÍË :€^æÖÌ×ðvþ½ø·ùýüþ¾NŽNËw @%ðý¼¯«©àæâô÷ýçÂÿ<++Àdî0ZàÿD7-ÿÅï7ïòè³¼7+€å¯Ÿÿ>¾÷–…£ƒ÷÷¿/—YBIQIT‹þoÁÿ]sôø2²sÙ8Y¬,Ü,î÷ÿÿò_ýÿÑþ·UÅôï³±ü‰(ë`éàý—„÷ÚýG†Ç¿{‚æßãB øß JŽï} Ðüi{Nó÷_¬ÿŸ›ÿï-ÿÿzþ¯(ÿ/mÿÏ#ång÷÷*Í_Ëÿ?«¦ö ;ﯿw±»ÛûD(:¾Ï…ÃÿuÕþkˆ wûÿ»*ëfú>¢Vvÿ-"ÈU ä´P¹™[ÿ«þsïáí@@GWÐ_¯#+ ËÿY{Ÿ5sÛ÷W‰ëûMý½|¥ÿM)é`îhñ×̱qrL]\L½áß/þ8¾¬ïÃiôú»¯ÌLŽnï[ïòü–Ž.ðÝ''€Yô/Ó¿ˆ À,ö‡¸Ìâˆç½éþ/€Yò¿ôÞfÌRˆÀ,ý‡ØÌ2ˆÀ,û‡Þó)ü¡÷|Šè=ŸÒ‰ç=ƒÊz©ö‡Þcªÿ!³Æz×§ù‡Þóiý¡÷|Úÿ%Þw2ýCïÙÍþлZóÿÇ{†÷—ýï¿nŽÙâø^à?ðý¸–ð/ý9ÿBGw—¸¿ë±ú¾§³þ“ü]µ·“õûkúÇ» ô|Wió|fû|Wf÷|—fÿYß…ü#òûÛ‹Ùñø~V§?Gy÷uzÿœ8Ø-ÝþXYÿmý×Üÿ×ü~(§÷iwüG™Þ¿¥ÌÎZê/rºþ= |ÞÕÿ£6¬ïR]ÿÔîýð®@{¹£ÝÿìyÏõ'óûè0»yþSÅ{AÜÿïñø¾ÇôüÇe½ïöú¾«óþ¾ÄçoüŸ©4wwy/€ÛßoÍ÷‘ýÿýY½€æðË‹Žæü¡6õ¡÷µ¢žŒû“‚s”ûÚŸi}—]:Ý‘aRik²?nºÜЦŽö¡®íJÒ܈¬¼øž´6ÂD´}Rmò{6NR›Ùo‡ÿ1=4U|"Ú0HGȨ!rà÷âì§l Ù Þ-G™ïì΃¬Rˆqï9 íÕ0X¹:¾¸¯zPÃ%ð\9˧k\6OY`–³€KíÆHK‡~é…2s;‡ž7õF"—DïÇ^â«·Åÿ°à³^¥ÁæÚƒG§‡Kyƒ>>Cå+v˜&‡³ä[^²é2ž¾€Ý9±mŸÂjwH㳯¤vïrôÛˆŠrŠ—S6&v³M&Ù¾Œ4š#çrMnÓKö7w«™+ƒr2èMÙŽ»ÙxàÊj¦ás§+ÿAjŸJzPNzcKµ¿ºW#C¬‡\4û€.Xîé÷/†Ð¿áŸ×Î*›H2°~æÈì¸ØñËÀñÓx%©0«Œ>¥¼)düžˆS¿—¥v5Û h/Z L'€öSé†tJÅV2WÆjùZ-:QvsS'V«5´ÛOF«aT:e$ކ⑆K£¶ëÊÐãJK/³ÿkÖG‡#üSH&»“,bœR)®Ÿ‡ÚìjV#N¯?µç“Ù°Å’蔢ºå²í:„oŠ ¼MqÍoØØ‘¢µãó'~«aßÓOú€D¤èqYN)­tÙµ4ˆÃ0[ÚÉ`2uG–u )÷5Q™g% ˆe4”•þh¾×iɽ7T:þ›mi?i¥È_€üús©¢_ä ŽÊ “{³Ç>kÙ×Ê´‘“pS!hxÁ“:JP¹õZ×Üê^e§îØ#‰·Nj,Ëç‹õcå=Z(Ðï%R9yÎì<¤/¢ëÇÓñ±Ü—`y¤d£Ö–pžùˆvZÅêž°Øð]XûM¨¸rþñŸiI„É(Õþʬ†zꓘ?‰íUB,'8jçÛh‰>û+Fe©”ŽZ±M×Û±ZÅïHÝLe"_l:!¥k5ûÿŽõm*ÐGÃ"äÉ)ëV M,pB¢ëD£ëuQœÞn°r&_pƒo´âÂêå‚AV¬¤N•¢3j†IôÎØ C°O6žV„RÞ>àEvµî”ch¡NÑ«-J¿8åzKàÊLyxù:¡›+`CÞ±zvöu­Ï¢ã`EÁµH)*YѨƒGï"„çi¡NÛ„ù;D1Æ‹ÎÄ”6«¤»tn$@(ÇŽHˆH*_—Õ;úÔuV%>èÛžÜÆ&X 럻e÷ö_aÔiá ']~±d‹nÉûÅ}wEäu¦ vØßißßycbSb>jÛHáÎ×­V‰¹ ’ü©Ù†Ú¾P0‰š'pÚ±Ó´Àd¤KU÷y5œ0Ñqƒ€×U¨éa¬¿½+©m¾†Ç¦ËOvnõH<Ò±}îùK|¦²Áo5+ò4~‰Ž´1‚ÜiT¶$9ú±+¿å™^XéìOe‡ gÙ'˜[¶¼+õ‹!˜W@ïB|´—ræ^zF3vÏV^íÄ{nÿœ¥ãU2ÚÙ‰ÏÂvQ+aKÉëÄ\¾¦÷‹†ÓcÛÒSK|Ô/ãçT6ŽòŸ¦\³®åÉ?±I¡ç•³äã ¥XŠƒ-Ñ+'ŠDOΔr”1'»ÈüH]V÷b' ýó±3;ÛÞ¤vj§{¿ƒb8b½ÂÐ;‰)ð¡µô/ž ?Éè½äÞÉ×<¹xÞt$ºSž×gJ!!´A í%b¦Î猄‹‡[v~¦d\ZmînPêØ‰V…„˜Dq¹hwi|ÆÝ:÷):Øû$1ö™ãè_ṡ +9&,Öuc…(ˆvÕ»rHdvËB6]묡 n¨mÔ):žu?S=; 8ñéF1>5Ìñ Iž—B[WLÔl€û(±aH»ñÌÌÊO$pLÞi¦ÑJ‘¹fâL‚˜afÇ{ð¡\Y ýÂ5]™ðhô’®AÙ!¶ÌeDÚ“üç¶Š¯8Ý%ƒ>1^±\Ý¥öŸÂ°atn¥´¢SnÅ%•½äÂám¤ìKC­iñtF;! ¦#bxšB†‰bVŽÒ|wÝaú‘bÂÌ‹èöùËÇ€Â+fû›Ã`vZU¯~w“h"Å3Œh…„6'¢–;¼ßº´žÍ® àÐy 4žV-êmp9H´:Ú>ïëo\¢õ<æõ€Z¥³áPÂ,ðzëgÚƒÒÅÐo«vGçCË‘µúœ. þΰ—ö6â‹û_ÌÐù¬r·Ïzû#ná´”O0A“??­T¢W“ûÍxÛß1rL02ŒýÊF° “ºõÒ~DŽëüÒù-ÎɵE‡4ŽË™1!T…úã¥`0ae“ŒuxˆáªÍÕkô›¬zQ:TÖ@ö=ºÖ™Ñ™ ÷>{¶äw-èŒ ¨B £sù[ÆB[áØ_£™sÉLÛü¾´ ÛN°bÖ8°ôU‡ îšptõ_!¶ùí?•ð Qº~¬#e„/ÙåÑÉš w¢â¸µÉÀÚÃkºU6ê`­+Ñpòˆ“3JOÄ€!‰Í\Eºö¢øüíŒÞÒîzÏ+9 ¯à€»·FpUKˆàÒëQ‘ ÂÀ±µÉbø†”^4¡“&^º1¶F‚qÜ Ç†øa¨ÍØõÓ]¢Êè‘ZxwîÅèŒ}ÓûxSö±¶ƒ¶óaîÓ²ª¤»%¥Wß!=,8¸™‹³®3ž;¸áä"«áå0Üb'îüO…Õ|uJ˪¢Xàgá º©¿‚/Tmiü°¦ûŒïÕ‹˜GÆîxL?i=ŒPR;®xi²Å“V–ÙYsª '\TÒD§ZQÉPœ“”a¢Í1l ¯Ú¨bQ}g=•rž§9¦[Õɤ‹OUÚEüV·TJÁH÷uÖ#„«¡†Þ²€ºw°#jñ}!“¸.Ì„[äp[ÕÐM@ÁáÍ|Óñç°ª"Úõs‹¤ éjTt1—ˆš·ÑMc€Uˆöpñ+Íù6B“p¼Cy¿šþA¼”¾þLäXÙ Þ5>’ü©©¨f|fJ{ì/  ÜSÔõ­WV°tE!»«‰õƒÄ¢G½…,qÏ,<0ÑÝœÇiÿ.ú¶tåP4à¼]Õ“ðUzü¢˜{Š¡Ê¾bW²ì¸…‹W(u[&_4}·8s]í»;ý5?NXknL©ˆÁIåVãÓ†Ýd‚¥U.¿ìkçfoªp!YƪØÜ✄÷t=¢Â©¢¼ä:à ‡yéb¯ß<¾r$ò‡}ÁÇŸµ˜M^XfòçlÏçÑOFûçFÚwPš¢ZÜ_½T€Xäç’rã–Ìœàjleˆ6YÃÈó"R(ó™²TX~m©ôï/43£ðÑ6¥ršuÀŠ-ÚMæÁL%¼èФª ¶L@•ó óÔfìä v᥄¡Ì€n˜‹Å®‰µ9 êþZÙÜôÉOÈWÁS°<{ë¶Ûk¿HGºqó¾Ÿù{¹õ~û‡ g7åš§•ž.ÚTÆ ûSa¢šénq^Iưã@bx%Ù¿L&<<éq-”J^s6ˆïÓóÉ'ÍG}ªÛ~X²€R²ªd…•žl; ¼…L›X .Oùvº:µ±7¸Âê½Ó€³±ý3r<سSÜîÃÙAeU]î¸3«T¯ªe>+ÔÖ`{L*¯AêűH_GÖOˆ•}šÁHÂ&£ØLBI"¨é†Ê–:DK9Ÿ¨ñ]#b„¬FêÔ†zXˆËf$5@#ÛDB¸ihöpHá¹.:òb¸^KÁõ‹aÈÜŒU˜E?œ&ïó®_ÁõœÖT§†1:ö:>…qVv˜ kÆ“Ƥô’ô¶×ð!"3DY}SiÔÝã‡òº¤¸œ·(ËäKº¿—ø6M©mÄ×qƒGjKÜÏpoä;M*kÇÜûâ?¬Ì ™o³Ý=M%Ýâr;äv¤Aþ¯¿ l¿ä¶‚Ç>‡ÙüˆÏŽÄ.£¦ªYï3¢Ä1[c–óÇYC+–8ý¨2¯I@™ºôz¤!¹õàF{"´`=(·¸ï¤þ@º%Ö8¿M,oã2he|~-¦¨‡Ž½Ô'L¶LÜ›<[JÁ]«ô‚bQŠØhwž–×0wBœOÛ¯±\D›_EW2eåb¨|Eíê)¬ù/ìÉ«U[ˆ9I,,XðÝÙé+IÅ̓+oôægbæýX»Å ùPš¶ó‘4"‰kÛfü»bÖƒ;ޝ|é®óšHa”F9øK{¸6‡ædÇ’b3쇼D® æV¿'¸Îêw³uDÁÅ*&ˆ/›¥}¦/¶gÒÆÞYq@s÷ßÊÉ‹ýz{nc×™’"ñMpÔ2Ö?j¹uŽ5š]x‡·bÔ…sö²æ“€º÷73ÍQ}ÈSJ×^ —O|³zþ¬ÌÏàCPÌfg1˵×W¿DÛ¼9òɑըeÕï„5ÂÆw¹Ò]ñߥ-\ö—&¿9Ýf€  ¤Mݵw¯×pª!oXxÊvU‘‘ûfŲÊ#5Óë´?l6¶,¢Üøv¨Ü¾Ì‹¡Ó„©Ÿ`²×Tû{í «¯cÈÔoØâä=#<æDùe7f—›Bûñ!€ÒåþK«p!˧¦³ iSTèÂI!cŒnˆŠ{/ÙLÐÕŸ ½v–~Hg;Ûb9`´†²Ñ¡»«õª;9…ö ¾—Ô…€‹¾Fm²qŒ’]H‘oÈgW+¼IÒ‰ÙW®y"®›3ŒÖZ3ä [¶{Q¾Òo*prä§z?u«ÁƑǧ_©»¶Ä‡ÑOÃ\ÛTRvl/>-ö»8ïçÉÕæw'Ö¬Eé ÞCþ~‡·s'sšþ5Ød MÝ/õ†Ú‹”[ÿvQ*ˆIÌCž7„Ã7`¢†Z2Çnï¶tsýAŒ‘˪/ÚA…Êÿl\J!‹Ó…Õ_ç0§]˜Jf¸f“HE™N’ƒÒxn*XÕ; ƒ LÏÚ rùÝ#ø†bÒ@ý³¼¤HÕwJèÁbU²y˜½«3J-‰«Š¨ª˜ø¶,¬ðÙƒVï3ÒH~ì2¦ ’æÔcšÞúµg 8Ò²þ„„4f}ð˜+!rgÇ‹xÃe¡hAFÚ/o_š,ˆîK­´íü‚`êá~íJ%HÊÌfØQ¼!φ&a¶nÿº˜ÜOtÚåÒ¬–>žKërhNè“WÊyV&zŠÍ^?¯È š N:é×¶vTãô^ÏðÈhÑ{¡n<§ï±÷þ̹'BÌç”;‹5xyëÜ®iâ=϶[ð€G%2Ѩ䯛ÿz/9Y‹p™°rãxÒÛ­K_)?´šœ-Õ?èæ3ÀÜì£fø`èÃk×ÏËÞGÕˆ`ø3îÍûi€ª¥Ê¾ ¢Ñƒ¾ÈCç£íÄ]œíRök>ò)t@Þ5¾UHF²«à=Ó¾jGÙm>™šjÏQ™º3«WÔx)ÃÏ#VËÑH}é]†^T$©h¶yŸÛ8%ŸË©Ÿ}â¥ìÓ3 «£.×ì5ú}§>Zg°èE'}¦"®AñÈvSîÁ'æ+°.ÄÅËâtÄ»ìUy ˜/DürX—gÇ¿s·Þ°þ:Æ:bÒpí-+’OjyÙ¬~]&ÉU´„&2I¿¾ë™ŸÉl\B¯£t®5©pÔ£!+¬;rçnËE2ä²eUÞfš‡íæ,ø€úSQ°æUøÑý'G€5·©ô[…'øbZxñXÑBFí‹Ï?î£þÀÃccŒTôpÑßÃߨ\…DÎ\~ØÆSQ8ìÏOF8T/w›÷z3±…¾«#ýUYóM½F+„·"—:“J*–üRsj[D+öº³×ê¨D»áV–ù]§rbõ:·Ì—Èl;îæÀ¡(gnh+e¼y•Äo[œZÙìÅhJî É¢²ùe‡/’-ÍßÑ»Ëå(|ø‚°]2À~Ù–C®VrW_ùM$f»_ ¸ÖUÉXÚ²qZûuš‘\@ Ñàô™†g°¹b9)ŠOÛÕ¿În®Í òêhɯT®ðlÈ»%hy•ÁËrô®'@'åZA¤4ìóKƒ—‚¹å@Á ¯Š 5·iùçÛLvQ$Ûãq6v}Ö ªUÆÀ¶B*˜_:o{X£ –t|Rµ‘.5)“ñßÔ7/:ÔlU,¢M¸|la_ c^TòŸ2“Kù±«{S† ’(ÎxÌ‘(Á?c¨Ð–¼tA´ç;= 6Pà4de†ì£YÛi Û0D\÷8½…T­Q&z{äZy$»•Lõ6K|âÚþHiógÁE&ÛÁ Ò¾h™Ã†€Üî¬Àÿu 'ÔÓMóã&¼>¡f&["@B‹¦‰ù­clæÑÝv‰äN1&€\Ú9;ù9©ôY´Ð*…•²¬]+ãâ‡[¤ðç Ü.u¡ÉÌ;o0ÚqòIa¼,bª—;ä¹pisi© ƒÛ4‘"R¿ôˆJ÷¯Å=8½Ç%Ž~Ä¿Úu*vN¬$Ç’¯…픦ixEá|ÞÈ*Õê÷ ßôžlð~þžœ­«` ‰S¨Ùµ}n`tÍßíñ¨¨Zmò%A°–0–F Ÿw^$j ™¼‡?þ‘»0MªÒ@""aý»_{(T·uþ›B©&„ToQ¾³¾Ùþn8C«s»$\àM&'‹¬ƒ-1†µç”1¡*éÇF¥+òÑη†øJ¥ÕzÒ€žðøšŠ]ÁËo´gðºDA UßA/…£7‹øµÓ›Ö[>c'?‡åœ~+‡ ô|þVt’Lô’E__Õ ohŠ/ë«÷àÖæå˜X[|þŠ6¿ ñPTŸÞɼsŸ ]w¾óQçî¬Ð\HK]ã2€YÛ¬8 =gؕо{¡*Yú¾W0´Ö馀K©¼ðTü0wø”ÂËŒÊ}Çú5=Ðe÷Žg×Ýín¼ËŒÉˆžÙ+3ÍNèÍÇݼ¾=e,¦Ç§¹–ÔÛˆ¹Žf›­- 8•%VN¢‘|9ãz€IÀk²H®ðk2õx ‰3=³j‹cç!Û0óŽ*âçúfáYoŽþ–9¼Íå¾ÙÈK¡TÚÉ<âóòqMŽãtymýÇi—–y+J,ô«¡Ì…!‰{&Wã $}eW¿ÃOG¾m›Ì†Á$“–NÍÔÇý;U'?Íøà)D)3 H¹b2æ ~Ò‡¡ñFœ 3÷öVdÁ=X¼<êÑ7~â35ÃÖõ¼\ÊÝõúi•!+zT²ÔTü_ÿ…W𸎜›‰@tì(µ\M9Bª—ù?j«“I°ì¶ß«Nå­!"®8dNè Ø"ÛpÎ$G$åáË?ñ© ^ã{ÙµûàèÙ ø1ÅÜXJu,¤ñä!L-lÐ'>¢Ô*ßc|| êm02þ(Ò¬WÊ£òíøìSë÷çYmð3Q×Eð~B„»ëÌ1V—‘M3¹;Ç8(‚ÓŸÅ¢yOø‡8a”®qŸ“ž ùšA–f¿<Øö<¦¸}s™3²V5¢VÅs…Ù´?›³×:AÃÄlK_~Š|Y¸•ã2: X̺f­"-•‘·v€›Ãt09R‚ÀÓô¹ˆFŒÝÖ£„ Äê矨Ë&%,<$Ö¢¿´.cêçDÔ)K¯Š&ÇÌdm“Î?Qâø·Í4ÐË÷F_RÚâü¦ôbšïdÜÇú~f u_éÑÄ?oÁËE}ïYtLoEü«Ùn§ŠíD7Ë?…ž9Â"Ùë£]¨óh´G9›æe ¤#Î1¾Û KþÑÀ÷Kç—~ɉ]&_Š Ä<­D÷O'¬ŠÇQˆðДó?)ú|©­aƒù° Gž$ó• ¨3+5ˆ¾FH—š¤:ñN8?šŸz«·Q–’&Ý›B<”¿Rƒ,VÚ;~ßßWHHóî±šÚ ÏTÂhš6ôt¤î¡Î‚ª$©ôoHFâÅŸÕ>#KI"Í%èÐNâ¦A¯aûͤBËOþx6B lX´à^‡Í}Œ©0ãàHÓ(˜)]ÇB5f=ÀšmJ.8•«©Š#Ó.î¤A ZWû:m{·ôatdö@ƒvLæËS’m#¯_3qqK}%ά%:Nꥋ¨0Å„âÂ=ÑÄÊ뺴86ÍÖHŽìh‘"½Òjv+­Ç¬ÉžÐYN†W¨fÃÂà—ìú×(UD?¢oß;阚—iÁ¸³ òŒ3–rÔNSÞØÐÓi}yîæy7ºŠ®ðÒÕW45SÝ–,U©Ç]¯Ýc&N¸ÓqmO¢®ãX¨ wV7nŠ{!ÖßTuñÂ\Msn‹Ùd#×s6އˆ‘Š8Úp&óy°Ê˜_8ÁÿÔv“h=°æÙ&‘ÿ)¡¸ŠPè”Y4À³ s¥Š#²û…ä!¥ÁBHŒCLýË}âjÞfká`L’ü‹VZþö˜LçF &ÓK×Üãbé°èÆ'Íîræƒé=uYT y}’XD] ÅhgûxPû¥ï@è³YÉ‹A\“ñ66㥔f<;z¹i5fZ]Ú›·˜°u1[D@ˆºI ;y¬".—)ÒÅ×]ÉëŒM¡°T!Ÿé=¢zû_ü¦X5e<|m¾q¬j”;¡Í懗X Ãî°©?|‰5v?ó×MNß›»;1­Ê–0Æ=í6ñ$~ÎJá9]?8Tüòq{*:‘7x}9ÿScÛ™¶j®Ž£òòÞÊÎÑÊv]=]`Nú¾†5³†bf“dì~7'›ï—XUØÇøœ‡ìfu36ûâK»»«¼j…Em@U|ÜÊî},<ëJxûã#m~߸Ëç—O1hgJ,Z,¶S±•!W&õÝzžu»SzñÔc GÕªäZR¦ãÊ[÷Toˆ%~Ù&³9²ÌUîúÅfŸëÌßõ:m, 0¼à Åoí– Ð1îŠþ_8¯á$Æгò`àÍå4nšßJ\2·áÒÞE4íñÚi.$U(À¦G‰ÚùRŒ„~ÚëS´y`<äã·BºCtewPJÝ}¼°çáŸ;‡ J‘2û“ýMY 1õEëá'7z'ÏŒ_qæÇý¤-k*‰éhjåkïGÛJ ߣÈ}‡9º¢v°‹ü¨¸â´Z9cçU´¥JÜåž]´ê²¼èîä©õËI5bI¥~y+1¡ŸºŠg¨¶!~¨b¬ê5®G”T‡íš‰Eo)èû%ˆ×"œªyúbä@ž•©@hÜIƒ1“Yô Âø$É}„.­ƒ¬^Mˆ )ûs7D—ŒÂäxöÚ¾‡Ú%͈=øZdD…¦ŒW6f˜+Rñ]Šlû´ÑáyзÍŸ=ÚÐ {8 ä„fù³Ýº°éÈo/0¦#±ó Òƒ½rkÖ¤Çö ΚSÜò‡ÿ»D©´ö[ÀÔÆWÛØèå-& *ãØ•’ó^P¯UÊ`Y=XBƒI t7ÛJñ XäΨ}‚ì‚WÈц}ƒü0ç;š°p‘Oà´buÕÍ„g÷aºí‘ûÛMðôÖ~h|báiÄvÊu_äbŒèÙœÉa{5š¼ bú8ÎÚíÆ, ™îu팈=»èƒ)0V†Äš¢Ì… ÙÎ_uõ~S1RÓ9èœÞÜ"D&z¯u%’ŠC½mA…ÄõFmÙ?Búj;…ЬÉ“–+!çßòüºüÊÎ7Ô({V"ÅTØñ\g³Ôpƒ¹3„Ïlª¦²Xšg`3`l{ƒè¬£_ùiKóL@ d|Á÷‘ënÐ_À‡Ô¨‡Û‚r 6‹g6/$”x²3ID¤ß„Ë+ßuÉ>ÏT;‹–ViË·îNÝùfv7„,ɪ°Ð þíM4¥@ îí-”¿PÊP ³øêÀÙþÄUn¢Ñêæ¾HûûLSšš\Hc4´pÅ<õŽÄ°*íCü·Â_b‘ŸÇ ÞÀ8cy—´s0Hàr #<„…ø¸y4¯Ý¬Æ›&¢^éF”3G)"2¬W2\|Æ“É[°9±¿K¸ЩÍ”’6Øùz¿KbË ¹¥/ùšUkžA´ ëŸëüVï,±1E“ÃABPâBè-@FÔ£Âÿz˜£ ãèñº£eR”¾¤¿:ÿ‚Æ”4:?Hûqå&Nh†¿X¼‚58ÊTô@ÛÞÆ vÉöÙ6(z­|wŧG®›Ï®ÉØØ´Ÿ¦UÆÖQïó<ì׈zÇa¢qÅÒû½qôžè6Ô:+|]+£ Ü%œö»`±„ÀE.û²ÐÁ(ªÃD79_äd›m$µ¢´[Ö+˵á_a¨0»ÍýaöH˜û,—B§uáN½½P_K>t"«¥7)¿Å -jn²e¶_ÝzíÜo¸”,Y º Î5ÉÅ¿UZ€äT[:H"û…¿`Ù¢m|e‡BçÂæOÓÄ>3U¨bä”SF»Px"S_ŒnWÒ¨˜MÓÔ/—ÖÌhŸ«†ïz€ä{bquñ›§Àˆ¡«l½ÉÐÍjÄ­x¤ÜTFt…ˆÉx` VÖ½7Å™tè`%)ÂÕø_ õÅÆÂ¹æ?ò-Ä>Ç+8²EÖ”fù™w3 íC—aÅ…¹.ŽIç•[BC¸UxEåxí»aᲈ™›8…pØçP×b cÜÍe4m|©l¾‡„–Ä]ÄŸ´Ì{ø 'ùRc Á3FÒ„£šÁ%6ÆÙîª7oÞÈGkgA8QÜqžÊãWT4¡ ÿíXÚ^Ê˰zŠ·ñDD˜p¶Oå§oŠê”… [Ä*Öïѳ£bpieXÞ…s| ü|$œ’ JJ“.î:cýD{täÏâäKã^Fï6æÛaç!w¤¾î¯Ùg~#M"pLٚׯû@Ú|ÒBòbEð¼Æ GÜ¡g](´Iòƒ«Zÿ[„®†Ù( ¶2ÏJ# Ä±Ä ø ]WôötRS¨|Âù,÷púA=ÍÙ)!un’¢ü¬­´*9² ¿ÌÉÜxÌoærfrÍSs3Ä9:G­›äÂO0Ö¯6¯ö4È$ßitãøg 6 ª´kW®¾sÿJâ(7f&Á*ųÉQÍ⦅efU°”íË7u‰„å«¶¯_jäÑ”¡2ƒwÔ~mû<DQ±úmp›ý‡P.˜5p²]÷DuP)Ä¾í©¸Ê™ÈKbµÒ²éŽödf+M° ‡\»áìædSA«k6y,Ðâ•ùÝð…^ŠÛôä"úFvª¾,ôÂ0n®äEŒìZˆÒ!puW„¶É”¥Ö–©!úv×/{\ýÉz€H…$©ºÔ°ì¤Ï~C›âƒ+Ì‘y"fßáQN¶ Þx&o¦}‘nüÕBù7šÐü&U¦²Óý!’P²´òƒŽ\geõO"º­ð¸«t7ÄçˆnRKßž&ÌðV“Ešˆ&Jœ†¡SÏ:›#(ÌU™Ÿ×³ÈljðX)Uªjb®†÷Þ4‚œÕÑ⺄Øô«ûß‘êú‰„éCøÈƒ`ÂdÍÿÚôim|åêÛø7_ÖôC8ãØöÖvÂÚ–xCŒ)ûw•ï ¤]lXäH·þñ|­Ã /bÙñÝ­s 'ê%2èuˆD8ÑFýØJ¥»O,['²/G¼‹Ó³†2¶0!_z…sìûÕ"^ZGC&ó#£Ý¾î•]œ³V&Ç^¿b²3¬ërñ§ª`iŪó©›ê»/¬±ŸŒ‚fçó*¬L̤Iæ÷Ùf-óá9ŠH€†½Èü¢ì+CœÕ—@~$z,²fxúO˃íC(‚¡ £Õœã*ó ãR(ÒݬILãh““âÔùÉ5‚wPjXß}€5âžwßlgæƒÆ_¹MÞàu‰8ïo1Oüz`që+ËŒ‘¬>…z~zB;» 埙À‹²‘*3ìTÝo[0zÁÙb\ *—œqÂÏ“Ûaë¥8ø–I Ú–¥ßÖÁ·³½º\’hôŸ†8w"?ý,‹GˆkÊM"]F-~xX]\L³lç^§ó.eþ}’Ë—fgµE’)Ü!*þT/Si! ?‘õܪ†{¿ç—rÝNE}0.gCi„mÞ;þb—gG¥C¬„^i»Þ¦:OÚf°¨@,BªMlè\…z¹ÊH[í~ŽZÉ“iôE±²‹ž&M•Fùmˆâñö ^x×®/xMgæÓÒ耠[,ˆ¥Š+/`Ê›;áuþ£l¡±ó`UR!k¹0¢N¢ýÃçAa—’P2¦si[ö†­byZš¥éù`Ȫ=ÄyWMesš ¢ª÷2ÉFž+ŽÈ-B/Üí= imhKfë´¾“ìÔíR?ÆóúŠi®œjÐæ\ؽð»Ñx´¼Éèä·DŽ»Ë›Oè ÕÞ®”1EÒŒy Cs5Hà h¿FA¼Ú-Ïls¡Š±ÆL˜Bk$¤{Á—ý>¸¡à½NŸ±N•|bاþK&°/ˆä=´g÷}ÊáO|{°üg®¡æ!‡"«ß(•y]û¨É¶4Ô¬¿µ C|¯ªûaöÁZ“‰­0Ä÷ñ£…M|È ;šÉ ÷­ã ¶K쇶q¹ÒZúK|VÎÙûon· »í_Åô)\ý䵂¶Í2÷k>™Mš¾êû<’# WßgH‹kÓlD†%­jfc±;]cqw†’Üx ø˜7Ë})…§Äò¥Öú j—3áSÏq&BõwUÏl6žÓ¾²¬æ,ê&Ó|ÌrKa 8¬AùRž!ºÐöë3_0W&u_ÃÂô­k®Iž€/âUc÷l<á\L…++¦Ù¢ 5†ŠCž? ¬ÖÆI%œdŠÉáX^GÛñ9+y‹ÜrŽ6Y½! 2€Ï¾í¼ÞÛkºd×O_‘Iq‹ñÆ8ΗIصð0¼P…r‹Ëf5 ‡\"è®ý¯ "<“:1æv(´ŸgÖönåÉê“pï ï¹è('G-ƒÀX–„"÷û>Í©V¾eæ,è~¼m‡"ÚºOKÔ½¾àhï:eîw JØ…A+Ú}˧r{ì0kY¿œˆÔj[ßQLN0„ªÇÉ) ÜÇâ¶ŽÚ++Òj¸"¤æ¾æÄ7ui;)ŽGØØÞcØ0BÅ[«™òJ±—ãF8üU³ÎB^7­qø;Öþ ˜†‚ùÏ;V\p]V­²öûÅBIúl³[^镯Fœ{úÖð™~÷M3ÔYŸTv×¢’>…wX:¬aîo¢Fò oG²;(Ög·ÐØVBv§‡x¦GµÏøÌãª0ذZ¡mÀ< °Žµ '²#n¤ÒM!x‚ñ纘O-×À’äWU§ûhc({d,¢0&t˜Þ2ºRëv2‘Í»6Žñ Ñmþza)Õü¶¾]í“¿Ð ÜëSe¨Ðò—°pQîr½6æ(fQìkkþ3»ã%sÒæv?Ê<¨&öœOðQ|FŸðWŒé`µ úõ bNè’¬ÖùˆÞä®rÿ“«&‰!f1[Ù½s-µ«÷…ND‡yê}(Dâ­Ê˜ƒ†5æ±ú¾Ãýã;¯ΤI7ý²Æ(kšjq†T¾cÎ#á–¡PÌ"‰>ôTÅîÝG¿q¬H8=Z-÷l9nø~D›ÿPlE‡Ùãq©ÎÉÏXØ“mÆ/ÉåšßüšWNU#{µqh¸ÄÅ ¢÷TbtX?§.*<,ICOW¡Y\×TgP'­°WëË Vn=Ãp”âQNʪ³ MŠ[ÓÔ¢ œáiù¢7¯‚jm¯ íæC¡ÂWA Ûœ«f}›Ïá( `Æþpe†qšC²å©ò5?pŒfç-è>&YÃ×4¹A{»¯6Á1ê¯ûd‚Ý0}=jDýzó3ι¾?»œb)?:C!gTôæPF<zí£ÃƒÔ²/¬YÚuv¬® ±ü~ÛLœ†c$½ G±¾ØÊÄ…È’^NÒI|ÔFQ)xzØMÄ%mi1K§qt¸È{?þ§=›BV LËÇó9ºT{6 —¹”«³«o<•ÑQÔ ð{&vi¶ýJ$ʶ^Cu©õÃí2ç¶ Ãåøæ¯¿ï¬Ýq€(„×ꪨ“†É ·&¡„Ï3'²£åG¾uÉÓ!ÚëÎn¦3U½#“Z(ŠƒÆW –ÒÈA+èàjQÅ?×ã>ð1½t²oQ<Ða ªÊ£À ^F³\Fq—D<œ¼ÅȶhÎQQ^H~#‚®¼§KœiÄdWç¦Á‡ÇÑaÀ®míÉÅìgd [ãïEíÂç}²¾Mǃ³š–Ý8˜„è|òøt¨¥“©¨Xp6mTÕð4›–Fˆ–äœ'ߪ˜i“­jiax—Š®iHÃ^v§axÂí›o¢lAæ’Ó¸˜8N `^ úæ: ž ØL±âØHv[»¶ý÷AÀ„|Wîk]k"!bcÁâ¸2ÒƒiÄÊ~…xÑD £o¢®j½Ô¦OЬMN’üj([dF¸Ì4*\-m-éï™í‡€ï¹íyø²Bí½¬œ›+[…r©«yògUiùpó"R›g»XI’lÚÙÛæ ¯}-* ;‡T§ô4”_q&œéÀyô)íy·„²K hl?èôY–„É|áu€í=žÊ%u @kçËI¨[*k+×½ý¥26Œ(\]T'Gæý«µVÃÏ#ˆè@²m€ûâ°‰oäÖsÏúQ&c#h²ûõ—è(O¤NäTAðÆÐ zäz$ï§ä›Üó#‰Æâjo½}Ÿa™Çivë0'Œz’¼RÜÜÓÅ,?Î¿Ñ ñ@k¥<Ó‘g5ñjåËW˜ ¦5¹éÊî|›þ’ZíèöÁÛîŒD¸ŒÉ´íBý -hµš„£‰^1{Π§Ñsª é/Ka¸ö‡ªôG\$AvÝtI¨nŒjArõ?˜^íÇÇyì6QžIŠ}²4hYõZs¢snV´PŸý±BYœÙ›4ÄÃu.ü!Š;O8V§N‹“)`Í|¾ôNä²KÔJwo]#¯C~ÜâN,Pþy¥ŽÛ†Êؤìs¥rç‘yL× S;»EÅ0’µ!‰¬!×AH†ÌžJÿIï¡9®3éËבæ8îu®B¡ÔâÆqƒ„ÓdÜ‘†bBq5±ŒPgû¦UJåFÀPÇ&w\C±õw$ÅGÇ@:\´O²®¡}’…Î>˸¢4Ý/BRéh·³{‘r3èbt úö,Ze÷wuø}$¼Ôzà;ö¶¡ ¼tA#—?Ç ¿Ãvж3ZŒsb€kë½~þT<ò÷NÙ˜è^•Ñ›uÜÏu-ž—Èp ðLmmaÚ‰N—½ ±X©éCˆRÚÄ*à̓¾FÞšÎÚ£$9z.‡^ÓÂh{U þ‘†R€Á›l`` {‚Ûax ²<þí2qxSj—û²1d>ÂŽþuª§×(ïB ß±TuÎ>4Ç%"yÙ†=îÁ]£†Jn®Žq 2?bö±VþM(ú›È¸ÆŒ~ÛO_‹*’¶ ù6Œó;y£åcØã:Ú²@<%wlŒ”Rå%ŽIP°ìóºÞv›©?g‰“«|€v‚‘¤¦Æ$6MÝI ÁØYÜV”” Â§ «µ=öަ+:î笯Šú‘ßÕ·_OugÂã;MÊR[X¶5|iÒëêâ‚‘»0EL>¤Ërº2Yߟáà•¯[ÖÕRú÷Û£ó|]sÖSÀÃoòW)s4?s*eàšû²‚*÷åŒ*/¡v½‹¤-ö6Å~`Ÿv —o*´ÁÀýÀ‹õ‡.‘uF7„‘Ư`wò¾ù¨‘—È/åõÕCãHƒ { Ûø|õ“‘`Û9À.&Èó+ŠÓj/æä 7E³#FHè¡q²HêtüfÊ6Ü)AJópGÛÖ’奼|䞪Cuˆ}ó3T„c®(–éLëB)ëôFM¥Ó깋úéK)›‚|<3v9Eå¹WH˜¥ïÕÌ=éѸ4¹grº×5&Cž ™Ú†èW^Õ¢ot8äñäBÀIKnìdgNu=F*™ c…‰ÓàôWwöÊ¢a혀 3h©Ã¢sO!cáÅŠÂ[¸AGxFdÏÑûŒVí'ñ§9l…ß\Ì¡ê°gÀÖ¥ó?LH•jW,MƵ53?qS®£à‹jºÜ`,)2¨ 0îÎvë l^mˆŽþvÛˆLå˜ðCÂM×qw2¡ùOŒV”<µ¯ëÁÃFÙØÅ9¤,K 1ôCÛp†×Oü`ãÅ`ö¦‹b‹tÊß²*)Âs´zjÚ¶Ýò‘r_b0窴)×RD¥¦–pÌmìdϬ™úσ·yT¯¡d„<á~? h:›?jÐ&dG®wÌbþz¤|œî±sÙøÞN¯Lù+É×RËbaYÞ¹2·øôã'«ŸÔj5Ž€N ˆ¹k7;¶‡‚€‹lå9Š·³–zT–ÊÔïss±þ/ûØþ†­ð—ÝßÇã$E‘ÙÖ@‚+OÉ–M›šG,†Q®¦\‚,¢S“9£ËcÉGV(?H¼m9H/é½,1´9~ÙÛ+±]µg¡U]=íG÷ãaw$a¥ì tœYd‹â>ƒëi)`+¨y"$Ö¹«%Y)W©Ú½òœÈt䚪$÷͸‘Å·Þ/Ò}Ã?Š0-GƒÅ4Óæ¼]HV<ª›v Æ-Õ(8RרÐÙ|S –‹áe]ô»y–Ô‘Œéºž0e÷ ;#bÍK´¤ˆô· T Ëx{½‡ }õvŸ±É®Ã‚nB{JåW›Ð"÷¯ù/•þÕ¬DOTzÝÀOÈMñØ«¾˜Ñówñ{Šjˆdœ½¹ûúeiö§È|=7–Ò®¹½j~ì¶ý®NLˆØC¯ÒbU”ºb¶$5Ç+‰¥º2ËŽAÊF™±Û¦Ãíñ›o­†éŽªcKh:…m£[oÃÅ‚$Ñ´CÏ+!{¨ê©ïÿzŠè˜pƒÿØ8f&HobʉFMC¯D`˜ñAežñl§3`û¨¤´½¼zl9óŠ‘Ú£õ|Kƒâ³„@bExãó1ñøŸöMqÒû0yU4#äÁGÐûª’ã|VºzåaY>_S ÅKEÓûªORx÷ >ÿîxu/åôj²ÁÀ³‰ë…a&õ´ŒÞ>²Tp=‡pçG¾L$õì¼5bÚ‡¸ƒ›ÓPÕ7”Ã|ƒÇC±&à> †b²üAÅc‚(‹ÿÁ<–˜‚ÆàäÌt»ÐU6݆—Šäöó®ã™Q‡ši <"Ïhûºpë=Dœàœg=ÌB—{kWQhùÑŸ¯Ê©Qš•pBÅׇ¹‡¢•4 ¤ˆ\v°óS99ÃçK^-yä$«› K{ô0ÔºhØpTÉ[1¦…:j®BÈ:ì¯=`-{ó9!«? ä Ÿu)]‹gɧ2f?Ë,.%$ýæHý«X&q1û–dù<&·“VXsÝñ7­)÷¦Ö¾B»ì•K$¬Y«&%K—Ýt¡Ã/S —d“þÛt«Ã(·¥Q¾Ä¯z/Ò;ükC3L›&y2MŽ#ŽuK}u]Ðñ_•K¼ìé¼ ,¿t0íÑ]a¥Ð&bÊTf$dÅÄ ¤ÒŽr×áݺíÅü½¶C¸fþ}]°Fç úš#½¥(Û㌻0¤ÑQÙ|ÓÔìÑï¸0Í!VS¥4É` }X™n·œ ˜üµ^?zË]ài8-t [ÕÚ'¨o¿‚â“Jß[¯ôÑ,-±W¶u©.Úny‚ïØjÜ Ä.LYAfÄ¥×4n] e…G÷$ ³Âùu€½ÐÆÔÃCùÒ:k‰¤-¾? þ›|&oOE x'b2.â½äx°ûbÕ†dªÂ<†@ÙÔ4¼X‡àA«Uº˜P.éö Ç j­¹Æœ°ßéïß^rµW…9¦#±žÿOîþ4‡Ñ¯!>ʲe®Â¤½¸uàx‘CÌ+Í1·X|óÞ:P*Xâ’hÉnÜ~i•JÅvVæyñbVTÒŽ‚«2Ö@lã9°úEx*$@²?ÀivàÀ¤¢¢”ÿ$µàcU¶ÅQú3 ˜ç*š[Q´i¡(TT­2gn³ò-zsÜõuâ.Pw,µßóæGÇÆ;€X% ï‹¯K£ÔŒ¢1Îd¬Ç˜¶ŒŸJ<ê2…ŠÐ_n= AÅýƒ®mÓ7´k“ +`”ÏÞl›’‡ưPó%hJê[£”°,=µdÑr³ÞK¦Þ3M¦‚ÏxV%E< Q;¶°ôâÞ¡2]˜ŽÂ;{Ë=j4í³Ç—”„!˜6•àá$;¿®×;æ}Í`ŒÍhëõ@ÒßEHŒbÐòúŽIy‘‰Ëø ‚¹íþKaé)þe=P ØZÑÂGqdQܱÁØÎϸ²0?Õú¾PLÚí0y‚žæaë…·Ñ9/:ŒO¦0ÑðD#z k¡5#%Æ4æ’¿J¬¦ÐFpPÜ–Æ \ée½¼sq¤;ýõØâÏQáôÀ½ˆF T‚YøP™QFP’Ì"¶µnð´ûú÷$—×e«úvžfÖû· &E ʄ…ˆ6 ¦8ÿÞlŠ8W¸ÛÉ endstream endobj 1555 0 obj << /Length1 1978 /Length2 14279 /Length3 0 /Length 15485 /Filter /FlateDecode >> stream xÚõPœ[Ó £àî2hpwww—à 0¸»w·àÁÝÝ=¸Cp î ØåœWrÞïÿ«î­©šyVËÚ«{w?CA¢¤J/ljg ”°³u¦gf`âˆÊ«p˜˜X˜˜Xà((Ô@ÎÖÀYá(4€ŽN ;[žøEFÎï61#ç÷0y;[€Œ‹5€™ÀÌÁÃÌÉÃÄ`abâþO #@ÌÈd gÈØÙà(Díì=AæÎï§üç@eB `æææ¤û; lt™Ùäœ-€6ï'šYTíL@@gÿ¡ â³pv¶çadtssc0²qb°s4 ¦¸œ-*@' £+ÐðW¹#àß…1ÀQÔ,@Nÿ2«Ú™9»9ïk ÐÖé=ÁÅÖèx? *-P´Úþ+Xî_t€·ÀÌÀü_ºgÿE²ý;ÙÈÄÄÎÆÞÈÖdk0YŠr ÎîÎt#[Ó¿¬ìÞó\@ÖFÆï 7H+ŒÞëûwuN&Ž {g''õ_2þEóÞdq[SQ; ­³Ü_úÄ@Ž@“÷®{0þ}­V¶vn¶^ÿz6ÙššýU‚©‹=£º-ÈÁ(-öïˆwÜ›9ÐÀÎÄÄÄÉÍ:€î&Œ‘«yØÿv2ÿe~×ïãeog0{/è2¾ÿÀy9¹ÎŽ.@¯:þÁ13LA&Îc 9Èîû»hö/ü~óŽ w€.Óûà1˜þúü÷Iï}¶Líl­=þ„ÿ}¹Œ"2ò"Â*´ü_—ˆˆ;À‹ž•@ÏÂÎ`fbåp¾?øü/ËëÿOí[•Œ@ÿÖÆô‡QÚÖÌÀý¯Þ{÷Ÿ2\ÿ=Tÿ^jÀÿž `÷>Ç@ÕŸ±ÿÌÄÎdòþÅüÿyøÿNùÿ7ó±ü¿ŒýÿÕ#ábmý·—ê/÷ÿ×Èdíñoÿû»8¿o„¼Ýû^ØþßPMà¿–Xh r±ù¿^ig£÷Ͷ5·þoAN w ©ÈÙÄâ_ôŸ;x§·Ù•ìœ@½fôÌLLÿÇ÷¾k&Vﯧ÷›úÛ|_¥ÿ=RÜÖÄÎô¯caç9:yÀ½_ü;bx1¿/§)Ðýï¹02ØÚ9¿§ÞËó˜Ù9ÂýuŸìFá¿LÿBïƒõqEÿ n£ø'+€Qúzg‘ýƒÞYäþ wù?ˆ À¨ð_ÄÅ`TúƒÞ9Uÿ 6£ÚôΩñ_ÄýÎiô½sÿAï:Mþ‹Øß}&vÖïíý…í/‹ÍŸü¿úÎhúÈ `þ²ÍþßUšÿ¾ÓYü¾wôø.Ôêð]õ?à»T›?ù]†í?à» »?²ßcßÿUþá~—eÿÇýÞû÷e²ûSÛ»P{k§¤¼kuü|×úOï;…óŸÆ½Ÿîláüç‰ïŸü¾ãúø.Ðídy—çù7üŸy5qqt|‡ÿý>yæÿà¿ÿ0€@w  Üò;Þ Ëº Ž‡a|7ú½Iþ9Š=ͯÔô^ËŽ.¿‘`’©«36 'ô¡¬íˆSÝ ­¿x´6À„¶%*·?y?Ä«ÌìµÃ-Mc}Ÿ*8®$üH@¯&´ïýâà­áoÙ Þ-CñÍÁ… I)ýÁm@Ò½~°lu<äÇžò~5‡,üsÙ,}´zÔgÿâyŠ\ã¬ÒÎô„°4h—îÈów¿æÐr¦Þˆeâiá|N£Y ½t¶Xb<×+ÔXœzpÉqup!ïÐÆg(½DSd°½J ×¾/¹·òç Ò¥®Ñ£0²dTƒT"m›ûk]Ç—»˜w¿%‚>áGßM¬-mÆ0p$UĬn7ˆDw®eµv™‰¬wüÒè5³L%Xáž­,p’$Ö"f‡»M¬kñô °ææȸ]LœÅ•–ŲÜ~2ÃÕ|Æ~‘Æ;e°r×4Xg¯.6_ÕÔ¹KÕü¥øì»¦G"Kê>Ü?´>ãèr*3_%(1±Âqò(“…í&Yp%¢Ÿ?c†ô‰¥+Þ8~7@µòƒ'V”c«Õæ¾QçÏ‘.¥JRË«>ÿ„5ç-]´2ÌT]ûýø=dx˜³«ˆ¹=^%2Æõ'ÏD$TäsBº$©²¼Ýº¶¯OúŸ"ø†í{8ÿ“5%Ý3#ÑÉš d8n*<¿S³iÌy±Þ—ºÍü6&®®¤#PWj¨|ëAm¸1ƒ½ö`n Ä•N-tT§ÿ.ãû†é~g~Æ"«u^‰ëÕ»ìWQŸ˜žŒ´ÏyDþÚ°wõUQHþ©,_ðsÆØ*|9Œp¨Ÿ¥1é°ž9P x² 2ω†å³>?49Zò¾áÃF+á£p(EeFp¶w¬%º,(À嫞k ]Ó€æè^Ý¥W3iISzà›áœ™yÉ­†Çß(1¹?žìÉrEhó|W¾´?=`~ú^[W¤¢ªÿ­kNi¬1Í(TâªË7«§áRkOiPÐ:FÅjwPÙ’ÕŒ4%ŒPjÎþÎÄ.±O8ýöW¯=a0òž¨€ðO£>EsÅè–úŸßÚvœ^€)ÃæƒÛžÐ$tkëŒI.—ÍôàÜM.> …ÀøFiè)û¹&'rÂÓÂáEeÆé9î >‚¤YË^Dà4Þ6—8#(wÇJ’îuX9ÑžŽ8R¤PTY±ã%»”™“GO>+5ëîhAÜÌm=’§õ´ÅUæÖ×!¢è¥¦ ó ¤ü¹`K~æZ¿$iîß$†O:”¹ê¹¨˜ªÚ™Êcv@Խẋ݇L’E€—Ú AžS†«ý|À‘‚é÷\½Ìîõöêò2þóžY¨úRüõyO"bäø,(ó54JåiÝF>ÍdCÁ&òþ<;_t’]¥AðÉ“31þÀ›Éh¤T××µ!ÒýÝ»Ÿ½+X­µã%þl˜ ‡.::M‚YÈr*öÊg×ùUþø£–¼{'&·z@ªµÆ‰`ܽªO(Æë¸ÁFí°´bãeò/Ëú¼”+¶.æ[%ëùüN94ÕŸëüòŽÁ«³ >ܘ=m¦¥t|ëµÙÂVùì&ãúqJÅþWÍÕ•oÈÀŠ>7,ZùØÐ\S÷“gcb;!7ÕØ~K|™ö ƒ µ\ØÄTë<«ÙG9?‡vÊòa]Ža-¡s×<²‘¥ôõ²3â¿Fs ×ö‡€ÇDumȾ¢Y4Ôhί9ìOô­Qi–ƒÒÁ[ðØr b 6º²ÊI+GŒévfÖ°Ê>ìz¦gŸìíwiô™ç[7>à®r´BK–XZN¹‹J¨U äk’v0»dQ¦&j` ùˆp%içµ8ƒæ6ƒ57þp¿±ã´øq]–І0ÞÇ]÷nˆ„AGÔ|]8çqµ‚xüò–ÛuŠHŒjÆÔ‚{ŠŽ(ÒNv†mú‹`·PcÞ/‹h@ü¢G <©éƒ HygL [î­$3ƒèù .|ä¦Ê›ê2•E` Ÿ„&Úßÿ^ÅaD®‚?6ÒNˆù<{TÄkMGônf˜Î0x/¹eÚþ—ÂZÈþ‰””»õ˜±_0Ô'×c|ÅëÎ+K¾…–ÌÊÙUô¬>iÉùÄkjpª.ôz8P4—h†^t~TMÓí߈7‹èV\ºûƒˆIhçèèÝR‘jÙ†‚ú(ª“е‡nøÅD°â-¶Ž=¯´ßET›,ñ°Œ¨ü.œSRõÁSi30bßétkxGFÒr Ïø°•Á4}{ÚÆ÷ XE òewsãFO‹²?‘!ü¡6‹n”…¶!›ÞÑ\•˜>KùotØbùæž3ÝåøÖ±}ÚŸ]ï‘lé1ƒ+Äa{q—WhYØ•w¦ãM±)ÍÕyÎë0O/kïL^‚™¾Ô¸Õ õ+D –³2@ŒÍ÷JUÒBÐ)ì 3{£õE;ÕÕ¬21¨l ms‚0•:o¯cÃR¬_ó3Acûs©¯Ø‹¼åˆ¢úh aÓ;«DzzE(}ÖLÜ…};ñæ^ä§ReýwÎ;Ö€NA=– áéŽ ãч*Þåìëëþn×!b°ÐˆÝØ—†’mDÌ㉠v Œ¹9¨oäÚ(+'gª[þ’‹'Õ'_<1ôÂ*Æ@2™æµ(ùA÷LÚAÊm‚2Sµ/ ¹ñYßc¬ <ñÖÝZi¿ÁM&Ã!qøᱧٷÿðPPm¥Ô(}{ák%?e(*É#J?®èH÷÷;mÒˆ}Z/ª²q›-– dÂìåÀRÑÎD8’¢ä6‚Éx\fhV§öK ~O ¬.bÁéK¾Ôæõ˜ 0·Ãz\.n«}j‡° Ç´èVj>)WõytsàÊ~cþn „)åeèî€ë~Sg`^gþyPºÙ9üœ8£6&2ŒÝf€"HpïÍtÖCÅèǪòt;… Ü=ƒvðM)T¸Û,~ݪÏ&JÞ#òŠÑ…€žAšä*‰:±‹Ò\xö+‹î¹¥¦QÙÐè·;Ž-MúôòV´“ë`Æ;õö¾Ö«ñnì HݵÜF(j°±B?¨ Êû‰Ð¾‘t¡˜~âþ¸Pljc„øÙóŒŸG<ü‚+”¤²öM`È¡U*ÐÅ©jÑï+oßÐY\|ÂX¶Ê¾‚3•mœ2iÂ(ž"ò[›!špj¤ª»ñÈ…8âílz†"•LÌzËmóŒdrÐ…‘‰1=èæÜ­A•{ªI/J¬¹ú„l¢âòŒsb5]lÁ‚ŽŽ,<¥e»bdñT‹õG(Ê$1Џ*x>‘MÐA`7’ät3㓨ÊBOˆ=ÑgªGIZi¨ÑF Ö‰ÀâjdædƒÀeœÜ¸Ð…î¹ Ûaåp'c×v8gü°™þŽrsþúŸÞbÝÄkR"å¯mãDÍcŒŒ}»ë{Ðæ36?¡U°%ñQÄ{m9ç7NÕ7c"ÔÍ–×ó;Ä‘§Ý_*m Ûû»BVæ ÒB ‹Å TŒN6mq{'iø ~V»n&o²¼$œnÝ-:Naö#a;6µ¼c],ýcì“_iš½S¯œÝ›‡‘1ôÎZC$Rjü( *E]yÖÝ` P§¹ëfæo¬³Sîô¼~&B2*6ƒ|&GcŸ$·€ œâýAlóEݽ”Ú;mpO¥ÈÞì#¶ÄX²:z} 1MÀA× ?]9´çÉ’U±Õ%«`˜Œš¸'Ó¦–¹*é†Úz·x×|â„Ù:ÑsÃWíTxU¬sCîL”Ô•ú'˜HDû·¾ÁÑ’%A±ÿù[½êÇ_é{÷º±ÒßD†$±ê¸HHýJœg¹ÅTq¨‡ÑfEvÝy쌶ƒÍa«#Å(S ðù^©9ïÞ2Rä>µQÌ0?u«AnWqpCzØKD´\l¡\~Þü$êé+§ÐN=;x¡±»‘tWA¤È´NúT“›~>‡+ øœVÒ>£F%‡'Å_MÄ“Ó{—Þ©hÈ;r|4%GµŒ¾/w«âå´UFŸQQ02üºFtîI„3Ĺö Ë>üÕk˼g@¶õœYªdm}!³}´ÙÅØP¬x]ÁqësSt¡Qz@²s7‰ÈJ{ÓÈŸïå®êsàªa)˜Be½Ê›¼¾^ô[È¸Í dðWMÿ@;Œ-D‰Üÿy`F¯'ËXs3—$Oa£Ð~Ó¨ÿœ)Á,¶Ã:vݶ}N\,¡ÁæPÔ‘çªæ†uoþTŠ?,þãçx–f#>$—Q¼¨úR3o³²ó+þN–nU„Îfªå÷ôomHe6âá}Q>LàÔÒ9¶ÝîÞo1î`·$Ò£r«K^é­ÁÇéeÆe+oöú…|*e!õ¢†&-kaÃp~æÀ+.WQÍHžVò"AýHóŠÌ'íª%ÿ™qx{Œ çi: u*»ýƒ¡ÇMû€ûì^ÍaMD-f´ûÿþ*°_¸ôqöF‰Ç. }.vrõ ɉ†`ó)ËÍ÷€oˆi¡ÏøâBœCíÌ,a4‡¤ Ê4,]ŸÃiÀä_±Ö3K+[M0{÷ù¦›ï¸¿% pÎaØ_r½öyÃÉ ÞÔ’ë×pܳ©«šõˆË$/½8x¸O5ãŽ#‡Þ‚ä»D~JC:ÈX¶,~-¾tœ7Þ\O6nàÂåi§BÔÚu¸¤¢0>õ¼Áíu­F‚8󋀟©,t¢;~;Ñ¿é—Ìå²>„`3—ÉÙú@v,°¼`’ÍO¾?€¿ÍÝlŽ$x‰>Éu¬wò»²Âr€É:‰^®Ï9#fÁª< fr¸ä~oFÚûçv»Þî>CæE_:¶ãÙèØ$«—ü*¯„bÍg*\kñnÈD†ûü=ƒkºŽD ¸˜Z~ *ʂ෪;$*ÙIïEš`1ÃÒDÙÑ!+ý,Šû>i‹y|©TÊ¥7Ï_[ûÛþåÁ賿R%åº4„¯>-‰A×52…¾ý¤Õ9;k§°ÍÝ‚ ÑÅXPû‰,Eý µHÅ_tD#ÊE¾c•±Js½ˆ»ɳ†Ù„<ÐÁ‘µ@ôPä4ÒœuvOôqE» öç0Ð ©÷½ç‰-Á3×粈Àƒô| `ï&Ô鱘pÇŸŒ.?9ó2!9ó’;‡Aç`O»ª€(‹ø _þ©ÍÁˆ ´Š`Žè‹Q–D§9«O{ƒÆ%‘:qjH ŒÊtpi™0“Íù~ö&ÝKh¸1Ë>7:wöÚã‹ÓU5ž™=2rãìPSGç'I›-äÔy²C°¢Ò±&š5sòmi‰Û"¡Å⊡\3…>“ɤG¼­‡€íágÖ¬(Ô€“k;Éàœ Mx«­–> ØŸcái°áäò\*ŠWªgÔ‚ð/ëÄØkÓ¦:$JffHöxu~à65b {~ñRmumæŒ;K£+ðážYÿˆˆJ7lX@oÐXLid¹ŸÛ½j3F³®µøÉEëkÊýø[œÉ¿)¢/ŽcŸ+*W…„yŠÑÕzŠû;¡¦Ë·Áw}-{¥–$Ç8©dr¾ƒ xO4Ô,‰GPBî%M&a¶ª÷Ò€°¼7«”„óÈÃn‘9Ànü‡ [ÖÝÄ-óäÒõz?SZלd䪲ʉ‰3ɦîb¹¨Š•ZTA£ãE ¯xÿ¥(`Þ—±ÇŸyYÃd^aeŽ®ýƪ¹ßöàe:?{qí@+Ô<ÁD3ªÖ[²Vº§ØëLþ0[ÆŽñÇ •¡WHC½»]¼Ù)r€B tx} H½xï5%V¬Îo"È6Bjا™Ó À³ÞgkZ7ÏßûJ²p‚·êˆÇk¥]Q£(ÄQˆ Ñ„ lqP9üm[7qäÌö[Ós½8ŽÏ»*7…Œ¼å¯ìÒBg£ovÌôa•ï´FoVG8•#‚PpkšÐ¦~;ÝA ¯BCò4wvA0ÇÓÓ\fÊÁ²DQ²eiörS¹ž—íhÉ÷H¦e3žµ ŽŒìnÕu=7Ð(Ü`j”…Ü›‰½%Š`=‡ ûÆT &(~îº6!¾Å©‰ÃÄžôîF&²Ný€áÑ, ¥^³ÚØèùád’S˥èιdèØÑóË!K~é3ž'§àbÂzêáK¬_tn¡w•ˆ0gl¥ Ìœ?gµöÄ*_†)éW½å7‹^ío•ºáã½s1ƒÖÀž>yÀTK‚ø!òÌT,Ÿ<¾@„9êl·ð„SÜ/à™V’Y¬à˜dñþܼ«8Ÿs+È–ÁåÓMö­ ÁøRC`ÈË{t'úÎûv¹^YXE½°|¹—ñtOsòÑÅFLçÁpïþ©KgF¼´ýe˜Â“g5ˆmb‡°G¡•ˆÈÉäD)Õö³cÒÇ6€¡JŽ[´VÜ !ž&ï‚aÆIW“q“¼6Îxÿ׌’-“Ó­Û&ß;»z5 rEZ䄞ûG½jcŠo(ü%¬ä(X3< ·šP¶àÛýÍ,·v÷”íäö Ô.C!U´°~ØØÙß[»)}ìßuSÂfן ‡ß„7ŸÛ¸n(gâËæ_¢•uzÎi‚òf%ßT5äî;.(Q¹µ-g4ÝXH™æDiKŒÄÂ&ÃV¤·Ó}cNÓÂ>öB€Ùö#)‚}ªýȰŷòVˆ•.Õà l!ÆÇþÔ[NUY J¦ŸôR̻ƱZ8àWH}2Þ îà ësLç;‚Ò0=b½û½5~h˜ µ- @§<­3þaë~"çœÝ–[y®Ð ¯¤Bý~ñ“½Ø×"gÍ®˜¶…±ë à‰îY³'šEKAcÙןelÑm®¬û9ñ-àã*tÏ5)ÚE»ÀZ»™EOè?pHé²Ð¶_D|H÷é û¼"¤,¬™qҙبËR¾büâWz¢™O›´ò]Y/ÂÜo>Ü òçØ’¹eoZ5ãëØèö†Ò/Ò „D‡ç'ð6µkIØækS¨;ÆIjw•ãÆúÞg|ÎFàÔ5¹f>†|®É$òW–ªØyˆÒ¶ ù¿æ…îÃÉQêžÖ“«úÚ.èÔ¶ÙaýÔ*ÆûÇQèJ4œ`»¦?yyV@þW‹Ÿ¦ßL]-~¦”G2¦¡NGblŨ£o„æ¦OBÏâ̬ÏuÆ”Bnk¤’3C“s ­ :ƒ6G‡£S0G:åÖi.§Ym,²ùŒÉAìk@­ùÝsYÖ›œèr)zg@˜\o«m3®E…±(8:B ¶¨’µê‚ïýÎü¡#²pÏt5*~_³ÂJïÂ÷›ª>Ã(Ê[†$Z÷«ÿ3iØ¡œ‘_;Ãè3ÜÜ EÌn`)ÐhÒE™ž>!Áòv¤?âøR‡`G»ñ­ìÔ“[ä¨ôõ³!Ñ<©§šÞ¹Ôø·¸Â|Ó›É(-lVc¼ø6œE™Ü•Á5ɳ k‚ÅìLX©¹åR«ž¶®â/iÉ=ñ®må'ä1“É¢^èñ%¯ëʇCõ3z_ Òâpn<±¯Ð=D¤ ¨~ïCc…Ý_ týTVˆM”›‹ég @ðØNÄåø°D\³«dVW“D ´Fáˆy4/8~·« _ˆ£³I’ˆgŒë¼I’Ý›·:œõT;ÿÌJ\>䕼&™i½¼¸óµÞÑŸ¦øz®%åÿd^x›Šj­hÂIaVÕÐÿ&0XËÕ«o{¤V5}‹!Îb½®ì”P…2IÏN¯KÖ7ÍŸå/ È^ lÇ›c.£œÔ¾\×®ÁZP¡+º§˜N'D7Oö=vŠ`„UF~çƒð TõêÉâ\tÉ¢V½]¹-sJ5§ðU~4NWu2o/Tz<ÓÄ föˆ\»Na0R¬÷•›Å×ê@‰¦Þ8%| "à!ÔÝÄôÛ+}ŽO·ùäß²p*µ¡Õ!Ôâx†é+LÁ²§×ù¢pºø OÇ#ŠŸk´1©HmGÝÍ©_€ÙT¿Uh¹tfˆ“¶ºfÏä¯t`ËÃ6œý^œÏ嫠ׯÜ-Qœ IofkõIJTqÒ¬‡ÿ±µ¶QÃZ«bfÏGƒ‹¡òü„%uWŠ0ÙÍ µ;£\it7”ÀŸÐŽD/š…õõ¶ÊrÇÒÎd1œŽª ½ ]®9Ó"Qí˜5Îà¯FT1c›Í?k+þƒö2z‘¼wéËV°¢uõÎJ~F¿!º¹ö´µ\žúðáŠ1$Fêè\“)câ™]'tÇ×(jòÜЬ ¡£ÜäIÀ èðÔ€òC*‚H²{@œÅ$…ó=$ .;„ç¹/KÑùÕСóÛ÷åòÛ6Uo,݆½eð¼ þö§A%ðvÕE¸9F"µfÍ:v†þU˜’ö¥#`û)¢¢¶D/«v«Ò‚0Vflæœë@M2ŸSV,ꦡ¨îkÌãV¿ú°8Ä¥ÄIûrZ¢íÑÄÕ×:WÄc’åDíØ¸ÒÎìN®ðþdØyŸ‚|Ú>¡Š–·a¯«QT¶œmŠR”G‹é)ôé {F*^f]‡Á¨<6PØ‘iˆ³fÙz sÛ‚ƒaª•›`š¤% æs>A~yeè—½p_éùu².•ÑTBÝk²u‘ä¢>¤1[DÒÆhcË'vàʉ)ª'¨`×r Uê•6Ü3‹6JŸFŸÞ¹kK, ˜å2Ý 1Ч£û¢m”K™Wp/ºÕõ§‡ûÓºt㾆^}Á µ£²æÉ@Î×N¯ü¼-"D' êüê ¹ñE^’a™—XЏ3\ Ï\7ç >*±Ä)üaÿ°9L4ç…ù9ŽJù\÷Θ=ä‡Ó§ )¯T|,]Sj ,MkPÃ:Ib{uÜ©a°UVhAþEs:uAf“j,¦É‡ý~íÑd%qÖC߇¯¦Óœ"àxâø¿ë.Aþê>:R{㑈e‡ÈƪR€ÌûÈÇíulâõkM<³ñYG¹Ç¨¼yŒmò0á¼ÂñU]“=d,1Ssúœ‡ºAf AìðpÑ‘@Xøó]WíH>†år?L8ixսɸ†/˜áÄ£KDÄ&>"À–ãsa%ÍJ<ø„Øa› æ#nS€%" ®:aH1‘rU} B¾HøŽE×Gѵ éòÛ³XKRc{ÌFA0fvzS“{5÷}kÁ¸’$õN ¼˜íúQÔüükH‹k ª6WA+’Dyøfä7&ø~RøQª´‰tßsÌ× Ú:Õ0 ;«‘³ ã?J‹ÑeÁðñjñqè*’Ý}yU‹aM‰ö…^ò0ߺàzÿø0¶jt ÚíC‘CŠ´d¡r>¨¶Œî™ížßåªS`2v‰®+D’®ò€±´/*¿|lE®7ý}(?Ÿ=*Ä&âÆaR.½Þ„¿ o5çïÛx;2$ù#d¿PÍÏA…ï!¿íÍñõ±’ç´`´Å"ÕÞFÏpÝå5È9zZ¸ƒ¶TKž±RÞ>“ï<ô‡Ù«-mh›M‰rÿY3ªAF$É©ðÞ¢ž_ÉtˇbÊCWƒ­}QÊì²ÝeŸP¯ÁX–oÜJ&üMå¾U. VU½"’‡ŽSû·PÒwëÐ&¶¸ÖoÚ//Qq–¢ö»äU÷Ñsn:•fc•ï}» Ý7©˜È7ÂlyûžáVËVññub!œµÊ &g¸Œ’JN9ŒÙœðÑ©¦<%ÿâ,˜W =bLèÁÝ".·ø ƒW$C¢D¿Pì{ökk† ù-]-"µã%Fë™ Ã]z÷æÚ.û}cügâü ¸ä^Äæ`÷,5ªô}J¡gÌÆê–9.=Õ¯k*|>ù* äÕjÅG8&]ph" fðæ…„·Ê?I½©ªOu>r+È8×P#!âVð\†È9÷g’NÎÖVÄ‡ÖšÛæNNÊ-Z" ~eEL·å(É’LãË›{¹«‰w}CXÅå'6`\áb^iPËwØÒïX ú<WeÃûZ¸–±â±9Š;¯Fì;k9ñŽo´dÒµüªsTWXSßr9Ñw˜Š×ùUÅPÿ— Ò™[šaº¬CƒÙqÖG\#¬_­=›Ïl1ü,HeÔKbV­·ÆÁtügBÃÅÞ:ðC¸OÔˆ_NQc‹®Sš&l8“!Ÿr†M“ÑÍåª4g…H,ëñIp± }T}°±×ZìGÖ™šË:š­‹°(àPô‹qP÷Ï*_œ¿äÖÌ_‰.8!¶%“ó²i\ûÅûJ¿˜htͰ½ßíþO¡ˆ[8´~¬ÏP÷ ž,ÌÈ™‡@¦ÈœÅ»WÑKJX,RÎ:<¿²A0á€[\›Ià…œ™ˆ‚„æY]ì}+­,÷b¡¹­Ù„î¦FÝWaDr–Jcª-eŽ…ŸGe(N˧C«,v½q(ÊP¢í³€gÚ·§O«@¡§ ‚EÇò¾/\pÇÆN¿Š¾·©Áüʵ#Ö@K㣈`ô`“ýéæõ k)AG7 ›6,A\ 2› :ÅÝ•šDL.œë‰±§+€Xfe{mÛ…CŒW„ ³c°©—P‡ìŽU#còr×eÌZŽåªuý—_†›™ô¶t ò>_>Qö·#&øuE@éôÀŒiW”ó¥š%z)¡ÕˆVÛ…ÂÓáhë*S÷èšHqȔŒ1o0Ù‹˜L@.jU­pCÕ–tRG 1ÿžÊùâõÀ“)ñ~£q“JvœZquî܇©{_&µˆôµD^ÂâW‹k¥EK×£e?¬¶¦ÇÛ:‡Œ Myʽ?ÆiVÃmÜð°ž0!ó_f&}G¥Ãø2ÙwØØðœO³Ø2¿UØÖÄnveåOÅpÞÆ/òÖ•*áʰŸj¤¢·Ÿ_ "å‰É6C.|YÆ™Ÿ°‹2‹íAÛ´WÑ“÷rkw5L—J¤ÌB¡cˆØô®?Ø j#a¸?9˜yäX T†@^ðY\•ŠMګê¦,Sc§‘úµ¬›Æì>Óç@¡g¾z¹Ûr7NÈâ9=-ô“Å»™F^MÍ,íài{öìÇy=§Ÿ½ È¡å­z±óROXÓ‚«šu„*¯<Ûñ T»ò!Ê\ªÁn¢Í³ÀP9ÏŠ‹íÁ~œP´7?lâ5ô‚ã5nymÔn%öT(p¼ÄµRRºÂpÅêh­oŽìägFr8•x¦Lf ¼†x!‚ ¡)çÏVè@„£!´Šß–œ,wúÜ.£˜ÄçpÝfÏk>Hï!ƒ1<öÚЄşñÀ9Ž´sõcz†'ÄÖϤKWSùÒ:á‘YÕ!ÉÂqîDŒ°’%F”k=­€åù×›HEµã‡Ùà£Æã0eÌŸ†Ã3ý~{Õ$iA'1LÐ0ßþʘ•¤° ñ«ÕasxvëÃÑnÔt­Ž£ÇMá´oþ#Þúë2ÏôWJ¯HT cÄ+’4+sù\® óo}æø‘I·bö¬Ùœb*b÷rò,¬Ìç×ðX(š^¬Zºû+ÑMÕm/;&Ôè£ BþÀů]Šw°¡Ê´–\Ë8 ÊzÛNP÷g´›Ž[>ÛÁ•ù½»hnÒ£æÖk:êÎI‹ .¨ÙÖ#íÅßíQ^×y¥>©žQKmO‚,q¶hL×]w™%ë“h’0Œ“”)¢|m ´=uâÅ—IÒØÓIQÉ>µœÝíÃv)Œ®Ö²mÂh4/x§é ^ÙŒ¨*„˜õ¯+˜mâ°óT–fæÕŽêƒqLßÁubÙ€ÂßY°šÙÑÊfZKg7/pð‹8%†^×…œ èKåãBð3Í`Ô~¿bË’¸fóaS¾§ ŠBñnéyêQª•ÚÈ´øÿr ®ÊÑÒ_X|<¾Æ¼f|(MW‰d %6vØ öE È€AH—å»o ¸Ð L¼ÂÉÄÝ¥Ç2•œ1Ém£¨Ðà1e˜5X„{ò2ÿ&šw¡¦eˆV[}\Õ²%Gû¢‡@»±Ÿ¤âAm—‘®ìSêWI1Šº¿0BáwÿMïÚ)Ø@ºoá†WH懰ò§Ú¸7J¿#‘`¸0,)kN z3Vñõµ<ìÂFDÜÖ]μ“Köªs…¨"ÞP™†ùüz ‹VüŠVo®  O Þc|­_fFó„ý¡~}»ðçlÖ®„R 3×Ñ[Ù6bzáYÛN[£N¨¥£T çDþjÆ…–˜“Ÿê<AŠ_mÔÌ‚)O*=;. [Aó¢_aòwJ'|~$¯Ýïz;ÿªù@#Njz›½ÉÖ©¢N¸aúÛ•âãY:*Ôò:VÛfüœY“ï±»ˆNòH;›bšcóçÿLEµšŸsΓZéb([,~‰³¢ ŸìæK †SO6X¡éòAß°É&V”ç8n[ ÛÌ©\ÒÙ* ÒyË÷ Ÿ)”úÒ–Ú¹€EÚ‘ÆÓuYÕh´“7×߃ sh؉¸M·„Ï®»–YI5‹î‡G"ev¸åêúár^÷Ê‹÷»í-lcpS_ÊQ …¾ß×”í@½1óþÐÐÞÿˆí¶ÅþZ3ö+žÞ‰ÿâö_•r£ý¤¾ŸHüéføô.€ëªG!Ž—&ß„c}cÉ~ÿE¸±4ì†Þ±`—y,¼tÎT.nê‚pS^Lk?ŒA¾qõS\j|:©óÑú¾;êBó.žÆEùȘׯGŽ“«»ˆv%SZjòŒ-˰¡xÛ`:®Îõ¶y\n·Ž:Ø«¸—‘)ݽŽÞTÉüÑ–s®¢ H¡®/µÄ|3ÒÊ5Ñü`·C'íì=‰3³"¥ð…PØmj“«Pk¸Ÿ05Ú`“~‡rE~¬¬€¤d¨ú2‡ËöH¿ ;· ±È{|Kvõ±gm/²°¹Pß$@†áb¨|ìBŸ ûM{ML•®1ØÉÚJ©S¯[-è&† ô{4—öÑ#±L;9Þ«ìé¢ÍÕ˜¦Þg}/W´«—ÿ\yØpFÝœZŸç{eŒêH@)Äjá¼ìˆ‘^t á*.- Š1éj“j¿ÙÙнöD“öýW3¯Éõá»Lš“ k)ñÎ#üñ_ñcƒ²î•þªJ™Ä’Mmæ "rÃîHî¡=ò”2à³¹B»H.CªI¬^"Ê^ÒvS±fpôЙD!yžŠ¢WTìúmÔ}ôâM|ôȲðñ0Ì_v;Ÿ¸Ø®–€ˆ¬4 ퟡoÍkˆt‹ !ehÊÔNcHyñ[ˆx׀éþI¢'®ÐüzTø$ñ¼Å>[Q|¤Œ>êÅàô–vg¹c@ˆ3‘q{¥P…eþŸð3Õû-xý< dâOSúhiÝþÁZbšŽ;³«?¼ã`¸çN=wݡ˿p¨Ej\Wè…K›"sŸ§! üö ïÞÝ44i ¬ÁxPÅÉGkÔ"¾Düæþ­çL§ BVÄD+5å†2Ž÷…d­U ²Š:`ýÿ‘›$œ endstream endobj 1557 0 obj << /Length1 1688 /Length2 7909 /Length3 0 /Length 9018 /Filter /FlateDecode >> stream xÚ¸TÔß6Ž ”4Òµ Ý!Ý Òݱ,K.»À.Ý" RRÒtKKw‰‚” %% ‚¾«ßþýÿç¼ïÙsv?÷™gfîÜyæîže¢×Öã’µ…Ù€•`P7¯@^CÏ„ÀË+ÀÍËËÍĤ€ÿ±™ ÁîpGTì_ yw0Ä€$Q<õ€ø|Bb|Âb¼¼~^^Ñ¿ˆ0w1€ÐÓÑ Á x ƒ‚áØLò0WwG{2Ï_V€OTT˜ó·;@ÖìîB@„Ø™„ô` G0Âç?!X%W1///n  œæn/ÅÆ ðrD8tÁp°»'Øð«d€&ÐügiÜØL}Gø=˜ è ˆ# …#]< ¶`w2;@OU å †þAVÿƒÀ øóp|Ü|‡ûÓûW Gèog sqB}¡ö;G ¥¤ÎðFp€PÛ_D Cú=Ž  ’ð{ë@€’¬ˆ¬ðÏúà wGWœîùU#ϯ0ÈcV„ÚÊÃ\\ÀPû×þÝÁ ä¹ûðüÙ\g(Ì ê÷×ÊÎjk÷« [W¨£›XUáOÂþ³#‚¼¢BB‚|°ì ràù•@ßÇüÛøFÖàç sØ!Ë8Ú‘Ø~p '€p÷øýÛðß6ÀÖ„Ø€í¡ØÿDGÂ`»?ÖÈþ»;zÌx‘òãðþzýýdT˜- ñù‡þ»Å<ŠŠz²z²–ü·QNæ ðãâp‰ ñøøø„‚€€ÿÆùûþªþ7ª tüswÿЍ µƒDÿ(yzâù§2Xÿ6À3hÂzXÿ‘¿9¯ /ùÆ÷ÿ<¿]þÿ´ÿ+ÊÿUþÿ»#%ä·õÂÿÇtq„øüÉ@êÙœ rB ÿK5ÿ1Ð`[G—ÿµª"€È‘…Ú#uÎÅ÷„›÷ɸ#\ÉÑl«íˆ9ü¡¥¿šÌq„‚µapÇ_÷Ò‹—÷lÈÑ9#ï8²e¿M`ädý7¯"³ý5‚ü‚B »;ЩäJàLJœU[°÷o‰x¸¡0Ò€¬1`sÇþÕXÒ æõG»¶?`$ G…#ÜÙ‡¿q>¤ìxl€ g8ÿÌË„Ý 0l‡ø,ð'üßè|‚HÙð?²>¤ó¯qÿãçðØÿºlÁî`7¤Bþ2<ð8B‘Ëßldò¨þKE‚.ŽPø¿*xà"¯#à?€Ç¹C˜-òŠû•Ëöo‹(ÒäýÕœ_ÈäáÿždWþZÿ¾Á`o0{ewzÞy]'Kåŵ3¾¾Ñ“h2-ˆ`^Ê÷sPÇÈRžu“³¶­&{¡½\9³èOÅ~|=émÞ›²–®’‡@QÜ’;á*ùvÞk¦µ…QÚO ¿ˆÙ"ü’¤Cƒomvߌ%Åhñ6B¸O`·æSÑ]7|×Tôà(¹$ O§B<—Íí>@}fBϸ51'ˆ'r7ËðÐW5˜ºC}æ%×GñÍgË,>sôÇ·9Cƒ/Î Õúk…ª#‰)ù>¥ÏK¦ IÊyÚGa–¼”/OKd (v‰d^C³^û>W8Ô‘4,àÑd¯)òP+p¼Ù£&¸(™Û·vFmµ­ÿ—¼59Ƴî£S­-ÊåhÆ—ZH^ÿ}RZzC÷êO9XiÙ•‰:ê»æ8ŒÀ0ËOÓä×Öϳ’øø-Ò$!"Ã_É iCh]ÇìŒÞÝJ¤ˆ)™ˆµUÑ4é6<Æsr}5èXiL—½Øk}Û9Úuc<¦!™ I4îÊ:ØOjQ¼œ'4dWBÔ«-Áz¬Øræ‚tórïkwt+‹›Êˆ.O3$ àè.é«ï¢dhb™ˆEÈÏà;—ÓÔ¼«Ï— m•L æ \>¹§ s˜@P¿õP§ïÛËD÷~LKµ¼nSëRM–§ˆ'‰ŽÍ‰·{r&³!'‹kyr? ‚¬ˆËÍóìžÿº{Ñô%ÏX¶!Ú“Ú3´eõjœ¦Ët(ž:ãÍôaKÚ®·JÓÍåýb›Qe±a†ðbHes‚`»ü‡!’³! zçE+¦{߸]óÅ7>³+ñ'Û!®–{Mš_\¿W¸É)ˆðY–#D¶ª5‚™EýîãD)à~!ÂN7…ò/B¹Qìš±·!ÒjïH ÌŸµÆ6Ü(»ž\öS n¯§æy:ì ºB+Uùî©-ðþ#±–Ð[YXOýqàÁ®…‘•B¨Fz´É“õÒóÈVÂB“„…ñBcmÅõ;þ-+þ¶‡Õmå0•4?l>2ïYŠG#û,=þ0ÜëË#M:Ý,ÅÔ³’£Ì¶„9Ô‹ïÌ©[:¥Ÿ¤æAꄨº|5´J¹6§%ÕSQ\ùk @Iñj+f8µ§Ý,ŒÃnŠú(ÌÖðbÕ³=÷0Yº¯!•N<5§^rì½gøÐVie·9Cå·æ´,²Ý£žºòiËÅ÷st°)ðæd¬8s‡IÇr𻜉HŸÛØAveU¯µ-Q+2½V²ˆKlUGT|YAWaÞßicGBõF ´UìüÔ&Ë'à”8Ç&µG<‡ž½ Sfmß—i[Õ™´ d2UÂ"Sˆ$Ö´Y⟾[ òLZàbldp0(Õ¾h8ÞHqe_ öÄ["“\Õæƒl)ã§Èi& Zž¤Åèï4ˆØµG(}tJ¢ÂÚ´ØÂq«x…ç>Í2áE`…+ãÝ$ëú¾">?·ûì5mI¨àðþBb»Ð/3sS.ml1àæÍÐJ.œßŽEþÜgm³Îj¸f®FÆD+’R¥vc £øtO-úö‰³–$ÙÑJ™E@rÙ{çm˜â³5²OΨó™ìx˜nhfïèѯnZ&—÷æÌa¡–KŒ-Ìq;çg„"´„íxsxx/Oâæ¦%[½þÎ@0÷u£êxeºaƒ4¤K¡@Áà=34"“7—ÎñŒ:ËïÞ]98é YÝjœû¸àW«YŠòÅ þ­âóI.¥miC³ˆ4t{§ÊðÝöäpX°<ËâbOzõèÌQIÉp Jú©íÙgUŠ®ûy¼A4Q`‰¦}D¯ãz…Õ›HuÕæ.tÕÙ+^Ü`š¾×3´í¹L+êŒãCOÚ¤’ìã*N©0²´Hq¢8âË™;Ñ ·¨úmã«,/ÍÀêþPìE¿WŸ>!ô|¬XW{ñSK›ØÏ®y¶‘®xÅÇË{Ŷ,Uý;=T\mÍ8oùQx¨L§ñQ+=TqËïÉp\Æ"jMo) ÕñD¦Þ\¬<7MÁ­ VÅf««Ï·«½¿8oÎeËøŠá–˱´ 2ñIœè(Î˾‡Ml¥1wgÍ%Ó€ÁKdˆ~GÅr‘3U?}YŽÐ+)·•þPoLrŸ˜5Ì$,bàÊYÓ¨Éä͑ҲĞ\@Cúgç†Õ~ŒuÝ#Öw S–üËL¼¨²·w‡.á(q“øŸ!þ.a°¹·‡åO(tvÚIªÃ |^û§$¼ó¤#ú˜X”G;ªØŠŸ½‚–¬1t°ÄS}ICz€XŽ@»UgE®hË7~öÔ<ÞeP À)9Ä=ÆÈ˵hâ+%K|—Êá¿[ǺÝf¸pº«\VU³£2z仿žgu$ù]™Á¥âÉX¤± „µ‡¼?­>ò …/Ïû†æßYõ~Ópÿ¶…{´CO¸ð¿mð*¹6ÇRšêÝ´žËoDUaF7¼Ý Xn•ÝNmëíB@ºë'Uî ÌPôC¼á“…4Ú1ìù`pyB‰]I7Š—ó»(rÚk>6a̲G†çÓý_Byi–„4VöJ;öÅøžïŠ ú÷KÙþtòÑÏzÒßdè2üéÅ…[鸽ü(EÒyÒ—å7íY÷D}tìèG˯ñ Û“3"”ÂhØ^ˆÆ ¹O-¨>+€9Õ©]{;´scq¢O\sØðÕ-¾>ÅéW͆(¨Ñ1E¹jÖæ‚Â.:ϺX$¦MºÖÑÁ\‡|<×xqyÂ!q슂_ØFÁâÓý,ä+¤ )aùÚÓOG³¿‚µ£Ì=pŠçÒür4QÜÆa hÔ³5l§Ÿ¨ õ ŽPJ.mùÔò ++Çc>UbRAy}É*”kh6èÜbZ€åF:Ÿ™|ÃçÈŸ¾n[6.¢,ì@¨úðt¿â¾?÷8fÐ,åqM˜ÂcÅùÐdW×Z%öʲ¯õkž_ܵæl'¡ÂЇE„³hv¢aìµT‡Æb_»w¥†;³ÄØ'ÖÔiìP'ž“ô‹&3“Ä9hüH:x£°Ø¦ßÉ&Û÷ש±ï‡«õ¡®6³ø®˜žËÒ¼cÂ_N=lXÐïL%ìÏL\UŸ\Ç{zðåì³¥‚cÙYɉ\âåûVþ>úÓGkQ7þÙ(éÑ¿ †ØÍÄî»i‡\ÝÎúKþŒËBþžéÔò×îG߃g‰ž–ÒÆl擄cÓpØ»ÊsÖqöJú;Uò Ê„ g]ÀIþ’^Ûôb™š ˆû3RÕHÛoa:B7g£=•›Ú Œã@Iу§œÞ^tq=;~k”©«ßLùiu²/;$Pº©Cò¹GŽÖð"ñDT±°4ÑIû™…4 r寧׃Z+|A«b¥cû¹ž†'/å2÷¶³eË*‰6ºÜ^OŒáÓ­¿Y›yÒ„KU”8}ÌW£mG>Uuι¨7˜'t±Õù€:ß½¨Ô,éC¯§õGœÎ¦úïÏÉ.z‚¼¯”æQ…ïOq´M>Om)#{?Õ­4‘™ ª«ÏJ •$¯îµ£'»GÇ>ÖUÁγë…>£+ÒÎ*³²ò,ËÔÚ%ӯɬêò"÷Ã+)cú·.iàÓQ™I)žÑO†YCy•½ë—"óÎd I$|®s4=p©ûÅe]ƒÜ%C_PšÅÑþ׭βªQld×øAÍz…Ÿ~š¤¯@›(CŸ££g&,0—±[ÆÓ '±Ü‚dPð7Éo™[Fü%Ö'‹^\uÓÎPÕýÜ_©àHáU7Kú°¸Â%2 >‡ˆºÒ[u£–êt¾ûºÍR¢™­ÜøeãA†ê`ÙÄ'‹F"è¹€±ÔÓ_é…£`IÍëˆ{]6P\šç~nd6&¬R +"ì{ϺG&œË|®a›±×(ïÁç1*[}¸ ^›m×EÁ8]T‰$¶ù~ŠÉ$£ÅýϼBV(62 ¹I 7v(9—¾ÎŒÎÎŒOjIìZ nj :äï¥Ëœxyù•¢S›Ÿ¢ó)3æ¾ÍF ëù½¦ó|jý·n¥‘ûV?d “{ Ä:ó? ]Ôâý˜}Å%zrÑC\ζÌ…ǧHr^²°“Þ¹ë߃ž!$¨âœÏx0¥Ëù](ØrǦì.ÚjÒ66 ¯}³nÕZ3½ó« "(¥ïÔ¡Íááe†¯{·]ØíÊUrT-¸?û¢¸þÅ 1óÎ^Kú¹Î+ÆÆ×’(?†.åHïÛÊ€Ø,*(Óñö¨P˜Ø5T¨û)3?çŠËÛ¾ÚÈx0âîÚEQÇ÷Èé.O‰’ '§A¤)³\mÊ›§·»²Ý¯f»Dÿ‘cE—EXÈV¿ÀÚv“]ÜôPC£»©!×mÈ“¹¹vôJ~}G@¥YÝÞ९íá—D ïlŸª»ÖÎ}ÆÁõ²º¼ÀàÙ‹z¥¯×Ú j“‘‘•³&Ý`abiÞJÖ´KLG[*ª,õFq{g Ñ^"VU®Ä8ˆuÍ×cqë’ÝO²Ó˜*b5ù&*46|)M›*Ã~­^aú–&3YxœØùŒJeóé* +g†”Ò®g>3/Úi¯1)Iv„ö ÉE¡_®\(«-k;4j6šµÞWµÚ–Ç<Ñ'õ]›µÃÚÅ’˜KO» ¹gýù­¬È·ø”¥ónã£u€.:~(Æ» ó²`ÂMM~g»Bà9Ìã©°ÀË ‚ýÆ3Ïýž‹ µU#¿¹5饄çågßÄŒ(ÄzÒ%Fd<0Þ.G—ŒSjLœÀ­½¡*.G¯_ à~Ø'=D»4°Ø® K–œ1Žýñð.Y°ñMl°{°BÊG²6’}+ÄF­;з 1H%ë^_ai¾,I»=¿g~qµœ7B­‚zV Â,Œ@à£^z(ûŠ«Ù?yw>óœV¼ÅƒásƒøÍ{½´ô>Ï®±“Û¯ò Ò=OÃ:x’•„ ¸ëx¥vÑQ/8Þ«éÌ…óR0ŒÎUÎH„œÂ?¯…yÞZl,UÐ{Ý i}àx–Œ8 $<)4Ü+oà¨",n©ª~sK#Û`ͪY,òÙÝHÁÐÏ‹“¼Uv·ß4@ gLˆzÇì_—ÐÔ‹˜öA¹b{Y$÷Å>nA-º†çÎ:«¢4lk€{:U==ʶ˜´ÔA7"ÐZN¢ŒvÁãŽ{_}‚¥kÖM6Ó”pzü óKèî@'_5ñ2Þñ:ü“s — EV±epB½ôeDä±iæZµhû¨ûåƒ{E}廸Ä2q9úU©€à%Óš¿µŽZÀÇ·[g ‘9)1xçÌÁw"¢Üw‹¥»6”žr Ž ÅiœÁ’hfˆè…q›¶Ô4ÔþKUiWLº‘ºœˆ®g 5 Âsâ—w1+þX©%,âltã\\XÞ…:f\Ëöú˜¦„4Ÿ¤O ôõ’檈:ÌÖi¾„'@%…“ù˜Šò4}ÁbœfK"Ê¡(\¢¹Ž™i'â7hqçÒö’'ŠâáÐ)AnÇRÁ!‚º¯¢Îl*§>šâiÁr-™"&$Õеϸˆ’¦eOô°ÈsÊ6›­™þ3 C%’Q^ÁŸ“Ϊ;üF¢Rvéå-‚éëæ DTsåÏö§ŠÈ’~†ÒÆOlj‹ØyÃ#f$sê±y¨ñ&D$ lË0Aag’õ)™‚0T’ÍQ8«¼'ý/àµpï£b•\ %5­í¨åG¥ÛL…¦É#P\8×fô¸ŒL‰ðÐ&Ÿ’³´Ô]J–m¿÷ÒÜyÙ„TˆÅ0^k ®ko‡{õ[MÇ(òÆÒ«­ ÄL1XîÌ|³wû!Ê[o§8Ä*îÊ ùcÔ´Äí¬ ?Z;ÙŠÅÒúvz`M4ŠYêšœá׺^¦*D&Ÿ®v'ÆãU÷ÒåFåûQ½yÆï´3òê…çI­¤Þ^X»Kh"”Zײ0ã2„o+¦HMDú7‹[ßÇÄñüÎtM÷®Vßì´ˆnñ%ŒË ü€Òéùz%z¸Oì ÂÓ{AÌÃV'‰ÔÃÔÇêÑk}[†”ŠW6»½Z‘ËZï,B^g[BƯå zÔhµ0(z£ì²Yíe¼,ìJ 3ÇúÌöƒâø”¾}¦µÄ—ð¬ÂÞÔÊöœ­¥næ¿ç‰ƒí{³£ßºv3Æ»òá‘ÍãËì{fÙ¾>SÉ Œ÷Á|U«Î ‚/lue­Y#dü%øIõœDoKÝ$ÕîúÈ|üÙf°qƒùû/…~ña_ú‰„œp9„žÙ;¡ýäLyÔü—4L.Û‚û«]Ûûæ(}¨Ÿ2‚®X<ŽGýIè¥V¾ó6>'ëï|e¹P“JζÉå×¢•ÐV§µxÃO [Ö׈ïývï“.ZgóÂKÎ~:i³óNï®#7›a©’msré+ÞVŸ¡ê³`®¸ô wl?ÆÕ½ÌY§E]¦Ìü&_ -Ò?ƒÐ»ú4ÀDrĶÇãª;|½¶ò¦‚œ¿É;Cœ,xÍ1°R/5=c¡Ä|TßVú5ãã®M´ÎkÊ‹“:=QžÓà% ‘‚ÒÓ…`-x3‰›XÍ×\óQAløîíÖ©â>çØ–PRƒ FÌöˆ+ä)hØðc‘Ø,¥Á ÿL«Ô_ôÒÛü£öü0­»¯3IOص|¿·sƒZÏ@©•&Ì·ëï——§ˆ÷%„‰RMÈ3/¯ßžìsÊ BGUוbÓxr¤oÇc37p-€pîFMž¬]N ø{š—QC!ïìãV‹Ñ•Š…[¯‹Øœxþ”Ê7I‹vce׃P–m«N, •.l­gyá5‡ ,iWkðÕפ,Ö”ö¹l ’vÔ="?[ûã×A*ƒÚDš &5ê{:•yÙG¤'¤Ô±Q9û¯àº3¶÷$Ë{g#N-Í›ªØÆ}ü:#ŽÝ¬P;Èa‰’:ªc3&¬3ó®·^³m¼ôƒöËÇÒ["ùå )Jœß¨iúgY;¯>祜¼ñ”šg*4¸)½¨\YÐ,"^S šØìý©•«Câ¼C£Õ¨,HšÙã—ÉJö€ëpøÕÍ-¦¼t&S³å1]‹e?óÕ|džÙ­ÆÓÂb9"ôÎz@ŸáØÉø\û ¬S­ÕQO5,B?Ä GMaò$BÿÆ¿#À­àoÍ)Îj}¯¡3¡GAy©ÿÆãÐãPr%(Ù,~uâóÔlç“uk‡a.é˜ëü„g èh'‚·8Èj˜¸ÚIRÎÞ¯×_±³£Ð윯?è^7κ“&³®8ž± g¶Ýc“³Çó=oAÝxöíæP)ÄeÔ«SÙ°?TÚ§ºëGwgýá+ƒ£Ö ¯àsÙåçÆ†Ó«Ô‰šûªÚˆ\§¤‘Ð' Vg«´õŒ¡7ÁÂïïùÓØïá¤ÙI# ´SX‚q}Gë…î¥ûïî…¾Ú[bẨ÷Þ]p‰ˆéÏÃ&S@*T¹Å‹Ñán¨Øw]Ú·´&ÏàZ}÷0ç¼öÞ—ªÝÊ¿NãšyF_7„ýúcî0ëZšô“Ô±Lú£„8‚H^.ñËz.qV+ž³OgnÍÆ_IËè n#0ð<šFtÑ=TÝbª"#t»8½Ì5k³£%‡z©Â %`•Ðâw@},èÊèÓFãCeW¥ÜÞòÁˆ·$ÝÒp°¢PŽ>;Üp÷zy÷ˆ>Ò’<мúQ_ü-äágçö|þІÚfK/f-žmñ·Qßn7®šEqOï¬Ñ/›i^ðÇÖn¤ ì ÄMN7kŽ {â•þ}£s…È[˜O{™ôNò¥Ñ“TW”À‚(2÷Â8‰#Ò×¥å¥Ûhõfžä¦x~;^6b«Q]¥QL(SUœ 7´àÐŒÑ1ÈdÑsÕ-¬êr$†ÙêAò|õa¼Ÿ«)‰Ì œz]íÂHçÉ'ÌÂuà ¢³Q@g}Þlé Í1P†‡t·ù,xzV/6QbÄ”ûLvÅe\Þ=ÉaÖ2°h«(‡\Š)Á<‘Ë̈ q6f~þá'‚Á<Ýí§ð𔉗ñ@4Ï=ýê$º„ìZ|‰c"bX­]X˜Ý§ßØZÒO·Qö2ãÍ·G +ïçP•©|»;²ÎN©h®NÉçÂãøØò0f h;öƱº¡˜tÒ|ÜðPúÍóC× ¶ÀŸÌwc…¤Ø߈1˜¹rÓyFùJ;rFŸ­%wø´çŸV\™ô‹µ’ÄBÜ~P*µ²_^h€ó’ˆ$ã·`ª}º};0Dä›-•òØó±]pìžbþáh¨µ9ÞRh‹ ì¡¥kgIŒ”¾”Fö•Ö ItûøbœÂõ wjž©!¾GFÔìì×^e*±3˜oÞ{³¿ÏL-²+c–â¶v;<2-AE{à#È$iC Ktõ>Ú7¿&›|z÷Gš­þ,6{A$ÇZv§b¬&3õ,Ÿ…+UFWRÛÞâ0Ù|ÓT‰"¿S}vE-š6]˜ÿxRÌ%ƒƒôK=(›àá‹¡‰£l9\³˜(/«üBV©Ž8j·ÖÖó¥±b¢w9{û}ß cöõW‹ÏyŸ— à È3}´’µ˜íMÇÝ…(ˆJ(Å ›2½Ú$ZKn>ñt$ýúøÇ\RêH¨g¤Ñæ3líÚ„q¦KZál¡—újÊèIi[3âòÐÐPŒn~ÑÅjÇðIñ"㣗aÑu3äÞç“öLm$’-Å)×RŒ­®éwýŠ"}Ø¿—hRž+{Ñ Z=‚´nRð²‚É7Ùc´9XÍë¨4dÎåÞw!b#«žqÖMÍÔš¿JdÒ(Ìg1~]]Èu9°Ù2»‰HpbC<Ç!BiÅÄ´LÊô![>]œèaÒ‡þZÜêÜTº¯ÀÀÈr2ç=ÉyÚn Ú<M­u4öðØvqY{K³ù€Å1XýQ(öùÁC>"5¢¤3-/¥&î@%x k0Á£²` [Š·9,®NŒrV8îûvsŒòE‹½—f1îG+.=ø^d!¯ ±›yk£²ü[5æt#›Ö>efÑxDÈûkH*Ck’êÎûƒSû°·b~>Ê,˜z¼UÆ*OñžÊ|ÀÒV!Dýi©F…”ÏÁ(Á\…õª¥“_?|•ˆ:£29<7òÞw^xÍÒáÌHÑEû4\’r=¼ Ÿ™ûÂ3´˜?ø]@âýèõ)·ùlû±y¼ñ€aX˜…_I4tÔGÖ:Óäô&c„¿ªSöR$0›&’QÜM+>¤ÃÈǯûI"ͦùÈ9Úª´æMpXÂÙN@Æ$õùóÏÝâåQÊÝÔÌ|Ø ýï?¡FØ¿Agç™m ñ|œC²>/g>Ö8‹‹SëOl—Tð†YJðÜfÚ_NÅò»wÆ­3islÒ,´~3SU€_Þ×Ì厔'knÿx–ÏØ­kÑ/|\EçFÇ´ý½¦kûèµ »@,ÅUÕ¸„$Ûü»"©²_ç‹bütñ‹× ‚45¾Ž´øù xhîÞ?ÁÏswwÉÒ<‹Ër ©À£&ªhíÂ> stream xÚtT”kÛ.Ý(Ý1( ! 5tw·´À0 0Ä Cw7 H—J ” ÒÝ)‚tw#¨ À?êÞûû÷wÎZç¬Yë÷¹î¼žûº_6}#>{„TGñ ò H”tŒÌÅÂüBDÆ0”+ô/˜ˆÃŠô„!à’ÿËA £Ð˜2…öÓAÀš^®Aa€ ¨¤ ˜¤€@H@@âoGR  ö†Ùtøš8Ô“ˆC á9:¡Ðeþ~pA¸‚b÷‡Ü H è€QNP7tEØ`„€À (¿¥à’vB¡Ü%@~°›'?é(Ë}àC9 ¡žP¤7Ôð‹0@ìýÃŒŸˆ`ìóüƒ!P>`$€\a(Üá·‡"èâ# m€ž;þÇYûÃ}À_wäü'Ý_Ñ¿Á࿃ÁÂÍ ÷ƒÁ0W(@OU›勺Ãí9‚]=èx°7æ ¶C;üî PU0€Ñÿ¢ç AÂÜQžüž0×_¿Ò oYn¯„psƒÂQžD¿úS†!¡ôµûÿLÖŽðüup€Áí~‘°÷r>€Ã<¼ Ê¹ !¢ÿ`ŽP$ !**"€z ¾'à¯ôÆ~îÐßFÁ_0šAP€;Âà€& ‚9@ÑDž`o(…ô‚üoÿOD‚‚{°ƒ:ÂàDÿÉŽ†¡Îèá#a¾K´ö¿~ÿ¼=DËËwõûûïù5UÍŒyÿ0þǦ¨ˆðð ‚| A€ ú!&.úwš.àoò¿Q}0ì¯æþ“Qî€Hüှ¼¿yxÿ% ®¿V†ðï º´–¡®ÿHßJ$A?ÿ¿àwÈÿM÷¿²ü¿¤ÿß ©z¹ºþ6sý¶ÿf°ÌÕï/´”½PèµÐA —þß®¦Ð?«¬µ‡y¹ý·UF¯‡Ü-q>A~‘?8ÌSæ µ×‡¡ N„ô÷(Ð5\ap¨>Âö닃Žø/zë .诊'z`¿MPôRý»® ‚°ÿµ}B Q‰û  E&Ñkjõý­oŽ@¡ChŽA’è×XE@C$‚òBþ²ü…@°'ú"`ž.èÑ8ýƒ£›B]¡¿Öñ ¹Áà^ž¿µñB"Ñž¿„îûïóï¯ê …ÍL! R‘ÎÕ‘Mß+}ø6†ñ–VZâ›wÇ‚PœÓOœ´ñsÔ&<mí+è3õ?¿ŒŸ dä9ü>âkÕž¶˜¡^ˆÂPé^S<æ{Öñ¥ÝÊb`pËŒ[#?J1`¾mk‰cy/Ítêg”X‡ðÖ›Íâ«Ï- ‰=€ ô+[#*I¡ e+Áœ}5`nE–L´Ìò2Öx0z…•Kþ¦Ø”Há·f™œ=°°Ð—×Ó)|ú\«ó­hE4%=•¿&[Á`j/=uJžf½'§"è«ÒËôÇwèKÜ¢9±Ýª'™˜Ø“»èÜeL΃ °XÌT¤ÞmÍÑÚÆ¦ñ!!Î>i¶Ÿþ~xO9d†o5!ÓõÀXà>1Xdǯl ¥e³å$N­vci:Ý{$tlΞoÔ{L7xÐÁ¥T¸h–àq¬~KWï2~y«=û±{£ lä!«Áò¸Å¬Ñœv5I è4±ø“Ó—M+%úGtJw\OÌ6§sÔNö¶0æ}äOð™öLsqßÞÃPÙ²\ѱ¹T×9ì}É ¡\±›u/X²°«S#o ÉÇ=´FÌ‹¬×îŒ <%IT«4Z˜·º¶Î;Uedx®ŒâGK 1B>ÈÆŠño(Úµ&bU,n¼ UÁ¬&6¢ê⯕ Å ¡X&áû¼?eŒU—f¸[·S´ü˜-ò¹±ÌÙ¿Ùßcyœå>^zIÝ`ølÿî[ß•kBL»,¾ºê(hÓhŽ(ÀeräJ<% d !?§^À°j§Òï_ßÛ­ôÊ:ͽ‘+ãÚ+ò£ Ly_³ôñÈïÙ=e5Rº@p¾§þØ3\©h1ÈÒ“Œ¿¬Ù´ÆhRr~›[½¿æû¹81K® »Cjš5ùq©ó{¬êçlâqÙäõ÷¸ü‘²¨`†y,E±‰«‚ÚŠ&ÙÊîëã7ƒfÞ2SùC(ž,A} ùIïê ^mËõs§ûKQÙ£~)=·íž_4ø¬|³ƒ„ …) N@Eënwõ$5ñRócº çc#!u³gì"êMúÞE|Ç&–\ôÛ`±ÞE4C{2i®ªQÈÆ×q mýBûSࢠ¡˜"d¿9LðÙR×=·‹dºÉðîO„o˜M‰žÕ ¡vZú­/çXôæSl|q„ü?º’´Ï‹>ô Ò¯ê-؛ʀx[nYGŸDñŸÞÁº¸†àxCÞ³/Þ;É:’Ê“³ _6Ÿ—&Qˆdú.Ÿ/5“Ü b¼"*‹$ÉUš”õ,90šƒ‹º;}α wð÷?•‹×`$¦š¡¿d5¿¨ÓDã=N†ÈZŸEã$nœòt8iýö!’4?U“J‘ü£Ï=‘÷ïÂä®È‚”OÙœ!$‘}2&™饫ïÖÄêUB¤¡–¡—€¾ÕP½qƒÕÅÒwV¯b£ñÒŠ²jÔA"]³"Û¼”€¤€Ê©™Lw˜6 $˜Ÿ9ûìÙw×òCb-Hiåq¶žW!iï΃n¸>ñÜ#ðÐv½J’">Æ) çJᣊ–Ä•–Fvew˜³\\5KVÓâÔì)ÃÏUQ’wq¢»%ò9Û Ç%û}HˆŒ‹âM“zp_^ીĴ—Wsì&žZ®ÁäÆw8ž°U~\ÿ¾d~ïX¹˜†5…^nrõVèò¢g,ÿÇ'—«°A|È:¾o½™ƒ|vY-|”uØj)(8gBV->ï–¿ÔÆ¿h$ýmMìŠt¶1IG{Q,ؤس°°QPõ´²?)ñmPèâ@í×ÏÊ·ãú ¿nᢾ1Þ¬‡õ¾Ú›#ˆÚéjÚg›2“U¹'½Ã’¾ÛáFÀÉ}˜¬ÙB6läC#Â&ŠJ>® þ=¥'+?pôUÆø˜j¼@CYáYˆ#á„ð`ÊO3ß]ý¦‚‘M÷²?¾N§Åæ ‚z´Ýåažbº^ya”½q§œÒ×Hç´TmО±è,¼7vºéÖ“÷ö üIÈ\:ÅY'ÿ±,)±óÍ ³ú}ìwvjq½¡PÄ¥ïù±ûÃEœÄ{Щ‘ ï×…0’ð(¡œX«NêÊVÑc³ˆ!ڕǪ!³ö¬Û¹5åªl£òKG øAA/â=Thn3¦—ûÙGƒM—Ù`—þž-Z_{o¹õi¯™úBiò¸ ½ZÏGß]e 3g˜¡ø‚LØ·…ëµýŠgK?}4+ºÀnþH-²05ŠTÛ´L˜=Zûlz20I€)l/ÝIö&F¹F‹²²‰®,¹ Žh¾,ŒO*M>¼UXš"æ*Ä?2šmÒ%É*Ÿi·§ôÊы‘ æè}(r-C`ü´d¶ÈÍŽ¹­ñ)s•Ak‘êœÏ¡Bš"ùcXŒB«t}”ƒs¿pümFTº°ƒxá”ëåŽ}ÄOÃ\¾û/U/àXÌÔy÷Ì¿ªùŒïyvâÙð$ÝØ­³Ô˜á¾ñ©Q0÷½²’R,šé"«}LÊ3ªï¹%ùm—°=£¾åµŸËã­§f¶e8=™ñfÌMÕÅÜ™v^öˆÜ|GQêÐ š•î(nóYÑ1¶=3Òõ‡&n_ñqíÊý­„dn?Þ.Ýá‘2ÆðZþlŠnS-£ÒÄên šçPª2Íií»uBfü[û…ǃDH¤Q›35¨8d2¸bÇìÈÝPÃÅd¡>³Þ³˜Ì¸¿^[æ÷Øë[Sê%“JªÊ%1·!®˜±ºþ„ÚSû, Î,|5S>­²[z¶wîuÇÞq¿)$N¢\[oðóg{úñ&‰l'Ó6Âå«‹1TaØŠïðèE2-^H?5¹’h–]zuà ë‘ëPø&nŒûú·¤­Ë™ÄÌlÕãϳª€?a .»2o„ÖKFŸ¼oíòxßGû6AíEx¶Z ˆ WZ¡á|oZãµ®Ûb°iõZøs«:¤áf…go®7’Ò”[ý„/4 AÉÙ8Oû¶)b÷êâ8Ƭ`ÊW¡_N¿æ|D²o&Þ®˜KÈ…ÅÊ Nm3hšgÂбåñ‚ü8ñkWpÔE?°ã1ù?O¸úKº4ð}¥«"¥•u0h¬  ¢D›™n H]šBSÖ•YOE??Ï‘¡AªÊ¡ú;v§Îm´ñân‹äcòñ^3Ä(î 0 aÎe$72¾ª{¨Ac¶>÷zëSÉbá“nÃ¥¸"s¬Z]PÿjŒèþG›ý–R‡tìò¤%½»‘ºàüïÈÐ8¡‰çÛס]Åmß*¶i €Ý~P÷ˆÉXÞ‹ùÇ $‹úåð3±eO¼RjÌÁjÐTìl*‰MŠ;FOm¡ÿ)á{Z§Ý¦]º$i”+ã¤.“JY ,åš7LU;Ä$ÛÚŽL˺ÃzW:»VB5Mùô„«Ž,ƒ¼Ò©A]rkÎ¥R«yzþ¬LmµÖOœº{VÛ²KR†…?7²‹f‰Ç«;ÊÙP‹½ 8;÷rúìË1!’²ÚŠÏ¢¸°s†·¢kw~ÿ‘Ã@ܲû2þ¦nXŒ¤.ÞqÏ8`”èüÈ¥F5ç3Ky*¤÷Z˜ð”¾dÛ.ÕŒþÝ;ó¥¥x)*zŘå¡äÉ/jˆcõçpÓ^‡'¨cÚIÝ1:>ûá#åÁ$ ¨CAçúnçÒÖÛ1#L#§Ž•¬¢êÔr€wB£Ÿ2|”É¢Hj£f¶.tíûè+O8,¡MOÍl®Èª5Æ«KôÜsJ@mÏÀ/H£÷8z>K¼øQôpׂm‘úó¬Àû*äi9Ne˜V‚½¾¾ÝÖ Ç\iw73¡gmæªGƒú“Šsì„gRÎO¼Çéú¿í/ÌmóŸðªë‘áV.]™—ÞÄŸê Iª Ñù%ʾñ(çÂ]X<–`ÁÃ`æriÁUüro]0œøz°8d ®bR Z ©>ÝÆ>àp!Ô©‹XH®søŒAÇYþ)d $õ©Od’»`nú–;£ø¾Zj=¬%£­7zÙOunWðøé±.pšñÔ©ÔÌ9|ÏÕÉ'ÁX§nµ¾Ãšš9?{Àº÷Ë©Kýi[Ö6&8ê³¼ëƒ;£lŸû\:#eùhdñŸjôSjnò*ðèË׳yµÆ×pÌuNyã<„¦½»ºb÷ÿa•Õúø”éÏdyÞuLôwêAÂnIm/šCeÂM¥s–ôª°Ÿ;J¬=yëþ³½­Û¯§ÄFOCg;¼× ,mjY~›íæNâm” ¼|ôΖ"¨fôLöÅ, ö" 4*xgÞG³Ý™ñGªv8«©X›ª'¼ ã*v z¬313IcÂWý–çû…½ÕH•ån|§õ(iìt,ÙzpÆ–¶+…tîžqj¬RÚüh=Ëh;\Ǥùr·¯ãHÃ7æòóZZj\K"—ÞÑ;v²B´™¦ˆñ–yî«;œüLÌæ_=ÑÎÍoÇ•fï"9[Vo•E}ÐFìi”36)ëäéu|¬øÞa.žÃTýkµ/[ƒÁ³ï`ˇ(m½ˆÄ$)*A&‚Ýì72’üdÌß8uŽàX¨ÉÖȸixÄ ±ø¤–„Ÿüßn—²pcÐøÛäFÑýh—}Ñ\#ùÓ/U›¶ Õxǰ zãënpž~¿¦£ûâdëò4‡êtÑÑ´fR+Ušåšì¤ùùÍ =$óö_<ß÷£ç(¢HÇ£0SlC91}Šˆ¦ ‘«ìw†¸ „:¢áÅÍ3,“þQt5“Ö8\rí«ïté5a”>ÑG?ß&Oßmž/­;àæœN“½xC´O¼™r~¯*p¹>]t‡ò(˜¤ DOúîT=,ššgæâÙZò$xc×#Ó,ep” ¦ÂSv猣².±…{{’°Ð°£NdT&òŸŸ/|“‚FÎMò÷XýäÀ¨R>!qicãÁy“m)  ú0ÓJ©[\¬ßmQ­åòÓÚû+¸°¢xXÏvy1C½ÉCäMç¸(IˆêtTŒÕFµ †¾ñ§çïè¸L°=Wº,¼îÐqq0 'k° Òæ”-Ç J< ó°Ælª ³«'÷ÆÏØ7ÑS—L¨·NtÖ|ÖOÒ*æ2î“’m¾G¥,3uQÆJŠù­CcðU`÷HdY}ÿt¤bWàÅİݘ%OÈÒH;ÏJßfBw5ç·xió÷èÅ’Â][<Ó™øR2[#¦ Ònœ¦Ÿç^™W 3òòa[eF~¨Ã~,þoczJK¢àFzk/O£ÏÈëðA¿[Ã>ÓwqʪG¢¹WH‚ŒáYo صÍÖzõC0[ÌÓ° ÄY#ÜŽñÅð¹i¡1FB‰ˆ²Üs×ç¹^–·pœ­Zæ¥+RäÇJ[VãbdïË“úœrw‰w†#òZçÉC g[¹¸Ô¹e¶Û–¾¿+lx(§lRWÎu~}2cKq¯6ÞÖø²uue óEÑNÂ>yz°x¨»ÑÖ ßÚƒâ¦N¢½8ÛzÛe‘~„‰_¦ù®çeª¹áJ[|ÐÕÑÅ %3êñúÝR¹ŒX˜Íö<˜¾æm`|dñ'§:Ú¨¹€Ù†7çš·¾Tó}®Ù·Mó­2QþYΉ•më~DÌÄûðåVWÕ*ƒ³Ÿ.¨üÓ¤JU­e-¿9½uÿº,=ž'DkîGWQŒU¯Ë:åÁ9é ³k±Yd-yýÈò!ÙpÖáΘò¶Yðó>³7¨Š¼óæKdŽ“aXƒHÝL·áq@Që‡0Å ?mDÐÑ4ŸâoäPçböÍÚ“=°Ù«0–ÎàO Ò:bïBg¢û\ŸtLŽ* {®cxJ5w qûÁñ¿i¤Ä._î6%{QVvÛõkÞÇ[Bˆº¶BÞ·D=6‰œäõzd޹ÃÝíã;ú1µ„×LŒ$…,Š&åyíËΩ4·.ÓBab /@,â¡T¹HÅõ®t‹9i¿ÚÚÆ˜t Ùôk§a@È¡ÖéÏý¯@§š}çÍ–€u[†âVe¥3J'Ú³÷ÀJwa¨:P#OáU?7ì¸Ãåî÷ˆbÛVp"莹†\„›eñÀ“®M‰¸Y,ûßÇeâµpš‰–€‡Âòu c5Xj¼‹ÆŠ ;ù†›ÇÓ¤ÂzS' kŠï];Æ6=]ïPŽœ~¬¸ L0ؤ@×Çù(nDë–«ä†~¢ÇÌ%zr˜qœÄké’Ù©ÇŠ˜Wßç©~FµÌ!£SÁè†ÝfY6üì!–X½zxpçcÞk&è“ `z=$%Me ‰e%‚R‘¦Öj_¨1&uø<õ%F›ø›RÚÝq§"Å/·»_Ûg#G?~¯ ÈÇè3Þ=3@,µ´ìåËé—m¹AcÇ" æøùGË7ºV÷´öŸVˆ?»ÉÁ ¦º–ÑÄÚãS+ï’÷'h=i,?>·E@ äWÃáä§µµµóð;~ÈömÇèÌJQG¹ÝGö~î2 ¡‚òƒfñ¹|C†„£/}ÊöJf¹DµªÝ»êþÃ/©Š— †‹ÖðcBÎb«8ô5 ÈËç"˜Ò±õZÌaÆ]20tûÏ+Ø0œ2}¾`Üîg 2%W¸ûÌ~r«ÊjÝZ¶"ÙÙ”bt6IPnˆÅµs}‚s°“xHÁžŒ :‘f!RǽÄ–ŽàùÕ›Ë:ðg÷’¥ž¼4ì]*§úÀêü’0è5/Ùcý7'Î*üE¡¥5e“ßÍÞÓ?-t×R£²9¨a ›Bœù—šFüäyèÛÁ¼ßõj ³½†poFØí¤Yôù7rÛùYÃpÖ–—÷+YWmSŸ&}]ü µÅ$/¡3Âë'‡7îR ý»H4jœJŠeö5Ú4kˆ™‰¾þÌkËÛ4Ã¥å­c¤ÁÈÑD®Ú5e(xæ_N„G0¡Ü'‰E»êXpPi~$~C!{y(z´°EBÜ£•ylàtîJRö¹û&­”%ß²¬±+š>n»ßÚDÍÄïYöº„yÙz*OMöFî[Õõá ©æÐÚ¹ôŒxÒò{}þœéÁ“="VuÐ Eg„§LÎà1Ý4­ÐX½æSÜ%µ úFîu2“ãŒTÛEm©^È›,–ípeFT%ï#Gþ†ëQ™4±[ &u+ù‘ö¨š ß§Ï×o¦Ökgƒ/Êa=˜¯[Â\Ü»ÓÄY@­âŠìÿ4fúÛj¡œÊÚÉÃϳ`Ñ“{ë×Ùé›Ä•÷”¨[åAyËаœížÚÄíÓ ¨{tO¡çywdˆ|tÑ‹Lgèšãöý1¸§¶™[É-r®³å¯b¯ûßàW1È–•_˸b™øÑœïLûÊß¶JòÏ¡äÃpľÚyÄb’ÄGŽM'lº4~>*Ç3«Û¯^ûÜs2?.+JØ›¢èÆ“ûߨf8ÌN>ˆ…’Ì "RBlÈüëšûížq½)Ñôq¯Kâ0X< ë5&¢(¡¶;%[u,F»-¸—ÒfeC|Š¥Ð’o1/–$&'Ô„À1E–*>ʤu%—â–ו`àªÌ"éyE $hÛ]Soô¶"8r^ÊÍ5°*ÉçÎp¥ÿ~_X;E‹§Ê‰Û&à}+hûòÅ+ùÑ»²k}5ìû?OÙ}Ó\+±¨"Ëoú1¬Í§æõE,ŠvµDSWRRÙAó_âªý=T;ä“7Ï>€o:1úaf”ÚKc®L}>€÷fLp‰YiÁèeÿ|6ù]Û Íé\=ÊXîJª€0æBŽÖê<¢ŸxÁfî.N’ϯY®¤ïÑ—äœÈÎm†ÒÓ6 @¹OD¤y°Þ“V}:îâ™à¼ú"TXéOg=ÜÀw¦ õ¥ëL…uÐ?Z–YFA}Ô"ÆqìÄq®àÒLSÉ×o.÷-Ørí¸ÁÉ—’í+ÿÊ.™£ƒÊUÍ–·l}Fä pcöªF=¥o,ñód‘•üÅWÀÿºOÌX endstream endobj 1561 0 obj << /Length1 1396 /Length2 6003 /Length3 0 /Length 6955 /Filter /FlateDecode >> stream xÚuTÓýû6RâiPÝctŠt# ÂÛ€l£Aºi%¤‘~(i DAB$¤ÛÿŒç÷üŸßûžó¾gçlßϟ뾯ë;.6c!%8ú!B ‰€À²@=c i ,ƒE\\&HœâÀe†À`‘h”ìÿ PÁ  8¼MŠÃÇé¡Q@m7' ˆPDRVDJ Š‚Á2¢1²@U¨;ÔµÑ(À¥‚vñ íìqø6?ya|@)Á_é@%g ƒ¢€zPœ=Âßu£aHÎë_%xåíq8YaaÔ BcìøHœ=ÐE`ÜpàOÀÀ»PgÄod Ðĉým7FÛâ< opBÂ(,>à G`€øæ@c-] ¾ õ;X÷w€ ðÏl€" ‘ÿ”û“ý³õ+ ƒ¡] (/$Êh‹tBõÕuA8Oœ Š‚ÿ „:aÑø|¨;é}ˆøus(P]ÉÅü à ]pXéô¢ðÏ2ø)«¡à*hgg ‡ü¼Ÿ*ƒ€áÇî%ü{³Ž(´ÊçÏÁ‰‚Ûþws6E!]ÝZªBð&À?6;(–‘”—"\O˜½ðÏò&^.ˆ_N‘Ÿf<?´ ÐᇴEà>X¨;ˆÃ¸!ü|þ·ãß'€ˆŽ„á€vHàŸêx3Âö÷¿| Òã¹'ÿüüçÉO/8åäõOø¯ý 똩šZ üFüŸ²2Úè#$ ÉHHED¤%€RR2@¿—ùÏþÿËjEþ¹øŸŠZ([4Pæ7üðþÆáþ‡¼$Ãüw‡»h<—@Þ¨o–Ãð_"ÿßø•òãýÏ*ÿ/êÿ÷…ÔÝœœ~¹yùÿ7Ôéäõ'Oe7^zh¼8PÿjŽø-e=éæüß^-/%”žâB"â °øo;«ŽôDÀ 8˜ýo"ý½ |'$ a€Æ"¾qðY`ðùðªƒ9âß*XüÂ~¹xQý»¯ ††ÿTŸ¨„$ŠÁ@½`<ÉDñ,ðÁËŽðüÅo 0…ÆáS€xŒ~@[4ðs­¢@ag7'Ò_ïü«8Ì ƒÁKïðÿ>ÿÒ9ቀf&Ñ0¹‡×!MGJ,B_I?~j‰Œ·èŠÀqO½ð±×½œ®1æªü^z½?Å`úUØè¤/ ÿæÑ§U[fà|²æsZ×¢ò¶Pvßñn›âÍl7,•¹H½õÄð&å1„ç©ùäY¨T»ØJÙrÞy vÅRfè Ì? bKfÁ=VÊjY'Œ¶`ãü„{kaEKƒ¤º™h™ŸF#c•›b˜Ž½!±ioçæz3»»RÄvrt:Ê%KÃh™è¼µÙ²úz˜èŸdj×a ¸•%T^%ų3½tãž'‚vuÌ@dÞ¬á L™—o=ÙS¯Sg#Vd´Li Áýnw½žÓ¿âH#Ò´‘ K8™ÛÒ^ã­!ý¢h‘Œõí×Ë‹mÚ]·5»ñD¡G…’Œ"›Yîý@ƒgc›ƒQ³’çñ2¶î;Üqª³ÿjòínáOãì–Õ|9I) ·Þ7ùu0Ú .$ ùßùê=Ò1}5ä鯻|}ËõÒ}aaجbc¨'qˆÒÀª9L jAO™ò}w!LÉs»Á+f‹Ý—h‚r´ßSWÊ{¬~GÉdò;è`‰!ò×®_ï´¶Æ­as‰² ÝŽ}žiû=%{”MS2óŒ­pÅ¥x%D¯ˆTÂtÐM@!Ùq bhªh? Y5,žèIb®Z~ˆâ8ëé_÷î>1éØc“ç÷b°VžÎ®õ<íÞ»ÕDäÊiÙ2xÄšÛ#›-(¬Î‹ûôÊýŠf@ºa[<æËyø|OÐ'"›fÉÉaóþ¡Ö$š + çïFw^z5¦³i%à\Ù Ôßtf÷Nþ(دy !Ò$”Ò`®~´>ë$ hõ'(ÕeJ¿ºW˺;^³Ba˜ç=B.9”_ t±Y­¹»årZ䪬 ¤¡ä™Ž<š¥çy>?˜áO}/á¸ó±cµoÞ²±aR·AuÀÚûóŠN5ñˆV›8ÊæÕ†ÑÔè…Û?|¹æ,ÇùD)À:"ó|SµW›ùî;y„sBX¿le›=1¡.?’¼aK ¨ïºýáù3â3¢ÅEþ¸Ï_È‘.¥ºj@§Ñ %×Dw\óÈöãÄ«ãk‡é&»ÁS4%ÇÍ।æs»¼j=ë/\>7íh[ S-ž3½ +‚Š}&Ê 5Ϭïïù¸£úâÕ” ÷k{¶î™àW‘1Ó#Ì®?l€•$–S ¥Å—$¤Ìú'&º’•“<É‚ÆúˆõTE%Goœ.å1{U Óêe³B‡ØÂc¨ÙUr´Î;»éí<iæ*F+/,÷ÍÇ?Ë"%ÝÅhƇÇKß–ÂRŒYË˶뷹ã^¿î¶^ÏG™]ïå.½”ànº&É~þcêÉÚêTÙÁ)8ÿpz´ÒâûsÎîé¾Ù²¬U£³ÀžËpè_Yt_¤;Û °…³²|G1ì/Ô$%9ê=Ú íšeqúÍJžiaY )œ»¤MÞè„tr’ò%,Œµó^\µØ&ñPüÜÑ"fé4Mình¾ÂÖºr@ÿ–Vàka-Üld^}7jZ÷àS%lˆ´/Ei¾=ˆ“È£àÎõÍŠH¥€\ΓW%±Ô¥úí¤5Š+0…±x5Ñk³“ZÖµFK=­½ñº©¶²WrD°WXô[$æ@ݹ>¢s:[yKÊÄ“tõDbD¦fÏ!Õu«vשçÏ稟,¸"<Bo,CÓ¶b”A34·ÙÉùŒ:8EÞd-ŠŠ|^ú²,E¶ýžÛùØRqÅò›zïuö³ì /yFÍÄ„¾º […ÓF.¿WY‡±$G ò.+ˆ¸ÜâuÊ»µã ªÅpSç<[™gÖC#¸›9üA&Q+iy.nrºY´«ëðŽwuÓ‹ô!=¢,Ù }Ô¹›wëucŠ¢é™5N:s™Í”3|-¢ ŠVað= Æ„Ýqh¶w–Öw©;»WÞOù^È8/Ò][UK{M÷pêj%Vðõ!L*1ÌkÚ€™vú0> zo¡Å0Yÿ9ï­èþ ÊlσhÇ6W8‹¡Ô1Ìý; ð ã™u“O}B©üò0…ïM»U¦u{#·Ð….¡SQ¹þ0sRrˆìË £¶$íœ=p7¡ L$öL¹ÓL‡ÈŒ-ƒÌ¤´}Ù)¸3Ô¢6ŸJ‹ú4:©ö«¤è•ñÚQíÀˆ0xÓº¤ÊÈüàGfiI˜,Ží4…ªäãIêõ™ƒAz=޲liæ´GÃæm˜êÖ7´Gvn n*jðŽá²MÞµÔäÒºýåX†y±¹]4„§n±íáã¸Û«—ŒŠ\¦ƒÔó¢nQ‹'¼ŸhºÏÁ‘{öye[sPrîÌ®ô,ßä$ï–ßÒèF¸×@‚Ó tôË„xùÏÑuÍZ ¹³·Ó ÑCCá¯|á…j'íßxbùJ¬íôû)¾0“Ä™_&O*-”¶‹?'”îÇŽ,ÕL¾R“Ê9$¬œÑá¹ÆöuòÁN@ë±^J¸ÕJ]®4z-ä1³pÛE“­Æ¾ýÔbKD|e–a@v,M1ýÅï<…³þÚ¡ÍÖ„ô¼*ˆôi#‘yUñliî#¬ h,M±Âô¤©RÏ‘vàÀ »ÝáUËv†*5.(ËÙp«…Þ6hÂá:‰QyÓ–ÏŒ£¥£ò·(ŒlrLñxçýÈÝR ãšÄ·>)ìkµýŒD{BÁ3-Dn 7 Š‘3ð|×LÁÚc»å² {é"wGŽªwNÔ´SÑä9g(ÆÙɃèþèXÕð²PºíñêY–”ŽIÄO|63žú‡¼K⢬S¨{Ž2.ßÕ^ßÖG.×xIH¯dJê˜ÛDHºm+a?/3OŽ$ w4ô¤V³yö…8*nªÊ>z§Crã>P2K719GiH‘­ìÝÇ©ñÊÕOÃ4*ÅnÕ{øTwººÿQÍdC~«ßýô¶òsÔô¦À@¶l Oö×|Ú§ÃL·;!s}»|ôÖý«ù3êËšQŸ"¾0Þ|;¶‰åãTWWу‰²Ëø7€h ëe$%Á¤J=º¯£/}RƵ¡gõ°{~µé}W‹`zÝbõ*››{16Ù§ˆ{Èš]6cq¯»í•€ÆrA®µ½jÊWM•’:AÂSQöwà›5t™W[ŽCÒò¦ŽÈŒV–ä)=Æšžû²»÷›l .~¤Ð:_4^fT¿œò¼a°¡\“ålò0£ê1ªê‡ª®;õ©Õ/Ü9Y‰:÷!ÓK5Ç,F˜­¼ ~„uÁ ¼uI§AÏ&â' MéRt•÷º¾}þ(öãT¬2û±É$ôZ¹WЬ-ÚËTÀã­Ü(eÜrþÕ°6L˜Iä¤1MœþöÆ}Fäɹ»…òÍ{r“ßî:d¹w9’ˆš,Îöç^ûÁ%khÕë;K±ñÞ4X¬| ÇyÉ—"lA;"gQM«§J8o×@: åk¥¦áZÞ]þ¢zíå¿aK’+Õ ]ÉnÙ÷ƒš$ëí¯,64虺tõ3 U‚Þ„:çJ;ç¾¾•‘=…núŒW–øïy oYhfW,„V'Í'gÇ‹qH4ꆠéM9Ìc‡a´‰ôÍAŠúO8 1ÏI?T>+oíâpÙêøV–¢]D¤YQc#«:˜þ!n‘ú~˜GHÜÊæÎ¥9Ûä˜5ŠC2Ž'‰N>I¯ †iÍÑ5Þ™ÙÁDÏÜûŠÝ‚¹ìíç‘äT4Ø 3ü/ŒF§ñ Sb÷w1áÓ¡'…îÅf1iP*·ZwrEÓ#Ë‹ãPàÃÀo •ŠeÉ OéÀÛ5ìgÙ Ó¾2Òâfuìè?ŽÌ‹w¥d u;>­Û¿/jtqÖÿÙ8+\8+¶Ûñ‚ù;G"˜ó×Zs^žD…œXaÍÅm‚MßÊN]‹¢KSò‡E…uT$¯ÊRb~D©Cœp—Ä1¤¿£{áWL] .á[ð«v·ñI¿N ÈíjoÍzV÷:ê¹B©€@X„®g†Qø´q雩.†Å¯ºì ¢P’ý -×¶©üHˆ‹émv][¨]ÌjÏMoÐhz®Äöô«ô_¼!ÛüjŒ.#"“H×îÚã»”Lªs$'£%Ô]ÃïtÖÉ™cò*æZ5̈säø¾Gŵ+ᬬ§šI:‰“)‘„ñ¤˜­É ý(èI:B2ÈÛ´¯<¤Ò×ì©ZdŽÏ­‡ô /Z~ŽXgVD9Ás_ªïÜéÕä$·Z÷ªDvMæ¥|¸5ñÊhÈòîºc ã#ú¶Dav’µ‰„£K".,ä11ç{‘϶û̸.íPާZîë‹‘.íO5ùUŸ}.Ø{ ’¤ôæ Å:ð̲ñöŽù•Æ4qh6ºÇízûÅ–“ÐŒçVh>K2Ü»X!8&ÁuÝ|;*bpšÎ4íý¡…M¤RÖ œ"¼!lVO¤.J;š¨ä'|³yôÔÙT•}ðí°ª€…s®&E.jesõž=›,t8WêˆI7ÝNjäÌeSô3b¤,ói£÷tìÕím¬ÞÒ>0Ó3%¡¸¤½¤gë{S6_«“F™~€ÿú4‰F–$›IulNˆÕêh'PfJõE9¤“–)VËùæ‰ÿñ.÷$ð‘Ç?Ù}®›å›òKcZã‚Ùcª= Eô™ßš"BäçÁS5í$Yȱ{ùÙ#ËáåíÂÖÇ ý¾S†Ø:>t¢_ÚR¶¾Àkª:FÚ™«nå%/ «…sòŠ„–%½sJÊÃ[êƒÕXkÞŠÒCï×–D™<Ù£yŠðù¢ò¼hÚÏÍv¦¶=Da ±Z3cOê{C¦•5WFº?<:gè?úý¥ÛH‹~·¥“úÖþ ã‘àIÄ®É:¹äe›A•¿úöxW¡=i9pIDo·×^ÝáqÎ äAàœHÔÄ<ºZuS£¥Ä‚ậ:޲嶡‡fíUÕÒítÓø&ÛžàÊWL^Ðv½óËH$ð®ÙlÒݾ}Aµé‘H`0·µvù¡RÓnM)AÚUÅà{ÍìhŸÊê×oN»ÅŒ ̦÷eÌÚç¨ j{7R«(Ëü¡Òo,N:ž>½š]šŽ¸Î_[þ»OûÉõn±ì[ &çìßB`TÓÛJ_im¯™×t^Æxå$´=œ£ÉW¶ã£¼‘ 3 ’ÕZµ6Œ)“ã þ‚cÏå¨(sÜö,–¯}Q3;¥ÿý;þ9÷ZxõÆòÛÍÁž¼µÀÏ=›‘Lüœ"`)¢»~jŽ• 9%'ÍÆëCj?/ǨËY~‘5R£.½å)ÎñÓª7#óôíͱ;Æ9¿n_kèê12ý`ú¦æ;H—,¿ü~"[ÂRùéu[ÂýŠæ¾ðiô× N9øeB—˜Øüªš'8Ú–¹k!Ø‹kY®GS0 $Åe¦ùÔeg9‰)”TÕ½£_æÈdtçÜbšãÉ,ßM•ŠÞÐéÒÍýf^³à€šažOÉCÔG5uüN¬”˜)ÝŠ·ãÉäå¬B·…2μùà¥Þcd¥4|žžï³žÄ˜B:é½¢GBÊXx ͧKÎ]ý ³D•¾ï¨…û<,@zŠ¿I虳8P¹y”³²C¾s[ÒÄùË€ËÃñ=Í lÏÐ ßíR‡†Çã«;—Z³ÊVH(V!åÇ%än»Å7ٌ屭PÆ}”¥¸ Þ»p°¤Ú¾Ù{¬—:eå‚å%RX£¢ƒ,Œ —©7äk@”ô[óÅwxršGõ–ÔÃŽì>ݡ꘺¼ËÕã1\dÀJÇÏ“ßH6ähе!«*$è™=¢}å,æ![2AÀÓºc¨ÔýØÎ¤eûc£ÄHù ú2w PÞÍ=:ÕM›mgÃ(1K½h¶Z®\òfBõqöÛ±&T oاõÐQË4¡~ºîÙ|ú©ÃÛ^tl¹×_l×SÇpã M»û*ÈÔL`hHwTq$ã§Å˜j“Éîæêi!ûÔp/¥ »[¸ë×wÑUp–]Ø>µþzÐ4“*B*îXb’‚ƒ÷jöê){íhªƒŒAØZüÇ—E}""…ú—ë–ŸâfùX) ´À\og›ÎϾ«ó®;Jœ‰²Æ ­×KŠ\‡Ž"{dßÀj¨ï~ ”l|Vx¿ÙúuÚImMÒ€å“fOÓ¤ôòzå Ľ/.ñJ¤/µ9S³SiÛ†‹ÅNb P½H>ý‡3’ڃɑ"~7ù¬äÂZ)*îëüç#„õ endstream endobj 1563 0 obj << /Length1 2186 /Length2 18126 /Length3 0 /Length 19429 /Filter /FlateDecode >> stream xÚŒõP\ÛÖ€‹âžàn»»»Kp NÓ@ãÁ5\ ÜÝÝÝÝÝI°àî—½dŸÿ½ª{‹ªf}ÃÇœc¬EE¦¢Î$ffo ’¶·sfbcfåH(iȱ±XY9˜YYÙ‘¨¨4ÀÎ6 ÿÈ‘¨´@ŽN`{;þXH8‚Lœßd’&Îo†Jövy€›Ÿ‡Ÿ•ÀÎÊÊ÷C{G~€¤‰+Ø  Ä ··9!QIØ;x8‚-,ßòüç@ ¤°ñññ0þí³9‚&v%gKí[F ‰ @Ý9{üOZAKgg~777f['f{G a:F€ØÙ r9º‚̵ P6±ý»5f$*€†%Øé_ u{sg7GàM`‚ìœÞ\\ìÌ@Ž€·ìu9EÀÝ¿ŒÿeÀø÷áØ˜ÙþîßÞÛýílÚÛ:˜Øy€í,æ`àƒ´"³³»3#ÀÄÎì/C'û7W°‰é›Áߥ›¤ÅT&oþ»?' #ØÁÙ‰Ù lóW,…y;f);3 {[[³Ò_õI‚AÀ·s÷`ù÷åZÛÙ»Ùyý‡ÌÁvfæµaæâÀ¢iþä’“ü·Í›éÌä àbeeåeç€>@î@K–¿hx8€þV²ý%~ëÁÇËÁÞ`þÖÈlzû‡äådâ 8;º€|¼þ©ø_Bbc˜ÎSØéOô71Èü_üvÿŽ`w€ëÛø±Xÿúûï“ÁÛ„™ÙÛÙxü1ÿûŠY¤Õ•þÝò•ââöî/&.;+€Àóöàó¿qþ{ÿéþo©Š øßÕý#¢œ¹=€ï_M¼Þqý÷dÐþ{mèÿ›AÙþmžAÚ?ã¯ÏÊÅ |ûaûÿ¼»üÿ›ý¿¢ü¿Žÿÿ­HÚÅÆæo=í¿ þô&¶`[¼Í³‹óÛn(Ù¿mˆÝÿ5Õýk¡•@f`Ûÿ«•s6yÛ1;‹·9gbãdfåü—ì$ v™©€–ÿš¥ÿ\Æ[°HÅÞ ü×{çÍ‹•õÿèÞVhýönqz»²¿U ·Íúß¼Rv@{³¿V‹`âèhâô6oÄðb{ÛU3ûß#`a¶³w~s¼õè0·wDúëb¹¹,b‰þE<‰?Ä`‘ú/ñ°X¤ÿ;€EöqXäþ'€Eþ½ePøCÜÅ?ô–OéñX”ÿÐ[öÿ%Þ·ì*è-»ÚzË®þ‡Þ²kü¡·|Zè-¦î‰ï-æÇ?ôV‹Éz«Åô½ùÿK\o: ½ÍÛ•ýGÂÉù—ÄÖöÿ_wÉböd°€þDx«ê_ÓôÇà­%ó?øÿØsü…®ÿð—ÞÞÅñþo&ÿÀ·Š,ÿÔ÷v–– »X¼ÉÀÿÀ·¦lþoÛþÁ·· Ë_®·£²{ÏèßÚ³ÿ¾•çð'û[·ooÿó`{«ïÕ³½ãô'þ_rýgµlo1þœÖÛ6°8»ý3á[E.ÿÀ·f\ÿo͸ýãlߊõø¾ëù§Ø7WOã¿bÿϪ]ß¾F¿ßöð?ü÷§r‘–æíVÕ­w•b„nL?ÇÙ9ßõ_„_!hïJá»î©úKÞ_räD,ŠuÎþЏßÄ8b/|m°ÖÁaµ6ÜðNŽàÇYªm…57ÝaôžÄz8rRtaÿ¥ÐÑñјÃÎÌç´QmÐíJt†—ñÓùϹÔAêÆòÛ2ËSxšúßÌ(Pã‘ðx¼¼(Pmb©måâUb3³ír”N¢ãÇqÄÒ÷É}#ì\ÛýËÅŒà­dÂÃÃw W©‡ÂIûÝÜ Æ“€ªÝn)¼Ço´þW­_hMFÕE(Òäv'/d/v#åÔ,e6¡û¡%6¿‘Ÿm"Še¸›Òl ÐwH6‡/%häyrpÑw—”È` I#"÷."JOý¬fÎ@WðV¬šŠ5ÔpJH›IÎcIÁ¬WQ¿ôZ`›"ŽD8FÅÛˆw|Õ Ò#á­lŒÖü'œ«4s[{Pe‘©ÈPÃÏIŽ(üµr‰¼¹'NFeøÀY؉£,­4,Mƒ±,GU'ø=f™öól—ý½Ú#F2¡½óHÝaéU&(®Šä&Ðêß™ ð²-öêC|œ/Z¶D½ð©Š&ug®ÓŒÃä¼W²Ð§Àæ3ÏM;D#!¯5‚P¡xžOU¿Á¯)ßmÒδ_ƒˆ5«FÍc‘K|&²>EƒDK¼BkF¸»?Ÿnˆ„Ë«wT÷Ö¸^SÆ×\kÈ)Ï«?|EÊþA𡵤#r±¶ÀqQRÊÁ]ì’ Y82nìƒQíò9§ºb›¤l'ç;ßuÇÏž*Š1%¡BxsfSŒ‹™Á’ß–w2$3( GE¿w¿dÍ’+æb,?d'Lä’õ•kèÛ÷ÏT3WŽé¡±ze8 àа0ðY?ÒRŽÌé¸ÐkuŠQ!Ð -Ô_QÅ=g "xÆæÈsH‹Q‰~³ÎŒš&ݼœ6cñƒ*1H·¸ìýâÏ>r3/¨ÿFµg7¡M€Åå"‡³A=½n–#‡˜k®]Ùê\bxoÛ~ÈÁNz ezqP”«õªnJý³ß‡ë¢òºwûÔñÆÏ–›:N2bä5;T{¨1ýc‰äS–'-‚¯uQZ<<å–™ „ÉðáYÎ(0Š$i³ÍjjÏÙ+>J@ãî‹ï1¹Ï_’eŠ*ôY,§ì æÝkø( ÓÀ¸V>1“}”÷»½Èï:nÌŠ&µ¶ Êë‹rt …Ïè ¾Ærާ@Xó[ªZüÈÝ3wVÞü>ÈGÞD‘)IN9PÜšŠ±íᡟ(äû‘+…æåAþ-MUÌíŠå|*œIÀ8ŸØü#¢ž››‹?JDÝÍ‘‚½á2=ŠáÒ฽oا4¸úëÆÑbo׋–Šæ{\ÞÏ£ã»[‘X€•‹;ÎrX?®=âKœŽ&«Åù€†»Å&û4²ˆ½â:XfCAL„©ÃŒ×YC e-þóÃ@YäÕÚ\¬Ò)+Jæo÷1˜+¸CÂÓwfŽ»èºYžÝñc’†ä¤´kűE"Å+N%ÁN’xÎåœ$\Dð Dww³OŸ€yÙZyI G>ë½*+#r4/jR–«ÍÐ$D-~vd'9>à–Ž¯6Ÿdirc…áØ®ßï@¨^û0aÈ^¨È¥ˆ{€CÑk!ùáÔIjŸ‚Ñü(é|ñx`²«@ì7î›Èï³„ÖÆÇ¢´d`~ܧ³dc~‘Ãô =î½èÑ ‹±]à«ö' V²°¿ðÔ±~ül):d1Lœ1ÓGAÐ3BÏ•÷¬i”gvIÛÅö«šToX±ÿÊ¢k OcAÇ…5\|À¯_éo‰š¡ï(ÓF–Ðä૚s채¦íךÔYx—oØãO$QІð"g—f¨íÕK]©\Õžk[ÖöB,޵yH£aË-fux®ÔìÿR÷&—ªtóÿ•Ú×–wPÎZÎAípéÄ©Êï2 äÖvÅ`'1ûÙµãfÞÙ"½ÆŸ?Ѥ†ñ‡?©><¾.ïI›"Àégu×ÙÄDÎg\³‘NÌ€Ö˜n‡|!»a8IÚs”˜]!áN߃)Û0?È%Ï,e®§PD ‚\”÷Ó—Œ#”ì,äǨX—æ¾ÜY¤TtjTæk¼KVE™Ü𱤶§Ø)uŸF¤T™$Hß9}Wh˜}•üRvQ§_ê/¤Æ;„ý`&L¦»2uÄ×¢ªZ 7žÀ¢5gV³U‰°ÖÍð"¾· …]q¯O w~ê¿J$wí&v]€iIßTèaÔ†­ìÙG'¼¸1BÍ­D×´.ÔfŸ—¡þélÏ`©%HYd¤aQ x´Xïò sôä95¬ñxª¢(Íb¯Z=>¼eZ¼ûÌS†Ûg€výeìᬈZ5aU¯=eJLÉ Ý|Nç—H½»I¸é.ù×™¦ðÃé—ìUªáÆgÚ©N ‘ü€ä1f¬w&lŠ0̵nõ£`“à uÙ²’—ƒ[ ‰H&c !\øró5:$¸j)™`ßÇ\PŠœ‹V€½ˆ4¡ò Wr—_qLtí{2¿«I]ÇÊù¬_€ÓŒKÅÝξ;¬6Þ8Kþ#+b0bªäO Q¯5ó݉ÍqE7ª·7:z JQ KÉÝêšdZvAÄ-»Û™ªÙ;$ý^‰§E¿Mþœ„­¯©4ÞL3NþAØó\ É‚xRú£TØÄX5Çrâû¼ül¢„»^Öl®;Òæ"?×2áhz23À;8È'‡zv¨ÑÏ›§ŽCtòM?¦B7åÙë§= ˜Ùîv h@Ù_iX÷ö ô 1”Úœù‰¢¿Xtnô÷ïK3Øú:ÆsÌãTÑc9;ë(º¨A+’fÂΣùæõ‰ÏrBþ„‰U±EKëµ Ùì¾tè•™ò 7®ß+«9¶ P±*lž0ï´Fý6åíÕÈN–ð gTÁv9æC†¡"GjïOaÃë]lF¿2ôWÐD—[ñl*ÌXÚ5¿ßªvÚÃè )J–»ÉP³›æáK êD£^OÊŽßv@»ÎÎø_ ë$r_àöÍRo‘;¸¶kr\ }Êjêþ²ÞükJÂ~ï{Öd+kÆæóé¹¥ÄH…Ç{Í„÷wÞÐçБQëj•­Nûû|££½´ßDÛBB?ѱ#/“ó\SfcB.#Ñ.K†6VÆxï4¹ôšŒfÞ"wMÑ\à„l‡·†ýù_ŸÙf#ÑL ÞIæó=ãúŒH‡@Ïw”±Þ÷ví²ÕV:ånBj=Àê"£ž\Ÿ@q5êfŸ.^AWàð×wªiòZÜQ[¹ÉÂöÎO\ÔìççGÙ8­ µ'(_:”TùU&ZG;õO:ÇÝòoZX.]E­…Æ_7Dƒón‹Ýz”§á}¤WÍtšb†ÃOÜ"~ŽS5›({2}X²OˆÎMMI|°SRØ?­—˜›£«úG¢uÃÂ#Ùíc)¢.س„Ó¸Eî!#”ÒkcfÇ›T楆†Ùן?†o¿OˆGµ9aǧ«¥a>`0,Öݶ[¼ä¤„"?¿¶“U[Ô¾ó£1ïùTãÖ漪ýqîÑùöšv *“Qâ™n[7‰Ñ3é¾Ï3b²#þW~YB.Ä@f}eM°6¹ƒËÄ ÞöÊDÍ‘­pcÇñé©ST"„Ù0­ásýÖ«š!k~pĘ‚3Æ©×\ª…xÍ#ùÜFÁí©¤ùÙæ†wDl‘êôÿÓym¢^xÏçBôH'W+ßäá8ëd ¢–3¼!¸yÔË›oFš$™õ] ž‡¤q(§Œ”ZES|èVc'+7ꮢ_ш_}1¹¶Û7 œçFT?–/%OËXÇo¶N¼rÓ½ Ԛ!Ñ÷qû °\%Ä,÷)ûQi¹²<ø„yÄxyíQÙFîrßW†…e©Ds‰HŒÏÜh™ƒÚiŠÑ²v²q5]ŸÈ„âò®ìÑo3¢ò:›.¬¦¦ö$’ƒÇN½®|¯ý Õ¦þÖ‹<ÕÊaXƒ˜‰¥”ô‰Ei½–¹~ÚO ™+z£öŽé6íÑ"Ò ¥ŒoŠVå\c1v OxNýÌÑZkœZ²$=3ÙÎû` _ê9º|ÛÛÃ~ò ‹Ùù:W`eÉ»‰ÅÔyV’´}“/èÑà~döóI£!$‹ÖýÙÉ lÕx`¶uG³„[ð™CÕI_hM;}èZðÿÞ.$"½³I–²Èƒ¤ö’aøyóáþ¤õ¤ªªÈstйÔr!pXÈ2˜ÌC‰o¿“íùýè+Fuð»‘Óù+'½KDGÊ«ÒÕþwr ýLæx䑚ý~ ï}dÅ“øž½¶{ù|£:h&Œû³´I¬ÆY6œX×'ù!˜Šå]F»[¨֜¬cübï½Ýþmìkí9´ž ÍÏme×F]°j§4ƒÆP«R¥.²ýÙ²§Šýf¯°Ë¶X{P}óÉ…ã¥o³1ÃýGûn<8OÊž‰å˜ˆªRëÊž¯xɆcƒ"°º¡”«ŽðhþbGwâAžê àÃÕÄ ëX͈{3eDÒl¡§JN^÷ÎálTl+¾ ×î;ˆÚ1zøvqÎãŒ9@ó÷¹+§Ô¥á(蘰S< !DA»8»ÑÖ?-’yBú0«kwFóö¶ß ·ô/cÞ1J¯Û]z˜Ë= (¿÷ÕŒ…eY£ §#™{un„;e.ñ+ê$›H»…¹§Çã{ù¢xH\­¡H˜zGL¶ã•!£5´$ Tí$ð`ZwÅÅç*©³]´%íÊ›ðÕy®iw:åŒÄO˜IVÂ"èÈ>`¤ê›­¤ÅZµûÒq¸¯RÙ=ÓØ Ú±}>i®‰«ø-Z]õ6W5Xs•‰»´r°ÔÔÌ ‡SÓŸà|F¦mŽïÖÒ`+¦<Ú꧸uµÓýüqNwJqåÃy~î­‡|©jQ§ $4;¥ Î@«%â’J˜Iü÷©'¤¯58bvzpSÁü1Ñ<€Ó\ë L»_vŸHŽaCK,ŹOk ­š–‰Ü¿Î›ŠøWË•Æ~â´GY¿Úþ _xv›{Só²é˜8;# Æ<ÀKbÝôÂ.‚§‘ sÂø š¯»‡(×ôxX#.u+ßNíØúÑg¸òƒz¿ÀìçOÒ|ÀAŠ»ü 0¿y>¹ÝLq ×”µÿûHzÄu˾ gÕjXòaúY™bdéè%ü/ PǀΘºÂ=ŸL½-e›xi‡ɬ&³ó:& ª.„èË=`OÖ&öFRH¬‚/š”¿†vÿVûHv5€òYiLì:yV âvq Üç½éëÇ»ölö•èP'::CÌÂU˜ðMÑ÷õˆT6lµ¾Åkí^ß÷þò¢è˜Æ}R NÒ©jN–®>5h†Io9sÓ@¯,Ëq©¬P®=;Æo^’ ‰LFÜVñ9H­!rzeÿ¼³ C‰ñëôƵ"O+ßàÓòT‚Ã%%[Ò/.éç¤$—ѺW§O ÔÕÇ!ì œ?˜†!ëÿ€×bYz¼zôsœê»îë$¸©w.‘ȯQ1—Æ-¸ù1‚¸ÊlrüV‚lqRÒ´ëh4NªÈ`ÉŠê¸qJ÷¸¯ûTAû9–í"%rýû^‹®µ³h{&3Ÿ/׎›`*™ ¨íëý’ìïÃŽQá¢i= ,ìí)ç ¢ƒ—íº(å?<•°•MƯ¯ãl)Í&ì¶{}?Aû;+éÕ»\…ÿÏp b7Ý]ø½ìÌ¡t;°wYY[âl} Lzà7u¶XŸ€W 5QñƒWŒ;>^ᣒ%áw[©[ôÙÌ›L#‚]b\g#êäÖêrýÿÄÌ4áÔ×v¼”¸ób7BSaoã×'¢£CÒN{2·õ’˳i^»ž“™8­‚Ñs„üg¾\¸Sö@C‡¯m¤«7ÛuØVÊ(ׯ¦Ûį0ýVáçÚ¿:Õpa…¯^¤2ß›™¿Ò§ó2n©Ó0džì[ó½ùBk“”>æ Ž}"Rs8 Þ1-˜•ÿdÝòððK)¹€dEÐ â”<¾íÌþUÀ 1AŽÍ`Êhðój>Tmù˜ˆþø7ÊŸYœ‘¥®C;Z„w1ܼ‹Éç 9&iQEolŠÖäñ$á\Ó•î´ÇÂ÷¼‰Á™§ur_Žb ^Ø21 “Ð;´›Ð#Ÿ„ÆO[Jí=Ãmg4Ç)n½îß-;ìt›fÃ)ýò›Hfòu‘ôãNħsÅûqœ)Ew@]ûC r}Nò¦Š,ì…z‘»öcAt\–¶3§#\UýóSò¥³ ƒ¾W2$¤#ðµ P>o¢ôgúrüL i .í#ùGPV`V‘Fu4WLWåÇ !é¹è\>*`Ê© Á‚#5N­ÛèËùþ‡áë`ôég :'Ya6Æå.›Ló¹Ü;aÝßžWÌA×í2ëºÏ{Óz5qÌb±³”j|É7­\ LÎañ‰oµ{—åÂ7i'üÆý:‰1Uä$3 ªp+S¾òÉ+{«™ÖËÖ­£)×,Èhç%ºZ¥âð¹–¥nÀÉ1üvrÌÇ9 ¿YWTÊ’‰»Os—“dß÷?%­Ì–—L!&F–™<«¹›h#ñ¶ÞYÃ<ŸË„ôÈ”ÕÝ«ÎÞÛÖmÆw<ƒô÷Å8ov+Ê,Úc _»ðO6ÆO7×[=ÿuȈ9(¶¶ŒooŽÛ|pÉß·¹á7gËÈÛØá´oušÞÄ)“ƒª:ìm.Lj:£TµÈLpŽXTT«ñ½l³mU"ÇÇŽô“ϼ‘\üÄ~ø)ÍOî69`|žF…à‰TbJæf,pþÕ…ô‡]£vl_,€ƒ‘j66åÛÉ£Éeñ°Èø–·;Eê"ù—C½ò‘'&¢Sò°h>«`¾\ÓŽSï±xR›—ýFêÈþ·NœÇËû0X2º’ä'Îg7jâP3…1|w:©fá ð‘Æ‰ú'ýÐr”‰Í#JuØ$ øOd¢Y¶Â¼#T“-M蟒§y¸¾…¹Q¸òxrÙþ¶:GC¢Mà¼'óÏûÙž]¹Ù`ã´`O+âCmYÊæÝ™>§ó«8xOŒ%-èÐÁŠÉðÛ#+e(ôwÑ‹µzXìéPêû ž÷»/¿z¸§ÃÕÇgƒˆ—5Ø+…BÁ»3âë(“•¯±®ÙD gBu v÷ëj~Év¼þ+a5þB¶Ìœ¼†o-« ü§'~_c/­Ä@¾t[T’vú#ìz÷= —Lr RmÉÌïSN¦þ²%ÇôO·;2ÒB³¶Ÿ1ŠÓ Ĉ*ì[91‚½à“îðµ÷‘Ûˆ¨6Ë:âî?F f–°6Fû©ä}ˆ¨ÒÐR"*ýÎùރ핸*ŒPô–#ZÜÛ…âí&š?®vÈv|/Ã/¨ŠAöž|‘kÉÆu²;Ïã__Cg¶æT ¬XŸÄQaY‚BIµ ÷æÿüÌm}_%ºÿÂëˆÝD‹vsÝ/NåûÐÃU¥îDDºs‹‘Ö¬Ó!A‚u®ÁÊ Ÿùi58`t1ÍÂ[ˆ¹ô\§ªå3¨ÔAì‘.É”´fÞEÓþùX¤Y|»êõ’¦¡×f‚Ò½˜m—2†ŽZA©çh<ÅÐè¿î üߪAö ÇGsýXŸUmݨ:«:øé\ƒ¨Gô¤M«ù“–«3•ŒgxM[ ž‘ƒGxÏ:/m¤@±‘ð{í#VcØM*=’‹ [ƒ“}¦´Å‡úÎéxعmÝ8"ˆ«Önð ŒúpHŸC F\øDJõ&zÈ´þ!ê\o¹Ã:=›Ï©é©¦*¾ÂQÆŠ#n+• Žõ·Þ¾ßZ+·®§NFï`ΜsöнZmÒ;sqÙë£ö ð8ß Â#4Žúæ몱1³N‡ÉËIx—bÏÝRº~J•È'Rñ'ç¼Ä:Qo´Á¼J¨¥ž¿’ñ#nw«D-„éŸÐbÕå Ùȉ¥!Иâ±Ç?höàCpBÍ÷™pú"":Áz–uLjÝèLV`½zŽIÂ]VŸÀ•×âï'­Œ}°b÷÷A5_JvxªO¬ð±nbÍa› Ü?yö,Í\yÕ§Œ^})w±mÐs»_Hj¨¹Ìç ÆBÌ'eHA{ÑùjâêY¸i©3¢Za¹g5€‹Î*Á Ÿà¬ì7ý‰¬Ofº³ð‰žxJŒ/c¸s|ü+6Z¦u>Úl´{z@ËÞGNÎ|òÏ =?N%–Øñ›²“è¸ËG;ÞÓA›ü^ÕUР͘ÁžDIy|}]²¦çÊ´ñc­¸Â>IÏâÊüOc¹Çn, Em¬à&êêð"í™®ÄÅy®Ï‡5¤¿šNµÜš¶N®˜`tŠnÊ¢¼ Ÿº!ô¯gþ4•Qh“ÄÀGžù¼d8UA²÷,úes7'ö¡>1‰‹˜—Bsg 0ž³?~TÇÚŽ±œšœ9W…ž‹^ gËDDòFµ*|±]R†¢=«ˆPû\§Yékî ‹OdûL„¶Ó,ÅO ÌáøqcéKQ´”Ê-3²ÄjMdºKAqG(æ—E|L|¤Z N„‡ÀþŸ6ÙtÉé7 ‡^‚òJ/f[ÎB:Z¿Ë<°°m%b‚ŸQoªú'r'ŽO;¥à‰ïÈ»µ_&Ë4f«”á®i]FûK¡*DË1`}«L¯üy}§vØyåäD Þ.ÃêjÜSƒ§‹Hút£Qž½°Ý¡œ–¼\»œã—•Л³ì4úÞ‰éÃHΑ‰!®²¨=z>ذÌFX…°ÑJѬOŤ¡ÅRzŒ,ìkO-‰²Gnò-í\›íßL-0–Òr¤QVl›’h5h󒦽ô댨2ž«>àûâÚxöլޱ€·îu¥ÆMA—䞇a9ÅÐEK" veS÷‡È^ž¼€¤¨]èþŠÒÇ)lÝ:‡ÇôòŒ2»ek,ŸÉ½~î$­JÒð '¿Ð¸õ|&ù6y>X@í<2ê€üE´ÇÎm 32¬ÿ*ç˽ë¢:-ƒ»ñxNº¤¡ZƒÆÄ®ìч2Û¶“Fød·7ÆûÔŒSH¹™•ÍÛ¬*ÜŽè’Ó‹3tŸ¡’÷îWZ×âpÄñîUÃùêã¾ .‘ËØä¢]ÖÅÇ/Fø4ù? ÛŠ±}Tΰ£úUTËmÚG€^îùÜae‰–e1–@P‘±ˆkș׆^ü¡GÍJÝ«)äÿs …?IŽ7¹é8›‰Ä¹ÀZ ïX*ŽfE3~lMÃá54~5M.´åFF×¹âÅonU2\ýkVý)«œ¡~DáXô VîÖ­pñ^ŸÉfäɰNéXž¹CJ¥ÂTSM\ÃLAƒ®á%1%”¢å2fÍEΊjvêiÖwKèߺ׫ˆZ}<ÚN ³…ߟ =þ©ß75Vžj›Ë!xK÷K‡uò¯ Ø7•i6l7ªÔ¶¦9Ï=öøÓ”KyÓ×V\¸4ÿÂ*ã{°'²Dc8_¸ÈXsSŒœïtœ`ËY?1=CXTÙШáÁíÍæîRYJREûðKøbz"ÆRš2Ÿ äÝ’±Ž‰x©yX××Nz·b‚Ó#qðÔ; GÏ0¸©ÜÃëÑ‚ÀdÁø–jºû¹Ô¸_xIîž?Ÿ`]SyFœcˆŒ½žt/­7WàÉÒ .Ì» žÎwÚ{7<íƒ~°ƒ§˜¯¡´°¶Ò4mË­í$Æ^e™˜]Š vlŒ#"'´²˜®±ò…ufœ6=½Rÿ욪¡Û¢ À«Ä§õ:‚’…x?77Ö|†ÀWn™jêíkm-¨+¨¼ŠÅÂ;Èd¡úÅjÚ.u8sgÊJSìœè'+dÉ„»>YÊ:Ìîq²,g<¼´Li]ü`á¿Y÷Ò¿•Ôk!”GòÁ`xúÞæIº6èo[H/G½¥vÔ¬JnE=,C)@:¿øžÖ$Qa‘±k”y˜Y,ˆ×$(Žcy'ëЖ”~ß/FxCOÔæl)!-B@E>-a׿òÍ~"ÒÅplRø+³ùâ”QøBÈ»5¡x…QÌ8öIŽ¶Ç”ž:{‡òÜBÙ¯7Ò‡7‹<ï¨pd1[âÑ¿7mù2¨Œ‚o¤&ÌR<Ãw6Õ¦qâ%Œ“_ZL”ö ˆm‘UˆÈ Ÿ› ×Ë—1gš ¢àÜü•¡·ib„äy”–Ø’VØý(Ì»aXIøš§ãá¹ô­È+·{íðøÓIi6‡ZãkŽiv”ù ®‰01'† Iàv·WUj„jl­x×í@uµâówEàÖÂgL©Ôàr5‰®Aìœ÷žš­nÎé“6ùÐ1;"”ì·—5âÙh½ ­¢þ5p³´–‚Ž[œØeî Oò=ߨžs¨›¦ÌsSx'ˆw×Û±+¶Ò|ðB;>ü–Ù2ÝÂ:í:o•;xöò€Ì`ÝpÝ¿†òš7Ýÿੳµ÷„œô¤‰Ãv“3.j}*ä bðnó£¡gèÕšA,T¶oAów€D|bH¢nþÄJ9 [_'¦6ìßÿU‹ø>BûãñúVyã”§&É!«BÙW 0â.×°`ÁÜl| ËC¥è’[uÖ*¦‚Â_a4w­÷F¿@nÍjAÞ¨©¾Öûõû;šQ©Â]4tò&<Ì•ÓJõaºeÈhþªÞ´ã[-£ú´XsäÞ{…rF¥Ë@qÔz=—‚´m|‹z ¦‚ ø¬0¦©j,pDVY±U#ÿ ÒP«µ®`]­%dÒ#æJ$tò=I{ fç‘"ݤók)?õýtqª^^Ì‹VÊ„DJèµõã¤îýÞ7<§Q]C)w49.ú¶£]ß#­®gÔ—R=µ?´f£š^?É븭žß܈DÜÿ¾@¤˜˜¶|ý±7Ì¿ÄéŠsЕç¡>m…ñìšØÔÙk;G(.;.*Qìœ÷f`p¬ê¥PÅ…Ó†2£"õeOâÇ!1TÖ)˜¯ì÷U»*>ËL,cf%Søf÷G)Ÿ‰¯Ó.ðDž4Û'áóbaaÃ'ïQ:<®ù¨¨ ­Tù5ïŠ%4Œø¡_–ÛŠ+û~ùØDßWi)§a»NÂ,âÒ\›ºvƒk¡D f|»Ÿ^êÀ·¥0ô\6‰ b=%ÂÆúÌzŸ—%r-j¾Íô»†]ò'ݪqºÃPúÎ,GõÊ1I üú;-a0ÉÆÈ§ô(y³_l:À_¯‘p_†?7?+?ïéOÙÜî®XúÍ[W¿ãů5Z¾k@Úõ>/,(MB]¨_âÖ™½r³m²¤ÇWhÊûx0\’—ß°À/õ[ú&¤ ,Œjó„¤Ì%¹@­NâD:XÿÅH÷tøìN`Ì_ªô2à íí ³Œß–˜!DƒDòðhâ¯/,*TP}Ÿ©¸¥:® ŠD<84zõ—R)+yÉqznª¨{á/SAü"ϪãÈ=ï¡ã±/› ¤ã’±ÁT‡Ì¬'\‰¹ÒfƇҌD_~Þ"!Óm.XÌi&^jYŽH£t>™}Ñ#öwžéŽ Çí@¦&%]P5jBްiy—r!à9ÌûQb-Ã_üˆ‰ÈŒCµxæ5î.ŸQWÅ0¶™ýtÃià2–‡Ö8¤¾à¡ÿìÛ0³å¼‡âKºñÔ„H±-‘qÊãYý×Ãh]ÛK,^í`»ò³|Ý.Ç* ÷6)‡“íI®'Ϛ̳õô–èfÛ€Öz]œüö} SfϨšèàjHÄå’iÎmÖ•Bd©K0JÀæo ƒ¤…VêN'ŽðŒ¦™­ OýaÛ•×ðÆb’´Ø¢Gˆ_@ïåÖ™&”ÖOÂ?0µÉYê`œK¯‘Æô8Ÿ³÷ˆ}Ü+\?§o{1!÷Âsê=~M-ˆ•ÑDßý´=˜'«í—ng給™É.·‡ÕÝ“ÃO1]ë)~ý=Ïþ›}>ÁñsCu me¨V†:ìYÚÖ¸ä“ÉýïÂOåªÚF©>éî¿WZ\‡~»¾bˆ9½Cõ­-z–mIgÁK»IЙ'ó~}wF …K9 •˜‰™ã‰@Ð})âR¬üåÞNKæ-J=pÍɆÿnFê†rRbÅo‹gqû 1Å»*$»>}Ÿ”ÒGg•çÚǬ´[Ö‹^•Ï<Ü™§œâó(˜ç3´ãî±î8\SndÏú94ºêÕ”ÖÞ#hJezÛ<w|Ìè#Z\æB@½˜HêŒvœÖRœe‡åýîù¬+ƒlÐ~ÌS»€ ßZñ2+Þ0Ž“{¹Š!9¨=è%wR•‘‚¡ç/u S_—p¯¯=ô>  ¸«¾è›’ĘU`ÙJ,':ÉYˆ'ùÄfpj¾®’¾¯lÄò„=ä™[땤!iO.—‰ó¹.ƒ®+ŠOyKÒî÷zÛƒ˜Nq¯ÿ(ܹsx„òÒïƒqŒË¤|ž˜õ’ÆœG·ZZ—ˆk{¸ó3R÷‰”„!F·1DÊ Ñ)¬ËKðʬ#rfiœ扩-fX±¦™R{¹Ø¸{•ÝT5{ç·F:éL#„„Ž~¾¸gà'½]¨5áœsó¦÷׬”ðOW¼Oz–¤ ¯hG’Ÿ ·FÂ^¨}¢Œàò"†\ò³qÚØBz]L(6b›=©·ù3cZ´}¡—WGÝjMk?¥ çP>õAúBXq‹ Îuþù8ãÆG* Ïͨ„ÑTtÉï*á—UYà ×óô1,¿ˆá(Ñ¥ <?˜ôM§˜Vp"ž¤ÚóÉ)?®úBÑ…>‹k!Cd*ûµU~ÈšÁg>VâoLsšci>”¡‹×&×F’4?h…ô7Á \®dìsãG_o,ìÔtš­ýü‹c=],K¥"à8 L<¶qm›6DYõxw÷UèBK¤ý-銮aôÐÜ&³Ý–púçCDîiIæŠe‰R;xë Ôx^œ˜ŸG¢£[…k×:¬t±…V~âZò<8R'#’ýLÿzK›ši—p6û|“»¹ %Ø+$Ö:à‚š¼À>Î&›E›P£œ¼y÷|T% 2_(úf²’4üÜ¢ÀQê¾ßK_L>ÝBæ<>?Ô‡¹ÜÝjK©á»Ú—¨€<$p”ØÏ"êïÈ 8O£yû;O¦J·¢Ò|€xcËå$K£'ƶ^ZäHµÇößâuà3y2 ß·"Cæý²“ÇJ‰ Äâ3ׯE\UTàmÖ×IZD]À¤³LãšqAJ°GðN¥&u}Gœ_û¥ü¹j'»Ž8üUÕ]#¼9à“RðBóVï±¹d¾Ztȯ6¾ø‡gÏXÊC(«ˆôùŽHxù¹J±èév,"6Ûx†ú²¬[y‹½iEê/Ù»£·7 ¹h½c©¹^.AáÖ$òû…цþÚ/DD2Æzû³S¼¾¢òM®.R‡¾+ŸÇŒØžS'›qk§8ƒ¬7Ü _¨,û¿TX®øÂ5'¸)Ô‘• Î'Ÿ“_¦º•Œ¡±pl^²îÛ w{tEŸNha {WÙ¤] àÖs©VÝ>G «…:l¯)â7t&Aß&,s~2{/ÐoÖŸëÝÝi¥v\Û6õ¸v“ÞñD3®Zp D-©úåTè^-¿+ÂLœ/´—Ð)óA‹0þ´l<åö*xž·çÒd¦­Iÿ^oÒ1YÏŠ1×Å™Á_jÞ¿ÏØS˜¢í¶…òEf›²8ˆÃ™´¼³µc>¬èøŠ€h(înË×éÒ§í!b²½ø>W²Øx.lÓßõ²°ŸrJÄ.:mÕ¼4ÿ˜`š4Ñœ3A¸íoxßa­Ð•2P†Oeï©y)éר~‘iå×–VÍ#žà»€Fâ)y·’RÝY+;¸ì!ŒÛqQ`ÅüVdöØ´ï?E»k'/•É5eA'ìfˆxò$ lÝhæ¾À®6ÿœ¹ùÁ€[Ùð[­œ÷Œl”&ÉX˜y±z:íýÎOšU#Ø|“ìf²‹Öâ¢/nÆíEr¿Ä$ÛI„?¹î3ycOõªìzÆ¡WÇ­`yÓ%#0(!·/LlE@CèØS‹ó§ {è·XÄš³?HžtuüHäë\×ÞõWŠìôGŒÜ ó_ ½&ÎÒPLƒ¿Î úÛ*`xg}°îºÔꎜ¯M`Wm½,µg>JéÐ1ë÷yΩºÌ.F¢ºNq Ÿ7íBc‚.±¿>ÄÈšwT4UÏî9ל¨H-ãƒiî?6ŽÈ:ç®T¬i*]æ8&8åBFf?Êb}pÍÂj¥`ÏX5Øô·ÔÚÉ`Ê`N–{ÂåÞ,¤9Ô$A¶Íp?Ю۵֞єS^<„$ëìÃÀTûCM¦WåPjÀ$à2¡bÏþjFâwíÈhƒ™ÀªÍÌ,PDŸló mÊüv&š’¿_—æ1Š2ø¹_áÂàÞ—EhLöü+µµL'=Ú!äÉo÷ï]m1¿«åNÂïÌÏ^,2RfgSÓ ÜÌ7w¤ËïÌRª…â\rÊ èg[xÛ2Þgö´~ 쟕¿ùM«0÷ûnú…ÂÎ "­:!CôÈk@Ad!ž;Ћy. |H¡þ2oÙ;Õ²qv}pRÝ-‰„þ“Y½aUÛÐ}°mXg±{HÙ—ðÈÎŮʌ痳]ìCj ZÄç­£ü=ÖcÝŽD¤ˆ•µÊ‘Ý!Š©§¹$=¦ƒÒçÜ ²òä`quõgš,½/U­Ùì¿àÞa‰X ÚÒã;}ÜÙÚvOÿåá¯aV„)7œE\SÎï"w =ÕÿQ«úßG½ZÍësb>¡ÃyÁT9¦EÙÇJ|þk6ÕíɪEð¦ûí•áx²§Rh±x)ªõpí"k Ë0aq3†ü©VËŒ[a)'ø}ªD¼éˆþ‘JNà0Ó3Ÿ4àYÉ%ó¨cR@¹¢‡yŽ´š©ŸwÕN ÛW\›{êR"OgƒþôQÜÑ•!w\±‹Ò'ý<厠?'^z*/Éî3ž§ç¢'¥Ði&¬ô=#I¡R™îSKϹû9ŽÍ^­M˜¤Ö:ý±ÛÊFç©Ýz»¦Øý½]6)ZÐYÑõíqðœ3AÂN¹w­¶G¹è»è¯¬QÉ&›¿Ê+IÅç:5wÅ¿L’Ð aç8qõç‰BD|攵¢òj>›¼¶O)mÖ \–AnuÁI¤¥$‘ÞL>"òoHž'á^Ûö ¦m¼sÇ׸õEÔÒ(€žî‰w|¤¶–“ìüFhGº¾.2>;æfö9ü½hBŽÓ¼>J[I’3)€ÎUÀ®eÁãeÍB90¨I†í@ó»'ÊïQö&_“nü¾´Ð »õ;ÛÉNWârj oÙŒtó&ãÞN&5C½øwÇ7êzŒ >Ú ÇÇ’±šöÏóîdï·ü“ÅÄÏ'gl¬ÙŸ<™UìÂwbÙ­é[kS¾Â3íÀÔú™ŽSÏ=4úíEÆóó¹BâaÞ7ÃiêŽ&%MÞªQÀ"ú{G`R'|°°Y÷ºìÅ“sz¡™gêùèÏ"=Ïsá±ßeË&?‹œr¸Z1dõ‘‹ãû °ÀÚ¬ZîyŸã°qŸD¨ÃlÝBVZx†Tý 8äÀ¹#®ºÍ7$–”e}wFâ¯~f$ˆ–£ ‹1™ùî8(ðV9⾌œXr×ë„öìøüÐ l×/ˆS}H4n‡g_Ç&ã*qK° Ç]ñÀoS¬æ‰ëŸ‡e&ìw‚ÆÞÊ å8ëÉ"{N¤gGå3Ýk°üÄIÉ!v®®"ƒõÊ9€£íŒÑr””M7)C¸LàoŠÇÐËñ©#y…Ú§íòYÜüAÇËÔÆÂúû&@™~Œ°Óù;Ó*£50 Cõ f¥ö4ñz…Ìf={ ×Cf¦.à¡ñðýº1‡®ÁjÝÉ“ö­0k·&#a'c/©që6ü—-±ÍWoÍ6YØ=–}ûx-ZL·õ—¼Ð«ØM*9K¿‘÷<ð£h¶¨(Èù»ªðÛvÅOÔqgðÌqíY½ñ"!™iU1 ÈÓ_Ã`K«ÆsÑlJ($·ú²î¡~@ÙU4dÅØp“Vó0j)²…Ð.ñqæ˜Ûº~£†7ö7Ê”è@°v†¢,³Ó·– "óÅd}÷3?ÊÏ z"ô&7m¾âºD!ýUÃN²…ÊMå&gdLÖßhíæ…Jj8äÀ~ïbO‡!è_‰‘“IHl-y/×|Î#ž.+é#)ûèKìïâXlç.dBýcQ.Ka~êKÂm:­h¦û,ÿâ^V„ý¢V[¹nprŸcW×QûqX¥ä‡ÍÙá׿ ì“ÅdÆÚXÉ9Oýµ# 䈩æýÙ>=AO”(ÔIoɲnõoìú®ƒ×3Õ0ûZ‚íŸÜ!SÙî)wÅ•íãˆEJ( S î­zWÆŒZ2ŸúܯÄʇ¢i.Ö§íõD¿ w8(¿X¸¥%çFÖ•Smä8|õËeN88òüžšS9¼h"µ±[øª¯¾)»0â3“³\@ä}vnýÅò•pó=»Ò˜5þú†wͧ¹Î¨}ç´Jvù´Ùf–‹Î__‰ë8ª%mˆÞ&ÎÔ/wùW–€jM’ÞòQLýïqâ-dì?V¬!1ËÔb2Í©w^aÊòš“'ò¬hJn­R 2E›¯˜ƒ¨\0&©ïº´Xä²+rêÂ28kû4gN‹¿þùj¹`C¹'u5 }±mîE–²Ó+6hußòX¦]±ÀioYaR¬©aáóefÁ„‡e„¼o¿ñïýñ#T£Ìþ«m*Á£á¢ÙTÊSx[À…'RiÖù¶½>á]:=¹]õöì£fQ7È’òÎd*Qù‡Œ¬é`”P›x6v ªë"A΄ӷ$uÞåj˜® 7¾zêP:š‡õ—¶fIbñ­R‡>R*Sª­0»#»à:ãb\ ûÿ_  õ‘iŽz©\ÙˆZù5I7T _{›DYÊõN"â±AÕ£ö0©áuŠDàdO ½!Çzò0D’ | Ò ®µÚ>0(tZ1[~}5á+‘Ž,õ­ép£Ï•b¿NKC´Ã.M3ª‚_3ªïÇ}]æM_ï5R !/eC%|3‡äáÒ]¾èzPIôùÇy›´²œdܳsЍ¥n•—îæP¬ y\ÕwðRßø;MËk¬åÄ@T¿1SžDœœgõÕ5FæQ_-ËåO{¯§§‰—a›w,fð6Á,+š Ùd)ƒ,sÑ^ø“T>zhšúÄ£íK·°Ã1æýLO=puËãQPR’êô›yÔ Øß´Lz „zX² {U3¦û즉3„ U=AMK©ù~ûÄ„pÖ`¯OØE*~ñ¾†€6¶&Ñâx%Êùg§ëÉ“÷7Fmp †ÖKÞË„7ˆ®Š!¾ Ïo32&Þ4[ê›î…Õ“Úß·ž™p=ÃßM$O`A])A¦éíͽ;*±Y58ÃË"e´š_Æ`Kí{øö+Míö˜Ý§’$b¬\í™™âRJì=½›¯éÈ‘‚­ùös“ÉêO0îã¥x’ÀbäLbå½Y6”)ˆ“õל+ã¹æÜã-CeÞ‹‘0F­XH:;Ë·|YŠ%‚ÌÈëôF ¾ÿ7޽Lµá`Ï鉀~<À_}>—ÛéÕêcOmq[v¡v;¶#´Œ“ÔLoÆ™ò:ÅþÞûE‰ï,äªùÈÛ±jXìHÞ¿åYAÞ•õˆzÖ2týG»d.LDö¥ÉÎÛšz´kmrQ‘î€GܳÚ«ÕS—%Ül&yˆ UjÊÄÊ]nþ´¹䪆÷)DP¦9ù±½‹ÙŠéŽ(‚CŸTÛžOÛÓÈB?¢Òø€(6 Z -¾cöhºZ`Ž’Á>è‹÷óKo¨o"û‚ºBÚ#2#Åmþå}Kô<ŠjÞiÓ9x1ð"þɆteV*2.H¥öFå†ýó\\÷5DçúX3ohÄÔv¦¿u‡êœið®BÆŠyï ,â&48W†—تãšðPŽOWùë0­xA1ø´ýñ™Š„—Õ_U=S;]¤E/¨ô¼„¼ ¬OL»ýÅofìBtI<( š*±Ežšž¨(.}½JF„%÷+i0€‘„vZ‘Mcèf!|¾ÑY•)Iƒvâ”g?Û9§êÃõXpS¬óxÞ »,¾#ýõªolÁÝ£=‰œiÇ’î $›\Jd¬Ãаƒ†þñ=µ½¥åvæ{€•«õÚOn.9Ka­Ô䊻ëViÙ½j ‹™ýFï$àÀ#ûލÚÐézôs¦l%¬â”¨ñú‚â#1ÝÇ\„)'|ÐÙTä?›už`úƒEIÃOYwÔ1±ï W‰MêW±ÀÄHï‰)ïf^`œQœ©Oû¯‚À¬ƒ¿«êâÀ¥™tÄ\ µ~38 Ü ÜVÍCãIcÀä&ô–-'Ù±]5Ô OS·Ë¾w¦ñ‹S Q•ØÂ–wvv]Küéi‘ÙÜÍäòÉfÁw(ªÑ©„m½K‰ƒÞÑæðvêAöEåZÝÓèâûJ¸8±FZ›kÀܹ嘸" à  IΗQóG«ªŸ¯Ù4ùÛ%…AüÑ'K×­Såš&®=šô;ò&#pG8+Î|ƒ‰ÿíÝ+ÜK—E(Þ]uhñÈ]äj‹†«%,ƒ½ïYªÓ€‚ž %dì¿ Bá2WMrí'€t”}]³&ª>ߘufyîYsîpäTõ¿´ýl&ö¾Öö¬v»_<›8OC´õªIS.ÃLPHê¬J˜€_ÙV¬ž‹å “å '’$SÔR¯…ΜT?þ›çJ/„€[\^ù¼Èßç÷@­–&l ¬ÂÁ2 O\–U].+kØäÚk«q"(EæGÏ0)U»®x"­š¸ã¤#ÁâÂ$$öÔD%‡¬š}oæ¸eB§×®; òŠ }Ȩ0Ò¤9iO?[tª¬f2¡µh*±:Ÿ!ƒÉ°qµW?2à¸v¥:r5}ˆs5ÜZä fÐHøäŸŠ¤Gªc¶öÒÉ-åxÞ]}Ùª­¶(:âÃöåqòàa~%ÉÖLþÎsÙ5‡q¢„ßJEe´ä4Ê]Œ÷§`=~³ÑÇÓbãljvî>¬í"°ÄÙñ÷T'ú øµA_ª•Oèt}ˆ­™à7Ñ#©š±ú²zmÞåØã„Ê™fè7d5à™f±øBí°dþ²û‰Y—ˆ5S"Jîédg6ïœNÕ»š…"c÷3apL§qÏõN8VÇø0‚4$ðÅåšõÁ3×|<—èÛFbzAº¯1‡c¸èžû½'s ³o‡÷ó=–Å_XR¾ÔJ 3æùŸV²èvOK®KSõO‚Q)êÌËÛkÅ‘ŠÿÇø`Ý´¨{ÿmû suPJLõrä':Bc©QþPæ! _÷S‰MÀ>ÉôD¼¥’0[~še”Zž²æpbÒØìé Š%Ú«{: )çwRÇðA¯ë¤Ôî-g]?mŠöÝ( ;g@eãA<¾Ó>Ƙ“˃9J>ÿ{Óãǧ}VðiGL'–¸ °È{Hª"Oü:äŠÄPôúuD(fÍ1E>Ú|[~O ÔÊrϼ{\@]°uiWý¾£MÂ†× {€°3ÍÐ|Ýí/Ï/ŸXÀÀ2­Í(!tÖ‡0úÔ×ri†Q;.vÕ¿GëMäˆÅPº€@C™…CúG…~ú 'b阹øCi ?$øºp¨`Xü¸\UØã¹ÎI‡b•U„½þ»ÕÄܘÊCrE1ȶá6 ás}ØEhÛñ8ƒeQ¼P£rYDÜ®þ?ø‘êЧ‚>u=8ä*‡à­\“¥cýça³žPøJdc› +¥\c†Æ$( Èï endstream endobj 1565 0 obj << /Length1 2924 /Length2 20957 /Length3 0 /Length 22603 /Filter /FlateDecode >> stream xÚŒ·PÙ-Œ÷à8¸»{ðàÜ9¸»[°àîînA‚»{pw‡®ïdîÜIæþÕ{•*ÂêîݽÚöþ 'VP¦2¶5ŠÛÚ8Ñ330ñDdUT˜™LL¬ LL,ðää*æNVÀÿÊáÉ?Ímmxþ°q8d¢N CY[€”³€™ÀÌÁÃÌÉÃÄ`abâþ¯¡­@ÔÀÅÜ ˲µ:“‹ØÚ¹;˜›š9âü÷W•5€™››“î¯ã!k ƒ¹‘ @ÖÀÉ h Šhd`P¶52:¹ÿËŸ™““#£««+ƒµ#ƒ­ƒ©5ÀÕÜÉ  t:¸¿RÈXÿNž bfîø…²­‰“«X™mAGœmŒPt€²¤ @Þhóc™ÿÐþ.€™ùwŸþåÈÜæ¯ÃFF¶Öv6îæ6¦s+ @^\†ÁÉ͉``cüËÐÀÊÑtÞÀÅÀÜÊÀdðu€¸"À”áßù99˜Û9928š[ýÊ‘ñ—P™ÅlŒEl­­6NŽð¿ø‰š;@uwgü»¹–6¶®6žÿE&æ6Æ&¿Ò0v¶cTµ1·wJŠþmÁÿ–™ìLLL\¬, =èfdÆø+€Š»ð/%ó/1(oO;[;€ (  ·¹ ô¼§£ àäà ôöüSñoÏÌ 067rMÍmà{‰&ÿÁ þ;˜»´˜@ãÇ `úõïŸßt@flkcåþÛü¯3~ÔP’§ý;å”¶nOz6= ++€•ÀÁÍðþ·—òÿoîI Ìÿæö‡?I[÷RÕî¿i¸ü=T/ 5àßälAÓ Pý~m&v&#ÐæÿçøëÈÿßäÿòòþÿe$îleõ—žê?ÿ½µ¹•ûß ivvm†¬-h?lþ×T øŸu–›;[ÿ¯VÒÉ´!B6¦VÿÒÜQÜÜ h¬`îddö×Äü· ïVæ6@[Gó_÷ €ž™‰ét •3²Ý)Ž fý¥‚6êßÅlŒl­ ;ÀÀÁÁÀž 4_,ììOfÐŽÝþm#ƒ­è”7ÀÄÖþWK9ØŒB¿DÿAFá߈À(òqE#n£Ø?ˆ“ À(þ1%~#ã‡ßˆÀ(ù±¥~#éßÄEæ7q‘ý@\ä~#ùˆ‹Âoâ¢ø¸(ýF .Ê¿ˆ‹Êoâ¢ú¸|ü@\Ô~#õßÄEãÄ ²4ø±‚, ¬í@ÛóëbüÇ×ÀÑÈÜÜÈÜÁÈÙú93 Çß 's+cà?r6–_bЀš;ZþnÇ/'N¿}‚"þF †F–ŽVŽføgû%vøCª‡¡ƒÐ hâô‡˜ýoñvù¯Ìÿ[þeÏÍúü€JcôbQ4²µÍý?‰±ý’X[ÿ.د…`ü])VPAŒm­¬þä º)×´ŒÀåø¥·w],ÿxñ-„•Á¥fUÈä·…‰¹Ën©mÿ 21ý¤7ýõ5üÓ”Îïj³Šhæng´ùÃ$3ÿ‚È[üA³cùÕëw ÂXýº~ëAÕý##гÀø;;È— è>ù]PhgkÃ_7¹é”@£íoÒ Ÿ¶œbf%j÷[ Šaúª°ùWÿÙ˜ÿ–þ»û Çˆ4ú ¯‡?L9þ’™Ûþî1¨°vVÎ$úòb´ÿø/ä tüëÆüÇ7Û/¡­ÐØð>sÿ-ü7ffñmbUâw4vÐ!G µù¿'“ý— ÐåÞ±ƒœ8‚žíhƒ²ûŸõb%÷;,èéct2sþ1T ê9¹ÚþqäÃù÷¶€bþõ…æhdëðg @sàòvýcWANÝþ€ ¨î@Pû<~syò:ü‡Á¿#gPÿœþz÷A/Îñ_w@ Ð~iÞÖˆ7Т.°í®Fß•~o‚†|O-…šÞsÉ¡Ýù&‘º:#`ÃáF(q¸uuGŒêúý2ѳçIs=LHK¼bë£×“^¬Òô^+üâÖÀdÁ‰Ð—þwpô*ï÷½ží½>ú[B6ƒwJ‘çØ;s!+ä½½sí“pûÒ_¶2<¿§¸_Í!ðTö>R5BÛ¿x–<×0s‡Ú‰þ, ú¹ÊìõÍ zöä+‘T,-¼÷i$k¡§æ&KÔýœÇZ… ‹c.®&Î;Èkô±i OáÃ$)ìÏ’¢ˆ þ…,&j°±~"¯ÑNâ3-Itl&+‡%n‰12ïÖ/Œþ꽈p{Êúv4uv'È 8´&®®âyò_‹út÷‡BànChe]¢aäÜ=÷·– ®5N®¥OÎê&µÇð)Ï(|ízE‰®(ä¿.ÛÖ#è_Ò©!õIÓœéÖ\tqªŽ¨ ©ôW£ÕŠ9K§@oØk™ã%á&h Rð¾÷îˆÝèì6¸ž·`Ð{žˆÌYý@Ô°f³©{|7à=<#Û4Cãfýuk_£*cLàt‰ÁaïmEŒ‰'“h—Çûòƒì£L^cÆê3¯É)†»b%!¨õáéYHë «ÝU µU?ìðµAO¦¼ógkñ>¼µåï2ë“;ñ—çR‡YcÄ¥}$±‚ 9ßc©p ­Ê>Ê+ ‡1ðF­ÅD|¡5V¯Íâõ®‹»ËÂØ·è×P¿[p.'jËglµ[‰–l+ÚÊ S`=•æpÚ)¶G²1Hc;wÖ:ErÕhïMJËÚËdiÓršú6<’´œQŸ!hv•öÕ0cë…f陼ñ@¡~@!1(ý3?*I@ÎE)uT©—êôÒ“lèûò·¢ Nw¨³ÆÉ=Å9üéìã?Û|iñ ¾[pv“Ÿ˜¿MÆÚ~;„F >:ªÂ6eЧº:%~T{ÓÌœà$6ð­i-ï=Òtž63no~¸®’`}fbæeO‘=V Œnñc ³©ëíKW.cQNöWÖÎ÷åÛÚ5œ+ÇÓÌGÔŸ›6SÏú‡‹¹hP¶ •ݳ‡ŠùòÛXt°l·ÏAÏaƸ2#F>ݲúfKê„d„u»­ã‰ÛE2™Ï-]=ß;¾(z,11=%ï´Ë}ä3¿ ’'¤¢ô,ž«Ev-QÞW¦Sr‰¾^ŒNãoa™œèÚ÷&¼¯ôž+±‰l‰={« õ©;ù»fQ64ÂÉÒ+ebLe02¸¼ç´xÊç^ƒ­tµ!ÿÇ»I^öµŒk¡Ù!Úœ #k#ùqéFXD!8ú¬º*ÈðÙ .ðx55;ÝDZ:·JJée"…"PºÕìÏܤWBg[´‚ƒÂ'd«ƒÔÇïãêxŠ©Ô(÷é CÀ^„û%ÊqéâÆTrƒç°4Ìý P…é,3!K(P}'ÊÅHÒ/Z—46Jõ Mëê‚ÕS%VÎPB[§>¼C¦D‘ÞžA¢ÈFËÛT£ã‘=ô Sf•`QB~Ï¡½)H>§‹¥Ié·rxí+ŽÅ`o–ÒûæV?ûòÑ*À ¬ÄulI®JÕn¼X¿²òj;M–»zWCÊô›¡+ñv2âX›cŸÿˆÊ·°JÑ.HÀa5{b_ó\×Öxý×ÂR(˜ʽýM3]èD•hÉr›ŸV»yhíãq—Q·½9úèk7ó;þ)~7 kÊB»Ð d*~¨r ææý›òÏ9ªÓ%Œ§òoTàÉõ)N <©p¤ûyDNÍÇ¥¹ó:Ý>ôÓ¿uÙ{šesÓc' Ý‹ÎYjy K룻Ê*6Þ¶b§45\³§Kúpï9äêß‚““³¹Õ쓸|cïPEˆ‚¡fp’$0³]x %¤a‚̱ÿî×RëW-p(‡9¨ ×Ï:@4½É‰ÒçÇ-ïÔ¨ÅêyÎîÀù³Ùn`ñåq‘ f#Q-…À^T¦¿½-ÊsõL¿#~ÈØ5ßk!IBêÕƒ±)ãðe‡&Yàç%°ÔEÙ‰®È‚ͨèMÔ±Ð(ðX>Î Ïj»u´ÞÛÔäoÑ·-GVY?ž¦ªØ<‰Øx³ 4i¾: Õx¶:`w«j¾r‹•eÏÏJTm9Dzq/ lêÛâÚwŒ3lù!»m'E+ye˜p-Tv©_08 »™HŠ=1¸ªñ>¥ÚÒuÁa ËXZJ7xÂp›Àšš>Ñ[y•S´áû}ÃA–2 ÉŸ%»ùü®Ó…tµQà”SõÔèÈw¼·¦Œ² #Äæ«ÊTêsDÚA‘Úú@ù LÉÒëÇUÄÒ9ghZî×e6N´pw ªéž— ¤¤ž®0’J‘md[ù½¯ #Íá‚ýOï›4ý„ˆÖ:î7ßäÝ’öð cH&0Á_‡a4º‚~|ϘÇþ|¤Rd*\oõv)’[õYüXªZ]ËN§aù͈݄YÄbwÎDW\ÉE°*—ßä\¼GîÁz‡L°à¿ˆxì'BépÞªë‡\µWò1õ„Àk(²ÅlÃan»zq]ã4á Ây)%*p-zš36âŒÈiw 0}JÙ†g*H„JØê³Ù·å B¤&±~*$&$P‚ÀÛäõbŠ8¥Ž>±Á¿ãà>0(Ä A3j.Š1LFaT“O7IñÄØ-L¡ çN¨M²|ýáêLàíÌdd˜MÞþj|Ì{æÛœÏdlµ@ðšú/€ƒR™=:—‰\gÅCÛfžµKþ ïw bõ£%T;Ê#£ãL ñÕQÌëÔÆXáŸHŽHBó¶ú)è`£·7\4c)w¾$>&¶HBÒ% ¦gÆûßì gON =-py­®HLf­¯ýÐæmù€o3°mĺQíF¤>‘ÃL,ȳ‰¹…Öœ´‡ŠåDJØ»‰%HÞ<}›h¦Ü ÔòHËŽƒyF6̨“DO!-è‚`ûNå9\®=œ bÞ~‚ ï‡3w«7XÓwXA§pè: @B–<=†FÆ^nÖ@ƒõGbV>V6~s†³§Aö=HŸº §òzºgçMÖ÷ÎD4„;%t)qÉ*K·ót Sìñư T<ðÝÛ?Ê3"¦ ’É ìì;Ë®°|+t<Üè–=uãÆtÒ·9l«š‚š¯s‡Ö+œ>Ä«¬ŠTÆÅç*ÑØj²ùúvjÒó©–Þ¥íî6Ëéõ›·ÂÓi‚Sf^±”Û—D®…¡%‚•-lmÏ}çµW-ÌP|¢†â+ò£fÖîÐè§ Îí9›€`9)¢†ã—ðÉËÔçñJËŠ:„/o.;ä-:“Ûñª6–÷iëaÔ€xsSŽ¥²s“éËîR’~vo”I]h|¼Mçª?íbî~†6&•’aÆ|+[?$ø–¤?ݰxL±™àGG³‰QÓÔL¶C}{5Ÿ©•OääXvjéI~å½ cø÷¡~z0ìs7¯W1Ž/·[ÂÇ,?¬9ï›îú&<ç†ÏGõ¦d³JœJØ{_Ý©'/¹Ñ̉›>Éè£ åáNoì0Žã†d‚ŸÛ>Fô€Î)µ1=q¸0Óu[¯œYºC™‡ïá‰Û|bØP8cd©`ë3à¶Ï”[ÛÓ{W4î¿#9SIˆ¤òék¸RÙ ]!a@É)cΡ0XÁé¶?…X 4W÷—ÔÁ'Y8WÕÛŒS¶äÅå>ºŒMó¢ ýfࢎm¤ý•llMS¦O ~—Çj ߺ»¿ê¾ÈÔûàdü`ülQ–Ñ kçÌà ŽGoù#\1ÃM´¹fŸ44=Ö°yõßqs ëñÙ”ŽH¢ßaÔM5Ÿo!##•ÚK%G©uStb6{©iRÝO}~¿2Ái,ß›¿?h¯l{‰[½Z‰ÅãˆMãBHC"Ë7M˜â~´°mÁ-'©ý&e€=Òln …^;>ì~W†Ðp³›®ÚTÞ†’ søi¨¬²ŠOl6˜’÷ÝK3 d'8cÄ—÷§æÀꀠd¦â†óž$wÂÐOåÛû$EüW» ‹tÌø93uæÛ/¼”×%Soêu‹ìQø&©~üô}èf—èBr¡êÅLè"àéÁ'ÓZ•«xšsÔè¹8|”_ÁÊ †1N:È(3û´aʘêÖš[#7}60£Ê"xi*òCÑ¿ƒÔÞ[CFZ+à¾?”®cæV(凒ÂŒ‚¥9ß­š ø^|A Òæ‰~¨Ó„|hœÂ@šÕXôŠ'6“ Â8!ùðò^Ž\b঄d;Ü׳™óúõúZ¤åõ{Ñ9è=t‡6¶…ø¹÷¸÷ÆeÉÝ .Õì_ Ž[2ؘ}¢&J´MFü 毎å+ê±\ï^Òf§¬­ÃýÒVxÅ*«eŽût2>xU*Ç÷ÔÔ†4H¯‡:a:‹ÏïFßÕïÔtµ ”Y _×áß§î†nK.•9±îÃöÏß»;‰YÁý`…5TLQS  —¡k½±TrU R&BB³Ë'!L0ÓgM³‹Zg_ÎÕ‹ôh˜sY¨…æ‘=7Jî~ì}Z¨É‰-/ñP Q-MV^PÚ3¦!:°’;Ã^Œ6|k1RŠáÚî¬×_ ‰CÀ´ÃZ¨×iÝËÉx¸á«xqõÅÙäj;þ‚RN*¯u[pø­½EÙE*5üHÔIÚLmVc®úàô»)‡¼íÖRŠS "ÜóÖo¼z9êÐJÜ“ó„\J9¼4ò­S•›JèöôÕñ©vS8‚Öõ“Þ^ŸÅÅîÞÔxÐ'¹ûš@†!hÒÄI˜¼œ¶áÖ§>ºk{zÀú”A¹M«ôâ¼öÉv»ã‡‰$b8ÃýHI0ß5ƒç–sBÃ}ÄÐêln´ï8¾+åç o¤éÕØñ†LdHkšÐ'q|G,]œ¸†BÞAþÙ©x…2ê³òŒ¨”ú*:Ó®NTH6"*;¢ Kª4EÌͺ\¢/r‰à”Z-]¬È¼*ÍoO™ìíÎÛáÝÀ¦lw><(†~Iuñ¸8Hïÿt ]º`‹Ö/–Þ¦´–¤¬6p;Ç$Dì¡ÙÇ‚Ìoõ —ݹÊû\•pÍôÄ! ß1}BY¤j‚¿ç›ûâ£Öìã¬.1}3Y »Lº,š$½À Ö\‚äw0æcÒ t)îï©’ÑA¤µ€É~Ó¨F#šVa4pÚ’JÌUq5ã`YïI% çTCȦ€J—´#A=SYKvMÛ>Û5Œ]‚’ì/Ÿ¾™äCú`oœIôÌ>-6œŒ‡Òe£æT¤ì˜Zë@ˆq½m„LÉ^Ô7•cÔ·ƒ.F9˜Ø>ba1‡,yp…£bÔê{¿ãÅ+R´¦càÀ±3§~¨ö•¢M$< Lëæ³âég ý’})=áêMB³âYû‹£·\ˆÄ¼Ã —“ƒø4}2²·ƒ?Ò ;Šd¥q“ < m¥Ó%÷m¦Um¿â»Î™¾»dëž‹ôŠUê°'ˆv^NùPв®ü0o+9ÿQ»fEÇ|^Åt(l„$òëLÙRß­xƒ"7,ÞI Ä(ý/Öˆ·µÀÈË?JI 7Ííèúð4mFÞõ–¤³î÷D§Æ¨ kMm‹0Ûüd§J÷M¯Ù /«oª³)!·¥xŒ,ÊX‹LXàåâxXEDbxåQG\Hø|±†¾ rówΆÄÍà yb<<ÈŽ¶†5ÞPxËìÛ8gùâ²­dÔÛ¤eÈÓ 2<.!sº)a>fhôžœé6š~ªöÜ-çãKw9½]ýº5æ1Â÷€0v‘44•¿Æ=潎ÓàO’aàÔ˜:’Bæ~4U6Ÿûñ £–„Ó3ÿmV m‡ 2 íÚ—H¡@8®Iæ¦Èð@z˜|Ö±²¿Ü Ó—#¿9ƒhì–€‰ù®è=åÀZö‰Ä[zoÎϰ³XKôÝé4Ø_%Eª¢=™‡šƒ…ÂR64û¿ìÂTá:ÈÇRIÀ"àÙ¤ sìa´Eçq›ï°o¢‰>ËÝÖRºÊô !ïÑ¡×Y$©¹|q—04qIo.¸'  › þSü uº±MB+À$謓"¾T¡Ëík=…$:NZêëIA´9?ÊhrΡO€–7 ìøA`jZ§>÷@ÒÊ¥Ê]ájéÉ8bF‹2À ­ÅcÚu—wÚ Ì¨;©úHQ™ëÝ33y.S£BŠÍÓ±ùœ’Ì6Ý)í9dŸ“:zÚ"\FmLqiG†3žºò‹é_“ðÂÏØñØF†Ð®¶W@(ªXú3Í6Ÿ–àûn9Ô÷Ï9¸'61kº©Ž-Ã<ٺɲž½ÜbñýMÓc\ÓkÂ;N|Ëj¤'_ÔWàXã¼{Pý÷}t&儞§}~D =Š·vY¾NO±Ú÷‡’Ï0y×.Ñö|DÅq›rš³Œã?¶ÕȃþPÒq½û„šHSHDŸ`3ÑõM'¥nTÚúýI°ZâANFŽFËÿ• âOr üC)øB„©nZÕSâæ%J±dÞ\Q5᢮Pi¤ñÛT¦ùô}ðÛ*å“&‡.Ó¬iÞ{•éóêt¹™ã’þRØÊ§~åGú~¼”­±`„›\µ[WTJ« Se©eâz/ÄëÔc]N‡!?_iX_öUÙ| ØæÂ«BéuߨÙ~îÂÇ,ŠªÀˆzô\M‘¼ì “Ð\_ž+ÀÿýQ­†œï‘,-ƒn@$¿oUÖk®åaI~­rH=tõMf‡¿oÌQ¦Dÿ"4ÃêªWÔ=«½ÎÒaÕÃNˆ*z!ä :øî’ËÕ½y’˜åxÂ\Ö¡ÇZHЙÊFÂÒÎÎ6ûk“_ÌÛø— Òìc#ç}O¢»NÎG}T­“Zù3KOÒø{!vœç |%5ó²¡õnª7¡pãü!T¶Üª÷«Ô oã±Zá¨"/«kˆj TA¬Ê´í·ÒÓ­9â"y…2oåÏ™G f—£B‡ô®*tD7†ž½Ð2ûqöH%Wpqgé ùDÙPa9†\„jWi úo¦¤ˆŸ¡Û£yg|ŠŸu#rJðo>2L„¨gÉÛ„ˆ$Ý…­ÆhM`>˜Vœh*—ÿ°â?òÄvYŸ@t.÷Ú·TL¶âÄ4ׂ†%¾Ûª ¥ƒ?p—}¯–Þ\Χ:ôË|³à n ‹<õØòs*6Ðs¨nDµ3óçRíí')kð³‘2_|Mš•Ÿ|ì¦mžÔŸïH'Ä´‚/÷W¢J|,W·áÚ/¢ÝäÜbÅó~ÌØ¦[OßéýÔç•ùìT÷xðó‹âqë'æ]ä*²X|Ü<Šãω†¾Û(K^+Ñ®_kó˜œINÍÉ‘ù(FKVëúìĽ‘²È`3ø¬‰¬Œ¸ ð1ç"§´“¹júÁ²;vm-¸Ö¬cðËóaº8iç’©–Ø~Èvá¯à‘øFc8KÑúO³¥I¦†p´IÚ(Þ?F=NêÕgHœ¤Yã‚w÷~ò&xø”(€’ô©/UàmAï«PåNKh0ñ;ÕëvŸöb™(•ö7 ×b^Õ‚] "ÄêŒdøˆ•Ök眨î®nóŸ/PkƒÒ³pdÀnÀNZl öó…2‘å<`<ŸŸ„ ›h× PË îÄÎ491^÷{¾Wů¤¬“îTÁ®þpëRGZ͉×:È¡õRF8c 9ÑγjÙ÷PI¾¡ÛNtkbêì ˆ2mÑ¥BzˆÕY×`‰@xhi].k-yß÷×ÞqቮôÝ‚8‡ð§¢hò4íVŽÛj/Z6<à«R ëÒ ê˜5¨N©[žnð牜ª_õ-ÐìÔM% çñ ”IYRÈñÉ ~FÈ,zd õv´®ùI¾¹¡D^3+¨ö€É]øÄ†ùš­=%™®`‚˜Š,Ó Âµ]¼ˆ®dµþŽ$^` Ÿ;Ël¼À´ÔÛ Tž=ÈSO9u†™K°eFxÛeo%×ùô_}*¶=Ñ݉ñ0åŸI”`‚ÒñÜ(N g§o7§ÎnÊÚæ%Eå¹Äoö(ŸVõ\’PnôÕÓØåe©VµçÞYDÿ(&'»áßî½ ¹¡bî†ïQÍפP‡±¡öZmbÏñ’| è÷).^§1khDÕ 1ÕJ*Ê ßˆ#kÉSÆsFoÒd)ܵZ EGÿ!°mÈFÿ>=nV\‹¹ýäµ03¢ô®…a»¥¢§M±äã®À,}n±6 rÌÉ”è[E—4¤‚)ˆïôbÈÝwaYs™Œ;˜û6Öt.~”n~ag% æ|ÜáÔsdŠ¢1—± ±ÃÍy%ªr`+—b‘ELÉM»cÌ îd|ã^?ÖµÔSO-ö=?FÜJ:v`6]0á½çJ!%퉕pfŸòf?2Öòóç| g<}:¼È×>dgBN$‘ïçÑÝãä_&CaõîŽ'ídÒ}3¼V°+ÓY‘¼ßã¸C®ü<Þ¬ôo§˜ ½ä•á4Cz ÊÍ”8¼ÌÉ;ßó>%<7ûQt•9Zs7M' )6.u]íÜÖM ~¸˜Vy> Ã̉B¬¸JÕÇ×3º|™¨&×1 ø˜¬[¼:/ 'µëã­[LA=90§ßª¿°cÊâ´¦Ö p2½ÂFmñˆ7"Õ…’‹±Ú «BO€[z&“†íP²ã%ňå´F¦ª9ÍÆ¬Œßµ”l°jD?ºçíöéHßiWïøe1éÕ¦W·|übhvjßX 5KräüIÒZî4“3éâüÔ`zÜR§¼‹ÿ~f<'ÙØf÷¨ðW©S£I”q˜é}¶åʉC5sd±ÓFQ‚AlËfuz“ÂmÏÆ*A“¸gOÊe}‹JÖŠM›]mý9µ3£ee‡$_z—ê öœW °vÝ)4nó1ðó½~ C5£¿3õì~#B·NÍ®hü>vc²ŸÄO} O’o 4©‘M»IÌÄÚê ²¯sÄ Jô¾üN¡#_ÑàŠòÝÝÁxŠÐV3|Uß#ì»3Á€–Î<¯ôbŸ?¼m‚W8¡¶Í¡»®ÞþôµHÚà¸}J)I;e*#N(Õ«øÞI‡gB¯Û)މª¢/búgf„y$•™æÝÊ"Ë:÷këNð=!_ÿü°W_`µ+„‰øÅMh•ó|…^Pó]¸Ãù%J^D‰Âñ”:^Û²†¶#Ÿ¡¦ýà%Ÿ‘¤õmÕþƒ^pÑW†‚¬) ¬Ë-™’¶ûP¯íZfm“t½§AÓó½2™]r‘ö`eú²Éwi¼­9Øâ˜üî™+]ó{Å÷‚ÐM!_z` ç2TŸ³®Lvl•Gx'vº ì,倶ð{~Áe_“yÑN !˜Ç…nL|.ó‚ÞL#› ›¨Fó™ ݺbL(°s±€ï L·éÅòÙÕCB„Õ”§‡Éôñ‡ã´WN.UÖzø‰è=)úVS.©ˆÆxW³Ö+•‡*<|eð“;>™GñÖl3Øn}ŠÕgë{b@ŠìÞœeùQ"J‡žÂsP²¶& ‡3ŸÌ „«»5l2,d¡ú†ÏC.÷óÌú»¢+ÂT"J ·¡³ÏÙ fígµ.¿A»¼QTd)Õ­…8Ìø¡Êx@^PЦ*Zÿ‹Š›'ìÒn¨ùU ´c‡EÁë ‘Õ£p¿ üñØO+5úÌ`˱>¦`@ez~Cݼz·òXâ&ô£ÅÁtoG‡QåÌÂ÷ ­4v6. ¸¸fDà=îÂËfE(‘F’”m úGõ(’Åq4œ/ùg{tB?O9A$VÔKäÇX܉Ë[xtÈUEÊWŸTЍêÊpɨhdëÍY¼1¾)®ï$4PôŒó‡}Oÿ3ÃEmoOm}Ï9®92@’eÞ3þî,‘å´ž;oxpµ¸IDNø]Wì7N;ÆáØÁyÉÞGâ5²¦'~·µèbãßÛL0Tè>œÆc‹Œº9W¬èŒBvPÝMƒïMa£FÆÉÕ:V†¨ˆÚûHdaèö¶2[ƒ/fâ ¾¦JÀæ ø03îBSâÝ+®}™ôé _²ÆùlÑÌ’ÉLôs™ò—d÷mõ•ŸÏû”‰[>üÑèìu‰.Ò^»Š§Ñ¾²] p|wÃÊ-#I3®ãø‹b17øš7¯¥f …ï}òŒàR¯±–>2¿rÚÍlÙÔkJŸÅ´ÍÊô|¯B¾Â¶ÎÿÃŽ$›ïÐÇÛPµ³wµX‡Ž>_ÓG)øùþ§bS‡õ zÔ<’õŠ©ã~í¶ fë׺¾ÔôùsõÑôýà³-ŸÃyKç[í8#+05â@ÞªŽôKþe§§1ÃN¤eÔ[9 Ø“É8ý½O,bå<Ýø)½;Ø÷(L1?–G7×…\ŠÁø«ØˆÙ2$C¢>ÉŽh<éœQKqUÀ׳eøðøZíD£x¹\9ÔKŠ%ÃbÙûŒ´²™?ìPÕ]^Ú}Âñ~.ŒÏDz<1ô:ómÃ^Ú>°A=ÏßçIŽ…ë²A7U²f}+¦ƒ[ ƒóm_’ö]yöð¥–ÂÜS¨àJ.×ÌǬ¤„ÉF¼¦,‰£¹¼Œ{-=+}=ÎÎX%¾£Á¯ÑÐ6JNˆ£m–ΣD´!@ß´Hƒt©@e½•2èõ®28äD…ApßÞ|9MÓlʶ²…zuæÏ:9ËÆEÈ”ï&,Ü4b\R›‹æ}4æç¢;ŠÏãzâ©Úª‚mT‡…ö , |á½ã]T2[Ò7:wšð%qûŸ„Í[Ò’FÖFZšy3¾²‘ 5ßଓÚ5ƒ) ëÀÚû_µ¨Øt‡Ü†¬ÓEÇu¿·a@Xyyé’©ÎÛõU5ãS[æ&½N°Ã'šæV!¬^»+ivÓÄó=Z͆ÎåC„<Ô—@Ý(‚;ëµ •êbxíaÛ+}†ÁeÉ©fG“.HñœobDzwðßòkÜ«÷ô˜ë÷U—ûœ<Ù~8M35áxCæ³"Þ?_øÅ#¢j—‚$ƒôxIÿÞ¶êäXJ|ÉG#üéTDuÀâüZŠxå5…+çã= 䱯VÝ¨Õ Â b;Ù^¢7Ÿõo©Ã9&8 º[C5[ó}`+D¿%£ùHuJuС˜gˆšK•aòú96ªl÷mðËôØ,©}X?Ôú"êäP³Ý˜PJJ¯(uJM·K'5ާ±xoX<&—¢ðŠÍ…‡#+„0‘¿0/õ—£ØÎ¯=8˜Ü#í:‡?7ùé\5À®#UäŠÏKXï+·Bí¬ä76•cS5ßà—Ññ’Œï<¹Á7“wæÈ~$ýÈ ì^è.tQ*DZ^ziE¦ ³ìcWn=Z½ˆwY±šW|ÚÔ¨0`!“v‚ÈmתÑAUÓÍîw ‡sÑW~‡KþI\½¥‚î„É+ëlu®|_gé¬úÙ! ÂùÝ®f–®˜­„ÞÂÊ…Ið›ú@7öªöÜÌ7íˆÐ;DÔ§®EBNy(²É¨Íém»´k8ؼª?7ʱ¬aEÒѓރ‘QñØÓ­Šo^Örб™«eŒægŽ­j&‡Ê¯®Àû)¢£ÿ¸Ðâ~—³ñm裿ïXlògᘥ®wD_ òEgÁ¶k.Ìì(ï¦ú[üaÞ.ì±§‚àRé,ä@øŽ½”óp<©IÏXô÷g!S^º>3†ÐÏ´«†=‚YÎ ´D†ì²'Õ–¦²Ï臆Ï&ËÞÛmÞ© /åh2}  ÷þ´¾«¯×ñšîOÑö¡éãAGŠè¨(8•Ô°}É@ÄÊ©l;ÑHK¸1\ñ+Ñb¶`‰‚-EhÏ@ûX¢‰Â±½Æ \B‚À(=•Ëøšw·¥yÿ-Bâàgÿcnv^‹]Û‹›'3̲f°û\Oº²PUÒC1àý(Û1–üÏNË#¶mÔl@)¦4@®x‰Ô©ô.»wú½ëÒÀÁ$St7ïýîûF—9„R"ÃøG|îŒÚ ɤ¶„7Ë–‘“ª„hoRxòq°¶o¹—=„TÌtQXÜ—™¹T~©º52„c1or®YêÜßJQ¼`Ê-ׇ®³bPHUÇËP®Š˜)¢£¨yà˜ùÈÎqZûc¼ÉÈΠ–e}ù õÛÐ;sæÉæëë0÷¨’™M†WÖ¾&ËÚ‡¾Ó¯…بå¡GdÅýòþdeA},jа5F§`{*k‡¤­Vjà¹ĭ¦[5ÝbAšÉY#9¤‚ïëç§j̶U3 Øó‚êžE^;ó‰¸ãº÷Ííp]c.Úh¥«ßl¯¼¤XFŸc§•û¿iª’êS-¤Ç¦”÷ÕÏ “ôVÞ;;0Ö{÷ˆêÆÊª¬ ï–•$‚¨RΫn’:>ˆÕÿà‹ZR_òÙyªÝ7Aái×öþ@aÐɃ=ŽÜ`×ß³F6î-4A—*˜–Žö ã€6Ó»‹Kº(œ1;È›´åéÏ0·ôŽºæÎµƒv–¤r&‘¦VÓêãf%òÐæÚU¸Êî3Ó£#“–È8Ìõ q»qS|ˆ9UFh’‹wLY—ÖÞ³äÃ+ eúå‘Ó?' žÆ¨¹ UÖ·®âœ‹%””RK`reß´¾«æL€”|ËØii‘kfùYwØ ¯(·”¾¾¨¾œÐ#GŒ¬ø›ò~~ Äf¦ˆŸÒ¶§óÙs‰”Vk‘ ’n…Éǯ+÷[¤ÍjÝ÷Fž¬ÊõûShê˜XüêsðD>8WYÑd:ÎMG™AÆs`a3ï€E‡©}o˺D£º¨ŒzÙ¼ªj‡·e­a=¤Ýýì}ýWª—©ÙÜpáÀ]Áéˆ3kR>+ÜODeàRèzû¨¶Ý¨3/ß!²a˜«<íÈeåɼ‘£J;Cà]P‰•ϵ®†xüá¦xEøµÉº!þ’Ö#3xogø¡¬1cß©lL {ë—-×RßÔÏAM?|3¾Ùž¼ WäýØË|0ò^¼An÷ÀÔåáÛ«+i®ŽûÅD¶–[¡@Ñê”|2š÷P‡¯Çlþñ2N®³×8°ÐÆõÇÔæn|zÅžÉ ™GF²)Hßïñ•áÖ„Б ð¹‹¹ÌØãhIJ~µ…€ö.k8ÈeÎSØ05„G·y8ŠâêòáíîkKó)Ô’!h‰#ÕÝ·0’ö]œ9sËÌi¸ |ê41‚ h@Á•À߯o¥qs‚íïWÃÞØ…à˜6Q›½Ñ+}GðPo“+fø6jó:Ñ’ÇSTKÖP~Kܾ°”]ÖÙBÃ5DòêŽF1á7±ùíyE¬)§ · ùkŽ(¿6E-ÒÖ0…Z QÁ˜äøËƒ-x!Ô‹ë(‰¾…gEÃ7ñŒùÞ›^ä ~¸2tþÒç{’|ÞnMUjQ…"îõî£÷¾ŽÜÌ»Š/EhÈ}óÜ”ß\Ÿë†¯ÌØöÅè ¸·Ä1ÑC“Õ¼_¿ö×ëöÊG#mD3– ’SbÕ-aF¿RHv~ß'3“õ´Œ]ÝÛœP‹™Ÿ³®cKÏ#)á#u¶Ñê—Qß/Ÿ ¬-.kíâïÍM{óã(~Qº˜t%gÒ?råJIþI’O'|ûËb)©ŸÊrAyôå/z²°/_Ÿèu¢Â¥'âu%MX• ·-æR6²‘âg´z.ÖîaÚY)Ž,ž‹ÖX…„º™‡ZQvÜ·Wß_ýõÏ0‹]jð¦,Àbº©KEË· ßÓ¯Ë L##è[1Oú¸7 >©ÂŽ¿ûtTÍÙ¬(o®¤»Ž8¥c“Þ›?Q‚NŠ”:ÆbžƒX/ŠYê¾Hib ›Q¦ÅÕG¤‡Ïh ^òå8BÌn¦w<”Y> æèƒ†ü3<2¥¤^Í „¾×²ðpŽx[¹5ìÑ­3¼õ–Wã-¿£ïðsˆ¤†8™ þÝîž­ÆÓ¢å·NÑê½Ò@MÅúò§å0Nahß¼·¿¬MÚ•NvÀZ¦•¡)!kawÃzÝ|Ÿ…ÒF»5›ßOñ‘S¦¿1a0­­`ã˜÷äpÏ£ésôÕ™º²Ž§ìjœß5uYAØ/„W¤®·˜@ B€@ÓE e%Œ$}hñ¶‚”¢Hüy7Šók”ÿ 8–ÃÞµ‰ÌdåS ÌØvwszôóåņ3>Sí…ªÚ#õ•òॠ,Û·ª$wfÍžìò%°uyÄ„ MáŽ)×^”¾DÓwEçYÉŸÑõåÐ2:4Ë>í­àãŠcIP2Ćò"6 Rº "~5äxËz`’™SIÅ#:^ÓïWv9¢i±ø1î¾f¯Ëà;àßÓ|‹á™w|\À”›„­Sit=¢ñf©n`D{6ÂçËJyƒ64¸·vÅs”ž Ì û½ööWÛíapõÁW±ù‰7s!Æ7f7ÏÕ<®A¾:ÆNð½“î‡S<ñdêɳÏ'ŒmÅ\ bøo‰m‡‘!#G]Óh,2Då[XžªŒGa¢€ˆ ¦­"äÙÄ× âÇ’ …}r9Xg!"ï|ÀêÐSÐ ¤‡K ݾ´1W1²½•RÊÔ>}‹ˆ­™Œ:Jz·Á_ ˜u}—I— 'þb ÀS\ÐD™T¾~&­žÛÔÚ½;Øö“¥Lü™z;Caî­éwXg2„8DÀA:‚#Ū-̾¥fB*Ð*œA€£ZÝÁ@Ôð^/GÓ8VfK ,]ScFÔÁ½ Ÿ«å¡û}ê7ŽNÕ“®¶åî¸0þov‚š½ŸçPÞˆ£¤_Õ³%I„I‡|ýyqã6âî«8âÐî=þZ]˜š‘´*†n¾!:æ:fvi\ã+ò#Žéc^Åò|ßFœÞ–ÀsøÏìT}}eº*ÕãFsùÏ ±J°#™·hž<çÏŸÅ·q¹ ñšQºJ„äFÇØÖ匷ÜK³‰é¼q‰ÏR$Ùäñîûj¯~`` ݸ?˜ŽòðFË ï25¯hTð>ú檦z^Z0,Úļ„Á:4ÜšmJë« Dð—­84v„mâ†+[*T]Ex"^DJ$ýŒB‘<µÙ‘¯@nÜ -’Jë• P,ž±øÖÑ9F1eÝß#Ÿˆ•<.ÌÌû®hÓû-«A* ø(¤WÂ7?먷ªõ5º‡-›…Ÿ6HT¾{¤éwáóq§Ñsm ˆÇ1nf’%þ…±Ûã½àÓ7ÚÈ(ÿŽ'ê5ËÚÀ¶Cž­ëÈñÅ¡ œ„Ç|¼ŒÅºÞ¾l©ªÀå–!BÔØÃ ƒ">#>+4×—ç>FÚÞ 5üY55XG½‘«º>z Ž4:?Ï`îIö`‰˜h _9xñBšY“áµW¶g½Reíï‹Õh²©W¤®U¢¹¹‚踷.yêéÇ„9¾AµµPíkõïnt”ñyóÉÁ?]UúC\dÕçìõv9ÁÜ;kKj)~Ü×!" òòª¹‹( 񪍵 ÔFòíR>=¢Ø¥àÁ6}]8­í¥Gz™CÑîÿD»é«£_¦:ïlu?WãJìÔ(¥dÞ½ª`|p¢Iay·d"§ƒnN9QµÏ³û†Ö:ZeO€ÿ<½9(¡ßZñÅ…j$(\8|é³ãî´Ñ» å°GÊ“£wƒø/úßðc?}Ë (õOÖTËËÔ³| (>›Ï9¬-ëÑã:¸¶ï>Ùã5WP„\Ê:Û—'m)øëBÁá6ç¥Ì3B'âó7JÅùé>ËÙ’÷y,?Æl‰{4dù³±´écÆ/C™.Wâ>ZÆq„»ÏÇa‰½l²´T›/uñtï²Y±ÙŒŒ >«1ƒßµO'6å ¶º”wö ßÖêyFKÆÏôóD»‡ó¬àJÑ ®b€’õ!qp7—µIBÓj³bHþÉþ“÷#u§ÁAâÑâ¨ô'r…Ä1­¶ÖΰkõÆžÂá;D`#i/ÅEZˆwF2[Ö2¾M¦uf)²éj ²½c§!æ<ö‚—= ê‘Û7âF{Qjffí.f*» ]ÞÍRFQÃ~¤¢\0)¹¢……ê9tìÃR°Ò$+DßùtæqGÞIüƒÚ:ΰáò É’1ýêXÞíÓÔÎ6ÎUa-5VÆj‘õM‹À¹UÄ™Ìð½BÙùB0èñÑW""õmÍ9T¦ìhS­²UÑQyêrl)wr³Ñ2 /+¶¶”Ê&”¾UÝR1ˆÐw&títMFƒ<ðý²ÓÿØ-RüŽxë~ç†?ù £·µÀ®"„úEÌ_¹4U§L~§púW*ÌÝJ9ËjU$ACͰ êÂ{­)É1^¶³“>Ϊ|žT¤¾"Rz^dö8‰.äeó[º aÚf†ˆáöòîµFNïlÇøöÏ×V‚^5‹$+p_¡4ºNG.Ÿ)dØgô«a4ï€O«¼5œ§ûx]ˆjzuìæw—¦Ó'ä{žÁT~éÅŸ±Ñ9q £E¢Dx‰­hø×ê½Îñ+¹‘šP5 3*]4œ‚7±®Õ¦Ã{•¨Â5¼†6ˆ´>èj ÉQ„3U§¡Ý¨ 6)‡ò¤¾ÐÍëQMè^ÉÔðlj×@ ",X!=å¢6Ì&$ÝŸ]™Ç3¯v™¥AT1ÁIÄ–j|d0h‰FŒà-C|†ÑãÕ°wfÔê½™Uï*o„_Y `ͽL_¬NvJ]¹¾ú'¡Á˜0NÄ3?3è½zQ&Û«‰ƒr–£¬ }&Y3KYÛ¶MV}ÀœŸ j°‹wà__üïó•è}‹ä?P<ƒ¿é·ŒÊæÔ“^84}\2/óøc6$ꀨ›d0/›ty­QB’`£®gQþ’É­t  /ùdÚý<ùÃK«ÞtEúsÇmnOΕ-ø´±;º˜ƒÞhYœ À^ªœúD^­A ªÈsbÉKæ6WÛwצt+µè8ÈÎèÔ@÷aK´išM4Sª­]Û5zzý-a]¶ æ…gDä+RB¢cÕÉ•Pº ˆ:=Ç4™ÖÎ=„;'¹RG°m;×± 6'+ÊYݦÐ÷Ÿ!Z8XÅìMwiÜ{Ê ©_·f@Š«M!YLÃOÊ6Í£ñ3N`hÒ4"º éÄ ”úºì{þPÍ•£‘ÙŠ‚ AïH*µP‘¬Þ ìœ~îáÁrÎ"bÓ:‚a!f„Tš~Œy"JéS_Žó@’Q,Qø¿UòŒÖch:Tá‘ †CƒtÐ7FÕÅ› u× ±HnºJM>ò¹A_—ž˜vXôÏ!¿súI=›Z¯_š=t,…)„ÒGèÌŒVNu4¡´= }Í`æÝÌ•/…ŸAéî:Ý¢iø¶T²üŽeµðö0§ê¨â)ÌKQ{œƒuSLÝ.>#\dQë°Í˜ül×5‚î‘ÊÂph†n\Ä]œp„†éú“z“² ð°/#â5s (B3•Ï'iPn8š{p`,9SOaN 8ãÇu†o¯ƒ4k…wBÒiÆ/Ǹ lÇgÁ†Â„!g«"±a½~$>ø©«ØÍÒ§ ÿ&ævŒ&jÃ)eÂ#àÉÂs5#u]Y™Â‚Û=æ–Ñ trïJBcsßï\/åv”ßÓ|×FQ~ºDÇôE>3 \V„6Y³¨=]›o€¸…;/[.¨ 9·g†ƒx=+Ñö¦Ó$è… µˆXœ=£Ùkùc}(ÑœÅ9nJ1©NÒ§)^‹AäÀZÎ|½Þ§¡eÿòÖ;êµ7Uå{²›‘!£´ê5(©œÞ5&RÅú@¥· ®Ñ¼­m£~íNȇ̹¶U#©ÏÊ_U)8!+–IEÈ“]üdÌÕ*¬7Ààô9¤°óWÒIŠЧâ'¤¶Û!Sêlîã ×ööœ¥Ø€Ïí2…óâ/þ¿Ný©ñ#ÿÐME©¼oD•–« €z£×:ÿ¡ÌûÜk¶Üyìa`w,Õ¼ãBßCAª’ªõõÇv®Rf+{¥ œAò(FyÑýp¢)Ác’lŠ)¾Iµ ñ-q_é<ã/öÉ'ÀSRJÜBØÂˆ@žw|q~€F‚ÐüگĴ¾}³ïS·Mœ†k<ÂCd4](ˆozÒSéÿ ´¹´@™* €bU®VUÍ­ÿšz×{øZ¹È\&†.‹ã²xÔ…U¢öP­èlôìZLc]½ç=ƒ~çkÙ„'AëìTa¥ !4,BŽSˆè2U4¸Ï{S@rw–` ¢c'qh_ܽ÷†e‘Ò[XW‘¹¼¨W`‚þyq«¥ íÍR 9§©'B^î”ìQ,>±jßÃqkp²çbiàú@cRŽü%/õ²Õõ=J­\‰2Ô%4Ë¢åÀƒà1e—}ß5»Â«™+.°…¢÷c¥Qp"WçhµkÆÙŸóÐÌãô²àÍl+¹I‡Ùœ»Ç¥«E1?!Œ*ÑÅúXÿD’Û›)Žœ{Ë–±OÍcšR¼ëMÄ…|½o⬗»‚ÿƒÛÏ]VF§Ç–ù™;SqŒ˜ÕŒ› ÀÙÂþ€žkñ€®Ìf‡ :cIå©D-T4RÃ¥Ñ$ï¿Ý@ÑÅeÀpzz˜ÝâíØ?»ÜåÊe„ö¹çS!ú {ðãÅ­öeÀEé@ØBpÉ–Ôå•ÇߥópU²`BÅþ¶ëU†â À¬ë·,Í=˜}i€ßvxÀntϘþ\ )½ü·1P#îÙ 2Úóéc•uYœæísó=szwÃQˆëξí̘àÍE>qJTÔ•9 œD32?\<¸ƒKè)±÷#e¦8}WRÁ©ùÉ1—©vÀ _tÔ¼¿¥DÄ.óý„‡î«Î Jlj$Cƒ±¨ªÔf,ÃÕ"ù˜ËòãÈy»áéEßê*­@’&3m䨕oZ§œÂ@Vj]ú‘ɉ EƒëÞï¡aþHSÃS¥i† l5†‹1®šQGĬ*Æ´|=fÐÓ0ËÛ¾yãôiå°Uï‰,0W¡Å¡<‘˜«‰•àÏŽE‚ª–öÞïíê AîÚËÜ@ëüAÔuûF—TŸ—XÒÛmè•@Ã`ë·>ÍMì—è£i>Ìpqþë²è†Ô__}UÊÍþMâzr§š[V×^_×O½;T)W'Ög®ƒJ–9÷$ $2WUò KhZœ ¹Õ¹D€6pó÷g(ö8ûÏgÕÖn.²s­ L¾O›ýzG#[©:|Éç·X&£4:ZCB"œá£nüvÍ–ì´çðF€XXד-fâßü–·DˆÍ£äb•ô_IÏ^ºJ{NGÕ\Fåˆ"½\ :×V”v/ 3{–úl†ymætV*UZ¿‘G´ügœ70<øº™Qí £c÷÷6•3áÿ¶44ºj¤”–Ú1-Á“B„ÖìdÍMÍ&ŠhÓñza%ŠM³è#´‹äÿ wkîÂÜo %Ô¹bÚë“ød\I@ˆðaØÖþ ìàÔ^½skïý¢Ç­ S?CË4tøù•!.ëÐ!FÁ±Ù[² ˜Wã¬ß=ÇÆÖ ^ðܼ%›×ËÐwC÷ÄÉ^û–<µÍ[[¦Å)ÑÚjOþð"ŒåˆÔ1ÿa”žFŒCb€Æv¿#د«6öŠ’~e‰P…å[@tU£Ðà ñ¬Œ©£k™ö¨Ù¼žÜÍP9Tš;ÏAW®‚ò q£†Ó6’…àCn>Aä°gküÝM›öä@BÆ©JzÄn0ëú°Ò×ýSCâÐÉWb˜ vÅøì}T8¢œ%£WÞ|ý4:gð½b˜Úö»µ}Ë·‰?ž¾0GÎr¨2Î çJ¶Øoü·V™­çvTþ•" j¶e†!Ï5ŠÐ0W-.߉ ?bþ?öuGÀ8 ‡xc§E”ãàÅcæÁî”BˆšÒQªt=k•ÓàùþvÈè@gpáªÐf-è÷•1ɇódˆÅ³ç_ÑÙÔûÛÚ6Puä¥ Ú!r`­íqgábã¼*dŒì£\ÚA‚竚ð´û ÀL¡qš½Aۉﳯòë„•~X¯ÃàM?NÐWµ®…Œétý*—µ£Œì!ÁÆ’‚ÞéªÞ€'óû!n÷§`,ñSÇø¬³HÐ’§£ rƒÄEH.*H1ªN<>CóÊ‚wˆ´3¼çHà³-[ø.:‹”ŽÉ§¹¦0MbH“K¬í–Êj$ýÍæÓlæqÅ ¬ b’¦+•  äXÿƒbúFк».ìÚð_Ï„Š‚¾Ô`eÎeÐp~+¥·Ñ¸È9xޝr7²¸¿v?…I©›5N³|è¡~²«J3óÊ‚® ¶l±¢ÛùkN©Ÿ‡*YaIÃÁ+*µ×QIQ™&ü–dqøl鉔á³Ãå®9a «F[­f^º—×öûOÔ%€?(„ÇrÓ¨­±¿—Àƒn(NÁý¶¯a=ø0Ÿ˜ÇõK­rZó)#9šô£ÎÎZþ]Kr5NÓ¸xö®æ«è;˜^#ºcºoÕüX?a‚øÞïü äVöómuw´òkÁ‹öa†ÙåêOwœÖ©‚TDØ×»sϱX{ÄOúvÙo(ø¾×9ÕòVÁÖc¬w™›N:¢û¥öõpÂå·Oï—ºŠK\ãŒ8XòuÒ‡ÌÈUDü8uMŒ]»2 QSYM=ü\é² z \˜Þ¬Å÷{¦Æã:l¬.røÅ6¥.Ë¢©Ã$­i3-}'µ¢@ãeÂøw¹-=1vuW(0‹'÷ótrò{ÀÑHƒªÓXŠ0‡Gq86õÍÆ€ ¡í½„ZHëŒ?¡LãÊòLN®¡Ï:|BZ"k¨Ü©(r'Ù´»ŠT?sz­z¿‰ð:ÏÐË¢ÉYpÖ¶ëÈÉ×m–dÇU}ª!s r["ä´Ù v׈­f/A² y‰EŒ+á퇇 ’Ø[™EäÀ·]ÓÓ^Y3ß+­äU»iÕ?g”®°ô°». ®=Ï¥ôx9f9nêp+ã9Ÿý¸I•iOp˜CYç­,uj%J0½º»W£cµžUäuÈÔ…gá_.2«'¤8Z|<÷Ó4fÆÖþ‹Ùo)úEÿϹçÍ„3'±óÈîˆ1]/yLCB1Mô§Ì}î¡YFaª¨_ù ª5…GžÑ–;Cãð´ ]ÑÚ`Âî°mxÄ&$IU™Eb9ÂëØœ©ï˜Ì«*oD´h=ŠÐ·:Qöãó«³Ûõú5ðkP–æUË@…fÓ ˆ¦šYQ Z0rv¥ó‘LÄÁûdE‡fzì÷ÐÖ”zYIš:æÊ"ÈÐU‚ýUyŠÝðŠlbð~jÓ sf9­”˜Uœ!ÈÒ¡y˜‹x„ôo ÿ¼¬ýŠ@këw|÷á`ê"IGÓÎ7âö=4û³`{…ë¼·¥UŸE7¢ ÉNÖ7qã‹MO—+ﺢJïák~Äâ%š˜}ú¸Ö ±o¶4Ùð&YÆ·Ä]…=&äÄ¥#Ãý(Š˜U—êšÒâiŽ“·×_¡-ÛùûAQÜ]`ïffé5ý¾i]7¥ÂÒÊ”~wY”+ÂS­¼=!¨<—Ü$=fiW¥a§B!¥’.†lðC]E \AˆóC1Û÷¾¢ ÿ’®G9Þ6vU؇H3Wìx§ S¯W˜ÜŒïlÌQêÚÁääupð©mÉØ\¢xd–NÔ¡rb®[Qszm5ŒöÀ_–?öÖÊ{û‹5¯°J>²ÝÔ$B&úš l™µÀ%ÞÛ3P âû©±<ʚŗv+ óÓNFQîñ×ÒFNØŠÎwØ9‹ll*AÅ<–d7¬BäåÑ®äŠõéX,üŒ$ê:–C«@¿£×ìv´kºõdÌ„óòëQœüÕh'®àê½vóŽr¹ìMNYQó>|'œFNùgq½oWÀ\}Y‡UqmñIƒÖÍ Mø‚¡”'‡¬Û}§/Yo5 ¾¯2]RÀñåT}ˆ^h”Æ£úe§rµ×Å'§Ökô?Óð¢p¼˜uwV4)`gB1IÙó\­¹( =À3;þƒn=TóÕÀ!Çì8Ã7v;‡…I´¼äÙ~¢Ú§’–/†¨kf‖ˆ°R-( ã¾â¸©bmßÞV0]Ñ¡&0 ÚˆPáhö¬D¥Zçx³-µÐçǘ>©m‹ñÛ,–Z[SšÏî7IÖP‡sÜØ :Æ%ëYܹêrXÜ£²²\áäµb®ü G9ï¡ <´Ð^'²<§y—Lä7Zæî˵kA ÑÄKÌA ÊÿÝ‚¯ûo$p´øeWôX$øí€db¾‚¦X§¶Ü¿êW8ô(<‰`ö´¨€˜µ¢j"Êe{E÷†h06‡<±»g’Kò2c¨fËþR„¦†¹¤Ãd˜<Õ9€p¢ÝέÙ»Lˆ1ñþ è \¥oèBöX¸æf›{@ÜvûWi.ÆcÞ.±3ó‰‹â0u /?’Ð3à:㇌¾ìXŒB¦‚ª@‚@rçp³:‚œÉ*ûμªÖR£¾ÆÇÛ¢"c6ˇÖt272ë4'ýÒèÈ-Z裴å»`5† ½dD*­&ù÷§…Aéæ[T]0>¸+¦í˜. endstream endobj 1567 0 obj << /Length1 1559 /Length2 2917 /Length3 0 /Length 3900 /Filter /FlateDecode >> stream xÚT 8”ï×¶µ˜ò“DHy#û2 cKÆÆ."•1óoÆ 3ÃP)„DÿD5„´PEÖV­¶”Ⱦ–¥¬Jþ/iû}ßu}ß5×53çœûœóÜç9÷#»ÝÎQO¦{‚ftK­†ÂÆÖNNh €B©«¡P„¬¬Ä¢‚?ýYgÁ„è4ÜcHdÁ>" ZÓi€e@«hMZ ‡BJç'ÎÀ&Ä@ˆ X«–tÈDÈÓý‚—7 îóó/ @RÐ::Z*ËéÞd@$" °&²¼A_¸#‰Hé$dÿUBAÏ›ÅòÃ!‘l6[èËT£3¼ U6Äò@&ÈÉÀeÀ†è ®PSCÈNÞóGÀ‘Na±‰ €TˆÒ˜pJ 2¸;àhAlý@Ú0á@X€VCÿ*·’½T¢-'I$º¯‘ Ѽ D[3‚+ˆ¥iä% ‘ʤÃùÄ@"D%z€å£3¼=@„®ðc’‹©Æ„¨K‘Keà1›ÒÈÆt__Æb"–Îg1@<÷`äÊåúÐèlÚ២‘)K4È~ÈÝ4È?´0YÁÀ.ÄoŸÈ°(J[]ý0ˆä\jàì.ÑKn˜CÈa?º@i€!„‡™Ä@`1ÀÃþ¶h4@†H,Àô‚hˆßÕa7HùaÃ÷Ï€‚€½(xýÐjéóëß>xÃÈt5ø7|ùŠ‘¦ggcåÊ¿‚FFô à°*PŨkXŒ ©ƒBþ®ò‹ÿOîË^;"´r6Ôïz4 ÐùAžÝO+{¡°"Eàï6tx›A@á÷ò»£°(ü…þK`9åÛü¥*ÿçòÿûDfTêr\áàĉ¾5xos V†5ÖíßPð‡œ­A2àû廓+Oó¢þ$Ä4ƒ‚@²Ä"y/oÌÏk€«S!hGgBKï  ŠF¡þƒ%Gòß&|YË!VÔßMi$:yIz¬&@d0ˆÁ¼_,8Œ†5Jƒ–W@ªÑè,8€Ù…:±t¥Ú(i·äúa©HÇß–€túeéhHâ/K ½–@xP?}h@B¿!piêÒÙÇu¤ïoV’þ‡ —ôûÄ»ÿQ­ YËæ_üI ü4,¯(<œŸöò;‚A ÑÖB'éF,Ѝœ-Äoa«Öc4j§bfÖº ˜Š¾³7Ö››VÏŽmÅß}5;׳qsu±Ôg(Êg÷‘ÔXœh[Iå*Šg¿Ê‘Æúó£LBfȪ¦ÆÍCFö/sxž1lVܬâ?9øú°¹ž\Yþ—Þãkäo©­ç©ÿOì1mmõõ<Uø UùF7ñͯª-v0§ ë?œÝj6<—úè9ÛWû6W…êMÝ22"àg5saÄ åý}M +F YvྩØ×3 á3•a žÌvgr4$(NS¥£9¶ÒaŒ²E»ò®cú_îœqrÓŠPòÚ?¨&ø–`´6¿¼¹½öŒB¥ž«ªitãQ#¯üºÏ9;e\™†-ï©™”ßVßòfw£‚¢z:LëóÁá5I*ÊN˜œù˜U¸*úTïÔ|ë‘ùL?CŽ¥yñíþg‚Ó°§>MÉÜ}Ö{ñk—ÂË ¾Už®)(ʸTÜž/YY™H7¥Â±Ë{JÜ›ç"õ„b‚ÄÌê%ÇäÈIœ–p†´RŠ-[ÿÔ½˜‡Mè‡ëvM°ï÷%¥Øï(›îTúJŸn0Ï>y7ÃÖˆoŸ|’7Ãx~ ³,jÿõfÙ²wu$Íð³î>‹}ÏO;ýÙþ¨ŠþÝGÎÛgjÔÖ¿•¸yÇrdfCuô8ïv‚ÐíyN_áù=[N4ˆµóûŸHö>äïv0G8ýØ8 ŸÇ¶)«ÿô°÷¦Z÷!: ùdnF—" ä^(íi˜"?ôñ\Ë÷&ƒBü+´7ë2c:2‚’á¿.ô ):˱Kç½ Îí³üù;Wšÿi"uoâWm=5tkaæŠ3ãSÇ`ÀÚ B†ÎÞ°€-×øåN3JC qa3%º ½—ÊBˆÊa4v˜“#‚+«é£"2½}×7¹7¦%fâßO ›‘=…3TR²Ú tƒükÏ}š·Ì²A¶ÏXE¢²ªù€ôm=‘ü¹hÛsȹZ¿G}ÃÜ¥â%?'‘ð¼šSA‘ëÆ°—n>úPe”bVjü`ä~¦ì9榅ð»åúJ³ä ƒÈNd§`¸ÞvùNmîxëн›¦Ï ²ýÂÞ8d$ZT†Ç½¯Â_¹q¼H¾îSð3—DKé"fWAñ¶x†¡æýN¦É`’ к}R¶ó¼qò”·ÕLòÎ{±Ü&ú»ÜîD†9ôÏo”:ßÉW:ÃU”s/ךWHÙ:*ìð™\T3€D$Ÿ˜ æîò~~o_z&o]\[¶|lÜÉCgÇ2Tì}«)>ÌçÂU`˜x õà³#)#ƒ6N—–^ÂRÐ[/ˆì.Ê¥îÖÔ9ò•Û¡¹=ÕCõîIÙªr«©Œ¤ÃQªïè:ÆÚri»9ˆBƒfⲜÊ©_‘?/dHø_ùJÁñqm5ÎáË{hêu>éƶì¿Sy¸7né%ÃZf‹¬ˆè›°‡ï>øø†qܧ]µ@»“[U Mø&“Ö -\ðkØ–u\OC¯ì‰t´Œåù*›Ð ˜—‡9³¨ù¾ÿ~LósÆYþ† ]‡_ý“Ö)Úp[˜·ã*Aq}ígó¶ G÷jU·Ú˜²éjÛ‹Í{«šiè÷«³(½'³çǧãŠõž&|þ~rPÆ[¤žØ|“â>¡œvî@ú©Yj5­7ß„¼ƒ£·>rmö±åš –JÐiX¿Om¬§7ËŒ­h¯‡Û©² “÷eöçÈÄ0Ãùofs63né5ؘð ­“)ºå·£ô©›óºFÉ|TÅQ¿õE‰ß%¯ä…øÛH9Þ¹S,3{÷õü~‡XáŠÁýªØªÂìƒX¶ç—·ÝD>娊¼4{«Œ·×¥Ôƒ1Yº÷Oî:úšõ<ÀªŽØ-‹W:ÕÑ´°`óê¹Òåõ¾ÔâÆInwv&ðŽp:Ášq\ļU–$¿åô7&¢{ß­©ýní÷/üœ‹'“‚²Lâ,ú@åSb¥9ó.S_ßN(i²’VbðŸ¾xߨmОpïÖnðö™t}2^Ål_]—ÌŽ±Ëy¥Hòpåq­Šù®¾aP™½ßu4¾UK$´eò¼ÀâÅŽÚ{®P_ô…¾åY]à :ÿ ËãW¥x¶íª{Ù­|ZYý«°+óëŒx±3Š™§f’µ3,R½½UI“¹ñ{«ÿäK”ešÀo)ϸd]³’Ž‹Ä6U…_Y§D<¥9ÌobM5ÿ\ÅÙ'ÔÇÜ?ÓÕ.nÚã»}Â!#|ôFJYn¼fï›y›¶®-q¤Œc‹£\ÇT|)ïû:¥¨•ž†7YqѶGmS:äç¢vî‹.)¼~oUvÝ-ì]½[o¸YÌB%aáìê—Xék#¯Gg·7ã]ô3ÓòlPõ®%]5åÅKnToŒ—iUàSey Ì •Œ1+Og] ȪҩÓwtÐÞ¦iÏ­Ýáf¾•–°ãŸ+’Rö©ãs¯nˆYOPĹ_°u<ñFa•·ô.emÈ|cc3$^‘ ÝBS]¯]%‰Ê©¸“ë¶Ï#!˜þ8£ }ÜBuK×Y—9‚œ¹žîŠ 6LæëJ×%X¿(Ky«ÍIÕK"m.ý¬Ü4¹ñù“F׉EGOÍãQ qŽ‘"_Â@îÐ}ÑíÉœüš©,¦Ñù¤Aa•‹V¥'X©ï¤MœæV ¢Ù­[Ý+š5˜»¾OÄœÍT2 m°‹D¿Ð ؃eev84i:£ÿi:¸‘^þäS¼X.¯¡Ø¥p1ˇ÷76ß’sH_ÄñÎQw¾Þº›8­´‹«{û:÷ó+’õÝ=`ÊÖ:gà]÷Ðx•ŸZn–ÝlÕcµN<™«_2%Ò˜ßÇ¿-lðcMÆ‹ËÚóè‹Ý»Ää¼§˜ÑùÃÙ‰ÑzOkC¤<µ\æSü7¿frKëëd¹¼÷q+BÃ,šnmI˜I§IÛî´U»äy'§‹Åo‰RÚ‘ÖHp©Á,MÛD¶”öùÂ[Õ¡¸ÀxýíªRg†]L¬*9½¶FÍhhË™ÊG¢<¦ø/Jˆõá’^ŠIÊ,Žná@A2k‰-«PUf ;b/?Dô„åDoözñÔ¶úÝÎ…… °[jkŽ1§Ò¦i`“Ü'»éàà(9qu׎© åÖ4¦…7u+º£–~«<€Ç½\dÿ›ÛÜJábÞ¯F,‹s>Õr­ÄKEK¿ëe ‘—p›|7¥Vw£ú5ˆˆµ{UùªïÚB©ñÂFÂÚš¢ƱðË1-µ“êV^—û}fWŸ™8gú «.t¢²G+$M83âna{5¾>ä”’y$¯:¡¿¯Ÿ'9[žÏZP•K&ÊóRžNyùËl‚¨¦ø‚:ÊL?×ÚB7WþD+ïªj„øšÆ6Ûæ1ªiµ¯T±úà:ÐbÃã·ê¬‡_ÉÜuUãuÑcxð"øÁù´«`³ñPj«j„üÛÏÈVö´åÔuE¾Ž¶y–Êŵ< :kr֗ιŽy jæÒJ-Áˆ‡GHô7Øm™è瀹ŽÛn¿òÀXŒR¥¿Ÿ}ôRF°4ï]cký±ˆGÙÓ Ç©EHïbM®½õ‰kÿQpò_Íø((U`ÿPéÙÊÒq}׋¬¬Ä­©NVn À`ÍØ)/JZ´ú¤ˆÖyÈøÖºÒ§™×¿µëéÔÅl“÷ÒX×s“´§,~r6Öuíb†VOÞ ÞˆºšÙM/¥’ån¨5®« ö¢§+s> ÔÙ/‚~Á£åvŸNâz?¦tž±k™œkÍ%›ùT´íðEÐí,çëÏ7wÈÝãv{Ý"ú9ñuk°ÌÑÿ’ë¨ endstream endobj 1569 0 obj << /Length1 2759 /Length2 12700 /Length3 0 /Length 14261 /Filter /FlateDecode >> stream xÚ·Tê6,Òˆ”t¥4C—t§t׌À ÒJ‹´ Ý%)ÒÒÝ”4|ã9ç½÷ÿ×ú¾ÅZ0ÏÞû}v¿ï@O­ªÁ*n3ËÀ Î¬l@A€¤²¦&?äb91èé5!ζàÄôÚ`G' *ø‡¤#ä —IœávÊ0(@ÁÅÀÁààäàœ@ À aŽ‚)+Ä ÌP€AÁNô’0{Gˆ•µ3ÜÍ>Ì|,ˆÛ!æ (@äl ¶ƒ{4Ù4`æ°³ÇQ0¼´vv¶dgwsscÙ9±Á­DYngk€:Ø ìè ¶üJ ²ÿ=@Óâô·\féìrà[ˆ9ê?áµ;àÎòJ€Wö`è߯J°þ© €ƒã_ºNÿ"‚@ÿ: 27‡ÙÙƒ ¨Àb ¼’Qbsvwf€ ¿ A¶N0øy+b 2ƒü9 #®Áü'='sGˆ½³›ÄöWŠì¿hàU–†ZHÂììÀPg'Œ_ñIAÁæð²{°ÿÝY(Ì êõ°„@-,%aábÏ®…8¸€å¥þ1‹0~ˬÀÎ ÈÏ€`wskö_ôšöà¿”¿Äð ¼½ìaöKx`oˆ%þÃË ä 8;º€½½þTü7ÂààX@Ìf`+ã7;\ ¶üÛïqá³Çþúù÷“|¼,`P[ßæõ—]QQB_JùïŒÿÕIHÀÜ^¬<VN.N7€W@àýß$ÿ¦ÿŸÔÿ’ª‚ ÿ„üÍ'µ„þÎ^ºÿdáúÏP0ü³0Œ€ÿö ƒO2Àð{ð <@sø/ŽÿçñÿëÈÿßÔÿbù¿ þÿ$ãbkû—šá/ýÿG ²ƒØzücdgøR(Ãà«ý_Sðß‹¬ ¶€¸Øý¯VÞ_q¨•í¿e„8É@ÜÁªgsë¿Æå?M€³ÛB `U˜ä×M`åÿGß6sømâoÕ_*0|™þÛ£4Ôfñkë8yx GG>\œ<</øzZ€Ýÿšk;æ ?€gç °„9büj(/€]ü—èoÄ`—üøìR¿‘€]ú_İËüFœv¹ßˆ À.ÿqØ~#^»Òo÷ òÁ=¼úñÃ=¨þFpê¿܃Æo÷ ùÁ3Òúàþ´#x~:¿Ü»îo÷®÷/€[‚þE\pK=|êÝfÿ‘rpÂÉANæxÿl-Àÿʹ9‰á#q²ù]>x çßüpF³ß~ dnãd r²þƒŸû—Øñ‰8CÓY—&qÝR |yuÊ•9-Þ6±yµŒ·ÇYðPg£K´1^z“)H8SÝ„li¶ÆòfOøzÏIÉ…sS±µUß” jaExT¯Þëv&6ÎHÄâp¼ñ=mGöåóúÒ‹ë#Ôµûl˜‡¢#Q‰ùù¹05‹§5—JTˆO´ÈÓ9ˆ ÄSÈì\¥t pò¬vϲ @VRÈvwŸÚ+ž¥íмßþÊKªh:§_ÿ*M|óŽ!à¬)ÈŸÁÌiP5îñ9 Rx@pÕªN¤b•& PQª§ {³l,)"57ÕF^+i¾À’YG…=pÄ1®b–û¢ ÍáÇwb±¶‹ª’ÁèWY1]+y²o$@fÖÛ<(œÌHÑ3ƒœD©­.öu JÖ3ù.špÔª·+ð2•%×ÂK—Sq®†q© Ëë²qá†eôèÓú†ÌoÉ„øœS#ûAKvQ Nº~QÕªæo^ê•!ÞDæåDrtŠúJAߢ—©º~yH ‚<åhl/G“-2Gzé -"eéâyA–Ül´\ž€s>…;Àø…f\îÚúö¸ 7?ß•rfŠ÷C ºo2²ƒ—ÝZg;\E1æóæè»P3´zô_m$…=ÑL0¸HF¸Ow†ä‘ÑM—ÐÎÞ¸œdð“>abƒnk25¢!L]Ì‚hYˆ˜#¤TÉK^kí¼ÉП•¯Þªx‘µ;zޫ܆ååœwÍ“¬Îtýyj˜ùˆgÏù¼œ‰#R0ÿ¾§yæi¯å^XÃêíZÇ!™+;îëih®™²w¾á¾×qðäse¾è[ÌŸTl¦^Ái"À9‡¥âAì„Î}úÒ€·Îk:¡Îe,{iS=ÇO"…VÍz÷¾œŸ?Wª?ôVI›¬$>‘ƒÐ-U T¿dv2|Çë€r.KšxíPŽ9TA/í#i3YMùã²eaè>袧Øí`:Pu½Ì1sÄ›ðùÖ³–Ò½ÌáÓÄðC„„{ãKP‹áM¬Öfv!Aó{5D¤®78bj¢Ö· ö^ð¹`z8(Ãì>I…Ó™7: á(ªë:b~@xh7¯%¡jãz”d÷±906ÍÝhÁ/ïä(d5@&d$øË·‰´ÆQ=Kâ-C?¬W·¾%þÁ­ ËAø°.6¯QQгf-î­{¨Ã*Ä1«w”…j!ãûJbVþPY‚¾Š_ ¬Åqù<”q‰·{œl’þ Òšçóúuõè 9s„‹~ÿ‰¸Ï©´5ÏÔû˜ã7Ñ`-ñ-cbß/õ¼­? ¶oŽvË^nÍÐaÅR¾‹ dRÌÉO\T±–Lõ¨ê Á&[Çn+Û±3Èn_I’TP7º}$0'Œ)ϫʋ?\lºDå—ð(‡öÓX!ÿ+Ð\)zéløe-?§çÀò¥Ù뺼Qñ)«ˆT™—|d™7/V ²X›p#tz‹m)¢%)t¦Òž|À»piª¾y«7n/±¯^?MUác -¡MÔ´r,{+®¯Û‹`gùfG”ó²bÁ-!-îÓÓëÁÖ÷lˆ°f_÷oM;gçà~dªé#wkÁ<7“j35PáÄŽ#c´\@ÐáçÄð¢ž1R%‡ÅÛŠÂ}[÷ÄÂúk¬ÒŽ„Ì×|.¾…产òH‡¸I;Å¢1ƒµþQ×á%ÜB5GSCK —‰5ÞÌÀ&€yÆ[%·'½µcnÌß½p(5p´§ÙÎÞ„ôÄ™]ÞíŠàY‡w½¤Èy^ÍU ;áûþÞz¸!Q¦ÅÔ(-9âîiú"ªÞ/§ÉLÄæ³hâŒUŽ+h§Xe%nÌçâ%V-úãõŠwTõ,RÓ¶a9ï¾ØW§êL˜Ü *™t1VQ ÑBx=MÌIòÜ4¸î¼‹ *fcž=ý¹ž05 ‚ù¡ü¤—@-»èÀæ¼ÉŒyg®\|[˜µç–¦ ÙØÅ~6m–o6à,~ýv…ÅlÖ7­{}ѰcP§ì¦s’J¸ÂoäÉ .zÇf¢6*!ZØGÓ>²ø>XMÿµAºÐ|ùU?°*¼uëeGíœÛêÁ¤<”Y'™ñm‘–H¸Gì‹AD6 GKáY°ú“¥¾P÷/ý{§x ³m8[L²Æ7$¡b¬ñøÈCj”ˆx¯Æò`ºNYBżÕXá¥{¿¢àÙ:çRˆDˆÕ~mAYÛƒ$û¦WL‡Ê~¾ã8Öâú×·ÑbgW° åÄÿ]óbŠ¥íè®›ïOj^ºÙøCƒlˆ^<3áG\Ý èVkc?ý Æ.csßäaæŽëýó7LËPEðו~£t„a¡›TËÞ©Zß*ÉIžñªV:¤É‚=/w‰fŠzL¤^1ÖsËÆ/t¨•ÜY_6á¿–ZçGõˆ˜‰ !ˆÛ*ösØèµW[Š·y­ai¬‰1)d2±h’‡ýБ>?êQ² ¨DhËÿF‘7:b#`¿Á-4uñ"ê~2tتµ^5ýݦ™hC9ŘnKrþQ.UQ“q%fÍ,:”J{Ú%‘;–9ŽÔÞ`® ‹Ô(áØé{E-ñVyzÏAÁ¨ï\Æ(ñ¹­rÌÚD]e§¯H:yžÝ¯?½@cf¥E˜Nÿ<ÈÇ÷n ² ™ncVô†¼špìPŽ#¬¼¡™nš9öÈÙ4s—Gæg9c@d)wcùMO¹œ2¢­Q®ßR·PGÛâúÃü£úâ¾{ÝÚ½Èà0#ŽÃ4ÅJѽv”ÞM½>ØWQÜôÄÎÈ´|Z‘gÍK›‰Þew=^é}²®ĬTŠó4UéICU¡Êʾÿù\L&ÎÐøÑX¡¨µtZ>Ú±Ú´[ãS®lÒÀ°JB`Kära27Æ{Â=¢íÊ%¤Ôsv ™Ï!ÒR:ˆ«êz° *ÚR$­O L2òÎÌîEÌ ©wÌOTÝÇ)üËB'ÞlÕ]@…|uù©¢ï¬­5°)zûÒG«p‹¶>úÆSX×|ÿ"¤¸¸ã­—mï”GNƒ0Ñ¡7¶üGÅzi@©°ùtbŸÁaÜbwäýJHÆK—æ‡þRcÕ÷ˆßÉi;¸'*™†=üöJ Îñ¿4LÇ~}K^Q“ì"ñ>®±çìEX0ÏÃýçÅæ¤÷þ å> ƒ0ïpn»¬ú÷ó ¹?»ÚÐYƲbk$|ƒñ©qe…Oñ›WØz^CÓñ»ÙisÒcm³K¿Ÿ¦ôfhLÑxŒ«Øœ‘ç´ »lë tß1…•—FóUoð4ïà§Æ+4•² ÷’Nã»N£Ü%) t2E¬KjmkΗáêo¸Ðòà®k}Ló÷Qˆà|¬Ç7òÜÃÉI=æÉ×óÞ¾l½ »oö•Ùçâ¤Ñ4Û¾êàÆóÒ»¦LMËžÚ60GÓ+¤Àx2Eq lî;-[Eæa½ƒª.Žø?ã$Ukô!Žys›ò¦tÄñoê²gvyÒ-ïp¹ñc ¯Êq…ÞÁD $,x¹ŠD£‹­9âwÌ-± án®Ú4\=©]-]2‹Ó<ŠÉ˜Ü º{I…ç†\ô oŸó@&ìõž–²Îé¼:ܧ÷A´Ùô¡æt»Øïñõsµ/é B_#[p™ëx1Ú1l¹>gÁiwÝå¥H<ó@®ÙŸ{ˆáëáp‘‹«2{'ž7©ÀÎ4/:®Êu"@¦y2³óZ=æ”?5LñÛ“ËCø„iŠJ£Írꢗ•¬íPºÔ4S>°OÎÇ\}‚.ßùwÉ7›|Á‰#¡ÞÿøŒ\_/»”²Ú×±|’3vëfÎv®˜…À?U¼öóc Ý¡ˆ»'GãôX†Û<à K6›Ú✜K r#=¹­91älDr>4µ>€±ÒÞÕª‘YôaJ×¥\ºP›–Û´“¤&ÕämbÛ@F’Íöèó.ƒ"L¨öÓµ²ýÏÅRªÈ´Ú7ëëß=%ZÅ¿½±}JÚy3ÕÕë×fAç_ J•q“ˆOû„^öåaÇszõP·(óÑ#ÙqÅ–‘­ŒÓ¤‘õÕhûà;ॼ²–‹“0 Ä~ÔÓ3‘¬£H´1dŒ–°Æ‰¯*""BEVé¸í¬¢¼¥ßÞÿÖ‹ô0`´Ý+õÿ^Vï·ŒbX`eš-]æÃ`ºgôîãŠæñ!‡W¡æ1tâù”ó'>~¸(!šÑÈž;i•ØÝõ¤’½„Þil¶Å¶MH¦Ò¡Ü5 ¬"Ôâ€zãb,ô„Êœåü™ÊND´rÙšžüdü1±¯ûÙµ6c¬ã_r]Ià³äï*^MÉÂl|™x~˜gŒ-‹9ÝOd—)µ­¬Ët,!ðè¬ç(䎦Wfq#/Ä^5‹)¥5¤‘Kzž£Þ%æ†7å­p`½$°ø”ÕÈÊêñù}¯DMÜb°A\…1Î+$å‘¡o?xtîÚÎòv—º „§Î¶ÆýüÙüˆ|;‘â´S†¢mC÷P^¸ß/ìsžhfƒíW»rX:`ç_&ßóXÜzw®Š R×êâ; ˜r•" 6Õ@JHÓ†DŸ]ƒº2z ½›“-ŠÄ5=¸­£CŠ?‡aOL‹$!a1U®õO£b`7à 2ïm-•ðM_üd ÷,jtÅ1Ppeš“ð³¹EÝY&X:>NpÑ6¦ä¸Ú¾|Û¸hÕÉZvåZeÄùFØ™@á;5 E²Ø Öy‰S‡ ±²‹%ð­Ê‘@–¤èùcwû‘!)é,‰Ý× çU6ð÷>?>•5«-â»e­à'ã'?˜[ì\§Ä}C‰68š©w ŒûÎýíõIÞƒ°öÓw‹“hªÝ²²+}™µ ®©ÙÃÞ Üšö»i+ú‚ükƒcžïñ’´cteÊÕ£"rBFœ¿àBŒóCôºÅ'‘)e÷¶g“tÆ":Ňgì^á›dºøQ÷ÚÖ ¼Á6?˜ LH×3ÿ†J¨ßž{TãRÔ‘yª}%*T6! 0aȹÐtý`ɰˆ=D”X$½õÛ™ s/DöWcÐ`¯¹×ÝO|J2±>ÍmÑ®¦awgñB”¤,ùR~ËÛÆöƒè¡KþOrdòGÊ8äÒS×|¦DcÑ0 õñH:EŸia~Ï©’«ÇjK׉Xú±¹iÅUÙòõ6-i²×O${iqԇΕDqY4+LlÞ2é[õRD°NF|’Ä/o©,\AÝÈ©ò:°Ž’p_ò$×Pí3\\r™]EÚu\Çýžt‹ôL/]åUŽ©³B§d+zµ{@ÍH=íóº(æQ½ùb¿“ƒä—ßâgéôå)î0¼y¶kù Œ=iÑÎÿñød5ŸŒq-n¯åÀ˯âÕϘJQé‰ô®Íß4ðZÜçõ'§.†?ˆ˜¿©E·êAl“p@”fÌmL|jjCñExa4Ÿ¬(õÒ^òé¸ä}Éz½%7\ØedIß©Ôýþý¶$‰¢B‚-´íˆ¤¨¦¬¨¿n‰(Îñ1λ‹kä0“ºˆ‹·ûÔyÛE*'9Ÿ†¡ó”‡ Õ?E¤Eĉ;RD…k$+gBˆj©­¬>áyN§ˆ.•ùW{ í¯$Û8Þrw'ú qb~|'…Ô{hp|ƒ¢º¤â*f"uþEoëõ½¦AÕÚŒIFù%Usa Hûqbõl%©~48rÎt(7½lJ@fúãºpjš w#¯Ö†$Ôn{= óøkXÄTñ”Ìž>ù¥tîSâ;|#zÕ¤Ÿ1—›×o°Œ –Lû&H¯L0_‡Ô9›Œœ²õ÷j^sûÒøs+q+0¿OÝId¾s'·åGbPê[a7(šóÑdXºëXýLÕæP“ÚV¼Ñeèˆ/ˆE-­A‘1œ:ƈ]íü¦Š—þäë’ÍîaĘ¥­²AIiú,Œ×>zÝ2Cmp!³¸ õºK¤þÐjWC ŒiG9äʵ‡6ò‰‰K^ºÄ<ˆ¬¦?fÏ n#ûS`¥Ä<F2ú(5;Öèö«ƒŸœP(àiê`³o57¹Ü;‹ÏãN1¡7öö{!Ì£=SRq¸BÅüíåSž£â¼{7lùΓçúÕaokI1ÝÏí%L'0Q˜uL ðÝ}ïæoóó7×"yŽnŸÀšSb1<Œ¦±Ü¨$ÆuNÙ©~y‚×|J~Ê|zw•Ñ6Gh­ÕnÑ• ûîæÅAàFn¯8ÙµõꘔïH¤€>Û÷MèF’ÃL«mg"µh<÷.ø©ívF)Ü*êгîx†Aå0–—C¸™ ¸Å+¢ÜÎÓ®]y<Í"×– :gVéÈÓÛ%WÒò4|»Ø“!Çß]éu*À…î;ôîz5“ÐQ1Ûå¡EºîySÅ=ä¾%d%7&ŸZ¯¼– ëY+èØ‘ø)®bjý7½THlØAN×ÂkTï—£‡Üä.}2H’¬*R¯KÛMYÊJãÎjߌ»ã‚„£q¼²Ÿùê4ÍéçÆ9nô=B!|§Oi|Ï…«‚ýÜô%âDㄌñLèŽâøIW'Iìõ=-$¤ŽËÎ.°@®Âƒ.äU.IÛQðËi{:ªga¥E'½É860hv>/I /hU°k›d3iJ6|'n¡Wè±uä Å™<ŽâFcêjo“˜RXP¤ðuöâ^uï=ó«ŽlÙðE<¶îdtÀP{rs‡½¤õ~3ÞÀuñ§–*áÓ&âeë÷ÈÚ–óå@Ý)Å™ ƒí{»}Y·ÒÃÃGO¾v÷ñ£2.MRÜøãµ êWFÔ†Æ5G¬ƒ·ª"}‘¾‚·ËŠGól_'ª]ìÔ C´øoü–Ìï“Ö,)6N „nýr³U¥ ì1ùмsqƪÉ âaßq“¯±èhsuSHj(ç_É8Vù~‹RIØ›&2ñ‹2t+:ÒðR¦h?Ääçn/œ¨è[0À¤GmVZ#z¢)#€&µô‰óá†k÷@ V ü´âÉË—o ˼T©F"üª Úw¿ #Oe©õ0ïÄÕg{HWåeßì¹[îVý–Áõ"×ïyÃXJS4Åâ}û²k‚ŽöжÖ­âGš‘{¶ŒüBhúÎ(üºÀƒ<):i‹ [¾Ñ^ÿ©#ºèž›ïéâ¦áWƒç h!Uî˜ù‰fÛ¢#väý9:1ƒcä,ü™¨¹çB-—4Œ)²+G˜^%L ¶b_ÉoJÈcWšÈ[£2/¨-qÈGQ`‰«(6"òhºu4#ó4ò $^"OµJä^î Ç€ÇÍå¸Yõ–.Y›KWFh´?ëñù¤J{¤&—‹˜™Þ€Ì r[^Ý8TDNf¿Za.ò½Óézb¡"*«FüA8VëÎ §I>ïö–9ǶZgµš¤ö¨מ'[¹¿Ï6±ꔹ,ÊÆ–P 6=+u‚ŽcøXú3*k#4¬D•^Uܶl”Œ×ªßéJÊ“«‰`ld¶žáCd@ëÈqSôÙ:éW’ÝKºwÊ}5Uæ‡Õ ÑôÛ•kJYóð·>éÖÚqÁåðW"\‘\³ÉÆáó1hµŒù}úØ!…ˆ’}$öe·â8%_´s—Êîm ä aÛ^ÙÌùµƒÍÁA¾Þ!òUÖM©öºš›½ð²™-ö<Ï{Aoµ~A¨dÆO–Ußʧ’û¯H‰öµeÅý58çÎ^õØ+  //I–ç‡âqvøXI®–îŒðÏÙcÃVðït’F%tNᩬgàâܵ+Vj»ë‡û`Ò;ŸnœA~ìOõ¶+Y»»Þp½jýk¥k‡ý§:°Ú£_Aŵû»¼Ô5oÖÈn[®"žÐ§Ê…è3`ñ}ë,˜?e§W›Å||.o‡Ï}Ó)_-ñÌ0´þ8ÀeXg= 8n\!ŽzÚ!<“E!ÿUNv®óS±®—Þ1yr(6Êûc J¤¬¥vÒúÅ÷YGdi:WxÖ¹,ߪ”‚çFŸî%olŒ£ÓPáQ4 4$à:\´?c“ïÌÚyS™¸x&Æ%0Ó‰?Û_ƒ»×l2¢ÿ>#¬îÒxò…ôûƒp†³öbj‚j0¹2Ãø^IïI'ê×âÞÔ€efრ1®LŽ»‚ s ÆïfÏ6£°°{kÛ*?£Hû&¥C7:‚¶ ²EFÛP¡× ?¹. ­6½ä=q±¥ªr+ç£>c}¢GEÅW³t¢ioÁ¬Xò)aU0 u¦ˆ” ¥{mºL<E÷è]oQ{N©ltÏø7¤–ÑÏ´²È}èuŸ¸.Ý ’sf‚ÊÞÇ!}3-"©mÊxíåUcù´ úÑ3™s}øN4':І‰¨ŸŽÍð ‘4LoÄ"ÇÊ6”ú¥#'ŸE±ŽÈãq"¦ù‡°ŸÛLljêS–›¥ØìãÇz]Nô¬@dȦˆòÛQºÝkÁÅÛ¶<ÜÒŸ½_¾1D8Þ&Ô9N³^Y 'ÌA?ks {â¹zÏæ-ŽJ¿G‹G¦¤ å³)ϲuÔÎv¹ ÙÑ™›¯™¸$¬U9ê¶Ë /²InFÖ®}û}‚uÄüÀ;Öìll¬¿ª»r^ !äÅÔe?~˜b /çÒ¬ŽàòûŽ×ãe‡ƒÇ’°XstnIÞk¼o*M{P¬æ1AÚ¤ÊCz˘IQ~:æ¡ (–Ñ {÷COël|çA‹c Æ­_³x"£ð>ûî’퀠»ên¶¥<˜J$O¹-Ýgä©î$'Z:[¡ëš\26/RŠ`ÐßÁ9RUª‘¡ðz"»/ŠÅçÆÉ§‰çekv¿á7Š„U®Í’t~¯¡–UÔÎUztR¨Ô®•G–ìrŽK¬D3’’ŸQ^ÄŒ§,0åy%Î[úµõÓ<Â*WF6Ô·”Ìye˜ÊìÓ^,‚%°óüg0²¤ÆsTËU®ÃK&KvçEé+÷ÎëòŠ•ç=ª<üœßÖE>q ¼aQjQâ‰?Y—H͇Ô¢°«)PU`¨¹ Ì|œ (ïàE³Øˆ7!Ô_Ý›c’h¾Œ|<é<ÒEö%¾b'+ A?Fðôy %ß¾,»_Y;Ž(®¸\¿`á/F<ó„==d!mޱA?çr<|¹5hU{\ÊžÅú´öêÓÁ¢ë[Üšï¶&Ÿ®)I©’ˆ´ˆ <„Üò^®®  ¹5¬ŒÊË `–¸ië{àÍÞx ¤YBœþZþáã×¾¯Û½—~þGUäÖ.èÓ¯¬PNWƒô[(bÕ”é)µå,tãÝ™°1øK‘|iO×*iß!ƒ‘ÛáFצ(ŽdÝžZ‰˜ f„‹˜Ò4¬Õ^®ÆW@BM!CD[r#2W\¢æÙ6¼ô±¬)xcÌèõ«s!Aôñ½ÔkŸÇˆõŽüS€ ]]:ÞMS®ª¼ºbþU”5üÝ­g?ÕIA\ÜñeD Úš´P§xv ÝìÂ/vubÛ²MÞ9H©À1Ú‚EaŘâNÑ¢ÙX²4ƒæ ú•èïz^r^ÑÎ"y<†v´*w. ?™¦,W³\rØô©: |k·å‰oõž9 ÊýDòBº‰úª¢ëÃädC»æÔý>ºxH%1éjÚWÄ„G☒d!E‡õ‹Å\>ä!o9*ë½ôÆ–ˆm¿Þ’BÝ3Ì"[iáQOhSžBî(öt¡š³5a1¢à;ü )œ¬'˜QY÷<_Q)Ó‚q7ß…‹‡“Û×ô“TÀ*‹‚j—Š3ŠÜ±¼´­¡ü—t ʺüÍšÒ„ß|%èTuË­š>N$67nø¨`„§Év$P‰G‚O;¬|hx+ŽÞó÷ûEƒmL˜DÒ¥lK=AzIu”F©¾‰þùP5|‘uJÁ5uPâ¤~Ì45³Fòæ¸ë$5»ä1çDš–G*ûPlë¥ÏŒ—ƒ½÷9çÜ¡"„øˆKcÛµü °< ZBè‘>Í%ŠHK_+Z"ª/Ãñ‹A ÌÐU>ÌîØñGrg¨SªÀ|TC¥wO¸ EHO;å ô‘7jY1‘¯¥ÑñqkŸÔ…R²ÑS™«ØµˆúòŒˆ;o6§˜¦…zrÅž^Y˜’d«g U¹Ä¤ß Ѹ)~ín{] .vx÷ÝŸ†â½–‡u=ØüÓÅŸ¯í Û¢Œ {Ž•ŒP¡‚ö¨_V7¹-œîA¡¨ I›Ã ¾jzâCy$—ºkàQå|íÛ¼†ˆ üÅ”&妤f?#­ÜEì–Ú5èQ¿BÊ[H®m…Rl¢ê¡ÿ¨ÔWQßÂòq}£¾ãèZÙoœ¥Rô #eÅX¬z02.»3ªo6VªªÞ¤‡ù–þ¥ Þ!Í®L‘ëüû›c¨l=ÿ*.MÇŒ³nª“8Ò–¼§ eºBfÌ|?ÔÛ}¦HNj,pD,´*¥ZhOŽ]*—a°,ú«êî*5Äñû¾ƒSN±ZFºXÄ–mθÂ~ä¨~ѧ¨²ÒŠKcO6ÍoÕ¸CN°}‰6’9ðA´Ÿ©´™B¹¿0T(¯PŽÏûQ÷'Û¦{dë*· ÒÕ¡¾aÂØ³Mª $Ó0˜§Ÿ×ãI/eR}ÌSR÷}7…=–GïûýP¾¤¢rKdÌmf•ÌúîµQ*¦_¦'çbJõk¼szƒ”LÕê8—f(0Z%ïZ÷±.otöäêˆvó–>Ÿ¢¼Öþ7—Fœ2ÍÂ4ò,Ÿ8^yWÈ<› rV,Ϥ©ü ®•Èr«ÇjAZ'±*iBŽzhòÏ“ÜÖ(­ÂÉkÌ]Q*ìÊΗJ§ÈñFí[ÕKæ‹q˜+o’Lò¤šIÚèã„ÇåÇSv¦õ7R!SZÀæ³ëªrŽÝ—ïÛ˜´ìÌO.Xå t¬œ”Ðuò-˜»$ïâà;{RWõòƒþ<O^Òh8áöbW#»è{G53$ù©˜³×VV‚1l/YmŸfðñ¢`øyîÏÀ¥Ìrèõ?zÑ#ðM¯I¢ÛO K³ù?dJeé*†Ñ,áõòSDÔlY{¿”Žº=œÎ?à¦;ä‚KbÍ“¾þ0R”ÂN|ç¶ø hË©"t˜èÀi.mZ%Ç,}rÀò}75¿‹ë$7úƒf¢×»áÍH@2Ý}ŸçN }˜:S>O­Ô¾¾<á f7?eð¡Ý'1’\`|ëR=¼Â,WUÐÜô«4S”sfâXo×)y—z €“^(=2Û½åçÐ.¡““—ó´¥ýêÓdËO·vôô™Ä#À‡ÛbÞxÓBÍ6â8T+d¯¸êDYë€ÌlRS¨üùöÏç™t-©í¾G¼öÜ™ny„bA¯·þ%ŒL× ØH+z³³è—«©ÌЭ=5­¡h­Ø[gnBò³GÌõY%êÂhû|¼_ê¡/‘ïqn‰…o«Øšu~ïxúfÜE·„× Û]M`܇¸$Û^(Zëbi,¡Zñå4Aš¤þD—šý»n$ûÍââÇ$áå3T.æyÒgY²X+´j—SÍÏŒxm,ñó¶‹$6ñŽ&ÅÁ}@–AkAÆœ„î1ÜtƒmzVΦÂwÚfŠÊ…u¬º¸»oâ«)bÄHn_e%ÿäMßµèW-Ì쩚áÙû†6ÊÓ=)áHw¥âYÚe-‰t¼ÿ wú9žõZ8ó$ì| fBiÂ%[¹¼ÈŸýÁê4ˆB]ïl+µ#‡Lë/I½Ò‹ þ€„\ã‡Y1Í­¹å›KvŨ(¨ê±Ïâš5…"y²üÐíê¡·mâýjV1uÌÀbð«ÛñQÈÿŒV”XŒº“Ý€h—1Òr Æz¹!wÂØ’IGÚY½ÛHn‚SA q?“òÜÑN”µèº±ªT(Æ-–£¯”áâ­è~×̽L’„Sv¼nzjAÆe$aÒó¶å¶ðaá{×ã©©±ü*©ao ŸÃnAßäÈJ1ùÙ¢.$v¬¶MQT¤¿]í¤³u}„ëËÈC•CYºi#Â!Ê@”-Ú¹ýÝóo¯z ǽ0Wn$I$e˜ÿ2½§T¿çt—B>?çM;8Ð\ÞÏêøYñê“-b 4ßI— (¸¥µäôíU½*¾seì*]£j«JbÈœ%Î-å›è|å3cÎÊêð`4!,EΣ{Âül4äÞÁ7ˆ ߟێ¶Þ1út›…¿xCÂãT“l6ÚŠß–6hªŽÝR“(‚Œ!™ó‰ð۩÷yCRSuU’Yg­žˆE®ç‰ËةϑÏ> GªŽ¹µ]s š½ñPSë YøöŠ0AºùÎt&sƒ…,!Ò–·|ü•'òD¿üã €•Té¥!Rh' øå3KŽó”‚Øìñ ˜>ÇÂ…ý[H(þjJºÚe-JÖY‡T?Ò•a—Ñ~VÝwD®‰ûõäm’^\WO\xªñ·p? Tœ–46 ­DÕàÉàÎÎÌ—q…ÄÆ¸BvÂS\Wjêúê³…ªL€ï¶ö8V;ëäÃñãvCެ}ñ]¯=1$ŠA¶ .²Ô×¢ôΚžH‡xP»&¶“ÍíÈÔeÙ*·Ó¶wü~”{QÆGdƒ ñˆŒ¢’‚¡öêäCòA/¸å1]Õf—ÁÆóeÜÖ´9Î*öÓëVà §áàûýw,ùúãíJå=úœx­ /qJÌÂÛöóÜ¿Ü÷ß«~‡ØÇ•°Œ…{QxOöÅ)É眮ǵ#q$7™JäD“Ðr䟵”ä” éO±Líy›•Ú •¡» ½ÀÛž`šl¥þÈÓº´ž‘ŠvPMˆËƒVû~˜oó'àdÊó©NâQÜñ¶ ¿ä†n›D{(åY{y³X] =^)‰†Ãéî-ãØlK3f¥ޱmâx8sF]æVÿCj rÕ}I“v ENÁX®¤ØŠ…ªèlÆX '0¿Ÿ[ü¢»¢ÜÂäuÍh†ÄÚ jÝe»øêN§ZÌr¿ßºÆ™áZOÔÇl]‰ª-¤M§øžˆ/e:õŸ 3 endstream endobj 1571 0 obj << /Length1 1328 /Length2 1345 /Length3 0 /Length 2190 /Filter /FlateDecode >> stream xÚS 8Tû?q:œ‰î9=EéŸršŠyyåk<Æ»4HJe›Ùc63{™=Æ$Êó„t*RJ]½UR$œB¥¢$„ÂíH(é”p*îÇÝ3=Îý¾{¿ù¾=ÿÿZ¿µÖÿ·Öo/ðô2eó±@˜ƒ¡¸)B³^vt Ñ˜A26öFp©_Û÷…㜰®51ö6Ÿú˜Ç“Ÿ°¯7v&úcÚkFöHQȺY´M϶f$[Íj*(™,l7ÙZ7mÅàk™»œÑévíÚú&Êšõ¶˜{GÑ¿²aÉl“ÐÞŽ‡™¯œl~)Îýp^øVkqaEG£&%YKÏ‚©£WÊÎ,͵Ëc74–¹,’½_Yó&uçÕ§ŒÛ÷¬çOÏšLBÚ2 º»u%ný™Ý¶^–›ë»ÔãåŽzC»É1ý%qÑä@Yµ× §?C/]{y³Iþp°!:´=°éİ^ÌÉ?WÝó« W­˜eË mYlöD«yݶàÔ³ëgTÔø›éœiq H{¼kÛt{,ŽòØž^˜q(ç0{Ï%ÎÈ­&C·—igP’YÚžyŽcµ>Óµ)8©­îîGÁ¼´}–ïöp^¶¶Èφ£õ5Í‘- îoYÍÙ›ë4Iå!ÎMÛ ”‰å}¥gÚ®T6ݺ›j˜·˜S}ïD¾doçê(ç§Ïþò Ðı9×?úg5nÄÊ}¢=,ûOš×ô ½C:öd$†£ÇM?×ÚåíüýŽ~VFa/k(çU±öeJÔúù [O{WÙo¯h=ñÎÕ^dv*¬(Cë¬pýj¦ÜÚþ€=o=vªtê"VÃwÚ66éùwf†e…‹*ÄN²J…éÃ[ó\–Ç,aöLõÌÔ´üÝó'#—SWoTh$=h Ð|Ï]ÊI\ã²%ï3H¯:x×¥CM8×9òqpoL/¯²©SÖ~q­nKŠ&õD’“^Ê€M³_÷?tù»÷õå>ïœ{¥Œ ‹¼sÿ6c¹5%U3î5·òÔ˶1Mã\[µBùðy]î”ë &:Oê­·e8N6úÀ>å_ÇÊzç’*µ?z¦®ç%ìÖç-½4/±¤W1ÉÜ/w³§iÔã­o”&v7ZCR_oÐàžœžfò$ˆfsçûW¥ìh¥v£2é²Y¤¤C+¾±´]`èï7çÀ9æÆ•uÕâ┞Öù²ˆ¨Î˜׊GšÞœNÚctð¶wu5ò\½Ã`ÛL×á?zêSÁð=ëÄÌß]˜3ÃÍçuñ´£ÞVN+¿ºá‚rfˆw-)×ÀâXlÔü”Ðh·®á±aßý§ÓÚ¶Úü±ôî½û‡ θϚßi»kå‚ýûÂjº¹”*Ñpä™ýñ C3ž·H`ÄûtMK뻾qi³gѻȫ‘|Éû’SÛ'½£¥’¾·O·f9mÊ«üçóGa‰‘¿¦×»Ã¶YÛíš=/á’¯$[¸yû.hy<ùð«žÆ³]©ç>i=‰ôh¹³¸ƒ-—ßQ,šñ!»~jÒ&?P–¶sð´GQÒ•ÙûK>@m×iùkS˜QoÖÝŽ[ÿ`ù`æ endstream endobj 1573 0 obj << /Length1 1321 /Length2 1345 /Length3 0 /Length 2190 /Filter /FlateDecode >> stream xÚS 8”énuJÍ…s¨£¡èU„cfj0òŸ•jÛ>3ߘñ}cæ?«‘Ú)IÑ!¤”¢V©¥üe+”b[ŠòSk©MR$Yâ”Mµß iuÎusÍu}ó¾÷s?ÏûÞÏ{?F~f<,vÅPÜŒN¥±€w€£·5 Ñ,¨4ƒddˆàBx &­‡ÅCY!8‰a'0gWð0xH…€nèV,º5‹F mÍ'"&fg( áo*ðÀPXB2rÂD±b$T€³Àô˜pM}ÍkŠ28DÀb„ ¡ÀÂpq"‚Œ‹ÀxìŒ&¶±ÌÍ£££©P„„ЉCÙ¦àÀ%°8 æ…`àEÀ“ʨ$#(@$“xÆÇ£!1 @ˆpaTBdHQ,Äá ÀÝ øŠ`t’ì5I €©Þ:•>]n*[QA•É—‹Eˆ 4ACÂÀ×Õ‹ŠÇà¡<J0"Š‚!B”7‡€«ƒ?€Sò$\1"Â%T "TH4W”!ºì‚òœ°ˆÅ%$Åýœ1Ì%Úk>ù²á(ÆMmøÊã+Dð¤"ó ‰”ÂîÎS"}ÆBa0i ÝÀ‘Žá ÌåcE°2HWÀ„Yœ>!–!|˜ø#ÅI (àb),‹ûk`æŽD§ÂÅAŠ ¤ÏÕ æOî‰Ç#1`3ðпéÕׄ½x*ŒýLW¾¯¹Ÿ§÷WïU“ЧcŽŽX ˆ3³d3&Í0¬Ž¥+ÙÌ:Óø¤^‰úAÈÔíhŸKº£| XOŠ º÷IHÔ”/L¦fÆÌ<Á#Ì “ÏÞßBcҸćþO€2å¿_QåyÿË ¹J…BeØDÿ0c' .R!,þ’°žœ`o˜‡H#¾Œºã1h¨pºyˆÄ‰y~ÎLZG‰ÃÄ<ÌÌuA¹O18 ¦€Äb(–D#üÁ`2A˜0£´&0§¢N¤‘—>&&)d5˜siFY®T,&æEùnÄ™ŸöÊá„á˜Kê¸qmäa%ò«o/8,Ž6ëmbXª×ì·á©‹NÔsÿ]N¶ã¯-ò“q¸Öö,yü±ÖãÌÇKáµiá[ÛžÌÒî(»:‡ÒCÙ~WË”ñ̳¦fÓ6 ”ª=Tɹ=º¶Õt%r¸·=§ßÍvEeÑ›CªÆ/©j*M’UÉ«W[¨©È«rªŠ/:´¶U»JFÖ6 ¦ë¹ög×52˜Oê-¤|…tg/~ñB]ä9šó‚}¸¯ÖJ×sÛ]Ðjô´Ö…üî É®Ñ«ò&!’Ûvn¯"KkúntHÛÿhÝÙÒqêy×é±`õ|ô}ì´Ù‘­áÆ–¿¨vnÜ–^ø eáíª½y̱cå*cï¾-Œ‹9fžüûsv h´_ê䘺A©;wß4³äÆ5öÎòŒ¯·§s?ô>>¢º¾µ:ñ7©A¾Ž÷ë»ß5k}}«awdºQÿâTÝú#ñqZ0î¿pþ›9¡k¢oº|d¾ïMPfž}5ÛZóÈ—žç*O«[ãµÕ<·uI–­ôÛÚG5‰QIµœèûæÅÊØ”·ñö>ú»›Ú†kk®Hé¤mÒ™·Ålˆç›¥S–ºC«ÝíÚE{‘ùâxOCÁƒË¹çØøúÎR½!¹¿šÌΦ$àлƒYé† ´d!ª¶y1ÕÁI­¦ê} åW ydN<ò)4ã A{T9ýrÇ3‘K<^•;Ú;¹?z–ô÷ a`†“At[*¦M^WÒ{¡ÿú·êV§g&eªdé×qþåÔPï";ŸNÍ4ìv€.¥-”yäµÂ-çkfkz5÷ÙÚQ%.Ëeœi8l'z•;¾üIócp¼öè¢o4×6¨.>{EUôp€ ÏNŸÅÎ{çóÏŒŸ+ªRÃ÷ï®·¹³5¿ó™øÆ¡Òp‘ .bV¢Q$µ{}œ½ïš~^Ã~þ<°k,§Š¹¼äÈò˜®Å 8 ËY}›J÷&•„«rG|Þö}ü¶ ¤áÀïàÒÈ‘%Á)¼c³ÕãœÏ3¾RëæTÚ¶.RßÙx¿Bž2;*-…×YéY#¡ÂF¾é»é¦WºVåØñdm¼Zžm|2ÅíÔ[&Ù|z|mn ãäf×î>Ý–fÍ´7ûÇTk‹œôüî% M´޼ ØTñJ,ºkš¶êž:ñ“§ïŠÁFžAm³cõ•}µ¶‚k07C§rù–WNs%6èÌf_Jˆ¿We‹láB7lEØä¬ÎG‰ACÒ›ÌT³=ŽÈßeÈC)Wt×k’J™—æ Â{÷ÊŒ¨¬ÝÕú[ä2œm¬GŽ&ÇÉÖf9t㉩m%/õK{Š}ÿ¡¨Ñ|†DïzÏÞ[ܽºp¼Ò2µƒ¢c̵˜Ÿ¶¿éG6©Ë=µ%i·ó/ç¾Þ\§Q'ÛÐK&cƒžùrWKî~Àöß¹´ïH¾¾½rÇ3k³ð Cá›ãEù í>ŽODKÏÝYæ.æ,¸Û5˜:ñ'XLü endstream endobj 1552 0 obj << /Type /ObjStm /N 100 /First 951 /Length 3151 /Filter /FlateDecode >> stream xÚÍZYoÛH~ׯèÇ] Œ¾/`0€ï8>âøŒ=˜ÙflmdÉÑ‘Iæ×o»)²)’Žä,°¶š»¾ª¯®î¹Öœ0µVD8CŒR8pÄ+ß gq„ƒ#xÂÊü[CsGŽËð[ˈðÒ÷`$ˆÔáž"Ò2 ÿ<‘ž9(¢˜Ä;œ(r$HPÂ+báB)¡ˆÖž(­QøŒAQŽóžÂWðÏX ’hîQ¢&Z ”è‰VZÂÒŽ+``èàÑNjxØí ‡;‚ælO‚ÖFpPRåÐÀJÀPÄhÓ,1V>˜`œòðþ¼u ƒ%–ƒ­ÊJ œj¥‘=é ±Ê´3µçÄp¸c¼À©ÄZ/ñ{bÐภÖ–ÓŒ8æ qø‡zàÞ .5œôÀ53Ç€ïˆ3œƒÛ8L´ü$€@ç„&\Jr$¸RÁ¥g}„yÎó‘!^Ž#„ÁÚb(pþô0BJI¼%¤€;†{(Ì€&{ R%Ðàª8<ìÀV ¼{® Ä2¦ài˜Ê@÷˜#0bF¨±ÀÀbRYá g(ï!Úpê.,Î0ËÄÐËÂà Ç`†ÁÎ†ÆøDà …nEw ¥qä`ø] Ïw9—ùBâ † 348N =y6ä”qãXOpœaIpœþ‚ ÁmCËÁƒ€Ë0¯J¯‚«Pˆ¢@–C§åiçÀ¥‚F84èýþ{^üxÉÝf;Ùô~2x™'½üú¤ÿ ßܾ»=Ú>ømûøÌÂíaÿqJTø~kküü¹mˆ,0âL³¿ztszŸfŠðävÿå]6x|‚K'{Að» Ž_ÌúÃÁýæèq˜Ö£ç³ìù bµG?Å9JrñÔŸœg3ò/šß¤Ù×yH?¾eôóx>¡£Á(£cø{éO²Ñ0û< £IþôËp>¥Óì[6¢ÓÁw:{šdý=¦ÿd“ñ¿ƒ){PâA;ëýñÇO1³sr|²y…̸ff¤‰Ì0(2¿„ÓÊÌ&Ý¢Ût‡îÒ=ºOßÑzDé =¥gôœ^ÐKzE¯iŸÞÑ{z?~~îÓ ô‹ÃGúDŸ~¼<Kúú…é3Ñ1}ia5› Æô+ý:Ϧ³ÁxD'i~܇p5Ë)žÓoôoúþ ÿÔ˜–«0½õþxkó ™ö-Lû‚iàü—0­^az>\pŒ _-ØEû«#·ƒ ¥y¨ æá‰ÜÍbhÎê|éUøÚÝ=ß<ß¾Îo8kÉZ`ÌcKæØ8¬.úV`lƒ«‚3ÅZ9ëO&ã¿Càô§30|úå¹?{¢wýû/Óa £Iÿ>˃,…gïæÃaù>Ìž>N²>Lé?}Œ³t˜M§áÖó`\ŽúwÃ~d•† t>‚­QjW¡ôýÞÖÖ§‹œÒ–:jÃkì–ðÏ:ñ+m¯„gŸ¦$nÂgÁTÎDÍ\¿Š¹‡W{/ossÛŠCs± AK…ǯ0·½¼=χ³ÁËðGj“á+Ù´w~rt6]´e¬±Š^¦ÞRG*F×QI¶ózÕúý¢š|XÔì+zCo[ªJè„¡~/aRÄCµ ½±,7¡Jc3¬Vh¨Ï íЬT¤¯n>ím~@z/ÚèUÀ.,T4.u½©ËyB.^.ÈB´iãWh‡)Á“¶ø ˆîÓþ3p4í §îƒûÁä~þƳÁð![¤íCiªÖ®þ¤¥~ÁðK6[܆qø¢îχñpB²d“}¿öŸs—Ž5p¹[c,=>š?ß1ƒÇJ¿iiãÈrÒŒ*=ýë|<Ëî†a¦¤}¾\X.f•ÖÊîhq?ždåB )ÐVënGWW×Û!ÐDK-Æ@ƒ}î²¼~{ éÖ@ ½¿¿ðË pæÜ„Îj†®Ôs·nwnrC[Š0–+Ø‚ÁÞìôo¶³s}Y¤SH¦£¤Ru¤Ñÿ:uþr&¦Êÿ"?VêÝw.®·÷;>ß:n+Äз7”`°…½³•>§L­Ïù2rXKØ$ ?#“eJjˆ]©aŸ_ï熴¬¹ î7ð¬¶æ2? ¨â×0Äÿ´!-­$Íïfù%Þ„ÚêO3ü†Ð“ÃË›³kHç­O¹_»A&^¦{ƒÉt†ÈÓö¨_\Pèzð0{šÂÃÌ®®ÀÎîÁÉé^P@4( x]ôlEQQ€óÕؽ¼þ¯À¶>ù&|YÇÇÂ[âsSÅ_Ãg—W»gˆ¿}¾Ýè¡—èÐÀ¬®Áåîéá6îdw›c@غ¢êçJ|åÅêøÛ7ïwp‘vWiK ,!®Ê›c@y½F_ÝÜîƒÇ HþJ$ ø5¸¼9?ß 4e\ŠB'’pÕPkDáæÞÉÙi®€nÂ×Ë$iˆWe`«+p¾¿uôñ}®€mR`)mkh¶Fîï<»ØÎñ]¾_åרCG›·×HÀYcªåLì·ÕXƒÿÍý‹ë|]wÖ€j)•jÀ5Rp{çèb{7Çoò¿Ò¯àû*þ}èãÑû›Ówˆßÿj)üt5ÿt’ÿkDßÞáþå9¦ß™iB_®®Š^õ=[£¤ÇéutÝÝ ¯¢¯Sû’#ë%tµ÷¢=ñ×¼ôw Þ,/Û—k4¿ú±è’®®@ZvT5òÜêøµ3Ä:¼a]ð&©úkX_;Ò[BK+ z’tk”¼úÙÛúJ¡·÷õÓ©%–‚O¦ÁW]ù±5º~ýÔbI¥à3¬mé {›5\ž&Ôñ-ûy”_£òÕ·¥K ˆÎu—KBp®SÛM.Á«Ÿ†×¬aÍqÚ̦°cÏñü¥×Üj濉ç‚Sò§”9uPÚTø ‡¬Ðeâý`‰@â*žÄ¥‰?·‘dD;>C­bB#â§ BM8•'&<;oó !±aKlØ÷6_øZDø”o±*‚˜b£pïG%\ðûz .jîxvÛðèsaßAœb+˜DE-âg°ÄÅ(s6Þ·þ ¡à;ñ3€úp€A¼ ^òõA|د"˜ŠBà >#¨o±Ñ‚˜œE“ð’8ˆùÊ™~ƒ5œÅÐâ,áï®6¤(“‡´]Š+ÅèbÎ×ñu’h wÅÀ¯FŸM Dh„øÖI´Aˆb £B­Þe ¨è3.\q'¦'—±HpÉù ¤ˆtÉXѸÔBÌ#.må^…’íPx›‹Q…¯”u¯ÊKtwIw‰~Õ±»˜X&Mì*6loòWÂÖGqá=™ü5²èAyocH³‚&Þ[è¼'ï,:=‘,rD‰W%{¹kñ"Yž¨Íÿ0Ÿ #‘/H\à* W-¿ Òa SL̆|Þ„aÜÆ•vÅ]åé$ûFbFÔ§³Åôâ0N/ž³ctÖf SΖ³ãÕIö}–¿u× K,dGÒͲâÞ¿Õ¤w¥,Ý)K&²šâ%ÁœwÉŠ;ã(«vBe•l³N¶ã6·%d±’{ÖÉ=K¸gMܳ÷Âwq/|Â=kà^xWÊÒ²îo’¥JY]Üã›–¥,ám“¬÷ø^b—,Èjà^8SÊ’²ªÜZÖd•ÜÛNî­Md5qoKîm'÷V&²š¸·%÷¶“{“po›¸·%÷¦“{“po›¸7%÷¦“{“poš¸7%÷º“{poš¸×%÷º“{poš¸×%÷º“{•p¯›¸×%÷ª“{•p¯›¸W%÷ª…û0[5±­J¶¥ïlU2)3ÉO#¥ž¡=¿…ö¸!D T–n‘º4ñKS·e³¯4[‘)›S¶^Qo½MMM”ÍVÔšíxâ‹}a9}¢F¯c–.ãÝ.‹¿EÌFÊ®,ê]¹˜d5õ;QöaQïÃé줋¦>,Ê>,ê}¸&+qc£^eE­Ë ³›:¯(šó&áEãl&˜+•̧²jN6NU)&/š8bª³ µŸzãlYÎf]³«(ÌkgwAVѶAVÑR[d©DV“^EÛFY¢SVÕ+…–5Y¥W¬ë’eRY‹óÑÿ@¼ " endstream endobj 1580 0 obj << /Type /ObjStm /N 100 /First 931 /Length 3444 /Filter /FlateDecode >> stream xÚ}[M7½Ï¯¨czÄ’¨ÏAÀ‰‘u°‰a¬Èa‘C{Ò±;žž·ƒì¿_’ꪋ*’©aIÔã#¥GÕ$6ÅÉL6¹)ºÉư¿Åuf‡ÕU?Ãà4ñmY”bh’,+1ɵVíÝH¯o[߉oÔž `=Á_uq$‹Ð'×Zet£¢Bæ}' «„nTö âHð" Žt/Qär«ÊnD¶í¾zÚµJêFQÅÄ6'=5mÄ4ïzBÚÕÑUFý¾Ù`õº—U‘v½È6´#ËYÐsqóÎÞ[–ÞÉ9ÏQŽmOèr_·ß?>OÿþêÕùîëw—ãóå€ÕÁЦ¯^ÿq>_Ï—Ó7­õPVs˜"èÁ8:ÖL˜š+Za4öýb½ÿtÙà‘ƒÛ"oÞzråÔ á€g£ÌÍY›ÓE7(s>LÅiôÍõ¬jÑKLrü G4Ãv ‡4—¤hvH3éÙÚÙ¶#ÑöÚݶv Eý~î Gð{r¥¨CúƒUpý L"«b¹§¯$+Rk;Ó.™ïÿÓåô‰J;„+ºj@ºCí>f ´µ­…jÙºÖBel¡µP5ZEì¼è2hV Ù¡õi· ‰,bÍLX‚Ö£€SV8,ƒú°¨£îˆßH}j-DŽÏ­…Èñ¥µPÀÁtqѪ˨`ÄNhÙqÄNhsäˆØ²ãˆØ†ÄN‹(âz"j\ñ°Žêã> [2éI‚²ˆE‘žÛÌb;ÐùU±+`°ŽêÃB4?Ú¦±%vhlù£Í™Ú´/S;¢ºüa£ŸžN¿ßÿõÍË}&®ã÷dŒãhôfc|…çÏ<ýî7ý÷÷§§çÛLJ§÷çóüQ±yjøúËûww=žnïOïPp¬¯·Ÿ6†â`® ‡þxþò÷ãÿþ@^þòöçŠ$ÍbÂ#^¿C ˜Æòæ|‡Ž=>Ü?>]îÿ<&?K<âíÏo¾¿ýüÓÓù‰01ûݯ¯oŸŽÏLJ‡ÓÔND¿HŒ ·Ü?\NÏïÏ—¬‡ó]“å˜;Jª‰·Ÿžèeܼüˆ3‹ùåþñËåô™Ä$t¼ýøŠæ^_þûåx¹??~cé\öz¯B³UôË[  fUnÌ™ÌY™q'¥¹YZÌžÅÉšYÄÛÜ 8Ð/j; tH"ÛÌØÃ³Ò¡Ã-y/YðìõC”|øÅõäx:~¨ å|îV«®i-¤ÌywE²ŒUë R»[·,Ôb!Ò"Ò"ï[ ÉË| W ÉKR[fYuµŒ´(çÖ!i‘€Š^<’”Œk-–,¥µ¼Ô»’Æ•ë¨>.’êäÚÌT'h‘’T'/€± `‰ XÌ¢Jϱ Ì-™ÄQ;ÀhGz€6k‹”¤:›6I¤ƒYÐCê›­pƒ~²ƒ>®rXGõq‘TgQ=$Õ0¤'û– [†ÀžÚšƒB–~&iÕeTŽð¢À<Ñ#óDOj×ôDOnwª'zJ‹Ý£çbB×Ëû=Xf·‘ûHW+±f"‹ÀN×/hSëéæ©± c_JV8,ƒú°]²DŠ‚%K " 9%´ ¥ &9±¥4PÀ©O­ºŒÚFìdá0ñůMdÈ|&·†ÂMA‹Ÿ:ÛzЬ&¡_û´ð2¬-²èˆ}YnRKRä‹§mYŠ, °°Hø6„ÙÔ§ŽÖ^†íÀ#¢®ê›ÇQ6 SaS[I| m‘$"ÊŠã,Qì6÷·'­¼ ëƒKD”--‰ˆr¦=œåDÒåœ0QNlD±;ßOmZô)íéS"¢\Xˆ([]|[ˆ™ˆrI˜ˆ(—Å4ŠÝ•¾¤E¤òžHe" „f" lKA&¢Àµ‰ÍDeÏDˆ@3ű_wy‘ª¼'U™ˆ‚Ô£‹QhY)DÔò±§šˆ(ïÄ4"Ê‹r-À½ºéƒ[ôªtôêóéŽ:§¿q÷5oÑÕHò0W}cåŒÎWâÆÎiϾÆÎ¹!7v.î¨>ôµ äð~ÃÛb>x;ïy/7vÞ QÁ»$ê ¸ú“‚·@ŠûA29aɯWy°u© ¸ÅwIÁ¾K*nÔ]VApŸîò 2½oTÍ[¦<«TPnjţ£`ʳ¶3åYGÇ”g5*qþ–ÕÄà˜ñ¢˜âO¬®¨=áêù¥bæO¬®¨Ø3^TlŽ[ƒ¼øãGQp§Ô"ÔLÍÇoc¦ŽJ§:Þ¢³@M`R®1ƒâa3auë8Ä«eÛõòUThÀZ KXŒŽUÁ”ý0@îˆÞGµæ-+ŠÕa°¬XË…UaÐÅ"i+snUpžÉ³ƒb"\r Ïœ[µípü ÆmËš¾E«Ú…úÑJåï1êìâÞѪ›"·Ž& À Q€‘&p»iÔyÃݦ[Ú¸Ù´êlä¦Ñª›(÷Œ&n Š[ÆëÿYÐ…B `¤ôy_Õ¦¯¼¶lr“iÓ–Mn­ú¢À½¢U4·Š&»iw—VŸÜ\ZuóåÞÒªÌ=¢U]·ˆV5&Ô!šýºñâðšÜTZuÄþ( ¬ôWu¤ö+•mô¡ÖãV ¸+´yÿ–ĉ†Ø™`u®s#iËv'pi‹Ä«Ò£vÐn=s7h˾^qÒÇÑAϤU´qyýÿ*Zsý(»-îÙ ·N]=¹ 4ƒ[M'ýüEûÿDÞ8 endstream endobj 1678 0 obj << /Author()/Title(Ipopt documentation)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.12)/Keywords() /CreationDate (D:20130912151152+02'00') /ModDate (D:20130912151152+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) kpathsea version 6.0.1) >> endobj 1638 0 obj << /Type /ObjStm /N 40 /First 392 /Length 1895 /Filter /FlateDecode >> stream xÚ¥˜Mo¹†ïú4]t߯E¦…|-2ÍåWy‘Ô"ÓÜSšž{ªZ/Nëâëíe÷uñU‹Ìóå­Zdž{ªZd^È×"óB¾™òQ¯É6åP>4]tßßt®9¢¡Ès9M‹œÒ<­ENó 4-ršW ¡^SœÖÅ·ÛËîëâ›9ͫٴÈi!_‹œVµÈ2ßàM7¥ÌŸæ¦›RÖ[hºè¾&ÿ®—/f¿ëãKકfÝàº]Ú¸ë–çé]Fnm“Ös©òëé'úz‘ÏÓXá8ÈC´ ò*|‡xäa`Yé™°ù-'¤E_J#-}仉ƒ|·RyïVjä±÷&ÞðBs/tÕ‹^Y#¶n©ÆæØd°c*ƒ,±È A׸m*·‹1[†X÷GÉÃ=(7kYëH7jÓâ µiKC % )mR}ó1[†ª÷¿—‡ó†^=Š4hHhÈ‹†¬òh9ÕwÚp:“/úqMuÚp¤ƒ¶,õàÕ!nëP"ì6µÀoË£–¾æGØ´ýrzóññ°¿ûçnÿ§Çý$ø×ãÓaÿÛÃËáßKdsÍ=4÷p¼Ó{à²Úâ>=½<잺Š/»O}Õëzt•/=ˆìÁâ:µy›ò´ äI|tö xP=pË_²6otÂù/X'DW]qtÅ1yà*b^ý±Ïkö9 ¹òèÊ£+'¯¹¢u_²òÀ¹räÈ+I®‡Ö?_Ä|ñšh€rì&ØM°—”]ÎÆ‡ºøR"²$±[`·Àn]Dr)®’$¯}“qRráÉ…'¯crÉE¤råÊÊï®Ì·Crâ&Ä+).Hø›~­¾Þ8Tܸq?âE•úm/kGm7”ÝPvCÙ e¯pN[Gíö£•ÝDvÙMd¯nv1eºöh}KKü?‹S¼Å+P6+°˜èûýkï¤Øû0Ïþý?_öáþ»Ýa÷ôòéæþ§~îõNR´ 7÷?~=<=>[ªYÊ.Vý<¯cÈ__~ÝßÿãuïÝïßïž?½Ù?ßjëûÝÃþéõíÛû¾~~ýeêÁOoâí»wQ#êiÄ=bR’FÒ#Ñ(÷(kTzT4ª=ªµ5›yÂÔGŠbŒŠFŠ@EcEÀ¢Ñ"pÑxÀhÄd4f45Kà’q \:úSƒÆ%pɸ.—À%ã¸d\—ŒKà’q \2.ƒËÆepÙ¸ .+«¥5.ƒËÆepÙ¸ .—Áeã2¸l\—›ÀMÆMà&ã&p“q¸é¸¦º¨ÆMà&ã&p“q¸É¸ ÜdÜn2®€+ÆpŸ®WÀã ¸rÜMºŒ+àŠq\1®€+ÆpŸÜlÜ n6n77ƒ››ÁÍÆÍàæã>ÖlÜ n6n77ƒ›[À-Æ-àãp‹q ¸Å¸ÜbÜn1n·Ÿ }„Œ[À-Æ-àãVp«q+¸Õ¸ÜjÜ n5n··‚[[Á­Æ­àÖ㳫¯q+¸Õ¸ ÜfÜn3n··û¡a÷?~Ù?ÿQÐÀ|:Ùþ ;®Ä endstream endobj 1679 0 obj << /Type /XRef /Index [0 1680] /Size 1680 /W [1 3 1] /Root 1677 0 R /Info 1678 0 R /ID [<4A1A140CF267CB7C42CA4B18F6A7632C> <4A1A140CF267CB7C42CA4B18F6A7632C>] /Length 3966 /Filter /FlateDecode >> stream xÚ%™klé]Æç?çÛ'Nìc;vâę؉ÇöqìıÇN|IlÇŽ“øçø~‘F°j%`¡,Bm=E«öê­ 0]Uê‡RÊ~ªÊ 1ˆ—•ŠQ ñ(Ñj´—K ¢p~Ï~ùù}Ÿ¹øÌû<ïÌ{qÇù?×q\ǧ‘?§Ï]§¦<€fÀE{‰ÖO5òh+h}T  í5ÚMªµ ®ªeh½T‹à Ú´TëÁY´2ZÕs m­›j#(¡ÝB»Nµ 4£ ¡]£ÚΣÝCë¢Ú ÚРuR½.¢M¡]¥Ú.¡- yT/ƒ´§hW¨ Ú&ZUÝ íš.Ó?¯þ*·bh—¨ê‡w£¹hú—zèh9´‹TÕ`7Ñòhú¹jì~´ëhmTeT­M:n¡Í¢§:†Ñôlj¦ÛàÚZ3ÕpmMM< ÆÐöÑJTïûhh²gT›Øõ¼ T'À$ZMÖ>ÐjÐÎRÓhµhŠÅ ˜Ek@;Cõ1x‚¦\)Rs`M¹ª£ºž¢ÝDSÁÚ0Z Õg`í6š¢ü¼@SîóT_‚4å^Ý`T›.×£¶w©®ƒ 4ý_u¡Mð íšCu ¼F£¿•N¨VÀvU ´cª;`¶*QÝûhmh‡TÀ!Z?šª:ùmmŸ*ÿ(©vö†ÐéJÜ/á—&.¡)íRå)“<Úc4~KB %5h„¦´M•ÖMêÐÑxŽg’3hGh¯©âjRµ;ïàmˆ¤F,½¢Jš’Ú 4Ú/!‰I3¦”6¨’âä<ÚmŸÐ’j»ä‚TZ£JïI.¢]F÷„ž—\BëD[¡J¯M:ÐH Ï:{â¡M ½ JgO:ÑC‰¼$töä/ÁÒ2U:{ÒFÇ)‘µ„ΞT;{>¥C”–¨ÒÙ“›hÍhä4¡³'ýhÚSªtö¤ŒvŒ'töäÚÚñɈO¦ÁñÉHN¦1)É\s^|I7ИK´φ¿ñÉ4 ">™†QÄ'Óà‰Ðdd(Ó¸‰€d5›SùÝTƒ'–Ô`}4ΪØé¡Œ ed(#>Ù0è2Ç/è.¤)#u Ëtš8#/yÉp?»mΛº‚ød$'#9™ÞÞz^’“‘œŒädD%#*QɈJö̘ó+¯[‘œŒ¼dä%#/É^‚@|²5€çÖfš½0ç £º 9Èp?Ãý §3LÎä*Ng83ª’e¯ÍùÍ!‡ªn° ö©@YÓ›:Zg@=8 Îó Îœèu^h%К^dY¶ à"h—ÀeÐÐjΟ|ü?º€½W@ÐØ¶hD;4fãàè7ç/gt^‡€Æ¬·Fª#@ãÓQ Q)CÎÊ` Yy^V¦À3°î›ówuûð0”¬ÌFŒ†¡Æ„•瀑`…¡_e,™óá=Ýe¼ëàØ¯Á6Ø2tÓœì}]¶Kck P‡àˆ‘¥KéÄÌ=â¼XƒÀ³o¶¨Zrf—?¯jàyŒç1žÇÍÊ}:…Ä8·Â·LŽñ7n6›ø-Œç1NÇ8ã`Œ¿q»Ùâ{:÷cFtÞUzràVÌÅØcwŒÉ1Ùˆ»Ì¶Æt"_¸ã~¬k14î7Ûû†ÎÃø»ãþ›NÆé˜”ÄÌ:bBk®—±Fðš*àjŒññ¨ÙOåu?²kB6âGÜTí¢‰îÇš>,MÈK¬©ñ‰×À´Ù›žîG,bMˆ@L,âM€ññºÙç>¥óHDL"b†xìzr,ã+f_jÖàc/¸ÉÁÐŽÍÞý²N9AsÌ]û/Fð= Å{\³oOªš Ù{4¼¤TjÍâ>Â@½§ž÷œà¬ÙŸNë”КA h%³ïý¢N9ZA;¸`öý\—A¸:Á%³\Õ)¸ÊÞ t ô€jTþåtŠ&·(õfÿñO:Ð Ê š—ÿ}WÚÐÉC`܃ææ*:å6cà¸I0jnÔNÀ˜OÀCsÛÿ]§Li0fÁc°ž‚EðÌ™{#§Ë–À3° 4Àb£©à*Єrh©y㊹wÛtƒMP[æN¤éÚÀD±g0=ì9L {Ž€¦‚FiÛÜÙßѵ'æ~ømMIN¨Éžfr®¹;Ÿ×¨),šûÓoë€fwD%~y¸Vg#*嬮ûC•òV÷xL¥‚Õí_¥«{o\¥Z+æ~¢R[¾£RÑŠÏ~¨Ò+nü³Jõà>ìð–´Ö7iÅ7˜ÙÔ”µ³¬­dík³X;€ÚòÓžë å»`°•RÖ2w.sç²ö޹sy<¬$”µÌwº<´çÊ~Yù ˜l¹”µñª]äE°že mwæƒem:j—qhovlm9k™=¯²vÜ+`ì˜ÊÚ¾Õ~­6hÙs(³£S>l7øU·~éÇ´Ï~­Ï†´Ï´Ï–³ÏúϦ£ÏFš_ØþñÏšÝgKÃgÆç3 ÷ÙñY9ö›‹ä>+‹>kæ>ëè>ƒOŸÝŸ ŸýŸ/¶ÏƜώ‰Ï®Ï*“Ïz±Ïʻϓ °.à³Sè÷öÁü^+¾õ•êÃ|毜ÿ AB endstream endobj startxref 623059 %%EOF Ipopt-3.11.4/Ipopt/doc/options.tex0000644000076600007660000024035712164277047015453 0ustar coincoin\subsection{Output} \paragraph{print\_level:}\label{opt:print_level} Output verbosity level. \\ Sets the default verbosity level for console output. The larger this value the more detailed is the output. The valid range for this integer option is $0 \le {\tt print\_level } \le 12$ and its default value is $5$. \paragraph{print\_user\_options:}\label{opt:print_user_options} Print all options set by the user. \\ If selected, the algorithm will print the list of all options set by the user including their values and whether they have been used. In some cases this information might be incorrect, due to the internal program flow. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't print options \item yes: print options \end{itemize} \paragraph{print\_options\_documentation:}\label{opt:print_options_documentation} Switch to print all algorithmic options. \\ If selected, the algorithm will print the list of all available algorithmic options with some documentation before solving the optimization problem. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't print list \item yes: print list \end{itemize} \paragraph{print\_frequency\_iter:}\label{opt:print_frequency_iter} Determines at which iteration frequency the summarizing iteration output line should be printed. \\ Summarizing iteration output is printed every print\_frequency\_iter iterations, if at least print\_frequency\_time seconds have passed since last output. The valid range for this integer option is $1 \le {\tt print\_frequency\_iter } < {\tt +inf}$ and its default value is $1$. \paragraph{print\_frequency\_time:}\label{opt:print_frequency_time} Determines at which time frequency the summarizing iteration output line should be printed. \\ Summarizing iteration output is printed if at least print\_frequency\_time seconds have passed since last output and the iteration number is a multiple of print\_frequency\_iter. The valid range for this real option is $0 \le {\tt print\_frequency\_time } < {\tt +inf}$ and its default value is $0$. \paragraph{output\_file:}\label{opt:output_file} File name of desired output file (leave unset for no file output). \\ NOTE: This option only works when read from the ipopt.opt options file! An output file with this name will be written (leave unset for no file output). The verbosity level is by default set to "print\_level", but can be overridden with "file\_print\_level". The file name is changed to use only small letters. The default value for this string option is "". \\ Possible values: \begin{itemize} \item *: Any acceptable standard file name \end{itemize} \paragraph{file\_print\_level:}\label{opt:file_print_level} Verbosity level for output file. \\ NOTE: This option only works when read from the ipopt.opt options file! Determines the verbosity level for the file specified by "output\_file". By default it is the same as "print\_level". The valid range for this integer option is $0 \le {\tt file\_print\_level } \le 12$ and its default value is $5$. \paragraph{option\_file\_name:}\label{opt:option_file_name} File name of options file. \\ By default, the name of the Ipopt options file is "ipopt.opt" - or something else if specified in the IpoptApplication::Initialize call. If this option is set by SetStringValue BEFORE the options file is read, it specifies the name of the options file. It does not make any sense to specify this option within the options file. Setting this option to an empty string disables reading of an options file. The default value for this string option is "ipopt.opt". \\ Possible values: \begin{itemize} \item *: Any acceptable standard file name \end{itemize} \paragraph{print\_info\_string:}\label{opt:print_info_string} Enables printing of additional info string at end of iteration output. \\ This string contains some insider information about the current iteration. For details, look for "Diagnostic Tags" in the Ipopt documentation. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't print string \item yes: print string at end of each iteration output \end{itemize} \paragraph{inf\_pr\_output:}\label{opt:inf_pr_output} Determines what value is printed in the "inf\_pr" output column. \\ Ipopt works with a reformulation of the original problem, where slacks are introduced and the problem might have been scaled. The choice "internal" prints out the constraint violation of this formulation. With "original" the true constraint violation in the original NLP is printed. The default value for this string option is "original". \\ Possible values: \begin{itemize} \item internal: max-norm of violation of internal equality constraints \item original: maximal constraint violation in original NLP \end{itemize} \paragraph{print\_timing\_statistics:}\label{opt:print_timing_statistics} Switch to print timing statistics. \\ If selected, the program will print the CPU usage (user time) for selected tasks. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't print statistics \item yes: print all timing statistics \end{itemize} \subsection{Termination} \paragraph{tol:}\label{opt:tol} Desired convergence tolerance (relative). \\ Determines the convergence tolerance for the algorithm. The algorithm terminates successfully, if the (scaled) NLP error becomes smaller than this value, and if the (absolute) criteria according to "dual\_inf\_tol", "primal\_inf\_tol", and "compl\_inf\_tol" are met. (This is epsilon\_tol in Eqn. (6) in implementation paper). See also "acceptable\_tol" as a second termination criterion. Note, some other algorithmic features also use this quantity to determine thresholds etc. The valid range for this real option is $0 < {\tt tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \paragraph{max\_iter:}\label{opt:max_iter} Maximum number of iterations. \\ The algorithm terminates with an error message if the number of iterations exceeded this number. The valid range for this integer option is $0 \le {\tt max\_iter } < {\tt +inf}$ and its default value is $3000$. \paragraph{max\_cpu\_time:}\label{opt:max_cpu_time} Maximum number of CPU seconds. \\ A limit on CPU seconds that Ipopt can use to solve one problem. If during the convergence check this limit is exceeded, Ipopt will terminate with a corresponding error message. The valid range for this real option is $0 < {\tt max\_cpu\_time } < {\tt +inf}$ and its default value is $1 \cdot 10^{+06}$. \paragraph{dual\_inf\_tol:}\label{opt:dual_inf_tol} Desired threshold for the dual infeasibility. \\ Absolute tolerance on the dual infeasibility. Successful termination requires that the max-norm of the (unscaled) dual infeasibility is less than this threshold. The valid range for this real option is $0 < {\tt dual\_inf\_tol } < {\tt +inf}$ and its default value is $1$. \paragraph{constr\_viol\_tol:}\label{opt:constr_viol_tol} Desired threshold for the constraint violation. \\ Absolute tolerance on the constraint violation. Successful termination requires that the max-norm of the (unscaled) constraint violation is less than this threshold. The valid range for this real option is $0 < {\tt constr\_viol\_tol } < {\tt +inf}$ and its default value is $0.0001$. \paragraph{compl\_inf\_tol:}\label{opt:compl_inf_tol} Desired threshold for the complementarity conditions. \\ Absolute tolerance on the complementarity. Successful termination requires that the max-norm of the (unscaled) complementarity is less than this threshold. The valid range for this real option is $0 < {\tt compl\_inf\_tol } < {\tt +inf}$ and its default value is $0.0001$. \paragraph{acceptable\_tol:}\label{opt:acceptable_tol} "Acceptable" convergence tolerance (relative). \\ Determines which (scaled) overall optimality error is considered to be "acceptable." There are two levels of termination criteria. If the usual "desired" tolerances (see tol, dual\_inf\_tol etc) are satisfied at an iteration, the algorithm immediately terminates with a success message. On the other hand, if the algorithm encounters "acceptable\_iter" many iterations in a row that are considered "acceptable", it will terminate before the desired convergence tolerance is met. This is useful in cases where the algorithm might not be able to achieve the "desired" level of accuracy. The valid range for this real option is $0 < {\tt acceptable\_tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{-06}$. \paragraph{acceptable\_iter:}\label{opt:acceptable_iter} Number of "acceptable" iterates before triggering termination. \\ If the algorithm encounters this many successive "acceptable" iterates (see "acceptable\_tol"), it terminates, assuming that the problem has been solved to best possible accuracy given round-off. If it is set to zero, this heuristic is disabled. The valid range for this integer option is $0 \le {\tt acceptable\_iter } < {\tt +inf}$ and its default value is $15$. \paragraph{acceptable\_constr\_viol\_tol:}\label{opt:acceptable_constr_viol_tol} "Acceptance" threshold for the constraint violation. \\ Absolute tolerance on the constraint violation. "Acceptable" termination requires that the max-norm of the (unscaled) constraint violation is less than this threshold; see also acceptable\_tol. The valid range for this real option is $0 < {\tt acceptable\_constr\_viol\_tol } < {\tt +inf}$ and its default value is $0.01$. \paragraph{acceptable\_dual\_inf\_tol:}\label{opt:acceptable_dual_inf_tol} "Acceptance" threshold for the dual infeasibility. \\ Absolute tolerance on the dual infeasibility. "Acceptable" termination requires that the (max-norm of the unscaled) dual infeasibility is less than this threshold; see also acceptable\_tol. The valid range for this real option is $0 < {\tt acceptable\_dual\_inf\_tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{+10}$. \paragraph{acceptable\_compl\_inf\_tol:}\label{opt:acceptable_compl_inf_tol} "Acceptance" threshold for the complementarity conditions. \\ Absolute tolerance on the complementarity. "Acceptable" termination requires that the max-norm of the (unscaled) complementarity is less than this threshold; see also acceptable\_tol. The valid range for this real option is $0 < {\tt acceptable\_compl\_inf\_tol } < {\tt +inf}$ and its default value is $0.01$. \paragraph{acceptable\_obj\_change\_tol:}\label{opt:acceptable_obj_change_tol} "Acceptance" stopping criterion based on objective function change. \\ If the relative change of the objective function (scaled by Max(1,|f(x)|)) is less than this value, this part of the acceptable tolerance termination is satisfied; see also acceptable\_tol. This is useful for the quasi-Newton option, which has trouble to bring down the dual infeasibility. The valid range for this real option is $0 \le {\tt acceptable\_obj\_change\_tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{+20}$. \paragraph{diverging\_iterates\_tol:}\label{opt:diverging_iterates_tol} Threshold for maximal value of primal iterates. \\ If any component of the primal iterates exceeded this value (in absolute terms), the optimization is aborted with the exit message that the iterates seem to be diverging. The valid range for this real option is $0 < {\tt diverging\_iterates\_tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{+20}$. \subsection{NLP Scaling} \paragraph{obj\_scaling\_factor:}\label{opt:obj_scaling_factor} Scaling factor for the objective function. \\ This option sets a scaling factor for the objective function. The scaling is seen internally by Ipopt but the unscaled objective is reported in the console output. If additional scaling parameters are computed (e.g. user-scaling or gradient-based), both factors are multiplied. If this value is chosen to be negative, Ipopt will maximize the objective function instead of minimizing it. The valid range for this real option is ${\tt -inf} < {\tt obj\_scaling\_factor } < {\tt +inf}$ and its default value is $1$. \paragraph{nlp\_scaling\_method:}\label{opt:nlp_scaling_method} Select the technique used for scaling the NLP. \\ Selects the technique used for scaling the problem internally before it is solved. For user-scaling, the parameters come from the NLP. If you are using AMPL, they can be specified through suffixes ("scaling\_factor") The default value for this string option is "gradient-based". \\ Possible values: \begin{itemize} \item none: no problem scaling will be performed \item user-scaling: scaling parameters will come from the user \item gradient-based: scale the problem so the maximum gradient at the starting point is scaling\_max\_gradient \item equilibration-based: scale the problem so that first derivatives are of order 1 at random points (only available with MC19) \end{itemize} \paragraph{nlp\_scaling\_max\_gradient:}\label{opt:nlp_scaling_max_gradient} Maximum gradient after NLP scaling. \\ This is the gradient scaling cut-off. If the maximum gradient is above this value, then gradient based scaling will be performed. Scaling parameters are calculated to scale the maximum gradient back to this value. (This is g\_max in Section 3.8 of the implementation paper.) Note: This option is only used if "nlp\_scaling\_method" is chosen as "gradient-based". The valid range for this real option is $0 < {\tt nlp\_scaling\_max\_gradient } < {\tt +inf}$ and its default value is $100$. \paragraph{nlp\_scaling\_min\_value:}\label{opt:nlp_scaling_min_value} Minimum value of gradient-based scaling values. \\ This is the lower bound for the scaling factors computed by gradient-based scaling method. If some derivatives of some functions are huge, the scaling factors will otherwise become very small, and the (unscaled) final constraint violation, for example, might then be significant. Note: This option is only used if "nlp\_scaling\_method" is chosen as "gradient-based". The valid range for this real option is $0 \le {\tt nlp\_scaling\_min\_value } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \subsection{NLP} \paragraph{bound\_relax\_factor:}\label{opt:bound_relax_factor} Factor for initial relaxation of the bounds. \\ Before start of the optimization, the bounds given by the user are relaxed. This option sets the factor for this relaxation. If it is set to zero, then then bounds relaxation is disabled. (See Eqn.(35) in implementation paper.) The valid range for this real option is $0 \le {\tt bound\_relax\_factor } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \paragraph{honor\_original\_bounds:}\label{opt:honor_original_bounds} Indicates whether final points should be projected into original bounds. \\ Ipopt might relax the bounds during the optimization (see, e.g., option "bound\_relax\_factor"). This option determines whether the final point should be projected back into the user-provide original bounds after the optimization. The default value for this string option is "yes". \\ Possible values: \begin{itemize} \item no: Leave final point unchanged \item yes: Project final point back into original bounds \end{itemize} \paragraph{check\_derivatives\_for\_naninf:}\label{opt:check_derivatives_for_naninf} Indicates whether it is desired to check for Nan/Inf in derivative matrices \\ Activating this option will cause an error if an invalid number is detected in the constraint Jacobians or the Lagrangian Hessian. If this is not activated, the test is skipped, and the algorithm might proceed with invalid numbers and fail. If test is activated and an invalid number is detected, the matrix is written to output with print\_level corresponding to J\_MORE\_DETAILED; so beware of large output! The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Don't check (faster). \item yes: Check Jacobians and Hessian for Nan and Inf. \end{itemize} \paragraph{nlp\_lower\_bound\_inf:}\label{opt:nlp_lower_bound_inf} any bound less or equal this value will be considered -inf (i.e. not lower bounded). \\ The valid range for this real option is ${\tt -inf} < {\tt nlp\_lower\_bound\_inf } < {\tt +inf}$ and its default value is $-1 \cdot 10^{+19}$. \paragraph{nlp\_upper\_bound\_inf:}\label{opt:nlp_upper_bound_inf} any bound greater or this value will be considered +inf (i.e. not upper bounded). \\ The valid range for this real option is ${\tt -inf} < {\tt nlp\_upper\_bound\_inf } < {\tt +inf}$ and its default value is $1 \cdot 10^{+19}$. \paragraph{fixed\_variable\_treatment:}\label{opt:fixed_variable_treatment} Determines how fixed variables should be handled. \\ The main difference between those options is that the starting point in the "make\_constraint" case still has the fixed variables at their given values, whereas in the case "make\_parameter" the functions are always evaluated with the fixed values for those variables. Also, for "relax\_bounds", the fixing bound constraints are relaxed (according to" bound\_relax\_factor"). For both "make\_constraints" and "relax\_bounds", bound multipliers are computed for the fixed variables. The default value for this string option is "make\_parameter". \\ Possible values: \begin{itemize} \item make\_parameter: Remove fixed variable from optimization variables \item make\_constraint: Add equality constraints fixing variables \item relax\_bounds: Relax fixing bound constraints \end{itemize} \paragraph{jac\_c\_constant:}\label{opt:jac_c_constant} Indicates whether all equality constraints are linear \\ Activating this option will cause Ipopt to ask for the Jacobian of the equality constraints only once from the NLP and reuse this information later. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Don't assume that all equality constraints are linear \item yes: Assume that equality constraints Jacobian are constant \end{itemize} \paragraph{jac\_d\_constant:}\label{opt:jac_d_constant} Indicates whether all inequality constraints are linear \\ Activating this option will cause Ipopt to ask for the Jacobian of the inequality constraints only once from the NLP and reuse this information later. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Don't assume that all inequality constraints are linear \item yes: Assume that equality constraints Jacobian are constant \end{itemize} \paragraph{hessian\_constant:}\label{opt:hessian_constant} Indicates whether the problem is a quadratic problem \\ Activating this option will cause Ipopt to ask for the Hessian of the Lagrangian function only once from the NLP and reuse this information later. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Assume that Hessian changes \item yes: Assume that Hessian is constant \end{itemize} \subsection{Initialization} \paragraph{bound\_frac:}\label{opt:bound_frac} Desired minimum relative distance from the initial point to bound. \\ Determines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound\_push"). (This is kappa\_2 in Section 3.6 of implementation paper.) The valid range for this real option is $0 < {\tt bound\_frac } \le 0.5$ and its default value is $0.01$. \paragraph{bound\_push:}\label{opt:bound_push} Desired minimum absolute distance from the initial point to bound. \\ Determines how much the initial point might have to be modified in order to be sufficiently inside the bounds (together with "bound\_frac"). (This is kappa\_1 in Section 3.6 of implementation paper.) The valid range for this real option is $0 < {\tt bound\_push } < {\tt +inf}$ and its default value is $0.01$. \paragraph{slack\_bound\_frac:}\label{opt:slack_bound_frac} Desired minimum relative distance from the initial slack to bound. \\ Determines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack\_bound\_push"). (This is kappa\_2 in Section 3.6 of implementation paper.) The valid range for this real option is $0 < {\tt slack\_bound\_frac } \le 0.5$ and its default value is $0.01$. \paragraph{slack\_bound\_push:}\label{opt:slack_bound_push} Desired minimum absolute distance from the initial slack to bound. \\ Determines how much the initial slack variables might have to be modified in order to be sufficiently inside the inequality bounds (together with "slack\_bound\_frac"). (This is kappa\_1 in Section 3.6 of implementation paper.) The valid range for this real option is $0 < {\tt slack\_bound\_push } < {\tt +inf}$ and its default value is $0.01$. \paragraph{bound\_mult\_init\_val:}\label{opt:bound_mult_init_val} Initial value for the bound multipliers. \\ All dual variables corresponding to bound constraints are initialized to this value. The valid range for this real option is $0 < {\tt bound\_mult\_init\_val } < {\tt +inf}$ and its default value is $1$. \paragraph{constr\_mult\_init\_max:}\label{opt:constr_mult_init_max} Maximum allowed least-square guess of constraint multipliers. \\ Determines how large the initial least-square guesses of the constraint multipliers are allowed to be (in max-norm). If the guess is larger than this value, it is discarded and all constraint multipliers are set to zero. This options is also used when initializing the restoration phase. By default, "resto.constr\_mult\_init\_max" (the one used in RestoIterateInitializer) is set to zero. The valid range for this real option is $0 \le {\tt constr\_mult\_init\_max } < {\tt +inf}$ and its default value is $1000$. \paragraph{bound\_mult\_init\_method:}\label{opt:bound_mult_init_method} Initialization method for bound multipliers \\ This option defines how the iterates for the bound multipliers are initialized. If "constant" is chosen, then all bound multipliers are initialized to the value of "bound\_mult\_init\_val". If "mu-based" is chosen, the each value is initialized to the the value of "mu\_init" divided by the corresponding slack variable. This latter option might be useful if the starting point is close to the optimal solution. The default value for this string option is "constant". \\ Possible values: \begin{itemize} \item constant: set all bound multipliers to the value of bound\_mult\_init\_val \item mu-based: initialize to mu\_init/x\_slack \end{itemize} \subsection{Barrier Parameter} \paragraph{mehrotra\_algorithm:}\label{opt:mehrotra_algorithm} Indicates if we want to do Mehrotra's algorithm. \\ If set to yes, Ipopt runs as Mehrotra's predictor-corrector algorithm. This works usually very well for LPs and convex QPs. This automatically disables the line search, and chooses the (unglobalized) adaptive mu strategy with the "probing" oracle, and uses "corrector\_type=affine" without any safeguards; you should not set any of those options explicitly in addition. Also, unless otherwise specified, the values of "bound\_push", "bound\_frac", and "bound\_mult\_init\_val" are set more aggressive, and sets "alpha\_for\_y=bound\_mult". The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Do the usual Ipopt algorithm. \item yes: Do Mehrotra's predictor-corrector algorithm. \end{itemize} \paragraph{mu\_strategy:}\label{opt:mu_strategy} Update strategy for barrier parameter. \\ Determines which barrier parameter update strategy is to be used. The default value for this string option is "monotone". \\ Possible values: \begin{itemize} \item monotone: use the monotone (Fiacco-McCormick) strategy \item adaptive: use the adaptive update strategy \end{itemize} \paragraph{mu\_oracle:}\label{opt:mu_oracle} Oracle for a new barrier parameter in the adaptive strategy. \\ Determines how a new barrier parameter is computed in each "free-mode" iteration of the adaptive barrier parameter strategy. (Only considered if "adaptive" is selected for option "mu\_strategy"). The default value for this string option is "quality-function". \\ Possible values: \begin{itemize} \item probing: Mehrotra's probing heuristic \item loqo: LOQO's centrality rule \item quality-function: minimize a quality function \end{itemize} \paragraph{quality\_function\_max\_section\_steps:}\label{opt:quality_function_max_section_steps} Maximum number of search steps during direct search procedure determining the optimal centering parameter. \\ The golden section search is performed for the quality function based mu oracle. (Only used if option "mu\_oracle" is set to "quality-function".) The valid range for this integer option is $0 \le {\tt quality\_function\_max\_section\_steps } < {\tt +inf}$ and its default value is $8$. \paragraph{fixed\_mu\_oracle:}\label{opt:fixed_mu_oracle} Oracle for the barrier parameter when switching to fixed mode. \\ Determines how the first value of the barrier parameter should be computed when switching to the "monotone mode" in the adaptive strategy. (Only considered if "adaptive" is selected for option "mu\_strategy".) The default value for this string option is "average\_compl". \\ Possible values: \begin{itemize} \item probing: Mehrotra's probing heuristic \item loqo: LOQO's centrality rule \item quality-function: minimize a quality function \item average\_compl: base on current average complementarity \end{itemize} \paragraph{adaptive\_mu\_globalization:}\label{opt:adaptive_mu_globalization} Globalization strategy for the adaptive mu selection mode. \\ To achieve global convergence of the adaptive version, the algorithm has to switch to the monotone mode (Fiacco-McCormick approach) when convergence does not seem to appear. This option sets the criterion used to decide when to do this switch. (Only used if option "mu\_strategy" is chosen as "adaptive".) The default value for this string option is "obj-constr-filter". \\ Possible values: \begin{itemize} \item kkt-error: nonmonotone decrease of kkt-error \item obj-constr-filter: 2-dim filter for objective and constraint violation \item never-monotone-mode: disables globalization \end{itemize} \paragraph{mu\_init:}\label{opt:mu_init} Initial value for the barrier parameter. \\ This option determines the initial value for the barrier parameter (mu). It is only relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if "mu\_strategy" is chosen as "monotone") The valid range for this real option is $0 < {\tt mu\_init } < {\tt +inf}$ and its default value is $0.1$. \paragraph{mu\_max\_fact:}\label{opt:mu_max_fact} Factor for initialization of maximum value for barrier parameter. \\ This option determines the upper bound on the barrier parameter. This upper bound is computed as the average complementarity at the initial point times the value of this option. (Only used if option "mu\_strategy" is chosen as "adaptive".) The valid range for this real option is $0 < {\tt mu\_max\_fact } < {\tt +inf}$ and its default value is $1000$. \paragraph{mu\_max:}\label{opt:mu_max} Maximum value for barrier parameter. \\ This option specifies an upper bound on the barrier parameter in the adaptive mu selection mode. If this option is set, it overwrites the effect of mu\_max\_fact. (Only used if option "mu\_strategy" is chosen as "adaptive".) The valid range for this real option is $0 < {\tt mu\_max } < {\tt +inf}$ and its default value is $100000$. \paragraph{mu\_min:}\label{opt:mu_min} Minimum value for barrier parameter. \\ This option specifies the lower bound on the barrier parameter in the adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and min("tol","compl\_inf\_tol")/("barrier\_tol\_factor"+1), which should be a reasonable value. (Only used if option "mu\_strategy" is chosen as "adaptive".) The valid range for this real option is $0 < {\tt mu\_min } < {\tt +inf}$ and its default value is $1 \cdot 10^{-11}$. \paragraph{mu\_target:}\label{opt:mu_target} Desired value of complementarity. \\ Usually, the barrier parameter is driven to zero and the termination test for complementarity is measured with respect to zero complementarity. However, in some cases it might be desired to have Ipopt solve barrier problem for strictly positive value of the barrier parameter. In this case, the value of "mu\_target" specifies the final value of the barrier parameter, and the termination tests are then defined with respect to the barrier problem for this value of the barrier parameter. The valid range for this real option is $0 \le {\tt mu\_target } < {\tt +inf}$ and its default value is $0$. \paragraph{barrier\_tol\_factor:}\label{opt:barrier_tol_factor} Factor for mu in barrier stop test. \\ The convergence tolerance for each barrier problem in the monotone mode is the value of the barrier parameter times "barrier\_tol\_factor". This option is also used in the adaptive mu strategy during the monotone mode. (This is kappa\_epsilon in implementation paper). The valid range for this real option is $0 < {\tt barrier\_tol\_factor } < {\tt +inf}$ and its default value is $10$. \paragraph{mu\_linear\_decrease\_factor:}\label{opt:mu_linear_decrease_factor} Determines linear decrease rate of barrier parameter. \\ For the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu\_linear\_decrease\_factor" and mu\^"superlinear\_decrease\_power". (This is kappa\_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is $0 < {\tt mu\_linear\_decrease\_factor } < 1$ and its default value is $0.2$. \paragraph{mu\_superlinear\_decrease\_power:}\label{opt:mu_superlinear_decrease_power} Determines superlinear decrease rate of barrier parameter. \\ For the Fiacco-McCormick update procedure the new barrier parameter mu is obtained by taking the minimum of mu*"mu\_linear\_decrease\_factor" and mu\^"superlinear\_decrease\_power". (This is theta\_mu in implementation paper.) This option is also used in the adaptive mu strategy during the monotone mode. The valid range for this real option is $1 < {\tt mu\_superlinear\_decrease\_power } < 2$ and its default value is $1.5$. \subsection{Multiplier Updates} \paragraph{alpha\_for\_y:}\label{opt:alpha_for_y} Method to determine the step size for constraint multipliers. \\ This option determines how the step size (alpha\_y) will be calculated when updating the constraint multipliers. The default value for this string option is "primal". \\ Possible values: \begin{itemize} \item primal: use primal step size \item bound-mult: use step size for the bound multipliers (good for LPs) \item min: use the min of primal and bound multipliers \item max: use the max of primal and bound multipliers \item full: take a full step of size one \item min-dual-infeas: choose step size minimizing new dual infeasibility \item safer-min-dual-infeas: like "min\_dual\_infeas", but safeguarded by "min" and "max" \item primal-and-full: use the primal step size, and full step if delta\_x <= alpha\_for\_y\_tol \item dual-and-full: use the dual step size, and full step if delta\_x <= alpha\_for\_y\_tol \item acceptor: Call LSAcceptor to get step size for y \end{itemize} \paragraph{alpha\_for\_y\_tol:}\label{opt:alpha_for_y_tol} Tolerance for switching to full equality multiplier steps. \\ This is only relevant if "alpha\_for\_y" is chosen "primal-and-full" or "dual-and-full". The step size for the equality constraint multipliers is taken to be one if the max-norm of the primal step is less than this tolerance. The valid range for this real option is $0 \le {\tt alpha\_for\_y\_tol } < {\tt +inf}$ and its default value is $10$. \paragraph{recalc\_y:}\label{opt:recalc_y} Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates. \\ This asks the algorithm to recompute the multipliers, whenever the current infeasibility is less than recalc\_y\_feas\_tol. Choosing yes might be helpful in the quasi-Newton option. However, each recalculation requires an extra factorization of the linear system. If a limited memory quasi-Newton option is chosen, this is used by default. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: use the Newton step to update the multipliers \item yes: use least-square multiplier estimates \end{itemize} \paragraph{recalc\_y\_feas\_tol:}\label{opt:recalc_y_feas_tol} Feasibility threshold for recomputation of multipliers. \\ If recalc\_y is chosen and the current infeasibility is less than this value, then the multipliers are recomputed. The valid range for this real option is $0 < {\tt recalc\_y\_feas\_tol } < {\tt +inf}$ and its default value is $1 \cdot 10^{-06}$. \subsection{Line Search} \paragraph{max\_soc:}\label{opt:max_soc} Maximum number of second order correction trial steps at each iteration. \\ Choosing 0 disables the second order corrections. (This is p\^{max} of Step A-5.9 of Algorithm A in the implementation paper.) The valid range for this integer option is $0 \le {\tt max\_soc } < {\tt +inf}$ and its default value is $4$. \paragraph{watchdog\_shortened\_iter\_trigger:}\label{opt:watchdog_shortened_iter_trigger} Number of shortened iterations that trigger the watchdog. \\ If the number of successive iterations in which the backtracking line search did not accept the first trial point exceeds this number, the watchdog procedure is activated. Choosing "0" here disables the watchdog procedure. The valid range for this integer option is $0 \le {\tt watchdog\_shortened\_iter\_trigger } < {\tt +inf}$ and its default value is $10$. \paragraph{watchdog\_trial\_iter\_max:}\label{opt:watchdog_trial_iter_max} Maximum number of watchdog iterations. \\ This option determines the number of trial iterations allowed before the watchdog procedure is aborted and the algorithm returns to the stored point. The valid range for this integer option is $1 \le {\tt watchdog\_trial\_iter\_max } < {\tt +inf}$ and its default value is $3$. \paragraph{accept\_every\_trial\_step:}\label{opt:accept_every_trial_step} Always accept the first trial step. \\ Setting this option to "yes" essentially disables the line search and makes the algorithm take aggressive steps, without global convergence guarantees. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't arbitrarily accept the full step \item yes: always accept the full step \end{itemize} \paragraph{corrector\_type:}\label{opt:corrector_type} The type of corrector steps that should be taken (unsupported!). \\ If "mu\_strategy" is "adaptive", this option determines what kind of corrector steps should be tried. The default value for this string option is "none". \\ Possible values: \begin{itemize} \item none: no corrector \item affine: corrector step towards mu=0 \item primal-dual: corrector step towards current mu \end{itemize} \subsection{Warm Start} \paragraph{warm\_start\_init\_point:}\label{opt:warm_start_init_point} Warm-start for initial point \\ Indicates whether this optimization should use a warm start initialization, where values of primal and dual variables are given (e.g., from a previous optimization of a related problem.) The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: do not use the warm start initialization \item yes: use the warm start initialization \end{itemize} \paragraph{warm\_start\_bound\_push:}\label{opt:warm_start_bound_push} same as bound\_push for the regular initializer. \\ The valid range for this real option is $0 < {\tt warm\_start\_bound\_push } < {\tt +inf}$ and its default value is $0.001$. \paragraph{warm\_start\_bound\_frac:}\label{opt:warm_start_bound_frac} same as bound\_frac for the regular initializer. \\ The valid range for this real option is $0 < {\tt warm\_start\_bound\_frac } \le 0.5$ and its default value is $0.001$. \paragraph{warm\_start\_slack\_bound\_frac:}\label{opt:warm_start_slack_bound_frac} same as slack\_bound\_frac for the regular initializer. \\ The valid range for this real option is $0 < {\tt warm\_start\_slack\_bound\_frac } \le 0.5$ and its default value is $0.001$. \paragraph{warm\_start\_slack\_bound\_push:}\label{opt:warm_start_slack_bound_push} same as slack\_bound\_push for the regular initializer. \\ The valid range for this real option is $0 < {\tt warm\_start\_slack\_bound\_push } < {\tt +inf}$ and its default value is $0.001$. \paragraph{warm\_start\_mult\_bound\_push:}\label{opt:warm_start_mult_bound_push} same as mult\_bound\_push for the regular initializer. \\ The valid range for this real option is $0 < {\tt warm\_start\_mult\_bound\_push } < {\tt +inf}$ and its default value is $0.001$. \paragraph{warm\_start\_mult\_init\_max:}\label{opt:warm_start_mult_init_max} Maximum initial value for the equality multipliers. \\ The valid range for this real option is ${\tt -inf} < {\tt warm\_start\_mult\_init\_max } < {\tt +inf}$ and its default value is $1 \cdot 10^{+06}$. \subsection{Restoration Phase} \paragraph{expect\_infeasible\_problem:}\label{opt:expect_infeasible_problem} Enable heuristics to quickly detect an infeasible problem. \\ This options is meant to activate heuristics that may speed up the infeasibility determination if you expect that there is a good chance for the problem to be infeasible. In the filter line search procedure, the restoration phase is called more quickly than usually, and more reduction in the constraint violation is enforced before the restoration phase is left. If the problem is square, this option is enabled automatically. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: the problem probably be feasible \item yes: the problem has a good chance to be infeasible \end{itemize} \paragraph{expect\_infeasible\_problem\_ctol:}\label{opt:expect_infeasible_problem_ctol} Threshold for disabling "expect\_infeasible\_problem" option. \\ If the constraint violation becomes smaller than this threshold, the "expect\_infeasible\_problem" heuristics in the filter line search are disabled. If the problem is square, this options is set to 0. The valid range for this real option is $0 \le {\tt expect\_infeasible\_problem\_ctol } < {\tt +inf}$ and its default value is $0.001$. \paragraph{expect\_infeasible\_problem\_ytol:}\label{opt:expect_infeasible_problem_ytol} Multiplier threshold for activating "expect\_infeasible\_problem" option. \\ If the max norm of the constraint multipliers becomes larger than this value and "expect\_infeasible\_problem" is chosen, then the restoration phase is entered. The valid range for this real option is $0 < {\tt expect\_infeasible\_problem\_ytol } < {\tt +inf}$ and its default value is $1 \cdot 10^{+08}$. \paragraph{start\_with\_resto:}\label{opt:start_with_resto} Tells algorithm to switch to restoration phase in first iteration. \\ Setting this option to "yes" forces the algorithm to switch to the feasibility restoration phase in the first iteration. If the initial point is feasible, the algorithm will abort with a failure. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: don't force start in restoration phase \item yes: force start in restoration phase \end{itemize} \paragraph{soft\_resto\_pderror\_reduction\_factor:}\label{opt:soft_resto_pderror_reduction_factor} Required reduction in primal-dual error in the soft restoration phase. \\ The soft restoration phase attempts to reduce the primal-dual error with regular steps. If the damped primal-dual step (damped only to satisfy the fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least this factor, then the regular restoration phase is called. Choosing "0" here disables the soft restoration phase. The valid range for this real option is $0 \le {\tt soft\_resto\_pderror\_reduction\_factor } < {\tt +inf}$ and its default value is $0.9999$. \paragraph{required\_infeasibility\_reduction:}\label{opt:required_infeasibility_reduction} Required reduction of infeasibility before leaving restoration phase. \\ The restoration phase algorithm is performed, until a point is found that is acceptable to the filter and the infeasibility has been reduced by at least the fraction given by this option. The valid range for this real option is $0 \le {\tt required\_infeasibility\_reduction } < 1$ and its default value is $0.9$. \paragraph{bound\_mult\_reset\_threshold:}\label{opt:bound_mult_reset_threshold} Threshold for resetting bound multipliers after the restoration phase. \\ After returning from the restoration phase, the bound multipliers are updated with a Newton step for complementarity. Here, the change in the primal variables during the entire restoration phase is taken to be the corresponding primal Newton step. However, if after the update the largest bound multiplier exceeds the threshold specified by this option, the multipliers are all reset to 1. The valid range for this real option is $0 \le {\tt bound\_mult\_reset\_threshold } < {\tt +inf}$ and its default value is $1000$. \paragraph{constr\_mult\_reset\_threshold:}\label{opt:constr_mult_reset_threshold} Threshold for resetting equality and inequality multipliers after restoration phase. \\ After returning from the restoration phase, the constraint multipliers are recomputed by a least square estimate. This option triggers when those least-square estimates should be ignored. The valid range for this real option is $0 \le {\tt constr\_mult\_reset\_threshold } < {\tt +inf}$ and its default value is $0$. \paragraph{evaluate\_orig\_obj\_at\_resto\_trial:}\label{opt:evaluate_orig_obj_at_resto_trial} Determines if the original objective function should be evaluated at restoration phase trial points. \\ Setting this option to "yes" makes the restoration phase algorithm evaluate the objective function of the original problem at every trial point encountered during the restoration phase, even if this value is not required. In this way, it is guaranteed that the original objective function can be evaluated without error at all accepted iterates; otherwise the algorithm might fail at a point where the restoration phase accepts an iterate that is good for the restoration phase problem, but not the original problem. On the other hand, if the evaluation of the original objective is expensive, this might be costly. The default value for this string option is "yes". \\ Possible values: \begin{itemize} \item no: skip evaluation \item yes: evaluate at every trial point \end{itemize} \subsection{Linear Solver} \paragraph{linear\_solver:}\label{opt:linear_solver} Linear solver used for step computations. \\ Determines which linear algebra package is to be used for the solution of the augmented linear system (for obtaining the search directions). Note, the code must have been compiled with the linear solver you want to choose. Depending on your Ipopt installation, not all options are available. The default value for this string option is "ma27". \\ Possible values: \begin{itemize} \item ma27: use the Harwell routine MA27 \item ma57: use the Harwell routine MA57 \item ma77: use the Harwell routine HSL\_MA77 \item ma86: use the Harwell routine HSL\_MA86 \item ma97: use the Harwell routine HSL\_MA97 \item pardiso: use the Pardiso package \item wsmp: use WSMP package \item mumps: use MUMPS package \item custom: use custom linear solver \end{itemize} \paragraph{linear\_system\_scaling:}\label{opt:linear_system_scaling} Method for scaling the linear system. \\ Determines the method used to compute symmetric scaling factors for the augmented system (see also the "linear\_scaling\_on\_demand" option). This scaling is independent of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57 are selected as linear solvers. This value is only available if Ipopt has been compiled with MC19. The default value for this string option is "mc19". \\ Possible values: \begin{itemize} \item none: no scaling will be performed \item mc19: use the Harwell routine MC19 \item slack-based: use the slack values \end{itemize} \paragraph{linear\_scaling\_on\_demand:}\label{opt:linear_scaling_on_demand} Flag indicating that linear scaling is only done if it seems required. \\ This option is only important if a linear scaling method (e.g., mc19) is used. If you choose "no", then the scaling factors are computed for every linear system from the start. This can be quite expensive. Choosing "yes" means that the algorithm will start the scaling method only when the solutions to the linear system seem not good, and then use it until the end. The default value for this string option is "yes". \\ Possible values: \begin{itemize} \item no: Always scale the linear system. \item yes: Start using linear system scaling if solutions seem not good. \end{itemize} \paragraph{max\_refinement\_steps:}\label{opt:max_refinement_steps} Maximum number of iterative refinement steps per linear system solve. \\ Iterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the maximum number of iterative refinement steps. The valid range for this integer option is $0 \le {\tt max\_refinement\_steps } < {\tt +inf}$ and its default value is $10$. \paragraph{min\_refinement\_steps:}\label{opt:min_refinement_steps} Minimum number of iterative refinement steps per linear system solve. \\ Iterative refinement (on the full unsymmetric system) is performed for each right hand side. This option determines the minimum number of iterative refinements (i.e. at least "min\_refinement\_steps" iterative refinement steps are enforced per right hand side.) The valid range for this integer option is $0 \le {\tt min\_refinement\_steps } < {\tt +inf}$ and its default value is $1$. \subsection{Hessian Perturbation} \paragraph{max\_hessian\_perturbation:}\label{opt:max_hessian_perturbation} Maximum value of regularization parameter for handling negative curvature. \\ In order to guarantee that the search directions are indeed proper descent directions, Ipopt requires that the inertia of the (augmented) linear system for the step computation has the correct number of negative and positive eigenvalues. The idea is that this guides the algorithm away from maximizers and makes Ipopt more likely converge to first order optimal points that are minimizers. If the inertia is not correct, a multiple of the identity matrix is added to the Hessian of the Lagrangian in the augmented system. This parameter gives the maximum value of the regularization parameter. If a regularization of that size is not enough, the algorithm skips this iteration and goes to the restoration phase. (This is delta\_w\^max in the implementation paper.) The valid range for this real option is $0 < {\tt max\_hessian\_perturbation } < {\tt +inf}$ and its default value is $1 \cdot 10^{+20}$. \paragraph{min\_hessian\_perturbation:}\label{opt:min_hessian_perturbation} Smallest perturbation of the Hessian block. \\ The size of the perturbation of the Hessian block is never selected smaller than this value, unless no perturbation is necessary. (This is delta\_w\^min in implementation paper.) The valid range for this real option is $0 \le {\tt min\_hessian\_perturbation } < {\tt +inf}$ and its default value is $1 \cdot 10^{-20}$. \paragraph{first\_hessian\_perturbation:}\label{opt:first_hessian_perturbation} Size of first x-s perturbation tried. \\ The first value tried for the x-s perturbation in the inertia correction scheme.(This is delta\_0 in the implementation paper.) The valid range for this real option is $0 < {\tt first\_hessian\_perturbation } < {\tt +inf}$ and its default value is $0.0001$. \paragraph{perturb\_inc\_fact\_first:}\label{opt:perturb_inc_fact_first} Increase factor for x-s perturbation for very first perturbation. \\ The factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of the very first perturbation and allows a different value for for the first perturbation than that used for the remaining perturbations. (This is bar\_kappa\_w\^+ in the implementation paper.) The valid range for this real option is $1 < {\tt perturb\_inc\_fact\_first } < {\tt +inf}$ and its default value is $100$. \paragraph{perturb\_inc\_fact:}\label{opt:perturb_inc_fact} Increase factor for x-s perturbation. \\ The factor by which the perturbation is increased when a trial value was not sufficient - this value is used for the computation of all perturbations except for the first. (This is kappa\_w\^+ in the implementation paper.) The valid range for this real option is $1 < {\tt perturb\_inc\_fact } < {\tt +inf}$ and its default value is $8$. \paragraph{perturb\_dec\_fact:}\label{opt:perturb_dec_fact} Decrease factor for x-s perturbation. \\ The factor by which the perturbation is decreased when a trial value is deduced from the size of the most recent successful perturbation. (This is kappa\_w\^- in the implementation paper.) The valid range for this real option is $0 < {\tt perturb\_dec\_fact } < 1$ and its default value is $0.333333$. \paragraph{jacobian\_regularization\_value:}\label{opt:jacobian_regularization_value} Size of the regularization for rank-deficient constraint Jacobians. \\ (This is bar delta\_c in the implementation paper.) The valid range for this real option is $0 \le {\tt jacobian\_regularization\_value } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \subsection{Quasi-Newton} \paragraph{hessian\_approximation:}\label{opt:hessian_approximation} Indicates what Hessian information is to be used. \\ This determines which kind of information for the Hessian of the Lagrangian function is used by the algorithm. The default value for this string option is "exact". \\ Possible values: \begin{itemize} \item exact: Use second derivatives provided by the NLP. \item limited-memory: Perform a limited-memory quasi-Newton approximation \end{itemize} \paragraph{limited\_memory\_update\_type:}\label{opt:limited_memory_update_type} Quasi-Newton update formula for the limited memory approximation. \\ Determines which update formula is to be used for the limited-memory quasi-Newton approximation. The default value for this string option is "bfgs". \\ Possible values: \begin{itemize} \item bfgs: BFGS update (with skipping) \item sr1: SR1 (not working well) \end{itemize} \paragraph{limited\_memory\_max\_history:}\label{opt:limited_memory_max_history} Maximum size of the history for the limited quasi-Newton Hessian approximation. \\ This option determines the number of most recent iterations that are taken into account for the limited-memory quasi-Newton approximation. The valid range for this integer option is $0 \le {\tt limited\_memory\_max\_history } < {\tt +inf}$ and its default value is $6$. \paragraph{limited\_memory\_max\_skipping:}\label{opt:limited_memory_max_skipping} Threshold for successive iterations where update is skipped. \\ If the update is skipped more than this number of successive iterations, we quasi-Newton approximation is reset. The valid range for this integer option is $1 \le {\tt limited\_memory\_max\_skipping } < {\tt +inf}$ and its default value is $2$. \paragraph{limited\_memory\_initialization:}\label{opt:limited_memory_initialization} Initialization strategy for the limited memory quasi-Newton approximation. \\ Determines how the diagonal Matrix B\_0 as the first term in the limited memory approximation should be computed. The default value for this string option is "scalar1". \\ Possible values: \begin{itemize} \item scalar1: sigma = s\^Ty/s\^Ts \item scalar2: sigma = y\^Ty/s\^Ty \item scalar3: arithmetic average of scalar1 and scalar2 \item scalar4: geometric average of scalar1 and scalar2 \item constant: sigma = limited\_memory\_init\_val \end{itemize} \paragraph{limited\_memory\_init\_val:}\label{opt:limited_memory_init_val} Value for B0 in low-rank update. \\ The starting matrix in the low rank update, B0, is chosen to be this multiple of the identity in the first iteration (when no updates have been performed yet), and is constantly chosen as this value, if "limited\_memory\_initialization" is "constant". The valid range for this real option is $0 < {\tt limited\_memory\_init\_val } < {\tt +inf}$ and its default value is $1$. \paragraph{limited\_memory\_init\_val\_max:}\label{opt:limited_memory_init_val_max} Upper bound on value for B0 in low-rank update. \\ The starting matrix in the low rank update, B0, is chosen to be this multiple of the identity in the first iteration (when no updates have been performed yet), and is constantly chosen as this value, if "limited\_memory\_initialization" is "constant". The valid range for this real option is $0 < {\tt limited\_memory\_init\_val\_max } < {\tt +inf}$ and its default value is $1 \cdot 10^{+08}$. \paragraph{limited\_memory\_init\_val\_min:}\label{opt:limited_memory_init_val_min} Lower bound on value for B0 in low-rank update. \\ The starting matrix in the low rank update, B0, is chosen to be this multiple of the identity in the first iteration (when no updates have been performed yet), and is constantly chosen as this value, if "limited\_memory\_initialization" is "constant". The valid range for this real option is $0 < {\tt limited\_memory\_init\_val\_min } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \paragraph{limited\_memory\_special\_for\_resto:}\label{opt:limited_memory_special_for_resto} Determines if the quasi-Newton updates should be special during the restoration phase. \\ Until Nov 2010, Ipopt used a special update during the restoration phase, but it turned out that this does not work well. The new default uses the regular update procedure and it improves results. If for some reason you want to get back to the original update, set this option to "yes". The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: use the same update as in regular iterations \item yes: use the a special update during restoration phase \end{itemize} \subsection{Derivative Test} \paragraph{derivative\_test:}\label{opt:derivative_test} Enable derivative checker \\ If this option is enabled, a (slow!) derivative test will be performed before the optimization. The test is performed at the user provided starting point and marks derivative values that seem suspicious The default value for this string option is "none". \\ Possible values: \begin{itemize} \item none: do not perform derivative test \item first-order: perform test of first derivatives at starting point \item second-order: perform test of first and second derivatives at starting point \item only-second-order: perform test of second derivatives at starting point \end{itemize} \paragraph{derivative\_test\_perturbation:}\label{opt:derivative_test_perturbation} Size of the finite difference perturbation in derivative test. \\ This determines the relative perturbation of the variable entries. The valid range for this real option is $0 < {\tt derivative\_test\_perturbation } < {\tt +inf}$ and its default value is $1 \cdot 10^{-08}$. \paragraph{derivative\_test\_tol:}\label{opt:derivative_test_tol} Threshold for indicating wrong derivative. \\ If the relative deviation of the estimated derivative from the given one is larger than this value, the corresponding derivative is marked as wrong. The valid range for this real option is $0 < {\tt derivative\_test\_tol } < {\tt +inf}$ and its default value is $0.0001$. \paragraph{derivative\_test\_print\_all:}\label{opt:derivative_test_print_all} Indicates whether information for all estimated derivatives should be printed. \\ Determines verbosity of derivative checker. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Print only suspect derivatives \item yes: Print all derivatives \end{itemize} \paragraph{derivative\_test\_first\_index:}\label{opt:derivative_test_first_index} Index of first quantity to be checked by derivative checker \\ If this is set to -2, then all derivatives are checked. Otherwise, for the first derivative test it specifies the first variable for which the test is done (counting starts at 0). For second derivatives, it specifies the first constraint for which the test is done; counting of constraint indices starts at 0, and -1 refers to the objective function Hessian. The valid range for this integer option is $-2 \le {\tt derivative\_test\_first\_index } < {\tt +inf}$ and its default value is $-2$. \paragraph{point\_perturbation\_radius:}\label{opt:point_perturbation_radius} Maximal perturbation of an evaluation point. \\ If a random perturbation of a points is required, this number indicates the maximal perturbation. This is for example used when determining the center point at which the finite difference derivative test is executed. The valid range for this real option is $0 \le {\tt point\_perturbation\_radius } < {\tt +inf}$ and its default value is $10$. \subsection{MA27 Linear Solver} \paragraph{ma27\_pivtol:}\label{opt:ma27_pivtol} Pivot tolerance for the linear solver MA27. \\ A smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is $0 < {\tt ma27\_pivtol } < 1$ and its default value is $1 \cdot 10^{-08}$. \paragraph{ma27\_pivtolmax:}\label{opt:ma27_pivtolmax} Maximum pivot tolerance for the linear solver MA27. \\ Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is $0 < {\tt ma27\_pivtolmax } < 1$ and its default value is $0.0001$. \paragraph{ma27\_liw\_init\_factor:}\label{opt:ma27_liw_init_factor} Integer workspace memory for MA27. \\ The initial integer workspace memory = liw\_init\_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc\_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is $1 \le {\tt ma27\_liw\_init\_factor } < {\tt +inf}$ and its default value is $5$. \paragraph{ma27\_la\_init\_factor:}\label{opt:ma27_la_init_factor} Real workspace memory for MA27. \\ The initial real workspace memory = la\_init\_factor * memory required by unfactored system. Ipopt will increase the workspace size by meminc\_factor if required. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is $1 \le {\tt ma27\_la\_init\_factor } < {\tt +inf}$ and its default value is $5$. \paragraph{ma27\_meminc\_factor:}\label{opt:ma27_meminc_factor} Increment factor for workspace size for MA27. \\ If the integer or real workspace is not large enough, Ipopt will increase its size by this factor. This option is only available if Ipopt has been compiled with MA27. The valid range for this real option is $1 \le {\tt ma27\_meminc\_factor } < {\tt +inf}$ and its default value is $2$. \subsection{MA57 Linear Solver} \paragraph{ma57\_pivtol:}\label{opt:ma57_pivtol} Pivot tolerance for the linear solver MA57. \\ A smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is $0 < {\tt ma57\_pivtol } < 1$ and its default value is $1 \cdot 10^{-08}$. \paragraph{ma57\_pivtolmax:}\label{opt:ma57_pivtolmax} Maximum pivot tolerance for the linear solver MA57. \\ Ipopt may increase pivtol as high as ma57\_pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is $0 < {\tt ma57\_pivtolmax } < 1$ and its default value is $0.0001$. \paragraph{ma57\_pre\_alloc:}\label{opt:ma57_pre_alloc} Safety factor for work space memory allocation for the linear solver MA57. \\ If 1 is chosen, the suggested amount of work space is used. However, choosing a larger number might avoid reallocation if the suggest values do not suffice. This option is only available if Ipopt has been compiled with MA57. The valid range for this real option is $1 \le {\tt ma57\_pre\_alloc } < {\tt +inf}$ and its default value is $1.05$. \paragraph{ma57\_pivot\_order:}\label{opt:ma57_pivot_order} Controls pivot order in MA57 \\ This is ICNTL(6) in MA57. The valid range for this integer option is $0 \le {\tt ma57\_pivot\_order } \le 5$ and its default value is $5$. \paragraph{ma57\_automatic\_scaling:}\label{opt:ma57_automatic_scaling} Controls MA57 automatic scaling \\ This option controls the internal scaling option of MA57. For higher reliability of the MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57. The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Do not scale the linear system matrix \item yes: Scale the linear system matrix \end{itemize} \paragraph{ma57\_block\_size:}\label{opt:ma57_block_size} Controls block size used by Level 3 BLAS in MA57BD \\ This is ICNTL(11) in MA57. The valid range for this integer option is $1 \le {\tt ma57\_block\_size } < {\tt +inf}$ and its default value is $16$. \paragraph{ma57\_node\_amalgamation:}\label{opt:ma57_node_amalgamation} Node amalgamation parameter \\ This is ICNTL(12) in MA57. The valid range for this integer option is $1 \le {\tt ma57\_node\_amalgamation } < {\tt +inf}$ and its default value is $16$. \paragraph{ma57\_small\_pivot\_flag:}\label{opt:ma57_small_pivot_flag} If set to 1, then when small entries defined by CNTL(2) are detected they are removed and the corresponding pivots placed at the end of the factorization. This can be particularly efficient if the matrix is highly rank deficient. \\ This is ICNTL(16) in MA57. The valid range for this integer option is $0 \le {\tt ma57\_small\_pivot\_flag } \le 1$ and its default value is $0$. \subsection{MA77 Linear Solver} \paragraph{ma77\_print\_level:}\label{opt:ma77_print_level} Debug printing level for the linear solver MA77 \\ The valid range for this integer option is ${\tt -inf} < {\tt ma77\_print\_level } < {\tt +inf}$ and its default value is $-1$. \paragraph{ma77\_buffer\_lpage:}\label{opt:ma77_buffer_lpage} Number of scalars per MA77 buffer page \\ Number of scalars per an in-core buffer in the out-of-core solver MA77. Must be at most ma77\_file\_size. The valid range for this integer option is $1 \le {\tt ma77\_buffer\_lpage } < {\tt +inf}$ and its default value is $4096$. \paragraph{ma77\_buffer\_npage:}\label{opt:ma77_buffer_npage} Number of pages that make up MA77 buffer \\ Number of pages of size buffer\_lpage that exist in-core for the out-of-core solver MA77. The valid range for this integer option is $1 \le {\tt ma77\_buffer\_npage } < {\tt +inf}$ and its default value is $1600$. \paragraph{ma77\_file\_size:}\label{opt:ma77_file_size} Target size of each temporary file for MA77, scalars per type \\ MA77 uses many temporary files, this option controls the size of each one. It is measured in the number of entries (int or double), NOT bytes. The valid range for this integer option is $1 \le {\tt ma77\_file\_size } < {\tt +inf}$ and its default value is $2097152$. \paragraph{ma77\_maxstore:}\label{opt:ma77_maxstore} Maximum storage size for MA77 in-core mode \\ If greater than zero, the maximum size of factors stored in core before out-of-core mode is invoked. The valid range for this integer option is $0 \le {\tt ma77\_maxstore } < {\tt +inf}$ and its default value is $0$. \paragraph{ma77\_nemin:}\label{opt:ma77_nemin} Node Amalgamation parameter \\ Two nodes in elimination tree are merged if result has fewer than ma77\_nemin variables. The valid range for this integer option is $1 \le {\tt ma77\_nemin } < {\tt +inf}$ and its default value is $8$. \paragraph{ma77\_order:}\label{opt:ma77_order} Controls type of ordering used by HSL\_MA77 \\ This option controls ordering for the solver HSL\_MA77. The default value for this string option is "metis". \\ Possible values: \begin{itemize} \item amd: Use the HSL\_MC68 approximate minimum degree algorithm \item metis: Use the MeTiS nested dissection algorithm (if available) \end{itemize} \paragraph{ma77\_small:}\label{opt:ma77_small} Zero Pivot Threshold \\ Any pivot less than ma77\_small is treated as zero. The valid range for this real option is $0 \le {\tt ma77\_small } < {\tt +inf}$ and its default value is $1 \cdot 10^{-20}$. \paragraph{ma77\_static:}\label{opt:ma77_static} Static Pivoting Threshold \\ See MA77 documentation. Either ma77\_static=0.0 or ma77\_static>ma77\_small. ma77\_static=0.0 disables static pivoting. The valid range for this real option is $0 \le {\tt ma77\_static } < {\tt +inf}$ and its default value is $0$. \paragraph{ma77\_u:}\label{opt:ma77_u} Pivoting Threshold \\ See MA77 documentation. The valid range for this real option is $0 \le {\tt ma77\_u } \le 0.5$ and its default value is $1 \cdot 10^{-08}$. \paragraph{ma77\_umax:}\label{opt:ma77_umax} Maximum Pivoting Threshold \\ Maximum value to which u will be increased to improve quality. The valid range for this real option is $0 \le {\tt ma77\_umax } \le 0.5$ and its default value is $0.0001$. \subsection{MA86 Linear Solver} \paragraph{ma86\_print\_level:}\label{opt:ma86_print_level} Debug printing level for the linear solver MA86 \\ The valid range for this integer option is ${\tt -inf} < {\tt ma86\_print\_level } < {\tt +inf}$ and its default value is $-1$. \paragraph{ma86\_nemin:}\label{opt:ma86_nemin} Node Amalgamation parameter \\ Two nodes in elimination tree are merged if result has fewer than ma86\_nemin variables. The valid range for this integer option is $1 \le {\tt ma86\_nemin } < {\tt +inf}$ and its default value is $32$. \paragraph{ma86\_order:}\label{opt:ma86_order} Controls type of ordering used by HSL\_MA86 \\ This option controls ordering for the solver HSL\_MA86. The default value for this string option is "auto". \\ Possible values: \begin{itemize} \item auto: Try both AMD and MeTiS, pick best \item amd: Use the HSL\_MC68 approximate minimum degree algorithm \item metis: Use the MeTiS nested dissection algorithm (if available) \end{itemize} \paragraph{ma86\_scaling:}\label{opt:ma86_scaling} Controls scaling of matrix \\ This option controls scaling for the solver HSL\_MA86. The default value for this string option is "mc64". \\ Possible values: \begin{itemize} \item none: Do not scale the linear system matrix \item mc64: Scale linear system matrix using MC64 \item mc77: Scale linear system matrix using MC77 [1,3,0] \end{itemize} \paragraph{ma86\_small:}\label{opt:ma86_small} Zero Pivot Threshold \\ Any pivot less than ma86\_small is treated as zero. The valid range for this real option is $0 \le {\tt ma86\_small } < {\tt +inf}$ and its default value is $1 \cdot 10^{-20}$. \paragraph{ma86\_static:}\label{opt:ma86_static} Static Pivoting Threshold \\ See MA86 documentation. Either ma86\_static=0.0 or ma86\_static>ma86\_small. ma86\_static=0.0 disables static pivoting. The valid range for this real option is $0 \le {\tt ma86\_static } < {\tt +inf}$ and its default value is $0$. \paragraph{ma86\_u:}\label{opt:ma86_u} Pivoting Threshold \\ See MA86 documentation. The valid range for this real option is $0 \le {\tt ma86\_u } \le 0.5$ and its default value is $1 \cdot 10^{-08}$. \paragraph{ma86\_umax:}\label{opt:ma86_umax} Maximum Pivoting Threshold \\ Maximum value to which u will be increased to improve quality. The valid range for this real option is $0 \le {\tt ma86\_umax } \le 0.5$ and its default value is $0.0001$. \subsection{MA97 Linear Solver} \paragraph{ma97\_print\_level:}\label{opt:ma97_print_level} Debug printing level for the linear solver MA97 \\ The valid range for this integer option is ${\tt -inf} < {\tt ma97\_print\_level } < {\tt +inf}$ and its default value is $0$. \paragraph{ma97\_nemin:}\label{opt:ma97_nemin} Node Amalgamation parameter \\ Two nodes in elimination tree are merged if result has fewer than ma97\_nemin variables. The valid range for this integer option is $1 \le {\tt ma97\_nemin } < {\tt +inf}$ and its default value is $8$. \paragraph{ma97\_order:}\label{opt:ma97_order} Controls type of ordering used by HSL\_MA97 \\ The default value for this string option is "auto". \\ Possible values: \begin{itemize} \item auto: Use HSL\_MA97 heuristic to guess best of AMD and METIS \item best: Try both AMD and MeTiS, pick best \item amd: Use the HSL\_MC68 approximate minimum degree algorithm \item metis: Use the MeTiS nested dissection algorithm \item matched-auto: Use the HSL\_MC80 matching with heuristic choice of AMD or METIS \item matched-metis: Use the HSL\_MC80 matching based ordering with METIS \item matched-amd: Use the HSL\_MC80 matching based ordering with AMD \end{itemize} \paragraph{ma97\_scaling:}\label{opt:ma97_scaling} Specifies strategy for scaling in HSL\_MA97 linear solver \\ The default value for this string option is "dynamic". \\ Possible values: \begin{itemize} \item none: Do not scale the linear system matrix \item mc30: Scale all linear system matrices using MC30 \item mc64: Scale all linear system matrices using MC64 \item mc77: Scale all linear system matrices using MC77 [1,3,0] \item dynamic: Dynamically select scaling according to rules specified by ma97\_scalingX and ma97\_switchX options. \end{itemize} \paragraph{ma97\_scaling1:}\label{opt:ma97_scaling1} First scaling. \\ If ma97\_scaling=dynamic, this scaling is used according to the trigger ma97\_switch1. If ma97\_switch2 is triggered it is disabled. The default value for this string option is "mc64". \\ Possible values: \begin{itemize} \item none: No scaling \item mc30: Scale linear system matrix using MC30 \item mc64: Scale linear system matrix using MC64 \item mc77: Scale linear system matrix using MC77 [1,3,0] \end{itemize} \paragraph{ma97\_scaling2:}\label{opt:ma97_scaling2} Second scaling. \\ If ma97\_scaling=dynamic, this scaling is used according to the trigger ma97\_switch2. If ma97\_switch3 is triggered it is disabled. The default value for this string option is "mc64". \\ Possible values: \begin{itemize} \item none: No scaling \item mc30: Scale linear system matrix using MC30 \item mc64: Scale linear system matrix using MC64 \item mc77: Scale linear system matrix using MC77 [1,3,0] \end{itemize} \paragraph{ma97\_scaling3:}\label{opt:ma97_scaling3} Third scaling. \\ If ma97\_scaling=dynamic, this scaling is used according to the trigger ma97\_switch3. The default value for this string option is "mc64". \\ Possible values: \begin{itemize} \item none: No scaling \item mc30: Scale linear system matrix using MC30 \item mc64: Scale linear system matrix using MC64 \item mc77: Scale linear system matrix using MC77 [1,3,0] \end{itemize} \paragraph{ma97\_small:}\label{opt:ma97_small} Zero Pivot Threshold \\ Any pivot less than ma97\_small is treated as zero. The valid range for this real option is $0 \le {\tt ma97\_small } < {\tt +inf}$ and its default value is $1 \cdot 10^{-20}$. \paragraph{ma97\_solve\_blas3:}\label{opt:ma97_solve_blas3} Controls if blas2 or blas3 routines are used for solve \\ The default value for this string option is "no". \\ Possible values: \begin{itemize} \item no: Use BLAS2 (faster, some implementations bit incompatible) \item yes: Use BLAS3 (slower) \end{itemize} \paragraph{ma97\_switch1:}\label{opt:ma97_switch1} First switch, determine when ma97\_scaling1 is enabled. \\ If ma97\_scaling=dynamic, ma97\_scaling1 is enabled according to this condition. If ma97\_switch2 occurs this option is henceforth ignored. The default value for this string option is "od\_hd\_reuse". \\ Possible values: \begin{itemize} \item never: Scaling is never enabled. \item at\_start: Scaling to be used from the very start. \item at\_start\_reuse: Scaling to be used on first iteration, then reused thereafter. \item on\_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). \item on\_demand\_reuse: As on\_demand, but reuse scaling from previous itr \item high\_delay: Scaling to be used after more than 0.05*n delays are present \item high\_delay\_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr \item od\_hd: Combination of on\_demand and high\_delay \item od\_hd\_reuse: Combination of on\_demand\_reuse and high\_delay\_reuse \end{itemize} \paragraph{ma97\_switch2:}\label{opt:ma97_switch2} Second switch, determine when ma97\_scaling2 is enabled. \\ If ma97\_scaling=dynamic, ma97\_scaling2 is enabled according to this condition. If ma97\_switch3 occurs this option is henceforth ignored. The default value for this string option is "never". \\ Possible values: \begin{itemize} \item never: Scaling is never enabled. \item at\_start: Scaling to be used from the very start. \item at\_start\_reuse: Scaling to be used on first iteration, then reused thereafter. \item on\_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). \item on\_demand\_reuse: As on\_demand, but reuse scaling from previous itr \item high\_delay: Scaling to be used after more than 0.05*n delays are present \item high\_delay\_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr \item od\_hd: Combination of on\_demand and high\_delay \item od\_hd\_reuse: Combination of on\_demand\_reuse and high\_delay\_reuse \end{itemize} \paragraph{ma97\_switch3:}\label{opt:ma97_switch3} Third switch, determine when ma97\_scaling3 is enabled. \\ If ma97\_scaling=dynamic, ma97\_scaling3 is enabled according to this condition. The default value for this string option is "never". \\ Possible values: \begin{itemize} \item never: Scaling is never enabled. \item at\_start: Scaling to be used from the very start. \item at\_start\_reuse: Scaling to be used on first iteration, then reused thereafter. \item on\_demand: Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed). \item on\_demand\_reuse: As on\_demand, but reuse scaling from previous itr \item high\_delay: Scaling to be used after more than 0.05*n delays are present \item high\_delay\_reuse: Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr \item od\_hd: Combination of on\_demand and high\_delay \item od\_hd\_reuse: Combination of on\_demand\_reuse and high\_delay\_reuse \end{itemize} \paragraph{ma97\_u:}\label{opt:ma97_u} Pivoting Threshold \\ See MA97 documentation. The valid range for this real option is $0 \le {\tt ma97\_u } \le 0.5$ and its default value is $1 \cdot 10^{-08}$. \paragraph{ma97\_umax:}\label{opt:ma97_umax} Maximum Pivoting Threshold \\ See MA97 documentation. The valid range for this real option is $0 \le {\tt ma97\_umax } \le 0.5$ and its default value is $0.0001$. \subsection{MUMPS Linear Solver} \paragraph{mumps\_pivtol:}\label{opt:mumps_pivtol} Pivot tolerance for the linear solver MUMPS. \\ A smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is $0 \le {\tt mumps\_pivtol } \le 1$ and its default value is $1 \cdot 10^{-06}$. \paragraph{mumps\_pivtolmax:}\label{opt:mumps_pivtolmax} Maximum pivot tolerance for the linear solver MUMPS. \\ Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with MUMPS. The valid range for this real option is $0 \le {\tt mumps\_pivtolmax } \le 1$ and its default value is $0.1$. \paragraph{mumps\_mem\_percent:}\label{opt:mumps_mem_percent} Percentage increase in the estimated working space for MUMPS. \\ In MUMPS when significant extra fill-in is caused by numerical pivoting, larger values of mumps\_mem\_percent may help use the workspace more efficiently. On the other hand, if memory requirement are too large at the very beginning of the optimization, choosing a much smaller value for this option, such as 5, might reduce memory requirements. The valid range for this integer option is $0 \le {\tt mumps\_mem\_percent } < {\tt +inf}$ and its default value is $1000$. \paragraph{mumps\_permuting\_scaling:}\label{opt:mumps_permuting_scaling} Controls permuting and scaling in MUMPS \\ This is ICNTL(6) in MUMPS. The valid range for this integer option is $0 \le {\tt mumps\_permuting\_scaling } \le 7$ and its default value is $7$. \paragraph{mumps\_pivot\_order:}\label{opt:mumps_pivot_order} Controls pivot order in MUMPS \\ This is ICNTL(7) in MUMPS. The valid range for this integer option is $0 \le {\tt mumps\_pivot\_order } \le 7$ and its default value is $7$. \paragraph{mumps\_scaling:}\label{opt:mumps_scaling} Controls scaling in MUMPS \\ This is ICNTL(8) in MUMPS. The valid range for this integer option is $-2 \le {\tt mumps\_scaling } \le 77$ and its default value is $77$. \subsection{Pardiso Linear Solver} \paragraph{pardiso\_msglvl:}\label{opt:pardiso_msglvl} Pardiso message level \\ This determines the amount of analysis output from the Pardiso solver. This is MSGLVL in the Pardiso manual. The valid range for this integer option is $0 \le {\tt pardiso\_msglvl } < {\tt +inf}$ and its default value is $0$. \paragraph{pardiso\_matching\_strategy:}\label{opt:pardiso_matching_strategy} Matching strategy to be used by Pardiso \\ This is IPAR(13) in Pardiso manual. This option is only available if Ipopt has been compiled with Pardiso. The default value for this string option is "complete+2x2". \\ Possible values: \begin{itemize} \item complete: Match complete (IPAR(13)=1) \item complete+2x2: Match complete+2x2 (IPAR(13)=2) \item constraints: Match constraints (IPAR(13)=3) \end{itemize} \paragraph{pardiso\_out\_of\_core\_power:}\label{opt:pardiso_out_of_core_power} Enables out-of-core variant of Pardiso \\ Setting this option to a positive integer k makes Pardiso work in the out-of-core variant where the factor is split in 2\^k subdomains. This is IPARM(50) in the Pardiso manual. This option is only available if Ipopt has been compiled with Pardiso. The valid range for this integer option is $0 \le {\tt pardiso\_out\_of\_core\_power } < {\tt +inf}$ and its default value is $0$. \subsection{WSMP Linear Solver} \paragraph{wsmp\_num\_threads:}\label{opt:wsmp_num_threads} Number of threads to be used in WSMP \\ This determines on how many processors WSMP is running on. This option is only available if Ipopt has been compiled with WSMP. The valid range for this integer option is ${\tt -inf} < {\tt wsmp\_num\_threads } < {\tt +inf}$ and its default value is $1$. \paragraph{wsmp\_ordering\_option:}\label{opt:wsmp_ordering_option} Determines how ordering is done in WSMP (IPARM(16) \\ This corresponds to the value of WSSMP's IPARM(16). This option is only available if Ipopt has been compiled with WSMP. The valid range for this integer option is $-2 \le {\tt wsmp\_ordering\_option } \le 3$ and its default value is $1$. \paragraph{wsmp\_pivtol:}\label{opt:wsmp_pivtol} Pivot tolerance for the linear solver WSMP. \\ A smaller number pivots for sparsity, a larger number pivots for stability. This option is only available if Ipopt has been compiled with WSMP. The valid range for this real option is $0 < {\tt wsmp\_pivtol } < 1$ and its default value is $0.0001$. \paragraph{wsmp\_pivtolmax:}\label{opt:wsmp_pivtolmax} Maximum pivot tolerance for the linear solver WSMP. \\ Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the linear system. This option is only available if Ipopt has been compiled with WSMP. The valid range for this real option is $0 < {\tt wsmp\_pivtolmax } < 1$ and its default value is $0.1$. \paragraph{wsmp\_scaling:}\label{opt:wsmp_scaling} Determines how the matrix is scaled by WSMP. \\ This corresponds to the value of WSSMP's IPARM(10). This option is only available if Ipopt has been compiled with WSMP. The valid range for this integer option is $0 \le {\tt wsmp\_scaling } \le 3$ and its default value is $0$. \paragraph{wsmp\_singularity\_threshold:}\label{opt:wsmp_singularity_threshold} WSMP's singularity threshold. \\ WSMP's DPARM(10) parameter. The smaller this value the less likely a matrix is declared singular. This option is only available if Ipopt has been compiled with WSMP. The valid range for this real option is $0 < {\tt wsmp\_singularity\_threshold } < 1$ and its default value is $1 \cdot 10^{-18}$. Ipopt-3.11.4/Ipopt/doc/documentation.bbl0000644000076600007660000001073212156621430016546 0ustar coincoin\begin{thebibliography}{1} \bibitem{Biegler:nlpbook} L.~T.~Biegler. \newblock {\em Nonlinear Programming: Concepts, Algorithms and Applications to Chemical Processes} \newblock SIAM, Philadelphia (2010) \bibitem{CouHubSchWae:inexact} F.~E.~Curtis, J.~Huber, O.~Schenk, A.~W{\"a}chter. \newblock A note on the implementation of an interior-point algorithm for nonlinear optimization with inexact step computations. \newblock {\em Mathematical Programming}, 136(1):209--227, 2012 \newblock doi: \htmladdnormallink{10.1007/s10107-012-0557-4}{http://dx.doi.org/10.1007/s10107-012-0557-4}. \newblock preprint at \url{http://www.optimization-online.org/DB_HTML/2011/04/2992.html} \bibitem{FouGayKer:AMPLbook} R.~Fourer, D.~M. Gay, and B.~W. Kernighan. \newblock {\em AMPL: A Modeling Language For Mathematical Programming}. \newblock Thomson Publishing Company, Danvers, MA, USA, 1993. \bibitem{SWH:parallel} O.~Schenk, A.~W\"achter, and M.~Hagemann. \newblock Matching-based preprocessing algorithms to the solution of saddle-point problems in large-scale nonconvex interior-point optimization. \newblock {\em Computational Optimization Applications}, 36(2-3):321--341, 2007 \newblock doi: \htmladdnormallink{10.1007/s10589-006-9003-y}{http://dx.doi.org/10.1007/s10589-006-9003-y}. %\newblock preprint at \url{http://www.research.ibm.com/people/a/andreasw/papers/rc23824.pdf} \bibitem{HS} W.~Hock and K.~Schittkowski. \newblock Test examples for nonlinear programming codes. \newblock {\em Lecture Notes in Economics and Mathematical Systems}, 187, 1981. \newblock doi: \htmladdnormallink{10.1007/978-3-642-48320-2}{http://dx.doi.org/10.1007/978-3-642-48320-2}. \bibitem{NocWaeWal:adaptive} J.~Nocedal, A.~W{\"a}chter, and R.~A. Waltz. \newblock Adaptive barrier strategies for nonlinear interior methods. \newblock {\em SIAM Journal on Optimization}, 19(4):1674--1693, 2008. \newblock doi: \htmladdnormallink{10.1137/060649513}{http://dx.doi.org/10.1137/060649513}. \newblock preprint at \url{http://www.optimization-online.org/DB_HTML/2005/03/1089.html} \bibitem{PLNB:sIpopt} H.~Pirnay, R.~Lopez-Negrete, and L.~T.~Biegler. \newblock ​Optimal Sensitivity based on \Ipopt. \newblock {\em Mathematical Programming Computations}, 4(4):307--331, 2012. \newblock doi: \htmladdnormallink{10.1007/s12532-012-0043-2}{http://dx.doi.org/10.1007/s12532-012-0043-2}. \newblock preprint at \url{http://www.optimization-online.org/DB_HTML/2011/04/3008.html} \bibitem{WaechterPhD} A.~W\"achter. \newblock {\em An Interior Point Algorithm for Large-Scale Nonlinear Optimization with Applications in Process Engineering}. \newblock PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, January 2002. \newblock available at \url{http://researcher.watson.ibm.com/researcher/files/us-andreasw/thesis.pdf} \bibitem{Waechter90Minutes} A.~W\"achter. \newblock Short Tutorial: Getting Started With Ipopt in 90 Minutes. \newblock In {\em Combinatorial Scientific Computing} (U. Naumann, O. Schenk, H. D. Simon, eds.), 2009. \newblock urn: \htmladdnormallink{nbn:de:0030-drops-20890}{http://nbn-resolving.de/urn/resolver.pl?urn=urn:nbn:de:0030-drops-20890} \bibitem{WaeBie05:filterlocal} A.~W{\"a}chter and L.~T. Biegler. \newblock Line search filter methods for nonlinear programming: {L}ocal convergence. \newblock {\em SIAM Journal on Optimization}, 16(1):32--48, 2005. \newblock doi: \htmladdnormallink{10.1137/S1052623403426544}{http://dx.doi.org/10.1137/S1052623403426544} \bibitem{WaeBie05:filterglobal} A.~W{\"a}chter and L.~T. Biegler. \newblock Line search filter methods for nonlinear programming: {M}otivation and global convergence. \newblock {\em SIAM Journal on Optimization}, 16(1):1--31, 2005. \newblock doi: \htmladdnormallink{10.1137/S1052623403426556}{http://dx.doi.org/10.1137/S1052623403426556} \bibitem{WaeBie05:filterboth} A.~W{\"a}chter and L.~T. Biegler. \newblock Global and Local Convergence of Line Search Filter Methods for Nonlinear Programming. \newblock Optimization Online, 2001. \newblock \url{http://www.optimization-online.org/DB_HTML/2001/08/367.html} \bibitem{WaecBieg06:mp} A.~W\"achter and L.~T. Biegler. \newblock On the implementation of a primal-dual interior point filter line search algorithm for large-scale nonlinear programming. \newblock {\em Mathematical Programming}, 106(1):25--57, 2006. \newblock doi: \htmladdnormallink{10.1007/s10107-004-0559-y}{http://dx.doi.org/10.1007/s10107-004-0559-y}. \newblock preprint at \url{http://www.optimization-online.org/DB_HTML/2004/03/836.html} \end{thebibliography} Ipopt-3.11.4/Ipopt/doc/options_ampl.tex0000644000076600007660000001434512142261342016443 0ustar coincoin\begin{description} \item[{\htmlref{acceptable\_compl\_inf\_tol}{opt:acceptable_compl_inf_tol}}] Acceptance threshold for the complementarity conditions \item[{\htmlref{acceptable\_constr\_viol\_tol}{opt:acceptable_constr_viol_tol}}] Acceptance threshold for the constraint violation \item[{\htmlref{acceptable\_dual\_inf\_tol}{opt:acceptable_dual_inf_tol}}] Acceptance threshold for the dual infeasibility \item[{\htmlref{acceptable\_tol}{opt:acceptable_tol}}] Acceptable convergence tolerance (relative) \item[{\htmlref{alpha\_for\_y}{opt:alpha_for_y}}] Step size for constraint multipliers \item[{\htmlref{bound\_frac}{opt:bound_frac}}] Desired minimal relative distance of initial point to bound \item[{\htmlref{bound\_mult\_init\_val}{opt:bound_mult_init_val}}] Initial value for the bound multipliers \item[{\htmlref{bound\_push}{opt:bound_push}}] Desired minimal absolute distance of initial point to bound \item[{\htmlref{bound\_relax\_factor}{opt:bound_relax_factor}}] Factor for initial relaxation of the bounds \item[{\htmlref{compl\_inf\_tol}{opt:compl_inf_tol}}] Acceptance threshold for the complementarity conditions \item[{\htmlref{constr\_mult\_init\_max}{opt:constr_mult_init_max}}] Maximal allowed least-square guess of constraint multipliers \item[{\htmlref{constr\_viol\_tol}{opt:constr_viol_tol}}] Desired threshold for the constraint violation \item[{\htmlref{diverging\_iterates\_tol}{opt:diverging_iterates_tol}}] Threshold for maximal value of primal iterates \item[{\htmlref{dual\_inf\_tol}{opt:dual_inf_tol}}] Desired threshold for the dual infeasibility \item[{\htmlref{expect\_infeasible\_problem}{opt:expect_infeasible_problem}}] Enable heuristics to quickly detect an infeasible problem \item[{\htmlref{file\_print\_level}{opt:file_print_level}}] Verbosity level for output file \item[halt\_on\_ampl\_error] Exit with message on evaluation error \item[{\htmlref{hessian\_approximation}{opt:hessian_approximation}}] Can enable Quasi-Newton approximation of hessian \item[{\htmlref{honor\_original\_bounds}{opt:honor_original_bounds}}] If no, solution might slightly violate bounds \item[{\htmlref{linear\_scaling\_on\_demand}{opt:linear_scaling_on_demand}}] Enables heuristic for scaling only when seems required \item[{\htmlref{linear\_solver}{opt:linear_solver}}] Linear solver to be used for step calculation \item[{\htmlref{linear\_system\_scaling}{opt:linear_system_scaling}}] Method for scaling the linear systems \item[{\htmlref{ma27\_pivtol}{opt:ma27_pivtol}}] Pivot tolerance for the linear solver MA27 \item[{\htmlref{ma27\_pivtolmax}{opt:ma27_pivtolmax}}] Maximal pivot tolerance for the linear solver MA27 \item[{\htmlref{ma57\_pivot\_order}{opt:ma57_pivot_order}}] Controls pivot order in MA57 \item[{\htmlref{ma57\_pivtol}{opt:ma57_pivtol}}] Pivot tolerance for the linear solver MA57 \item[{\htmlref{ma57\_pivtolmax}{opt:ma57_pivtolmax}}] Maximal pivot tolerance for the linear solver MA57 \item[{\htmlref{max\_cpu\_time}{opt:max_cpu_time}}] CPU time limit \item[{\htmlref{max\_iter}{opt:max_iter}}] Maximum number of iterations \item[{\htmlref{max\_refinement\_steps}{opt:max_refinement_steps}}] Maximal number of iterative refinement steps per linear system solve \item[{\htmlref{max\_soc}{opt:max_soc}}] Maximal number of second order correction trial steps \item[{\htmlref{maxit}{opt:max_iter}}] (Ipopt name: \htmlref{max\_iter}{opt:max_iter}) Maximum number of iterations \item[{\htmlref{min\_refinement\_steps}{opt:min_refinement_steps}}] Minimum number of iterative refinement steps per linear system solve \item[{\htmlref{mu\_init}{opt:mu_init}}] Initial value for the barrier parameter \item[{\htmlref{mu\_max}{opt:mu_max}}] Maximal value for barrier parameter for adaptive strategy \item[{\htmlref{mu\_oracle}{opt:mu_oracle}}] Oracle for a new barrier parameter in the adaptive strategy \item[{\htmlref{mu\_strategy}{opt:mu_strategy}}] Update strategy for barrier parameter \item[{\htmlref{nlp\_scaling\_max\_gradient}{opt:nlp_scaling_max_gradient}}] Maximum gradient after scaling \item[{\htmlref{nlp\_scaling\_method}{opt:nlp_scaling_method}}] Select the technique used for scaling the NLP \item[{\htmlref{obj\_scaling\_factor}{opt:obj_scaling_factor}}] Scaling factor for the objective function \item[{\htmlref{option\_file\_name}{opt:option_file_name}}] File name of options file (default: ipopt.opt) \item[{\htmlref{outlev}{opt:print_level}}] (Ipopt name: \htmlref{print\_level}{opt:print_level}) Verbosity level \item[{\htmlref{output\_file}{opt:output_file}}] File name of an output file (leave unset for no file output) \item[{\htmlref{pardiso\_matching\_strategy}{opt:pardiso_matching_strategy}}] Matching strategy for linear solver Pardiso \item[{\htmlref{pardiso\_out\_of\_core\_power}{opt:pardiso_out_of_core_power}}] Enables out-of-core version of linear solver Pardiso \item[{\htmlref{print\_level}{opt:print_level}}] Verbosity level \item[{\htmlref{print\_options\_documentation}{opt:print_options_documentation}}] Print all available options (for ipopt.opt) \item[{\htmlref{print\_user\_options}{opt:print_user_options}}] Toggle printing of user options \item[{\htmlref{required\_infeasibility\_reduction}{opt:required_infeasibility_reduction}}] Required infeasibility reduction in restoration phase \item[{\htmlref{slack\_bound\_frac}{opt:slack_bound_frac}}] Desired minimal relative distance of initial slack to bound \item[{\htmlref{slack\_bound\_push}{opt:slack_bound_push}}] Desired minimal absolute distance of initial slack to bound \item[{\htmlref{tol}{opt:tol}}] Desired convergence tolerance (relative) \item[wantsol] solution report without -AMPL: sum of, 1 == write .sol file, 2 == print primal variable values, 4 == print dual variable values, 8 == do not print solution message \item[{\htmlref{warm\_start\_bound\_push}{opt:warm_start_bound_push}}] Enables to specify how much should variables should be pushed inside the feasible region \item[{\htmlref{warm\_start\_init\_point}{opt:warm_start_init_point}}] Enables to specify bound multiplier values \item[{\htmlref{warm\_start\_mult\_bound\_push}{opt:warm_start_mult_bound_push}}] Enables to specify how much should bound multipliers should be pushed inside the feasible region \item[{\htmlref{watchdog\_shortened\_iter\_trigger}{opt:watchdog_shortened_iter_trigger}}] Trigger counter for watchdog procedure \end{description} Ipopt-3.11.4/Ipopt/doc/documentation.tex0000644000076600007660000066420312214316142016613 0ustar coincoin%% Copyright (C) 2005, 2011 Carnegie Mellon University and others. %% %% The first version of this file was contributed to the Ipopt project %% on Aug 1, 2005, by Yoshiaki Kawajiri %% Department of Chemical Engineering %% Carnegie Mellon University %% Pittsburgh, PA 15213 %% %% Since then, the content of this file has been updated significantly by %% Carl Laird and Andreas Waechter IBM %% Stefan Vigerske GAMS %% %% %% $Id: documentation.tex 2386 2013-09-12 10:50:10Z stefan $ %% \documentclass[10pt]{article} \setlength{\textwidth}{6.3in} % Text width \setlength{\textheight}{9.4in} % Text height \setlength{\oddsidemargin}{0.1in} % Left margin for even-numbered pages \setlength{\evensidemargin}{0.1in} % Left margin for odd-numbered pages \setlength{\topmargin}{-0.5in} % Top margin \renewcommand{\baselinestretch}{1.1} \usepackage{amsfonts} \usepackage{amsmath} \PassOptionsToPackage{hidelinks,pdftitle={Ipopt documentation},pdflang=en}{hyperref} \usepackage{url} \usepackage{html} \usepackage{xspace} %\usepackage{showlabels} \newcommand{\RR}{\mathbb{R}} \newcommand{\Ipopt}{\textsc{Ipopt}\xspace} \newcommand{\JIpopt}{\textsc{JIpopt}\xspace} \newcommand{\ipoptr}{\texttt{ipoptr}\xspace} \newcommand{\sIpopt}{\textsc{sIpopt}\xspace} \newcommand{\Matlab}{\textsc{MATLAB}\xspace} %\htmltitle{Ipopt documentation} \begin{document} \title{Introduction to \Ipopt:\\ A tutorial for downloading, installing, and using \Ipopt} \author{Revision number of this document: $Revision: 2386 $} %\date{\today} \maketitle \begin{abstract} This document is a guide to using \Ipopt 3.11. It includes instructions on how to obtain and compile \Ipopt, a description of the interface, user options, etc., as well as a tutorial on how to solve a nonlinear optimization problem with \Ipopt. \end{abstract} \section*{History of this document} The initial version of this document was created by Yoshiaki Kawajir\footnote{then Department of Chemical Engineering, Carnegie Mellon University, Pittsburgh PA} as a course project for \textit{47852 Open Source Software for Optimization}, taught by Prof. Fran\c{c}ois Margot at Tepper School of Business, Carnegie Mellon University. After this, Carl Laird\footnote{then Department of Chemical Engineering, Carnegie Mellon University, Pittsburgh PA} has added significant portions, including the very nice tutorials. The current version is maintained by Stefan Vigerske\footnote{GAMS Software GmbH} and Andreas W\"achter\footnote{Department of Industrial Engineering and Management Sciences, Northwestern University}. \tableofcontents \vspace{\baselineskip} \begin{small} \noindent The following names used in this document are trademarks or registered trademarks: AMPL, IBM, Intel, Matlab, Microsoft, MKL, Visual Studio C++, Visual Studio C++ .NET \end{small} \section{Introduction} \Ipopt (\underline{I}nterior \underline{P}oint \underline{Opt}imizer, pronounced ``Eye--Pea--Opt'') is an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems of the form %\begin{subequations}\label{NLP} \begin{eqnarray} \min_{x\in\RR^n} &&f(x) \label{eq:obj} \\ \mbox{s.t.} \; &&g^L \leq g(x) \leq g^U \label{eq:constraints}\\ &&x^L \leq x \leq x^U, \label{eq:bounds} \end{eqnarray} %\end{subequations} where $x \in \RR^n$ are the optimization variables (possibly with lower and upper bounds, $x^L\in(\RR\cup\{-\infty\})^n$ and $x^U\in(\RR\cup\{+\infty\})^n$), $f:\RR^n\longrightarrow\RR$ is the objective function, and $g:\RR^n\longrightarrow \RR^m$ are the general nonlinear constraints. The functions $f(x)$ and $g(x)$ can be linear or nonlinear and convex or non-convex (but should be twice continuously differentiable). The constraints, $g(x)$, have lower and upper bounds, $g^L\in(\RR\cup\{-\infty\})^m$ and $g^U\in(\RR\cup\{+\infty\})^m$. Note that equality constraints of the form $g_i(x)=\bar g_i$ can be specified by setting $g^L_{i}=g^U_{i}=\bar g_i$. \subsection{Mathematical Background} \Ipopt implements an interior point line search filter method that aims to find a local solution of (\ref{eq:obj})-(\ref{eq:bounds}). The mathematical details of the algorithm can be found in several publications \cite{NocWaeWal:adaptive,WaechterPhD,WaecBieg06:mp,WaeBie05:filterglobal,WaeBie05:filterlocal}. \subsection{Availability} The \Ipopt package is available from COIN-OR (\url{http://www.coin-or.org}) under the EPL (Eclipse Public License) open-source license and includes the source code for \Ipopt. This means, it is available free of charge, also for commercial purposes. However, if you give away software including \Ipopt code (in source code or binary form) and you made changes to the \Ipopt source code, you are required to make those changes public and to clearly indicate which modifications you made. After all, the goal of open source software is the continuous development and improvement of software. For details, please refer to the Eclipse Public License. Also, if you are using \Ipopt to obtain results for a publication, we politely ask you to point out in your paper that you used \Ipopt, and to cite the publication \cite{WaecBieg06:mp}. Writing high-quality numerical software takes a lot of time and effort, and does usually not translate into a large number of publications, therefore we believe this request is only fair :). We also have space at the \Ipopt project home page where we list publications, projects, etc., in which \Ipopt has been used. We would be very happy to hear about your experiences \subsection{Prerequisites}\label{sec:prerequisites} In order to build \Ipopt, some third party components are required: \begin{itemize} \item BLAS (Basic Linear Algebra Subroutines). Many vendors of compilers and operating systems provide precompiled and optimized libraries for these dense linear algebra subroutines. You can also get the source code for a simple reference implementation from {\tt www.netlib.org} and have the \Ipopt distribution compile it automatically. However, it is strongly recommended to use some optimized BLAS implemetion, for large problems this can make a runtime difference of an order of magnitude! Examples for efficient BLAS implementations are: \begin{itemize} \item From hardware vendors: \begin{itemize} \item ACML (AMD Core Math Library) by AMD \item ESSL (Engineering Scientific Subroutine Library) by IBM \item MKL (Math Kernel Library) by Intel \item Sun Performance Library by Sun \end{itemize} \item Generic: \begin{itemize} \item Atlas (Automatically Tuned Linear Algebra Software) \item GotoBLAS \end{itemize} \end{itemize} You find more information on the web by googling them. Note: BLAS libraries distributed with Linux are usually not optimized. \item LAPACK (Linear Algebra PACKage). Also for LAPACK, some vendors offer precompiled and optimized libraries. But like with BLAS, you can get the source code from \url{http://www.netlib.org} and have the \Ipopt distribution compile it automatically. Note that currently LAPACK is only required if you intend to use the quasi-Newton options in \Ipopt. You can compile the code without LAPACK, but an error message will then occur if you try to run the code with an option that requires LAPACK. Currently, the LAPACK routines that are used by \Ipopt are only {\tt DPOTRF}, {\tt DPOTRS}, and {\tt DSYEV}. Note: LAPACK libraries distributed with Linux are usually not optimized. \item A sparse symmetric indefinite linear solver. \Ipopt needs to obtain the solution of sparse, symmetric, indefinite linear systems, and for this it relies on third-party code. Currently, the following linear solvers can be used: \begin{itemize} \item MA27 from the HSL Mathematical Software Library\\ (see \url{http://www.hsl.rl.ac.uk}). \item MA57 from the HSL Mathematical Software Library\\ (see \url{http://www.hsl.rl.ac.uk}). \item HSL\_MA77 from the HSL Mathematical Software Library\\ (see \url{http://www.hsl.rl.ac.uk}). \item HSL\_MA86 from the HSL Mathematical Software Library\\ (see \url{http://www.hsl.rl.ac.uk}). \item HSL\_MA97 from the HSL Mathematical Software Library\\ (see \url{http://www.hsl.rl.ac.uk}). \item MUMPS (MUltifrontal Massively Parallel sparse direct Solver)\\ (see \url{http://graal.ens-lyon.fr/MUMPS}) \item The Parallel Sparse Direct Solver (PARDISO)\\ (see \url{http://www.pardiso-project.org}).\\ Note: The Pardiso version in Intel's MKL library does not yet support the features necessary for \Ipopt. \item The Watson Sparse Matrix Package (WSMP)\\ (see \url{http://researcher.ibm.com/view_project.php?id=1426}) \end{itemize} You should include at least one of the linear solvers above in order to run \Ipopt, and if you want to be able to switch easily between different alternatives, you can compile \Ipopt with all of them. The \Ipopt library also has mechanisms to load the linear solvers MA27, MA57, HSL\_MA77, HSL\_MA86, HSL\_MA97, and Pardiso from a shared library at runtime, if the library has not been compiled with them (see Section~\ref{sec:linear_solver_loader}). \textbf{NOTE: The solution of the linear systems is a central ingredient in \Ipopt and the optimizer's performance and robustness depends on your choice. The best choice depends on your application, and it makes sense to try different options. Most of the solvers also rely on efficient BLAS code (see above), so you should use a good BLAS library tailored to your system. Please keep this in mind, particularly when you are comparing \Ipopt with other optimization codes.} If you are compiling MA57, HSL\_MA77, HSL\_MA86, HSL\_MA97, or MUMPS within the \Ipopt build system, you should also include the METIS linear system ordering package. Interfaces to other linear solvers might be added in the future; if you are interested in contributing such an interface please contact us! Note that \Ipopt requires that the linear solver is able to provide the inertia (number of positive and negative eigenvalues) of the symmetric matrix that is factorized. \item Furthermore, \Ipopt can also use the HSL package MC19 for scaling of the linear systems before they are passed to the linear solver. This may be particularly useful if \Ipopt is used with MA27 or MA57. However, it is not required to have MC19 to compile \Ipopt; if this routine is missing, the scaling is never performed. %\footnote{There are more recent scaling routines in the % HSL, but they have not (yet) been integrated. Contributions are % welcome!}. \item ASL (AMPL Solver Library). The source code is available at {\tt www.netlib.org}, and the \Ipopt makefiles will automatically compile it for you if you put the source code into a designated space. NOTE: This is only required if you want to use \Ipopt from AMPL and want to compile the \Ipopt AMPL solver executable. \end{itemize} For more information on third-party components and how to obtain them, see Section~\ref{ExternalCode}. Since the \Ipopt code is written in C++, you will need a C++ compiler to build the \Ipopt library. We tried very hard to write the code as platform and compiler independent as possible. In addition, the configuration script also searches for a Fortran compiler, since some of the dependencies above are written in Fortran. If all third party dependencies are available as self-contained libraries, those compilers are in principle not necessary. Also, it is possible to use the Fortran-to-C compiler {\tt f2c} from \url{http://www.netlib.org/f2c} to convert Fortran 77 code to C, and compile the resulting C files with a C compiler and create a library containing the required third party dependencies. %We have tested and used this %in connection with the Microsoft Visual C++ compiler, and instructions %on how to use it in this context are given below. When using GNU compilers, we recommend you use the same version numbers for {\tt gcc}, {\tt g++}, and {\tt gfortran}. For {\tt gfortran} specifically, we recommend versions newer than 4.5.2 (versions 4.5.1, 4.5.2, and before 4.2.0 are known to have bugs that caused issues with some of the newer Fortran 90 HSL linear solvers). \subsection{How to use \Ipopt} If desired, the \Ipopt distribution generates an executable for the modeling environment AMPL. As well, you can link your problem statement with \Ipopt using interfaces for C++, C, or Fortran. \Ipopt can be used with most Linux/Unix environments, and on Windows using Visual Studio .NET, Cygwin or MSYS/MinGW. In Section~\ref{sec:tutorial-example} this document demonstrates how to solve problems using \Ipopt. This includes installation and compilation of \Ipopt for use with AMPL as well as linking with your own code. Additionally, the \Ipopt distribution includes interfaces for \begin{itemize} \item {\tt CUTEr}\footnote{see \url{http://cuter.rl.ac.uk/cuter-www}} (for solving problems modeled in SIF), \item {\tt Java}, which allows you to use \Ipopt from Java, see the files in the \texttt{Ipopt/contrib/JavaInterface} directory, \item {\tt Matlab} (mex interface), which allows you to use \Ipopt from Matlab, see \centerline{\url{https://projects.coin-or.org/Ipopt/wiki/MatlabInterface},} \item and the {\tt R} project for statistical computing, see the files in the \texttt{Ipopt/contrib/RInterface} directory. \end{itemize} There is also software that facilitates use of \Ipopt maintained by other people, among them are: \begin{itemize} \item ADOL-C (automatic differentiation) ADOL-C facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. It comes with examples that show how to use it in connection with \Ipopt, see \url{https://projects.coin-or.org/ADOL-C}. \item AIMMS (modeling environment) The AIMMSlinks project on COIN-OR, maintained by Marcel Hunting, provides an interface for \Ipopt within the AIMMS modeling tool, see \url{https://projects.coin-or.org/AIMMSlinks}. \item CasADi CasADi is a symbolic framework for automatic differentiation and numeric optimization and comes with \Ipopt, see \url{https://github.com/casadi/casadi/wiki}. \item CppAD (automatic differentiation) Given a C++ algorithm that computes function values, CppAD generates an algorithm that computes corresponding derivative values (of arbitrary order using either forward or reverse mode). It comes with an example that shows how to use it in connection with \Ipopt, see \url{https://projects.coin-or.org/CppAD}. \item GAMS (modeling environment) The GAMSlinks project on COIN-OR, maintained by Stefan Vigerske, includes a GAMS interface for \Ipopt, see \url{https://projects.coin-or.org/GAMSlinks}. \item .NET : An interface to the C\# language is available here: \url{http://code.google.com/p/csipopt} \item OPTimization Interface (OPTI) Toolbox OPTI is a free {\tt Matlab} toolbox for constructing and solving linear, nonlinear, continuous and discrete optimization problem and comes with \Ipopt. \item Optimization Services The Optimization Services (OS) project provides a set of standards for representing optimization instances, results, solver options, and communication between clients and solvers, incl.\ \Ipopt, in a distributed environment using Web Services, see \url{https://projects.coin-or.org/OS}. \item Python: An interface to the python language is available here: \url{https://github.com/xuy/pyipopt} \item Scilab (free Matlab-like environment): %Edson Cordeiro do Valle has written an interface to use \Ipopt from %Scilab.\url{http://www.scilab.org/contrib/displayContribution.php?fileID=839} A Scilab interface is available here: \url{http://forge.scilab.org/index.php/p/sci-ipopt} \end{itemize} \subsection{More Information and Contributions} More and up-to-date information can be found at the \Ipopt homepage, \begin{center} \url{http://projects.coin-or.org/Ipopt}. \end{center} Here, you can find FAQs, some (hopefully useful) hints, a bug report system etc. The website is managed with Wiki, which means that every user can edit the webpages from the regular web browser. {\bf In particular, we encourage \Ipopt users to share their experiences and usage hints on the ``Success Stories'' and ``Hints and Tricks'' pages, or to list the publications discussing applications of \Ipopt in the ``Papers related to Ipopt'' page}\footnote{Since we had some malicious hacker attacks destroying the content of the web pages in the past, you are now required to enter a user name and password; simply follow the instructions on top of the main project page.}. In particular, if you have trouble getting \Ipopt work well for your optimization problem, you might find some ideas here. Also, if you had some difficulties to solve a problem and found a way around it (e.g., by reformulating your problem or by using certain \Ipopt options), it would be very nice if you help other users by sharing your experience at the ``Hints and Tricks'' page. \Ipopt is an open source project, and we encourage people to contribute code (such as interfaces to appropriate linear solvers, modeling environments, or even algorithmic features). If you are interested in contributing code, please have a look at the COIN-OR contributions webpage\footnote{see \url{http://www.coin-or.org/contributions.html}} and contact the \Ipopt project leader. There is also a mailing list for \Ipopt, available from the webpage \begin{center} \url{http://list.coin-or.org/mailman/listinfo/ipopt}, \end{center} where you can subscribe to get notified of updates, to ask general questions regarding installation and usage, or to share your experience with \Ipopt. You might want to look at the archives before posting a question. An easy way to search the archive with Google is to specify ``\texttt{site:http://list.coin-or.org/pipermail/ipopt}''\\ in addition to your keywords in the search string. We try to answer questions posted to the mailing list in a reasonable manner. Please understand that we cannot answer all questions in detail, and because of time constraints, we may not be able to help you model and debug your particular optimization problem. A short tutorial on getting started with \Ipopt is also available \cite{Waechter90Minutes}. \subsection{History of \Ipopt} The original \Ipopt (Fortran version) was a product of the dissertation research of Andreas W\"achter \cite{WaechterPhD}, under the supervision of Lorenz T. Biegler at the Chemical Engineering Department at Carnegie Mellon University. The code was made open source and distributed by the COIN-OR initiative, which is now a non-profit corporation. \Ipopt has been actively developed under COIN-OR since 2002. To continue natural extension of the code and allow easy addition of new features, IBM Research decided to invest in an open source re-write of \Ipopt in C++. With the help of Carl Laird, who came to the Mathematical Sciences Department at IBM Research as a summer intern in 2004 and 2005 during his PhD studies, the code was re-implemented from scratch. The new C++ version of the \Ipopt optimization code (\Ipopt 3.0.0 and beyond) was maintained at IBM Research and remains part of the COIN-OR initiative. The development on the Fortran version has ceased, but the source code can still be downloaded from \url{http://www.coin-or.org/download/source/Ipopt-Fortran}. \section{Installing \Ipopt}\label{Installing} The following sections describe the installation procedures on UNIX/Linux systems. For installation instructions on Windows see Section~\ref{WindowsInstall}. Additional hints on installing \Ipopt and its various interfaces is available on the \Ipopt and CoinHelp wiki pages, in particular \begin{itemize} \item \Ipopt compilation hints:\\ \url{https://projects.coin-or.org/Ipopt/wiki/CompilationHints} \item Current configuration and installation issues for COIN-OR projects:\\ \url{https://projects.coin-or.org/BuildTools/wiki/current-issues} \end{itemize} \subsection{Getting System Packages (Compilers, ...)} Many Linux distributions will come with all necessary tools. All you should need to do is check the compiler versions. On a Debian-based distribution, you can obtain all necessary tools with the following command: \begin{verbatim} sudo apt-get install gcc g++ gfortran subversion patch wget \end{verbatim} Replace {\tt apt-get} with your relevant package manager, e.g. {\tt yum} for Red Hat-based distributions, {\tt zypper} for SUSE, etc. The {\tt g++} and {\tt gfortran} compilers may need to be specified respectively as {\tt gcc-c++} and {\tt gcc-gfortran} with some package managers. On Mac OS X, you need either the Xcode Command Line Tools, available at \url{https://developer.apple.com/downloads} after registering as an Apple Developer, or a community alternative such as \url{https://github.com/kennethreitz/osx-gcc-installer/downloads} to install the gcc and g++ compilers. It has been reported, that gcc/g++ 4.2 and older is not sufficient for using the HSL codes. If you have a recent version of Xcode installed, the Command Line Tools are available under Preferences, Downloads. In Xcode 3.x, the Command Line Tools are contained in the optional item ``UNIX Dev Support'' during Xcode installation. %If you are using OS X 10.6 or earlier, then see the instructions at \url{http://kitcambridge.tumblr.com/post/17778742499/installing-the-xcode-command-line-tools-on-snow-leopard} on how to install the Xcode Command Line Tools without needing to download the rest of Xcode. These items unfortunately do not come with a Fortran compiler, but you can get {\tt gfortran} from {\tt http://gcc.gnu.org/wiki/GFortranBinaries\#MacOS}. We have been able to compile \Ipopt using default Xcode versions of {\tt gcc} and {\tt g++} and a newer version of {\tt gfortran} from this link, but consistent version numbers may be an issue in future cases. \subsection{Getting the \Ipopt Code} \Ipopt is available from the COIN-OR subversion repository. You can either download the code using \texttt{svn} (the \textit{subversion} client similar to CVS) or simply retrieve a tarball (compressed archive file). While the tarball is an easy method to retrieve the code, using the \textit{subversion} system allows users the benefits of the version control system, including easy updates and revision control. \subsubsection{Getting the \Ipopt code via subversion} Of course, the \textit{subversion} client must be installed on your system if you want to obtain the code this way (the executable is called \texttt{svn}); it is already installed by default for many recent Linux distributions. Information about \textit{subversion} and how to download it can be found at \url{http://subversion.apache.org}. To obtain the \Ipopt source code via subversion, change into the directory in which you want to create a subdirectory {\tt Ipopt} with the \Ipopt source code. Then follow the steps below: \begin{enumerate} \item{Download the code from the repository}\\ {\tt \$ svn co https://projects.coin-or.org/svn/Ipopt/stable/3.11 CoinIpopt} \\ Note: The {\tt \$} indicates the command line prompt, do not type {\tt \$}, only the text following it. \item Change into the root directory of the \Ipopt distribution\\ {\tt \$ cd CoinIpopt} \end{enumerate} In the following, ``\texttt{\$IPOPTDIR}'' will refer to the directory in which you are right now (output of \texttt{pwd}). \subsubsection{Getting the \Ipopt code as a tarball} To use the tarball, follow the steps below: \begin{enumerate} \item Download the desired tarball from \url{http://www.coin-or.org/download/source/Ipopt}, it has the form {\tt Ipopt-{\em x.y.z}.tgz}, where {\tt\em x.y.z} is the version number, such as {\tt 3.11.0}. There might also be daily snapshot from the stable branch. The number of the latest official release can be found on the \Ipopt Trac page. \item Issue the following commands to unpack the archive file: \\ \texttt{\$ gunzip Ipopt-{\em x.y.z}.tgz} \\ \texttt{\$ tar xvf Ipopt-{\em x.y.z}.tar} \\ Note: The {\tt \$} indicates the command line prompt, do not type {\tt \$}, only the text following it. \item Rename the directory you just extracted:\\ \texttt{\$ mv Ipopt-{\em x.y.z} CoinIpopt} \item Change into the root directory of the \Ipopt distribution\\ {\tt \$ cd CoinIpopt} \end{enumerate} In the following, ``\texttt{\$IPOPTDIR}'' will refer to the directory in which you are right now (output of \texttt{pwd}). \subsection{Download External Code}\label{ExternalCode} \Ipopt uses a few external packages that are not included in the \Ipopt source code distribution, namely ASL (the AMPL Solver Library if you want to compile the \Ipopt AMPL solver executable), Blas, Lapack. \Ipopt also requires at least one linear solver for sparse symmetric indefinite matrices. There are different possibilities, see Sections~\ref{sec:HSL}--\ref{sec:WSMP}. {\bf It is important to keep in mind that usually the largest fraction of computation time in the optimizer is spent for solving the linear system, and that your choice of the linear solver impacts \Ipopt's speed and robustness. It might be worthwhile to try different linear solver to experiment with what is best for your application.} Since this third party software is released under different licenses than \Ipopt, we cannot distribute their code together with the \Ipopt packages and have to ask you to go through the hassle of obtaining it yourself (even though we tried to make it as easy for you as we could). Keep in mind that it is still your responsibility to ensure that your downloading and usage of the third party components conforms with their licenses. Note that you only need to obtain the ASL if you intend to use \Ipopt from AMPL. It is not required if you want to specify your optimization problem in a programming language (C++, C, or Fortran). Also, currently, Lapack is only required if you intend to use the quasi-Newton options implemented in \Ipopt. \subsubsection{Download BLAS, LAPACK and ASL} Note: It is \textbf{highly recommended that you obtain an efficient implementation of the BLAS library}, tailored to your hardware; Section~\ref{sec:prerequisites} lists a few options. Assuming that your precompiled efficient BLAS library is \texttt{libmyblas.a} in \texttt{\$HOME/lib}, you need to add the flag \texttt{--with-blas="-L\$HOME/lib -lmyblas"} when you run \texttt{configure} (see Section~\ref{sec.comp_and_inst}). Some of those libraries also include LAPACK. If you have the download utility \texttt{wget} installed on your system (or \texttt{ftp} on Mac OS X), retrieving source code for BLAS (the inefficient reference implementation, not required if you have a precompiled library), as well as LAPACK and ASL is straightforward using scripts included with the ipopt distribution. These scripts download the required files from the Netlib Repository (\url{http://www.netlib.org}). \medskip \noindent {\tt \$ cd \$IPOPTDIR/ThirdParty/Blas}\\ {\tt \$ ./get.Blas}\\ {\tt \$ cd ../Lapack}\\ {\tt \$ ./get.Lapack}\\ {\tt \$ cd ../ASL}\\ {\tt \$ ./get.ASL} \medskip \noindent If you do not have \texttt{wget} (or \texttt{ftp} on Mac OS X) installed on your system, please read the \texttt{INSTALL.*} files in the \texttt{\$IPOPTDIR/ThirdParty/Blas}, \texttt{\$IPOPTDIR/ThirdParty/Lapack} and \texttt{\$IPOPTDIR/ThirdParty/ASL} directories for alternative instructions. If you are having firewall issues with {\tt wget}, try opening the {\tt get.} scripts and replace the line {\tt wgetcmd=wget} with {\tt wgetcmd="wget --passive-ftp"}. If you are getting permissions errors from tar, try opening the {\tt get.} scripts and replace any instances of {\tt tar xf} with {\tt tar --no-same-owner -xf}. \subsubsection{Download HSL Subroutines} \label{sec:HSL} \noindent There are two versions of HSL available: \begin{description} \item[HSL Archive] contains outdated codes that are freely available for personal commercial or non-com\-mer\-cial usage. Note that you may not redistribute these codes in either source or binary form without purchasing a licence from the authors. This version includes MA27, MA28, and MC19. \item[HSL 2011] contains more modern codes that are freely available for academic use only. This version includes the codes from the HSL Archive and additionally MA57, HSL\_MA77, HSL\_MA86, and HSL\_MA97. \Ipopt supports the HSL 2011 codes from 2012 and 2013, the support for the versions from 2012 may be dropped in a future release. \end{description} % The use of alternative linear solvers is described in % Sections~\ref{sec:MUMPS}--\ref{sec:WSMP}. You do not necessarily % have to use a HSL code such as MA27 as described in this section, but at least % one linear solver is required for \Ipopt to function. To obtain the HSL code, you can follow the following steps: \begin{enumerate} \item Go to \url{http://hsl.rl.ac.uk/ipopt}. \item Choose whether to download either the Archive code or the HSL 2011 code. To download, select the relevant ``source'' link. \item Follow the instructions on the website, read the license, and submit the registration form. \item Wait for an email containing a download link (this should take no more than one working day). \end{enumerate} \noindent You may either: \begin{itemize} \item Compile the HSL code as part of \Ipopt. See the instructions below. \item Compile the HSL code separately either before or after the \Ipopt code and use the shared library loading mechanism. See the documentation distributed with the HSL package for information on how to do so. \end{itemize} To compile the HSL code as part of \Ipopt, unpack the archive, then move and rename the resulting directory so that it becomes {\tt \$IPOPTDIR/ThirdParty/HSL/coinhsl}. \Ipopt may then be configured as normal. Note: Whereas it is essential to have at least one linear solver, the package MC19 could be omitted (with the consequence that you cannot use this method for scaling the linear systems arising inside the \Ipopt algorithm). By default, MC19 is only used to scale the linear system when using one of the HSL solvers, but it can also be switched on for other linear solvers (which usually have internal scaling mechanisms). Further, also the package MA28 can be omitted, since it is used only in the experimental dependency detector, which is not used by default. Note: If you are an academic or a student, we recommend you download the HSL 2011 package as this ensures you have access to the full range of solvers. MA57 can be considerably faster than MA27 on some problems. Yet another note: If you have a precompiled library containing the HSL codes, you can specify the directory with the header files and the linker flags for this library with the \verb|--with-hsl-incdir| and \verb|--with-hsl-lib| flags for the {\tt configure} script described in Section~\ref{sec.comp_and_inst}. \subsubsection{Obtaining the MUMPS Linear Solver}\label{sec:MUMPS} You can also use the (public domain) sparse linear solver MUMPS. Please visit the MUMPS home page \url{http://graal.ens-lyon.fr/MUMPS} for more information about the solver. MUMPS is provided as Fortran 90 and C source code. You need to have a Fortran 90 compiler (for example, the GNU compiler {\tt gfortran} is a free one) to be able to use it. You can obtain the MUMPS code by running the script {\tt \$IPOPTDIR/ThirdParty/Mumps/get.Mumps} if you have {\tt wget} (or {\tt ftp} on Mac OS X) installed in your system. Alternatively, you can get the latest version from the MUMPS home page and extract the archive in the directory {\tt \$IPOPTDIR/ThirdParty/Mumps}. The extracted directory usually has the MUMPS version number in it, so you need to rename it to {\tt MUMPS} such that you have a file called {\tt \$IPOPTDIR/ThirdParty/Mumps/MUMPS/README}. Once you put the MUMPS source code into the correct place, the \Ipopt configuration scripts will automatically detect it and compile MUMPS together with \Ipopt, \emph{if your Fortran compiler is able to compile Fortran 90 code}. Note: MUMPS will perform better with METIS, see Section~\ref{sec:METIS}. Note: MUMPS uses interally a fake implementation of MPI. If you are using \Ipopt within an MPI program together with MUMPS, the code will not run. You will have to modify the MUMPS sources so that the MPI symbols inside the MUMPS code are renamed. \subsubsection{Obtaining the Linear Solver Pardiso}\label{sec:Pardiso} If you would like to compile \Ipopt with the Parallel Sparse Direct Linear Solver (Pardiso), you need to obtain the Pardiso library for your operating system. Information about Pardiso can be found at \url{http://www.pardiso-project.org}. You can obtain a limited time license of Pardiso for academic or evaluation purposes or buy a non-profit or commercial license. Instructions for this are on the above mentioned website; make sure you read the license agreement before filling out the download form. Note: Pardiso is included in Intel's MKL library. However, that version does not include the changes done by the Pardiso developers to make the linear solver work smoothly with \Ipopt. Please consult Appendix~\ref{ExpertInstall} to find out how to configure your \Ipopt installation to work with Pardiso. \subsubsection{Obtaining the Linear Solver WSMP}\label{sec:WSMP} If you would like to compile \Ipopt with the Watson Sparse Matrix Package (WSMP), you need to obtain the WSMP library for your operating system. Information about WSMP can be found at \url{http://www.research.ibm.com/projects/wsmp}. %http://researcher.ibm.com/view_project.php?id=1426 At this website you can download the library for several operating systems including a trial license key for 90 days that allows you to use WSMP for ``educational, research, and benchmarking purposes by non-profit academic institutions'' or evaluation purposes by commercial organizations; make sure you read the license agreement before using the library. Once you obtained the library and license, please check if the version number of the library matches the one on the WSMP website. If a newer version is announced on that website, you can (and probably should) request the current version by sending a message to \verb|wsmp@watson.ibm.com|. Please include the operating system and other details to describe which particular version of WSMP you need. % You can use the bugfix releases with the license you obtained from alphaWorks. Note: Only the interface to the shared-memory version of WSMP is currently supported. Please consult Appendix~\ref{ExpertInstall} to find out how to configure your \Ipopt installation to work with WSMP. \subsubsection{Using the Linear Solver Loader}\label{sec:linear_solver_loader} By default, \Ipopt will be compiled with a mechanism, the Linear Solver Loader, which can dynamically load shared libraries with MA27, MA57, HSL\_MA77, HSL\_MA86, HSL\_MA97, or the Pardiso linear solver at runtime\footnote{This is not enabled if you compile \Ipopt with the MS Visual Studio project files provided in the \Ipopt distribution. Further, if you have problems compiling this new feature, you can disable this by specifying \texttt{--disable-linear-solver-loader} for the \texttt{configure} script}. This means, if you obtain one of those solvers after you compiled \Ipopt, you don't need to recompile to use it. Instead, you can just put a shared library called \texttt{libhsl.so} or \texttt{libpardiso.so} into the shared library search path, \texttt{LD\_LIBRARY\_PATH}. These are the names on most UNIX platforms, including Linux. On Mac OS X, the names are \texttt{libhsl.dylib}, \texttt{libpardiso.dylib}, and \texttt{DYLD\_LIBRARY\_PATH}. On Windows, the names are \texttt{libhsl.dll}, \texttt{libpardiso.dll}, and \texttt{PATH}. The Pardiso shared library can be downloaded from the Pardiso website. To create a shared library containing the HSL linear solvers, read the instructions in \texttt{\$IPOPTDIR/ThirdParty/HSL/INSTALL.HSL}. \subsubsection{Obtaining METIS}\label{sec:METIS} The linear solvers MA57, HSL\_MA77, HSL\_MA86, HSL\_MA97, and MUMPS can make use of the matrix ordering algorithms implemented in METIS (see \url{http://glaros.dtc.umn.edu/gkhome/metis/metis/overview}). If you are using one of these linear solvers, you should obtain the METIS source code and put it into \texttt{\$IPOPTDIR/ThirdParty/Metis}. Read the \texttt{INSTALL.Metis} file in that directory, and if you have the \texttt{wget} utility (or \texttt{ftp} on Mac OS X) installed on your system, you can download the code by running the \texttt{./get.Metis} script. Note, that {\bf only the older METIS 4.x version\footnote{\url{http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.3.tar.gz}} is supported} by MA57, HSL\_MA77, HSL\_MA86, HSL\_MA97, MUMPS, and the build system. The \texttt{./get.Metis} script takes care of downloading the right METIS version. \subsection{Compiling and Installing \Ipopt} \label{sec.comp_and_inst} \Ipopt can be easily compiled and installed with the usual {\tt configure}, {\tt make}, {\tt make install} commands. We follow the procedure that is used for most of the COIN-OR projects, based on the GNU autotools. At \url{https://projects.coin-or.org/CoinHelp} you can find a general description of the tools. Below are the basic steps for the \Ipopt compilation that should work on most systems. For special compilations and for some troubleshooting see Appendix~\ref{ExpertInstall} and consult the generic COIN-OR help page \url{https://projects.coin-or.org/CoinHelp} before submitting a ticket or sending a message to the mailing list. \begin{enumerate} \item Create a directory where you want to compile \Ipopt, for example\\ {\tt \$ mkdir \$IPOPTDIR/build}\\ and go into this direcrory\\ {\tt \$ cd \$IPOPTDIR/build} Note: You can choose any location, including {\tt \$IPOPTDIR} itself, as the location of your compilation. However, on COIN-OR we recommend to keep the source and compiled files separate. \item Run the configure script\\ {\tt \$ \$IPOPTDIR/configure} One might have to give options to the configure script, e.g., in order to choose a non-default compiler, or to tell it where some third party code is installed, see Appendix~\ref{ExpertInstall}. If the last output line reads ``\texttt{configure:\ Main configuration of Ipopt successful}'' then everything worked fine. Otherwise, look at the screen output, have a look at the \texttt{config.log} output files and/or consult Appendix~\ref{ExpertInstall}. The default configure (without any options) is sufficient for most users that downloaded the source code for the linear solver. If you want to see the configure options, consult Appendix~\ref{ExpertInstall}, and also visit the generic COIN-OR configuration instruction page at \centerline{\url{https://projects.coin-or.org/CoinHelp/wiki/user-configure}} \item Build the code \\ {\tt \$ make} Note: If you are using GNU make, you can also try to speed up the compilation by using the {\tt -jN} flag (e.g., {\tt make -j3}), where {\tt N} is the number of parallel compilation jobs. A good number for {\tt N} is the number of available processors plus one. Under some circumstances, this fails, and you might have to re-issue the command, or omit the {\tt -j} flag. \item If you want, you can run a short test to verify that the compilation was successful. For this, you just enter\\ {\tt \$ make test}\\ This will test if the AMPL solver executable works (if you got the ASL code) and if the included C++, C, and Fortran examples work. Note: The {\tt configure} script is not able to automatically determine the C++ runtime libraries for the C++ compiler. For certain compilers we enabled default values for this, but those might not exist or be wrong for your compiler. In that case, the C and Fortran example in the test will most probably fail to compile. If you don't want to hook up the compiled \Ipopt library to some Fortran or C code that you wrote you don't need to worry about this. If you do want to link the \Ipopt library with a C or Fortran compiler, you need to find out the C++ runtime libraries (e.g., by running the C++ compiler in verbose mode for a simple example program) and run {\tt configure} again, and this time specify all C++ runtime libraries with the {\tt CXXLIBS} variable (see also Appendix~\ref{ExpertInstall}). \item Install \Ipopt \\ {\tt \$ make install}\\ This installs \begin{itemize} \item the \Ipopt AMPL solver executable (if ASL source was downloaded) in \texttt{\$IPOPTDIR/build/bin}, \item the \Ipopt library (\texttt{libipopt.so}, \texttt{libipopt.a} or similar) and all its dependencies (MUMPS, HSL, Metis libraries) in \texttt{\$IPOPTDIR/build/lib}, \item text files {\tt ipopt\_addlibs\_cpp.txt}, {\tt ipopt\_addlibs\_c.txt}, and {\tt ipopt\_addlibs\_f.txt} in\\ \texttt{\$IPOPTDIR/build/share/coin/doc/Ipopt} each containing a line with linking flags that are required for linking code with the \Ipopt library for C++, C, and Fortran main programs, respectively. (This is only for convenience if you want to find out what additional flags are required, for example, to include the Fortran runtime libraries with a C++ compiler.) \item the necessary header files in \texttt{\$IPOPTDIR/build/include/coin}. \end{itemize} You can change the default installation directory (here \texttt{\$IPOPTDIR/build}) to something else (such as \texttt{/usr/local}) by using the \verb|--prefix| switch for \texttt{configure}. \item (Optional) Install \Ipopt for use with {\tt CUTEr}\\ If you have {\tt CUTEr} already installed on your system and you want to use \Ipopt as a solver for problems modeled in {\tt SIF}, type\\ {\tt \$ make cuter}\\ This assumes that you have the environment variable {\tt MYCUTER} defined according to the {\tt CUTEr} instructions. After this, you can use the script {\tt sdipo} as the {\tt CUTEr} script to solve a {\tt SIF} model. \end{enumerate} Note: The above procedures show how to compile the code in directories separate from the source files. This comes in handy when you want to compile the code with different compilers, compiler options, or different operating system that share a common file system. To use this feature, change into the directory where you want to compile the code, and then type {\tt \$IPOPTDIR/configure} with all the options. For this, the directories with the \Ipopt source must not have any configuration and compiled code. \subsection{Installation on Windows}\label{WindowsInstall} There are several ways to install \Ipopt on Windows systems. The first two options, described in Sections~\ref{CygwinInstall} and \ref{CygwinInstallNative}, are to use Cygwin (see \url{http://www.cygwin.com}), which offers a comprehensive UNIX-like environment on Windows and in which the installation procedure described earlier in this section can be used. If you want to use the (free) GNU compilers, follow the instructions in Section~\ref{CygwinInstall}. If you have the Microsoft C++ compiler and possibly a ``native'' Fortran compiler (e.g., the Intel Fortran compiler) and want to use those to compile \Ipopt, please see Section~\ref{CygwinInstallNative}. If you use MSYS/MinGW (a light-weight UNIX-like environment for Windows), please consider the notes in Section~\ref{MinGWInstall}. If you want to compile the \Ipopt\ {\tt mex} interface to \Matlab, then we recommend to use the MSYS/MinGW option. %The \Ipopt distribution also includes projects files for %Microsoft Visual Studio. % (see Section~\ref{VisualStudioInstall}). Note: Some binaries for \Ipopt are available on the COIN-OR website at \url{http://www.coin-or.org/download/binary/Ipopt}. There, also precompiled versions of \Ipopt as DLLs (generated from the MSVS solution in \Ipopt's subdirectory \texttt{\$IPOPTDIR/Ipopt/MSVisualStudio/v8-ifort}) are available. Look at the \texttt{README} files for details. An example how to use these DLLs from your own MSVS project is in \texttt{\$IPOPTDIR/Ipopt/MSVisualStudio/BinaryDLL-Link-Example}. \subsubsection{Installation with Cygwin using GNU compilers}\label{CygwinInstall} Cygwin is a Linux-like environment for Windows; if you don't know what it is you might want to have a look at the Cygwin homepage, \url{http://www.cygwin.com}. It is possible to build the \Ipopt AMPL solver executable in Cygwin for general use in Windows. You can also hook up \Ipopt to your own program if you compile it in the Cygwin environment\footnote{It is also possible to build an \Ipopt DLL that can be used from non-cygwin compilers, but this is not (yet?) supported.}. If you want to compile \Ipopt under Cygwin, you first have to install Cygwin on your Windows system. This is pretty straight forward; you simply download the ``setup'' program from \url{http://www.cygwin.com} and start it. Then you do the following steps (assuming here that you don't have any complications with firewall settings etc - in that case you might have to choose some connection settings differently): \begin{enumerate} \item Click next \item Select ``install from the internet'' (default) and click next \item Select a directory where Cygwin is to be installed (you can leave the default) and choose all other things to your liking, then click next \item Select a temp dir for Cygwin setup to store some files (if you put it on your desktop you will later remember to delete it) \item Select ``direct connection'' (default) and click next \item Select some mirror site that seems close by to you and click next \item OK, now comes the complicated part:\\ You need to select the packages that you want to have installed. By default, there are already selections, but the compilers are usually not pre-chosen. You need to make sure that you select the GNU compilers (for Fortran, C, and C++), Subversion, and some additional tools. For this, get the following packages from the associated branches: \begin{itemize} \item ``Devel'': {\tt gcc4} \item ``Devel'': {\tt gcc4-fortran} \item ``Devel'': {\tt pkg-config} \item ``Devel'': {\tt subversion} \item ``Archive'': {\tt unzip} \item ``Utils'': {\tt patch} \item ``Web'': {\tt wget} \end{itemize} When a Resolving Dependencies window comes up, be sure to ``Select required packages (RECOMMENDED)''. This will automatically also select some other packages. \item\label{it:cyg_done} Then you click on next, and Cygwin will be installed (follow the rest of the instructions and choose everything else to your liking). At a later point you can easily add/remove packages with the setup program. \item The version of the GNU Make utility provided by the Cygwin installer will not work. Therefore, you need to download the fixed version from \url{http://www.cmake.org/files/cygwin/make.exe} and save it to {\tt C:$\backslash$cygwin$\backslash$bin}. Double-check this new version by typing {\tt make --version} in a Cygwin terminal (see next point). If you get an error {\tt -bash: /usr/bin/make: Bad address}, then try \url{http://www.cmake.org/files/cygwin/make.exe-cygwin1.7} instead, rename it to {\tt make.exe} and move it to {\tt C:$\backslash$cygwin$\backslash$bin}. (Replace {\tt C:$\backslash$cygwin} with your installation location if different.) \item Now that you have Cygwin, you can open a Cygwin window, which is like a UNIX shell window. \item\label{it:cyg_inst} Now you just follow the instructions in the beginning of Section~\ref{Installing}: You download the \Ipopt code into your Cygwin home directory (from the Windows explorer that is usually something like \texttt{C:$\backslash$Cygwin$\backslash$home$\backslash$your\_user\_name}).\ After that you obtain the third party code (as on Linux/UNIX), type \texttt{./configure} and \texttt{make install} in the correct directories, and hopefully that will work. The \Ipopt AMPL solver executable will be in the subdirectory \texttt{bin} (called ``\texttt{ipopt.exe}''). If you want to set the installation, type \texttt{make test} % I think this is outdated nowadays: % \textbf{NOTE:} By default, the compiled binaries (library and % executables) will be ``Cygwin-native'', i.e., in order to run % executables using this, the {\tt Cygwin1.dll} has to be present % (e.g., in a Cygwin window). If you want to compile things in a way % that allow your executables to run outside of Cygwin, e.g., in a % regular DOS prompt, you need to specify the option ``{\tt % --enable-doscompile}'' when you run {\tt configure}. \end{enumerate} \subsubsection{Installation with Cygwin using the MSVC++ compiler} \label{CygwinInstallNative} This section describes how you can compile \Ipopt with the Microsoft Visual C++ compiler under Cygwin. Here you have two options for compiling the Fortran code in the third party dependencies: \begin{itemize} \item Using a Windows Fortran compiler, e.g., the Intel Fortran compiler, which is also able to compile Fortran 90 code. This would allow you to compile the MUMPS linear solver if you desire to do so. \item Using the {\tt f2c} Fortran to C compiler, available for free at Netlib (see \url{http://www.netlib.org/f2c}). This can only compile Fortran 77 code (i.e., you won't be able to compile MUMPS). Before doing the following installation steps, you need to follow the instructions in\\ {\tt\$IPOPTDIR/BuildTools/compile\_f2c/INSTALL}. \end{itemize} \noindent Once you have settled on this, do the following: \begin{enumerate} \item Follow the instructions in Section~\ref{CygwinInstall} until Step~\ref{it:cyg_inst} and stop after your downloaded the third party code. \item\label{it:setupmsvcpath} Now you need to make sure that Cygwin knows about the native compilers. For this you need to edit the file {\tt cygwin.bat} in the Cygwin base directory (usually {\tt C:$\backslash$cygwin}). Here you need to add a line like the following: \texttt{call "C:$\backslash$Program Files$\backslash$Microsoft Visual Studio 8$\backslash$VC$\backslash$vcvarsall.bat"} On my computer, this sets the environment variables so that I can use the MSVC++ compiler. If you want to use also a native Fortran compiler, you need to include something like this \texttt{call "C:$\backslash$Program Files$\backslash$Intel$\backslash$Fortran$\backslash$compiler80$\backslash$IA32$\backslash$BIN$\backslash$ifortvars.bat"} You might have to search around a bit. The important thing is that, after your change, you can type ``{\tt cl}'' in a newly opened Cygwin windows, and it finds the Microsoft C++ compiler (and if you want to use it, the Fortran compiler, such as the Intel's {\tt ifort}). \item Run the configuration script, and tell it that you want to use the native compilers: \texttt{./configure --enable-doscompile=msvc} Make sure the last message is \texttt{Main Ipopt configuration successful} %\item\label{it:ASLcompile} If want to compile the AMPL solver % executable, you need to compile the ASL library from a script. For % this you need to change into the ASL compilation directory, execute % the script \texttt{compile\_MS\_ASL}, and go back to the directory % where you were: % % \texttt{cd ThirdParty/ASL} % % \texttt{./compile\_MS\_ASL} % % \texttt{cd -} \item Now you can compile the code with \texttt{make}, test the installation with \texttt{make test}, and install everything with \texttt{make install} \end{enumerate} \subsubsection{Installation with MSYS/MinGW}\label{MinGWInstall} You can compile \Ipopt also under MSYS/MinGW, which is another, more light-weight UNIX-like environment for Windows. It can be obtained from \url{http://www.mingw.org/}. If you want to use MSYS/MinGW to compile \Ipopt with native Windows compilers (see Section~\ref{CygwinInstallNative}), all you need to install is the basic version\footnote{a convenient Windows install program is available from \url{http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/}}. If you also want to use the GNU compilers, you need to install those as well, of course. A compilation with the GNU compilers works just like with any other UNIX system, as described in Section~\ref{sec.comp_and_inst}. That is, during the installation, select (at least) the C Compiler, C++ Compiler, Fortran Compiler, MSYS Basic System, and the MinGW Developer ToolKit. Additionally, {\tt wget} and {\tt unzip} should be installed with the following command in an MSYS terminal: \begin{verbatim} mingw-get install msys-wget msys-unzip \end{verbatim} If you want to use the native MSVC++ compiler (with {\tt f2c} or a native Fortran compiler), you essentially follow the steps outlined in Section~\ref{CygwinInstallNative}. Additionally, you need to make sure that the environment variables are set for the compilers (see step~\ref{it:setupmsvcpath}), this time adding the line to the {\tt msys.bat} file. For a 64-bit build, you will need to install also a MinGW-64 distribution. We recommend TDM-GCC, which is available from \url{http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC\%20Installer/tdm-gcc-webdl.exe/download}. Install MinGW-64 in a different folder than your existing 32-bit MinGW installation! The components you need are: {\tt core} (under {\tt gcc}), {\tt c++} (under {\tt gcc}), {\tt fortran} (under {\tt gcc}), {\tt openmp} (under {\tt gcc}, necessary if you want to use any multi-threaded linear solvers), {\tt binutils}, and {\tt mingw64-runtime}. After MinGW-64 is installed, open the file {\tt C:$\backslash$MinGW$\backslash$msys$\backslash$1.0$\backslash$etc$\backslash$fstab}, and replace the line \begin{verbatim} C:\MinGW\ /mingw \end{verbatim} with \begin{verbatim} C:\MinGW64\ /mingw \end{verbatim} (Replace paths with your installation locations if different.) %Also, you need to run the %\texttt{compile\_MS\_ASL} script in the \texttt{ThirdParty/ASL} %immediately after you run the configuration script. %\subsubsection{Using Microsoft Visual Studio}\label{VisualStudioInstall} %\textbf{NEW:} Some binaries for \Ipopt are available on the COIN-OR website at %\url{http://www.coin-or.org/download/binary/Ipopt}. %There are also precompiled versions of Ipopt as DLLs (generated from %the MSVC solution in \Ipopt's subdirectory %\texttt{\$IPOPTDIR/Ipopt/MSVisualStudio/v8-ifort}). Look at the %\texttt{README} files for details. An example how to use these DLLs %from your own MSVC project is in\\ %\texttt{\$IPOPTDIR/Ipopt/MSVisualStudio/BinaryDLL-Link-Example}. %The \Ipopt distribution includes project files that can be used to %compile the \Ipopt library, the AMPL solver executable, and a C++ %example within the Microsoft Visual Studio. The project files have %been created with Microsoft Visual 8 Express. Fortran files in the %third party dependencies need to be converted to C code using the {\tt % f2c} Fortran to C compiler\footnote{Projects files for a previous % version of \Ipopt that used the Intel Fortran compiler are in % {\$IPOPTDIR$\backslash$Ipopt$\backslash$NoLongerMaintainedWindows}, % but they are probably outdated, and you will have to correct them.}. %In order to use those project files, download the \Ipopt source code, %as well as the required third party code (put it into the {\tt % ThirdParty$\backslash$Blas}, {\tt ThirdParty$\backslash$Lapack}, %{\tt ThirdParty$\backslash$HSL}, {\tt ThirdParty$\backslash$ASL} %directories). Detailed step-by-step instructions on how to install %{\tt f2c}, translate the Fortran code to C files, and further details %are described in the file %\texttt{\$IPOPTDIR$\backslash$Ipopt$\backslash$MSVisualStudio$\backslash$v8$\backslash$README.TXT} %After that, you can open the solution file %\texttt{\$IPOPTDIR$\backslash$Ipopt$\backslash$MSVisualStudio$\backslash$v8$\backslash$Ipopt.sln} %If you are compiling \Ipopt with different linear solvers, you need %to edit the configuration header file %\texttt{Ipopt$\backslash$src$\backslash$Common$\backslash$IpoptConfig.h}, %in the section after %\begin{verbatim} %/***************************************************************************/ %/* HERE DEFINE THE CONFIGURATION SPECIFIC MACROS */ %/***************************************************************************/ %\end{verbatim} %and include the corresponding source files in %\texttt{Ipopt$\backslash$src$\backslash$Algorithm$\backslash$LinearSolvers} %and add the corresponding libraries to your project. \subsection{Compiling and Installing the Java Interface \JIpopt} \label{sec.jipopt.build} \hfill \textit{based on documentation by Rafael de Pelegrini Soares}% \footnote{VRTech Industrial Technologies} \medskip \JIpopt uses the Java Native Interface (JNI), which is a programming framework that allows Java code running in the Java Virtual Machine (JVM) to call and be called by native applications and libraries written in languages such as C and C++. \JIpopt requires Java 5 or higher. After building and installing \Ipopt, the \JIpopt interface can be build by setting the environment variable {\tt JAVA\_HOME} to the directory that contains your JDK, changing to the \JIpopt directory in your \Ipopt build, and issuing {\tt make}, e.g., \begin{verbatim} export JAVA_HOME=/usr/lib/jvm/java-1.5.0 cd $IPOPTDIR/build/Ipopt/contrib/JavaInterface make \end{verbatim} This will generate the Java class {\tt org/coinor/Ipopt.class}, which you will need to add into your Java project and the shared object {\tt lib/libjipopt.so} (on Linux/UNIX) or {\tt lib/libjipopt.dylib} (on Mac OS X) or the DLL {\tt lib/jipopt.dll} (on Windows). In order to test your \JIpopt library you can run two example problems by issuing the command {\tt make test} inside the \JIpopt directory. \textbf{NOTE}: The \JIpopt build procedure currently cannot deal with spaces in the path to the JDK. If you are on Windows and have Java in a path like \verb|C:\Program Files\Java|, try setting {\tt JAVA\_HOME} to the DOS equivalent \verb|C:\Progra~1| (or similar). \textbf{NOTE}: \JIpopt needs to be able to load the \Ipopt library dynamically at runtime. Therefore, \Ipopt must have been compiled with the {\tt -fPIC} compiler flag. While per default, an Ipopt shared library is compiled with this flag, for a configuration of \Ipopt in debug mode ({\tt --enable-debug}) or as static library ({\tt --disable-shared}), the configure flag {\tt --with-pic} need to be used to enable compilation with {\tt -fPIC}. \subsection{Compiling and Installing the R Interface \ipoptr} \label{sec.ipoptr.build} The \ipoptr interface can be build after \Ipopt has been build and installed. In the best case, it is sufficient to execute the following command in R: \begin{verbatim} install.packages('$IPOPTDIR/build/Ipopt/contrib/RInterface', repos=NULL, type='source') \end{verbatim} In certain situations, however, it can be necessary to setup the dynamic library load path to the path where the \Ipopt library has been installed, e.g., \begin{verbatim} LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$IPOPTDIR/build/lib \end{verbatim} \textbf{NOTE}: R needs to be able to load the \Ipopt library dynamically at runtime. Therefore, \Ipopt must have been compiled with the {\tt -fPIC} compiler flag. While per default, an Ipopt shared library is compiled with this flag, for a configuration of \Ipopt in debug mode ({\tt --enable-debug}) or as static library ({\tt --disable-shared}), the configure flag {\tt --with- pic} need to be used to enable compilation with {\tt -fPIC}. After installation of the \ipoptr package, it should be possible to load the package in R and to view the help page: \begin{verbatim} > library('ipoptr') > ?ipoptr \end{verbatim} \subsection{Compiling and Installing the \Matlab interface} \label{sec.matlab.build} \hfill \textit{based on documentation by Peter Carbonetto\footnote{University of British Columbia}, Tony Kelman\footnote{University of California, Berkeley}, and Ray Zimmerman}% \medskip The \Matlab interface to \Ipopt uses the {\tt mex} interface of \Matlab. It has been tested on \Matlab versions 7.2 through 7.7. It might very well work on earlier versions of \Matlab, but there is also a good chance that it will not. It is unlikely that the software will run with versions prior to \Matlab 6.5. First, note that some binaries of \Ipopt\ {\tt mex} files are available for download at \url{http://www.coin-or.org/download/binary/Ipopt}. Further, the OPTI Toolbox (\url{http://www.i2c2.aut.ac.nz/Wiki/OPTI}) comes with a precompiled \Matlab interface for \Ipopt on Windows. \subsubsection{Setting up {\tt mex}} To build the interface by yourself, you will need to have \Matlab installed on your system and have it configured to build {\tt mex} files, see \url{http://www.mathworks.com/support/tech-notes/1600/1605.html} for detail on how to set this up. Ipopt 3.11 has added Makefile options to automate fixes for commonly-encountered issues with building the \Matlab interface. On Mac OS X or Windows, the file {\tt mexopts.sh} ({\tt mexopts.bat} on Windows) will need to be modified. This is performed automatically by calling {\tt make mexopts} in the {\tt \$IPOPTDIR/build/Ipopt/contrib/MatlabInterface/src} directory. No changes will be made if you already have a {\tt mexopts.sh} file in that directory. If you need to make these modifications manually, follow the steps below. For Mac OS X, the following procedure has been reported: First, one executes a command like \begin{verbatim} /Applications/MATLAB_R2012.app/bin/mex -setup \end{verbatim} This creates a {\tt mexopts.sh} file in the {\tt ~/.matlab/R2010} directory. Copy that file to the directory {\tt \$IPOPTDIR/build/Ipopt/contrib/MatlabInterface/src} and modify it as follows. \begin{itemize} \item In the {\tt maci} section (32 bit builds) or the {\tt maci64} section (64 bit builds), change both instances of {\tt libgfortran.dylib} to {\tt libgfortran.a} in the {\tt FC\_LIBDIR} line (in case your Fortran compiler only comes with static libraries). \item Remove all occurrences of {\tt -isysroot \$SDKROOT} or {\tt -Wl,-syslibroot,\$SDKROOT} in case the hard-coded version of the Xcode SDK that Matlab expects does not match what you have installed on your system. \item Remove all occurrences of {\tt -arch \$ARCHS} in case you are using a GNU compiler that does not recognize these Apple-specific flags. \end{itemize} On Windows, if you are using the GNU compilers via MinGW, then you will need to use the {\tt gnumex} project. First, execute the script {\tt ./get.Gnumex} from the {\tt \$IPOPTDIR/Ipopt/contrib/MatlabInterface} directory. Then, after configuring \Ipopt, go to {\tt \$IPOPTDIR/build/contrib/MatlabInterface/src} and execute {\tt make gnumex}. This will start an instance of \Matlab and open the {\tt gnumex} tool. Check that the options are filled out appropriately for your MinGW installation, click ``Make options file," then close this new instance of \Matlab after {\tt gnumex} has created {\tt mexopts.bat}. Calling {\tt make mexopts} will automatically make the necessary changes to this new {\tt mexopts.bat} file. If you would like to do so manually, the changes are as follows. \begin{itemize} \item Change {\tt COMPILER=gcc} to {\tt COMPILER=g++} \item Change {\tt GM\_MEXLANG=c} to {\tt GM\_MEXLANG=cxx} \item Add the contents of the {\tt LIBS=} line from the \Matlab interface Makefile to {\tt GM\_ADD\_LIBS} \item If you want to statically link the standard libraries into the {\tt mex} file, add {\tt -static} to {\tt GM\_ADD\_LIBS} \end{itemize} \subsubsection{Adjusting configuration and build of \Ipopt} The configure script of \Ipopt attempts to automatically locate the directory where \Matlab is installed by querying the location of the {\tt matlab} executable. You can also manually specify the \Matlab home directory when calling the configure script with the flag {\tt --with-matlab-home}. You can determine this home directory by the command {\tt matlabroot} within \Matlab. In practice, it has been found easier to install and use the \Matlab interface by disabling compilation of the shared libraries, and use only static libraries instead. However, these static libraries need to be built in a way that allow using them in a shared library, i.e., they need to build with position-independent code. This is achieved with the configure script flags \begin{verbatim} --disable-shared --with-pic \end{verbatim} On Mac OS X, it has been reported that additionally the following flags for configure should be used: \begin{verbatim} ADD_CFLAGS="-fno-common -fexceptions -no-cpp-precomp" ADD_CXXFLAGS="-fno-common -fexceptions -no-cpp-precomp" ADD_FFLAGS="-fexceptions -fbackslash" \end{verbatim} With \Ipopt 3.11, a \emph{site script for configure} has been added to the \Matlab interface. This script takes care of setting configure options in a way that is appropriate for building an \Ipopt { \tt mex} file that is useable via \Matlab. Therefore, instead of setting configure options as described in the previous section, it should be sufficient to create a directory {\tt \$IPOPTDIR/build/share}, copy the site file {\tt \$IPOPTDIR/contrib/MatlabInterface/MatlabInterface.site} to that directory, and rename it to {\tt config.site} before running configure. Alternatively, you can set an environment variable {\tt CONFIG\_SITE} that points to the site file. This site script sets the configure flags (if not specified by the user) {\tt --disable-shared --with-pic --with-blas=BUILD --with-lapack=BUILD}. The first two flags are discussed above. We also specify that the reference versions of BLAS and LAPACK should be used by default because of a commonly observed issue on 64-bit Linux systems. If \Ipopt configure finds BLAS and/or LAPACK libraries already installed then it will use them. However, \Matlab includes its own versions of BLAS and LAPACK, which on 64-bit systems are incompatible with the expected interface used by \Ipopt and the BLAS and LAPACK packages available in many Linux distributions. If the \Ipopt { \tt mex} file is compiled in such a way that the BLAS and LAPACK libraries are dynamically linked as shared libraries (as found in installed Linux packages), those library dependencies will be overridden by \Matlab's incompatible versions. This can be avoided by statically linking BLAS and LAPACK into the \Ipopt { \tt mex} file, which the above combination of configure flags will do. Note, that this issue does not appear to affect Mac OS X versions of \Matlab, so if you would like to use the Apple optimized BLAS and LAPACK libraries you can override these settings and specify {\tt --with-blas='-framework vecLib' --with-lapack='-framework vecLib'}. The site script also tests whether the compilers on your system are capable of statically linking the standard C++ and Fortran libraries into a shared library. This is possible with GCC versions 4.5.0 or newer on Mac OS X or Windows, 4.7.3 or newer (when GCC itself is built {\tt --with-pic}) on Linux. If this is the case, then the site script will set appropriate configure flags and options in the \Matlab interface {\tt Makefile} to statically link all standard libraries into the \Ipopt { \tt mex} file. This should allow a single {\tt mex} file to work with a variety of versions of \Matlab, and on computers that do not have the same compiler versions installed. If this static linking of standard libraries causes any issues, you can disable it with the configure flag {\tt --disable-matlab-static}. \subsubsection{Building the \Matlab interface} After configuring, building, and installing \Ipopt itself, it is time to build the \Matlab interface. For that, \Ipopt's configure has setup a directory {\tt \$IPOPTDIR/build/contrib/MatlabInterface/src} which contains a {\tt Makefile}. You may need to edit this file a little bit to suit for your system setup. You will find that most of the variables such as {\tt CXX} and {\tt CXXFLAGS} have been automatically (and hopefully, correctly) set according to the flags specified during your initial call to configure script. However, you may need to modify {\tt MATLAB\_HOME}, {\tt MEXSUFFIX} and {\tt MEX} as explained in the comments of the Makefile. For example, on Mac OS X, it has been reported that all duplicates of strings like {\tt -L/usr/lib/gcc/i686-apple-darwin11/4.2.1/../../..} should be removed from the {\tt LIBS} line. Once you think you've set up the {\tt Makefile} properly, type {\tt make install} in the same directory as the {\tt Makefile}. If you didn't get any errors, then you should have ended up with a {\tt mex} file. The {\tt mex} file will be called {\tt ipopt.\$MEXEXT}, where {\tt \$MEXEXT} is {\tt mexglx} for 32-bit Linux, {\tt mexa64} for 64-bit Linux, {\tt mexw32} for 32-bit Windows, etc. \subsubsection{Making \Matlab aware of the {\tt mex} file} In order to use the {\tt mex} file in \Matlab, you need to tell \Matlab where to find it. The best way to do this is to type \begin{verbatim} addpath sourcedir \end{verbatim} in the \Matlab command prompt, where {\tt sourcedir} is the location of the {\tt mex} file you created. (For more information, type {\tt help addpath} in \Matlab. You can also achieve the same thing by modifying the {\tt MATLABPATH} environment variable in the UNIX command line, using either the {\tt export} command (in Bash shell) or the {\tt setenv} command (in C-shell). %There's a great possibility you will encounter problems with the installation instructions we have just described here. I'm afraid some resourcefulness will be required on your part, as the installation will be slightly different for each person. Please consult the troubleshooting section on this webpage, and the archives of the IPOPT mailing list. If you can't find the answer at either of these locations, try sending an email to the IPOPT mailing list. \subsubsection{Additional notes} Starting with version 7.3, \Matlab can handle 64-bit addressing, and the authors of \Matlab have modified the implementation of sparse matrices to reflect this change. However, the row and column indices in the sparse matrix are converted to signed integers, and this could potentially cause problems when dealing with large, sparse matrices on 64-bit platforms with \Matlab version 7.3 or greater. As \Matlab (version R2008a or newer) includes its own HSL MA57 library, \Ipopt's configure can be setup to enable using this library in \Ipopt's MA57 solver interface. To enable this, one should specify the configure option {\tt --enable-matlab-ma57}. Note, that using this option is not advisable if one also provides the source for MA57 via ThirdParty/HSL. \subsubsection{Troubleshooting} The installation procedure described above does involve a certain amount of expertise on the part of the user. If you are encountering problems, it is highly recommended that you follow the standard installation of \Ipopt first, and then test the installation by running some examples, either in C++ or in AMPL. What follows are a list of common errors encountered, along with a suggested remedy. \medskip \textbf{Problem:} compilation is successful, but \Matlab crashes \textbf{Remedy:} Even if you didn't get any errors during compilation, there's still a possibility that you didn't link the {\tt mex} file properly. In this case, executing \Ipopt in \Matlab will cause \Matlab to crash. This is a common problem, and usually arises because you did not choose the proper compiler or set the proper compilation flags (e.g. {\tt --with-pic}) when you ran the configure script at the very beginning. \medskip \textbf{Problem:} \Matlab fails to link to \Ipopt shared library \textbf{Remedy:} You might encounter this problem if you try to execute one of the examples in \Matlab, and \Matlab complains that it cannot find the \Ipopt shared library. The installation script has been set up so that the {\tt mex} file you are calling knows where to look for the \Ipopt shared library. However, if you moved the library then you will run into a problem. One way to fix this problem is to modify the {\tt LDFLAGS} variable in the \Matlab interface {\tt Makefile} (see above) so that the correct path of the \Ipopt library is specified. Alternatively, you could modify the {\tt LD\_LIBRARY\_PATH} environment variable so that the location of the \Ipopt library is included in the path. If none of this is familiar to you, you might want to do a web search to find out more. \medskip \textbf{Problem:} {\tt mwIndex} is not defined \textbf{Remedy:} You may get a compilation error that says something to the effect that {\tt mwIndex} is not defined. This error will surface on a version of \Matlab prior to 7.3. The solution is to add the flag {\tt -DMWINDEXISINT} to the {\tt CXXFLAGS} variable in the \Matlab interface {\tt Makefile} (see above). %\subsubsection{More Information} %The difficulties with building and using the \Matlab interface of \Ipopt have %lead to several installation instructions on the web: %\begin{itemize} %\item Peter Carbonetto's original instructions on how to build the \Matlab %interface:\\ \url{https://projects.coin-or.org/Ipopt/wiki/MatlabInterface} %\item Ray Zimmerman's instructions on how to build the \Matlab interface on %Mac OS X:\\ \url{https://projects.coin-or.org/Ipopt/wiki/Ipopt_on_Mac_OS_X} %\item Giacomo Perantoni's experiences and help with the \Matlab interface on %Windows:\\ \url{http://users.ox.ac.uk/~newc3480} %\end{itemize} \subsection{Expert Installation Options for \Ipopt}\label{ExpertInstall} The configuration script and Makefiles in the \Ipopt distribution have been created using GNU's {\tt autoconf} and {\tt automake}. They attempt to automatically adapt the compiler settings etc.\ to the system they are running on. We tested the provided scripts for a number of different machines, operating systems and compilers, but you might run into a situation where the default setting does not work, or where you need to change the settings to fit your particular environment. In general, you can see the list of options and variables that can be set for the {\tt configure} script by typing \verb/configure --help/. Also, the generic COIN-OR help pages are a valuable resource of information: \centerline{\url{https://projects.coin-or.org/CoinHelp}} Below a few particular options are discussed: \begin{itemize} \item The {\tt configure} script tries to determine automatically, if you have BLAS and/or LAPACK already installed on your system (trying a few default libraries), and if it does not find them, it makes sure that you put the source code in the required place. However, you can specify a BLAS library (such as your local ATLAS library\footnote{see \url{http://math-atlas.sourceforge.net}}) explicitly, using the \verb/--with-blas/ flag for {\tt configure}. For example, \verb|./configure --with-blas="-L$HOME/lib -lf77blas -lcblas -latlas"| %$ To tell the configure script to compile and use the downloaded BLAS source files even if a BLAS library is found on your system, specify \verb|--with-blas=BUILD|. Similarly, you can use the \verb/--with-lapack/ switch to specify the location of your LAPACK library, or use the keyword {\tt BUILD} to force the \Ipopt makefiles to compile LAPACK together with \Ipopt. \item Similarly, if you have a precompiled library containing the HSL packages, you can specify the directory with the \texttt{CoinHslConfig.h} header file with the \verb|--with-hsl-incdir| flag and the linker flags with the \verb|--with-hsl-lib| flag. Analogously, use \verb|--with-asl-incdir| and \verb|--with-asl-lib| for building against a precompiled AMPL solver library. \item The HSL codes HSL\_MA86 and HSL\_MA97 can run in parallel if compiled with OpenMP support. By default, this is not enabled by \Ipopt's configure so far. To enable OpenMP with GNU compilers, it has been reported that the following configure flags should be used: \verb|ADD_CFLAGS=-fopenmp ADD_FFLAGS=-fopenmp ADD_CXXFLAGS=-fopenmp| \item If you want to compile \Ipopt with the linear solver Pardiso (see Section~\ref{sec:Pardiso}), you need to specify the link flags for the library with the \verb|--with-pardiso| flag, including required additional libraries and flags. For example, if you want to compile \Ipopt with the parallel version of Pardiso (located in {\tt \$HOME/lib}) on an AIX system in 64bit mode, you should add the flag \verb|--with-pardiso="-qsmp=omp $HOME/lib/libpardiso_P4AIX51_64_P.so"| %$ If you are using the parallel version of Pardiso, you need to specify the number of processors it should run on with the environment variable \verb|OMP_NUM_THREADS|, as described in the Pardiso manual. \item If you want to compile \Ipopt with the linear solver WSMP (see Section~\ref{sec:WSMP}), you need to specify the link flags for the library with the \verb|--with-wsmp| flag, including required additional libraries and flags. For example, if you want to compile \Ipopt with WSMP (located in {\tt \$HOME/lib}) on an Intel IA32 Linux system, you should add the flag \verb|--with-wsmp="$HOME/lib/wsmp/wsmp-Linux/lib/IA32/libwsmp.a -lpthread"| %$ \item If you want to compile \Ipopt with a precompiled MUMPS library (see Section~\ref{sec:MUMPS}), you need to specify the directory containing the MUMPS header files with the \verb|--with-mumps-incdir| flag, e.g., \verb|--with-mumps-incdir="$HOME/MUMPS/include"| %$ and you also need to provide the link flags for MUMPS with the \verb|--with-mumps-lib| flag. \item If you want to specify that you want to use particular compilers, you can do so by adding the variables definitions for {\tt CXX}, {\tt CC}, and {\tt F77} to the {\tt ./configure} command line, to specify the C++, C, and Fortran compiler, respectively. For example, {\tt ./configure CXX=g++-4.2.0 CC=gcc-4.2.0 F77=gfortran-4.2.0} In order to set the compiler flags, you should use the variables {\tt CXXFLAGS}, {\tt CFLAGS}, {\tt FFLAGS}. Note, that the \Ipopt code uses ``{\tt dynamic\_cast}''. Therefore it is necessary that the C++ code is compiled including RTTI (Run-Time Type Information). Some compilers need to be given special flags to do that (e.g., ``{\tt -qrtti=dyna}'' for the AIX {\tt xlC} compiler). Please also check the generic COIN-OR help page at \centerline{\url{https://projects.coin-or.org/CoinHelp/wiki/user-configure\#GivingOptions}} for the description of more variables that can be set for {\tt configure}. \item By default, the \Ipopt library is compiled as a shared library, on systems where this is supported. If you want to generate a static library, you need to specify the {\tt --disable-shared} flag. If you want to compile both shared and static libraries, you should specify the {\tt --enable-static} flag. \item If you want to link the \Ipopt library with a main program written in C or Fortran, the C and Fortran compiler doing the linking of the executable needs to be told about the C++ runtime libraries. Unfortunately, the current version of {\tt autoconf} does not provide the automatic detection of those libraries. We have hard-coded some default values for some systems and compilers, but this might not work all the time. If you have problems linking your Fortran or C code with the \Ipopt library {\tt libipopt.a} and the linker complains about missing symbols from C++ (e.g., the standard template library), you should specify the C++ libraries with the {\tt CXXLIBS} variable. To find out what those libraries are, it is probably helpful to link a simple C++ program with verbose compiler output. For example, for the Intel compilers on a Linux system, you might need to specify something like {\tt ./configure CC=icc F77=ifort CXX=icpc $\backslash$\\ \hspace*{14ex} CXXLIBS='-L/usr/lib/gcc-lib/i386-redhat-linux/3.2.3 -lstdc++'} \item Compilation in 64bit mode sometimes requires some special consideration. For example, for compilation of 64bit code on AIX, we recommend the following configuration {\tt ./configure AR='ar -X64' NM='nm -X64' $\backslash$\\ \hspace*{14ex} CC='xlc -q64' F77='xlf -q64' CXX='xlC -q64'$\backslash$\\ \hspace*{14ex} CFLAGS='-O3 -bmaxdata:0x3f0000000' $\backslash$\\ \hspace*{14ex} FFLAGS='-O3 -bmaxdata:0x3f0000000' $\backslash$\\ \hspace*{14ex} CXXFLAGS='-qrtti=dyna -O3 -bmaxdata:0x3f0000000'} (Alternatively, a simpler solution for AIX is to set the environment variable {\tt OBJECT\_MODE} to 64.) % \item To build library/archive files (with the ending {\tt .a}) % including C++ code in some environments, it is necessary to use the % C++ compiler instead of {\tt ar} to build the archive. This is for % example the case for some older compilers on SGI and SUN. For this, % the {\tt configure} variables {\tt AR}, {\tt ARFLAGS}, and {\tt % AR\_X} are provided. Here, {\tt AR} specifies the command for the % archiver for creating an archive, and {\tt ARFLAGS} specifies % additional flags. {\tt AR\_X} contains the command for extracting % all files from an archive. For example, the default setting for SUN % compilers for our configure script is % {\tt AR='CC -xar' ARFLAGS='-o' AR\_X='ar x'} \item It is possible to compile the \Ipopt library in a debug configuration, by specifying \verb|--enable-debug|. Then the compilers will use the debug flags (unless the compilation flag variables are overwritten in the {\tt configure} command line) Also, you can tell \Ipopt to do some additional runtime sanity checks, by specifying the flag {\tt --with-ipopt-checklevel=1}. This usually leads to a significant slowdown of the code, but might be helpful when debugging something. % We assume vpath installations already during this chapter. %\item It is not necessary to produce the binary files in the % directories where the source files are. If you want to compile the % code on different systems or with different compilers/options on a % shared file system, you can keep one single copy of the source files % in one directory, and the binary files for each configuration in % separate directories. For this, simply run the configure script in % the directory where you want the base directory for the \Ipopt % binary files. For example: % % {\tt \$ mkdir \$HOME/Ipopt-objects}\\ % {\tt \$ cd \$HOME/Ipopt-objects}\\ % {\tt \$ \$HOME/CoinIpopt/configure} \end{itemize} \section{Interfacing your NLP to \Ipopt} \label{sec:tutorial-example} \Ipopt has been designed to be flexible for a wide variety of applications, and there are a number of ways to interface with \Ipopt that allow specific data structures and linear solver techniques. Nevertheless, the authors have included a standard representation that should meet the needs of most users. This tutorial will discuss six interfaces to \Ipopt, namely the AMPL modeling language \cite{FouGayKer:AMPLbook} interface, and the C++, C, Fortran, Java, and R code interfaces. AMPL is a 3rd party modeling language tool that allows users to write their optimization problem in a syntax that resembles the way the problem would be written mathematically. Once the problem has been formulated in AMPL, the problem can be easily solved using the (already compiled) \Ipopt AMPL solver executable, {\tt ipopt}. Interfacing your problem by directly linking code requires more effort to write, but can be far more efficient for large problems. We will illustrate how to use each of the four interfaces using an example problem, number 71 from the Hock-Schittkowsky test suite \cite{HS}, %\begin{subequations}\label{HS71} \begin{eqnarray} \min_{x \in \Re^4} &&x_1 x_4 (x_1 + x_2 + x_3) + x_3 \label{eq:ex_obj} \\ \mbox{s.t.} &&x_1 x_2 x_3 x_4 \ge 25 \label{eq:ex_ineq} \\ &&x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40 \label{eq:ex_equ} \\ &&1 \leq x_1, x_2, x_3, x_4 \leq 5, \label{eq:ex_bounds} \end{eqnarray} %\end{subequations} with the starting point \begin{equation} x_0 = (1, 5, 5, 1) \label{eq:ex_startpt} \end{equation} and the optimal solution \[ x_* = (1.00000000, 4.74299963, 3.82114998, 1.37940829). \nonumber \] You can find further, less documented examples for using \Ipopt from your own source code in the {\tt Ipopt/examples} subdirectory. \subsection{Using \Ipopt through AMPL} \label{sec.ipoptampl} Using the AMPL solver executable is by far the easiest way to solve a problem with \Ipopt. The user must simply formulate the problem in AMPL syntax, and solve the problem through the AMPL environment. There are drawbacks, however. AMPL is a 3rd party package and, as such, must be appropriately licensed (a free student version for limited problem size is available from the AMPL website, \url{http://www.ampl.com}). Furthermore, the AMPL environment may be prohibitive for very large problems. Nevertheless, formulating the problem in AMPL is straightforward and even for large problems, it is often used as a prototyping tool before using one of the code interfaces. This tutorial is not intended as a guide to formulating models in AMPL. If you are not already familiar with AMPL, please consult \cite{FouGayKer:AMPLbook}. The problem presented in equations (\ref{eq:ex_obj})--(\ref{eq:ex_startpt}) can be solved with \Ipopt with the following AMPL model. \begin{verbatim} # tell ampl to use the ipopt executable as a solver # make sure ipopt is in the path! option solver ipopt; # declare the variables and their bounds, # set notation could be used, but this is straightforward var x1 >= 1, <= 5; var x2 >= 1, <= 5; var x3 >= 1, <= 5; var x4 >= 1, <= 5; # specify the objective function minimize obj: x1 * x4 * (x1 + x2 + x3) + x3; # specify the constraints s.t. inequality: x1 * x2 * x3 * x4 >= 25; equality: x1^2 + x2^2 + x3^2 +x4^2 = 40; # specify the starting point let x1 := 1; let x2 := 5; let x3 := 5; let x4 := 1; # solve the problem solve; # print the solution display x1; display x2; display x3; display x4; \end{verbatim} The line, ``{\tt option solver ipopt;}'' tells AMPL to use \Ipopt as the solver. The \Ipopt executable (installed in Section~\ref{sec.comp_and_inst}) must be in the {\tt PATH} for AMPL to find it. The remaining lines specify the problem in AMPL format. The problem can now be solved by starting AMPL and loading the mod file: \begin{verbatim} $ ampl > model hs071_ampl.mod; . . . \end{verbatim} %$ The problem will be solved using \Ipopt and the solution will be displayed. At this point, AMPL users may wish to skip the sections about interfacing with code, but should read Section \ref{sec:options} concerning \Ipopt options, and Section \ref{sec:output} which explains the output displayed by \Ipopt. \subsubsection{Using \Ipopt from the command line} It is possible to solve AMPL problems with \Ipopt directly from the command line. However, this requires a file in format {\tt .nl} produced by {\tt ampl}. If you have a model and data loaded in {\tt Ampl}, you can create the corresponding {\tt .nl} file with name, say, {\tt myprob.nl} by using the {\tt Ampl} command: {\tt write gmyprob} There is a small {\tt .nl} file available in the \Ipopt distribution. It is located at {\tt Ipopt/test/mytoy.nl}. We use this file in the remainder of this section. We assume that the file {\tt mytoy.nl} is in the current directory and that the command {\tt ipopt} is a shortcut for running the {\tt ipopt} binary available in the {\tt bin} directory of the installation of \Ipopt. We list below commands to perform basic tasks from the Linux prompt. \begin{itemize} \item To solve {\tt mytoy.nl} from the Linux prompt, use: {\tt ipopt mytoy} \item To see all command line options for \Ipopt, use: {\tt ipopt -=} \item To see more detailed information on all options for \Ipopt: {\tt ipopt mytoy 'print\_options\_documentation yes'} \item To run {\tt ipopt}, setting the maximum number of iterations to 2 and print level to 4: {\tt ipopt mytoy 'max\_iter 2 print\_level 4'} \end{itemize} If many options are to be set, they can be collected in a file {\tt ipopt.opt} that is automatically read by \Ipopt if present in the current directory, see Section \ref{sec:options}. \subsection{Interfacing with \Ipopt through code} \label{sec.required_info} In order to solve a problem, \Ipopt needs more information than just the problem definition (for example, the derivative information). If you are using a modeling language like AMPL, the extra information is provided by the modeling tool and the \Ipopt interface. When interfacing with \Ipopt through your own code, however, you must provide this additional information. The following information is required by \Ipopt: \begin{enumerate} \item Problem dimensions \label{it.prob_dim} \begin{itemize} \item number of variables \item number of constraints \end{itemize} \item Problem bounds \begin{itemize} \item variable bounds \item constraint bounds \end{itemize} \item Initial starting point \begin{itemize} \item Initial values for the primal $x$ variables \item Initial values for the multipliers (only required for a warm start option) \end{itemize} \item Problem Structure \label{it.prob_struct} \begin{itemize} \item number of nonzeros in the Jacobian of the constraints \item number of nonzeros in the Hessian of the Lagrangian function \item sparsity structure of the Jacobian of the constraints \item sparsity structure of the Hessian of the Lagrangian function \end{itemize} \item Evaluation of Problem Functions \label{it.prob_eval} \\ Information evaluated using a given point ($x, \lambda, \sigma_f$ coming from \Ipopt) \begin{itemize} \item Objective function, $f(x)$ \item Gradient of the objective $\nabla f(x)$ \item Constraint function values, $g(x)$ \item Jacobian of the constraints, $\nabla g(x)^T$ \item Hessian of the Lagrangian function, $\sigma_f \nabla^2 f(x) + \sum_{i=1}^m\lambda_i\nabla^2 g_i(x)$ \\ (this is not required if a quasi-Newton options is chosen to approximate the second derivatives) \end{itemize} \end{enumerate} The problem dimensions and bounds are straightforward and come solely from the problem definition. The initial starting point is used by the algorithm when it begins iterating to solve the problem. If \Ipopt has difficulty converging, or if it converges to a locally infeasible point, adjusting the starting point may help. Depending on the starting point, \Ipopt may also converge to different local solutions. Providing the sparsity structure of derivative matrices is a bit more involved. \Ipopt is a nonlinear programming solver that is designed for solving large-scale, sparse problems. While \Ipopt can be customized for a variety of matrix formats, the triplet format is used for the standard interfaces in this tutorial. For an overview of the triplet format for sparse matrices, see Appendix~\ref{app.triplet}. Before solving the problem, \Ipopt needs to know the number of nonzero elements and the sparsity structure (row and column indices of each of the nonzero entries) of the constraint Jacobian and the Lagrangian function Hessian. Once defined, this nonzero structure MUST remain constant for the entire optimization procedure. This means that the structure needs to include entries for any element that could ever be nonzero, not only those that are nonzero at the starting point. As \Ipopt iterates, it will need the values for Item~\ref{it.prob_eval} in Section \ref{sec.required_info} evaluated at particular points. Before we can begin coding the interface, however, we need to work out the details of these equations symbolically for example problem (\ref{eq:ex_obj})-(\ref{eq:ex_bounds}). The gradient of the objective $f(x)$ is given by \[ \left[ \begin{array}{c} x_1 x_4 + x_4 (x_1 + x_2 + x_3) \\ x_1 x_4 \\ x_1 x_4 + 1 \\ x_1 (x_1 + x_2 + x_3) \end{array} \right] \] and the Jacobian of the constraints $g(x)$ is \[ \left[ \begin{array}{cccc} x_2 x_3 x_4 & x_1 x_3 x_4 & x_1 x_2 x_4 & x_1 x_2 x_3 \\ 2 x_1 & 2 x_2 & 2 x_3 & 2 x_4 \end{array} \right]. \] We also need to determine the Hessian of the Lagrangian\footnote{If a quasi-Newton option is chosen to approximate the second derivatives, this is not required. However, if second derivatives can be computed, it is often worthwhile to let \Ipopt use them, since the algorithm is then usually more robust and converges faster. More on the quasi-Newton approximation in Section~\ref{sec:quasiNewton}.}. The Lagrangian function for the NLP (\ref{eq:ex_obj})-(\ref{eq:ex_bounds}) is defined as $f(x) + g(x)^T \lambda$ and the Hessian of the Lagrangian function is, technically, $ \nabla^2 f(x_k) + \sum_{i=1}^m\lambda_i\nabla^2 g_i(x_k)$. However, we introduce a factor ($\sigma_f$) in front of the objective term so that \Ipopt can ask for the Hessian of the objective or the constraints independently, if required. % Thus, for \Ipopt the symbolic form of the Hessian of the Lagrangian is \begin{equation}\label{eq:IpoptLAG} \sigma_f \nabla^2 f(x_k) + \sum_{i=1}^m\lambda_i\nabla^2 g_i(x_k) \end{equation} and for the example problem this becomes %\begin{eqnarray} %{\cal L}(x,\lambda) &{=}& f(x) + c(x)^T \lambda \nonumber \\ %&{=}& \left(x_1 x_4 (x_1 + x_2 + x_3) + x_3\right) %+ \left(x_1 x_2 x_3 x_4\right) \lambda_1 \nonumber \\ %&& \;\;\;\;\;+ \left(x_1^2 + x_2^2 + x_3^2 + x_4^2\right) \lambda_2 %- \displaystyle \sum_{i \in 1..4} z^L_i + \sum_{i \in 1..4} z^U_i %\end{eqnarray} \[%\begin{equation} \sigma_f \left[ \begin{array}{cccc} 2 x_4 & x_4 & x_4 & 2 x_1 + x_2 + x_3 \\ x_4 & 0 & 0 & x_1 \\ x_4 & 0 & 0 & x_1 \\ 2 x_1+x_2+x_3 & x_1 & x_1 & 0 \end{array} \right] + \lambda_1 \left[ \begin{array}{cccc} 0 & x_3 x_4 & x_2 x_4 & x_2 x_3 \\ x_3 x_4 & 0 & x_1 x_4 & x_1 x_3 \\ x_2 x_4 & x_1 x_4 & 0 & x_1 x_2 \\ x_2 x_3 & x_1 x_3 & x_1 x_2 & 0 \end{array} \right] + \lambda_2 \left[ \begin{array}{cccc} 2 & 0 & 0 & 0 \\ 0 & 2 & 0 & 0 \\ 0 & 0 & 2 & 0 \\ 0 & 0 & 0 & 2 \end{array} \right] \]%\end{equation} where the first term comes from the Hessian of the objective function, and the second and third term from the Hessian of the constraints (\ref{eq:ex_ineq}) and (\ref{eq:ex_equ}), respectively. Therefore, the dual variables $\lambda_1$ and $\lambda_2$ are the multipliers for constraints (\ref{eq:ex_ineq}) and (\ref{eq:ex_equ}), respectively. %C ============================================================================= %C %C This is an example for the usage of IPOPT. %C It implements problem 71 from the Hock-Schittkowsky test suite: %C %C min x1*x4*(x1 + x2 + x3) + x3 %C s.t. x1*x2*x3*x4 >= 25 %C x1**2 + x2**2 + x3**2 + x4**2 = 40 %C 1 <= x1,x2,x3,x4 <= 5 %C %C Starting point: %C x = (1, 5, 5, 1) %C %C Optimal solution: %C x = (1.00000000, 4.74299963, 3.82114998, 1.37940829) %C %C ============================================================================= \vspace{\baselineskip} The remaining sections of the tutorial will lead you through the coding required to solve example problem (\ref{eq:ex_obj})--(\ref{eq:ex_bounds}) using, first C++, then C, and finally Fortran. Completed versions of these examples can be found in {\tt \$IPOPTDIR/Ipopt/examples} under {\tt hs071\_cpp}, {\tt hs071\_c}, {\tt hs071\_f}. As a user, you are responsible for coding two sections of the program that solves a problem using \Ipopt: the main executable (e.g., {\tt main}) and the problem representation. Typically, you will write an executable that prepares the problem, and then passes control over to \Ipopt through an {\tt Optimize} or {\tt Solve} call. In this call, you will give \Ipopt everything that it requires to call back to your code whenever it needs functions evaluated (like the objective function, the Jacobian of the constraints, etc.). In each of the three sections that follow (C++, C, and Fortran), we will first discuss how to code the problem representation, and then how to code the executable. \subsection{The C++ Interface} \label{sec.cppinterface} This tutorial assumes that you are familiar with the C++ programming language, however, we will lead you through each step of the implementation. For the problem representation, we will create a class that inherits off of the pure virtual base class, {\tt TNLP} ({\tt IpTNLP.hpp}). For the executable (the {\tt main} function) we will make the call to \Ipopt through the {\tt IpoptApplication} class ({\tt IpIpoptApplication.hpp}). In addition, we will also be using the {\tt SmartPtr} class ({\tt IpSmartPtr.hpp}) which implements a reference counting pointer that takes care of memory management (object deletion) for you (for details, see Appendix~\ref{app.smart_ptr}). After ``\texttt{make install}'' (see Section~\ref{sec.comp_and_inst}), the header files are installed in \texttt{\$IPOPTDIR/include/coin} (or in \texttt{\$PREFIX/include/coin} if the switch \verb|--prefix=$PREFIX| was used for {\tt configure}). %$ \subsubsection{Coding the Problem Representation}\label{sec.cpp_problem} We provide the required information by coding the {\tt HS071\_NLP} class, a specific implementation of the {\tt TNLP} base class. In the executable, we will create an instance of the {\tt HS071\_NLP} class and give this class to \Ipopt so it can evaluate the problem functions through the {\tt TNLP} interface. If you have any difficulty as the implementation proceeds, have a look at the completed example in the {\tt Ipopt/examples/hs071\_cpp} directory. Start by creating a new directory {\tt MyExample} under {\tt examples} and create the files {\tt hs071\_nlp.hpp} and {\tt hs071\_nlp.cpp}. In {\tt hs071\_nlp.hpp}, include {\tt IpTNLP.hpp} (the base class), tell the compiler that we are using the \Ipopt namespace, and create the declaration of the {\tt HS071\_NLP} class, inheriting off of {\tt TNLP}. Have a look at the {\tt TNLP} class in {\tt IpTNLP.hpp}; you will see eight pure virtual methods that we must implement. Declare these methods in the header file. Implement each of the methods in {\tt HS071\_NLP.cpp} using the descriptions given below. In {\tt hs071\_nlp.cpp}, first include the header file for your class and tell the compiler that you are using the \Ipopt namespace. A full version of these files can be found in the {\tt Ipopt/examples/hs071\_cpp} directory. It is very easy to make mistakes in the implementation of the function evaluation methods, in particular regarding the derivatives. \Ipopt has a feature that can help you to debug the derivative code, using finite differences, see Section~\ref{sec:deriv-checker}. Note that the return value of any {\tt bool}-valued function should be {\tt true}, unless an error occurred, for example, because the value of a problem function could not be evaluated at the required point. \paragraph{Method {\texttt{get\_nlp\_info}}} with prototype \begin{verbatim} virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) \end{verbatim} Give \Ipopt the information about the size of the problem (and hence, the size of the arrays that it needs to allocate). \begin{itemize} \item {\tt n}: (out), the number of variables in the problem (dimension of $x$). \item {\tt m}: (out), the number of constraints in the problem (dimension of $g(x)$). \item {\tt nnz\_jac\_g}: (out), the number of nonzero entries in the Jacobian. \item {\tt nnz\_h\_lag}: (out), the number of nonzero entries in the Hessian. \item {\tt index\_style}: (out), the numbering style used for row/col entries in the sparse matrix format ({\tt C\_STYLE}: 0-based, {\tt FORTRAN\_STYLE}: 1-based; see also Appendix~\ref{app.triplet}). \end{itemize} \Ipopt uses this information when allocating the arrays that it will later ask you to fill with values. Be careful in this method since incorrect values will cause memory bugs which may be very difficult to find. Our example problem has 4 variables (n), and 2 constraints (m). The constraint Jacobian for this small problem is actually dense and has 8 nonzeros (we still need to represent this Jacobian using the sparse matrix triplet format). The Hessian of the Lagrangian has 10 ``symmetric'' nonzeros (i.e., nonzeros in the lower left triangular part.). Keep in mind that the number of nonzeros is the total number of elements that may \emph{ever} be nonzero, not just those that are nonzero at the starting point. This information is set once for the entire problem. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in HS071_NLP.hpp has 4 variables, x[0] through x[3] n = 4; // one equality constraint and one inequality constraint m = 2; // in this example the Jacobian is dense and contains 8 nonzeros nnz_jac_g = 8; // the Hessian is also dense and has 16 total nonzeros, but we // only need the lower left corner (since it is symmetric) nnz_h_lag = 10; // use the C style indexing (0-based) index_style = TNLP::C_STYLE; return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{get\_bounds\_info}}} with prototype \begin{verbatim} virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) \end{verbatim} Give \Ipopt the value of the bounds on the variables and constraints. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x\_l}: (out) the lower bounds $x^L$ for $x$. \item {\tt x\_u}: (out) the upper bounds $x^U$ for $x$. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt g\_l}: (out) the lower bounds $g^L$ for $g(x)$. \item {\tt g\_u}: (out) the upper bounds $g^U$ for $g(x)$. \end{itemize} The values of {\tt n} and {\tt m} that you specified in {\tt get\_nlp\_info} are passed to you for debug checking. Setting a lower bound to a value less than or equal to the value of the option \htmlref{\tt nlp\_lower\_bound\_inf}{opt:nlp_lower_bound_inf} will cause \Ipopt to assume no lower bound. Likewise, specifying the upper bound above or equal to the value of the option \htmlref{\tt nlp\_upper\_bound\_inf}{opt:nlp_upper_bound_inf} will cause \Ipopt to assume no upper bound. These options, \htmlref{\tt nlp\_lower\_bound\_inf}{opt:nlp_lower_bound_inf} and \htmlref{\tt nlp\_upper\_bound\_inf}{opt:nlp_upper_bound_inf}, are set to $-10^{19}$ and $10^{19}$, respectively, by default, but may be modified by changing the options (see Section \ref{sec:options}). In our example, the first constraint has a lower bound of $25$ and no upper bound, so we set the lower bound of constraint {\tt [0]} to $25$ and the upper bound to some number greater than $10^{19}$. The second constraint is an equality constraint and we set both bounds to $40$. \Ipopt recognizes this as an equality constraint and does not treat it as two inequalities. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // here, the n and m we gave IPOPT in get_nlp_info are passed back to us. // If desired, we could assert to make sure they are what we think they are. assert(n == 4); assert(m == 2); // the variables have lower bounds of 1 for (Index i=0; i<4; i++) x_l[i] = 1.0; // the variables have upper bounds of 5 for (Index i=0; i<4; i++) x_u[i] = 5.0; // the first constraint g1 has a lower bound of 25 g_l[0] = 25; // the first constraint g1 has NO upper bound, here we set it to 2e19. // Ipopt interprets any number greater than nlp_upper_bound_inf as // infinity. The default value of nlp_upper_bound_inf and nlp_lower_bound_inf // is 1e19 and can be changed through ipopt options. g_u[0] = 2e19; // the second constraint g2 is an equality constraint, so we set the // upper and lower bound to the same value g_l[1] = g_u[1] = 40.0; return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{get\_starting\_point}}} with prototype \begin{verbatim} virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) \end{verbatim} Give \Ipopt the starting point before it begins iterating. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt init\_x}: (in), if true, this method must provide an initial value for $x$. \item {\tt x}: (out), the initial values for the primal variables, $x$. \item {\tt init\_z}: (in), if true, this method must provide an initial value for the bound multipliers $z^L$ and $z^U$. \item {\tt z\_L}: (out), the initial values for the bound multipliers, $z^L$. \item {\tt z\_U}: (out), the initial values for the bound multipliers, $z^U$. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt init\_lambda}: (in), if true, this method must provide an initial value for the constraint multipliers, $\lambda$. \item {\tt lambda}: (out), the initial values for the constraint multipliers, $\lambda$. \end{itemize} The variables {\tt n} and {\tt m} are passed in for your convenience. These variables will have the same values you specified in {\tt get\_nlp\_info}. Depending on the options that have been set, \Ipopt may or may not require bounds for the primal variables $x$, the bound multipliers $z^L$ and $z^U$, and the constraint multipliers $\lambda$. The boolean flags {\tt init\_x}, {\tt init\_z}, and {\tt init\_lambda} tell you whether or not you should provide initial values for $x$, $z^L$, $z^U$, or $\lambda$ respectively. The default options only require an initial value for the primal variables $x$. Note, the initial values for bound multiplier components for ``infinity'' bounds ($x_L^{(i)}=-\infty$ or $x_U^{(i)}=\infty$) are ignored. In our example, we provide initial values for $x$ as specified in the example problem. We do not provide any initial values for the dual variables, but use an assert to immediately let us know if we are ever asked for them. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { // Here, we assume we only have starting values for x, if you code // your own NLP, you can provide starting values for the dual variables // if you wish to use a warmstart option assert(init_x == true); assert(init_z == false); assert(init_lambda == false); // initialize to the given starting point x[0] = 1.0; x[1] = 5.0; x[2] = 5.0; x[3] = 1.0; return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{eval\_f}}} with prototype \begin{verbatim} virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value) \end{verbatim} Return the value of the objective function at the point $x$. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the values for the primal variables, $x$, at which $f(x)$ is to be evaluated. \item {\tt new\_x}: (in), false if any evaluation method was previously called with the same values in {\tt x}, true otherwise. \item {\tt obj\_value}: (out) the value of the objective function ($f(x)$). \end{itemize} The boolean variable {\tt new\_x} will be false if the last call to any of the evaluation methods ({\tt eval\_*}) used the same $x$ values. This can be helpful when users have efficient implementations that calculate multiple outputs at once. \Ipopt internally caches results from the {\tt TNLP} and generally, this flag can be ignored. The variable {\tt n} is passed in for your convenience. This variable will have the same value you specified in {\tt get\_nlp\_info}. For our example, we ignore the {\tt new\_x} flag and calculate the objective. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { assert(n == 4); obj_value = x[0] * x[3] * (x[0] + x[1] + x[2]) + x[2]; return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{eval\_grad\_f}}} with prototype \begin{verbatim} virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) \end{verbatim} Return the gradient of the objective function at the point $x$. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the values for the primal variables, $x$, at which $\nabla f(x)$ is to be evaluated. \item {\tt new\_x}: (in), false if any evaluation method was previously called with the same values in {\tt x}, true otherwise. \item {\tt grad\_f}: (out) the array of values for the gradient of the objective function ($\nabla f(x)$). \end{itemize} The gradient array is in the same order as the $x$ variables (i.e., the gradient of the objective with respect to {\tt x[2]} should be put in {\tt grad\_f[2]}). The boolean variable {\tt new\_x} will be false if the last call to any of the evaluation methods ({\tt eval\_*}) used the same $x$ values. This can be helpful when users have efficient implementations that calculate multiple outputs at once. \Ipopt internally caches results from the {\tt TNLP} and generally, this flag can be ignored. The variable {\tt n} is passed in for your convenience. This variable will have the same value you specified in {\tt get\_nlp\_info}. In our example, we ignore the {\tt new\_x} flag and calculate the values for the gradient of the objective. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { assert(n == 4); grad_f[0] = x[0] * x[3] + x[3] * (x[0] + x[1] + x[2]); grad_f[1] = x[0] * x[3]; grad_f[2] = x[0] * x[3] + 1; grad_f[3] = x[0] * (x[0] + x[1] + x[2]); return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{eval\_g}}} with prototype \begin{verbatim} virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) \end{verbatim} Return the value of the constraint function at the point $x$. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the values for the primal variables, $x$, at which the constraint functions, $g(x)$, are to be evaluated. \item {\tt new\_x}: (in), false if any evaluation method was previously called with the same values in {\tt x}, true otherwise. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt g}: (out) the array of constraint function values, $g(x)$. \end{itemize} The values returned in {\tt g} should be only the $g(x)$ values, do not add or subtract the bound values $g^L$ or $g^U$. The boolean variable {\tt new\_x} will be false if the last call to any of the evaluation methods ({\tt eval\_*}) used the same $x$ values. This can be helpful when users have efficient implementations that calculate multiple outputs at once. \Ipopt internally caches results from the {\tt TNLP} and generally, this flag can be ignored. The variables {\tt n} and {\tt m} are passed in for your convenience. These variables will have the same values you specified in {\tt get\_nlp\_info}. In our example, we ignore the {\tt new\_x} flag and calculate the values of constraint functions. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { assert(n == 4); assert(m == 2); g[0] = x[0] * x[1] * x[2] * x[3]; g[1] = x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3]; return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{eval\_jac\_g}}} with prototype \begin{verbatim} virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) \end{verbatim} Return either the sparsity structure of the Jacobian of the constraints, or the values for the Jacobian of the constraints at the point $x$. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the values for the primal variables, $x$, at which the constraint Jacobian, $\nabla g(x)^T$, is to be evaluated. \item {\tt new\_x}: (in), false if any evaluation method was previously called with the same values in {\tt x}, true otherwise. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt n\_ele\_jac}: (in), the number of nonzero elements in the Jacobian (dimension of {\tt iRow}, {\tt jCol}, and {\tt values}). \item {\tt iRow}: (out), the row indices of entries in the Jacobian of the constraints. \item {\tt jCol}: (out), the column indices of entries in the Jacobian of the constraints. \item {\tt values}: (out), the values of the entries in the Jacobian of the constraints. \end{itemize} The Jacobian is the matrix of derivatives where the derivative of constraint $g^{(i)}$ with respect to variable $x^{(j)}$ is placed in row $i$ and column $j$. See Appendix \ref{app.triplet} for a discussion of the sparse matrix format used in this method. If the {\tt iRow} and {\tt jCol} arguments are not {\tt NULL}, then \Ipopt wants you to fill in the sparsity structure of the Jacobian (the row and column indices only). At this time, the {\tt x} argument and the {\tt values} argument will be {\tt NULL}. If the {\tt x} argument and the {\tt values} argument are not {\tt NULL}, then \Ipopt wants you to fill in the values of the Jacobian as calculated from the array {\tt x} (using the same order as you used when specifying the sparsity structure). At this time, the {\tt iRow} and {\tt jCol} arguments will be {\tt NULL}; The boolean variable {\tt new\_x} will be false if the last call to any of the evaluation methods ({\tt eval\_*}) used the same $x$ values. This can be helpful when users have efficient implementations that calculate multiple outputs at once. \Ipopt internally caches results from the {\tt TNLP} and generally, this flag can be ignored. The variables {\tt n}, {\tt m}, and {\tt nele\_jac} are passed in for your convenience. These arguments will have the same values you specified in {\tt get\_nlp\_info}. In our example, the Jacobian is actually dense, but we still specify it using the sparse format. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the Jacobian // this particular Jacobian is dense iRow[0] = 0; jCol[0] = 0; iRow[1] = 0; jCol[1] = 1; iRow[2] = 0; jCol[2] = 2; iRow[3] = 0; jCol[3] = 3; iRow[4] = 1; jCol[4] = 0; iRow[5] = 1; jCol[5] = 1; iRow[6] = 1; jCol[6] = 2; iRow[7] = 1; jCol[7] = 3; } else { // return the values of the Jacobian of the constraints values[0] = x[1]*x[2]*x[3]; // 0,0 values[1] = x[0]*x[2]*x[3]; // 0,1 values[2] = x[0]*x[1]*x[3]; // 0,2 values[3] = x[0]*x[1]*x[2]; // 0,3 values[4] = 2*x[0]; // 1,0 values[5] = 2*x[1]; // 1,1 values[6] = 2*x[2]; // 1,2 values[7] = 2*x[3]; // 1,3 } return true; } \end{verbatim} \end{footnotesize} \paragraph{Method {\texttt{eval\_h}}} with prototype \begin{verbatim} virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) \end{verbatim} Return either the sparsity structure of the Hessian of the Lagrangian, or the values of the Hessian of the Lagrangian (\ref{eq:IpoptLAG}) for the given values for $x$, $\sigma_f$, and $\lambda$. \begin{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the values for the primal variables, $x$, at which the Hessian is to be evaluated. \item {\tt new\_x}: (in), false if any evaluation method was previously called with the same values in {\tt x}, true otherwise. \item {\tt obj\_factor}: (in), factor in front of the objective term in the Hessian, $\sigma_f$. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt lambda}: (in), the values for the constraint multipliers, $\lambda$, at which the Hessian is to be evaluated. \item {\tt new\_lambda}: (in), false if any evaluation method was previously called with the same values in {\tt lambda}, true otherwise. \item {\tt nele\_hess}: (in), the number of nonzero elements in the Hessian (dimension of {\tt iRow}, {\tt jCol}, and {\tt values}). \item {\tt iRow}: (out), the row indices of entries in the Hessian. \item {\tt jCol}: (out), the column indices of entries in the Hessian. \item {\tt values}: (out), the values of the entries in the Hessian. \end{itemize} The Hessian matrix that \Ipopt uses is defined in (\ref{eq:IpoptLAG}). See Appendix \ref{app.triplet} for a discussion of the sparse symmetric matrix format used in this method. If the {\tt iRow} and {\tt jCol} arguments are not {\tt NULL}, then \Ipopt wants you to fill in the sparsity structure of the Hessian (the row and column indices for the lower or upper triangular part only). In this case, the {\tt x}, {\tt lambda}, and {\tt values} arrays will be {\tt NULL}. If the {\tt x}, {\tt lambda}, and {\tt values} arrays are not {\tt NULL}, then \Ipopt wants you to fill in the values of the Hessian as calculated using {\tt x} and {\tt lambda} (using the same order as you used when specifying the sparsity structure). In this case, the {\tt iRow} and {\tt jCol} arguments will be {\tt NULL}. The boolean variables {\tt new\_x} and {\tt new\_lambda} will both be false if the last call to any of the evaluation methods ({\tt eval\_*}) used the same values. This can be helpful when users have efficient implementations that calculate multiple outputs at once. \Ipopt internally caches results from the {\tt TNLP} and generally, this flag can be ignored. The variables {\tt n}, {\tt m}, and {\tt nele\_hess} are passed in for your convenience. These arguments will have the same values you specified in {\tt get\_nlp\_info}. In our example, the Hessian is dense, but we still specify it using the sparse matrix format. Because the Hessian is symmetric, we only need to specify the lower left corner. \begin{footnotesize} \begin{verbatim} bool HS071_NLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. // the Hessian for this problem is actually dense Index idx=0; for (Index row = 0; row < 4; row++) { for (Index col = 0; col <= row; col++) { iRow[idx] = row; jCol[idx] = col; idx++; } } assert(idx == nele_hess); } else { // return the values. This is a symmetric matrix, fill the lower left // triangle only // fill the objective portion values[0] = obj_factor * (2*x[3]); // 0,0 values[1] = obj_factor * (x[3]); // 1,0 values[2] = 0; // 1,1 values[3] = obj_factor * (x[3]); // 2,0 values[4] = 0; // 2,1 values[5] = 0; // 2,2 values[6] = obj_factor * (2*x[0] + x[1] + x[2]); // 3,0 values[7] = obj_factor * (x[0]); // 3,1 values[8] = obj_factor * (x[0]); // 3,2 values[9] = 0; // 3,3 // add the portion for the first constraint values[1] += lambda[0] * (x[2] * x[3]); // 1,0 values[3] += lambda[0] * (x[1] * x[3]); // 2,0 values[4] += lambda[0] * (x[0] * x[3]); // 2,1 values[6] += lambda[0] * (x[1] * x[2]); // 3,0 values[7] += lambda[0] * (x[0] * x[2]); // 3,1 values[8] += lambda[0] * (x[0] * x[1]); // 3,2 // add the portion for the second constraint values[0] += lambda[1] * 2; // 0,0 values[2] += lambda[1] * 2; // 1,1 values[5] += lambda[1] * 2; // 2,2 values[9] += lambda[1] * 2; // 3,3 } return true; } \end{verbatim} \end{footnotesize} \paragraph{Method \texttt{finalize\_solution}} with prototype \begin{verbatim} virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) \end{verbatim} This is the only method that is not mentioned in Section \ref{sec.required_info}. This method is called by \Ipopt after the algorithm has finished (successfully or even with most errors). \begin{itemize} \item {\tt status}: (in), gives the status of the algorithm as specified in {\tt IpAlgTypes.hpp}, \begin{itemize} \item {\tt SUCCESS}: Algorithm terminated successfully at a locally optimal point, satisfying the convergence tolerances (can be specified by options). \item {\tt MAXITER\_EXCEEDED}: Maximum number of iterations exceeded (can be specified by an option). \item {\tt CPUTIME\_EXCEEDED}: Maximum number of CPU seconds exceeded (can be specified by an option). \item {\tt STOP\_AT\_TINY\_STEP}: Algorithm proceeds with very little progress. \item {\tt STOP\_AT\_ACCEPTABLE\_POINT}: Algorithm stopped at a point that was converged, not to ``desired'' tolerances, but to ``acceptable'' tolerances (see the {\tt acceptable-...} options). \item {\tt LOCAL\_INFEASIBILITY}: Algorithm converged to a point of local infeasibility. Problem may be infeasible. \item {\tt USER\_REQUESTED\_STOP}: The user call-back function {\tt intermediate\_callback} (see Section~\ref{sec:add_meth}) returned {\tt false}, i.e., the user code requested a premature termination of the optimization. \item {\tt DIVERGING\_ITERATES}: It seems that the iterates diverge. \item {\tt RESTORATION\_FAILURE}: Restoration phase failed, algorithm doesn't know how to proceed. \item {\tt ERROR\_IN\_STEP\_COMPUTATION}: An unrecoverable error occurred while \Ipopt tried to compute the search direction. \item {\tt INVALID\_NUMBER\_DETECTED}: Algorithm received an invalid number (such as {\tt NaN} or {\tt Inf}) from the NLP; see also option \htmlref{\tt check\_derivatives\_for\_naninf}{opt:check_derivatives_for_naninf}. \item {\tt INTERNAL\_ERROR}: An unknown internal error occurred. Please contact the \Ipopt authors through the mailing list. \end{itemize} \item {\tt n}: (in), the number of variables in the problem (dimension of $x$). \item {\tt x}: (in), the final values for the primal variables, $x_*$. \item {\tt z\_L}: (in), the final values for the lower bound multipliers, $z^L_*$. \item {\tt z\_U}: (in), the final values for the upper bound multipliers, $z^U_*$. \item {\tt m}: (in), the number of constraints in the problem (dimension of $g(x)$). \item {\tt g}: (in), the final value of the constraint function values, $g(x_*)$. \item {\tt lambda}: (in), the final values of the constraint multipliers, $\lambda_*$. \item {\tt obj\_value}: (in), the final value of the objective, $f(x_*)$. \item {\tt ip\_data} and {\tt ip\_cq} are provided for expert users. \end{itemize} This method gives you the return status of the algorithm (SolverReturn), and the values of the variables, the objective and constraint function values when the algorithm exited. In our example, we will print the values of some of the variables to the screen. \begin{footnotesize} \begin{verbatim} void HS071_NLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value) { // here is where we would store the solution to variables, or write to a file, etc // so we could use the solution. // For this example, we write the solution to the console printf("\n\nSolution of the primal variables, x\n"); for (Index i=0; i mynlp = new HS071_NLP(); // Create a new instance of IpoptApplication // (use a SmartPtr, not raw) // We are using the factory, since this allows us to compile this // example with an Ipopt Windows DLL SmartPtr app = IpoptApplicationFactory(); // Change some options // Note: The following choices are only examples, they might not be // suitable for your optimization problem. app->Options()->SetNumericValue("tol", 1e-9); app->Options()->SetStringValue("mu_strategy", "adaptive"); app->Options()->SetStringValue("output_file", "ipopt.out"); // Intialize the IpoptApplication and process the options ApplicationReturnStatus status; status = app->Initialize(); if (status != Solve_Succeeded) { printf("\n\n*** Error during initialization!\n"); return (int) status; } // Ask Ipopt to solve the problem status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { printf("\n\n*** The problem solved!\n"); } else { printf("\n\n*** The problem FAILED!\n"); } // As the SmartPtrs go out of scope, the reference count // will be decremented and the objects will automatically // be deleted. return (int) status; } \end{verbatim} \end{footnotesize} The first line of code in {\tt main} creates an instance of {\tt HS071\_NLP}. We then create an instance of the \Ipopt solver, {\tt IpoptApplication}. You could use \texttt{new} to create a new application object, but if you want to make sure that your code would also work with a Windows DLL, you need to use the factory, as done in the example above. The call to {\tt app->Initialize(...)} will initialize that object and process the options (particularly the output related options). The call to {\tt app->OptimizeTNLP(...)} will run \Ipopt and try to solve the problem. By default, \Ipopt will write its progress to the console, and return the {\tt SolverReturn} status. \subsubsection{Compiling and Testing the Example} Our next task is to compile and test the code. If you are familiar with the compiler and linker used on your system, you can build the code, telling the linker about the %\Ipopt library {\tt libipopt.so} (or {\tt libipopt.a}), as well as other necessary libraries, as listed in the {\tt ipopt\_addlibs\_cpp.txt} file. If you are using the autotools based build system, then a sample makefile created by configure already exists. Copy {\tt Ipopt/examples/hs071\_cpp/Makefile} into your {\tt MyExample} directory. This makefile was created for the {\tt hs071\_cpp} code, but it can be easily modified for your example problem. Edit the file, making the following changes, \begin{itemize} \item change the {\tt EXE} variable \\ {\tt EXE = my\_example} \item change the {\tt OBJS} variable \\ {\tt OBJS = HS071\_NLP.o MyExample.o} \end{itemize} and the problem should compile easily with, \\ {\tt \$ make} \\ Now run the executable,\\ {\tt \$ ./my\_example} \\ and you should see output resembling the following, \begin{footnotesize} \begin{verbatim} ****************************************************************************** This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit http://projects.coin-or.org/Ipopt ****************************************************************************** Number of nonzeros in equality constraint Jacobian...: 4 Number of nonzeros in inequality constraint Jacobian.: 4 Number of nonzeros in Lagrangian Hessian.............: 10 Total number of variables............................: 4 variables with only lower bounds: 0 variables with lower and upper bounds: 4 variables with only upper bounds: 0 Total number of equality constraints.................: 1 Total number of inequality constraints...............: 1 inequality constraints with only lower bounds: 1 inequality constraints with lower and upper bounds: 0 inequality constraints with only upper bounds: 0 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 1.6109693e+01 1.12e+01 5.28e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0 1 1.7410406e+01 8.38e-01 2.25e+01 -0.3 7.97e-01 - 3.19e-01 1.00e+00f 1 2 1.8001613e+01 1.06e-02 4.96e+00 -0.3 5.60e-02 2.0 9.97e-01 1.00e+00h 1 3 1.7199482e+01 9.04e-02 4.24e-01 -1.0 9.91e-01 - 9.98e-01 1.00e+00f 1 4 1.6940955e+01 2.09e-01 4.58e-02 -1.4 2.88e-01 - 9.66e-01 1.00e+00h 1 5 1.7003411e+01 2.29e-02 8.42e-03 -2.9 7.03e-02 - 9.68e-01 1.00e+00h 1 6 1.7013974e+01 2.59e-04 8.65e-05 -4.5 6.22e-03 - 1.00e+00 1.00e+00h 1 7 1.7014017e+01 2.26e-07 5.71e-08 -8.0 1.43e-04 - 1.00e-00 1.00e+00h 1 8 1.7014017e+01 4.62e-14 9.09e-14 -8.0 6.95e-08 - 1.00e+00 1.00e+00h 1 Number of Iterations....: 8 Number of objective function evaluations = 9 Number of objective gradient evaluations = 9 Number of equality constraint evaluations = 9 Number of inequality constraint evaluations = 9 Number of equality constraint Jacobian evaluations = 9 Number of inequality constraint Jacobian evaluations = 9 Number of Lagrangian Hessian evaluations = 8 Total CPU secs in IPOPT (w/o function evaluations) = 0.220 Total CPU secs in NLP function evaluations = 0.000 EXIT: Optimal Solution Found. Solution of the primal variables, x x[0] = 1.000000e+00 x[1] = 4.743000e+00 x[2] = 3.821150e+00 x[3] = 1.379408e+00 Solution of the bound multipliers, z_L and z_U z_L[0] = 1.087871e+00 z_L[1] = 2.428776e-09 z_L[2] = 3.222413e-09 z_L[3] = 2.396076e-08 z_U[0] = 2.272727e-09 z_U[1] = 3.537314e-08 z_U[2] = 7.711676e-09 z_U[3] = 2.510890e-09 Objective value f(x*) = 1.701402e+01 *** The problem solved! \end{verbatim} \end{footnotesize} This completes the basic C++ tutorial, but see Section \ref{sec:output} which explains the standard console output of \Ipopt and Section \ref{sec:options} for information about the use of options to customize the behavior of \Ipopt. The {\tt Ipopt/examples/ScalableProblems} directory contains other NLP problems coded in C++. \subsubsection{Additional methods in {\tt TNLP}}\label{sec:add_meth} The following methods are available to additional features that are not explained in the example. Default implementations for those methods are provided, so that a user can safely ignore them, unless she wants to make use of those features. From these features, only the intermediate callback is already available in the C and Fortran interfaces. \paragraph{Method \texttt{intermediate\_callback}} with prototype \begin{verbatim} virtual bool intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) \end{verbatim} It is not required to implement (overload) this method. This method is called once per iteration (during the convergence check), and can be used to obtain information about the optimization status while \Ipopt solves the problem, and also to request a premature termination. The information provided by the entities in the argument list correspond to what \Ipopt prints in the iteration summary (see also Section~\ref{sec:output}). Further information can be obtained from the {\tt ip\_data} and {\tt ip\_cq} objects (in the C++ interface and for experts only :)). You you let this method return {\tt false}, \Ipopt will terminate with the {\tt User\_Requested\_Stop} status. If you do not implement this method (as we do in this example), the default implementation always returns {\tt true}. A frequently asked question is how to access the values of the primal and dual variables in this callback. The values are stored in the {\tt ip\_cq} object for the \emph{internal representation} of the problem. To access the values in a form that corresponds to those used in the evaluation routines, the user has to request \Ipopt's {\tt TNLPAdapter} object to ``resort'' the data vectors and to fill in information about possibly filtered out fixed variables. The {\tt TNLPAdapter} can be accessed as follows. First, add the following includes to your {\tt TNLP} implementation: \begin{verbatim} #include "IpIpoptCalculatedQuantities.hpp" #include "IpIpoptData.hpp" #include "IpTNLPAdapter.hpp" #include "IpOrigIpoptNLP.hpp" \end{verbatim} Next, add the following code to your implementation of the {\tt intermediate\_callback}: \begin{verbatim} Ipopt::TNLPAdapter* tnlp_adapter = NULL; if( ip_cq != NULL ) { Ipopt::OrigIpoptNLP* orignlp; orignlp = dynamic_cast(GetRawPtr(ip_cq->GetIpoptNLP())); if( orignlp != NULL ) tnlp_adapter = dynamic_cast(GetRawPtr(orignlp->nlp())); } \end{verbatim} Note, that retrieving the {\tt TNLPAdapter} will fail (i.e., {\tt orignlp} will be {\tt NULL}) if \Ipopt is currently in restoration mode. If, however, {\tt tnlp\_adapter} is not {\tt NULL}, then it can be used to obtain primal variable values $x$ and the dual values for the constraints \ref{eq:constraints} and the variable bounds \ref{eq:bounds} as follows. \begin{verbatim} double* primals = new double[n]; double* dualeqs = new double[m]; double* duallbs = new double[n]; double* dualubs = new double[n]; tnlp_adapter->ResortX(*ip_data->curr()->x(), primals); tnlp_adapter->ResortG(*ip_data->curr()->y_c(), *ip_data->curr()->y_d(), dualeqs); tnlp_adapter->ResortBnds(*ip_data->curr()->z_L(), duallbs, *ip_data->curr()->z_U(), dualubs); \end{verbatim} Additionally, information about scaled violation of constraint \ref{eq:constraints} and violation of complementarity constraints can be obtained via \begin{verbatim} tnlp_adapter->ResortG(*ip_data->curr_c(), *ip_data->curr_d_minus_s(), ...) tnlp_adapter->ResortBnds(*ip_data->curr_compl_x_L(), ..., *ip_data->curr_compl_x_U(), ...) tnlp_adapter->ResortG(*ip_data->curr_compl_s_L(), ...) tnlp_adapter->ResortG(*ip_data->curr_compl_s_U(), ...) \end{verbatim} \paragraph{Method \texttt{get\_scaling\_parameters}} with prototype \begin{verbatim} virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) \end{verbatim} This method is called if the {\tt nlp\_scaling\_method} is chosen as {\tt user-scaling}. The user has to provide scaling factors for the objective function as well as for the optimization variables and/or constraints. The return value should be true, unless an error occurred, and the program is to be aborted. The value returned in {\tt obj\_scaling} determines, how \Ipopt should internally scale the objective function. For example, if this number is chosen to be 10, then \Ipopt solves internally an optimization problem that has 10 times the value of the original objective function provided by the {\tt TNLP}. In particular, if this value is negative, then \Ipopt will maximize the objective function instead of minimizing it. The scaling factors for the variables can be returned in {\tt x\_scaling}, which has the same length as {\tt x} in the other {\tt TNLP} methods, and the factors are ordered like {\tt x}. You need to set {\tt use\_x\_scaling} to {\tt true}, if you want \Ipopt so scale the variables. If it is {\tt false}, no internal scaling of the variables is done. Similarly, the scaling factors for the constraints can be returned in {\tt g\_scaling}, and this scaling is activated by setting {\tt use\_g\_scaling} to {\tt true}. As a guideline, we suggest to scale the optimization problem (either directly in the original formulation, or after using scaling factors) so that all sensitivities, i.e., all non-zero first partial derivatives, are typically of the order $0.1-10$. \paragraph{Method \texttt{get\_number\_of\_nonlinear\_variables}} with prototype \begin{verbatim} virtual Index get_number_of_nonlinear_variables() \end{verbatim} This method is only important if the limited-memory quasi-Newton options is used, see Section~\ref{sec:quasiNewton}. It is used to return the number of variables that appear nonlinearly in the objective function or in at least one constraint function. If a negative number is returned, \Ipopt assumes that all variables are nonlinear. If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation returns -1, i.e., all variables are assumed to be nonlinear. \paragraph{Method \texttt{get\_list\_of\_nonlinear\_variables}} with prototype \begin{verbatim} virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars) \end{verbatim} This method is called by \Ipopt only if the limited-memory quasi-Newton options is used and if the {\tt get\_number\_of\_nonlinear\_variables} method returns a positive number; this number is then identical with {\tt num\_nonlin\_vars} and the length of the array {\tt pos\_nonlin\_vars}. In this call, you need to list the indices of all nonlinear variables in {\tt pos\_nonlin\_vars}, where the numbering starts with 0 order 1, depending on the numbering style determined in {\tt get\_nlp\_info}. \paragraph{Method \texttt{get\_variables\_linearity}} with prototype \begin{verbatim} virtual bool get_variables_linearity(Index n, LinearityType* var_types) \end{verbatim} This method is never called by \Ipopt, but is used by \textsc{Bonmin} to get information about which variables occur only in linear terms. \Ipopt passes a {\tt var\_types} array of size {\tt n}, which the user should fill with the appropriate linearity type of the variables ({\tt TNLP::LINEAR} or {\tt TNLP::NON\_LINEAR}). If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation returns {\tt false}. \paragraph{Method \texttt{get\_constraints\_linearity}} with prototype \begin{verbatim} virtual bool get_constraints_linearity(Index m, LinearityType* const_types) \end{verbatim} This method is never called by \Ipopt, but is used by \textsc{Bonmin} to get information about which constraints are linear. \Ipopt passes a {\tt const\_types} array of size {\tt m}, which the user should fill with the appropriate linearity type of the constraints ({\tt TNLP::LINEAR} or {\tt TNLP::NON\_LINEAR}). If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation returns {\tt false}. \paragraph{Method \texttt{get\_var\_con\_metadata}} with prototype \begin{verbatim} virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) \end{verbatim} This method is used to pass meta data about variables or constraints to \Ipopt. The data can be either of integer, numeric, or string type. \Ipopt passes this data on to its internal problem representation. The meta data type is a {\tt std::map} with {\tt std::string} as key type and a {\tt std::vector} as value type. So far, \Ipopt itself makes only use of string meta data under the key {\tt idx\_names}. With this key, variable and constraint names can be passed to \Ipopt, which are shown when printing internal vector or matrix data structures if \Ipopt is run with a high value for the \htmlref{\tt print\_level}{opt:print_level} option. This allows a user to identify the original variables and constraints corresponding to \Ipopt's internal problem representation. If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation does not set any meta data and returns {\tt false}. \paragraph{Method \texttt{finalize\_metadata}} with prototype \begin{verbatim} virtual void finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md) \end{verbatim} This method is called just before {\tt finalize\_solution} and is used to return any meta data collected during the algorithms run, including the meta data provided by the user with the {\tt get\_var\_con\_metadata} method. If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation does nothing. \paragraph{Method \texttt{get\_warm\_start\_iterate}} with prototype \begin{verbatim} virtual bool get_warm_start_iterate(IteratesVector& warm_start_iterate) \end{verbatim} Overload this method to provide an \Ipopt iterate which is already in the form \Ipopt requires it internally for a warm starts. This method is only for expert users. If the user doesn't overload this method in her implementation of the class derived from {\tt TNLP}, the default implementation does not provide a warm start iterate and returns {\tt false}. \subsection{The C Interface} \label{sec.cinterface} The C interface for \Ipopt is declared in the header file {\tt IpStdCInterface.h}, which is found in\\ \texttt{\$IPOPTDIR/include/coin} (or in \texttt{\$PREFIX/include/coin} if the switch \verb|--prefix=$PREFIX| was used for {\tt configure}); while %$ reading this section, it will be helpful to have a look at this file. In order to solve an optimization problem with the C interface, one has to create an {\tt IpoptProblem}\footnote{{\tt IpoptProblem} is a pointer to a C structure; you should not access this structure directly, only through the functions provided in the C interface.} with the function {\tt CreateIpoptProblem}, which later has to be passed to the {\tt IpoptSolve} function. The {\tt IpoptProblem} created by {\tt CreateIpoptProblem} contains the problem dimensions, the variable and constraint bounds, and the function pointers for callbacks that will be used to evaluate the NLP problem functions and their derivatives (see also the discussion of the C++ methods {\tt get\_nlp\_info} and {\tt get\_bounds\_info} in Section~\ref{sec.cpp_problem} for information about the arguments of {\tt CreateIpoptProblem}). The prototypes for the callback functions, {\tt Eval\_F\_CB}, {\tt Eval\_Grad\_F\_CB}, etc., are defined in the header file {\tt IpStdCInterface.h}. Their arguments correspond one-to-one to the arguments for the C++ methods discussed in Section~\ref{sec.cpp_problem}; for example, for the meaning of $\tt n$, $\tt x$, $\tt new\_x$, $\tt obj\_value$ in the declaration of {\tt Eval\_F\_CB} see the discussion of ``{\tt eval\_f}''. The callback functions should return {\tt TRUE}, unless there was a problem doing the requested function/derivative evaluation at the given point {\tt x} (then it should return {\tt FALSE}). Note the additional argument of type {\tt UserDataPtr} in the callback functions. This pointer argument is available for you to communicate information between the main program that calls {\tt IpoptSolve} and any of the callback functions. This pointer is simply passed unmodified by \Ipopt among those functions. For example, you can use this to pass constants that define the optimization problem and are computed before the optimization in the main C program to the callback functions. After an {\tt IpoptProblem} has been created, you can set algorithmic options for \Ipopt (see Section~\ref{sec:options}) using the {\tt AddIpopt...Option} functions. Finally, the \Ipopt algorithm is called with {\tt IpoptSolve}, giving \Ipopt the {\tt IpoptProblem}, the starting point, and arrays to store the solution values (primal and dual variables), if desired. Finally, after everything is done, you should call {\tt FreeIpoptProblem} to release internal memory that is still allocated inside \Ipopt. In the remainder of this section we discuss how the example problem (\ref{eq:ex_obj})--(\ref{eq:ex_bounds}) can be solved using the C interface. A completed version of this example can be found in {\tt Ipopt/examples/hs071\_c}. % We first create the necessary callback % functions for evaluating the NLP. As just discussed, the \Ipopt C % interface required callbacks to evaluate the objective value, % constraints, gradient of the objective, Jacobian of the constraints, % and the Hessian of the Lagrangian. These callbacks are implemented % using function pointers. Have a look at the C++ implementation for % {\tt eval\_f}, {\tt eval\_g}, {\tt eval\_grad\_f}, {\tt eval\_jac\_g}, % and {\tt eval\_h} in Section \ref{sec.cpp_problem}. The C % implementations have somewhat different prototypes, but are % implemented almost identically to the C++ code. \vspace{\baselineskip} In order to implement the example problem on your own, create a new directory {\tt MyCExample} and create a new file, {\tt hs071\_c.c}. Here, include the interface header file {\tt IpStdCInterface.h}, along with other necessary header files, such as {\tt stdlib.h} and {\tt assert.h}. Add the prototypes and implementations for the five callback functions. Have a look at the C++ implementation for {\tt eval\_f}, {\tt eval\_g}, {\tt eval\_grad\_f}, {\tt eval\_jac\_g}, and {\tt eval\_h} in Section \ref{sec.cpp_problem}. The C implementations have somewhat different prototypes, but are implemented almost identically to the C++ code. See the completed example in {\tt Ipopt/examples/hs071\_c/hs071\_c.c} if you are not sure how to do this. We now need to implement the {\tt main} function, create the {\tt IpoptProblem}, set options, and call {\tt IpoptSolve}. The {\tt CreateIpoptProblem} function requires the problem dimensions, the variable and constraint bounds, and the function pointers to the callback routines. The {\tt IpoptSolve} function requires the {\tt IpoptProblem}, the starting point, and allocated arrays for the solution. The {\tt main} function from the example is shown next and discussed below. \begin{verbatim} int main() { Index n=-1; /* number of variables */ Index m=-1; /* number of constraints */ Number* x_L = NULL; /* lower bounds on x */ Number* x_U = NULL; /* upper bounds on x */ Number* g_L = NULL; /* lower bounds on g */ Number* g_U = NULL; /* upper bounds on g */ IpoptProblem nlp = NULL; /* IpoptProblem */ enum ApplicationReturnStatus status; /* Solve return code */ Number* x = NULL; /* starting point and solution vector */ Number* mult_x_L = NULL; /* lower bound multipliers at the solution */ Number* mult_x_U = NULL; /* upper bound multipliers at the solution */ Number obj; /* objective value */ Index i; /* generic counter */ /* set the number of variables and allocate space for the bounds */ n=4; x_L = (Number*)malloc(sizeof(Number)*n); x_U = (Number*)malloc(sizeof(Number)*n); /* set the values for the variable bounds */ for (i=0; i print( ipoptr( x0 = x0, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb, ub = ub, eval_g = eval_g, eval_jac_g = eval_jac_g, constraint_lb = constraint_lb, constraint_ub = constraint_ub, eval_jac_g_structure = eval_jac_g_structure, eval_h = eval_h, eval_h_structure = eval_h_structure, opts = opts) ) Call: ipoptr(x0 = x0, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb, ub = ub, eval_g = eval_g, eval_jac_g = eval_jac_g, eval_jac_g_structure = eval_jac_g_structure, constraint_lb = constraint_lb, constraint_ub = constraint_ub, eval_h = eval_h, eval_h_structure = eval_h_structure, opts = opts) Ipopt solver status: 0 ( SUCCESS: Algorithm terminated successfully at a locally optimal point, satisfying the convergence tolerances (can be specified by options). ) Number of Iterations....: 8 Optimal value of objective function: 17.0140171451792 Optimal value of controls: 1 4.743 3.82115 1.379408 \end{verbatim} To pass additional data to the evaluation routines, one can either supply additional arguments to the user defined functions and {\tt ipoptr} or define an environment that holds the data and pass this environment to {\tt ipoptr}. Both methods are shown in the file \texttt{tests/parameters.R} that comes with \ipoptr. As a very simple example, suppose we want to find the minimum of \[ f( x ) = a_1 x^2 + a_2 x + a_3 \] for different values of the parameters $a_1$, $a_2$ and $a_3$. First, we define the objective function and its gradient using, assuming that there is some variable \texttt{params} that contains the values of the parameters. \begin{verbatim} > eval_f_ex1 <- function(x, params) { return( params[1]*x^2 + params[2]*x + params[3] ) } > eval_grad_f_ex1 <- function(x, params) { return( 2*params[1]*x + params[2] ) } \end{verbatim} Note, that the first parameter should always be the control variable. All of the user-defined functions should contain the same set of additional parameters. You have to supply them as input argument to all functions, even if you're not using them in some of the functions. Then we can solve the problem for a specific set of parameters, in this case $a_1=1$, $a_2=2$ and $a_3=3$, from initial value $x_0=0$, with the following command \begin{verbatim} > # solve using ipoptr with additional parameters > ipoptr(x0 = 0, eval_f = eval_f_ex1, eval_grad_f = eval_grad_f_ex1, opts = list("print_level"=0), params = c(1,2,3) ) Call: ipoptr(x0 = 0, eval_f = eval_f_ex1, eval_grad_f = eval_grad_f_ex1, opts = list(print_level = 0), params = c(1, 2, 3)) Ipopt solver status: 0 ( SUCCESS: Algorithm terminated successfully at a locally optimal point, satisfying the convergence tolerances (can be specified by options). ) Number of Iterations....: 1 Optimal value of objective function: 2 Optimal value of controls: -1 \end{verbatim} For the second method, we don't have to supply the parameters as additional arguments to the function. \begin{verbatim} > eval_f_ex2 <- function(x) { return( params[1]*x^2 + params[2]*x + params[3] ) } > eval_grad_f_ex2 <- function(x) { return( 2*params[1]*x + params[2] ) } \end{verbatim} Instead, we define an environment that contains specific values of \texttt{params} \begin{verbatim} > # define a new environment that contains params > auxdata <- new.env() > auxdata$params <- c(1,2,3) \end{verbatim} To solve this we supply \texttt{auxdata} as an argument to \texttt{ipoptr}, which will take care of evaluating the functions in the correct environment, so that the auxiliary data is available. \begin{verbatim} > # pass the environment that should be used to evaluate functions to ipoptr > ipoptr(x0 = 0, eval_f = eval_f_ex2, eval_grad_f = eval_grad_f_ex2, ipoptr_environment = auxdata, opts = list("print_level"=0) ) Call: ipoptr(x0 = 0, eval_f = eval_f_ex2, eval_grad_f = eval_grad_f_ex2, opts = list(print_level = 0), ipoptr_environment = auxdata) Ipopt solver status: 0 ( SUCCESS: Algorithm terminated successfully at a locally optimal point, satisfying the convergence tolerances (can be specified by options). ) Number of Iterations....: 1 Optimal value of objective function: 2 Optimal value of controls: -1 \end{verbatim} \subsection{The \Matlab Interface} \hfill \textit{based on documentation by Peter Carbonetto\footnote{University of British Columbia}}% \medskip See Section \ref{sec.matlab.build} for instructions on how to build a {\tt mex} file of the \Matlab interface for \Ipopt and how to make it known to \Matlab. The {\tt \$IPOPTDIR/contrib/MatlabInterface/examples} directory contains several illustrative examples on how to use the \Matlab interface. The best way to understand how to use the interface is to carefully go over these examples. For more information, type {\tt help ipopt} in the \Matlab prompt. Further, Jonas Asprion assembled information about the \Matlab\ {\tt ipopt} function and its arguments: \url{http://www.idsc.ethz.ch/Downloads/IPOPT_InstallMatlab/IPOPT_MatlabInterface_V0p1.pdf} Note, that this document refers to \Ipopt versions before 3.11. With 3.11, the {\tt auxdata} option has been removed from the {\tt mex} code. The new wrapper function {\tt ipopt\_auxdata} implements the same functionality as the previous {\tt ipopt} function, but uses \Matlab function handles to do so. \section{Special Features} \subsection{Derivative Checker}\label{sec:deriv-checker} When writing code for the evaluation of derivatives it is very easy to make mistakes (much easier than writing it correctly the first time :)). As a convenient feature, \Ipopt provides the option to run a simple derivative checker, based on finite differences, before the optimization is started. To use the derivative checker, you need to use the option \htmlref{\tt derivative\_test}{opt:derivative_test}. By default, this option is set to {\tt none}, i.e., no finite difference test is performed, It is set to {\tt first-order}, then the first derivatives of the objective function and the constraints are verified, and for the setting {\tt second-order}, the second derivatives are tested as well. The verification is done by a simple finite differences approximation, where each component of the user-provided starting point is perturbed one of the other. The relative size of the perturbation is determined by the option \htmlref{\tt derivative\_test\_perturbation}{opt:derivative_test_perturbation}. The default value ($10^{-8}$, about the square root of the machine precision) is probably fine in most cases, but if you believe that you see wrong warnings, you might want to play with this parameter. When the test is performed, \Ipopt prints out a line for every partial derivative, for which the user-provided derivative value deviates too much from the finite difference approximation. The relative tolerance for deciding when a warning should be issued, is determined by the option \htmlref{\tt derivative\_test\_tol}{opt:derivative_test_tol}. If you want to see the user-provided and estimated derivative values with the relative deviation for each single partial derivative, you can switch the \htmlref{\tt derivative\_test\_print\_all}{opt:derivative_test_print_all} option to {\tt yes}. A typical output is: \begin{footnotesize} \begin{verbatim} Starting derivative checker. * grad_f[ 2] = -6.5159999999999991e+02 ~ -6.5559997134793468e+02 [ 6.101e-03] * jac_g [ 4, 4] = 0.0000000000000000e+00 ~ 2.2160643690464592e-02 [ 2.216e-02] * jac_g [ 4, 5] = 1.3798494268463347e+01 v ~ 1.3776333629422766e+01 [ 1.609e-03] * jac_g [ 6, 7] = 1.4776333636790881e+01 v ~ 1.3776333629422766e+01 [ 7.259e-02] Derivative checker detected 4 error(s). \end{verbatim} \end{footnotesize} The star (``\verb|*|'') in the first column indicates that this line corresponds to some partial derivative for which the error tolerance was exceeded. Next, we see which partial derivative is concerned in this output line. For example, in the first line, it is the second component of the objective function gradient (or the third, if the {\tt C\_STYLE} numbering is used, i.e., when counting of indices starts with 0 instead of 1). The first floating point number is the value given by the user code, and the second number (after ``\verb|~|'') is the finite differences estimation. Finally, the number in square brackets is the relative difference between these two numbers. For constraints, the first index after {\tt jac\_g} is the index of the constraint, and the second one corresponds to the variable index (again, the choice of the numbering style matters). Since also the sparsity structure of the constraint Jacobian has to be provided by the user, it can be faulty as well. For this, the ``{\tt v}'' after a user-provided derivative value indicates that this component of the Jacobian is part of the user provided sparsity structure. If there is no ``{\tt v}'', it means that the user did not include this partial derivative in the list of non-zero elements. In the above output, the partial derivative ``{\tt jac\_g[4,4]}'' is non-zero (based on the finite difference approximation), but it is not included in the list of non-zero elements (missing ``{\tt v}''), so that the user probably made a mistake in the sparsity structure. The other two Jacobian entries are provided in the non-zero structure but their values seem to be off. For second derivatives, the output looks like: \begin{footnotesize} \begin{verbatim} * obj_hess[ 1, 1] = 1.8810000000000000e+03 v ~ 1.8820000036612328e+03 [ 5.314e-04] * 3-th constr_hess[ 2, 4] = 1.0000000000000000e+00 v ~ 0.0000000000000000e+00 [ 1.000e+00] \end{verbatim} \end{footnotesize} There, the first line shows the deviation of the user-provided partial second derivative in the Hessian for the objective function, and the second line show an error in a partial derivative for the Hessian of the third constraint (again, the numbering style matters). Since the second derivatives are approximates by finite differences of the first derivatives, you should first correct errors for the first derivatives. Also, since the finite difference approximations are quite expensive, you should try to debug a small instance of your problem if you can. Another useful option is \htmlref{\tt derivative\_test\_first\_index}{opt:derivative_test_first_index} which allows your to start the derivative test with variables with a larger index. % Finally, it is of course always a good idea to run your code through some memory checker, such as {\tt valgrind} on Linux. \subsection{Quasi-Newton Approximation of Second Derivatives} \label{sec:quasiNewton} \Ipopt has an option to approximate the Hessian of the Lagrangian by a limited-memory quasi-Newton method (L-BFGS). You can use this feature by setting the \htmlref{\tt hessian\_approximation}{opt:hessian_approximation} option to the value {\tt limited-memory}. In this case, it is not necessary to implement the Hessian computation method {\tt eval\_h} in {\tt TNLP}. If you are using the C or Fortran interface, you still need to implement these functions, but they should return {\tt false} or {\tt IERR=1}, respectively, and don't need to do anything else. In general, when second derivatives can be computed with reasonable computational effort, it is usually a good idea to use them, since then \Ipopt normally converges in fewer iterations and is more robust. An exception might be in cases, where your optimization problem has a dense Hessian, i.e., a large percentage of non-zero entries in the Hessian. In such a case, using the quasi-Newton approximation might be better, even if it increases the number of iterations, since with exact second derivatives the computation time per iteration might be significantly higher due to the very large number of non-zero elements in the linear systems that \Ipopt solve in order to compute the search direction. Since the Hessian of the Lagrangian is zero for all variables that appear only linearly in the objective and constraint functions, the Hessian approximation should only take place in the space of all nonlinear variables. By default, it is assumed that all variables are nonlinear, but you can tell \Ipopt explicitly which variables are nonlinear, using the {\tt get\_number\_of\_nonlinear\_variables} and {\tt get\_list\_of\_nonlinear\_variables} method of the {\tt TNLP} class, see Section~\ref{sec:add_meth}. (Those methods have been implemented for the AMPL interface, so you would automatically only approximate the Hessian in the space of the nonlinear variables, if you are using the quasi-Newton option for AMPL models.) Currently, those two methods are not available through the C or Fortran interface. \subsection{Warm-Starting Capabilities via AMPL} \hfill \textit{based on documentation by Victor M. Zavala}\footnote{Department of Chemical Engineering, Carnegie Mellon University} \medskip Warm-starting an interior-point algorithm is an important issue. One of the main difficulties arises from the fact that full-space variable information is required to generate the warm-starting point. While \Ipopt is currently equipped to retrieve and receive this type of information through the {\tt TNLP} interface, there exist some communication barriers in the AMPL interface. When the user solves the problem \eqref{eq:obj}--\eqref{eq:bounds}, \Ipopt will only return the optimal values of the primal variables $x$ and of the constraint multipliers corresponding to the active bounds of $g(x)$ (see \eqref{eq:constraints}). The constraint multiplier values can be accessed through the {\tt .dual} suffix or through the {\tt .sol} file. If this information is used to solve the same problem again, you will notice that \Ipopt will take some iterations in finding the same solution. The reason for this is that we are missing the input information of the multipliers $z^L$ and $z^U$ corresponding to the variable bounds (see \eqref{eq:bounds}). However, \Ipopt also passes the values of the bound multipliers $z^L$ and $z^U$ to AMPL. This will be communicated to the AMPL user through the suffixes {\tt ipopt\_zL\_out} and {\tt ipopt\_zU\_out}, respectively. The user does not need to declare these suffixes, they will be generated automatically in the AMPL interface. The user can use the suffix values to initialize the bound multipliers for subsequent calls. In order to pass this information to \Ipopt, the user will need to declare and assign values to the suffixes {\tt ipopt\_zL\_in} and {\tt ipopt\_zU\_in}. For instance, for a given variable {\tt x[i]}, this can be done by setting: \begin{verbatim} let x[i].ipopt_zL_in := x[i].ipopt_zL_out; let x[i].ipopt_zU_in := x[i].ipopt_zU_out; \end{verbatim} If the user does not specify some of these values, \Ipopt will set these multipliers to 1.0 (as before). In order to make the warm-start effective, the user has control over the following options from AMPL:\\ \htmlref{\tt warm\_start\_init\_point}{opt:warm_start_init_point} \\ \htmlref{\tt warm\_start\_bound\_push}{opt:warm_start_bound_push} \\ \htmlref{\tt warm\_start\_mult\_bound\_push}{opt:warm_start_mult_bound_push} Note, that the use of this feature is far from solving the complicated issue of warm- starting interior-point algorithms. As a general advice, this feature will be useful if the user observes that the solution of subsequent problems (i.e., for different data instances) preserves the same set of active inequalities and bounds (monitor the values of $z^L$ and $z^U$ for subsequent solutions). In this case, initializing the bound multipliers and setting \htmlref{\tt warm\_start\_init\_point}{opt:warm_start_init_point} to {\tt yes} and setting \htmlref{\tt warm\_start\_bound\_push}{opt:warm_start_bound_push}, \htmlref{\tt warm\_start\_mult\_bound\_push}{opt:warm_start_mult_bound_push} and \htmlref{\tt mu\_init}{opt:mu_init} to a small value ($10^{-6}$ or so) will reduce significantly the number of iterations. This is particularly useful in setting up on-line applications and high-level optimization strategies in AMPL. If active-set changes are observed between subsequent solutions, then this strategy might not decrease the number of iterations (in some cases, it might even tend to increase the number of iterations). You might also want to try the adaptive barrier update (instead of the default monotone one where above we chose the initial value $10^{-6}$) when doing the warm start. This can be activated by setting the \htmlref{\tt mu\_strategy}{opt:mu_strategy} option to {\tt adaptive}. Also the option \htmlref{\tt mu\_oracle}{opt:mu_oracle} gives some alternative choices. In general, the adaptive choice often leads to less iterations, but the computational cost per iteration might be higher. The file {\tt \$IPOPTDIR/Ipopt/doc/hs071\_warmstart.mod} illustrates the use of the warm-start feature on the HS071 problem, see also Section \ref{sec.ipoptampl}. \subsection{\sIpopt: Optimal Sensitivity Based on \Ipopt} \hfill \textit{based on documentation by Hans Pirnay}\footnote{RWTH Aachen, {\tt hans.pirnay@avt.rwth-aachen.de}} \medskip The \sIpopt project provides a toolbox that uses NLP sensitivity theory to generate fast approximations to solutions when parameters in the problem change. It has been developed primarily by Hans Pirnay (RWTH-Aachen), Rodrigo L\'opez-Negrete (CMU), and Lorenz Biegler (CMU). Sensitivity of nonlinear programming problems is a key step in any optimization study. Sensitivity provides information on regularity and curvature conditions at KKT points, assesses which variables play dominant roles in the optimization, and provides first order estimates for parametric nonlinear programs. Moreover, for NLP algorithms that use exact second derivatives, sensitivity can be implemented very efficiently within NLP solvers and provide valuable information with very little added computation. This implementation provides \Ipopt with the capabilities to calculate sensitivities, and approximate perturbed solutions with them. The basic sensitivity strategy implemented here is based on the application of the Implicit Function Theorem (IFT) to the KKT conditions of the NLP. As shown by Fiacco (1983), sensitivities can be obtained from a solution with suitable regularity conditions merely by solving a linearization of the KKT conditions. More details can be found in \cite{PLNB:sIpopt}. If you are using \sIpopt for your research, please cite \cite{PLNB:sIpopt}. The \sIpopt project is available in the \Ipopt repository under {\tt \$IPOPTDIR/Ipopt/contrib/sIPOPT}. After having installed \Ipopt successfully, \sIpopt can be build and installed by changing to the directory {\tt \$IPOPTDIR/build/Ipopt/contrib/sIPOPT} and executing {\tt make install}. This should copy the generated libraries {\tt libsipopt.*} to {\tt \$IPOPTDIR/build/lib} and an AMPL executable {\tt ipopt\_sens} to {\tt \$IPOPTDIR/build/bin}. The files {\tt \$IPOPTDIR/Ipopt/contrib/sIPOPT/examples/parametric\_ampl/parametric.\{mod,run\}} are an example that shows how to use \sIpopt to solve the NLP \begin{align} \min\quad & x_1^2 + x_2^2 + x_3^2, \\ \mathrm{such~that}\quad & 6x_1 + 3x_2 + 2x_3 = p_1, \\ & p_2 x_1 + x_2 - x_3 = 1, \\ & x_1, x_2, x_3 \geq 0, \end{align} where we perturb the parameters $p_1$ and $p_2$ from $p_a = (p_1, p_2) = (5, 1)$ to $p_b = (4.5, 1)$. Note, that \sIpopt has been developed under the constraint that it must work with the regular \Ipopt code. Due to this constraint, some compromises had to be made. However, there is an ongoing effort to develop \sIpopt 2, which is a fork of the \Ipopt code that allows for the explicit definition of parametric NLPs. This code can be found at \url{https://github.com/athrpf/sipopt2}. If you have questions about \sIpopt 2, please contact ​Hans Pirnay. \section{\Ipopt Options}\label{sec:options} \Ipopt has many (maybe too many) options that can be adjusted for the algorithm. Options are all identified by a string name, and their values can be of one of three types: Number (real), Integer, or String. Number options are used for things like tolerances, integer options are used for things like maximum number of iterations, and string options are used for setting algorithm details, like the NLP scaling method. Options can be set through code, through the AMPL interface if you are using AMPL, or by creating a {\tt ipopt.opt} file in the directory you are executing \Ipopt. The {\tt ipopt.opt} file is read line by line and each line should contain the option name, followed by whitespace, and then the value. Comments can be included with the {\tt \#} symbol. For example, \begin{verbatim} # This is a comment # Turn off the NLP scaling nlp_scaling_method none # Change the initial barrier parameter mu_init 1e-2 # Set the max number of iterations max_iter 500 \end{verbatim} is a valid {\tt ipopt.opt} file. Options can also be set in code. Have a look at the examples to see how this is done. A subset of \Ipopt options are available through AMPL. To set options through AMPL, use the internal AMPL command {\tt options}. For example, \\ {\tt options ipopt\_options "nlp\_scaling\_method=none mu\_init=1e-2 max\_iter=500"} \\ is a valid options command in AMPL. The most important options are referenced in Appendix~\ref{app.options_ref}. To see which options are available through AMPL, you can run the AMPL solver executable with the ``{\tt -=}'' flag from the command prompt. To specify other options when using AMPL, you can always create {\tt ipopt.opt}. Note, the {\tt ipopt.opt} file is given preference when setting options. This way, you can easily override any options set in a particular executable or AMPL model by specifying new values in {\tt ipopt.opt}. For a list of the most important valid options, see the Appendix \ref{app.options_ref}. You can print the documentation for all \Ipopt options by using the option \medskip \htmlref{\tt print\_options\_documentation}{opt:print_options_documentation} {\tt~yes} \medskip and running \Ipopt (like the AMPL solver executable, for instance). This will output the documentation of almost all options to the console. \section{\Ipopt Output}\label{sec:output} This section describes the standard \Ipopt console output with the default setting for \htmlref{\tt print\_level}{opt:print_level}. The output is designed to provide a quick summary of each iteration as \Ipopt solves the problem. Before \Ipopt starts to solve the problem, it displays the problem statistics (number of nonzero-elements in the matrices, number of variables, etc.). Note that if you have fixed variables (both upper and lower bounds are equal), \Ipopt may remove these variables from the problem internally and not include them in the problem statistics. Following the problem statistics, \Ipopt will begin to solve the problem and you will see output resembling the following, \begin{verbatim} iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 1.6109693e+01 1.12e+01 5.28e-01 0.0 0.00e+00 - 0.00e+00 0.00e+00 0 1 1.8029749e+01 9.90e-01 6.62e+01 0.1 2.05e+00 - 2.14e-01 1.00e+00f 1 2 1.8719906e+01 1.25e-02 9.04e+00 -2.2 5.94e-02 2.0 8.04e-01 1.00e+00h 1 \end{verbatim} and the columns of output are defined as, \begin{description} \item[{\tt iter}:] The current iteration count. This includes regular iterations and iterations during the restoration phase. If the algorithm is in the restoration phase, the letter {\tt r'} will be appended to the iteration number. \item[{\tt objective}:] The unscaled objective value at the current point. During the restoration phase, this value remains the unscaled objective value for the original problem. \item[{\tt inf\_pr}:] The unscaled constraint violation at the current point. This quantity is the infinity-norm (max) of the (unscaled) constraints (\ref{eq:constraints}). During the restoration phase, this value remains the constraint violation of the original problem at the current point. The option \htmlref{\tt inf\_pr\_output}{opt:inf_pr_output} can be used to switch to the printing of a different quantity. \item[{\tt inf\_du}:] The scaled dual infeasibility at the current point. This quantity measure the infinity-norm (max) of the internal dual infeasibility, Eq.~(4a) in the implementation paper \cite{WaecBieg06:mp}, including inequality constraints reformulated using slack variables and problem scaling. During the restoration phase, this is the value of the dual infeasibility for the restoration phase problem. \item[{\tt lg(mu)}:] $\log_{10}$ of the value of the barrier parameter $\mu$. \item[{\tt ||d||}:] The infinity norm (max) of the primal step (for the original variables $x$ and the internal slack variables $s$). During the restoration phase, this value includes the values of additional variables, $p$ and $n$ (see Eq.~(30) in \cite{WaecBieg06:mp}). \item[{\tt lg(rg)}:] $\log_{10}$ of the value of the regularization term for the Hessian of the Lagrangian in the augmented system ($\delta_w$ in Eq.~(26) and Section 3.1 in \cite{WaecBieg06:mp}). A dash (``\texttt{-}'') indicates that no regularization was done. \item[{\tt alpha\_du}:] The stepsize for the dual variables ($\alpha^z_k$ in Eq.~(14c) in \cite{WaecBieg06:mp}). \item[{\tt alpha\_pr}:] The stepsize for the primal variables ($\alpha_k$ in Eq.~(14a) in \cite{WaecBieg06:mp}). The number is usually followed by a character for additional diagnostic information regarding the step acceptance criterion, see Table~\ref{tab:alpha_pr}. \item[{\tt ls}:] The number of backtracking line search steps (does not include second-order correction steps). \end{description} \begin{table} \centering \begin{tabular}{ll} Tag & Description \\ \hline f & f-type iteration in the filter method w/o second order correction \\ F & f-type iteration in the filter method w/ second order correction \\ h & h-type iteration in the filter method w/o second order correction \\ H & h-type iteration in the filter method w/ second order correction \\ k & penalty value unchanged in merit function method w/o second order correction \\ K & penalty value unchanged in merit function method w/ second order correction \\ n & penalty value updated in merit function method w/o second order correction \\ N & penalty value updated in merit function method w/ second order correction \\ R & Restoration phase just started \\ w & in watchdog procedure \\ s & step accepted in soft restoration phase \\ t/T & tiny step accepted without line search \\ r & some previous iterate restored \\ % (forgot right now what that means ;-) ) \hline \\ \end{tabular} \caption{Diagnostic output in {\tt alpha\_pr} column.} \label{tab:alpha_pr} \end{table} Note that the step acceptance mechanisms in \Ipopt consider the barrier objective function (Eq~(3a) in \cite{WaecBieg06:mp}) which is usually different from the value reported in the \texttt{objective} column. Similarly, for the purposes of the step acceptance, the constraint violation is measured for the internal problem formulation, which includes slack variables for inequality constraints and potentially scaling of the constraint functions. This value, too, is usually different from the value reported in \texttt{inf\_pr}. As a consequence, a new iterate might have worse values both for the objective function and the constraint violation as reported in the iteration output, seemingly contradicting globalization procedure. When the algorithm terminates, \Ipopt will output a message to the screen based on the return status of the call to {\tt Optimize}. The following is a list of the possible return codes, their corresponding output message to the console, and a brief description. \begin{description} \item[{\tt Solve\_Succeeded}:] $\;$ \\ Console Message: {\tt EXIT: Optimal Solution Found.} \\ This message indicates that \Ipopt found a (locally) optimal point within the desired tolerances. \item[{\tt Solved\_To\_Acceptable\_Level}:] $\;$ \\ Console Message: {\tt EXIT: Solved To Acceptable Level.} \\ This indicates that the algorithm did not converge to the ``desired'' tolerances, but that it was able to obtain a point satisfying the ``acceptable'' tolerance level as specified by the \htmlref{\tt acceptable\_*}{opt:acceptable_tol} options. This may happen if the desired tolerances are too small for the current problem. \item[{\tt Feasible\_Point\_Found}:] $\;$ \\ Console Message: {\tt EXIT: Feasible point for square problem found.} \\ This message is printed if the problem is ``square'' (i.e., it has as many equality constraints as free variables) and \Ipopt found a feasible point. \item[{\tt Infeasible\_Problem\_Detected}:] $\;$ \\ Console Message: {\tt EXIT: Converged to a point of local infeasibility. Problem may be infeasible.} \\ The restoration phase converged to a point that is a minimizer for the constraint violation (in the $\ell_1$-norm), but is not feasible for the original problem. This indicates that the problem may be infeasible (or at least that the algorithm is stuck at a locally infeasible point). The returned point (the minimizer of the constraint violation) might help you to find which constraint is causing the problem. If you believe that the NLP is feasible, it might help to start the optimization from a different point. \item[{\tt Search\_Direction\_Becomes\_Too\_Small}:] $\;$ \\ Console Message: {\tt EXIT: Search Direction is becoming Too Small.} \\ This indicates that \Ipopt is calculating very small step sizes and is making very little progress. This could happen if the problem has been solved to the best numerical accuracy possible given the current scaling. \item[{\tt Diverging\_Iterates}:] $\;$ \\ Console Message: {\tt EXIT: Iterates divering; problem might be unbounded.} \\ This message is printed if the max-norm of the iterates becomes larger than the value of the option \htmlref{\tt diverging\_iterates\_tol}{opt:diverging_iterates_tol}. This can happen if the problem is unbounded below and the iterates are diverging. \item[{\tt User\_Requested\_Stop}:] $\;$ \\ Console Message: {\tt EXIT: Stopping optimization at current point as requested by user.} \\ This message is printed if the user call-back method {\tt intermediate\_callback} returned {\tt false} (see Section~\ref{sec:add_meth}). \item[{\tt Maximum\_Iterations\_Exceeded}:] $\;$ \\ Console Message: {\tt EXIT: Maximum Number of Iterations Exceeded.} \\ This indicates that \Ipopt has exceeded the maximum number of iterations as specified by the option \htmlref{\tt max\_iter}{opt:max_iter}. \item[{\tt Maximum\_CpuTime\_Exceeded}:] $\;$ \\ Console Message: {\tt EXIT: Maximum CPU time exceeded.} \\ This indicates that \Ipopt has exceeded the maximum number of CPU seconds as specified by the option \htmlref{\tt max\_cpu\_time}{opt:max_cpu_time}. \item[{\tt Restoration\_Failed}:] $\;$ \\ Console Message: {\tt EXIT: Restoration Failed!} \\ This indicates that the restoration phase failed to find a feasible point that was acceptable to the filter line search for the original problem. This could happen if the problem is highly degenerate, does not satisfy the constraint qualification, or if your NLP code provides incorrect derivative information. \item[{\tt Error\_In\_Step\_Computation}:] $\;$ \\ Console Output:\ {\tt EXIT:\ Error in step computation (regularization becomes too large?)!} \\ This messages is printed if \Ipopt is unable to compute a search direction, despite several attempts to modify the iteration matrix. Usually, the value of the regularization parameter then becomes too large. One situation where this can happen is when values in the Hessian are invalid ({\tt NaN} or {\tt Inf}). You can check whether this is true by using the \htmlref{\tt check\_derivatives\_for\_naninf}{opt:check_derivatives_for_naninf} option. \item[{\tt Invalid\_Option}:] $\;$ \\ Console Message: (details about the particular error will be output to the console) \\ This indicates that there was some problem specifying the options. See the specific message for details. \item[{\tt Not\_Enough\_Degrees\_Of\_Freedom}:] $\;$ \\ Console Message: {\tt EXIT: Problem has too few degrees of freedom.} \\ This indicates that your problem, as specified, has too few degrees of freedom. This can happen if you have too many equality constraints, or if you fix too many variables (\Ipopt removes fixed variables by default, see also the \htmlref{\tt fixed\_variable\_treatment}{opt:fixed_variable_treatment} option). \item[{\tt Invalid\_Problem\_Definition}:] $\;$ \\ Console Message: (no console message, this is a return code for the C and Fortran interfaces only.) \\ This indicates that there was an exception of some sort when building the {\tt IpoptProblem} structure in the C or Fortran interface. Likely there is an error in your model or the {\tt main} routine. \item[{\tt Unrecoverable\_Exception}:] $\;$ \\ Console Message: (details about the particular error will be output to the console) \\ This indicates that \Ipopt has thrown an exception that does not have an internal return code. See the specific message for details. \item[{\tt NonIpopt\_Exception\_Thrown}:] $\;$ \\ Console Message: {\tt Unknown Exception caught in Ipopt} \\ An unknown exception was caught in \Ipopt. This exception could have originated from your model or any linked in third party code. \item[{\tt Insufficient\_Memory}:] $\;$ \\ Console Message: {\tt EXIT: Not enough memory.} \\ An error occurred while trying to allocate memory. The problem may be too large for your current memory and swap configuration. \item[{\tt Internal\_Error}:] $\;$ \\ Console: {\tt EXIT: INTERNAL ERROR: Unknown SolverReturn value - Notify IPOPT Authors.} \\ An unknown internal error has occurred. Please notify the authors of \Ipopt via the mailing list. \end{description} \subsection{Diagnostic Tags for \Ipopt} To print additional diagnostic tags for each iteration of \Ipopt, set the options \htmlref{\tt print\_info\_string}{opt:print_info_string} to \texttt{yes}. With this, a tag will appear at the end of an iteration line with the following diagnostic meaning that are useful to flag difficulties for a particular \Ipopt run. A list of possible strings is given in Table~\ref{tab:info_string}. \begin{table}\centering \begin{tabular}{@{}lll@{}} Tag & Description & Reference \\ \hline ! & Tighten resto tolerance if only slightly infeasible & Section 3.3 in \cite{WaecBieg06:mp} \\ A & Current iteration is acceptable & Alternate termination \\ a & Perturbation for PD singularity impossible, assume singular & Section 3.1 in \cite{WaecBieg06:mp}\\ C & Second Order Correction taken & Section 2.4 in \cite{WaecBieg06:mp} \\ Dh & Hessian degenerate based on multiple iterations & Section 3.1 in \cite{WaecBieg06:mp}\\ Dhj & Hessian/Jacobian degenerate based on multiple iterations & Section 3.1 in \cite{WaecBieg06:mp}\\ Dj & Jacobian degenerate based on multiple iterations & Section 3.1 in \cite{WaecBieg06:mp}\\ dx & $\delta_x$ perturbation too large & Section 3.1 in \cite{WaecBieg06:mp}\\ e & Cutting back $\alpha$ due to evaluation error & in backtracking line search \\ F- & Filter should be reset, but maximal resets exceeded & Section 2.3 in \cite{WaecBieg06:mp} \\ F+ & Resetting filter due to last few rejections of filter & Section 2.3 in \cite{WaecBieg06:mp} \\ L & Degenerate Jacobian, $\delta_c$ already perturbed & Section 3.1 in \cite{WaecBieg06:mp}\\ l & Degenerate Jacobian, $\delta_c$ perturbed & Section 3.1 in \cite{WaecBieg06:mp}\\ M & Magic step taken for slack variables & in backtracking line search \\ Nh & Hessian not yet degenerate & Section 3.1 in \cite{WaecBieg06:mp}\\ Nhj & Hessian/Jacobian not yet degenerate & Section 3.1 in \cite{WaecBieg06:mp}\\ Nj & Jacobian not yet degenerate & Section 3.1 in \cite{WaecBieg06:mp}\\ NW & Warm start initialization failed & in Warm Start Initialization \\ q & PD system possibly singular, attempt improving sol.\ quality & Section 3.1 in \cite{WaecBieg06:mp}\\ R & Solution of restoration phase & Section 3.3 in \cite{WaecBieg06:mp} \\ S & PD system possibly singular, accept current solution & Section 3.1 in \cite{WaecBieg06:mp}\\ s & PD system singular & Section 3.1 in \cite{WaecBieg06:mp}\\ s & Square Problem. Set multipliers to zero & Default initialization routine \\ Tmax & Trial $\theta$ is larger than $\theta_{max}$ & filter parameter, see (21) in \cite{WaecBieg06:mp} \\ W & Watchdog line search procedure successful & Section 3.2 in \cite{WaecBieg06:mp} \\ w & Watchdog line search procedure unsuccessful, stopped & Section 3.2 in \cite{WaecBieg06:mp} \\ Wb & Undoing most recent SR1 update & Section 5.4.1 in \cite{Biegler:nlpbook} \\ We & Skip Limited-Memory Update in restoration phase & Section 5.4.1 in \cite{Biegler:nlpbook} \\ Wp & Safeguard $B^0 = \sigma I$ for Limited-Memory Update & Section 5.4.1 in \cite{Biegler:nlpbook} \\ Wr & Resetting Limited-Memory Update & Section 5.4.1 in \cite{Biegler:nlpbook} \\ Ws & Skip Limited-Memory Update since $s^Ty$ is not positive & Section 5.4.1 in \cite{Biegler:nlpbook} \\ WS & Skip Limited-Memory Update since $\Delta x$ is too small & Section 5.4.1 in \cite{Biegler:nlpbook} \\ y & Dual infeasibility, use least square multiplier update & during ipopt algorithm \\ z & Apply correction to bound multiplier if too large & during ipopt algorithm \\ \end{tabular} \caption{Diagnostic output appended using \texttt{print\_info\_sting}.} \label{tab:info_string} \end{table} \appendix \section{Triplet Format for Sparse Matrices}\label{app.triplet} \Ipopt was designed for optimizing large sparse nonlinear programs. Because of problem sparsity, the required matrices (like the constraints Jacobian or Lagrangian Hessian) are not stored as dense matrices, but rather in a sparse matrix format. For the tutorials in this document, we use the triplet format. Consider the matrix \begin{equation} \label{eqn.ex_matrix} \left[ \begin{array}{ccccccc} 1.1 & 0 & 0 & 0 & 0 & 0 & 0.5 \\ 0 & 1.9 & 0 & 0 & 0 & 0 & 0.5 \\ 0 & 0 & 2.6 & 0 & 0 & 0 & 0.5 \\ 0 & 0 & 7.8 & 0.6 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1.5 & 2.7 & 0 & 0 \\ 1.6 & 0 & 0 & 0 & 0.4 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0.9 & 1.7 \\ \end{array} \right] \end{equation} A standard dense matrix representation would need to store $7 \cdot 7{=} 49$ floating point numbers, where many entries would be zero. In triplet format, however, only the nonzero entries are stored. The triplet format records the row number, the column number, and the value of all nonzero entries in the matrix. For the matrix above, this means storing $14$ integers for the rows, $14$ integers for the columns, and $14$ floating point numbers for the values. While this does not seem like a huge space saving over the $49$ floating point numbers stored in the dense representation, for larger matrices, the space savings are very dramatic\footnote{For an $n \times n$ matrix, the dense representation grows with the the square of $n$, while the sparse representation grows linearly in the number of nonzeros.}. The parameter {\tt index\_style} in {\tt get\_nlp\_info} tells \Ipopt if you prefer to use C style indexing (0-based, i.e., starting the counting at 0) for the row and column indices or Fortran style (1-based). Tables \ref{tab.fortran_triplet} and \ref{tab.c_triplet} below show the triplet format for both indexing styles, using the example matrix (\ref{eqn.ex_matrix}). \begin{footnotesize} \begin{table}[ht]%[!h] \begin{center} \begin{tabular}{c c c} row & col & value \\ \hline {\tt iRow[0] = 1} & {\tt jCol[0] = 1} & {\tt values[0] = 1.1} \\ {\tt iRow[1] = 1} & {\tt jCol[1] = 7} & {\tt values[1] = 0.5} \\ {\tt iRow[2] = 2} & {\tt jCol[2] = 2} & {\tt values[2] = 1.9} \\ {\tt iRow[3] = 2} & {\tt jCol[3] = 7} & {\tt values[3] = 0.5} \\ {\tt iRow[4] = 3} & {\tt jCol[4] = 3} & {\tt values[4] = 2.6} \\ {\tt iRow[5] = 3} & {\tt jCol[5] = 7} & {\tt values[5] = 0.5} \\ {\tt iRow[6] = 4} & {\tt jCol[6] = 3} & {\tt values[6] = 7.8} \\ {\tt iRow[7] = 4} & {\tt jCol[7] = 4} & {\tt values[7] = 0.6} \\ {\tt iRow[8] = 5} & {\tt jCol[8] = 4} & {\tt values[8] = 1.5} \\ {\tt iRow[9] = 5} & {\tt jCol[9] = 5} & {\tt values[9] = 2.7} \\ {\tt iRow[10] = 6} & {\tt jCol[10] = 1} & {\tt values[10] = 1.6} \\ {\tt iRow[11] = 6} & {\tt jCol[11] = 5} & {\tt values[11] = 0.4} \\ {\tt iRow[12] = 7} & {\tt jCol[12] = 6} & {\tt values[12] = 0.9} \\ {\tt iRow[13] = 7} & {\tt jCol[13] = 7} & {\tt values[13] = 1.7} \end{tabular} \caption{Triplet Format of Matrix (\ref{eqn.ex_matrix}) with {\tt index\_style=FORTRAN\_STYLE}} \label{tab.fortran_triplet} \end{center} \end{table} \begin{table}[ht]%[!h] \begin{center} \begin{tabular}{c c c} row & col & value \\ \hline {\tt iRow[0] = 0} & {\tt jCol[0] = 0} & {\tt values[0] = 1.1} \\ {\tt iRow[1] = 0} & {\tt jCol[1] = 6} & {\tt values[1] = 0.5} \\ {\tt iRow[2] = 1} & {\tt jCol[2] = 1} & {\tt values[2] = 1.9} \\ {\tt iRow[3] = 1} & {\tt jCol[3] = 6} & {\tt values[3] = 0.5} \\ {\tt iRow[4] = 2} & {\tt jCol[4] = 2} & {\tt values[4] = 2.6} \\ {\tt iRow[5] = 2} & {\tt jCol[5] = 6} & {\tt values[5] = 0.5} \\ {\tt iRow[6] = 3} & {\tt jCol[6] = 2} & {\tt values[6] = 7.8} \\ {\tt iRow[7] = 3} & {\tt jCol[7] = 3} & {\tt values[7] = 0.6} \\ {\tt iRow[8] = 4} & {\tt jCol[8] = 3} & {\tt values[8] = 1.5} \\ {\tt iRow[9] = 4} & {\tt jCol[9] = 4} & {\tt values[9] = 2.7} \\ {\tt iRow[10] = 5} & {\tt jCol[10] = 0} & {\tt values[10] = 1.6} \\ {\tt iRow[11] = 5} & {\tt jCol[11] = 4} & {\tt values[11] = 0.4} \\ {\tt iRow[12] = 6} & {\tt jCol[12] = 5} & {\tt values[12] = 0.9} \\ {\tt iRow[13] = 6} & {\tt jCol[13] = 6} & {\tt values[13] = 1.7} \end{tabular} \caption{Triplet Format of Matrix (\ref{eqn.ex_matrix}) with {\tt index\_style=C\_STYLE}} \label{tab.c_triplet} \end{center} \end{table} \end{footnotesize} The individual elements of the matrix can be listed in any order, and if there are multiple items for the same nonzero position, the values provided for those positions are added. The Hessian of the Lagrangian is a symmetric matrix. In the case of a symmetric matrix, you only need to specify the lower left triangular part (or, alternatively, the upper right triangular part). For example, given the matrix, \begin{equation} \label{eqn.ex_sym_matrix} \left[ \begin{array}{ccccccc} 1.0 & 0 & 3.0 & 0 & 2.0 \\ 0 & 1.1 & 0 & 0 & 5.0 \\ 3.0 & 0 & 1.2 & 6.0 & 0 \\ 0 & 0 & 6.0 & 1.3 & 9.0 \\ 2.0 & 5.0 & 0 & 9.0 & 1.4 \end{array} \right] \end{equation} the triplet format is shown in Tables \ref{tab.sym_fortran_triplet} and \ref{tab.sym_c_triplet}. \begin{footnotesize} \begin{table}[ht]%[!h] \begin{center} \begin{tabular}{c c c} row & col & value \\ \hline {\tt iRow[0] = 1} & {\tt jCol[0] = 1} & {\tt values[0] = 1.0} \\ {\tt iRow[1] = 2} & {\tt jCol[1] = 1} & {\tt values[1] = 1.1} \\ {\tt iRow[2] = 3} & {\tt jCol[2] = 1} & {\tt values[2] = 3.0} \\ {\tt iRow[3] = 3} & {\tt jCol[3] = 3} & {\tt values[3] = 1.2} \\ {\tt iRow[4] = 4} & {\tt jCol[4] = 3} & {\tt values[4] = 6.0} \\ {\tt iRow[5] = 4} & {\tt jCol[5] = 4} & {\tt values[5] = 1.3} \\ {\tt iRow[6] = 5} & {\tt jCol[6] = 1} & {\tt values[6] = 2.0} \\ {\tt iRow[7] = 5} & {\tt jCol[7] = 2} & {\tt values[7] = 5.0} \\ {\tt iRow[8] = 5} & {\tt jCol[8] = 4} & {\tt values[8] = 9.0} \\ {\tt iRow[9] = 5} & {\tt jCol[9] = 5} & {\tt values[9] = 1.4} \end{tabular} \caption{Triplet Format of Matrix (\ref{eqn.ex_sym_matrix}) with {\tt index\_style=FORTRAN\_STYLE}} \label{tab.sym_fortran_triplet} \end{center} \end{table} \begin{table}[ht]%[!h] \begin{center} \begin{tabular}{c c c} row & col & value \\ \hline {\tt iRow[0] = 0} & {\tt jCol[0] = 0} & {\tt values[0] = 1.0} \\ {\tt iRow[1] = 1} & {\tt jCol[1] = 0} & {\tt values[1] = 1.1} \\ {\tt iRow[2] = 2} & {\tt jCol[2] = 0} & {\tt values[2] = 3.0} \\ {\tt iRow[3] = 2} & {\tt jCol[3] = 2} & {\tt values[3] = 1.2} \\ {\tt iRow[4] = 3} & {\tt jCol[4] = 2} & {\tt values[4] = 6.0} \\ {\tt iRow[5] = 3} & {\tt jCol[5] = 3} & {\tt values[5] = 1.3} \\ {\tt iRow[6] = 4} & {\tt jCol[6] = 0} & {\tt values[6] = 2.0} \\ {\tt iRow[7] = 4} & {\tt jCol[7] = 1} & {\tt values[7] = 5.0} \\ {\tt iRow[8] = 4} & {\tt jCol[8] = 3} & {\tt values[8] = 9.0} \\ {\tt iRow[9] = 4} & {\tt jCol[9] = 4} & {\tt values[9] = 1.4} \end{tabular} \caption{Triplet Format of Matrix (\ref{eqn.ex_sym_matrix}) with {\tt index\_style=C\_STYLE}} \label{tab.sym_c_triplet} \end{center} \end{table} \end{footnotesize} \section{The Smart Pointer Implementation: {\tt SmartPtr}} \label{app.smart_ptr} The {\tt SmartPtr} class is described in {\tt IpSmartPtr.hpp}. It is a template class that takes care of counting references to objects and deleting them when not references anymore. Instead of pointing to an object with a raw C++ pointer (e.g. {\tt HS071\_NLP*}), we use a {\tt SmartPtr}. Every time a {\tt SmartPtr} is set to reference an object, it increments a counter in that object (see the {\tt ReferencedObject} base class if you are interested). If a {\tt SmartPtr} is done with the object, either by leaving scope or being set to point to another object, the counter is decremented. When the count of the object goes to zero, the object is automatically deleted. {\tt SmartPtr}'s are very simple, just use them as you would use a standard pointer. It is very important to use {\tt SmartPtr}'s instead of raw pointers when passing objects to \Ipopt. Internally, \Ipopt uses smart pointers for referencing objects. If you use a raw pointer in your executable, the object's counter will NOT get incremented. Then, when \Ipopt uses smart pointers inside its own code, the counter will get incremented. However, before \Ipopt returns control to your code, it will decrement as many times as it incremented earlier, and the counter will return to zero. Therefore, \Ipopt will delete the object. When control returns to you, you now have a raw pointer that points to a deleted object. This might sound difficult to anyone not familiar with the use of smart pointers, but just follow one simple rule; always use a SmartPtr when creating or passing an \Ipopt object. \section{Options Reference} \label{app.options_ref} Options can be set using {\tt ipopt.opt}, through your own code, or through the AMPL {\tt ipopt\_options} command. See Section \ref{sec:options} for an explanation of how to use these commands. Shown here is a list of the most important options for \Ipopt. To view the full list of options, you can set the option \htmlref{\tt print\_options\_documentation}{opt:print_options_documentation} to {\tt yes} or simply run the \Ipopt AMPL solver executable as \begin{verbatim} ipopt --print-options \end{verbatim} Usually, option values are identical for the regular mode of \Ipopt and the restoration phase. However, to set an option value specifically for the restoration phase, the prefix ``\texttt{resto.}'' should be appended. For example, to set the acceptable tolerance for the restoration phase, use the keyword ``\texttt{resto.acceptable\_tol}''. \medskip \noindent The most common options are: \input{options.tex} \section{Options available via the AMPL Interface} The following is a list of options that is available via AMPL: \input{options_ampl.tex} %\bibliographystyle{plain} %\bibliography{/home/andreasw/tex/andreas} \input{documentation.bbl} \end{document} Ipopt-3.11.4/Ipopt/install-sh0000755000076600007660000002202111413700257014445 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/Ipopt/examples/0000755000076600007660000000000012214537465014273 5ustar coincoinIpopt-3.11.4/Ipopt/examples/ScalableProblems/0000755000076600007660000000000012214537465017505 5ustar coincoinIpopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek1.cpp0000644000076600007660000001572311573147064022523 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek1.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-127 #include "LuksanVlcek1.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; LuksanVlcek1::LuksanVlcek1(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek1::InitializeProblem(Index N) { N_=N; if (N_<=2) { printf("N needs to be at least 3.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek1::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek1.hpp has 4 variables, x[0] through x[3] n = N_; m = N_-2; nnz_jac_g = m*3; nnz_h_lag = n + n-1; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek1::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i0) { // x[i+1]x[i+1] values[ihes] += obj_factor*200.; if (i1) { // x[i+2]x[i+2] values[ihes] += lambda[i-2]*(- 2.*sin(x[i-1]-x[i])*sin(x[i-1]+x[i]) - 2.*cos(x[i-1]-x[i])*cos(x[i-1]+x[i])); } ihes++; if (i0) { // x[i+1],x[i+2] values[ihes] += lambda[i-1]*( sin(x[i]-x[i+1])*sin(x[i]+x[i+1]) + cos(x[i]-x[i+1])*cos(x[i]+x[i+1]) - cos(x[i]-x[i+1])*cos(x[i]+x[i+1]) - sin(x[i]-x[i+1])*sin(x[i]+x[i+1]) ); } */ ihes++; } } DBG_ASSERT(ihes == nele_hess); } return true; } void LuksanVlcek1::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) {} Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek3.hpp0000644000076600007660000001037511504216567022527 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek3.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-127 #ifndef __LUKSANVLCEK3_HPP__ #define __LUKSANVLCEK3_HPP__ #include "RegisteredTNLP.hpp" using namespace Ipopt; /** Implementation of Example 5.3 from "Sparse and Parially Separable * Test Problems for Unconstrained and Equality Constrained * Optimization" by L. Luksan and J. Vlcek. */ class LuksanVlcek3 : public RegisteredTNLP { public: /** Constructor. Here, g_l and g_u are the bounds for the * constraints. The original formulation is obtained by setting * g_l and g_u to zero. Using g_l #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannBndryCntrlNeumBase::MittelmannBndryCntrlNeumBase() : y_d_(NULL) {} MittelmannBndryCntrlNeumBase::~MittelmannBndryCntrlNeumBase() { delete [] y_d_; } void MittelmannBndryCntrlNeumBase::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number u_init) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; alpha_ = alpha; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; u_init_ = u_init; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)]; for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j)] = y_d_cont(x1_grid(i),x2_grid(j)); } } } bool MittelmannBndryCntrlNeumBase::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 mesh points we have the value // of the functions y, and for each 4*N_ boundary mesh points we // have values for u n = (N_+2)*(N_+2) + 4*N_; // For each of the N_ times N_ interior mesh points we have the // discretized PDE, and we have one constriant for each boundary // point (except for the corners) m = N_*N_ + 4*N_; // y(i,j), y(i-1,j), y(i+1,j), y(i,j-1), y(i,j+1) for each of the // N_*N_ discretized PDEs, and for the Neumann boundary conditions // we have entries for two y's and one u nnz_jac_g = 5*N_*N_ + 3*4*N_; // diagonal entry for each dydy, dudu, dydu in the interior nnz_h_lag = N_*N_; if (!b_cont_dydy_alwayszero()) { nnz_h_lag += 4*N_; } if (alpha_!=0.) { nnz_h_lag += 4*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannBndryCntrlNeumBase::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the y variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iy = y_index(i,j); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } // Set overall bounds on the u variables for (Index j=1; j<=N_; j++) { Index iu = u0j_index(j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index j=1; j<=N_; j++) { Index iu = u1j_index(j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index i=1; i<=N_; i++) { Index iu = ui0_index(i); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index i=1; i<=N_; i++) { Index iu = ui1_index(i); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } // There is no information for the y's at the corner points, so just // take those variables out x_l[y_index(0,0)] = x_u[y_index(0,0)] = 0.; x_l[y_index(0,N_+1)] = x_u[y_index(0,N_+1)] = 0.; x_l[y_index(N_+1,0)] = x_u[y_index(N_+1,0)] = 0.; x_l[y_index(N_+1,N_+1)] = x_u[y_index(N_+1,N_+1)] = 0.; // all discretized PDE constraints have right hand side zero for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for distributed control problems with homogeneous * Neumann boundary conditions, as formulated by Hans Mittelmann as * Examples 4-6 in "Optimization Techniques for Solving Elliptic * Control Problems with Control and State Constraints. Part 2: * Distributed Control" */ class MittelmannDistCntrlNeumABase : public RegisteredTNLP { public: /** Constructor. N is the number of mesh points in one dimension * (excluding boundary). */ MittelmannDistCntrlNeumABase(); /** Default destructor */ virtual ~MittelmannDistCntrlNeumABase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number b_0j, Number b_1j, Number b_i0, Number b_i1, Number u_init); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y (and initial guess function) */ virtual Number y_d_cont(Number x1, Number x2) const =0; /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const =0; /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const =0; /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const =0; /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of forcing function w.r.t. y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const =0; /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const =0; /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannDistCntrlNeumABase(const MittelmannDistCntrlNeumABase&); MittelmannDistCntrlNeumABase& operator=(const MittelmannDistCntrlNeumABase&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Value of beta function (in Neumann boundary condition) for * (0,x2) bounray */ Number b_0j_; /** Value of beta function (in Neumann boundary condition) for * (1,x2) bounray */ Number b_1j_; /** Value of beta function (in Neumann boundary condition) for * (x1,0) bounray */ Number b_i0_; /** Value of beta function (in Neumann boundary condition) for * (x1,1) bounray */ Number b_i1_; /** Initial value for the constrols u */ Number u_init_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index i, Index j) const { return j + (N_+2)*i; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) */ inline Index u_index(Index i, Index j) const { return (N_+2)*(N_+2) + (j-1) + (N_)*(i-1); } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j) const { return (j-1) + N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } //@} }; /** Class implementating Example 4 */ class MittelmannDistCntrlNeumA1 : public MittelmannDistCntrlNeumABase { public: MittelmannDistCntrlNeumA1() : pi_(4.*atan(1.)), alpha_(0.001) {} virtual ~MittelmannDistCntrlNeumA1() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = -1e20; Number ub_y = 0.371; Number lb_u = -8.; Number ub_u = 9.; Number b_0j = 1.; Number b_1j = 1.; Number b_i0 = 1.; Number b_i1 = 1.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { Number diff_y = y-y_d_cont(x1,x2); return 0.5*(diff_y*diff_y + alpha_*u*u); } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return y-y_d_cont(x1,x2); } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return alpha_*u; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return alpha_; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return true; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumA1(const MittelmannDistCntrlNeumA1&); MittelmannDistCntrlNeumA1& operator=(const MittelmannDistCntrlNeumA1&); //@} /** Value of pi (made available for convenience) */ const Number pi_; /** Value for parameter alpha in objective functin */ const Number alpha_; }; /** Class implementating Example 5 */ class MittelmannDistCntrlNeumA2 : public MittelmannDistCntrlNeumABase { public: MittelmannDistCntrlNeumA2() : pi_(4.*atan(1.)) {} virtual ~MittelmannDistCntrlNeumA2() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = -1e20; Number ub_y = 0.371; Number lb_u = -8.; Number ub_u = 9.; Number b_0j = 1.; Number b_1j = 1.; Number b_i0 = 1.; Number b_i1 = 1.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { Number diff_y = y-y_d_cont(x1,x2); return 0.5*diff_y*diff_y; } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return y-y_d_cont(x1,x2); } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return 0.; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return true; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumA2(const MittelmannDistCntrlNeumA2&); MittelmannDistCntrlNeumA2& operator=(const MittelmannDistCntrlNeumA2&); //@} /** Value of pi (made available for convenience) */ const Number pi_; }; /** Class implementating Example 6 */ class MittelmannDistCntrlNeumA3 : public MittelmannDistCntrlNeumABase { public: MittelmannDistCntrlNeumA3() : pi_(4.*atan(1.)), M_(1.), K_(0.8), b_(1.) {} virtual ~MittelmannDistCntrlNeumA3() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = 3.;//-1e20; Number ub_y = 6.09; Number lb_u = 1.4; Number ub_u = 1.6; Number b_0j = 1.; Number b_1j = 0.; Number b_i0 = 1.; Number b_i1 = 0.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Profile function for initial y */ virtual Number y_d_cont(Number x1, Number x2) const { return 6.; } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { return u*(M_*u - K_*y); } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return -K_*u; } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return 2.*M_*u - K_*y; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return true; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 2.*M_; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return -K_; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return false; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return y*(u + b_*y - a(x1,x2)); } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return (u + 2.*b_*y -a(x1,x2)); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return y; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 2.*b_; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return false; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumA3(const MittelmannDistCntrlNeumA3&); MittelmannDistCntrlNeumA3& operator=(const MittelmannDistCntrlNeumA3&); //@} /** Value of pi (made available for convenience) */ const Number pi_; /*@name constrants appearing in problem formulation */ //@{ const Number M_; const Number K_; const Number b_; //@} //* Auxiliary function for state equation */ inline Number a(Number x1, Number x2) const { return 7. + 4.*sin(2.*pi_*x1*x2); } }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannBndryCntrlDiri3Dsin.cpp0000644000076600007660000005514311573147064026043 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannBndryCntrlDiri3Dsin.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-18 // Olaf Schenk (Univ. of Basel) 2007-08-01 // modified MittelmannBndryCntrlDiri.cpp for 3-dim problem #include "MittelmannBndryCntrlDiri3Dsin.hpp" #ifdef HAVE_CASSERT # include #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannBndryCntrlDiriBase3Dsin::MittelmannBndryCntrlDiriBase3Dsin() : y_d_(NULL) {} MittelmannBndryCntrlDiriBase3Dsin::~MittelmannBndryCntrlDiriBase3Dsin() { delete [] y_d_; } void MittelmannBndryCntrlDiriBase3Dsin::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; d_const_ = d_const; alpha_ = alpha; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)*(N_+2)]; for (Index k=0; k<= N_+1; k++) { for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j,k)] = y_d_cont(x1_grid(i),x2_grid(j),x3_grid(k)); } } } } bool MittelmannBndryCntrlDiriBase3Dsin::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 times N_+2 mesh points we have // the value of the functions y, including the control parameters on // the boundary n = (N_+2)*(N_+2)*(N_+2); // For each of the N_ times N_ times N_ interior mesh points we have the // discretized PDE. m = N_*N_*N_; // y(i,j,k), y(i-1,j,k), y(i+1,j,k), y(i,j-1,k), y(i,j+1,k), // y(i-1,j,k-1), y(i,j,k+1) // of the N_*N_*N_ discretized PDEs nnz_jac_g = 7*N_*N_*N_; // diagonal entry for each y(i,j) in the interior nnz_h_lag = N_*N_*N_; if (alpha_>0.) { // and one entry for u(i,j) in the bundary if alpha is not zero nnz_h_lag += 21*6*N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannBndryCntrlDiriBase3Dsin::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the y variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iy = y_index(i,j,k); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } } // Set the overall 3Dsin bounds on the control variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,0); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,N_+1); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,0,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,N_+1,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(0,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(N_+1,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } #if 0 // The values of y on the corners doens't appear anywhere, so we fix // them to zero for (Index j=0; j<=N_+1; j++) { x_l[y_index(0,j,0)] = x_u[y_index(0,j,0)] = 0.; x_l[y_index(0,j,N_+1)] = x_u[y_index(0,j,N_+1)] = 0.; x_l[y_index(N_+1,j,0)] = x_u[y_index(N_+1,j,0)] = 0.; x_l[y_index(N_+1,j,N_+1)] = x_u[y_index(N_+1,j,N_+1)] = 0.; } for (Index k=0; k<=N_+1; k++) { x_l[y_index(0,0,k)] = x_u[y_index(0,0,k)] = 0.; x_l[y_index(0,N_+1,k)] = x_u[y_index(0,N_+1,k)] = 0.; x_l[y_index(N_+1,0,k)] = x_u[y_index(N_+1,0,k)] = 0.; x_l[y_index(N_+1,N_+1,k)] = x_u[y_index(N_+1,N_+1,k)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(i,0,0)] = x_u[y_index(i,0,0)] = 0.; x_l[y_index(i,0,N_+1)] = x_u[y_index(i,0,N_+1)] = 0.; x_l[y_index(i,N_+1,0)] = x_u[y_index(i,N_+1,0)] = 0.; x_l[y_index(i,N_+1,N_+1)] = x_u[y_index(i,N_+1,N_+1)] = 0.; } #endif // all discretized PDE constraints have right hand side equal to // minus the constant value of the function d for (Index i=0; i0.) { Number usum = 0.; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,j,0)] - x[y_index(i-1,j,0)] - x[y_index(i+1,j,0)] - x[y_index(i,j-1,0)] - x[y_index(i,j+1,0)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,j,N_+1)] - x[y_index(i-1,j,N_+1)] - x[y_index(i+1,j,N_+1)] - x[y_index(i,j-1,N_+1)] - x[y_index(i,j+1,N_+1)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(0,i,j)] - x[y_index(0,i-1,j)] - x[y_index(0,i+1,j)] - x[y_index(0,i,j-1)] - x[y_index(0,i,j+1)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(N_+1,i,j)] - x[y_index(N_+1,i-1,j)] - x[y_index(N_+1,i+1,j)] - x[y_index(N_+1,i,j-1)] - x[y_index(N_+1,i,j+1)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,0,j)] - x[y_index(i-1,0,j)] - x[y_index(i+1,0,j)] - x[y_index(i,0,j-1)] - x[y_index(i,0,j+1)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,N_+1,j)] - x[y_index(i-1,N_+1,j)] - x[y_index(i+1,N_+1,j)] - x[y_index(i,N_+1,j-1)] - x[y_index(i,N_+1,j+1)])/hh_; const Number sinD = sin(D) - 0.5; usum += sinD*sinD; } } obj_value += alpha_*h_/2.*usum; } return true; } bool MittelmannBndryCntrlDiriBase3Dsin::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // now let's take care of the nonzero values coming from the // integrant over the interior for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { Index iy = y_index(i,j,k); grad_f[iy] = hh_*(x[iy] - y_d_[iy]); } } } for (Index i=0; i<= N_+1; i++) { for (Index j=0; j<= N_+1; j++) { grad_f[y_index(i,j,0)] = 0.; } } for (Index i=0; i<= N_+1; i++) { for (Index j=0; j<= N_+1; j++) { grad_f[y_index(i,j,N_+1)] = 0.; } } for (Index k=0; k<= N_+1; k++) { for (Index j=0; j<= N_+1; j++) { grad_f[y_index(0,j,k)] = 0.; } } for (Index k=0; k<= N_+1; k++) { for (Index j=0; j<= N_+1; j++) { grad_f[y_index(N_+1,j,k)] = 0.; } } for (Index i=0; i<= N_+1; i++) { for (Index k=0; k<= N_+1; k++) { grad_f[y_index(i,0,k)] = 0.; } } for (Index i=0; i<= N_+1; i++) { for (Index k=0; k<= N_+1; k++) { grad_f[y_index(i,N_+1,k)] = 0.; } } // The values for variables on the boundary if (alpha_>0.) { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { const Number D = (4*x[y_index(i,j,0)] - x[y_index(i-1,j,0)] - x[y_index(i+1,j,0)] - x[y_index(i,j-1,0)] - x[y_index(i,j+1,0)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(i,j,0)] += 4.*FD; grad_f[y_index(i-1,j,0)] += -1.*FD; grad_f[y_index(i+1,j,0)] += -1.*FD; grad_f[y_index(i,j-1,0)] += -1.*FD; grad_f[y_index(i,j+1,0)] += -1.*FD; } } for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { const Number D = (4*x[y_index(i,j,N_+1)] - x[y_index(i-1,j,N_+1)] - x[y_index(i+1,j,N_+1)] - x[y_index(i,j-1,N_+1)] - x[y_index(i,j+1,N_+1)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(i,j,N_+1)] += 4.*FD; grad_f[y_index(i-1,j,N_+1)] += -1.*FD; grad_f[y_index(i+1,j,N_+1)] += -1.*FD; grad_f[y_index(i,j-1,N_+1)] += -1.*FD; grad_f[y_index(i,j+1,N_+1)] += -1.*FD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(0,i,j)] - x[y_index(0,i-1,j)] - x[y_index(0,i+1,j)] - x[y_index(0,i,j-1)] - x[y_index(0,i,j+1)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(0,i,j)] += 4.*FD; grad_f[y_index(0,i-1,j)] += -1.*FD; grad_f[y_index(0,i+1,j)] += -1.*FD; grad_f[y_index(0,i,j-1)] += -1.*FD; grad_f[y_index(0,i,j+1)] += -1.*FD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(N_+1,i,j)] - x[y_index(N_+1,i-1,j)] - x[y_index(N_+1,i+1,j)] - x[y_index(N_+1,i,j-1)] - x[y_index(N_+1,i,j+1)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(N_+1,i,j)] += 4.*FD; grad_f[y_index(N_+1,i-1,j)] += -1.*FD; grad_f[y_index(N_+1,i+1,j)] += -1.*FD; grad_f[y_index(N_+1,i,j-1)] += -1.*FD; grad_f[y_index(N_+1,i,j+1)] += -1.*FD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,0,j)] - x[y_index(i-1,0,j)] - x[y_index(i+1,0,j)] - x[y_index(i,0,j-1)] - x[y_index(i,0,j+1)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(i,0,j)] += 4.*FD; grad_f[y_index(i-1,0,j)] += -1.*FD; grad_f[y_index(i+1,0,j)] += -1.*FD; grad_f[y_index(i,0,j-1)] += -1.*FD; grad_f[y_index(i,0,j+1)] += -1.*FD; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { const Number D = (4*x[y_index(i,N_+1,j)] - x[y_index(i-1,N_+1,j)] - x[y_index(i+1,N_+1,j)] - x[y_index(i,N_+1,j-1)] - x[y_index(i,N_+1,j+1)])/hh_; const Number FD = alpha_*h_*(cos(D)*(sin(D) - 0.5)/hh_); grad_f[y_index(i,N_+1,j)] += 4.*FD; grad_f[y_index(i-1,N_+1,j)] += -1.*FD; grad_f[y_index(i+1,N_+1,j)] += -1.*FD; grad_f[y_index(i,N_+1,j-1)] += -1.*FD; grad_f[y_index(i,N_+1,j+1)] += -1.*FD; } } } return true; } bool MittelmannBndryCntrlDiriBase3Dsin::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) // compute the discretized PDE for each interior grid point Index ig = 0; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { for (Index k=1; k<=N_; k++) { Number val; // Start with the discretized Laplacian operator val = 6.* x[y_index(i,j,k)] - x[y_index(i-1,j,k)] - x[y_index(i+1,j,k)] - x[y_index(i,j-1,k)] - x[y_index(i,j+1,k)] - x[y_index(i,j,k-1)] - x[y_index(i,j,k+1)]; g[ig] = val; ig++; } } } DBG_ASSERT(ig==m); return true; } bool MittelmannBndryCntrlDiriBase3Dsin::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints Index ijac = 0; Index ig = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k); ijac++; // y(i-1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j,k); ijac++; // y(i+1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j,k); ijac++; // y(i,j-1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1,k); ijac++; // y(i,j+1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1,k); ijac++; // y(i,j,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k-1); ijac++; // y(i,j,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k+1); ijac++; ig++; } } } DBG_ASSERT(ijac==nele_jac); } else { // return the values of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i,j,k) values[ijac] = 6.; ijac++; // y(i-1,j,k) values[ijac] = -1.; ijac++; // y(i+1,j,k) values[ijac] = -1.; ijac++; // y(1,j-1,k) values[ijac] = -1.; ijac++; // y(1,j+1,k) values[ijac] = -1.; ijac++; // y(1,j,k-1) values[ijac] = -1.; ijac++; // y(1,j,k+1) values[ijac] = -1.; ijac++; } } } DBG_ASSERT(ijac==nele_jac); } return true; } inline static void hessstruct(Index* iRow, Index* jCol, Index ij, Index imj, Index ipj, Index ijm, Index ijp, Index& ihes) { //printf("ihes = %3d ij = %3d imj = %3d ipj = %3d ijm = %3d ijp = %3d\n",ihes,ij,imj,ipj,ijm,ijp); iRow[ihes] = ij; jCol[ihes] = ij; ihes++; Index firstidx = ij; iRow[ihes] = firstidx; jCol[ihes] = imj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ipj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijm; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijp; ihes++; iRow[ihes] = imj; jCol[ihes] = imj; ihes++; iRow[ihes] = ipj; jCol[ihes] = ipj; ihes++; iRow[ihes] = ijm; jCol[ihes] = ijm; ihes++; iRow[ihes] = ijp; jCol[ihes] = ijp; ihes++; firstidx = imj; //iRow[ihes] = firstidx; //jCol[ihes] = imj; //ihes++; iRow[ihes] = firstidx; jCol[ihes] = ipj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijm; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijp; ihes++; firstidx = ipj; iRow[ihes] = firstidx; jCol[ihes] = imj; ihes++; //iRow[ihes] = firstidx; //jCol[ihes] = ipj; //ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijm; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijp; ihes++; firstidx = ijm; iRow[ihes] = firstidx; jCol[ihes] = imj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ipj; ihes++; //iRow[ihes] = firstidx; //jCol[ihes] = ijm; //ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijp; ihes++; firstidx = ijp; iRow[ihes] = firstidx; jCol[ihes] = imj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ipj; ihes++; iRow[ihes] = firstidx; jCol[ihes] = ijm; ihes++; //iRow[ihes] = firstidx; //jCol[ihes] = ijp; //ihes++; } inline static void hessvals(const Number* x, Number* values, Index ij, Index imj, Index ipj, Index ijm, Index ijp, Index& ihes, Number hh_, Number fact) { //printf("ihes = %d\n",ihes); const Number D = (4*x[ij] - x[imj] - x[ipj] - x[ijm] - x[ijp])/hh_; const Number val = fact*(1. + 0.5*sin(D) -2.*sin(D)*sin(D)); values[ihes] = 16.*val; ihes++; for (Index i=0; i<4; i++) { values[ihes] = -4.*val; ihes++; } for (Index i=0; i<4; i++) { values[ihes] = val; ihes++; } for (Index i=0; i<12; i++) { values[ihes] = .5*val; ihes++; } } bool MittelmannBndryCntrlDiriBase3Dsin::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { iRow[ihes] = y_index(i,j,k); jCol[ihes] = y_index(i,j,k); ihes++; } } } if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { hessstruct(iRow, jCol, y_index (i,j,0), y_index (i-1,j,0), y_index (i+1,j,0), y_index (i,j-1,0), y_index (i,j+1,0), ihes); hessstruct(iRow, jCol, y_index (i,j,N_+1), y_index (i-1,j,N_+1), y_index (i+1,j,N_+1), y_index (i,j-1,N_+1), y_index (i,j+1,N_+1), ihes); hessstruct(iRow, jCol, y_index (0,i,j), y_index (0,i-1,j), y_index (0,i+1,j), y_index (0,i,j-1), y_index (0,i,j+1), ihes); hessstruct(iRow, jCol, y_index (N_+1,i,j), y_index (N_+1,i-1,j), y_index (N_+1,i+1,j), y_index (N_+1,i,j-1), y_index (N_+1,i,j+1), ihes); hessstruct(iRow, jCol, y_index (i,0,j), y_index (i-1,0,j), y_index (i+1,0,j), y_index (i,0,j-1), y_index (i,0,j+1), ihes); hessstruct(iRow, jCol, y_index (i,N_+1,j), y_index (i-1,N_+1,j), y_index (i+1,N_+1,j), y_index (i,N_+1,j-1), y_index (i,N_+1,j+1), ihes); } } } DBG_ASSERT(ihes==nele_hess); } else { // return the values Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // Contribution from the objective function values[ihes] = obj_factor*hh_; ihes++; } } } // Now the diagonal entries for u(i,j) if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { hessvals(x, values, y_index (i,j,0), y_index (i-1,j,0), y_index (i+1,j,0), y_index (i,j-1,0), y_index (i,j+1,0), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); hessvals(x, values, y_index (i,j,N_+1), y_index (i-1,j,N_+1), y_index (i+1,j,N_+1), y_index (i,j-1,N_+1), y_index (i,j+1,N_+1), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); hessvals(x, values, y_index (0,i,j), y_index (0,i-1,j), y_index (0,i+1,j), y_index (0,i,j-1), y_index (0,i,j+1), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); hessvals(x, values, y_index (N_+1,i,j), y_index (N_+1,i-1,j), y_index (N_+1,i+1,j), y_index (N_+1,i,j-1), y_index (N_+1,i,j+1), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); hessvals(x, values, y_index (i,0,j), y_index (i-1,0,j), y_index (i+1,0,j), y_index (i,0,j-1), y_index (i,0,j+1), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); hessvals(x, values, y_index (i,N_+1,j), y_index (i-1,N_+1,j), y_index (i+1,N_+1,j), y_index (i,N_+1,j-1), y_index (i,N_+1,j+1), ihes, hh_, obj_factor*alpha_*h_/(hh_*hh_)); } } } } return true; } void MittelmannBndryCntrlDiriBase3Dsin::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { /* FILE* fp = fopen("solution.txt", "w+"); for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { fprintf(fp, "y[%6d,%6d] = %15.8e\n", i, j, x[y_index(i,j)]); } } fclose(fp); */ } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannDistCntrlNeumB.hpp0000644000076600007660000005442111573147064025111 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannDistCntrlNeumB.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-18 // based on MyNLP.hpp #ifndef __MITTELMANNDISTRCNTRLNEUMB_HPP__ #define __MITTELMANNDISTRCNTRLNEUMB_HPP__ #include "IpTNLP.hpp" #include "RegisteredTNLP.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for distributed control problems with homogeneous * Neumann boundary conditions, as formulated by Hans Mittelmann as * Examples 4-6 in "Optimization Techniques for Solving Elliptic * Control Problems with Control and State Constraints. Part 2: * Distributed Control" */ class MittelmannDistCntrlNeumBBase : public RegisteredTNLP { public: /** Constructor. N is the number of mesh points in one dimension * (excluding boundary). */ MittelmannDistCntrlNeumBBase(); /** Default destructor */ virtual ~MittelmannDistCntrlNeumBBase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number b_0j, Number b_1j, Number b_i0, Number b_i1, Number u_init); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y (and initial guess function) */ virtual Number y_d_cont(Number x1, Number x2) const =0; /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const =0; /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const =0; /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const =0; /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of forcing function w.r.t. y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const =0; /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const =0; /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannDistCntrlNeumBBase(const MittelmannDistCntrlNeumBBase&); MittelmannDistCntrlNeumBBase& operator=(const MittelmannDistCntrlNeumBBase&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Value of beta function (in Neumann boundary condition) for * (0,x2) bounray */ Number b_0j_; /** Value of beta function (in Neumann boundary condition) for * (1,x2) bounray */ Number b_1j_; /** Value of beta function (in Neumann boundary condition) for * (x1,0) bounray */ Number b_i0_; /** Value of beta function (in Neumann boundary condition) for * (x1,1) bounray */ Number b_i1_; /** Initial value for the constrols u */ Number u_init_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index i, Index j) const { return j + (N_+2)*i; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) */ inline Index u_index(Index i, Index j) const { return (N_+2)*(N_+2) + (j-1) + (N_)*(i-1); } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j) const { return (j-1) + N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } //@} }; /** Class implementating Example 4 */ class MittelmannDistCntrlNeumB1 : public MittelmannDistCntrlNeumBBase { public: MittelmannDistCntrlNeumB1() : pi_(4.*atan(1.)), alpha_(0.001) {} virtual ~MittelmannDistCntrlNeumB1() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = -1e20; Number ub_y = 0.371; Number lb_u = -8.; Number ub_u = 9.; Number b_0j = 1.; Number b_1j = 1.; Number b_i0 = 1.; Number b_i1 = 1.; Number u_init = (ub_u + lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { Number diff_y = y-y_d_cont(x1,x2); return 0.5*(diff_y*diff_y + alpha_*u*u); } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return y-y_d_cont(x1,x2); } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return alpha_*u; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return alpha_; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return true; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumB1(const MittelmannDistCntrlNeumB1&); MittelmannDistCntrlNeumB1& operator=(const MittelmannDistCntrlNeumB1&); //@} /** Value of pi (made available for convenience) */ const Number pi_; /** Value for parameter alpha in objective functin */ const Number alpha_; }; /** Class implementating Example 5 */ class MittelmannDistCntrlNeumB2 : public MittelmannDistCntrlNeumBBase { public: MittelmannDistCntrlNeumB2() : pi_(4.*atan(1.)) {} virtual ~MittelmannDistCntrlNeumB2() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = -1e20; Number ub_y = 0.371; Number lb_u = -8.; Number ub_u = 9.; Number b_0j = 1.; Number b_1j = 1.; Number b_i0 = 1.; Number b_i1 = 1.; Number u_init = (ub_u + lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { Number diff_y = y-y_d_cont(x1,x2); return 0.5*diff_y*diff_y; } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return y-y_d_cont(x1,x2); } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return 0.; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return true; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumB2(const MittelmannDistCntrlNeumB2&); MittelmannDistCntrlNeumB2& operator=(const MittelmannDistCntrlNeumB2&); //@} /** Value of pi (made available for convenience) */ const Number pi_; }; /** Class implementating Example 6 */ class MittelmannDistCntrlNeumB3 : public MittelmannDistCntrlNeumBBase { public: MittelmannDistCntrlNeumB3() : pi_(4.*atan(1.)), M_(1.), K_(0.8), b_(1.) {} virtual ~MittelmannDistCntrlNeumB3() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number lb_y = 3.;//-1e20; Number ub_y = 6.09; Number lb_u = 1.4; Number ub_u = 1.6; Number b_0j = 1.; Number b_1j = 0.; Number b_i0 = 1.; Number b_i1 = 0.; Number u_init = (ub_u + lb_u)/2.; SetBaseParameters(N, lb_y, ub_y, lb_u, ub_u, b_0j, b_1j, b_i0, b_i1, u_init); return true; } protected: /** Profile function for initial y */ virtual Number y_d_cont(Number x1, Number x2) const { return 6.; } /** Integrant in objective function */ virtual Number fint_cont(Number x1, Number x2, Number y, Number u) const { return u*(M_*u - K_*y); } /** First partial derivative of fint_cont w.r.t. y */ virtual Number fint_cont_dy(Number x1, Number x2, Number y, Number u) const { return -K_*u; } /** First partial derivative of fint_cont w.r.t. u */ virtual Number fint_cont_du(Number x1, Number x2, Number y, Number u) const { return 2.*M_*u - K_*y; } /** Second partial derivative of fint_cont w.r.t. y,y */ virtual Number fint_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of fint_cont * w.r.t. y,y is always zero. */ virtual bool fint_cont_dydy_alwayszero() const { return true; } /** Second partial derivative of fint_cont w.r.t. u,u */ virtual Number fint_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 2.*M_; } /** returns true if second partial derivative of fint_cont * w.r.t. u,u is always zero. */ virtual bool fint_cont_dudu_alwayszero() const { return false; } /** Second partial derivative of fint_cont w.r.t. y,u */ virtual Number fint_cont_dydu(Number x1, Number x2, Number y, Number u) const { return -K_; } /** returns true if second partial derivative of fint_cont * w.r.t. y,u is always zero. */ virtual bool fint_cont_dydu_alwayszero() const { return false; } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return y*(u + b_*y - a(x1,x2)); } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return (u + 2.*b_*y -a(x1,x2)); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return y; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 2.*b_; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Second partial derivative of forcing function w.r.t. u,u */ virtual Number d_cont_dudu(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dudu_alwayszero() const { return true; } /** Second partial derivative of forcing function w.r.t. y,u */ virtual Number d_cont_dydu(Number x1, Number x2, Number y, Number u) const { return 1.; } /** returns true if second partial derivative of d_cont * w.r.t. y,u is always zero. */ virtual bool d_cont_dydu_alwayszero() const { return false; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlNeumB3(const MittelmannDistCntrlNeumB3&); MittelmannDistCntrlNeumB3& operator=(const MittelmannDistCntrlNeumB3&); //@} /** Value of pi (made available for convenience) */ const Number pi_; /*@name constrants appearing in problem formulation */ //@{ const Number M_; const Number K_; const Number b_; //@} //* Auxiliary function for state equation */ inline Number a(Number x1, Number x2) const { return 7. + 4.*sin(2.*pi_*x1*x2); } }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannDistCntrlDiri.cpp0000644000076600007660000002563611573147064024773 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannDistCntrlDiri.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #include "MittelmannDistCntrlDiri.hpp" #ifdef HAVE_CASSERT # include #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannDistCntrlDiriBase::MittelmannDistCntrlDiriBase() : y_d_(NULL) {} MittelmannDistCntrlDiriBase::~MittelmannDistCntrlDiriBase() { delete [] y_d_; } void MittelmannDistCntrlDiriBase::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number u_init) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; u_init_ = u_init; alpha_ = alpha; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)]; for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j)] = y_d_cont(x1_grid(i),x2_grid(j)); } } } bool MittelmannDistCntrlDiriBase::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 mesh points we have the value // of the functions y, and for each N_ tiems N_ interior mesh points // we have values for u n = (N_+2)*(N_+2) + N_*N_; // For each of the N_ times N_ interior mesh points we have the // discretized PDE. m = N_*N_; // y(i,j), y(i-1,j), y(i+1,j), y(i,j-1), y(i,j+1), u(i,j) for each // of the N_*N_ discretized PDEs nnz_jac_g = 6*N_*N_; // diagonal entry for each y(i,j) in the interior nnz_h_lag = N_*N_; if (alpha_>0.) { // and one entry for u(i,j) in the interior if alpha is not zero nnz_h_lag += N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannDistCntrlDiriBase::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iy = y_index(i,j); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = u_index(i,j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } // Define the boundary condition on y as bounds for (Index i=0; i<=N_+1; i++) { x_l[y_index(i,0)] = 0.; x_u[y_index(i,0)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(0,i)] = 0.; x_u[y_index(0,i)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(i,N_+1)] = 0.; x_u[y_index(i,N_+1)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(N_+1,i)] = 0.; x_u[y_index(N_+1,i)] = 0.; } // all discretized PDE constraints have right hand side zero for (Index i=0; i0.) { Number usum = 0.; for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = u_index(i,j); usum += x[iu]*x[iu]; } } obj_value += alpha_*hh_/2.*usum; } return true; } bool MittelmannDistCntrlDiriBase::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // The values are zero for variables on the boundary for (Index i=0; i<= N_+1; i++) { grad_f[y_index(i,0)] = 0.; } for (Index i=0; i<= N_+1; i++) { grad_f[y_index(i,N_+1)] = 0.; } for (Index j=1; j<= N_; j++) { grad_f[y_index(0,j)] = 0.; } for (Index j=1; j<= N_; j++) { grad_f[y_index(N_+1,j)] = 0.; } // now let's take care of the nonzero values for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { Index iy = y_index(i,j); grad_f[iy] = hh_*(x[iy] - y_d_[iy]); } } if (alpha_>0.) { for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = u_index(i,j); grad_f[iu] = alpha_*hh_*x[iu]; } } } else { for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = u_index(i,j); grad_f[iu] = 0.; } } } return true; } bool MittelmannDistCntrlDiriBase::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) // compute the discretized PDE for each interior grid point for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Number val; // Start with the discretized Laplacian operator val = 4.* x[y_index(i,j)] - x[y_index(i-1,j)] - x[y_index(i+1,j)] - x[y_index(i,j-1)] - x[y_index(i,j+1)]; // Add the forcing term (including the step size here) val += hh_*d_cont(x1_grid(i), x2_grid(j), x[y_index(i,j)], x[u_index(i,j)]); g[pde_index(i,j)] = val; } } return true; } bool MittelmannDistCntrlDiriBase::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { Index ig = pde_index(i,j); // y(i,j) iRow[ijac] = ig; jCol[ijac] = y_index(i,j); ijac++; // y(i-1,j) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j); ijac++; // y(i+1,j) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j); ijac++; // y(i,j-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1); ijac++; // y(i,j+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1); ijac++; // u(i,j) iRow[ijac] = ig; jCol[ijac] = u_index(i,j); ijac++; } } DBG_ASSERT(ijac==nele_jac); } else { // return the values of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // y(i,j) values[ijac] = 4. + hh_*d_cont_dy(x1_grid(i), x2_grid(j), x[y_index(i,j)], x[u_index(i,j)]); ijac++; // y(i-1,j) values[ijac] = -1.; ijac++; // y(i+1,j) values[ijac] = -1.; ijac++; // y(1,j-1) values[ijac] = -1.; ijac++; // y(1,j+1) values[ijac] = -1.; ijac++; // y(i,j) values[ijac] = hh_*d_cont_du(x1_grid(i), x2_grid(j), x[y_index(i,j)], x[u_index(i,j)]); ijac++; } } DBG_ASSERT(ijac==nele_jac); } return true; } bool MittelmannDistCntrlDiriBase::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { iRow[ihes] = y_index(i,j); jCol[ihes] = y_index(i,j); ihes++; } } if (alpha_>0.) { // Now the diagonal entries for u(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { iRow[ihes] = u_index(i,j); jCol[ihes] = u_index(i,j); ihes++; } } } DBG_ASSERT(ihes==nele_hess); } else { // return the values Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // Contribution from the objective function values[ihes] = obj_factor*hh_; // Contribution from the PDE constraint values[ihes] += lambda[pde_index(i,j)] * hh_ * d_cont_dydy(x1_grid(i), x2_grid(j), x[y_index(i,j)], x[u_index(i,j)]); ihes++; } } // Now the diagonal entries for u(i,j) if (alpha_>0.) { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // Contribution from the objective function values[ihes] = obj_factor*hh_*alpha_; ihes++; } } } } return true; } void MittelmannDistCntrlDiriBase::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { /* FILE* fp = fopen("solution.txt", "w+"); for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { fprintf(fp, "y[%6d,%6d] = %15.8e\n", i, j, x[y_index(i,j)]); } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { fprintf(fp, "u[%6d,%6d] = %15.8e\n", i, j ,x[u_index(i,j)]); } } fclose(fp); */ } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek2.cpp0000644000076600007660000001573511573147064022527 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek2.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-127 #include "LuksanVlcek2.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; LuksanVlcek2::LuksanVlcek2(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek2::InitializeProblem(Index N) { N_=N; if (N_<=13 || 2*(N_/2)!=N_) { printf("N needs to be at least 14 and even.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek2::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek2.hpp has 4 variables, x[0] // through x[3] n = N_+2; m = N_-7; nnz_jac_g = 25 + (m-5)*8; nnz_h_lag = n + N_ + 1; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek2::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannBndryCntrlDiriBase::MittelmannBndryCntrlDiriBase() : y_d_(NULL) {} MittelmannBndryCntrlDiriBase::~MittelmannBndryCntrlDiriBase() { delete [] y_d_; } void MittelmannBndryCntrlDiriBase::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; d_const_ = d_const; alpha_ = alpha; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)]; for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j)] = y_d_cont(x1_grid(i),x2_grid(j)); } } } bool MittelmannBndryCntrlDiriBase::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 mesh points we have the value // of the functions y, including the control parameters on the boundary n = (N_+2)*(N_+2); // For each of the N_ times N_ interior mesh points we have the // discretized PDE. m = N_*N_; // y(i,j), y(i-1,j), y(i+1,j), y(i,j-1), y(i,j+1) for each // of the N_*N_ discretized PDEs nnz_jac_g = 5*N_*N_; // diagonal entry for each y(i,j) in the interior nnz_h_lag = N_*N_; if (alpha_>0.) { // and one entry for u(i,j) in the bundary if alpha is not zero nnz_h_lag += 4*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannBndryCntrlDiriBase::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the y variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iy = y_index(i,j); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } // Set the overall bounds on the control variables for (Index i=1; i<=N_; i++) { Index iu = y_index(i,0); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index i=1; i<=N_; i++) { Index iu = y_index(i,N_+1); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } // The values of y on the corners doens't appear anywhere, so we fix // them to zero x_l[y_index(0,0)] = x_u[y_index(0,0)] = 0.; x_l[y_index(0,N_+1)] = x_u[y_index(0,N_+1)] = 0.; x_l[y_index(N_+1,0)] = x_u[y_index(N_+1,0)] = 0.; x_l[y_index(N_+1,N_+1)] = x_u[y_index(N_+1,N_+1)] = 0.; // all discretized PDE constraints have right hand side equal to // minus the constant value of the function d for (Index i=0; i0.) { Number usum = 0.; for (Index i=1; i<=N_; i++) { Index iu = y_index(i,0); usum += x[iu]*x[iu]; } for (Index i=1; i<=N_; i++) { Index iu = y_index(i,N_+1); usum += x[iu]*x[iu]; } for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j); usum += x[iu]*x[iu]; } for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j); usum += x[iu]*x[iu]; } obj_value += alpha_*h_/2.*usum; } return true; } bool MittelmannBndryCntrlDiriBase::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // now let's take care of the nonzero values coming from the // integrant over the interior for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { Index iy = y_index(i,j); grad_f[iy] = hh_*(x[iy] - y_d_[iy]); } } // The values for variables on the boundary if (alpha_>0.) { for (Index i=1; i<= N_; i++) { Index iu = y_index(i,0); grad_f[iu] = alpha_*h_*x[iu]; } for (Index i=1; i<= N_; i++) { Index iu = y_index(i,N_+1); grad_f[iu] = alpha_*h_*x[iu]; } for (Index j=1; j<= N_; j++) { Index iu = y_index(0,j); grad_f[iu] = alpha_*h_*x[iu]; } for (Index j=1; j<= N_; j++) { Index iu = y_index(N_+1,j); grad_f[iu] = alpha_*h_*x[iu]; } } else { for (Index i=1; i<= N_; i++) { grad_f[y_index(i,0)] = 0.; } for (Index i=1; i<= N_; i++) { grad_f[y_index(i,N_+1)] = 0.; } for (Index j=1; j<= N_; j++) { grad_f[y_index(0,j)] = 0.; } for (Index j=1; j<= N_; j++) { grad_f[y_index(N_+1,j)] = 0.; } } // Nothing on the corner points grad_f[y_index(0,0)] = 0.; grad_f[y_index(0,N_+1)] = 0.; grad_f[y_index(N_+1,0)] = 0.; grad_f[y_index(N_+1,N_+1)] = 0.; return true; } bool MittelmannBndryCntrlDiriBase::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) // compute the discretized PDE for each interior grid point Index ig = 0; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Number val; // Start with the discretized Laplacian operator val = 4.* x[y_index(i,j)] - x[y_index(i-1,j)] - x[y_index(i+1,j)] - x[y_index(i,j-1)] - x[y_index(i,j+1)]; g[ig] = val; ig++; } } DBG_ASSERT(ig==m); return true; } bool MittelmannBndryCntrlDiriBase::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints Index ijac = 0; Index ig = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // y(i,j) iRow[ijac] = ig; jCol[ijac] = y_index(i,j); ijac++; // y(i-1,j) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j); ijac++; // y(i+1,j) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j); ijac++; // y(i,j-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1); ijac++; // y(i,j+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1); ijac++; ig++; } } DBG_ASSERT(ijac==nele_jac); } else { // return the values of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // y(i,j) values[ijac] = 4.; ijac++; // y(i-1,j) values[ijac] = -1.; ijac++; // y(i+1,j) values[ijac] = -1.; ijac++; // y(1,j-1) values[ijac] = -1.; ijac++; // y(1,j+1) values[ijac] = -1.; ijac++; } } DBG_ASSERT(ijac==nele_jac); } return true; } bool MittelmannBndryCntrlDiriBase::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { iRow[ihes] = y_index(i,j); jCol[ihes] = y_index(i,j); ihes++; } } if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { Index iu = y_index(i,0); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } for (Index i=1; i<=N_; i++) { Index iu = y_index(i,N_+1); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } DBG_ASSERT(ihes==nele_hess); } else { // return the values Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { // Contribution from the objective function values[ihes] = obj_factor*hh_; ihes++; } } // Now the diagonal entries for u(i,j) if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { values[ihes] = obj_factor*h_*alpha_; ihes++; } for (Index i=1; i<=N_; i++) { values[ihes] = obj_factor*h_*alpha_; ihes++; } for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*h_*alpha_; ihes++; } for (Index i=1; i<=N_; i++) { values[ihes] = obj_factor*h_*alpha_; ihes++; } } } return true; } void MittelmannBndryCntrlDiriBase::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { /* FILE* fp = fopen("solution.txt", "w+"); for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { fprintf(fp, "y[%6d,%6d] = %15.8e\n", i, j, x[y_index(i,j)]); } } fclose(fp); */ } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek5.hpp0000644000076600007660000001037511504216567022531 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek5.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-127 #ifndef __LUKSANVLCEK5_HPP__ #define __LUKSANVLCEK5_HPP__ #include "RegisteredTNLP.hpp" using namespace Ipopt; /** Implementation of Example 5.5 from "Sparse and Parially Separable * Test Problems for Unconstrained and Equality Constrained * Optimization" by L. Luksan and J. Vlcek. */ class LuksanVlcek5 : public RegisteredTNLP { public: /** Constructor. Here, g_l and g_u are the bounds for the * constraints. The original formulation is obtained by setting * g_l and g_u to zero. Using g_l #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for boundary control problems with Dirichlet boundary * conditions, as formulated by Hans Mittelmann as Examples 1-4 in * "Optimization Techniques for Solving Elliptic Control Problems * with Control and State Constraints. Part 2: Boundary Control" * * Here, the control variables are identical to the values of y on * the boundary, and therefore we don't need any explicit * optimization variables for u. */ class MittelmannBndryCntrlDiriBase3Dsin : public RegisteredTNLP { public: /** Constructor. */ MittelmannBndryCntrlDiriBase3Dsin(); /** Default destructor */ virtual ~MittelmannBndryCntrlDiriBase3Dsin(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_valu, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannBndryCntrlDiriBase3Dsin(const MittelmannBndryCntrlDiriBase3Dsin&); MittelmannBndryCntrlDiriBase3Dsin& operator=(const MittelmannBndryCntrlDiriBase3Dsin&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Constant value of d appearing in elliptical equation */ Number d_const_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ijk) */ inline Index y_index(Index i, Index j, Index k) const { return k + (N_+2)*j + (N_+2)*(N_+2)*i; } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j, Index k) const { return (k-1) + N_*(j-1) + N_*N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x3 direction */ inline Number x3_grid(Index i) const { return h_*(Number)i; } //@} }; /** Class implementating Example 1 */ class MittelmannBndryCntrlDiri3Dsin : public MittelmannBndryCntrlDiriBase3Dsin { public: MittelmannBndryCntrlDiri3Dsin() {} virtual ~MittelmannBndryCntrlDiri3Dsin() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } printf("olaf N %d has to be at least 1.", N); Number alpha = 0.1; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)*x3*(x3-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri3Dsin(const MittelmannBndryCntrlDiri3Dsin&); MittelmannBndryCntrlDiri3Dsin& operator=(const MittelmannBndryCntrlDiri3Dsin&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek4.cpp0000644000076600007660000001630211573147064022520 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek4.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-127 #include "LuksanVlcek4.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; LuksanVlcek4::LuksanVlcek4(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek4::InitializeProblem(Index N) { N_=N; if (N_<=1 || 4*((N_+2)/4)!=N_+2) { printf("N needs to be at least 2 and N+2 needs to be a multiple of 4.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek4::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek4.hpp has 4 variables, x[0] through x[3] n = N_+2; m = N_-2; nnz_jac_g = 3 * m; nnz_h_lag = n + n-1; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek4::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannBndryCntrlDiriBase3D::MittelmannBndryCntrlDiriBase3D() : y_d_(NULL) {} MittelmannBndryCntrlDiriBase3D::~MittelmannBndryCntrlDiriBase3D() { delete [] y_d_; } void MittelmannBndryCntrlDiriBase3D::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const, Number B, Number C) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; hhh_ = hh_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; d_const_ = d_const; alpha_ = alpha; B_ = B; C_ = C; PenA_ = 1.5 - 1.125*C_/B_; PenB_ = 1.75*C_/pow(B_,3) - 1.5/(B_*B_); PenC_ = 0.5/pow(B_,4) - 0.625*C_/pow(B_,5); // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)*(N_+2)]; for (Index k=0; k<= N_+1; k++) { for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j,k)] = y_d_cont(x1_grid(i),x2_grid(j),x3_grid(k)); } } } } bool MittelmannBndryCntrlDiriBase3D::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 times N_+2 mesh points we have // the value of the functions y, including the control parameters on // the boundary n = (N_+2)*(N_+2)*(N_+2); // For each of the N_ times N_ times N_ interior mesh points we have the // discretized PDE. m = N_*N_*N_; // y(i,j,k), y(i-1,j,k), y(i+1,j,k), y(i,j-1,k), y(i,j+1,k), // y(i-1,j,k-1), y(i,j,k+1) // of the N_*N_*N_ discretized PDEs nnz_jac_g = 7*N_*N_*N_; // diagonal entry for each y(i,j) in the interior nnz_h_lag = N_*N_*N_; if (alpha_>0.) { // and one entry for u(i,j) in the bundary if alpha is not zero nnz_h_lag += 6*N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannBndryCntrlDiriBase3D::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the y variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iy = y_index(i,j,k); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } } // Set the overall 3D bounds on the control variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,0); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,N_+1); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,0,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,N_+1,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(0,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(N_+1,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } // The values of y on the corners doens't appear anywhere, so we fix // them to zero for (Index j=0; j<=N_+1; j++) { x_l[y_index(0,j,0)] = x_u[y_index(0,j,0)] = 0.; x_l[y_index(0,j,N_+1)] = x_u[y_index(0,j,N_+1)] = 0.; x_l[y_index(N_+1,j,0)] = x_u[y_index(N_+1,j,0)] = 0.; x_l[y_index(N_+1,j,N_+1)] = x_u[y_index(N_+1,j,N_+1)] = 0.; } for (Index k=0; k<=N_+1; k++) { x_l[y_index(0,0,k)] = x_u[y_index(0,0,k)] = 0.; x_l[y_index(0,N_+1,k)] = x_u[y_index(0,N_+1,k)] = 0.; x_l[y_index(N_+1,0,k)] = x_u[y_index(N_+1,0,k)] = 0.; x_l[y_index(N_+1,N_+1,k)] = x_u[y_index(N_+1,N_+1,k)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(i,0,0)] = x_u[y_index(i,0,0)] = 0.; x_l[y_index(i,0,N_+1)] = x_u[y_index(i,0,N_+1)] = 0.; x_l[y_index(i,N_+1,0)] = x_u[y_index(i,N_+1,0)] = 0.; x_l[y_index(i,N_+1,N_+1)] = x_u[y_index(i,N_+1,N_+1)] = 0.; } // all discretized PDE constraints have right hand side equal to // minus the constant value of the function d for (Index i=0; i0.) { Number usum = 0.; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,0); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,N_+1); usum += x[iu]*x[iu]; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j,k); usum += x[iu]*x[iu]; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j,k); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,0,k); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,N_+1,k); usum += x[iu]*x[iu]; } } obj_value += alpha_*hh_*0.5*usum; } return true; } bool MittelmannBndryCntrlDiriBase3D::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // now let's take care of the nonzero values coming from the // integrant over the interior for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { Index iy = y_index(i,j,k); grad_f[iy] = hhh_*PenObj_1(x[iy] - y_d_[iy]); } } } // The values for variables on the boundary if (alpha_>0.) { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(i,j,0); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(i,j,N_+1); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(0,j,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(N_+1,j,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { Index iu = y_index(i,0,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { Index iu = y_index(i,N_+1,k); grad_f[iu] = alpha_*hh_*x[iu]; } } } else { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(i,j,0)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(i,j,N_+1)] = 0.; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(0,j,k)] = 0.; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(N_+1,j,k)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { grad_f[y_index(i,0,k)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { grad_f[y_index(i,N_+1,k)] = 0.; } } } // Nothing on the corner points for (Index i=0; i<= N_+1; i++) { grad_f[y_index(i,0 ,0 )] = 0.; grad_f[y_index(i,0 ,N_+1)] = 0.; grad_f[y_index(i,N_+1,0 )] = 0.; grad_f[y_index(i,N_+1,N_+1)] = 0.; } for (Index j=0; j<= N_+1; j++) { grad_f[y_index(0, j,0 )] = 0.; grad_f[y_index(N_+1,j,0 )] = 0.; grad_f[y_index(0, j,N_+1)] = 0.; grad_f[y_index(N_+1,j,N_+1)] = 0.; } for (Index k=0; k<= N_+1; k++) { grad_f[y_index(0, 0, k)] = 0.; grad_f[y_index(N_+1,0, k)] = 0.; grad_f[y_index(0, N_+1,k)] = 0.; grad_f[y_index(N_+1,N_+1,k)] = 0.; } return true; } bool MittelmannBndryCntrlDiriBase3D::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) // compute the discretized PDE for each interior grid point Index ig = 0; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { for (Index k=1; k<=N_; k++) { Number val; // Start with the discretized Laplacian operator val = 6.* x[y_index(i,j,k)] - x[y_index(i-1,j,k)] - x[y_index(i+1,j,k)] - x[y_index(i,j-1,k)] - x[y_index(i,j+1,k)] - x[y_index(i,j,k-1)] - x[y_index(i,j,k+1)]; g[ig] = val; ig++; } } } DBG_ASSERT(ig==m); return true; } bool MittelmannBndryCntrlDiriBase3D::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints Index ijac = 0; Index ig = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k); ijac++; // y(i-1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j,k); ijac++; // y(i+1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j,k); ijac++; // y(i,j-1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1,k); ijac++; // y(i,j+1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1,k); ijac++; // y(i,j,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k-1); ijac++; // y(i,j,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k+1); ijac++; ig++; } } } DBG_ASSERT(ijac==nele_jac); } else { // return the values of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i,j,k) values[ijac] = 6.; ijac++; // y(i-1,j,k) values[ijac] = -1.; ijac++; // y(i+1,j,k) values[ijac] = -1.; ijac++; // y(1,j-1,k) values[ijac] = -1.; ijac++; // y(1,j+1,k) values[ijac] = -1.; ijac++; // y(1,j,k-1) values[ijac] = -1.; ijac++; // y(1,j,k+1) values[ijac] = -1.; ijac++; } } } DBG_ASSERT(ijac==nele_jac); } return true; } bool MittelmannBndryCntrlDiriBase3D::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { iRow[ihes] = y_index(i,j,k); jCol[ihes] = y_index(i,j,k); ihes++; } } } if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,0); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,N_+1); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,0,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,N_+1,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } } DBG_ASSERT(ihes==nele_hess); } else { // return the values Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // Contribution from the objective function Index iy = y_index(i,j,k); values[ihes] = obj_factor*hhh_*PenObj_2(x[iy] - y_d_[iy]); ihes++; } } } // Now the diagonal entries for u(i,j) if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } } } return true; } void MittelmannBndryCntrlDiriBase3D::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { /* FILE* fp = fopen("solution.txt", "w+"); for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { fprintf(fp, "y[%6d,%6d] = %15.8e\n", i, j, x[y_index(i,j)]); } } fclose(fp); */ } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek7.hpp0000644000076600007660000001037511504216567022533 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek7.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-127 #ifndef __LUKSANVLCEK7_HPP__ #define __LUKSANVLCEK7_HPP__ #include "RegisteredTNLP.hpp" using namespace Ipopt; /** Implementation of Example 5.7 from "Sparse and Parially Separable * Test Problems for Unconstrained and Equality Constrained * Optimization" by L. Luksan and J. Vlcek. */ class LuksanVlcek7 : public RegisteredTNLP { public: /** Constructor. Here, g_l and g_u are the bounds for the * constraints. The original formulation is obtained by setting * g_l and g_u to zero. Using g_l #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for distributed control problems with Dirichlet * boundary conditions, as formulated by Hans Mittelmann as Examples * 1-3 in "Optimization Techniques for Solving Elliptic Control * Problems with Control and State Constraints. Part 2: Distributed * Control" */ class MittelmannDistCntrlDiriBase : public RegisteredTNLP { public: /** Constructor. N is the number of mesh points in one dimension * (excluding boundary). */ MittelmannDistCntrlDiriBase(); /** Default destructor */ virtual ~MittelmannDistCntrlDiriBase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number u_init); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const =0; /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of forcing function w.r.t. y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannDistCntrlDiriBase(const MittelmannDistCntrlDiriBase&); MittelmannDistCntrlDiriBase& operator=(const MittelmannDistCntrlDiriBase&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Initial value for the constrols u */ Number u_init_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index i, Index j) const { return j + (N_+2)*i; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) */ inline Index u_index(Index i, Index j) const { return (N_+2)*(N_+2) + (j-1) + (N_)*(i-1); } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j) const { return (j-1) + N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } //@} }; /** Class implementating Example 1 */ class MittelmannDistCntrlDiri1 : public MittelmannDistCntrlDiriBase { public: MittelmannDistCntrlDiri1() {} virtual ~MittelmannDistCntrlDiri1() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.001; Number lb_y = -1e20; Number ub_y = 0.185; Number lb_u = 1.5; Number ub_u = 4.5; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 1. + 2.*(x1*(x1-1.)+x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return pow(y,3) - y - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return 3.*y*y - 1.; } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 6.*y; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlDiri1(const MittelmannDistCntrlDiri1&); MittelmannDistCntrlDiri1& operator=(const MittelmannDistCntrlDiri1&); //@} }; /** Class implementating Example 2 */ class MittelmannDistCntrlDiri2 : public MittelmannDistCntrlDiriBase { public: MittelmannDistCntrlDiri2() {} virtual ~MittelmannDistCntrlDiri2() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 0.185; Number lb_u = 1.5; Number ub_u = 4.5; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 1. + 2.*(x1*(x1-1.)+x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return pow(y,3) - y - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return 3.*y*y - 1.; } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 6.*y; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlDiri2(const MittelmannDistCntrlDiri2&); MittelmannDistCntrlDiri2& operator=(const MittelmannDistCntrlDiri2&); //@} }; /** Class implementating Example 3 */ class MittelmannDistCntrlDiri3 : public MittelmannDistCntrlDiriBase { public: MittelmannDistCntrlDiri3() : pi_(4.*atan(1.)) {} virtual ~MittelmannDistCntrlDiri3() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.001; Number lb_y = -1e20; Number ub_y = 0.11; Number lb_u = -5; Number ub_u = 5.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlDiri3(const MittelmannDistCntrlDiri3&); MittelmannDistCntrlDiri3& operator=(const MittelmannDistCntrlDiri3&); //@} /** Value of pi (made available for convenience) */ const Number pi_; }; class MittelmannDistCntrlDiri3a : public MittelmannDistCntrlDiriBase { public: MittelmannDistCntrlDiri3a() : pi_(4.*atan(1.)) {} virtual ~MittelmannDistCntrlDiri3a() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 0.11; Number lb_u = -5; Number ub_u = 5.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return sin(2.*pi_*x1)*sin(2.*pi_*x2); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y, Number u) const { return -exp(y) - u; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } /** First partial derivative of forcing function w.r.t. u */ virtual Number d_cont_du(Number x1, Number x2, Number y, Number u) const { return -1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -exp(y); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannDistCntrlDiri3a(const MittelmannDistCntrlDiri3a&); MittelmannDistCntrlDiri3a& operator=(const MittelmannDistCntrlDiri3a&); //@} /** Value of pi (made available for convenience) */ const Number pi_; }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannDistCntrlNeumB.cpp0000644000076600007660000003735311573147064025111 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannDistCntrlNeumB.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #include "MittelmannDistCntrlNeumB.hpp" #ifdef HAVE_CASSERT # include #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannDistCntrlNeumBBase::MittelmannDistCntrlNeumBBase() : y_d_(NULL) {} MittelmannDistCntrlNeumBBase::~MittelmannDistCntrlNeumBBase() { delete [] y_d_; } void MittelmannDistCntrlNeumBBase::SetBaseParameters(Index N, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number b_0j, Number b_1j, Number b_i0, Number b_i1, Number u_init) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; b_0j_ = b_0j; b_1j_ = b_1j; b_i0_ = b_i0; b_i1_ = b_i1; u_init_ = u_init; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)]; for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j)] = y_d_cont(x1_grid(i),x2_grid(j)); } } } bool MittelmannDistCntrlNeumBBase::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 mesh points we have the value // of the functions y, and for each N_ times N_ interior mesh points // we have values for u n = (N_+2)*(N_+2) + N_*N_; // For each of the N_ times N_ interior mesh points we have the // discretized PDE, and we have one constriant for each boundary // point (except for the corners) m = N_*N_ + 4*N_; // y(i,j), y(i-1,j), y(i+1,j), y(i,j-1), y(i,j+1), u(i,j) for each // of the N_*N_ discretized PDEs, and for the Neumann boundary // conditions nnz_jac_g = 6*N_*N_ + 8*N_; // diagonal entry for each dydy, dudu, dydu in the interior nnz_h_lag = 0; if (!fint_cont_dydy_alwayszero() || !d_cont_dydy_alwayszero()) { nnz_h_lag += N_*N_; } if (!fint_cont_dudu_alwayszero() || !d_cont_dudu_alwayszero()) { nnz_h_lag += N_*N_; } if (!fint_cont_dydu_alwayszero() || !d_cont_dydu_alwayszero()) { nnz_h_lag += N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannDistCntrlNeumBBase::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iy = y_index(i,j); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = u_index(i,j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } // There is no information for the y's at the corner points, so just // take those variables out x_l[y_index(0,0)] = x_u[y_index(0,0)] = 0.; x_l[y_index(0,N_+1)] = x_u[y_index(0,N_+1)] = 0.; x_l[y_index(N_+1,0)] = x_u[y_index(N_+1,0)] = 0.; x_l[y_index(N_+1,N_+1)] = x_u[y_index(N_+1,N_+1)] = 0.; // all discretized PDE constraints have right hand side zero for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for boundary control problems with Dirichlet boundary * conditions, as formulated by Hans Mittelmann as Examples 1-4 in * "Optimization Techniques for Solving Elliptic Control Problems * with Control and State Constraints. Part 2: Boundary Control" * * Here, the control variables are identical to the values of y on * the boundary, and therefore we don't need any explicit * optimization variables for u. */ class MittelmannBndryCntrlDiriBase : public RegisteredTNLP { public: /** Constructor. */ MittelmannBndryCntrlDiriBase(); /** Default destructor */ virtual ~MittelmannBndryCntrlDiriBase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_valu, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannBndryCntrlDiriBase(const MittelmannBndryCntrlDiriBase&); MittelmannBndryCntrlDiriBase& operator=(const MittelmannBndryCntrlDiriBase&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Constant value of d appearing in elliptical equation */ Number d_const_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index i, Index j) const { return j + (N_+2)*i; } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j) const { return (j-1) + N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } //@} }; /** Class implementating Example 1 */ class MittelmannBndryCntrlDiri1 : public MittelmannBndryCntrlDiriBase { public: MittelmannBndryCntrlDiri1() {} virtual ~MittelmannBndryCntrlDiri1() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.01; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri1(const MittelmannBndryCntrlDiri1&); MittelmannBndryCntrlDiri1& operator=(const MittelmannBndryCntrlDiri1&); //@} }; /** Class implementating Example 2 */ class MittelmannBndryCntrlDiri2 : public MittelmannBndryCntrlDiriBase { public: MittelmannBndryCntrlDiri2() {} virtual ~MittelmannBndryCntrlDiri2() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri2(const MittelmannBndryCntrlDiri2&); MittelmannBndryCntrlDiri2& operator=(const MittelmannBndryCntrlDiri2&); //@} }; /** Class implementating Example 3 */ class MittelmannBndryCntrlDiri3 : public MittelmannBndryCntrlDiriBase { public: MittelmannBndryCntrlDiri3() {} virtual ~MittelmannBndryCntrlDiri3() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.01; Number lb_y = -1e20; Number ub_y = 3.2; Number lb_u = 1.6; Number ub_u = 2.3; Number d_const = -20.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri3(const MittelmannBndryCntrlDiri3&); MittelmannBndryCntrlDiri3& operator=(const MittelmannBndryCntrlDiri3&); //@} }; /** Class implementating Example 4 */ class MittelmannBndryCntrlDiri4 : public MittelmannBndryCntrlDiriBase { public: MittelmannBndryCntrlDiri4() {} virtual ~MittelmannBndryCntrlDiri4() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 3.2; Number lb_u = 1.6; Number ub_u = 2.3; Number d_const = -20.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri4(const MittelmannBndryCntrlDiri4&); MittelmannBndryCntrlDiri4& operator=(const MittelmannBndryCntrlDiri4&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannBndryCntrlDiri3D_27.hpp0000644000076600007660000002521311573147064025641 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannBndryCntrlDiri3D_27.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Olaf Schenk (Univ. of Basel) 2007-08-01 // modified MittelmannBndryCntrlDiri.hpp for 3-dim problem // based on MyNLP.hpp #ifndef __MITTELMANNBNDRYCNTRLDIRI3D_27_HPP__ #define __MITTELMANNBNDRYCNTRLDIRI3D_27_HPP__ #include "RegisteredTNLP.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for boundary control problems with Dirichlet boundary * conditions, as formulated by Hans Mittelmann as Examples 1-4 in * "Optimization Techniques for Solving Elliptic Control Problems * with Control and State Constraints. Part 2: Boundary Control" * * Here, the control variables are identical to the values of y on * the boundary, and therefore we don't need any explicit * optimization variables for u. */ class MittelmannBndryCntrlDiriBase3D_27 : public RegisteredTNLP { public: /** Constructor. */ MittelmannBndryCntrlDiriBase3D_27(); /** Default destructor */ virtual ~MittelmannBndryCntrlDiriBase3D_27(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_valu, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const, Number B, Number C); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannBndryCntrlDiriBase3D_27(const MittelmannBndryCntrlDiriBase3D_27&); MittelmannBndryCntrlDiriBase3D_27& operator=(const MittelmannBndryCntrlDiriBase3D_27&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squared */ Number hh_; /** h_ to the third power */ Number hhh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Constant value of d appearing in elliptical equation */ Number d_const_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ijk) */ inline Index y_index(Index i, Index j, Index k) const { return k + (N_+2)*j + (N_+2)*(N_+2)*i; } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j, Index k) const { return (k-1) + N_*(j-1) + N_*N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x3 direction */ inline Number x3_grid(Index i) const { return h_*(Number)i; } /** value of penalty function term */ inline Number PenObj(Number t) const { if (B_ == 0.) { return 0.5*t*t; } else if (t > B_) { return B_*B_/2. + C_*(t - B_); } else if (t < -B_) { return B_*B_/2. + C_*(-t - B_); } else { const Number t2 = t*t; const Number t4 = t2*t2; const Number t6 = t4*t2; return PenA_*t2 + PenB_*t4 + PenC_*t6; } } /** first derivative of penalty function term */ inline Number PenObj_1(Number t) const { if (B_ == 0.) { return t; } else if (t > B_) { return C_; } else if (t < -B_) { return -C_; } else { const Number t2 = t*t; const Number t3 = t*t2; const Number t5 = t3*t2; return 2.*PenA_*t + 4.*PenB_*t3 + 6.*PenC_*t5; } } /** second derivative of penalty function term */ inline Number PenObj_2(Number t) const { if (B_ == 0.) { return 1.; } else if (t > B_) { return 0.; } else if (t < -B_) { return 0.; } else { const Number t2 = t*t; const Number t4 = t2*t2; return 2.*PenA_ + 12.*PenB_*t2 + 30.*PenC_*t4; } } //@} /** @name Data for penalty function term */ //@{ Number B_; Number C_; Number PenA_; Number PenB_; Number PenC_; //@} }; /** Class implementating case with convex quadratic penalty function */ class MittelmannBndryCntrlDiri3D_27 : public MittelmannBndryCntrlDiriBase3D_27 { public: MittelmannBndryCntrlDiri3D_27() {} virtual ~MittelmannBndryCntrlDiri3D_27() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 1e-2; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; Number B = 0.; // convex case (quadratic penalty) Number C = 0.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const, B, C); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri3D_27(const MittelmannBndryCntrlDiri3D_27&); MittelmannBndryCntrlDiri3D_27& operator=(const MittelmannBndryCntrlDiri3D_27&); //@} }; /** Class implementating case with nonconvex Beaton-Tukey like penalty function */ class MittelmannBndryCntrlDiri3D_27BT : public MittelmannBndryCntrlDiriBase3D_27 { public: MittelmannBndryCntrlDiri3D_27BT() {} virtual ~MittelmannBndryCntrlDiri3D_27BT() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 1e-2; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; Number B = .25; // nonconves case with beaton-tukey-type penalty function Number C = 0.01; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const, B, C); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri3D_27BT(const MittelmannBndryCntrlDiri3D_27BT&); MittelmannBndryCntrlDiri3D_27BT& operator=(const MittelmannBndryCntrlDiri3D_27BT&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/RegisteredTNLP.cpp0000644000076600007660000000235211504216567023004 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: RegisteredTNLP.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-20 #include "RegisteredTNLP.hpp" #include std::map >& RegisteredTNLPListMap() { static std::map > tnlp_map_; return tnlp_map_; } void RegisteredTNLPs::RegisterTNLP(const SmartPtr& tnlp, const std::string name) { RegisteredTNLPListMap()[name] = GetRawPtr(tnlp); } SmartPtr RegisteredTNLPs::GetTNLP(const std::string name) { SmartPtr retval = NULL; std::map >::iterator it; it = RegisteredTNLPListMap().find(name); if (it != RegisteredTNLPListMap().end()) { retval = it->second; } return retval; } void RegisteredTNLPs::PrintRegisteredProblems() { for (std::map >::iterator it = RegisteredTNLPListMap().begin(); it != RegisteredTNLPListMap().end(); it++) { printf("%s\n", it->first.c_str()); } } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/Makefile.in0000644000076600007660000000761011576071414021553 0ustar coincoin# Copyright (C) 2005, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 2016 2011-06-15 08:53:32Z stefan $ # Directory to the sources for the (example) problem definition files SRCDIR = @srcdir@ VPATH = @srcdir@ # Compiler and options CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ # Archiver for C++ object files (e.g., needed to build a library on AIX to # avoid multiply defined symbols for templates) CXXAR = @CXXAR@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) -I. -DHAVE_CONFIG_H @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) -I. -DHAVE_CONFIG_H LIB = libscalexamples.@LIBEXT@ # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = $(LIB) `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = $(LIB) -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = $(LIB) -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ # Name of the executable EXE = solve_problem@EXEEXT@ # List of all object files MAINOBJ = solve_problem.@OBJEXT@ # List of all object files LIBOBJS = \ MittelmannDistCntrlNeumA.@OBJEXT@ \ MittelmannDistCntrlNeumB.@OBJEXT@ \ MittelmannDistCntrlDiri.@OBJEXT@ \ MittelmannBndryCntrlDiri.@OBJEXT@ \ MittelmannBndryCntrlDiri3D.@OBJEXT@ \ MittelmannBndryCntrlDiri3D_27.@OBJEXT@ \ MittelmannBndryCntrlDiri3Dsin.@OBJEXT@ \ MittelmannBndryCntrlNeum.@OBJEXT@ \ LuksanVlcek1.@OBJEXT@ \ LuksanVlcek2.@OBJEXT@ \ LuksanVlcek3.@OBJEXT@ \ LuksanVlcek4.@OBJEXT@ \ LuksanVlcek5.@OBJEXT@ \ LuksanVlcek6.@OBJEXT@ \ LuksanVlcek7.@OBJEXT@ \ RegisteredTNLP.@OBJEXT@ all: $(EXE) # Dependencies LuksanVlcek1.@OBJEXT@ : LuksanVlcek1.hpp LuksanVlcek2.@OBJEXT@ : LuksanVlcek2.hpp LuksanVlcek3.@OBJEXT@ : LuksanVlcek3.hpp LuksanVlcek4.@OBJEXT@ : LuksanVlcek4.hpp LuksanVlcek5.@OBJEXT@ : LuksanVlcek5.hpp LuksanVlcek6.@OBJEXT@ : LuksanVlcek6.hpp LuksanVlcek7.@OBJEXT@ : LuksanVlcek7.hpp MittelmannDistCntrlNeumA.@OBJEXT@: MittelmannDistCntrlNeumA.hpp MittelmannDistCntrlNeumB.@OBJEXT@: MittelmannDistCntrlNeumB.hpp MittelmannDistCntrlDiri.@OBJEXT@: MittelmannDistCntrlDiri.hpp MittelmannBndryCntrlDiri.@OBJEXT@: MittelmannBndryCntrlDiri.hpp MittelmannBndryCntrlDiri3D.@OBJEXT@: MittelmannBndryCntrlDiri3D.hpp MittelmannBndryCntrlDiri3D_27.@OBJEXT@: MittelmannBndryCntrlDiri3D_27.hpp MittelmannBndryCntrlDiri3Dsin.@OBJEXT@: MittelmannBndryCntrlDiri3Dsin.hpp MittelmannBndryCntrlNeum.@OBJEXT@: MittelmannBndryCntrlNeum.hpp solve_problem.@OBJEXT@: \ LuksanVlcek1.hpp \ LuksanVlcek2.hpp \ LuksanVlcek3.hpp \ LuksanVlcek4.hpp \ LuksanVlcek5.hpp \ LuksanVlcek6.hpp \ LuksanVlcek7.hpp \ MittelmannDistCntrlNeumA.hpp \ MittelmannDistCntrlNeumB.hpp \ MittelmannDistCntrlDiri.hpp \ MittelmannBndryCntrlDiri.hpp \ MittelmannBndryCntrlDiri3D.hpp \ MittelmannBndryCntrlDiri3D_27.hpp \ MittelmannBndryCntrlDiri3Dsin.hpp \ MittelmannBndryCntrlNeum.hpp \ MittelmannParaCntrl.hpp # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ .SUFFIXES: .cpp .c .o .obj $(EXE): $(MAINOBJ) $(LIB) $(CXX) $(CXXFLAGS) $(CXXLINKFLAGS) -o $@ $(MAINOBJ) $(LIBS) $(LIB): $(LIBOBJS) $(CXXAR) $(LIB) $(LIBOBJS) clean: rm -rf $(EXE) $(MAINOBJ) $(LIBOBJS) $(LIB) .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `test -f '$<' || echo '$(SRCDIR)/'`$< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(SRCDIR)/$<'; fi` Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek5.cpp0000644000076600007660000001610511573147064022522 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek5.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-127 #include "LuksanVlcek5.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; inline static Index Sgn(Number a) { if (a>0.) { return 1; } else { return -1; } } LuksanVlcek5::LuksanVlcek5(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek5::InitializeProblem(Index N) { N_=N; if (N_<=4) { printf("N needs to be at least 5.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek5::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek5.hpp has 4 variables, x[0] through x[3] n = N_+2; m = N_-4; nnz_jac_g = 5 * m; nnz_h_lag = n + n-1 + n-2; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek5::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=1; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; LuksanVlcek3::LuksanVlcek3(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek3::InitializeProblem(Index N) { N_=N; if (N_<=5 || 4*((N_+2)/4)!=N_+2) { printf("N needs to be at least 6 and N+2 needs to be a multiple of 4.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek3::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek3.hpp has 4 variables, x[0] through x[3] n = N_+2; m = 2; nnz_jac_g = 4; nnz_h_lag = 5*N_/2 + 3; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek3::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # else # error "don't have header file for stdlib" # endif #endif #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif #include //********************************************************************** // Stuff for benchmarking // #define TIME_LIMIT #ifdef TIME_LIMIT #include #include extern "C" void* killer_thread(void* arg) { int runtime = *reinterpret_cast(arg); if (runtime <= 0) { printf("Invalid argument for run time (%d)\n", runtime); exit(-100); } printf("Limiting wall clock time to %d seconds.\n", runtime); sleep(runtime); printf("EXIT: Exceeding wall clock time limit of %d seconds.\n", runtime); exit(-999); return NULL; } #endif //********************************************************************** using namespace Ipopt; using namespace std; // This could probably be done more elegant and automatically, but I // can't get it to work right now. For now, list explicitly the // problems we want to include: #include "LuksanVlcek1.hpp" REGISTER_TNLP(LuksanVlcek1(0,0), LukVlE1) REGISTER_TNLP(LuksanVlcek1(-1.,0.), LukVlI1) #include "LuksanVlcek2.hpp" REGISTER_TNLP(LuksanVlcek2(0,0), LukVlE2) REGISTER_TNLP(LuksanVlcek2(-1.,0.), LukVlI2) #include "LuksanVlcek3.hpp" REGISTER_TNLP(LuksanVlcek3(0,0), LukVlE3) REGISTER_TNLP(LuksanVlcek3(-1.,0.), LukVlI3) #include "LuksanVlcek4.hpp" REGISTER_TNLP(LuksanVlcek4(0,0), LukVlE4) REGISTER_TNLP(LuksanVlcek4(-1.,0.), LukVlI4) #include "LuksanVlcek5.hpp" REGISTER_TNLP(LuksanVlcek5(0,0), LukVlE5) REGISTER_TNLP(LuksanVlcek5(-1.,0.), LukVlI5) #include "LuksanVlcek6.hpp" REGISTER_TNLP(LuksanVlcek6(0,0), LukVlE6) REGISTER_TNLP(LuksanVlcek6(-1.,0.), LukVlI6) #include "LuksanVlcek7.hpp" REGISTER_TNLP(LuksanVlcek7(0,0), LukVlE7) REGISTER_TNLP(LuksanVlcek7(-1.,0.), LukVlI7) #include "MittelmannBndryCntrlDiri.hpp" REGISTER_TNLP(MittelmannBndryCntrlDiri1, MBndryCntrl1) REGISTER_TNLP(MittelmannBndryCntrlDiri2, MBndryCntrl2) REGISTER_TNLP(MittelmannBndryCntrlDiri3, MBndryCntrl3) REGISTER_TNLP(MittelmannBndryCntrlDiri4, MBndryCntrl4) #include "MittelmannBndryCntrlDiri3D.hpp" REGISTER_TNLP(MittelmannBndryCntrlDiri3D, MBndryCntrl_3D) #include "MittelmannBndryCntrlDiri3D_27.hpp" REGISTER_TNLP(MittelmannBndryCntrlDiri3D_27, MBndryCntrl_3D_27) REGISTER_TNLP(MittelmannBndryCntrlDiri3D_27BT, MBndryCntrl_3D_27BT) #include "MittelmannBndryCntrlDiri3Dsin.hpp" REGISTER_TNLP(MittelmannBndryCntrlDiri3Dsin, MBndryCntrl_3Dsin) #include "MittelmannBndryCntrlNeum.hpp" REGISTER_TNLP(MittelmannBndryCntrlNeum1, MBndryCntrl5) REGISTER_TNLP(MittelmannBndryCntrlNeum2, MBndryCntrl6) REGISTER_TNLP(MittelmannBndryCntrlNeum3, MBndryCntrl7) REGISTER_TNLP(MittelmannBndryCntrlNeum4, MBndryCntrl8) #include "MittelmannDistCntrlDiri.hpp" REGISTER_TNLP(MittelmannDistCntrlDiri1, MDistCntrl1) REGISTER_TNLP(MittelmannDistCntrlDiri2, MDistCntrl2) REGISTER_TNLP(MittelmannDistCntrlDiri3, MDistCntrl3) REGISTER_TNLP(MittelmannDistCntrlDiri3a, MDistCntrl3a) #include "MittelmannDistCntrlNeumA.hpp" REGISTER_TNLP(MittelmannDistCntrlNeumA1, MDistCntrl4) REGISTER_TNLP(MittelmannDistCntrlNeumA2, MDistCntrl5) REGISTER_TNLP(MittelmannDistCntrlNeumA3, MDistCntrl6a) #include "MittelmannDistCntrlNeumB.hpp" REGISTER_TNLP(MittelmannDistCntrlNeumB1, MDistCntrl4a) REGISTER_TNLP(MittelmannDistCntrlNeumB2, MDistCntrl5a) REGISTER_TNLP(MittelmannDistCntrlNeumB3, MDistCntrl6) #include "MittelmannParaCntrl.hpp" REGISTER_TNLP(MittelmannParaCntrlBase, MPara5_1) REGISTER_TNLP(MittelmannParaCntrlBase, MPara5_2_1) REGISTER_TNLP(MittelmannParaCntrlBase, MPara5_2_2) REGISTER_TNLP(MittelmannParaCntrlBase, MPara5_2_3) static void print_problems() { printf("\nList of all registered problems:\n\n"); RegisteredTNLPs::PrintRegisteredProblems(); } int main(int argv, char* argc[]) { if (argv==2 && !strcmp(argc[1],"list")) { print_problems(); return 0; } #ifdef TIME_LIMIT if (argv==4) { int runtime = atoi(argc[3]); pthread_t thread; pthread_create(&thread, NULL, killer_thread, &runtime); } else #endif if (argv!=3 && argv!=1) { printf("Usage: %s (this will ask for problem name)\n", argc[0]); printf(" %s ProblemName N\n", argc[0]); printf(" where N is a positive parameter determining problem size\n"); printf(" %s list\n", argc[0]); printf(" to list all registered problems.\n"); return -1; } SmartPtr tnlp; Index N; if (argv!=1) { // Create an instance of your nlp... tnlp = RegisteredTNLPs::GetTNLP(argc[1]); if (!IsValid(tnlp)) { printf("Problem with name \"%s\" not known.\n", argc[1]); print_problems(); return -2; } N = atoi(argc[2]); } else { bool done = false; while (!done) { string inputword; cout << "Enter problem name (or \"list\" for all available names):\n"; cin >> inputword; if (inputword=="list") { print_problems(); } else { tnlp = RegisteredTNLPs::GetTNLP(inputword.c_str()); if (!IsValid(tnlp)) { printf("Problem with name \"%s\" not known.\n", inputword.c_str()); } else { done = true; } } } cout << "Enter problem size:\n"; cin >> N; } if (N <= 0) { printf("Given problem size is invalid.\n"); return -3; } bool retval = tnlp->InitializeProblem(N); if (!retval) { printf("Cannot initialize problem. Abort.\n"); return -4; } // Create an instance of the IpoptApplication // We are using the factory, since this allows us to compile this // example with an Ipopt Windows DLL SmartPtr app = IpoptApplicationFactory(); ApplicationReturnStatus status; status = app->Initialize(); if (status != Solve_Succeeded) { printf("\n\n*** Error during initialization!\n"); return (int) status; } // Set option to use internal scaling // DOES NOT WORK FOR VLUKL* PROBLEMS: // app->Options()->SetStringValueIfUnset("nlp_scaling_method", "user-scaling"); status = app->OptimizeTNLP(GetRawPtr(tnlp)); return (int) status; } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannDistCntrlNeumA.cpp0000644000076600007660000003735311573147064025110 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannDistCntrlNeumA.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #include "MittelmannDistCntrlNeumA.hpp" #ifdef HAVE_CASSERT # include #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannDistCntrlNeumABase::MittelmannDistCntrlNeumABase() : y_d_(NULL) {} MittelmannDistCntrlNeumABase::~MittelmannDistCntrlNeumABase() { delete [] y_d_; } void MittelmannDistCntrlNeumABase::SetBaseParameters(Index N, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number b_0j, Number b_1j, Number b_i0, Number b_i1, Number u_init) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; b_0j_ = b_0j; b_1j_ = b_1j; b_i0_ = b_i0; b_i1_ = b_i1; u_init_ = u_init; // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)]; for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j)] = y_d_cont(x1_grid(i),x2_grid(j)); } } } bool MittelmannDistCntrlNeumABase::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 mesh points we have the value // of the functions y, and for each N_ times N_ interior mesh points // we have values for u n = (N_+2)*(N_+2) + N_*N_; // For each of the N_ times N_ interior mesh points we have the // discretized PDE, and we have one constriant for each boundary // point (except for the corners) m = N_*N_ + 4*N_; // y(i,j), y(i-1,j), y(i+1,j), y(i,j-1), y(i,j+1), u(i,j) for each // of the N_*N_ discretized PDEs, and for the Neumann boundary // conditions nnz_jac_g = 6*N_*N_ + 8*N_; // diagonal entry for each dydy, dudu, dydu in the interior nnz_h_lag = 0; if (!fint_cont_dydy_alwayszero() || !d_cont_dydy_alwayszero()) { nnz_h_lag += N_*N_; } if (!fint_cont_dudu_alwayszero() || !d_cont_dudu_alwayszero()) { nnz_h_lag += N_*N_; } if (!fint_cont_dydu_alwayszero() || !d_cont_dydu_alwayszero()) { nnz_h_lag += N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannDistCntrlNeumABase::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iy = y_index(i,j); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = u_index(i,j); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } // There is no information for the y's at the corner points, so just // take those variables out x_l[y_index(0,0)] = x_u[y_index(0,0)] = 0.; x_l[y_index(0,N_+1)] = x_u[y_index(0,N_+1)] = 0.; x_l[y_index(N_+1,0)] = x_u[y_index(N_+1,0)] = 0.; x_l[y_index(N_+1,N_+1)] = x_u[y_index(N_+1,N_+1)] = 0.; // all discretized PDE constraints have right hand side zero for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; LuksanVlcek7::LuksanVlcek7(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek7::InitializeProblem(Index N) { N_=N; if (N_<3) { printf("N has to be at least 3.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek7::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek7.hpp has 4 variables, x[0] through x[3] n = N_+2; m = 4; nnz_jac_g = 3 + 4 + 4 + 3; nnz_h_lag = n + 3; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek7::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for boundary control problems with Neumann boundary * conditions, as formulated by Hans Mittelmann as Examples 5-8 in * "Optimization Techniques for Solving Elliptic Control Problems * with Control and State Constraints. Part 1: Boundary Control" */ class MittelmannBndryCntrlNeumBase : public RegisteredTNLP { public: /** Constructor. N is the number of mesh points in one dimension * (excluding boundary). */ MittelmannBndryCntrlNeumBase(); /** Default destructor */ virtual ~MittelmannBndryCntrlNeumBase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number u_init); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y (and initial guess function) */ virtual Number y_d_cont(Number x1, Number x2) const =0; /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y) const =0; /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y) const =0; /** Second partial derivative of forcing function w.r.t. y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y) const =0; /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const =0; /** Function in Neuman boundary condition */ virtual Number b_cont(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of b_cont w.r.t. y */ virtual Number b_cont_dy(Number x1, Number x2, Number y, Number u) const =0; /** First partial derivative of b_cont w.r.t. u */ virtual Number b_cont_du(Number x1, Number x2, Number y, Number u) const =0; /** Second partial derivative of b_cont w.r.t. y,y */ virtual Number b_cont_dydy(Number x1, Number x2, Number y, Number u) const =0; /** returns true if second partial derivative of b_cont * w.r.t. y,y is always zero. */ virtual bool b_cont_dydy_alwayszero() const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannBndryCntrlNeumBase(const MittelmannBndryCntrlNeumBase&); MittelmannBndryCntrlNeumBase& operator=(const MittelmannBndryCntrlNeumBase&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squaredd */ Number hh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Initial value for the constrols u */ Number u_init_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index i, Index j) const { return j + (N_+2)*i; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) on {0} x (0,1) boudnary*/ inline Index u0j_index(Index j) const { return (N_+2)*(N_+2) + j-1; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) on {1} x (0,1) boudnary*/ inline Index u1j_index(Index j) const { return (N_+2)*(N_+2) + N_ + j-1; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) on (0,1) x {0} boudnary*/ inline Index ui0_index(Index j) const { return (N_+2)*(N_+2) + 2*N_ + j-1; } /** Translation of mesh point indices to NLP variable indices for * u(x_ij) on (0,1) x {1} boudnary*/ inline Index ui1_index(Index j) const { return (N_+2)*(N_+2) + 3*N_ + j-1; } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index j) const { return h_*(Number)j; } //@} }; /** Class implementating Example 5 */ class MittelmannBndryCntrlNeum1 : public MittelmannBndryCntrlNeumBase { public: MittelmannBndryCntrlNeum1() {} virtual ~MittelmannBndryCntrlNeum1() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.01; Number lb_y = -1e20; Number ub_y = 2.071; Number lb_u = 3.7; Number ub_u = 4.5; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 2. - 2.*(x1*(x1-1.) + x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y) const { return 0.; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y) const { return 0.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return true; } /** Function in Neuman boundary condition */ virtual Number b_cont(Number x1, Number x2, Number y, Number u) const { return u - y*y; } /** First partial derivative of b_cont w.r.t. y */ virtual Number b_cont_dy(Number x1, Number x2, Number y, Number u) const { return - 2.*y; } /** First partial derivative of b_cont w.r.t. u */ virtual Number b_cont_du(Number x1, Number x2, Number y, Number u) const { return 1.; } /** Second partial derivative of b_cont w.r.t. y,y */ virtual Number b_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -2.; } /** returns true if second partial derivative of b_cont * w.r.t. y,y is always zero. */ virtual bool b_cont_dydy_alwayszero() const { return false; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlNeum1(const MittelmannBndryCntrlNeum1&); MittelmannBndryCntrlNeum1& operator=(const MittelmannBndryCntrlNeum1&); //@} }; /** Class implementating Example 6 */ class MittelmannBndryCntrlNeum2 : public MittelmannBndryCntrlNeumBase { public: MittelmannBndryCntrlNeum2() {} virtual ~MittelmannBndryCntrlNeum2() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 2.835; Number lb_u = 6.; Number ub_u = 9.; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 2. - 2.*(x1*(x1-1.) + x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y) const { return 0.; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y) const { return 0.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y) const { return 0.; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return true; } /** Function in Neuman boundary condition */ virtual Number b_cont(Number x1, Number x2, Number y, Number u) const { return u - y*y; } /** First partial derivative of b_cont w.r.t. y */ virtual Number b_cont_dy(Number x1, Number x2, Number y, Number u) const { return - 2.*y; } /** First partial derivative of b_cont w.r.t. u */ virtual Number b_cont_du(Number x1, Number x2, Number y, Number u) const { return 1.; } /** Second partial derivative of b_cont w.r.t. y,y */ virtual Number b_cont_dydy(Number x1, Number x2, Number y, Number u) const { return -2.; } /** returns true if second partial derivative of b_cont * w.r.t. y,y is always zero. */ virtual bool b_cont_dydy_alwayszero() const { return false; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlNeum2(const MittelmannBndryCntrlNeum2&); MittelmannBndryCntrlNeum2& operator=(const MittelmannBndryCntrlNeum2&); //@} }; /** Class implementating Example 7 */ class MittelmannBndryCntrlNeum3 : public MittelmannBndryCntrlNeumBase { public: MittelmannBndryCntrlNeum3() {} virtual ~MittelmannBndryCntrlNeum3() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.01; Number lb_y = -1e20; Number ub_y = 2.7; Number lb_u = 1.8; Number ub_u = 2.5; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 2. - 2.*(x1*(x1-1.) + x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y) const { return y*y*y-y; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y) const { return 3.*y*y-1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y) const { return 6.*y; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Function in Neuman boundary condition */ virtual Number b_cont(Number x1, Number x2, Number y, Number u) const { return u; } /** First partial derivative of b_cont w.r.t. y */ virtual Number b_cont_dy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** First partial derivative of b_cont w.r.t. u */ virtual Number b_cont_du(Number x1, Number x2, Number y, Number u) const { return 1.; } /** Second partial derivative of b_cont w.r.t. y,y */ virtual Number b_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of b_cont * w.r.t. y,y is always zero. */ virtual bool b_cont_dydy_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlNeum3(const MittelmannBndryCntrlNeum3&); MittelmannBndryCntrlNeum3& operator=(const MittelmannBndryCntrlNeum3&); //@} }; /** Class implementating Example 8 */ class MittelmannBndryCntrlNeum4 : public MittelmannBndryCntrlNeumBase { public: MittelmannBndryCntrlNeum4() {} virtual ~MittelmannBndryCntrlNeum4() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.; Number lb_y = -1e20; Number ub_y = 2.7; Number lb_u = 1.8; Number ub_u = 2.5; Number u_init = (ub_u+lb_u)/2.; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, u_init); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2) const { return 2. - 2.*(x1*(x1-1.) + x2*(x2-1.)); } /** Forcing function for the elliptic equation */ virtual Number d_cont(Number x1, Number x2, Number y) const { return y*y*y-y; } /** First partial derivative of forcing function w.r.t. y */ virtual Number d_cont_dy(Number x1, Number x2, Number y) const { return 3.*y*y-1.; } /** Second partial derivative of forcing function w.r.t y,y */ virtual Number d_cont_dydy(Number x1, Number x2, Number y) const { return 6.*y; } /** returns true if second partial derivative of d_cont * w.r.t. y,y is always zero. */ virtual bool d_cont_dydy_alwayszero() const { return false; } /** Function in Neuman boundary condition */ virtual Number b_cont(Number x1, Number x2, Number y, Number u) const { return u; } /** First partial derivative of b_cont w.r.t. y */ virtual Number b_cont_dy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** First partial derivative of b_cont w.r.t. u */ virtual Number b_cont_du(Number x1, Number x2, Number y, Number u) const { return 1.; } /** Second partial derivative of b_cont w.r.t. y,y */ virtual Number b_cont_dydy(Number x1, Number x2, Number y, Number u) const { return 0.; } /** returns true if second partial derivative of b_cont * w.r.t. y,y is always zero. */ virtual bool b_cont_dydy_alwayszero() const { return true; } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlNeum4(const MittelmannBndryCntrlNeum4&); MittelmannBndryCntrlNeum4& operator=(const MittelmannBndryCntrlNeum4&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek6.cpp0000644000076600007660000002165511573147064022531 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek6.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-127 #include "LuksanVlcek6.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; inline static Index Sgn(Number a) { if (a>0.) { return 1; } else { return -1; } } LuksanVlcek6::LuksanVlcek6(Number g_l, Number g_u) { g_l_ = g_l; g_u_ = g_u; } bool LuksanVlcek6::InitializeProblem(Index N) { N_=N; if (2*(N_/2)!=N_ || N<=1) { printf("N needs to be even and at least 2.\n"); return false; } return true; } // returns the size of the problem bool LuksanVlcek6::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in LuksanVlcek6.hpp has 4 variables, x[0] through x[3] n = N_+1; m = N_/2; nnz_jac_g = 3 * m; nnz_h_lag = n + n-1 + n-2 + n-3 + n-4 + n-5 + n-6; // use the C style numbering of matrix indices (starting at 0) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool LuksanVlcek6::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // none of the variables have bounds for (Index i=0; i=Max(0,i-5); j--) { values[ih+j] += obj_factor*a1apb2*(1.+2.*x[j]); ih += ip; ip--; } for (Index j=Max(0,i-5); j=Max(0,i-5); k--) { values[ih+k] += obj_factor*apb2*(1.+2.*x[k])*axj; ih += ip; ip--; } } if (i=Max(0,i-5); k--) { values[ih+k] = obj_factor*apb2*(1.+2.*x[k])*axj; ih += ip; ip--; } // x[j=i+1] x[k=i+1] values[i+1] = obj_factor*(apb2*axj*axj+ 2.*apb1); } else { // We could just not set those non-zero elements in the // structure, but I'm too lazy to do that now values[n+i] = 0.; ih = n+n-1; ip = n-2; for (Index k=i-1; k>=Max(0,i-5); k--) { values[ih+k] = 0.; ih += ip; ip--; } // x[j=i+1] x[k=i+1] values[i+1] = 0.; } } // Now the constraints for (Index i=0; i #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif using namespace Ipopt; /* Constructor. */ MittelmannBndryCntrlDiriBase3D_27::MittelmannBndryCntrlDiriBase3D_27() : y_d_(NULL) {} MittelmannBndryCntrlDiriBase3D_27::~MittelmannBndryCntrlDiriBase3D_27() { delete [] y_d_; } void MittelmannBndryCntrlDiriBase3D_27::SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const, Number B, Number C) { N_ = N; h_ = 1./(N+1); hh_ = h_*h_; hhh_ = hh_*h_; lb_y_ = lb_y; ub_y_ = ub_y; lb_u_ = lb_u; ub_u_ = ub_u; d_const_ = d_const; alpha_ = alpha; B_ = B; C_ = C; PenA_ = 1.5 - 1.125*C_/B_; PenB_ = 1.75*C_/pow(B_,3) - 1.5/(B_*B_); PenC_ = 0.5/pow(B_,4) - 0.625*C_/pow(B_,5); // Initialize the target profile variables delete [] y_d_; y_d_ = new Number[(N_+2)*(N_+2)*(N_+2)]; for (Index k=0; k<= N_+1; k++) { for (Index j=0; j<= N_+1; j++) { for (Index i=0; i<= N_+1; i++) { y_d_[y_index(i,j,k)] = y_d_cont(x1_grid(i),x2_grid(j),x3_grid(k)); } } } } bool MittelmannBndryCntrlDiriBase3D_27::get_nlp_info( Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // We for each of the N_+2 times N_+2 times N_+2 mesh points we have // the value of the functions y, including the control parameters on // the boundary n = (N_+2)*(N_+2)*(N_+2); // For each of the N_ times N_ times N_ interior mesh points we have the // discretized PDE. m = N_*N_*N_; // y(i-1,j-1,k-1), y(i,j-1,k-1), y(i+1,j-1,k-1) // y(i-1,j ,k-1), y(i,j ,k-1), y(i+1,j, k-1) // y(i-1,j+1,k-1), y(i,j+1,k-1), y(i+1,j+1,k-1), // y(i-1,j-1,k), y(i,j-1,k), y(i+1,j-1,k) // y(i-1,j ,k), y(i,j ,k), y(i+1,j, k) // y(i-1,j+1,k), y(i,j+1,k), y(i+1,j+1,k), // y(i-1,j-1,k+1), y(i,j-1,k+1), y(i+1,j-1,k+1) // y(i-1,j ,k+1), y(i,j ,k+1), y(i+1,j, k+1) // y(i-1,j+1,k+1), y(i,j+1,k+1), y(i+1,j+1,k+1), // of the N_*N_*N_ discretized PDEs nnz_jac_g = 27*N_*N_*N_; // diagonal entry for each y(i,j) in the interior nnz_h_lag = N_*N_*N_; if (alpha_>0.) { // and one entry for u(i,j) in the bundary if alpha is not zero nnz_h_lag += 6*N_*N_; } // We use the C indexing style for row/col entries (corresponding to // the C notation, starting at 0) index_style = C_STYLE; return true; } bool MittelmannBndryCntrlDiriBase3D_27::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // Set overall bounds on the y variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iy = y_index(i,j,k); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } } // Set the overall 3D bounds on the control variables for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,0); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { Index iu = y_index(i,j,N_+1); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,0,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index i=0; i<=N_+1; i++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(i,N_+1,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(0,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } for (Index j=0; j<=N_+1; j++) { for (Index k=0; k<=N_+1; k++) { Index iu = y_index(N_+1,j,k); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } } // The values of y on the corners doens't appear anywhere, so we fix // them to zero for (Index j=0; j<=N_+1; j++) { x_l[y_index(0,j,0)] = x_u[y_index(0,j,0)] = 0.; x_l[y_index(0,j,N_+1)] = x_u[y_index(0,j,N_+1)] = 0.; x_l[y_index(N_+1,j,0)] = x_u[y_index(N_+1,j,0)] = 0.; x_l[y_index(N_+1,j,N_+1)] = x_u[y_index(N_+1,j,N_+1)] = 0.; } for (Index k=0; k<=N_+1; k++) { x_l[y_index(0,0,k)] = x_u[y_index(0,0,k)] = 0.; x_l[y_index(0,N_+1,k)] = x_u[y_index(0,N_+1,k)] = 0.; x_l[y_index(N_+1,0,k)] = x_u[y_index(N_+1,0,k)] = 0.; x_l[y_index(N_+1,N_+1,k)] = x_u[y_index(N_+1,N_+1,k)] = 0.; } for (Index i=0; i<=N_+1; i++) { x_l[y_index(i,0,0)] = x_u[y_index(i,0,0)] = 0.; x_l[y_index(i,0,N_+1)] = x_u[y_index(i,0,N_+1)] = 0.; x_l[y_index(i,N_+1,0)] = x_u[y_index(i,N_+1,0)] = 0.; x_l[y_index(i,N_+1,N_+1)] = x_u[y_index(i,N_+1,N_+1)] = 0.; } // all discretized PDE constraints have right hand side equal to // minus the constant value of the function d for (Index i=0; i0.) { Number usum = 0.; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,0); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,N_+1); usum += x[iu]*x[iu]; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j,k); usum += x[iu]*x[iu]; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j,k); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,0,k); usum += x[iu]*x[iu]; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,N_+1,k); usum += x[iu]*x[iu]; } } obj_value += alpha_*hh_*0.5*usum; } return true; } bool MittelmannBndryCntrlDiriBase3D_27::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // now let's take care of the nonzero values coming from the // integrant over the interior for (Index i=1; i<=N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { Index iy = y_index(i,j,k); grad_f[iy] = hhh_*PenObj_1(x[iy] - y_d_[iy]); } } } // The values for variables on the boundary if (alpha_>0.) { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(i,j,0); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(i,j,N_+1); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(0,j,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { Index iu = y_index(N_+1,j,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { Index iu = y_index(i,0,k); grad_f[iu] = alpha_*hh_*x[iu]; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { Index iu = y_index(i,N_+1,k); grad_f[iu] = alpha_*hh_*x[iu]; } } } else { for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(i,j,0)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(i,j,N_+1)] = 0.; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(0,j,k)] = 0.; } } for (Index k=1; k<= N_; k++) { for (Index j=1; j<= N_; j++) { grad_f[y_index(N_+1,j,k)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { grad_f[y_index(i,0,k)] = 0.; } } for (Index i=1; i<= N_; i++) { for (Index k=1; k<= N_; k++) { grad_f[y_index(i,N_+1,k)] = 0.; } } } // Nothing on the corner points for (Index i=0; i<= N_+1; i++) { grad_f[y_index(i,0 ,0 )] = 0.; grad_f[y_index(i,0 ,N_+1)] = 0.; grad_f[y_index(i,N_+1,0 )] = 0.; grad_f[y_index(i,N_+1,N_+1)] = 0.; } for (Index j=0; j<= N_+1; j++) { grad_f[y_index(0, j,0 )] = 0.; grad_f[y_index(N_+1,j,0 )] = 0.; grad_f[y_index(0, j,N_+1)] = 0.; grad_f[y_index(N_+1,j,N_+1)] = 0.; } for (Index k=0; k<= N_+1; k++) { grad_f[y_index(0, 0, k)] = 0.; grad_f[y_index(N_+1,0, k)] = 0.; grad_f[y_index(0, N_+1,k)] = 0.; grad_f[y_index(N_+1,N_+1,k)] = 0.; } return true; } bool MittelmannBndryCntrlDiriBase3D_27::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) // compute the discretized PDE for each interior grid point Index ig = 0; for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { for (Index k=1; k<=N_; k++) { Number val; // Start with the discretized Laplacian operator val = 200.* x[y_index(i,j,k)] - 16.* ( x[y_index(i+1,j ,k )] + x[y_index(i-1,j ,k )] + x[y_index(i ,j+1,k )] + x[y_index(i ,j-1,k )] + x[y_index(i ,j ,k+1)] + x[y_index(i ,j ,k-1)] ) - 8. * ( x[y_index(i+1,j+1,k )] + x[y_index(i+1,j-1,k )] + x[y_index(i-1,j+1,k )] + x[y_index(i-1,j-1,k )] + x[y_index(i ,j+1,k+1)] + x[y_index(i ,j+1,k-1)] + x[y_index(i ,j-1,k+1)] + x[y_index(i ,j-1,k-1)] + x[y_index(i+1,j ,k+1)] + x[y_index(i+1,j ,k-1)] + x[y_index(i-1,j ,k+1)] + x[y_index(i-1,j ,k-1)] ) - 1. * ( x[y_index(i+1,j+1,k+1)] + x[y_index(i+1,j-1,k+1)] + x[y_index(i+1,j+1,k-1)] + x[y_index(i+1,j-1,k-1)] + x[y_index(i-1,j+1,k+1)] + x[y_index(i-1,j-1,k+1)] + x[y_index(i-1,j+1,k-1)] + x[y_index(i-1,j-1,k-1)] ); g[ig] = val; ig++; } } } DBG_ASSERT(ig==m); return true; } bool MittelmannBndryCntrlDiriBase3D_27::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints Index ijac = 0; Index ig = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i-1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j,k); ijac++; // y(i,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k); ijac++; // y(i+1,j,k) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j,k); ijac++; // y(i-1,j-1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j-1,k); ijac++; // y(i,j-1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1,k); ijac++; // y(i+1,j-1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j-1,k); ijac++; // y(i-1,j+1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j+1,k); ijac++; // y(i,j+1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1,k); ijac++; // y(i+1,j+1,k) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j+1,k); ijac++; // y(i-1,j,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j,k-1); ijac++; // y(i,j,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k-1); ijac++; // y(i+1,j,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j,k-1); ijac++; // y(i-1,j-1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j-1,k-1); ijac++; // y(i,j-1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1,k-1); ijac++; // y(i+1,j-1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j-1,k-1); ijac++; // y(i-1,j+1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j+1,k-1); ijac++; // y(i,j+1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1,k-1); ijac++; // y(i+1,j+1,k-1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j+1,k-1); ijac++; // y(i-1,j,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j,k+1); ijac++; // y(i,j,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j,k+1); ijac++; // y(i+1,j,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j,k+1); ijac++; // y(i-1,j-1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j-1,k+1); ijac++; // y(i,j-1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j-1,k+1); ijac++; // y(i+1,j-1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j-1,k+1); ijac++; // y(i-1,j+1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i-1,j+1,k+1); ijac++; // y(i,j+1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i,j+1,k+1); ijac++; // y(i+1,j+1,k+1) iRow[ijac] = ig; jCol[ijac] = y_index(i+1,j+1,k+1); ijac++; ig++; } } } DBG_ASSERT(ijac==nele_jac); } else { // return the values of the jacobian of the constraints Index ijac = 0; for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // y(i-1,j,k) values[ijac] = -16.; ijac++; // y(i,j,k) values[ijac] = 200.; ijac++; // y(i+1,j,k) values[ijac] = -16.; ijac++; // y(i-1,j-1,k) values[ijac] = -8.; ijac++; // y(i,j-1,k) values[ijac] = -16.; ijac++; // y(i+1,j-1,k) values[ijac] = -8.; ijac++; // y(i-1,j+1,k) values[ijac] = -8.; ijac++; // y(i,j+1,k) values[ijac] = -16.; ijac++; // y(i+1,j+1,k) values[ijac] = -8.; ijac++; // y(i-1,j,k-1) values[ijac] = -8.; ijac++; // y(i,j,k-1) values[ijac] = -16.; ijac++; // y(i+1,j,k-1) values[ijac] = -8.; ijac++; // y(i-1,j-1,k-1) values[ijac] = -1.; ijac++; // y(i,j-1,k-1) values[ijac] = -8.; ijac++; // y(i+1,j-1,k-1) values[ijac] = -1.; ijac++; // y(i-1,j+1,k-1) values[ijac] = -1.; ijac++; // y(i,j+1,k-1) values[ijac] = -8.; ijac++; // y(i+1,j+1,k-1) values[ijac] = -1.; ijac++; // y(i-1,j,k+1) values[ijac] = -8.; ijac++; // y(i,j,k+1) values[ijac] = -16.; ijac++; // y(i+1,j,k+1) values[ijac] = -8.; ijac++; // y(i-1,j-1,k+1) values[ijac] = -1.; ijac++; // y(i,j-1,k+1) values[ijac] = -8.; ijac++; // y(i+1,j-1,k+1) values[ijac] = -1.; ijac++; // y(i-1,j+1,k+1) values[ijac] = -1.; ijac++; // y(i,j+1,k+1) values[ijac] = -8.; ijac++; // y(i+1,j+1,k+1) values[ijac] = -1.; ijac++; } } } DBG_ASSERT(ijac==nele_jac); } return true; } bool MittelmannBndryCntrlDiriBase3D_27::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { iRow[ihes] = y_index(i,j,k); jCol[ihes] = y_index(i,j,k); ihes++; } } } if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,0); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(i,j,N_+1); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(0,j,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index k=1; k<=N_; k++) { for (Index j=1; j<=N_; j++) { Index iu = y_index(N_+1,j,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,0,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index k=1; k<=N_; k++) { Index iu = y_index(i,N_+1,k); iRow[ihes] = iu; jCol[ihes] = iu; ihes++; } } } DBG_ASSERT(ihes==nele_hess); } else { // return the values Index ihes=0; // First the diagonal entries for y(i,j) for (Index i=1; i<= N_; i++) { for (Index j=1; j<= N_; j++) { for (Index k=1; k<= N_; k++) { // Contribution from the objective function Index iy = y_index(i,j,k); values[ihes] = obj_factor*hhh_*PenObj_2(x[iy] - y_d_[iy]); ihes++; } } } // Now the diagonal entries for u(i,j) if (alpha_>0.) { // Now the diagonal entries for u at the boundary for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } for (Index i=1; i<=N_; i++) { for (Index j=1; j<=N_; j++) { values[ihes] = obj_factor*hh_*alpha_; ihes++; } } } } return true; } void MittelmannBndryCntrlDiriBase3D_27::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { /* FILE* fp = fopen("solution.txt", "w+"); for (Index i=0; i<=N_+1; i++) { for (Index j=0; j<=N_+1; j++) { fprintf(fp, "y[%6d,%6d] = %15.8e\n", i, j, x[y_index(i,j)]); } } fclose(fp); */ } Ipopt-3.11.4/Ipopt/examples/ScalableProblems/LuksanVlcek1.hpp0000644000076600007660000001037511504216567022525 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: LuksanVlcek1.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-127 #ifndef __LUKSANVLCEK1_HPP__ #define __LUKSANVLCEK1_HPP__ #include "RegisteredTNLP.hpp" using namespace Ipopt; /** Implementation of Example 5.1 from "Sparse and Parially Separable * Test Problems for Unconstrained and Equality Constrained * Optimization" by L. Luksan and J. Vlcek. */ class LuksanVlcek1 : public RegisteredTNLP { public: /** Constructor. Here, g_l and g_u are the bounds for the * constraints. The original formulation is obtained by setting * g_l and g_u to zero. Using g_l #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif using namespace Ipopt; /** Base class for boundary control problems with Dirichlet boundary * conditions, as formulated by Hans Mittelmann as Examples 1-4 in * "Optimization Techniques for Solving Elliptic Control Problems * with Control and State Constraints. Part 2: Boundary Control" * * Here, the control variables are identical to the values of y on * the boundary, and therefore we don't need any explicit * optimization variables for u. */ class MittelmannBndryCntrlDiriBase3D : public RegisteredTNLP { public: /** Constructor. */ MittelmannBndryCntrlDiriBase3D(); /** Default destructor */ virtual ~MittelmannBndryCntrlDiriBase3D(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_valu, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} protected: /** Method for setting the internal parameters that define the * problem. It must be called by the child class in its * implementation of InitializeParameters. */ void SetBaseParameters(Index N, Number alpha, Number lb_y, Number ub_y, Number lb_u, Number ub_u, Number d_const, Number B, Number C); /**@name Functions that defines a particular instance. */ //@{ /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const =0; //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannBndryCntrlDiriBase3D(const MittelmannBndryCntrlDiriBase3D&); MittelmannBndryCntrlDiriBase3D& operator=(const MittelmannBndryCntrlDiriBase3D&); //@} /**@name Problem specification */ //@{ /** Number of mesh points in one dimension (excluding boundary) */ Index N_; /** Step size */ Number h_; /** h_ squared */ Number hh_; /** h_ to the third power */ Number hhh_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Constant value of d appearing in elliptical equation */ Number d_const_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Array for the target profile for y */ Number* y_d_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ijk) */ inline Index y_index(Index i, Index j, Index k) const { return k + (N_+2)*j + (N_+2)*(N_+2)*i; } /** Translation of interior mesh point indices to the corresponding * PDE constraint number */ inline Index pde_index(Index i, Index j, Index k) const { return (k-1) + N_*(j-1) + N_*N_*(i-1); } /** Compute the grid coordinate for given index in x1 direction */ inline Number x1_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x2 direction */ inline Number x2_grid(Index i) const { return h_*(Number)i; } /** Compute the grid coordinate for given index in x3 direction */ inline Number x3_grid(Index i) const { return h_*(Number)i; } /** value of penalty function term */ inline Number PenObj(Number t) const { //return 0.5*t*t; if (t > B_) { return B_*B_/2. + C_*(t - B_); } else if (t < -B_) { return B_*B_/2. + C_*(-t - B_); } else { const Number t2 = t*t; const Number t4 = t2*t2; const Number t6 = t4*t2; return PenA_*t2 + PenB_*t4 + PenC_*t6; } } /** first derivative of penalty function term */ inline Number PenObj_1(Number t) const { //return t; if (t > B_) { return C_; } else if (t < -B_) { return -C_; } else { const Number t2 = t*t; const Number t3 = t*t2; const Number t5 = t3*t2; return 2.*PenA_*t + 4.*PenB_*t3 + 6.*PenC_*t5; } } /** second derivative of penalty function term */ inline Number PenObj_2(Number t) const { //return 1.; if (t > B_) { return 0.; } else if (t < -B_) { return 0.; } else { const Number t2 = t*t; const Number t4 = t2*t2; return 2.*PenA_ + 12.*PenB_*t2 + 30.*PenC_*t4; } } //@} /** @name Data for penalty function term */ //@{ Number B_; Number C_; Number PenA_; Number PenB_; Number PenC_; //@} }; /** Class implementating Example 1 */ class MittelmannBndryCntrlDiri3D : public MittelmannBndryCntrlDiriBase3D { public: MittelmannBndryCntrlDiri3D() {} virtual ~MittelmannBndryCntrlDiri3D() {} virtual bool InitializeProblem(Index N) { if (N<1) { printf("N has to be at least 1."); return false; } Number alpha = 0.01; Number lb_y = -1e20; Number ub_y = 3.5; Number lb_u = 0.; Number ub_u = 10.; Number d_const = -20.; Number B = .5; Number C = 0.01; SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const, B, C); return true; } protected: /** Target profile function for y */ virtual Number y_d_cont(Number x1, Number x2, Number x3) const { return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)); } private: /**@name hide implicitly defined contructors copy operators */ //@{ MittelmannBndryCntrlDiri3D(const MittelmannBndryCntrlDiri3D&); MittelmannBndryCntrlDiri3D& operator=(const MittelmannBndryCntrlDiri3D&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/RegisteredTNLP.hpp0000644000076600007660000000337011504216567023012 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: RegisteredTNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-20 #ifndef __REGISTEREDTNLPS_HPP__ #define __REGISTEREDTNLPS_HPP__ #include "IpTNLP.hpp" #include using namespace Ipopt; /** Class implemented the NLP discretization of * */ class RegisteredTNLP : public TNLP { public: /** Initialize internal parameters, where N is a parameter * determining the problme size. This returns false, if N has an * invalid value. */ virtual bool InitializeProblem(Index N) = 0; }; class RegisteredTNLPs { public: RegisteredTNLPs(const SmartPtr& tnlp, const std::string name) { RegisterTNLP(tnlp, name); } virtual ~RegisteredTNLPs() {} static SmartPtr GetTNLP(const std::string name); static void PrintRegisteredProblems(); private: void RegisterTNLP(const SmartPtr& tnlp, const std::string name); SmartPtr tnlp_; }; #define REGISTER_TNLP(class_constructor, name) \ class RegisteredTNLP_Setup_ ## name : public RegisteredTNLPs \ { \ public: \ RegisteredTNLP_Setup_ ## name() \ : \ RegisteredTNLPs(new class_constructor, #name) \ { } \ RegisteredTNLP_Setup_ ## name* KeepCompilerFromRemovingThis(); \ }; \ \ RegisteredTNLP_Setup_ ## name RegisteredTNLP_Setup_ ## name ## instance_; \ RegisteredTNLP_Setup_ ## name* \ RegisteredTNLP_Setup_ ## name::KeepCompilerFromRemovingThis() \ { return &RegisteredTNLP_Setup_ ## name ## instance_; } //static RegisteredTNLP_Setup_ ## name RegisteredTNLP_Setup_ ## name ## instance #endif Ipopt-3.11.4/Ipopt/examples/ScalableProblems/config.h.in0000644000076600007660000000467311573147064021541 0ustar coincoin/* examples/ScalableProblems/config.h.in. */ /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the header file. */ #undef HAVE_CASSERT /* Define to 1 if you have the header file. */ #undef HAVE_CCTYPE /* Define to 1 if you have the header file. */ #undef HAVE_CFLOAT /* Define to 1 if you have the header file. */ #undef HAVE_CIEEEFP /* Define to 1 if you have the header file. */ #undef HAVE_CMATH /* Define to 1 if you have the header file. */ #undef HAVE_CSTDARG /* Define to 1 if you have the header file. */ #undef HAVE_CSTDDEF /* Define to 1 if you have the header file. */ #undef HAVE_CSTDIO /* Define to 1 if you have the header file. */ #undef HAVE_CSTDLIB /* Define to 1 if you have the header file. */ #undef HAVE_CSTRING /* Define to 1 if you have the header file. */ #undef HAVE_CTIME /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H /* Define to 1 if you have the header file. */ #undef HAVE_IEEEFP_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_WINDOWS_H Ipopt-3.11.4/Ipopt/examples/ScalableProblems/MittelmannParaCntrl.hpp0000644000076600007660000005464111573147064024146 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MittelmannParaCntrl.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-18 #ifndef __MITTELMANNPARACNTRL_HPP__ #define __MITTELMANNPARACNTRL_HPP__ #include "RegisteredTNLP.hpp" #ifdef HAVE_CONFIG_H #include "config.h" #else #include "configall_system.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif using namespace Ipopt; /** Base class for parabolic and elliptic control problems, as * formulated by Hans Mittelmann as problem (P) in "Sufficient * Optimality for Discretized Parabolic and Elliptic Control * Problems" */ template class MittelmannParaCntrlBase : public RegisteredTNLP { public: /** Constructor. */ MittelmannParaCntrlBase(); /** Default destructor */ virtual ~MittelmannParaCntrlBase(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** Method for returning scaling parameters */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Solution Methods */ //@{ /** This method is called after the optimization, and could write an * output file with the optimal profiles */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} virtual bool InitializeProblem(Index N); private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MittelmannParaCntrlBase(const MittelmannParaCntrlBase&); MittelmannParaCntrlBase& operator=(const MittelmannParaCntrlBase&); //@} /**@name Problem specification */ //@{ /** Upper bound on t */ Number T_; /** Upper bound on x */ Number l_; /** Number of mesh points in t direction */ Index Nt_; /** Number of mesh points in x direction */ Index Nx_; /** Step size in t direction*/ Number dt_; /** Step size in x direction*/ Number dx_; /** overall lower bound on y */ Number lb_y_; /** overall upper bound on y */ Number ub_y_; /** overall lower bound on u */ Number lb_u_; /** overall upper bound on u */ Number ub_u_; /** Weighting parameter for the control target deviation functional * in the objective */ Number alpha_; /** Weighting parameter in PDE */ Number beta_; /** Array for the target profile for y in objective */ Number* y_T_; /** Array for weighting function a_y in objective */ Number* a_y_; /** Array for weighting function a_u in objective */ Number* a_u_; //@} /**@name Auxilliary methods */ //@{ /** Translation of mesh point indices to NLP variable indices for * y(x_ij) */ inline Index y_index(Index jx, Index it) const { return jx + (Nx_+1)*it; } inline Index u_index(Index it) const { return (Nt_+1)*(Nx_+1) + it - 1; } /** Compute the grid coordinate for given index in t direction */ inline Number t_grid(Index i) const { return dt_*(Number)i; } /** Compute the grid coordinate for given index in x direction */ inline Number x_grid(Index j) const { return dx_*(Number)j; } //@} }; template MittelmannParaCntrlBase::MittelmannParaCntrlBase() : y_T_(NULL), a_y_(NULL), a_u_(NULL) {} template MittelmannParaCntrlBase::~MittelmannParaCntrlBase() { delete [] y_T_; delete [] a_y_; delete [] a_u_; } template bool MittelmannParaCntrlBase:: InitializeProblem(Index N) { typename T::ProblemSpecs p; if (N<1) { printf("N has to be at least 1."); return false; } T_ = p.T(); l_ = p.l(); Nt_ = N; Nx_ = N; dt_ = T_/Nt_; dx_ = l_/Nx_; lb_y_ = p.lb_y(); ub_y_ = p.ub_y(); lb_u_ = p.lb_u(); ub_u_ = p.ub_u(); alpha_ = p.alpha(); beta_ = p.beta(); y_T_ = new Number[Nx_+1]; for (Index j=0; j<=Nx_; j++) { y_T_[j] = p.y_T(x_grid(j)); } a_y_ = new Number[Nt_]; for (Index i=1; i<=Nt_; i++) { a_y_[i-1] = p.a_y(t_grid(i)); } a_u_ = new Number[Nt_]; for (Index i=1; i<=Nt_; i++) { a_u_[i-1] = p.a_u(t_grid(i)); } return true; } template bool MittelmannParaCntrlBase:: get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { typename T::ProblemSpecs p; n = (Nt_+1)*(Nx_+1) + Nt_; m = Nt_*(Nx_-1) + Nt_ + Nt_; nnz_jac_g = 6*Nt_*(Nx_-1) + 3*Nt_ + 4*Nt_; nnz_h_lag = Nx_+1 + Nt_; if (!p.phi_dydy_always_zero()) { nnz_h_lag += Nt_; } index_style = C_STYLE; return true; } template bool MittelmannParaCntrlBase:: get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { typename T::ProblemSpecs p; // Set overall bounds on the variables for (Index jx=0; jx<=Nx_; jx++) { for (Index it=1; it<=Nt_; it++) { Index iy = y_index(jx,it); x_l[iy] = lb_y_; x_u[iy] = ub_y_; } } for (Index i=1; i<=Nt_; i++) { Index iu = u_index(i); x_l[iu] = lb_u_; x_u[iu] = ub_u_; } /* // Boundary condition for t=0 for (Index it=0; it<=Nt_; it++) { Index iy = y_index(0,it); x_u[iy] = x_l[iy] = p.a(t_grid(it)); } */ // Boundary condition for t=0 for (Index jx=0; jx<=Nx_; jx++) { Index iy = y_index(jx,0); x_u[iy] = x_l[iy] = p.a(x_grid(jx)); } // all discretized PDE constraints have right hand side zero for (Index i=0; i bool MittelmannParaCntrlBase:: get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { DBG_ASSERT(init_x==true && init_z==false && init_lambda==false); // Set starting point for y for (Index jx=0; jx<=Nx_; jx++) { for (Index it=0; it<=Nt_; it++) { x[y_index(jx,it)] = 0.; } } // for u for (Index i=1; i<=Nt_; i++) { x[u_index(i)] = (ub_u_+lb_u_)/2.; } /* // DELETEME for (Index i=0; i bool MittelmannParaCntrlBase:: get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) { obj_scaling = 1./Min(dx_,dt_); use_x_scaling = false; use_g_scaling = false; return true; } template bool MittelmannParaCntrlBase:: eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { // Deviation of y from target Number a = x[y_index(0,Nt_)] - y_T_[0]; Number sum = 0.5*a*a; for (Index jx=1; jx bool MittelmannParaCntrlBase:: eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // First set all y entries to zero for (Index jx=0; jx<=Nx_; jx++) { for (Index it=0; it<=Nt_; it++) { grad_f[y_index(jx,it)] = 0.; } } // y entries from y target grad_f[y_index(0,Nt_)] = 0.5*dx_*(x[y_index(0,Nt_)] - y_T_[0]); for (Index jx=1; jx bool MittelmannParaCntrlBase:: eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { typename T::ProblemSpecs p; Index ig=0; Number f = 1./(2.*dx_*dx_); for (Index jx=1; jx bool MittelmannParaCntrlBase:: eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { typename T::ProblemSpecs p; Index ijac = 0; if (values == NULL) { Index ig = 0; for (Index jx=1; jx bool MittelmannParaCntrlBase:: eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { typename T::ProblemSpecs p; Index ihes = 0; if (values == NULL) { // y values from objective for (Index jx=0; jx<= Nx_; jx++) { iRow[ihes] = y_index(jx,Nt_); jCol[ihes] = y_index(jx,Nt_); ihes++; } // u from objective for (Index it=1; it<=Nt_; it++) { iRow[ihes] = u_index(it); jCol[ihes] = u_index(it); ihes++; } // constraint if (!p.phi_dydy_always_zero()) { for (Index it=1; it<=Nt_; it++) { iRow[ihes] = y_index(Nx_,it); jCol[ihes] = y_index(Nx_,it); ihes++; } } } else { // y values from objective values[ihes++] = obj_factor*0.5*dx_; for (Index jx=1; jx void MittelmannParaCntrlBase:: finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) {} class MittelmannParaCntrl5_1 { public: class ProblemSpecs { public: ProblemSpecs () : pi_(4.*atan(1.)), exp13_(exp(1./3.)), exp23_(exp(2./3.)), exp1_(exp(1.)), expm1_(exp(-1.)), sqrt2_(sqrt(2.)) {} Number T() { return 1.; } Number l() { return pi_/4.; } Number lb_y() { return -1e20; } Number ub_y() { return 1e20; } Number lb_u() { return 0.; } Number ub_u() { return 1.; } Number alpha() { return sqrt2_/2.*(exp23_-exp13_); } Number beta() { return 1.; } inline Number y_T(Number x) { return (exp1_ + expm1_)*cos(x); } inline Number a(Number x) { return cos(x); } inline Number a_y(Number t) { return -exp(-2.*t); } inline Number a_u(Number t) { return sqrt2_/2.*exp13_; } inline Number b(Number t) { return exp(-4.*t)/4. - Min(1.,Max(0.,(exp(t)-exp13_)/(exp23_-exp13_))); } inline Number phi(Number y) { return y*pow(fabs(y),3); } inline Number phi_dy(Number y) { return 4.*pow(fabs(y),3); } inline Number phi_dydy(Number y) { return 12.*y*y; } inline bool phi_dydy_always_zero() { return false; } private: const Number pi_; const Number exp13_; const Number exp23_; const Number exp1_; const Number expm1_; const Number sqrt2_; }; }; class MittelmannParaCntrl5_2_1 { public: class ProblemSpecs { public: ProblemSpecs () {} Number T() { return 1.58; } Number l() { return 1.; } Number lb_y() { return -1e20; } Number ub_y() { return 1e20; } Number lb_u() { return -1.; } Number ub_u() { return 1.; } Number alpha() { return 0.001; } Number beta() { return 1.; } inline Number y_T(Number x) { return .5*(1.-x*x); } inline Number a(Number x) { return 0.; } inline Number a_y(Number t) { return 0.; } inline Number a_u(Number t) { return 0.; } inline Number b(Number t) { return 0.; } inline Number phi(Number y) { return 0.; } inline Number phi_dy(Number y) { return 0.; } inline Number phi_dydy(Number y) { DBG_ASSERT(false); return 0.; } inline bool phi_dydy_always_zero() { return true; } }; }; class MittelmannParaCntrl5_2_2 { public: class ProblemSpecs { public: ProblemSpecs () {} Number T() { return 1.58; } Number l() { return 1.; } Number lb_y() { return -1e20; } Number ub_y() { return 1e20; } Number lb_u() { return -1.; } Number ub_u() { return 1.; } Number alpha() { return 0.001; } Number beta() { return 0.; } inline Number y_T(Number x) { return .5*(1.-x*x); } inline Number a(Number x) { return 0.; } inline Number a_y(Number t) { return 0.; } inline Number a_u(Number t) { return 0.; } inline Number b(Number t) { return 0.; } inline Number phi(Number y) { return y*y; } inline Number phi_dy(Number y) { return 2.*y; } inline Number phi_dydy(Number y) { return 2.; } inline bool phi_dydy_always_zero() { return false; } }; }; class MittelmannParaCntrl5_2_3 { public: class ProblemSpecs { public: ProblemSpecs () {} Number T() { return 1.58; } Number l() { return 1.; } Number lb_y() { return 0.; } Number ub_y() { return 0.675; } Number lb_u() { return -1.; } Number ub_u() { return 1.; } Number alpha() { return 0.001; } Number beta() { return 0.; } inline Number y_T(Number x) { return .5*(1.-x*x); } inline Number a(Number x) { return 0.; } inline Number a_y(Number t) { return 0.; } inline Number a_u(Number t) { return 0.; } inline Number b(Number t) { return 0.; } inline Number phi(Number y) { return y*y; } inline Number phi_dy(Number y) { return 2.*y; } inline Number phi_dydy(Number y) { return 2.; } inline bool phi_dydy_always_zero() { return false; } }; }; class MittelmannParaCntrl5_try { public: class ProblemSpecs { public: ProblemSpecs () : pi_(4.*atan(1.)), exp13_(exp(1./3.)), exp23_(exp(2./3.)), exp1_(exp(1.)), expm1_(exp(-1.)), sqrt2_(sqrt(2.)) {} Number T() { return 1.; } Number l() { return pi_/4.; } Number lb_y() { return -1e20; } Number ub_y() { return 1e20; } Number lb_u() { return 0.; } Number ub_u() { return 1.; } Number alpha() { return sqrt2_/2.*(exp23_-exp13_); } Number beta() { return 1.; } inline Number y_T(Number x) { return (exp1_ + expm1_)*cos(x); } inline Number a(Number x) { return cos(x); } inline Number a_y(Number t) { return -exp(-2.*t); } inline Number a_u(Number t) { return sqrt2_/2.*exp13_; } inline Number b(Number t) { return exp(-4.*t)/4. - Min(1.,Max(0.,(exp(t)-exp13_)/(exp23_-exp13_))); } inline Number phi(Number y) { return -y*sin(y/10.); } inline Number phi_dy(Number y) { return -y*cos(y/10.)/10. - sin(y/10.); } inline Number phi_dydy(Number y) { return y*sin(y/10.)/100.; } inline bool phi_dydy_always_zero() { return false; } private: const Number pi_; const Number exp13_; const Number exp23_; const Number exp1_; const Number expm1_; const Number sqrt2_; }; }; #endif Ipopt-3.11.4/Ipopt/examples/hs071_f/0000755000076600007660000000000012214537465015442 5ustar coincoinIpopt-3.11.4/Ipopt/examples/hs071_f/hs071_f.f.in0000644000076600007660000002602011504216567017363 0ustar coincoinC Copyright (C) 2002, 2010 Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C C $Id: hs071_f.f.in 1861 2010-12-21 21:34:47Z andreasw $ C C ============================================================================= C C This is an example for the usage of IPOPT. C It implements problem 71 from the Hock-Schittkowski test suite: C C min x1*x4*(x1 + x2 + x3) + x3 C s.t. x1*x2*x3*x4 >= 25 C x1**2 + x2**2 + x3**2 + x4**2 = 40 C 1 <= x1,x2,x3,x4 <= 5 C C Starting point: C x = (1, 5, 5, 1) C C Optimal solution: C x = (1.00000000, 4.74299963, 3.82114998, 1.37940829) C C ============================================================================= C C C ============================================================================= C C Main driver program C C ============================================================================= C program example C implicit none C C include the Ipopt return codes C include 'IpReturnCodes.inc' C C Size of the problem (number of variables and equality constraints) C integer N, M, NELE_JAC, NELE_HESS, IDX_STY parameter (N = 4, M = 2, NELE_JAC = 8, NELE_HESS = 10) parameter (IDX_STY = 1 ) C C Space for multipliers and constraints C double precision LAM(M) double precision G(M) C C Vector of variables C double precision X(N) C C Vector of lower and upper bounds C double precision X_L(N), X_U(N), Z_L(N), Z_U(N) double precision G_L(M), G_U(M) C C Private data for evaluation routines C This could be used to pass double precision and integer arrays untouched C to the evaluation subroutines EVAL_* C double precision DAT(2) integer IDAT(1) C C Place for storing the Ipopt Problem Handle C @BIT32FCOMMENT@C for 32 bit platforms @BIT32FCOMMENT@ integer IPROBLEM @BIT32FCOMMENT@ integer IPCREATE @BIT64FCOMMENT@C for 64 bit platforms: @BIT64FCOMMENT@ integer*8 IPROBLEM @BIT64FCOMMENT@ integer*8 IPCREATE C integer IERR integer IPSOLVE, IPADDSTROPTION integer IPADDNUMOPTION, IPADDINTOPTION integer IPOPENOUTPUTFILE C double precision F integer i C C The following are the Fortran routines for computing the model C functions and their derivatives - their code can be found further C down in this file. C external EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS CC CC The next is an optional callback method. It is called once per CC iteration. CC C external ITER_CB C C Set initial point and bounds: C data X / 1d0, 5d0, 5d0, 1d0/ data X_L / 1d0, 1d0, 1d0, 1d0 / data X_U / 5d0, 5d0, 5d0, 5d0 / C C Set bounds for the constraints C data G_L / 25d0, 40d0 / data G_U / 1d40, 40d0 / C C First create a handle for the Ipopt problem (and read the options C file) C IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS, 1 IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS) if (IPROBLEM.eq.0) then write(*,*) 'Error creating an Ipopt Problem handle.' stop endif C C Open an output file C IERR = IPOPENOUTPUTFILE(IPROBLEM, 'IPOPT.OUT', 5) if (IERR.ne.0 ) then write(*,*) 'Error opening the Ipopt output file.' goto 9000 endif C C Note: The following options are only examples, they might not be C suitable for your optimization problem. C C Set a string option C IERR = IPADDSTROPTION(IPROBLEM, 'mu_strategy', 'adaptive') if (IERR.ne.0 ) goto 9990 C C Set an integer option C IERR = IPADDINTOPTION(IPROBLEM, 'max_iter', 3000) if (IERR.ne.0 ) goto 9990 C C Set a double precision option C IERR = IPADDNUMOPTION(IPROBLEM, 'tol', 1.d-7) if (IERR.ne.0 ) goto 9990 CC CC Set a callback function to give you control once per iteration. CC You can use it if you want to generate some output, or to stop CC the optimization early. CC C call IPSETCALLBACK(IPROBLEM, ITER_CB) C C As a simple example, we pass the constants in the constraints to C the EVAL_C routine via the "private" DAT array. C DAT(1) = 0.d0 DAT(2) = 0.d0 C C Call optimization routine C IERR = IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT) C C Output: C if( IERR.eq.IP_SOLVE_SUCCEEDED ) then write(*,*) write(*,*) 'The solution was found.' write(*,*) write(*,*) 'The final value of the objective function is ',F write(*,*) write(*,*) 'The optimal values of X are:' write(*,*) do i = 1, N write(*,*) 'X (',i,') = ',X(i) enddo write(*,*) write(*,*) 'The multipliers for the lower bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_L(',i,') = ',Z_L(i) enddo write(*,*) write(*,*) 'The multipliers for the upper bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_U(',i,') = ',Z_U(i) enddo write(*,*) write(*,*) 'The multipliers for the equality constraints are:' write(*,*) do i = 1, M write(*,*) 'LAM(',i,') = ',LAM(i) enddo write(*,*) else write(*,*) write(*,*) 'An error occoured.' write(*,*) 'The error code is ',IERR write(*,*) endif C 9000 continue C C Clean up C call IPFREE(IPROBLEM) stop C 9990 continue write(*,*) 'Error setting an option' goto 9000 end C C ============================================================================= C C Computation of objective function C C ============================================================================= C subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision F, X(N) double precision DAT(*) integer IDAT(*) integer IERR F = X(1)*X(4)*(X(1)+X(2)+X(3)) + X(3) IERR = 0 return end C C ============================================================================= C C Computation of gradient of objective function C C ============================================================================= C subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision GRAD(N), X(N) double precision DAT(*) integer IDAT(*) integer IERR GRAD(1) = X(4)*(2d0*X(1)+X(2)+X(3)) GRAD(2) = X(1)*X(4) GRAD(3) = X(1)*X(4) + 1d0 GRAD(4) = X(1)*(X(1)+X(2)+X(3)) IERR = 0 return end C C ============================================================================= C C Computation of equality constraints C C ============================================================================= C subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR) implicit none integer N, NEW_X, M double precision G(M), X(N) double precision DAT(*) integer IDAT(*) integer IERR G(1) = X(1)*X(2)*X(3)*X(4) - DAT(1) G(2) = X(1)**2 + X(2)**2 + X(3)**2 + X(4)**2 - DAT(2) IERR = 0 return end C C ============================================================================= C C Computation of Jacobian of equality constraints C C ============================================================================= C subroutine EV_JAC_G(TASK, N, X, NEW_X, M, NZ, ACON, AVAR, A, 1 IDAT, DAT, IERR) integer TASK, N, NEW_X, M, NZ double precision X(N), A(NZ) integer ACON(NZ), AVAR(NZ), I double precision DAT(*) integer IDAT(*) integer IERR C C structure of Jacobian: C integer AVAR1(8), ACON1(8) data AVAR1 /1, 2, 3, 4, 1, 2, 3, 4/ data ACON1 /1, 1, 1, 1, 2, 2, 2, 2/ save AVAR1, ACON1 C if( TASK.eq.0 ) then do I = 1, 8 AVAR(I) = AVAR1(I) ACON(I) = ACON1(I) enddo else A(1) = X(2)*X(3)*X(4) A(2) = X(1)*X(3)*X(4) A(3) = X(1)*X(2)*X(4) A(4) = X(1)*X(2)*X(3) A(5) = 2d0*X(1) A(6) = 2d0*X(2) A(7) = 2d0*X(3) A(8) = 2d0*X(4) endif IERR = 0 return end C C ============================================================================= C C Computation of Hessian of Lagrangian C C ============================================================================= C subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM, 1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR) implicit none integer TASK, N, NEW_X, M, NEW_LAM, NNZH, i double precision X(N), OBJFACT, LAM(M), HESS(NNZH) integer IRNH(NNZH), ICNH(NNZH) double precision DAT(*) integer IDAT(*) integer IERR C C structure of Hessian: C integer IRNH1(10), ICNH1(10) data IRNH1 /1, 2, 2, 3, 3, 3, 4, 4, 4, 4/ data ICNH1 /1, 1, 2, 1, 2, 3, 1, 2, 3, 4/ save IRNH1, ICNH1 if( TASK.eq.0 ) then do i = 1, 10 IRNH(i) = IRNH1(i) ICNH(i) = ICNH1(i) enddo else do i = 1, 10 HESS(i) = 0d0 enddo C C objective function C HESS(1) = OBJFACT * 2d0*X(4) HESS(2) = OBJFACT * X(4) HESS(4) = OBJFACT * X(4) HESS(7) = OBJFACT * (2d0*X(1) + X(2) + X(3)) HESS(8) = OBJFACT * X(1) HESS(9) = OBJFACT * X(1) C C first constraint C HESS(2) = HESS(2) + LAM(1) * X(3)*X(4) HESS(4) = HESS(4) + LAM(1) * X(2)*X(4) HESS(5) = HESS(5) + LAM(1) * X(1)*X(4) HESS(7) = HESS(7) + LAM(1) * X(2)*X(3) HESS(8) = HESS(8) + LAM(1) * X(1)*X(3) HESS(9) = HESS(9) + LAM(1) * X(1)*X(2) C C second constraint C HESS(1) = HESS(1) + LAM(2) * 2d0 HESS(3) = HESS(3) + LAM(2) * 2d0 HESS(6) = HESS(6) + LAM(2) * 2d0 HESS(10)= HESS(10)+ LAM(2) * 2d0 endif IERR = 0 return end C C ============================================================================= C C Callback method called once per iteration C C ============================================================================= C subroutine ITER_CB(ALG_MODE, ITER_COUNT,OBJVAL, INF_PR, INF_DU, 1 MU, DNORM, REGU_SIZE, ALPHA_DU, ALPHA_PR, LS_TRIAL, IDAT, 2 DAT, ISTOP) implicit none integer ALG_MODE, ITER_COUNT, LS_TRIAL double precision OBJVAL, INF_PR, INF_DU, MU, DNORM, REGU_SIZE double precision ALPHA_DU, ALPHA_PR double precision DAT(*) integer IDAT(*) integer ISTOP C C You can put some output here C write(*,*) 'Testing callback function in iteration ', ITER_COUNT C C And set ISTOP to 1 if you want Ipopt to stop now. Below is just a C simple example. C if (INF_PR.le.1D-04) ISTOP = 1 return end Ipopt-3.11.4/Ipopt/examples/hs071_f/Makefile.in0000644000076600007660000000445511506471646017520 0ustar coincoin# Copyright (C) 2003, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1875 2010-12-28 23:32:54Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = hs071_f@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = hs071_f.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # Fortran Compiler options F77 = @F77@ # Fotran Compiler options FFLAGS = @FFLAGS@ # additional Fortran Compiler options for linking F77LINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .f .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(F77) $(F77LINKFLAGS) $(FFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) IPOPT.OUT .f.o: $(F77) $(FFLAGS) $(INCL) -c -o $@ $< .f.obj: $(F77) $(FFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/examples/hs071_cpp/0000755000076600007660000000000012214537465015777 5ustar coincoinIpopt-3.11.4/Ipopt/examples/hs071_cpp/hs071_nlp.hpp0000644000076600007660000001025211504216567020221 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: hs071_nlp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-09 #ifndef __HS071_NLP_HPP__ #define __HS071_NLP_HPP__ #include "IpTNLP.hpp" using namespace Ipopt; /** C++ Example NLP for interfacing a problem with IPOPT. * HS071_NLP implements a C++ example of problem 71 of the * Hock-Schittkowski test suite. This example is designed to go * along with the tutorial document and show how to interface * with IPOPT through the TNLP interface. * * Problem hs071 looks like this * * min x1*x4*(x1 + x2 + x3) + x3 * s.t. x1*x2*x3*x4 >= 25 * x1**2 + x2**2 + x3**2 + x4**2 = 40 * 1 <= x1,x2,x3,x4 <= 5 * * Starting point: * x = (1, 5, 5, 1) * * Optimal solution: * x = (1.00000000, 4.74299963, 3.82114998, 1.37940829) * * */ class HS071_NLP : public TNLP { public: /** default constructor */ HS071_NLP(); /** default destructor */ virtual ~HS071_NLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ // HS071_NLP(); HS071_NLP(const HS071_NLP&); HS071_NLP& operator=(const HS071_NLP&); //@} }; #endif Ipopt-3.11.4/Ipopt/examples/hs071_cpp/hs071_nlp.cpp0000644000076600007660000001744711573147064020232 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: hs071_nlp.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #include "hs071_nlp.hpp" #include #include using namespace Ipopt; // constructor HS071_NLP::HS071_NLP() {} //destructor HS071_NLP::~HS071_NLP() {} // returns the size of the problem bool HS071_NLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in HS071_NLP.hpp has 4 variables, x[0] through x[3] n = 4; // one equality constraint and one inequality constraint m = 2; // in this example the jacobian is dense and contains 8 nonzeros nnz_jac_g = 8; // the hessian is also dense and has 16 total nonzeros, but we // only need the lower left corner (since it is symmetric) nnz_h_lag = 10; // use the C style indexing (0-based) index_style = TNLP::C_STYLE; return true; } // returns the variable bounds bool HS071_NLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // here, the n and m we gave IPOPT in get_nlp_info are passed back to us. // If desired, we could assert to make sure they are what we think they are. assert(n == 4); assert(m == 2); // the variables have lower bounds of 1 for (Index i=0; i<4; i++) { x_l[i] = 1.0; } // the variables have upper bounds of 5 for (Index i=0; i<4; i++) { x_u[i] = 5.0; } // the first constraint g1 has a lower bound of 25 g_l[0] = 25; // the first constraint g1 has NO upper bound, here we set it to 2e19. // Ipopt interprets any number greater than nlp_upper_bound_inf as // infinity. The default value of nlp_upper_bound_inf and nlp_lower_bound_inf // is 1e19 and can be changed through ipopt options. g_u[0] = 2e19; // the second constraint g2 is an equality constraint, so we set the // upper and lower bound to the same value g_l[1] = g_u[1] = 40.0; return true; } // returns the initial point for the problem bool HS071_NLP::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { // Here, we assume we only have starting values for x, if you code // your own NLP, you can provide starting values for the dual variables // if you wish assert(init_x == true); assert(init_z == false); assert(init_lambda == false); // initialize to the given starting point x[0] = 1.0; x[1] = 5.0; x[2] = 5.0; x[3] = 1.0; return true; } // returns the value of the objective function bool HS071_NLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { assert(n == 4); obj_value = x[0] * x[3] * (x[0] + x[1] + x[2]) + x[2]; return true; } // return the gradient of the objective function grad_{x} f(x) bool HS071_NLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { assert(n == 4); grad_f[0] = x[0] * x[3] + x[3] * (x[0] + x[1] + x[2]); grad_f[1] = x[0] * x[3]; grad_f[2] = x[0] * x[3] + 1; grad_f[3] = x[0] * (x[0] + x[1] + x[2]); return true; } // return the value of the constraints: g(x) bool HS071_NLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { assert(n == 4); assert(m == 2); g[0] = x[0] * x[1] * x[2] * x[3]; g[1] = x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3]; return true; } // return the structure or values of the jacobian bool HS071_NLP::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian // this particular jacobian is dense iRow[0] = 0; jCol[0] = 0; iRow[1] = 0; jCol[1] = 1; iRow[2] = 0; jCol[2] = 2; iRow[3] = 0; jCol[3] = 3; iRow[4] = 1; jCol[4] = 0; iRow[5] = 1; jCol[5] = 1; iRow[6] = 1; jCol[6] = 2; iRow[7] = 1; jCol[7] = 3; } else { // return the values of the jacobian of the constraints values[0] = x[1]*x[2]*x[3]; // 0,0 values[1] = x[0]*x[2]*x[3]; // 0,1 values[2] = x[0]*x[1]*x[3]; // 0,2 values[3] = x[0]*x[1]*x[2]; // 0,3 values[4] = 2*x[0]; // 1,0 values[5] = 2*x[1]; // 1,1 values[6] = 2*x[2]; // 1,2 values[7] = 2*x[3]; // 1,3 } return true; } //return the structure or values of the hessian bool HS071_NLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. // the hessian for this problem is actually dense Index idx=0; for (Index row = 0; row < 4; row++) { for (Index col = 0; col <= row; col++) { iRow[idx] = row; jCol[idx] = col; idx++; } } assert(idx == nele_hess); } else { // return the values. This is a symmetric matrix, fill the lower left // triangle only // fill the objective portion values[0] = obj_factor * (2*x[3]); // 0,0 values[1] = obj_factor * (x[3]); // 1,0 values[2] = 0.; // 1,1 values[3] = obj_factor * (x[3]); // 2,0 values[4] = 0.; // 2,1 values[5] = 0.; // 2,2 values[6] = obj_factor * (2*x[0] + x[1] + x[2]); // 3,0 values[7] = obj_factor * (x[0]); // 3,1 values[8] = obj_factor * (x[0]); // 3,2 values[9] = 0.; // 3,3 // add the portion for the first constraint values[1] += lambda[0] * (x[2] * x[3]); // 1,0 values[3] += lambda[0] * (x[1] * x[3]); // 2,0 values[4] += lambda[0] * (x[0] * x[3]); // 2,1 values[6] += lambda[0] * (x[1] * x[2]); // 3,0 values[7] += lambda[0] * (x[0] * x[2]); // 3,1 values[8] += lambda[0] * (x[0] * x[1]); // 3,2 // add the portion for the second constraint values[0] += lambda[1] * 2; // 0,0 values[2] += lambda[1] * 2; // 1,1 values[5] += lambda[1] * 2; // 2,2 values[9] += lambda[1] * 2; // 3,3 } return true; } void HS071_NLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // here is where we would store the solution to variables, or write to a file, etc // so we could use the solution. // For this example, we write the solution to the console std::cout << std::endl << std::endl << "Solution of the primal variables, x" << std::endl; for (Index i=0; i using namespace Ipopt; int main(int argv, char* argc[]) { // Create a new instance of your nlp // (use a SmartPtr, not raw) SmartPtr mynlp = new HS071_NLP(); // Create a new instance of IpoptApplication // (use a SmartPtr, not raw) // We are using the factory, since this allows us to compile this // example with an Ipopt Windows DLL SmartPtr app = IpoptApplicationFactory(); // Change some options // Note: The following choices are only examples, they might not be // suitable for your optimization problem. app->Options()->SetNumericValue("tol", 1e-7); app->Options()->SetStringValue("mu_strategy", "adaptive"); app->Options()->SetStringValue("output_file", "ipopt.out"); // The following overwrites the default name (ipopt.opt) of the // options file // app->Options()->SetStringValue("option_file_name", "hs071.opt"); // Initialize the IpoptApplication and process the options ApplicationReturnStatus status; status = app->Initialize(); if (status != Solve_Succeeded) { std::cout << std::endl << std::endl << "*** Error during initialization!" << std::endl; return (int) status; } // Ask Ipopt to solve the problem status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { std::cout << std::endl << std::endl << "*** The problem solved!" << std::endl; } else { std::cout << std::endl << std::endl << "*** The problem FAILED!" << std::endl; } // As the SmartPtrs go out of scope, the reference count // will be decremented and the objects will automatically // be deleted. return (int) status; } Ipopt-3.11.4/Ipopt/examples/hs071_c/0000755000076600007660000000000012214537465015437 5ustar coincoinIpopt-3.11.4/Ipopt/examples/hs071_c/hs071_c.c0000644000076600007660000002720211560575154016752 0ustar coincoin/* Copyright (C) 2005, 2011 International Business Machines and others. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: hs071_c.c 1996 2011-05-05 19:28:44Z andreasw $ * * Authors: Carl Laird, Andreas Waechter IBM 2005-08-17 */ #include "IpStdCInterface.h" #include #include #include /* Function Declarations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data); Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data); Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data); Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); Bool intermediate_cb(Index alg_mod, Index iter_count, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, UserDataPtr user_data); /* This is an example how user_data can be used. */ struct MyUserData { Number g_offset[2]; /* This is an offset for the constraints. */ }; /* Main Program */ int main() { Index n=-1; /* number of variables */ Index m=-1; /* number of constraints */ Number* x_L = NULL; /* lower bounds on x */ Number* x_U = NULL; /* upper bounds on x */ Number* g_L = NULL; /* lower bounds on g */ Number* g_U = NULL; /* upper bounds on g */ IpoptProblem nlp = NULL; /* IpoptProblem */ enum ApplicationReturnStatus status; /* Solve return code */ Number* x = NULL; /* starting point and solution vector */ Number* mult_g = NULL; /* constraint multipliers at the solution */ Number* mult_x_L = NULL; /* lower bound multipliers at the solution */ Number* mult_x_U = NULL; /* upper bound multipliers at the solution */ Number obj; /* objective value */ Index i; /* generic counter */ /* Number of nonzeros in the Jacobian of the constraints */ Index nele_jac = 8; /* Number of nonzeros in the Hessian of the Lagrangian (lower or upper triangual part only) */ Index nele_hess = 10; /* indexing style for matrices */ Index index_style = 0; /* C-style; start counting of rows and column indices at 0 */ /* our user data for the function evalutions. */ struct MyUserData user_data; /* set the number of variables and allocate space for the bounds */ n=4; x_L = (Number*)malloc(sizeof(Number)*n); x_U = (Number*)malloc(sizeof(Number)*n); /* set the values for the variable bounds */ for (i=0; ig_offset[0]; g[1] = x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3] + my_data->g_offset[1]; return TRUE; } Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { if (values == NULL) { /* return the structure of the jacobian */ /* this particular jacobian is dense */ iRow[0] = 0; jCol[0] = 0; iRow[1] = 0; jCol[1] = 1; iRow[2] = 0; jCol[2] = 2; iRow[3] = 0; jCol[3] = 3; iRow[4] = 1; jCol[4] = 0; iRow[5] = 1; jCol[5] = 1; iRow[6] = 1; jCol[6] = 2; iRow[7] = 1; jCol[7] = 3; } else { /* return the values of the jacobian of the constraints */ values[0] = x[1]*x[2]*x[3]; /* 0,0 */ values[1] = x[0]*x[2]*x[3]; /* 0,1 */ values[2] = x[0]*x[1]*x[3]; /* 0,2 */ values[3] = x[0]*x[1]*x[2]; /* 0,3 */ values[4] = 2*x[0]; /* 1,0 */ values[5] = 2*x[1]; /* 1,1 */ values[6] = 2*x[2]; /* 1,2 */ values[7] = 2*x[3]; /* 1,3 */ } return TRUE; } Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { Index idx = 0; /* nonzero element counter */ Index row = 0; /* row counter for loop */ Index col = 0; /* col counter for loop */ if (values == NULL) { /* return the structure. This is a symmetric matrix, fill the lower left * triangle only. */ /* the hessian for this problem is actually dense */ idx=0; for (row = 0; row < 4; row++) { for (col = 0; col <= row; col++) { iRow[idx] = row; jCol[idx] = col; idx++; } } assert(idx == nele_hess); } else { /* return the values. This is a symmetric matrix, fill the lower left * triangle only */ /* fill the objective portion */ values[0] = obj_factor * (2*x[3]); /* 0,0 */ values[1] = obj_factor * (x[3]); /* 1,0 */ values[2] = 0; /* 1,1 */ values[3] = obj_factor * (x[3]); /* 2,0 */ values[4] = 0; /* 2,1 */ values[5] = 0; /* 2,2 */ values[6] = obj_factor * (2*x[0] + x[1] + x[2]); /* 3,0 */ values[7] = obj_factor * (x[0]); /* 3,1 */ values[8] = obj_factor * (x[0]); /* 3,2 */ values[9] = 0; /* 3,3 */ /* add the portion for the first constraint */ values[1] += lambda[0] * (x[2] * x[3]); /* 1,0 */ values[3] += lambda[0] * (x[1] * x[3]); /* 2,0 */ values[4] += lambda[0] * (x[0] * x[3]); /* 2,1 */ values[6] += lambda[0] * (x[1] * x[2]); /* 3,0 */ values[7] += lambda[0] * (x[0] * x[2]); /* 3,1 */ values[8] += lambda[0] * (x[0] * x[1]); /* 3,2 */ /* add the portion for the second constraint */ values[0] += lambda[1] * 2; /* 0,0 */ values[2] += lambda[1] * 2; /* 1,1 */ values[5] += lambda[1] * 2; /* 2,2 */ values[9] += lambda[1] * 2; /* 3,3 */ } return TRUE; } Bool intermediate_cb(Index alg_mod, Index iter_count, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, UserDataPtr user_data) { printf("Testing intermediate callback in iteration %d\n", iter_count); if (inf_pr < 1e-4) return FALSE; return TRUE; } Ipopt-3.11.4/Ipopt/examples/hs071_c/Makefile.in0000644000076600007660000000467211576071414017512 0ustar coincoin# Copyright (C) 2003, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 2016 2011-06-15 08:53:32Z stefan $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = hs071_c@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = hs071_c.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C Compiler command CC = @CC@ # C Compiler options CFLAGS = @CFLAGS@ # additional C Compiler options for linking CLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CC) $(CFLAGS) $(CLINKFLAGS) -o $@ $$bla $(LIBS) $(ADDLIBS) clean: rm -f $(EXE) $(OBJS) ipopt.out .c.o: $(CC) $(CFLAGS) $(INCL) -c -o $@ $< .c.obj: $(CC) $(CFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/examples/Cpp_example/0000755000076600007660000000000012214537465016530 5ustar coincoinIpopt-3.11.4/Ipopt/examples/Cpp_example/cpp_example.cpp0000644000076600007660000000302511573147064021530 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: cpp_example.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #include "IpIpoptApplication.hpp" #include "IpSolveStatistics.hpp" #include "MyNLP.hpp" #include using namespace Ipopt; int main(int argv, char* argc[]) { // Create an instance of your nlp... SmartPtr mynlp = new MyNLP(); // Create an instance of the IpoptApplication // // We are using the factory, since this allows us to compile this // example with an Ipopt Windows DLL SmartPtr app = IpoptApplicationFactory(); // Initialize the IpoptApplication and process the options ApplicationReturnStatus status; status = app->Initialize(); if (status != Solve_Succeeded) { std::cout << std::endl << std::endl << "*** Error during initialization!" << std::endl; return (int) status; } status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { // Retrieve some statistics about the solve Index iter_count = app->Statistics()->IterationCount(); std::cout << std::endl << std::endl << "*** The problem solved in " << iter_count << " iterations!" << std::endl; Number final_obj = app->Statistics()->FinalObjective(); std::cout << std::endl << std::endl << "*** The final value of the objective function is " << final_obj << '.' << std::endl; } return (int) status; } Ipopt-3.11.4/Ipopt/examples/Cpp_example/MyNLP.cpp0000644000076600007660000001223511573147064020175 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MyNLP.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #include "MyNLP.hpp" #include using namespace Ipopt; /* Constructor. */ MyNLP::MyNLP() {} MyNLP::~MyNLP() {} bool MyNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem described in MyNLP.hpp has 2 variables, x1, & x2, n = 2; // one equality constraint, m = 1; // 2 nonzeros in the jacobian (one for x1, and one for x2), nnz_jac_g = 2; // and 2 nonzeros in the hessian of the lagrangian // (one in the hessian of the objective for x2, // and one in the hessian of the constraints for x1) nnz_h_lag = 2; // We use the standard fortran index style for row/col entries index_style = FORTRAN_STYLE; return true; } bool MyNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { // here, the n and m we gave IPOPT in get_nlp_info are passed back to us. // If desired, we could assert to make sure they are what we think they are. assert(n == 2); assert(m == 1); // x1 has a lower bound of -1 and an upper bound of 1 x_l[0] = -1.0; x_u[0] = 1.0; // x2 has no upper or lower bound, so we set them to // a large negative and a large positive number. // The value that is interpretted as -/+infinity can be // set in the options, but it defaults to -/+1e19 x_l[1] = -1.0e19; x_u[1] = +1.0e19; // we have one equality constraint, so we set the bounds on this constraint // to be equal (and zero). g_l[0] = g_u[0] = 0.0; return true; } bool MyNLP::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { // Here, we assume we only have starting values for x, if you code // your own NLP, you can provide starting values for the others if // you wish. assert(init_x == true); assert(init_z == false); assert(init_lambda == false); // we initialize x in bounds, in the upper right quadrant x[0] = 0.5; x[1] = 1.5; return true; } bool MyNLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { // return the value of the objective function Number x2 = x[1]; obj_value = -(x2 - 2.0) * (x2 - 2.0); return true; } bool MyNLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) // grad_{x1} f(x): x1 is not in the objective grad_f[0] = 0.0; // grad_{x2} f(x): Number x2 = x[1]; grad_f[1] = -2.0*(x2 - 2.0); return true; } bool MyNLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) Number x1 = x[0]; Number x2 = x[1]; g[0] = -(x1*x1 + x2 - 1.0); return true; } bool MyNLP::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints // element at 1,1: grad_{x1} g_{1}(x) iRow[0] = 1; jCol[0] = 1; // element at 1,2: grad_{x2} g_{1}(x) iRow[1] = 1; jCol[1] = 2; } else { // return the values of the jacobian of the constraints Number x1 = x[0]; // element at 1,1: grad_{x1} g_{1}(x) values[0] = -2.0 * x1; // element at 1,2: grad_{x1} g_{1}(x) values[1] = -1.0; } return true; } bool MyNLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. // element at 1,1: grad^2_{x1,x1} L(x,lambda) iRow[0] = 1; jCol[0] = 1; // element at 2,2: grad^2_{x2,x2} L(x,lambda) iRow[1] = 2; jCol[1] = 2; // Note: off-diagonal elements are zero for this problem } else { // return the values // element at 1,1: grad^2_{x1,x1} L(x,lambda) values[0] = -2.0 * lambda[0]; // element at 2,2: grad^2_{x2,x2} L(x,lambda) values[1] = -2.0 * obj_factor; // Note: off-diagonal elements are zero for this problem } return true; } void MyNLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // here is where we would store the solution to variables, or write to a file, etc // so we could use the solution. Since the solution is displayed to the console, // we currently do nothing here. } Ipopt-3.11.4/Ipopt/examples/Cpp_example/Makefile.in0000644000076600007660000000472011576071414020575 0ustar coincoin# Copyright (C) 2003, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 2016 2011-06-15 08:53:32Z stefan $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = cpp_example@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = cpp_example.@OBJEXT@ \ MyNLP.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(LIBS) $(ADDLIBS) clean: rm -rf $(EXE) $(OBJS) .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/examples/Cpp_example/MyNLP.hpp0000644000076600007660000000756711504216567020215 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: MyNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-05 #ifndef __MYNLP_HPP__ #define __MYNLP_HPP__ #include "IpTNLP.hpp" using namespace Ipopt; /** C++ Example NLP for interfacing a problem with IPOPT. * MyNLP implements a C++ example showing how to interface with IPOPT * through the TNLP interface. This example is designed to go along with * the tutorial document (see Examples/CppTutorial/). * This class implements the following NLP. * * min_x f(x) = -(x2-2)^2 * s.t. * 0 = x1^2 + x2 - 1 * -1 <= x1 <= 1 * */ class MyNLP : public TNLP { public: /** default constructor */ MyNLP(); /** default destructor */ virtual ~MyNLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ // MyNLP(); MyNLP(const MyNLP&); MyNLP& operator=(const MyNLP&); //@} }; #endif Ipopt-3.11.4/Ipopt/LICENSE0000644000076600007660000002576111504216567013473 0ustar coincoinEclipse Public License - v 1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 1. DEFINITIONS "Contribution" means: a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor: i) changes to the Program, and ii) additions to the Program; where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. "Contributor" means any person or entity that distributes the Program. "Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. "Program" means the Contributions distributed in accordance with this Agreement. "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. 2. GRANT OF RIGHTS a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 3. REQUIREMENTS A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: a) it complies with the terms and conditions of this Agreement; and b) its license agreement: i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. When the Program is made available in source code form: a) it must be made available under this Agreement; and b) a copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any copyright notices contained within the Program. Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. 4. COMMERCIAL DISTRIBUTION Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 5. NO WARRANTY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 6. DISCLAIMER OF LIABILITY EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. GENERAL If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. Ipopt-3.11.4/Ipopt/Makefile.am0000644000076600007660000001410212132276745014507 0ustar coincoin# Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2207 2013-04-13 15:46:45Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign SUBDIRS = src/Common src/LinAlg src/Algorithm src/contrib/CGPenalty if BUILD_LINEARSOLVERLOADER SUBDIRS += src/contrib/LinearSolverLoader endif SUBDIRS += src/Interfaces src/Apps if ALWAYS_FALSE SUBDIRS += test endif EXTRA_DIST = \ examples/Cpp_example/cpp_example.cpp \ examples/Cpp_example/Makefile.in \ examples/Cpp_example/MyNLP.cpp \ examples/Cpp_example/MyNLP.hpp \ examples/hs071_f/Makefile.in \ examples/hs071_f/hs071_f.f.in \ examples/hs071_c/Makefile.in \ examples/hs071_c/hs071_c.c \ examples/hs071_cpp/Makefile.in \ examples/hs071_cpp/hs071_main.cpp \ examples/hs071_cpp/hs071_nlp.cpp \ examples/hs071_cpp/hs071_nlp.hpp \ examples/ScalableProblems/LuksanVlcek1.cpp \ examples/ScalableProblems/LuksanVlcek1.hpp \ examples/ScalableProblems/LuksanVlcek2.cpp \ examples/ScalableProblems/LuksanVlcek2.hpp \ examples/ScalableProblems/LuksanVlcek3.cpp \ examples/ScalableProblems/LuksanVlcek3.hpp \ examples/ScalableProblems/LuksanVlcek4.cpp \ examples/ScalableProblems/LuksanVlcek4.hpp \ examples/ScalableProblems/LuksanVlcek5.cpp \ examples/ScalableProblems/LuksanVlcek5.hpp \ examples/ScalableProblems/LuksanVlcek6.cpp \ examples/ScalableProblems/LuksanVlcek6.hpp \ examples/ScalableProblems/LuksanVlcek7.cpp \ examples/ScalableProblems/LuksanVlcek7.hpp \ examples/ScalableProblems/Makefile.in \ examples/ScalableProblems/MittelmannBndryCntrlDiri.cpp \ examples/ScalableProblems/MittelmannBndryCntrlDiri.hpp \ examples/ScalableProblems/MittelmannBndryCntrlNeum.cpp \ examples/ScalableProblems/MittelmannBndryCntrlNeum.hpp \ examples/ScalableProblems/MittelmannDistCntrlDiri.cpp \ examples/ScalableProblems/MittelmannDistCntrlDiri.hpp \ examples/ScalableProblems/MittelmannDistCntrlNeumA.cpp \ examples/ScalableProblems/MittelmannDistCntrlNeumA.hpp \ examples/ScalableProblems/MittelmannDistCntrlNeumB.cpp \ examples/ScalableProblems/MittelmannDistCntrlNeumB.hpp \ examples/ScalableProblems/MittelmannParaCntrl.hpp \ examples/ScalableProblems/README \ examples/ScalableProblems/RegisteredTNLP.cpp \ examples/ScalableProblems/RegisteredTNLP.hpp \ examples/ScalableProblems/solve_problem.cpp \ README \ INSTALL \ LICENSE \ AUTHORS \ doc/documentation.bbl \ doc/documentation.tex \ doc/documentation.pdf \ doc/options.tex \ test/run_unitTests.in \ test/mytoy.nl \ Windows/VisualStudio_dotNET/README \ Windows/VisualStudio_dotNET/CppExample/CppExample.vcproj \ Windows/VisualStudio_dotNET/hs071_cpp/hs071_cpp.vcproj \ Windows/VisualStudio_dotNET/hs071_c/hs071_c.vcproj \ Windows/VisualStudio_dotNET/hs071_f/hs071_f.vfproj \ Windows/VisualStudio_dotNET/hs071_f/hs071_f.f \ Windows/VisualStudio_dotNET/FortranLinAlg/FortranLinAlg.vfproj \ Windows/VisualStudio_dotNET/Ipopt/Ipopt.sln \ Windows/VisualStudio_dotNET/Ipopt/Ipopt.vcproj \ Windows/VisualStudio_dotNET/ScalableProblems/ScalableProblems.vcproj .PHONY: cuter test unitTest astyle doxydoc # Stuff to clean up from "make test" DISTCLEANFILES = \ examples/Cpp_example/cpp_example@EXEEXT@ \ examples/Cpp_example/cpp_example.@OBJEXT@ \ examples/Cpp_example/MyNLP.@OBJEXT@ \ examples/hs071_cpp/hs071_cpp@EXEEXT@ \ examples/hs071_cpp/hs071_main.@OBJEXT@ \ examples/hs071_cpp/hs071_nlp.@OBJEXT@ \ examples/hs071_cpp/ipopt.out \ examples/hs071_c/hs071_c@EXEEXT@ \ examples/hs071_c/hs071_c.@OBJEXT@ \ examples/hs071_c/ipopt.out \ examples/hs071_f/hs071_f@EXEEXT@ \ examples/hs071_f/hs071_f.@OBJEXT@ \ examples/hs071_f/IPOPT.OUT \ examples/ScalableProblems/*.@OBJEXT@ \ examples/ScalableProblems/solve_problem@EXEEXT@ \ examples/ScalableProblems/solution.txt \ tutorial/CodingExercise/*/*/*.@OBJEXT@ \ tutorial/CodingExercise/C/*/TutorialC@EXEEXT@ \ tutorial/CodingExercise/Cpp/*/TutorialCpp@EXEEXT@ \ tutorial/CodingExercise/Fortran/*/TutorialFortran@EXEEXT@ tmpdir = tmpdir libipopt = libipopt.a cuter: install cd src/Apps/CUTErInterface; $(MAKE) cuter test: unitTest unitTest: all cd test; $(MAKE) test doxydoc : doxygen doxydoc/doxygen.conf clean-doxydoc: cd doxydoc && rm -rf html *.log *.tag install-exec-local: install-doc uninstall-local: uninstall-doc clean-local : clean-doxydoc astyle: cd src/Algorithm; $(MAKE) astyle cd src/Algorithm/LinearSolvers; $(MAKE) astyle cd src/Algorithm/Inexact; $(MAKE) astyle cd src/contrib/CGPenalty; $(MAKE) astyle cd src/Apps/AmplSolver; $(MAKE) astyle cd src/Common; $(MAKE) astyle cd src/LinAlg; $(MAKE) astyle cd src/LinAlg/TMatrices; $(MAKE) astyle cd src/Interfaces; $(MAKE) astyle pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = ipopt.pc addlibsdir = $(DESTDIR)$(datadir)/coin/doc/Ipopt # setup addlibs files # the addlibs_cpp file is created by running pkg-config on the installed ipopt.pc, if pkg-config available, # or by using variables setup in configure # the addlibs_c file is created by adding @CXXLIBS@ to the content of the addlibs_cpp file # the addlibs_f file is creating by taking the content of the addlibs_cpp file and removing the FLIBS # since pkg-config may have reordered the flags from FLIBS, we take them out one by one install-data-hook: @$(mkdir_p) "$(addlibsdir)" if COIN_HAS_PKGCONFIG PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ \ $(PKG_CONFIG) --libs ipopt > $(addlibsdir)/ipopt_addlibs_cpp.txt else if COIN_CXX_IS_CL echo "-libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@" > $(addlibsdir)/ipopt_addlibs_cpp.txt else echo "-L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@" > $(addlibsdir)/ipopt_addlibs_cpp.txt endif endif addlibs=`cat $(addlibsdir)/ipopt_addlibs_cpp.txt` ; \ echo "$$addlibs @CXXLIBS@" > $(addlibsdir)/ipopt_addlibs_c.txt ; \ for i in @FLIBS@ coin_dummy ; do \ addlibs=`echo -n " $$addlibs " | sed -e "s! $$i ! !g"` ; \ done ; \ echo "$$addlibs @CXXLIBS@" > $(addlibsdir)/ipopt_addlibs_f.txt uninstall-hook: rm -f $(addlibsdir)/ipopt_addlibs_{cpp,c,f}.txt include BuildTools/Makemain.inc Ipopt-3.11.4/Ipopt/configure.ac0000644000076600007660000007651612214340172014745 0ustar coincoin# Copyright (C) 2004, 2011 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2389 2013-09-12 13:24:10Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([Ipopt],[3.11.4],[http://projects.coin-or.org/Ipopt/newticket]) AC_COPYRIGHT( [Copyright 2004, 2011 International Business Machines and others. All Rights Reserved. This file is part of the open source package IPOPT which is distributed under the Eclipse Public License.]) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(src/Common/IpDebug.hpp) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type AC_CANONICAL_BUILD # If this project depends on external projects, the Externals file in # the source root directory contains definition of where to find those # externals. The following macro ensures that those externals are # retrieved by svn if they are not there yet. AC_COIN_PROJECTDIR_INIT(Ipopt,10:4:9) # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE(Ipopt) # We need egrep and ln -s somewherw AC_PROG_EGREP AC_PROG_LN_S # Get the name of the C compiler and appropriate compiler options AC_COIN_PROG_CC # Get the name of the C++ compiler and appropriate compiler options AC_COIN_PROG_CXX # Get the C++ runtime libraries in case we want to link with a C or # Fortran compiler AC_COIN_CXXLIBS # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Find out how to call Fortran from C and determine Fortran runtime libraries AC_COIN_F77_WRAPPERS # Initialize automake and libtool AC_COIN_INIT_AUTO_TOOLS # Some extra stuff for blue gene on Laci's request AC_SUBST(BLUEGENEEXTRA) BLUEGENEEXTRA="echo" AC_ARG_ENABLE([bg],, [case "${enableval}" in yes) BLUEGENEEXTRA="chmod 644 *.o; cp ../Extern/ASL/amplsolver.a ../lib/libamplsolver.a" is_bg=yes ;; esac],[is_bg=no]) # A Fix for the AIX compiler AM_CONDITIONAL([AIX_FIX_COMPILER_BUG], test "x$AIX_FIX_COMPILER_BUG" != x) # Doxygen AC_COIN_DOXYGEN() ############################################################################# # COIN-OR components # ############################################################################# AC_COIN_CHECK_LIBM(IpoptLib) AC_COIN_CHECK_PACKAGE_BLAS(IpoptLib) if test $coin_has_blas != yes; then AC_MSG_ERROR([Required package BLAS not found.]) fi AC_COIN_CHECK_PACKAGE_LAPACK(IpoptLib) if test $coin_has_lapack != yes; then AC_MSG_WARN([Compiling code without LAPACK. Certain options (e.g., quasi-Newton) will not work.]) fi AC_COIN_CHECK_PACKAGE(ASL, [coinasl], [IpoptAmplInterfaceLib]) AC_COIN_CHECK_PACKAGE(HSL, [coinhsl >= 1.3], [IpoptLib]) AC_COIN_CHECK_PACKAGE(Mumps, [coinmumps], [IpoptLib]) ############################################################################# # Stuff for examples # ############################################################################# # find out how long an int pointer is to know if we need INTEGER*4 or # INTEGER*8 in Fortran to capture pointers. # # This test doesn't work on BlueGene if test "$is_bg" = no; then AC_LANG_PUSH(C) AC_CHECK_SIZEOF(int *) AC_LANG_POP(C) else ac_cv_sizeof_int_p=4 fi AC_SUBST(BITS_PER_POINTER) AC_SUBST(BIT32FCOMMENT) AC_SUBST(BIT64FCOMMENT) case "$ac_cv_sizeof_int_p" in 4 | 4?) BITS_PER_POINTER=32 BIT32FCOMMENT='' BIT64FCOMMENT='C' ;; 8 | 8?) BITS_PER_POINTER=64 BIT32FCOMMENT='C' BIT64FCOMMENT='' ;; *) AC_MSG_ERROR([Unknown length of int *]);; esac ######################################################## ## Set variables for the archiver for C++ object files # ## (for AIX in 64bit mode also on SGI, SUN...) # ######################################################## if test -z "$CXXAR"; then if test ! "$GXX" = "yes"; then case $build in *-sun-*) CXXAR="CC -xar -o" ;; *-sgi-*) CXXAR="CC -ar -o" ;; esac fi if test -z "$CXXAR"; then CXXAR="$AR cru" fi fi AC_ARG_VAR(CXXAR,[Command for making archives from C++ objects (default is AR crv) - only needed for Example]) AC_MSG_NOTICE([Using CXXAR=\"$CXXAR\".]) ############################################################################ ############################################################################ # Stuff that we need for C++ programs # ############################################################################ ############################################################################ AC_LANG_PUSH(C++) ################ # Header Files # ################ AC_COIN_CHECK_CXX_CHEADER(math) AC_COIN_CHECK_CXX_CHEADER(ctype) AC_COIN_CHECK_CXX_CHEADER(assert) AC_COIN_CHECK_CXX_CHEADER(stdio) AC_COIN_CHECK_CXX_CHEADER(stdlib) AC_COIN_CHECK_CXX_CHEADER(stdarg) AC_COIN_CHECK_CXX_CHEADER(string) AC_COIN_CHECK_CXX_CHEADER(float) AC_COIN_CHECK_CXX_CHEADER(time) AC_COIN_CHECK_CXX_CHEADER(stddef) ################### # Function finite # ################### AC_COIN_CHECK_ISFINITE ########### # va_copy # ########### AC_CHECK_DECL([va_copy],[AC_DEFINE([HAVE_VA_COPY],[1], [Define to 1 if va_copy is available])],,[ #ifdef HAVE_CSTDARG # include #else # ifdef HAVE_STDARG_H # include # endif #endif]) ########################### # Random number generator # ########################### AC_CHECK_DECL([drand48],[AC_DEFINE([HAVE_DRAND48],[1], [Define to 1 if function drand48 is available])],,[ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif ]) AC_CHECK_DECL([rand],[AC_DEFINE([HAVE_RAND],[1], [Define to 1 if function rand is available])],,[ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif ]) AC_CHECK_DECL([srand],[AC_DEFINE([HAVE_STD__RAND],[1], [Define to 1 if function std::rand is available])],,[ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif using namespace std;]) ########################################################################## # Additional libraries and packages ########### # HSL # ########### # some Fortran compilers do not allow preprocessor directives # so we check here whether the define for MA28 is set in CoinHslConfig.h have_ma28=no if test "$coin_has_hsl" = "yes" ; then AC_LANG_PUSH(C) save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $HSL_CFLAGS" AC_MSG_CHECKING([whether MA28 is available with HSL]) AC_PREPROC_IFELSE( [AC_LANG_PROGRAM([ #define HAVE_CONFIG_H #include "CoinHslConfig.h" #ifndef COINHSL_HAS_MA28 #error "do not have MA28" #endif ])], [AC_MSG_RESULT([yes]) have_ma28=yes], [AC_MSG_RESULT([no])]) CPPFLAGS="$save_CPPFLAGS" AC_LANG_POP(C) fi AM_CONDITIONAL(HAVE_MA28, test $have_ma28 = yes) ########### # PARDISO # ########### AC_LANG_PUSH([Fortran 77]) AC_ARG_WITH([pardiso], AC_HELP_STRING([--with-pardiso], [specify Pardiso library]), [use_pardiso=$withval], [use_pardiso=no]) # Check whether MKL is being used have_mkl=no #SAVE_LIBS="$LIBS" #if test "$use_pardiso" = "no"; then # LIBS="$LIBS $LAPACK_LIBS $BLAS_LIBS" #else # LIBS="$use_pardiso $LIBS $LAPACK_LIBS $BLAS_LIBS" #fi #AC_MSG_CHECKING([whether MKL is being used]) #AC_TRY_LINK([],[ call mkl_get_version_string()], # [AC_MSG_RESULT(yes) # have_mkl=yes], # [AC_MSG_RESULT(no)]) # If using MKL, always enable Pardiso #if test "$have_mkl" = "yes" -a "$use_pardiso" = "no"; then # use_pardiso="" #fi #LIBS="$SAVE_LIBS" if test "$use_pardiso" != "no"; then SAVE_LIBS="$LIBS" PARDISO_LIB="$use_pardiso" LIBS="$PARDISO_LIB $LIBS $LAPACK_LIBS $BLAS_LIBS" # ToDo put this back in AC_MSG_CHECKING([whether user-supplied Pardiso library \"$use_pardiso\" works]) AC_TRY_LINK([],[ call PARDISO()], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR([Pardiso library $use_pardiso does not seem to work])]) AC_DEFINE(HAVE_PARDISO,1,[Define to 1 if Pardiso is available]) AC_MSG_CHECKING([whether Pardiso library is at least version 4.0]) AC_TRY_LINK([],[ call pardiso_ipopt_newinterface()], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) AC_DEFINE(HAVE_PARDISO_OLDINTERFACE,1,[Define to 1 if you are not using at least a 4.0 version of Pardiso]) if test "$have_mkl" = "yes"; then AC_DEFINE(HAVE_PARDISO_MKL,1,[Define to 1 if you are using Pardiso from MKL]) else have_mkl=no fi]) # Test if this is the parallel version of Pardiso # (MKL PARDISO is always parallel, even though it does not have this function implemented) pardiso_parallel=no if test "$have_mkl" = "yes" ; then pardiso_parallel=yes else AC_MSG_CHECKING([whether Pardiso library is the parallel version]) AC_TRY_LINK([],[ call pardiso_exist_parallel()], [AC_MSG_RESULT(yes) pardiso_parallel=yes], [AC_MSG_RESULT(no)]) fi if test "$pardiso_parallel" = yes ; then AC_DEFINE(HAVE_PARDISO_PARALLEL,1,[Define to 1 if you are using the parallel version of Pardiso]) fi LIBS="$SAVE_LIBS" IPOPTLIB_LIBS="$PARDISO_LIB $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$PARDISO_LIB $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$PARDISO_LIB $IPOPTLIB_LIBS_INSTALLED" fi AC_LANG_POP([Fortran 77]) ######## # WSMP # ######## AC_ARG_WITH([wsmp], AC_HELP_STRING([--with-wsmp], [specify WSMP library]), [use_wsmp=$withval], [use_wsmp=no]) if test "$use_wsmp" != "no"; then SAVE_LIBS="$LIBS" LIBS="$LIBS $use_wsmp $BLAS_LIBS" AC_LANG_PUSH([Fortran 77]) AC_MSG_CHECKING([whether user-supplied WSMP library \"$use_wsmp\" works]) AC_TRY_LINK([],[ call WSSMP()], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR([WSMP library $use_wsmp does not seem to work])]) AC_LANG_POP([Fortran 77]) AC_DEFINE(HAVE_WSMP,1, [Define to 1 if WSMP is available]) LIBS="$SAVE_LIBS" IPOPTLIB_LIBS="$use_wsmp $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$use_wsmp $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$use_wsmp $IPOPTLIB_LIBS_INSTALLED" fi # Check if at least one linear solver was found if test "$have_ma27" != "yes" -a "$have_ma57" != "yes" -a "$have_ma77" != "yes" -a "$have_ma86" != "yes" -a "$use_pardiso" = "no" -a "$use_taucs" = no -a "$use_wsmp" = no -a "$coin_has_mumps" != yes; then AC_MSG_WARN("You are compiling Ipopt without any linear solver (such as MUMPS). You will only be able to run Ipopt if you compile a shared library with a linear solver.") fi ################################################### # Check if user wants inexact algorithm available # ################################################### AC_ARG_ENABLE([inexact-solver], [AC_HELP_STRING([--enable-inexact-solver], [enable inexact linear solver version EXPERIMENTAL! (default: no)])], [case "$enableval" in no | yes) ;; *) AC_MSG_ERROR([invalid argument for --enable-inexact-solver: $enableval]);; esac use_inexact=$enableval], [use_inexact=no]) if test $use_inexact = yes; then if test "$use_pardiso" = "no"; then AC_MSG_ERROR([The inexact solver option is currently only available with Pardiso]) fi # Check if the global function pointer variable is defined in the Pardiso library SAVE_LIBS="$LIBS" LIBS="$LIBS $PARDISO_LIB $LAPACK_LIBS $BLAS_LIBS $FLIBS" AC_LANG_PUSH(C) AC_MSG_CHECKING([if Pardiso library has global variable IpoptFunction]) AC_LINK_IFELSE( [extern int (*IpoptFunction)(int n, double* x, double* r, int k, double b); int main() { IpoptFunction = 0; return 0; }], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) AC_MSG_ERROR([Pardiso library not recent enough for the inexact solver option])]) AC_LANG_POP(C) LIBS="$SAVE_LIBS" fi # For the remaining tests we need to include FLIBS into LIBS, so that # the C compiler can link programs #LIBS="$LIBS $FLIBS" # ToDo should this go into BLAS and LAPACK test???? AC_LANG_POP(C++) ###################################### # Equivalent int Fortran and C types # ###################################### # FIXME: The following test should be active, but this requires chance in # code to copy Index* to ipfint* arrays... if test "$cross_compiling" = no && test "$is_bg" != yes; then AC_LANG_PUSH(C) AC_DEFINE([FORTRAN_INTEGER_TYPE],[int],[Define to the C type corresponding to Fortran INTEGER]) # AC_CHECK_SIZEOF([long]) # AC_CHECK_SIZEOF([int]) # AC_CHECK_SIZEOF([double]) # AC_MSG_CHECKING([for C type corresponding to Fortran INTEGER]) # if test $ac_cv_sizeof_long = $ac_cv_sizeof_double; then # AC_DEFINE([FORTRAN_INTEGER_TYPE],[int],[Define to the C type corresponding to Fortran INTEGER]) # AC_MSG_RESULT([int]) # else # AC_DEFINE([FORTRAN_INTEGER_TYPE],[long]) # AC_MSG_RESULT([long]) # fi AC_LANG_POP(C) else AC_MSG_WARN([We are cross compiling, assuming Fortran `INTEGER' type corresponds to C `int' type]) AC_DEFINE([FORTRAN_INTEGER_TYPE],[int]) fi ############# JAVA if test "${JAVA_HOME+set}" = set; then AC_MSG_NOTICE([JAVA_HOME = $JAVA_HOME]) fi AC_SUBST(JAVA_HOME) case $build in *-cygwin* | *-mingw*) JIPOPTDLL=jipopt.dll ;; *) JIPOPTDLL=libjipopt.so ;; esac AC_SUBST(JIPOPTDLL) # Compiler flag for linking DLLs/shared objects (not yet portable!) if test $coin_cxx_is_cl = true; then SHARED_FLAGS=-LD else SHARED_FLAGS=-shared fi AC_SUBST(SHARED_FLAGS) #doing this check here avoids its repetition for each file in the following loop AC_COIN_CHECK_VPATH for file in `cat $srcdir/contrib/JavaInterface/javafiles.lst` do AC_COIN_VPATH_LINK(contrib/JavaInterface/$file) done ############ Matlab # Try to detect if there is matlab installed on the system and set the # MATLAB_HOME variable AC_MSG_CHECKING([for matlab installation]) AC_ARG_WITH([matlab-home], AC_HELP_STRING([--with-matlab-home], [specify location of matlab installation for the matlab Ipopt interface. The "mex" compiler should be in MATLAB_HOME/bin]), [use_matlab_home=$withval], [use_matlab_home=]) # check whether to build static MEX files AC_ARG_ENABLE([matlab-static], [AC_HELP_STRING([--enable-matlab-static], [enable static linking of standard libraries into Ipopt mex file (default: no)])], [case "$enableval" in no | yes) ;; *) AC_MSG_ERROR([invalid argument for --enable-matlab-static: $enableval]);; esac use_matlab_static=$enableval], [use_matlab_static=no]) AM_CONDITIONAL([MEX_STATIC], test x"$use_matlab_static" = xyes) # If we're in Windows, need to add .bat extension to find mex and mexext, and set conditional to modify Matlab interface Makefile batext= case $build in *-cygwin* | *-mingw*) batext=.bat ;; esac AM_CONDITIONAL([MEX_WINDOWS], test x"$batext" != x) if test x"$use_matlab_home" = x; then # Try to detect matlab home automatically mexpath=`which matlab$EXEEXT 2>/dev/null` if test -z "$mexpath" || expr "$mexpath" : '.*no matlab.*' >/dev/null 2>&1 ; then AC_MSG_RESULT([no]) else if test -L "$mexpath"; then # matlab is a symbolic link, follow it mexpath=`ls -l "$mexpath" | awk '{print $NF}'` fi MATLAB_HOME=`echo $mexpath | sed -e "s=/bin/matlab$EXEEXT$=="` AC_MSG_RESULT([$MATLAB_HOME]) fi else MATLAB_HOME="$use_matlab_home" AC_MSG_RESULT([$MATLAB_HOME]) if test ! -x "$MATLAB_HOME/bin/mex$batext"; then AC_MSG_ERROR([Matlab compiler $MATLAB_HOME/bin/mex$batext not found or not executable]) fi fi MEXSUFFIX= MWMA57PATH= if test x"$MATLAB_HOME" != x; then AC_MSG_CHECKING([for Matlab executable extension (MEXSUFFIX)]) if ! test -x "$MATLAB_HOME/bin/mexext$batext"; then AC_MSG_WARN([Cannot find $MATLAB_HOME/bin/mexext$batext executable to determine MEXSUFFIX]) else case $build in *-mingw*) # MinGW cannot execute .bat files natively, so use cmd /c MEXSUFFIX=$(cd "$MATLAB_HOME/bin"; cmd /c mexext$batext) # Also get short DOS form of MATLAB_HOME to avoid spaces in paths MATLAB_HOME=$(cd "$MATLAB_HOME"; cmd /c 'for %i in (.) do @echo %~fsi' | \ sed 's|\\|/|g') # replace backslashes with forward slashes ;; *-cygwin*) # need to strip trailing carriage return from mexext result in Cygwin MEXSUFFIX=`"$MATLAB_HOME/bin/mexext$batext" | dos2unix` # Also get short DOS form of MATLAB_HOME to avoid spaces in paths MATLAB_HOME=$(cygpath -u $(cygpath -d "$MATLAB_HOME")) ;; *) MEXSUFFIX=`$MATLAB_HOME/bin/mexext` ;; esac AC_MSG_RESULT([$MEXSUFFIX]) fi # check whether to use Matlab's MA57 AC_ARG_ENABLE([matlab-ma57], [AC_HELP_STRING([--enable-matlab-ma57], [enable linking against Matlab's MA57 library (if no HSL library is available)])], [enable_matlab_ma57=$enableval], [enable_matlab_ma57=no]) if test x"$enable_matlab_ma57" = xyes && test "$coin_has_hsl" != "yes" ; then case $MEXSUFFIX in mexglx) # not tested MWMA57PATH="$MATLAB_HOME/bin/glnx86" MWMA57LIB="-L$MWMA57PATH -lmwma57" MWMA57PATH="$MWMA57PATH:$MATLAB_HOME/sys/os/glnx86" ;; mexa64) MWMA57PATH="$MATLAB_HOME/bin/glnxa64" MWMA57LIB="-L$MWMA57PATH -lmwma57" MWMA57PATH="$MWMA57PATH:$MATLAB_HOME/sys/os/glnxa64" ;; mexmac) # not tested MWMA57PATH="$MATLAB_HOME/bin/mac" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexmaci) # not tested MWMA57PATH="$MATLAB_HOME/bin/maci" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexmaci64) MWMA57PATH="$MATLAB_HOME/bin/maci64" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexs64) # not tested MWMA57PATH="$MATLAB_HOME/bin/sol64" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexw32) MWMA57PATH="$MATLAB_HOME/bin/win32" MWMA57LIB="-L$MWMA57PATH -lmwma57" if test x"$use_matlab_static" = xyes; then MWMA57LIB="-L$MWMA57PATH -Wl,-Bdynamic,-lmwma57,-Bstatic" fi ;; mexw64) MWMA57PATH="$MATLAB_HOME/bin/win64" MWMA57LIB="-L$MWMA57PATH -lmwma57" if test x"$use_matlab_static" = xyes; then MWMA57LIB="-L$MWMA57PATH -Wl,-Bdynamic,-lmwma57,-Bstatic" fi ;; *) # something unexpected, either too old or too new? ;; esac #TODO check whether MAMW57LIB works IPOPTLIB_LIBS="$MWMA57LIB $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$MWMA57LIB $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$MWMA57LIB $IPOPTLIB_LIBS_INSTALLED" CXXFLAGS="$CXXFLAGS -DFUNNY_MA57_FINT" mkdir -p src/Common echo "#define COINHSL_HAS_MA57 1" > src/Common/CoinHslConfig.h # also fix Fortran naming convention on Windows # (no trailing underscores in libmwma57.dll) case $MEXSUFFIX in mexw32 | mexw64) echo "#define ma57ad_ ma57ad" >> src/Common/CoinHslConfig.h echo "#define ma57bd_ ma57bd" >> src/Common/CoinHslConfig.h echo "#define ma57cd_ ma57cd" >> src/Common/CoinHslConfig.h echo "#define ma57ed_ ma57ed" >> src/Common/CoinHslConfig.h echo "#define ma57id_ ma57id" >> src/Common/CoinHslConfig.h ;; esac AC_DEFINE(COIN_HAS_HSL,1,[Define to 1 if the HSL package is available]) fi fi # On Mac, need to move "-framework vecLib" from LIBS to LDFLAGS (if being used) FRAMEWORK_VECLIB= if test -n "`echo $BLAS_LIBS $LAPACK_LIBS | grep -e '-framework vecLib'`"; then FRAMEWORK_VECLIB='-framework vecLib' fi AC_SUBST(FRAMEWORK_VECLIB) AC_SUBST(MATLAB_HOME) AC_SUBST(MEXSUFFIX) AC_SUBST(MWMA57PATH) ########## # ASTYLE # ########## ASTYLE=astyle AC_SUBST(ASTYLE) ASTYLEFLAGS="--mode=c --indent=spaces=2 --indent-cases --indent-namespaces --min-conditional-indent=1 --brackets=linux --brackets=break-closing --convert-tabs" AC_SUBST(ASTYLEFLAGS) ######################### # Makefile conditionals # ######################### # The following variable collects the names of libraries that should # be included into libipopt.a (relative to subdir Interfaces, where it # is made) AC_SUBST(IPALLLIBS) IPALLLIBS="../contrib/CGPenalty/libcgpenalty.la ../Algorithm/libipoptalg.la ../Algorithm/LinearSolvers/liblinsolvers.la ../Common/libcommon.la ../LinAlg/liblinalg.la ../LinAlg/TMatrices/libtmatrices.la" AM_CONDITIONAL([HAVE_PARDISO],[test ! "$use_pardiso" = no]) AM_CONDITIONAL([HAVE_WSMP],[test ! "$use_wsmp" = no]) AC_ARG_ENABLE([linear-solver-loader], [AC_HELP_STRING([--enable-linear-solver-loader], [compile linear solver loader (default: yes)])], [case "$enableval" in no | yes) ;; *) AC_MSG_ERROR([invalid argument for --enable-linear-solver-loader: $enableval]);; esac use_linearsolverloader=$enableval], [use_linearsolverloader=yes]) AC_MSG_CHECKING([whether the linear solver loader should be compiled]) AC_MSG_RESULT([$use_linearsolverloader]) if test $use_linearsolverloader = yes; then AC_DEFINE([HAVE_LINEARSOLVERLOADER],[1], [Define to 1 if the linear solver loader should be compiled to allow dynamic loading of shared libraries with linear solvers]) IPALLLIBS="../contrib/LinearSolverLoader/libLinearSolverLoader.la $IPALLLIBS" fi AM_CONDITIONAL([BUILD_LINEARSOLVERLOADER],[test $use_linearsolverloader = yes]) AM_CONDITIONAL([BUILD_PARDISOLOADER],[test "$use_pardiso" = no]) AM_CONDITIONAL([BUILD_INEXACT], [test $use_inexact = yes]) if test $use_inexact = yes; then IPALLLIBS="../Algorithm/Inexact/libinexact.la $IPALLLIBS" AC_DEFINE([BUILD_INEXACT],[1], [Define to 1 if the inexact linear solver option is included]) fi ######################################################################## ## Linear solver loader stuff ## ######################################################################## AC_LANG_PUSH(C) AC_COIN_CHECK_HEADER([windows.h]) AC_COIN_CHECK_HEADER([dlfcn.h]) AC_CHECK_LIB(dl,[dlopen],[ IPOPTLIB_LIBS="$IPOPTLIB_LIBS -ldl" IPOPTLIB_PCLIBS="$IPOPTLIB_PCLIBS -ldl" IPOPTLIB_LIBS_INSTALLED="$IPOPTLIB_LIBS_INSTALLED -ldl" ],[]) case $build in *-cygwin* | *-mingw*) AC_DEFINE([SHAREDLIBEXT], ["dll"], [Set to extension for shared libraries in quotes.]) # Take -pedantic-errors out of CFLAGS AC_MSG_NOTICE([Removing flag -pedantic-errors from CFLAGS]) CFLAGS=`echo $CFLAGS | sed -e s/-pedantic-errors//` ;; *-darwin*) AC_DEFINE([SHAREDLIBEXT], ["dylib"], [Set to extension for shared libraries in quotes.]) ;; *) AC_DEFINE([SHAREDLIBEXT], ["so"], [Set to extension for shared libraries in quotes.]) esac AC_CHECK_FUNCS([snprintf _snprintf],[break]) AC_CHECK_FUNCS([vsnprintf _vsnprintf],[break]) AC_LANG_POP(C) ######################################################################## ## Create links for the test source files ## ######################################################################## AC_CONFIG_LINKS([test/hs071_main.cpp:examples/hs071_cpp/hs071_main.cpp test/hs071_nlp.cpp:examples/hs071_cpp/hs071_nlp.cpp test/hs071_nlp.hpp:examples/hs071_cpp/hs071_nlp.hpp test/hs071_c.c:examples/hs071_c/hs071_c.c]) ######################################################################## ## Create links for VPATH config of certain files ## ######################################################################## AC_COIN_VPATH_LINK(contrib/MatlabInterface/examples/examplehs038.m) AC_COIN_VPATH_LINK(contrib/MatlabInterface/examples/examplehs051.m) AC_COIN_VPATH_LINK(contrib/MatlabInterface/examples/examplehs071.m) AC_COIN_VPATH_LINK(contrib/MatlabInterface/examples/examplelasso.m) AC_COIN_VPATH_LINK(contrib/MatlabInterface/examples/lasso.m) AC_COIN_VPATH_LINK(contrib/RInterface/DESCRIPTION) AC_COIN_VPATH_LINK(contrib/RInterface/NAMESPACE) AC_COIN_VPATH_LINK(contrib/RInterface/inst/CITATION) AC_COIN_VPATH_LINK(contrib/RInterface/inst/doc/ipoptr.Rnw) AC_COIN_VPATH_LINK(contrib/RInterface/inst/doc/ipoptr.pdf) AC_COIN_VPATH_LINK(contrib/RInterface/inst/doc/reflist.bib) AC_COIN_VPATH_LINK(contrib/RInterface/inst/doc/figs/plot-sparsefig.eps) AC_COIN_VPATH_LINK(contrib/RInterface/man/ipoptr-package.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/ipoptr.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/is.ipoptr.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/make.sparse.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/plot.sparseness.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/print.ipoptr.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/man/print.sparseness.Rd) AC_COIN_VPATH_LINK(contrib/RInterface/R/get.option.types.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/ipoptr.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/is.ipoptr.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/make.sparse.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/plot.sparseness.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/print.ipoptr.R) AC_COIN_VPATH_LINK(contrib/RInterface/R/print.sparseness.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/approx_banana.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/banana.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/hs071_nlp.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/lasso.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/mynlp.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/parameters.R) AC_COIN_VPATH_LINK(contrib/RInterface/tests/sparseness.R) AC_COIN_VPATH_LINK(contrib/RInterface/src/ipoptr.cpp) AC_COIN_VPATH_LINK(contrib/RInterface/src/IpoptRJournal.cpp) AC_COIN_VPATH_LINK(contrib/RInterface/src/IpoptRNLP.cpp) AC_COIN_VPATH_LINK(examples/Cpp_example/cpp_example.cpp) AC_COIN_VPATH_LINK(examples/Cpp_example/MyNLP.cpp) AC_COIN_VPATH_LINK(examples/Cpp_example/MyNLP.hpp) AC_COIN_VPATH_LINK(examples/hs071_cpp/hs071_main.cpp) AC_COIN_VPATH_LINK(examples/hs071_cpp/hs071_nlp.cpp) AC_COIN_VPATH_LINK(examples/hs071_cpp/hs071_nlp.hpp) AC_COIN_VPATH_LINK(examples/hs071_c/hs071_c.c) AC_COIN_VPATH_LINK(tutorial/AmplExperiments/hs71.mod) AC_COIN_VPATH_LINK(tutorial/AmplExperiments/infeasible.mod) AC_COIN_VPATH_LINK(tutorial/AmplExperiments/MoreAmplModels.txt) AC_COIN_VPATH_LINK(tutorial/AmplExperiments/car1.run) AC_COIN_VPATH_LINK(tutorial/AmplExperiments/car1.gp) AC_COIN_VPATH_LINK(tutorial/Modeling/bad1.mod) AC_COIN_VPATH_LINK(tutorial/Modeling/bad1-fix1.mod) AC_COIN_VPATH_LINK(tutorial/Modeling/bad1-fix2.mod) AC_COIN_VPATH_LINK(tutorial/CodingExercise/exercise_example.mod) AC_COIN_VPATH_LINK(tutorial/CodingExercise/C/1-skeleton/TutorialC.c) AC_COIN_VPATH_LINK(tutorial/CodingExercise/C/2-mistake/TutorialC.c) AC_COIN_VPATH_LINK(tutorial/CodingExercise/C/3-solution/TutorialC.c) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_main.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.hpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_main.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.hpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_main.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.hpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.cpp) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Matlab/1-skeleton/TutorialMatlab.m) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Matlab/2-mistake/TutorialMatlab.m) AC_COIN_VPATH_LINK(tutorial/CodingExercise/Matlab/3-solution/TutorialMatlab.m) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/parametric_cpp/parametric_driver.cpp) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.cpp) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.hpp) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.cpp) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.hpp) AC_COIN_VPATH_LINK(contrib/sIPOPT/examples/redhess_cpp/redhess_cpp.cpp) ######################################################################## ## Create Makefiles and other stuff ## ######################################################################## AC_CONFIG_FILES([Makefile src/Common/Makefile src/LinAlg/Makefile src/LinAlg/TMatrices/Makefile src/Interfaces/Makefile src/Algorithm/Makefile src/Algorithm/LinearSolvers/Makefile src/Algorithm/Inexact/Makefile src/contrib/CGPenalty/Makefile src/contrib/LinearSolverLoader/Makefile src/Apps/Makefile src/Apps/AmplSolver/Makefile src/Apps/CUTErInterface/Makefile examples/hs071_f/Makefile examples/hs071_f/hs071_f.f examples/Cpp_example/Makefile examples/hs071_cpp/Makefile examples/hs071_c/Makefile examples/ScalableProblems/Makefile tutorial/CodingExercise/C/1-skeleton/Makefile tutorial/CodingExercise/C/2-mistake/Makefile tutorial/CodingExercise/C/3-solution/Makefile tutorial/CodingExercise/Cpp/1-skeleton/Makefile tutorial/CodingExercise/Cpp/2-mistake/Makefile tutorial/CodingExercise/Cpp/3-solution/Makefile tutorial/CodingExercise/Matlab/1-skeleton/startup.m tutorial/CodingExercise/Matlab/2-mistake/startup.m tutorial/CodingExercise/Matlab/3-solution/startup.m tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f tutorial/CodingExercise/Fortran/1-skeleton/Makefile tutorial/CodingExercise/Fortran/2-mistake/Makefile tutorial/CodingExercise/Fortran/3-solution/Makefile test/Makefile test/run_unitTests contrib/MatlabInterface/src/Makefile contrib/MatlabInterface/examples/startup.m contrib/JavaInterface/Makefile contrib/sIPOPT/Makefile contrib/sIPOPT/AmplSolver/Makefile contrib/sIPOPT/examples/parametric_cpp/Makefile contrib/sIPOPT/examples/redhess_cpp/Makefile contrib/sIPOPT/src/Makefile ipopt.pc ipopt-uninstalled.pc doxydoc/doxygen.conf]) # under Windows, the Makevars file for the R Interface need to be named Makevars.win case $build in *-cygwin* | *-mingw*) AC_CONFIG_FILES([contrib/RInterface/src/Makevars.win:contrib/RInterface/src/Makevars.in]) ;; *) AC_CONFIG_FILES([contrib/RInterface/src/Makevars]) ;; esac if test $coin_has_asl = yes ; then AC_CONFIG_FILES([ipoptamplinterface.pc:src/Apps/AmplSolver/ipoptamplinterface.pc.in ipoptamplinterface-uninstalled.pc:src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in ]) fi AC_CONFIG_HEADER([src/Common/config.h src/Common/config_ipopt.h examples/ScalableProblems/config.h]) AC_COIN_FINALIZE Ipopt-3.11.4/Ipopt/ipopt-uninstalled.pc.in0000644000076600007660000000076511573147064017070 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@/src/Interfaces Name: IPOPT Description: Interior Point Optimizer URL: https://projects.coin-or.org/Ipopt Version: @PACKAGE_VERSION@ Libs: ${libdir}/libipopt.la @IPOPTLIB_PCLIBS@ Cflags: -I@abs_source_dir@/src/Interfaces -I@abs_source_dir@/src/Common -I@abs_source_dir@/src/LinAlg -I@abs_source_dir@/src/Algorithm -I@abs_source_dir@/src/contrib/CGPenalty -I@abs_source_dir@/src/contrib/LinearSolverLoader -I@ABSBUILDDIR@/src/Common Requires: @IPOPTLIB_PCREQUIRES@ Ipopt-3.11.4/Ipopt/src/0000755000076600007660000000000012214537465013244 5ustar coincoinIpopt-3.11.4/Ipopt/src/LinAlg/0000755000076600007660000000000012214537465014412 5ustar coincoinIpopt-3.11.4/Ipopt/src/LinAlg/IpSymMatrix.hpp0000644000076600007660000000763312070644551017355 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSymMatrix.hpp 2161 2013-01-01 20:39:05Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSYMMATRIX_HPP__ #define __IPSYMMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class SymMatrixSpace; /** This is the base class for all derived symmetric matrix types. */ class SymMatrix : public Matrix { public: /** @name Constructor/Destructor */ //@{ /** Constructor, taking the owner_space. */ inline SymMatrix(const SymMatrixSpace* owner_space); /** Destructor */ virtual ~SymMatrix() {} //@} /** @name Information about the size of the matrix */ //@{ /** Dimension of the matrix (number of rows and columns) */ inline Index Dim() const; //@} inline SmartPtr OwnerSymMatrixSpace() const; protected: /** @name Overloaded methods from Matrix. */ //@{ /** Since the matrix is * symmetric, it is only necessary to implement the * MultVectorImpl method in a class that inherits from this base * class. If the TransMultVectorImpl is called, this base class * automatically calls MultVectorImpl instead. */ virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const { // Since this matrix is symetric, this is the same operation as // MultVector MultVector(alpha, x, beta, y); } /** Since the matrix is symmetric, the row and column max norms * are identical */ virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const { ComputeRowAMaxImpl(cols_norms, init); } //@} private: /** Copy of the owner space ptr as a SymMatrixSpace instead * of a MatrixSpace */ const SymMatrixSpace* owner_space_; }; /** SymMatrixSpace base class, corresponding to the SymMatrix base * class. */ class SymMatrixSpace : public MatrixSpace { public: /** @name Constructors/Destructors */ //@{ /** Constructor, given the dimension (identical to the number of * rows and columns). */ SymMatrixSpace(Index dim) : MatrixSpace(dim,dim) {} /** Destructor */ virtual ~SymMatrixSpace() {} //@} /** Pure virtual method for creating a new matrix of this specific * type. */ virtual SymMatrix* MakeNewSymMatrix() const=0; /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewSymMatrix(); } /** Accessor method for the dimension of the matrices in this * matrix space. */ Index Dim() const { DBG_ASSERT(NRows() == NCols()); return NRows(); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** default constructor */ SymMatrixSpace(); /* Copy constructor */ SymMatrixSpace(const SymMatrixSpace&); /** Overloaded Equals Operator */ SymMatrixSpace& operator=(const SymMatrixSpace&); //@} }; /* inline methods */ inline SymMatrix::SymMatrix(const SymMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space) {} inline Index SymMatrix::Dim() const { return owner_space_->Dim(); } inline SmartPtr SymMatrix::OwnerSymMatrixSpace() const { return owner_space_; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpTransposeMatrix.cpp0000644000076600007660000000234411504216567020553 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTransposeMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-25 #include "IpTransposeMatrix.hpp" namespace Ipopt { TransposeMatrix::TransposeMatrix(const TransposeMatrixSpace* owner_space) : Matrix(owner_space) { orig_matrix_ = owner_space->MakeNewOrigMatrix(); } void TransposeMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sTransposeMatrix \"%s\" of the following matrix\n", prefix.c_str(), name.c_str()); std::string new_name = name+"^T"; orig_matrix_->Print(&jnlst, level, category, new_name, indent+1, prefix); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseVector.hpp0000644000076600007660000004000012070644551017622 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseVector.hpp 2161 2013-01-01 20:39:05Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPDENSEVECTOR_HPP__ #define __IPDENSEVECTOR_HPP__ #include "IpUtils.hpp" #include "IpVector.hpp" #include namespace Ipopt { /* forward declarations */ class DenseVectorSpace; /** @name Exceptions */ //@{ DECLARE_STD_EXCEPTION(METADATA_ERROR); //@} /** Dense Vector Implementation. This is the default Vector class * in Ipopt. It stores vectors in contiguous Number arrays, unless * the vector has the same value in all entires. In the latter * case, we call the vector "homogeneous", and we store only the * values that is repeated in all elements. If you want to obtain * the values of vector, use the IsHomogeneous() method to find out * what status the vector is in, and then use either Values() const * or Scalar() const methods to get the values. To set the values * of a homogeneous method, use the Set method. To set the values * of a non-homogeneous vector, use the SetValues method, or use * the non-const Values method to get an array that you can * overwrite. In the latter case, storage is ensured. */ class DenseVector : public Vector { public: /**@name Constructors / Destructors */ //@{ /** Default Constructor */ DenseVector(const DenseVectorSpace* owner_space); /** Destructor */ virtual ~DenseVector(); //@} /** @name Additional public methods not in Vector base class. */ //@{ /** Create a new DenseVector from same VectorSpace */ SmartPtr MakeNewDenseVector() const; /** Set elements in the vector to the Number array x. */ void SetValues(const Number *x); /** Obtain pointer to the internal Number array with vector * elements with the indention to change the vector data (USE * WITH CARE!). This does not produce a copy, and lifetime is not * guaranteed!. */ inline Number* Values(); /** Obtain pointer to the internal Number array with vector * elements without the intention to change the vector data (USE * WITH CARE!). This does not produce a copy, and lifetime is not * guaranteed! IMPORTANT: If this method is currently * homogeneous (i.e. IsHomogeneous returns true), then you cannot * call this method. Instead, you need to use the Scalar() * method. */ inline const Number* Values() const; /** The same as the const version of Values, but we ensure that we * always return a valid array, even if IsHomogeneous returns * true. */ const Number* ExpandedValues() const; /** This is the same as Values, but we add it here so that * ExpandedValues can also be used for the non-const case. */ inline Number* ExpandedValues() { return Values(); } /** Indicates if the vector is homogeneous (i.e., all entries have * the value Scalar() */ bool IsHomogeneous() const { return homogeneous_; } /** Scalar value of all entries in a homogeneous vector */ Number Scalar() const { DBG_ASSERT(homogeneous_); return scalar_; } //@} /** @name Modifying subranges of the vector. */ //@{ /** Copy the data in x into the subrange of this vector starting * at position Pos in this vector. Position count starts at 0. */ void CopyToPos(Index Pos, const Vector& x); /** Copy a subrange of x, starting at Pos, into the full data of * this vector. Position count starts at 0. */ void CopyFromPos(Index Pos, const Vector& x); //@} protected: /** @name Overloaded methods from Vector base class */ //@{ /** Copy the data of the vector x into this vector (DCOPY). */ virtual void CopyImpl(const Vector& x); /** Scales the vector by scalar alpha (DSCAL) */ virtual void ScalImpl(Number alpha); /** Add the multiple alpha of vector x to this vector (DAXPY) */ virtual void AxpyImpl(Number alpha, const Vector &x); /** Computes inner product of vector x with this (DDOT) */ virtual Number DotImpl(const Vector &x) const; /** Computes the 2-norm of this vector (DNRM2) */ virtual Number Nrm2Impl() const; /** Computes the 1-norm of this vector (DASUM) */ virtual Number AsumImpl() const; /** Computes the max-norm of this vector (based on IDAMAX) */ virtual Number AmaxImpl() const; /** Set each element in the vector to the scalar alpha. */ virtual void SetImpl(Number value); /** Element-wise division \f$y_i \gets y_i/x_i\f$.*/ virtual void ElementWiseDivideImpl(const Vector& x); /** Element-wise multiplication \f$y_i \gets y_i*x_i\f$.*/ virtual void ElementWiseMultiplyImpl(const Vector& x); /** Set entry to max of itself and the corresponding element in x */ virtual void ElementWiseMaxImpl(const Vector& x); /** Set entry to min of itself and the corresponding element in x */ virtual void ElementWiseMinImpl(const Vector& x); /** reciprocates the elements of the vector */ virtual void ElementWiseReciprocalImpl(); /** take abs of the elements of the vector */ virtual void ElementWiseAbsImpl(); /** take square-root of the elements of the vector */ virtual void ElementWiseSqrtImpl(); /** Changes each entry in the vector to its sgn value */ virtual void ElementWiseSgnImpl(); /** Add scalar to every component of the vector.*/ virtual void AddScalarImpl(Number scalar); /** Max value in the vector */ virtual Number MaxImpl() const; /** Min value in the vector */ virtual Number MinImpl() const; /** Computes the sum of the lements of vector */ virtual Number SumImpl() const; /** Computes the sum of the logs of the elements of vector */ virtual Number SumLogsImpl() const; /** @name Implemented specialized functions */ //@{ /** Add two vectors (a * v1 + b * v2). Result is stored in this vector. */ void AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c); /** Fraction to the boundary parameter. */ Number FracToBoundImpl(const Vector& delta, Number tau) const; /** Add the quotient of two vectors, y = a * z/s + c * y. */ void AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c); //@} /** @name Output methods */ //@{ /* Print the entire vector with padding */ virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { PrintImplOffset(jnlst, level, category, name, indent, prefix, 1); } /* Print the entire vector with padding, and start counting with an offset. */ void PrintImplOffset(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix, Index offset) const; //@} friend class ParVector; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DenseVector(); /** Copy Constructor */ DenseVector(const DenseVector&); /** Overloaded Equals Operator */ void operator=(const DenseVector&); //@} /** Copy of the owner_space ptr as a DenseVectorSpace instead * of a VectorSpace */ const DenseVectorSpace* owner_space_; /** Dense Number array of vector values. */ Number* values_; /** Dense Number array pointer that is used for ExpandedValues */ mutable Number* expanded_values_; /** Method of getting the internal values array, making sure that * memory has been allocated */ inline Number* values_allocated(); /** Flag for Initialization. This flag is false, if the data has not yet been initialized. */ bool initialized_; /** Flag indicating whether the vector is currently homogeneous * (that is, all elements have the same value). This flag is used * to determine whether the elements of the vector are stored in * values_ or in scalar_ */ bool homogeneous_; /** Homogeneous value of all elements if the vector is currently * homogenous */ Number scalar_; /** Auxilliary method for setting explicitly all elements in * values_ to the current scalar value. */ void set_values_from_scalar(); }; /** typedefs for the map variables that define meta data for the * DenseVectorSpace */ typedef std::map > StringMetaDataMapType; typedef std::map > IntegerMetaDataMapType; typedef std::map > NumericMetaDataMapType; /** This vectors space is the vector space for DenseVector. */ class DenseVectorSpace : public VectorSpace { public: /** @name Constructors/Destructors. */ //@{ /** Constructor, requires dimension of all vector for this * VectorSpace */ DenseVectorSpace(Index dim) : VectorSpace(dim) {} /** Destructor */ ~DenseVectorSpace() {} //@} /** Method for creating a new vector of this specific type. */ inline DenseVector* MakeNewDenseVector() const { return new DenseVector(this); } /** Instantiation of the generate MakeNew method for the * VectorSpace base class. */ virtual Vector* MakeNew() const { return MakeNewDenseVector(); } /**@name Methods called by DenseVector for memory management. * This could allow to have sophisticated memory management in the * VectorSpace. */ //@{ /** Allocate internal storage for the DenseVector */ inline Number* AllocateInternalStorage() const; /** Deallocate internal storage for the DenseVector */ inline void FreeInternalStorage(Number* values) const; //@} /**@name Methods for dealing with meta data on the vector */ //@{ /** Check if string meta exists for tag */ inline bool HasStringMetaData(const std::string tag) const; /** Check if Integer meta exists for tag */ inline bool HasIntegerMetaData(const std::string tag) const; /** Check if Numeric meta exists for tag */ inline bool HasNumericMetaData(const std::string tag) const; /** Get meta data of type std::string by tag */ inline const std::vector& GetStringMetaData(const std::string& tag) const; /** Get meta data of type Index by tag */ inline const std::vector& GetIntegerMetaData(const std::string& tag) const; /** Get meta data of type Number by tag */ inline const std::vector& GetNumericMetaData(const std::string& tag) const; /** Set meta data of type std::string by tag */ inline void SetStringMetaData(std::string tag, std::vector meta_data); /** Set meta data of type Index by tag */ inline void SetIntegerMetaData(std::string tag, std::vector meta_data); /** Set meta data of type Number by tag */ inline void SetNumericMetaData(std::string tag, std::vector meta_data); /** Get map of meta data of type Number */ inline const StringMetaDataMapType& GetStringMetaData() const; /** Get map of meta data of type Number */ inline const IntegerMetaDataMapType& GetIntegerMetaData() const; /** Get map of meta data of type Number */ inline const NumericMetaDataMapType& GetNumericMetaData() const; //@} private: // variables to store vector meta data StringMetaDataMapType string_meta_data_; IntegerMetaDataMapType integer_meta_data_; NumericMetaDataMapType numeric_meta_data_; }; // inline functions inline Number* DenseVector::Values() { // Here we assume that every time someone requests this direct raw // pointer, the data is going to change and the Tag for this // vector has to be updated. if (initialized_ && homogeneous_) { // If currently the vector is a homogeneous vector, set all elements // explicitly to this value set_values_from_scalar(); } ObjectChanged(); initialized_= true; homogeneous_ = false; return values_allocated(); } inline const Number* DenseVector::Values() const { DBG_ASSERT(initialized_ && (Dim()==0 || values_)); return values_; } inline Number* DenseVector::values_allocated() { if (values_==NULL) { values_ = owner_space_->AllocateInternalStorage(); } return values_; } inline Number* DenseVectorSpace::AllocateInternalStorage() const { if (Dim()>0) { return new Number[Dim()]; } else { return NULL; } } inline void DenseVectorSpace::FreeInternalStorage(Number* values) const { delete [] values; } inline SmartPtr DenseVector::MakeNewDenseVector() const { return owner_space_->MakeNewDenseVector(); } inline bool DenseVectorSpace::HasStringMetaData(const std::string tag) const { StringMetaDataMapType::const_iterator iter; iter = string_meta_data_.find(tag); if (iter != string_meta_data_.end()) { return true; } return false; } inline bool DenseVectorSpace::HasIntegerMetaData(const std::string tag) const { IntegerMetaDataMapType::const_iterator iter; iter = integer_meta_data_.find(tag); if (iter != integer_meta_data_.end()) { return true; } return false; } inline bool DenseVectorSpace::HasNumericMetaData(const std::string tag) const { NumericMetaDataMapType::const_iterator iter; iter = numeric_meta_data_.find(tag); if (iter != numeric_meta_data_.end()) { return true; } return false; } inline const std::vector& DenseVectorSpace::GetStringMetaData(const std::string& tag) const { DBG_ASSERT(HasStringMetaData(tag)); StringMetaDataMapType::const_iterator iter; iter = string_meta_data_.find(tag); return iter->second; } inline const std::vector& DenseVectorSpace::GetIntegerMetaData(const std::string& tag) const { DBG_ASSERT(HasIntegerMetaData(tag)); IntegerMetaDataMapType::const_iterator iter; iter = integer_meta_data_.find(tag); return iter->second; } inline const std::vector& DenseVectorSpace::GetNumericMetaData(const std::string& tag) const { DBG_ASSERT(HasNumericMetaData(tag)); NumericMetaDataMapType::const_iterator iter; iter = numeric_meta_data_.find(tag); return iter->second; } inline void DenseVectorSpace::SetStringMetaData(std::string tag, std::vector meta_data) { string_meta_data_[tag] = meta_data; } inline void DenseVectorSpace::SetIntegerMetaData(std::string tag, std::vector meta_data) { integer_meta_data_[tag] = meta_data; } inline void DenseVectorSpace::SetNumericMetaData(std::string tag, std::vector meta_data) { numeric_meta_data_[tag] = meta_data; } inline const StringMetaDataMapType& DenseVectorSpace::GetStringMetaData() const { return string_meta_data_; } inline const IntegerMetaDataMapType& DenseVectorSpace::GetIntegerMetaData() const { return integer_meta_data_; } inline const NumericMetaDataMapType& DenseVectorSpace::GetNumericMetaData() const { return numeric_meta_data_; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpVector.hpp0000644000076600007660000005022212141450650016644 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpVector.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPVECTOR_HPP__ #define __IPVECTOR_HPP__ #include "IpTypes.hpp" #include "IpTaggedObject.hpp" #include "IpCachedResults.hpp" #include "IpSmartPtr.hpp" #include "IpJournalist.hpp" #include "IpException.hpp" #include namespace Ipopt { /** Exception that can be used to flag unimplemented linear algebra * methods */ DECLARE_STD_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED); /* forward declarations */ class VectorSpace; /** Vector Base Class. * This is the base class for all derived vector types. Those vectors * are meant to store entities like iterates, Lagrangian multipliers, * constraint values etc. The implementation of a vector type depends * on the computational environment (e.g. just a double array on a shared * memory machine, or distributed double arrays for a distributed * memory machine.) * * Deriving from Vector: This class inherits from tagged object to * implement an advanced caching scheme. Because of this, the * TaggedObject method ObjectChanged() must be called each time the * Vector changes. If you overload the XXXX_Impl protected methods, * this taken care of (along with caching if possible) for you. If * you have additional methods in your derived class that change the * underlying data (vector values), you MUST remember to call * ObjectChanged() AFTER making the change! */ class Vector : public TaggedObject { public: /** @name Constructor/Destructor */ //@{ /** Constructor. It has to be given a pointer to the * corresponding VectorSpace. */ inline Vector(const VectorSpace* owner_space); /** Destructor */ inline virtual ~Vector(); //@} /** Create new Vector of the same type with uninitialized data */ inline Vector* MakeNew() const; /** Create new Vector of the same type and copy the data over */ inline Vector* MakeNewCopy() const; /**@name Standard BLAS-1 Operations * (derived classes do NOT overload these * methods, instead, overload the * protected versions of these methods). */ //@{ /** Copy the data of the vector x into this vector (DCOPY). */ inline void Copy(const Vector& x); /** Scales the vector by scalar alpha (DSCAL) */ void Scal(Number alpha); /** Add the multiple alpha of vector x to this vector (DAXPY) */ inline void Axpy(Number alpha, const Vector &x); /** Computes inner product of vector x with this (DDOT) */ inline Number Dot(const Vector &x) const; /** Computes the 2-norm of this vector (DNRM2) */ inline Number Nrm2() const; /** Computes the 1-norm of this vector (DASUM) */ inline Number Asum() const; /** Computes the max-norm of this vector (based on IDAMAX) */ inline Number Amax() const; //@} /** @name Additional (Non-BLAS) Vector Methods * (derived classes do NOT overload these * methods, instead, overload the * protected versions of these methods). */ //@{ /** Set each element in the vector to the scalar alpha. */ inline void Set(Number alpha); /** Element-wise division \f$y_i \gets y_i/x_i\f$*/ inline void ElementWiseDivide(const Vector& x); /** Element-wise multiplication \f$y_i \gets y_i*x_i\f$ */ inline void ElementWiseMultiply(const Vector& x); /** Element-wise max against entries in x */ inline void ElementWiseMax(const Vector& x); /** Element-wise min against entries in x */ inline void ElementWiseMin(const Vector& x); /** Reciprocates the entries in the vector */ inline void ElementWiseReciprocal(); /** Absolute values of the entries in the vector */ inline void ElementWiseAbs(); /** Element-wise square root of the entries in the vector */ inline void ElementWiseSqrt(); /** Replaces the vector values with their sgn values ( -1 if x_i < 0, 0 if x_i == 0, and 1 if x_i > 0) */ inline void ElementWiseSgn(); /** Add scalar to every vector component */ inline void AddScalar(Number scalar); /** Returns the maximum value in the vector */ inline Number Max() const; /** Returns the minimum value in the vector */ inline Number Min() const; /** Returns the sum of the vector entries */ inline Number Sum() const; /** Returns the sum of the logs of each vector entry */ inline Number SumLogs() const; //@} /** @name Methods for specialized operations. A prototype * implementation is provided, but for efficient implementation * those should be specially implemented. */ //@{ /** Add one vector, y = a * v1 + c * y. This is automatically * reduced to call AddTwoVectors. */ inline void AddOneVector(Number a, const Vector& v1, Number c); /** Add two vectors, y = a * v1 + b * v2 + c * y. Here, this * vector is y */ inline void AddTwoVectors(Number a, const Vector& v1, Number b, const Vector& v2, Number c); /** Fraction to the boundary parameter. Computes \f$\alpha = * \max\{\bar\alpha\in(0,1] : x + \bar\alpha \Delta \geq (1-\tau)x\}\f$ */ inline Number FracToBound(const Vector& delta, Number tau) const; /** Add the quotient of two vectors, y = a * z/s + c * y. */ inline void AddVectorQuotient(Number a, const Vector& z, const Vector& s, Number c); //@} /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ inline bool HasValidNumbers() const; /** @name Accessor methods */ //@{ /** Dimension of the Vector */ inline Index Dim() const; /** Return the owner VectorSpace*/ inline SmartPtr OwnerSpace() const; //@} /** @name Output methods * (derived classes do NOT overload these * methods, instead, overload the * protected versions of these methods). */ //@{ /** Print the entire vector */ void Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const; void Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const; //@} protected: /** @name implementation methods (derived classes MUST * overload these pure virtual protected methods.) */ //@{ /** Copy the data of the vector x into this vector (DCOPY). */ virtual void CopyImpl(const Vector& x)=0; /** Scales the vector by scalar alpha (DSCAL) */ virtual void ScalImpl(Number alpha)=0; /** Add the multiple alpha of vector x to this vector (DAXPY) */ virtual void AxpyImpl(Number alpha, const Vector &x)=0; /** Computes inner product of vector x with this (DDOT) */ virtual Number DotImpl(const Vector &x) const =0; /** Computes the 2-norm of this vector (DNRM2) */ virtual Number Nrm2Impl() const =0; /** Computes the 1-norm of this vector (DASUM) */ virtual Number AsumImpl() const =0; /** Computes the max-norm of this vector (based on IDAMAX) */ virtual Number AmaxImpl() const =0; /** Set each element in the vector to the scalar alpha. */ virtual void SetImpl(Number alpha)=0; /** Element-wise division \f$y_i \gets y_i/x_i\f$*/ virtual void ElementWiseDivideImpl(const Vector& x)=0; /** Element-wise multiplication \f$y_i \gets y_i*x_i\f$ */ virtual void ElementWiseMultiplyImpl(const Vector& x)=0; /** Element-wise max against entries in x */ virtual void ElementWiseMaxImpl(const Vector& x)=0; /** Element-wise min against entries in x */ virtual void ElementWiseMinImpl(const Vector& x)=0; /** Reciprocates the elements of the vector */ virtual void ElementWiseReciprocalImpl()=0; /** Take elementwise absolute values of the elements of the vector */ virtual void ElementWiseAbsImpl()=0; /** Take elementwise square-root of the elements of the vector */ virtual void ElementWiseSqrtImpl()=0; /** Replaces entries with sgn of the entry */ virtual void ElementWiseSgnImpl()=0; /** Add scalar to every component of vector */ virtual void AddScalarImpl(Number scalar)=0; /** Max value in the vector */ virtual Number MaxImpl() const=0; /** Min number in the vector */ virtual Number MinImpl() const=0; /** Sum of entries in the vector */ virtual Number SumImpl() const=0; /** Sum of logs of entries in the vector */ virtual Number SumLogsImpl() const=0; /** Add two vectors (a * v1 + b * v2). Result is stored in this vector. */ virtual void AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c); /** Fraction to boundary parameter. */ virtual Number FracToBoundImpl(const Vector& delta, Number tau) const; /** Add the quotient of two vectors */ virtual void AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c); /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). A default implementation using Asum is * provided. */ virtual bool HasValidNumbersImpl() const; /** Print the entire vector */ virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const =0; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ Vector(); /** Copy constructor */ Vector(const Vector&); /** Overloaded Equals Operator */ Vector& operator=(const Vector&); //@} /** Vector Space */ const SmartPtr owner_space_; /**@name CachedResults data members */ //@{ /** Cache for dot products */ mutable CachedResults dot_cache_; mutable TaggedObject::Tag nrm2_cache_tag_; mutable Number cached_nrm2_; mutable TaggedObject::Tag asum_cache_tag_; mutable Number cached_asum_; mutable TaggedObject::Tag amax_cache_tag_; mutable Number cached_amax_; mutable TaggedObject::Tag max_cache_tag_; mutable Number cached_max_; mutable TaggedObject::Tag min_cache_tag_; mutable Number cached_min_; mutable TaggedObject::Tag sum_cache_tag_; mutable Number cached_sum_; mutable TaggedObject::Tag sumlogs_cache_tag_; mutable Number cached_sumlogs_; mutable TaggedObject::Tag valid_cache_tag_; mutable bool cached_valid_; // AW: I removed this cache since it gets in the way for the // quality function search // /** Cache for FracToBound */ // mutable CachedResults frac_to_bound_cache_; //@} }; /** VectorSpace base class, corresponding to the Vector base class. * For each Vector implementation, a corresponding VectorSpace has * to be implemented. A VectorSpace is able to create new Vectors * of a specific type. The VectorSpace should also store * information that is common to all Vectors of that type. For * example, the dimension of a Vector is stored in the VectorSpace * base class. */ class VectorSpace : public ReferencedObject { public: /** @name Constructors/Destructors */ //@{ /** Constructor, given the dimension of all vectors generated by * this VectorSpace. */ VectorSpace(Index dim); /** Destructor */ virtual ~VectorSpace() {} //@} /** Pure virtual method for creating a new Vector of the * corresponding type. */ virtual Vector* MakeNew() const=0; /** Accessor function for the dimension of the vectors of this type.*/ Index Dim() const { return dim_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** default constructor */ VectorSpace(); /** Copy constructor */ VectorSpace(const VectorSpace&); /** Overloaded Equals Operator */ VectorSpace& operator=(const VectorSpace&); //@} /** Dimension of the vectors in this vector space. */ const Index dim_; }; /* inline methods */ inline Vector::~Vector() {} inline Vector::Vector(const VectorSpace* owner_space) : TaggedObject(), owner_space_(owner_space), dot_cache_(10), cached_valid_(0) { DBG_ASSERT(IsValid(owner_space_)); } inline Vector* Vector::MakeNew() const { return owner_space_->MakeNew(); } inline Vector* Vector::MakeNewCopy() const { // ToDo: We can probably copy also the cached values for Norms etc here Vector* copy = MakeNew(); copy->Copy(*this); return copy; } inline void Vector::Copy(const Vector& x) { CopyImpl(x); ObjectChanged(); // Also copy any cached scalar values from the original vector // ToDo: Check if that is too much overhead TaggedObject::Tag x_tag = x.GetTag(); if (x_tag == x.nrm2_cache_tag_) { nrm2_cache_tag_ = GetTag(); cached_nrm2_ = x.cached_nrm2_; } if (x_tag == x.asum_cache_tag_) { asum_cache_tag_ = GetTag(); cached_asum_ = x.cached_asum_; } if (x_tag == x.amax_cache_tag_) { amax_cache_tag_ = GetTag(); cached_amax_ = x.cached_amax_; } if (x_tag == x.max_cache_tag_) { max_cache_tag_ = GetTag(); cached_max_ = x.cached_max_; } if (x_tag == x.min_cache_tag_) { min_cache_tag_ = GetTag(); cached_min_ = x.cached_min_; } if (x_tag == x.sum_cache_tag_) { sum_cache_tag_ = GetTag(); cached_sum_ = x.cached_sum_; } if (x_tag == x.sumlogs_cache_tag_) { sumlogs_cache_tag_ = GetTag(); cached_sumlogs_ = x.cached_sumlogs_; } } inline void Vector::Axpy(Number alpha, const Vector &x) { AxpyImpl(alpha, x); ObjectChanged(); } inline Number Vector::Dot(const Vector &x) const { // The current implementation of the caching doesn't allow to have // a dependency of something with itself. Therefore, we use the // Nrm2 method if the dot product is to be taken with the vector // itself. Might be more efficient anyway. if (this==&x) { Number nrm2 = Nrm2(); return nrm2*nrm2; } Number retValue; if (!dot_cache_.GetCachedResult2Dep(retValue, this, &x)) { retValue = DotImpl(x); dot_cache_.AddCachedResult2Dep(retValue, this, &x); } return retValue; } inline Number Vector::Nrm2() const { if (nrm2_cache_tag_ != GetTag()) { cached_nrm2_ = Nrm2Impl(); nrm2_cache_tag_ = GetTag(); } return cached_nrm2_; } inline Number Vector::Asum() const { if (asum_cache_tag_ != GetTag()) { cached_asum_ = AsumImpl(); asum_cache_tag_ = GetTag(); } return cached_asum_; } inline Number Vector::Amax() const { if (amax_cache_tag_ != GetTag()) { cached_amax_ = AmaxImpl(); amax_cache_tag_ = GetTag(); } return cached_amax_; } inline Number Vector::Sum() const { if (sum_cache_tag_ != GetTag()) { cached_sum_ = SumImpl(); sum_cache_tag_ = GetTag(); } return cached_sum_; } inline Number Vector::SumLogs() const { if (sumlogs_cache_tag_ != GetTag()) { cached_sumlogs_ = SumLogsImpl(); sumlogs_cache_tag_ = GetTag(); } return cached_sumlogs_; } inline void Vector::ElementWiseSgn() { ElementWiseSgnImpl(); ObjectChanged(); } inline void Vector::Set(Number alpha) { // Could initialize caches here SetImpl(alpha); ObjectChanged(); } inline void Vector::ElementWiseDivide(const Vector& x) { ElementWiseDivideImpl(x); ObjectChanged(); } inline void Vector::ElementWiseMultiply(const Vector& x) { ElementWiseMultiplyImpl(x); ObjectChanged(); } inline void Vector::ElementWiseReciprocal() { ElementWiseReciprocalImpl(); ObjectChanged(); } inline void Vector::ElementWiseMax(const Vector& x) { // Could initialize some caches here ElementWiseMaxImpl(x); ObjectChanged(); } inline void Vector::ElementWiseMin(const Vector& x) { // Could initialize some caches here ElementWiseMinImpl(x); ObjectChanged(); } inline void Vector::ElementWiseAbs() { // Could initialize some caches here ElementWiseAbsImpl(); ObjectChanged(); } inline void Vector::ElementWiseSqrt() { ElementWiseSqrtImpl(); ObjectChanged(); } inline void Vector::AddScalar(Number scalar) { // Could initialize some caches here AddScalarImpl(scalar); ObjectChanged(); } inline Number Vector::Max() const { if (max_cache_tag_ != GetTag()) { cached_max_ = MaxImpl(); max_cache_tag_ = GetTag(); } return cached_max_; } inline Number Vector::Min() const { if (min_cache_tag_ != GetTag()) { cached_min_ = MinImpl(); min_cache_tag_ = GetTag(); } return cached_min_; } inline void Vector::AddOneVector(Number a, const Vector& v1, Number c) { AddTwoVectors(a, v1, 0., v1, c); } inline void Vector::AddTwoVectors(Number a, const Vector& v1, Number b, const Vector& v2, Number c) { AddTwoVectorsImpl(a, v1, b, v2, c); ObjectChanged(); } inline Number Vector::FracToBound(const Vector& delta, Number tau) const { /* AW: I avoid the caching here, since it leads to overhead in the quality function search. Caches for this are in CalculatedQuantities. Number retValue; std::vector tdeps(1); tdeps[0] = δ std::vector sdeps(1); sdeps[0] = tau; if (!frac_to_bound_cache_.GetCachedResult(retValue, tdeps, sdeps)) { retValue = FracToBoundImpl(delta, tau); frac_to_bound_cache_.AddCachedResult(retValue, tdeps, sdeps); } return retValue; */ return FracToBoundImpl(delta, tau); } inline void Vector::AddVectorQuotient(Number a, const Vector& z, const Vector& s, Number c) { AddVectorQuotientImpl(a, z, s, c); ObjectChanged(); } inline bool Vector::HasValidNumbers() const { if (valid_cache_tag_ != GetTag()) { cached_valid_ = HasValidNumbersImpl(); valid_cache_tag_ = GetTag(); } return cached_valid_; } inline Index Vector::Dim() const { return owner_space_->Dim(); } inline SmartPtr Vector::OwnerSpace() const { return owner_space_; } inline VectorSpace::VectorSpace(Index dim) : dim_(dim) {} } // namespace Ipopt // Macro definitions for debugging vectors #if COIN_IPOPT_VERBOSITY == 0 # define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec) #else # define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec) \ if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \ if (dbg_jrnl.Jnlst()!=NULL) { \ (__vec).Print(dbg_jrnl.Jnlst(), \ J_ERROR, J_DBG, \ __vec_name, \ dbg_jrnl.IndentationLevel()*2, \ "# "); \ } \ } #endif //if COIN_IPOPT_VERBOSITY == 0 #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpMultiVectorMatrix.hpp0000644000076600007660000001655011504216567021063 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMultiVectorMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-24 #ifndef __IPMULTIVECTORMATRIX_HPP__ #define __IPMULTIVECTORMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /** forward declarations */ class MultiVectorMatrixSpace; /** Class for Matrices with few columns that consists of Vectors. * Those matrices are for example useful in the implementation of * limited memory quasi-Newton methods. */ class MultiVectorMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ MultiVectorMatrix(const MultiVectorMatrixSpace* owner_space); /** Destructor */ ~MultiVectorMatrix(); //@} /** Create a new MultiVectorMatrix from same MatrixSpace */ SmartPtr MakeNewMultiVectorMatrix() const; /** Set a particular Vector at a given column position, replacing * another vector if there has been one. Depending on whether * the Vector is const or not, it is stored in the const or * non-const internal column. */ //@{ void SetVector(Index i, const Vector& vec); /* For the non-const version, keep in mind that operations that * change this matrix also change the Vector that has been given * here. */ void SetVectorNonConst(Index i, Vector& vec); //@} /** Get a Vector in a particular column as a const Vector */ inline SmartPtr GetVector(Index i) const { return ConstVec(i); } /** Get a Vector in a particular column as a non-const * Vector. This is fail if the column has currently only a * non-const Vector stored. */ inline SmartPtr GetVectorNonConst(Index i) { ObjectChanged(); return Vec(i); } /** Method for scaling the rows of the matrix, using the * ElementWiseMultiply method for each column vector. */ void ScaleRows(const Vector& scal_vec); /** Method for scaling the columns of the matrix, using the Scal * method for each column vector. */ void ScaleColumns(const Vector& scal_vec); /** Adding another MultiVectorMatrix, using the AddOneVector * methods for the individual column vectors */ void AddOneMultiVectorMatrix(Number a, const MultiVectorMatrix& mv1, Number c); /** Multiplying a Matrix C (for now assumed to be a * DenseGenMatrix) from the right to a MultiVectorMatrix U and * adding the result to this MultiVectorMatrix V. V = a * U * C + * b * V. */ void AddRightMultMatrix(Number a, const MultiVectorMatrix& U, const Matrix& C, Number b); /** Method for initializing all Vectors with new (uninitialized) * Vectors. */ void FillWithNewVectors(); /** Method for adding the low-rank update matrix corresponding to * this matrix to a vector. If V is this MultiVectorMatrix, the * operation is y = beta*y + alpha*V*V^T*x. */ void LRMultVector(Number alpha, const Vector &x, Number beta, Vector &y) const; /** Vector space for the columns */ SmartPtr ColVectorSpace() const; /** Return the MultiVectorMatrixSpace */ SmartPtr MultiVectorMatrixOwnerSpace() const; protected: /**@name Overloaded methods from Matrix base class */ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ MultiVectorMatrix(); /** Copy Constructor */ MultiVectorMatrix(const MultiVectorMatrix&); /** Overloaded Equals Operator */ void operator=(const MultiVectorMatrix&); //@} const MultiVectorMatrixSpace* owner_space_; /** space for storing the const Vector's */ std::vector > const_vecs_; /** space for storing the non-const Vector's */ std::vector > non_const_vecs_; /** Method for accessing the internal Vectors internally */ //@{ inline const Vector* ConstVec(Index i) const { DBG_ASSERT(i < NCols()); DBG_ASSERT(IsValid(const_vecs_[i]) || IsValid(non_const_vecs_[i])); if (IsValid(non_const_vecs_[i])) { return GetRawPtr(non_const_vecs_[i]); } else { return GetRawPtr(const_vecs_[i]); } } inline Vector* Vec(Index i) { DBG_ASSERT(i < NCols()); DBG_ASSERT(IsValid(non_const_vecs_[i])); return GetRawPtr(non_const_vecs_[i]); } //@} }; /** This is the matrix space for MultiVectorMatrix. */ class MultiVectorMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of columns (i.e., Vectors to be * stored) and given the VectorSpace for the Vectors. */ MultiVectorMatrixSpace(Index ncols, const VectorSpace& vec_space); /** Destructor */ ~MultiVectorMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ MultiVectorMatrix* MakeNewMultiVectorMatrix() const { return new MultiVectorMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewMultiVectorMatrix(); } /** Accessor method for the VectorSpace for the columns */ SmartPtr ColVectorSpace() const { return vec_space_; } private: SmartPtr vec_space_; }; inline MultiVectorMatrix::~MultiVectorMatrix() {} inline SmartPtr MultiVectorMatrix::MakeNewMultiVectorMatrix() const { return owner_space_->MakeNewMultiVectorMatrix(); } inline SmartPtr MultiVectorMatrix::ColVectorSpace() const { return owner_space_->ColVectorSpace(); } inline SmartPtr MultiVectorMatrix::MultiVectorMatrixOwnerSpace() const { return owner_space_; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpLapack.cpp0000644000076600007660000001162211504216567016602 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLapack.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-25 #include "IpoptConfig.h" #include "IpLapack.hpp" #ifdef FUNNY_LAPACK_FINT # define ipfint long # define ipfintarray int #else # define ipfintarray ipfint #endif // Prototypes for the LAPACK routines extern "C" { /** LAPACK Fortran subroutine DPOTRS. */ void F77_FUNC(dpotrs,DPOTRS)(char *uplo, ipfint *n, ipfint *nrhs, const double *A, ipfint *ldA, double *B, ipfint *ldB, ipfint *info, int uplo_len); /** LAPACK Fortran subroutine DPOTRF. */ void F77_FUNC(dpotrf,DPOTRF)(char *uplo, ipfint *n, double *A, ipfint *ldA, ipfint *info, int uplo_len); /** LAPACK Fortran subroutine DSYEV */ void F77_FUNC(dsyev,DSYEV)(char *jobz, char *uplo, ipfint *n, double *A, ipfint *ldA, double *W, double *WORK, ipfint *LWORK, ipfint *info, int jobz_len, int uplo_len); /** LAPACK Fortran subroutine DGETRF. */ void F77_FUNC(dgetrf,DGETRF)(ipfint *m, ipfint *n, double *A, ipfint *ldA, ipfintarray *IPIV, ipfint *info); /** LAPACK Fortran subroutine DGETRS. */ void F77_FUNC(dgetrs,DGETRS)(char *trans, ipfint *n, ipfint *nrhs, const double *A, ipfint *ldA, ipfintarray *IPIV, double *B, ipfint *ldB, ipfint *info, int trans_len); } namespace Ipopt { /* Interface to FORTRAN routine DPOTRS. */ void IpLapackDpotrs(Index ndim, Index nrhs, const Number *a, Index lda, Number *b, Index ldb) { #ifdef COIN_HAS_LAPACK ipfint N=ndim, NRHS=nrhs, LDA=lda, LDB=ldb, INFO; char uplo = 'L'; F77_FUNC(dpotrs,DPOTRS)(&uplo, &N, &NRHS, a, &LDA, b, &LDB, &INFO, 1); DBG_ASSERT(INFO==0); #else std::string msg = "Ipopt has been compiled without LAPACK routine DPOTRS, but options are chosen that require this dependency. Abort."; THROW_EXCEPTION(LAPACK_NOT_INCLUDED, msg); #endif } void IpLapackDpotrf(Index ndim, Number *a, Index lda, Index& info) { #ifdef COIN_HAS_LAPACK ipfint N=ndim, LDA=lda, INFO; char UPLO = 'L'; F77_FUNC(dpotrf,DPOTRF)(&UPLO, &N, a, &LDA, &INFO, 1); info = INFO; #else std::string msg = "Ipopt has been compiled without LAPACK routine DPOTRF, but options are chosen that require this dependency. Abort."; THROW_EXCEPTION(LAPACK_NOT_INCLUDED, msg); #endif } void IpLapackDsyev(bool compute_eigenvectors, Index ndim, Number *a, Index lda, Number *w, Index& info) { #ifdef COIN_HAS_LAPACK ipfint N=ndim, LDA=lda, INFO; char JOBZ; if (compute_eigenvectors) { JOBZ = 'V'; } else { JOBZ = 'N'; } char UPLO = 'L'; // First we find out how large LWORK should be ipfint LWORK = -1; double WORK_PROBE; F77_FUNC(dsyev,DSYEV)(&JOBZ, &UPLO, &N, a, &LDA, w, &WORK_PROBE, &LWORK, &INFO, 1, 1); DBG_ASSERT(INFO==0); LWORK = (ipfint) WORK_PROBE; DBG_ASSERT(LWORK>0); double* WORK = new double[LWORK]; for (Index i=0; i=0); info = INFO; delete [] WORK; #else std::string msg = "Ipopt has been compiled without LAPACK routine DSYEV, but options are chosen that require this dependency. Abort."; THROW_EXCEPTION(LAPACK_NOT_INCLUDED, msg); #endif } void IpLapackDgetrf(Index ndim, Number *a, Index *ipiv, Index lda, Index& info) { #ifdef COIN_HAS_LAPACK ipfint M=ndim, N=ndim, LDA=lda, INFO; F77_FUNC(dgetrf,DGETRF)(&M, &N, a, &LDA, ipiv, &INFO); info = INFO; #else std::string msg = "Ipopt has been compiled without LAPACK routine DPOTRF, but options are chosen that require this dependency. Abort."; THROW_EXCEPTION(LAPACK_NOT_INCLUDED, msg); #endif } /* Interface to FORTRAN routine DGETRS. */ void IpLapackDgetrs(Index ndim, Index nrhs, const Number *a, Index lda, Index* ipiv, Number *b, Index ldb) { #ifdef COIN_HAS_LAPACK ipfint N=ndim, NRHS=nrhs, LDA=lda, LDB=ldb, INFO; char trans = 'N'; F77_FUNC(dgetrs,DGETRS)(&trans, &N, &NRHS, a, &LDA, ipiv, b, &LDB, &INFO, 1); DBG_ASSERT(INFO==0); #else std::string msg = "Ipopt has been compiled without LAPACK routine DPOTRS, but options are chosen that require this dependency. Abort."; THROW_EXCEPTION(LAPACK_NOT_INCLUDED, msg); #endif } } Ipopt-3.11.4/Ipopt/src/LinAlg/IpExpandedMultiVectorMatrix.cpp0000644000076600007660000001416111504216567022523 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExpandedMultiVectorMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2009-11-05 #include "IpExpandedMultiVectorMatrix.hpp" #include "IpDenseVector.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif ExpandedMultiVectorMatrix::ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space), vecs_(owner_space->NRows()) {} void ExpandedMultiVectorMatrix::SetVector(Index i, SmartPtr vec) { DBG_ASSERT(i P = GetExpansionMatrix(); SmartPtr y_tmp; if (IsValid(P)) { y_tmp = RowVectorSpace()->MakeNew(); y_tmp->Set(0.); } else { // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } y_tmp = &y; } // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); // We simply add all the Vectors one after the other if (dense_x->IsHomogeneous()) { Number val = dense_x->Scalar(); for (Index i=0; iAddOneVector(alpha*val, *vecs_[i], 1.); } } } else { const Number* values = dense_x->Values(); for (Index i=0; iAddOneVector(alpha*values[i], *vecs_[i], 1.); } } } if (IsValid(P)) { P->MultVector(1., *y_tmp, beta, y); } } void ExpandedMultiVectorMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NRows()==y.Dim()); DBG_ASSERT(NCols()==x.Dim()); // check if there is an expansion matrix SmartPtr P = GetExpansionMatrix(); SmartPtr x_tmp; if (IsValid(P)) { SmartPtr exp_x = RowVectorSpace()->MakeNew(); P->TransMultVector(1., x, 0., *exp_x); x_tmp = ConstPtr(exp_x); } else { x_tmp = &x; } // See if we can understand the data DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); // Use the individual dot products to get the matrix (transpose) // vector product Number *yvals=dense_y->Values(); if ( beta!=0.0 ) { for (Index i=0; iDot(*x_tmp) + beta*yvals[i]; } else { yvals[i] *= beta; } } } else { for (Index i=0; iDot(*x_tmp); } else { yvals[i] = 0.; } } } } bool ExpandedMultiVectorMatrix::HasValidNumbersImpl() const { for (Index i=0; iHasValidNumbers()) { return false; } } return true; } void ExpandedMultiVectorMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "ExpandedMultiVectorMatrix::ComputeRowAMaxImpl not implemented"); } void ExpandedMultiVectorMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "ExpandedMultiVectorMatrix::ComputeColAMaxImpl not implemented"); } void ExpandedMultiVectorMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sExpandedMultiVectorMatrix \"%s\" with %d columns:\n", prefix.c_str(), name.c_str(), NRows()); for (Index i=0; iPrint(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sVector in column %d is not yet set!\n", prefix.c_str(), i); } } SmartPtr P = GetExpansionMatrix(); if (IsValid(P)) { char buffer[256]; Snprintf(buffer, 255, "%s[ExpMat]", name.c_str()); std::string term_name = buffer; P->Print(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sExpandedMultiVectorMatrix \"%s\" has no ExpansionMatrix\n", prefix.c_str(), name.c_str()); } } ExpandedMultiVectorMatrixSpace:: ExpandedMultiVectorMatrixSpace(Index nrows, const VectorSpace& vec_space, SmartPtr exp_matrix) : MatrixSpace(nrows, IsValid(exp_matrix) ? exp_matrix->NRows() : vec_space.Dim()), vec_space_(&vec_space), exp_matrix_(exp_matrix) {} } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpCompoundSymMatrix.cpp0000644000076600007660000002435611504216567021061 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCompoundSymMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpCompoundSymMatrix.hpp" #include "IpCompoundVector.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { CompoundSymMatrix::CompoundSymMatrix(const CompoundSymMatrixSpace* owner_space) : SymMatrix(owner_space), owner_space_(owner_space), matrices_valid_(false) { for (Index irow=0; irow > row(irow+1); std::vector< SmartPtr > const_row(irow+1); comps_.push_back(row); const_comps_.push_back(const_row); } } CompoundSymMatrix::~CompoundSymMatrix() {} void CompoundSymMatrix::SetComp(Index irow, Index jcol, const Matrix& matrix) { DBG_ASSERT(!matrices_valid_); DBG_ASSERT(irow(&matrix)); DBG_ASSERT(owner_space_->GetCompSpace(irow, jcol)->IsMatrixFromSpace(matrix)); comps_[irow][jcol] = NULL; const_comps_[irow][jcol] = &matrix; ObjectChanged(); } void CompoundSymMatrix::SetCompNonConst(Index irow, Index jcol, Matrix& matrix) { DBG_ASSERT(!matrices_valid_); DBG_ASSERT(irow < NComps_Dim()); DBG_ASSERT(jcol <= irow); // Matrices on the diagonal must be symmetric DBG_ASSERT( irow != jcol || dynamic_cast(&matrix)); DBG_ASSERT(owner_space_->GetCompSpace(irow, jcol)->IsMatrixFromSpace(matrix)); const_comps_[irow][jcol] = NULL; comps_[irow][jcol] = &matrix; ObjectChanged(); } Index CompoundSymMatrix::NComps_Dim() const { return owner_space_->NComps_Dim(); } void CompoundSymMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vectors are assumed to be compound Vectors as well const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); CompoundVector* comp_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); // A few sanity checks if (comp_x) { DBG_ASSERT(NComps_Dim()==comp_x->NComps()); } else { DBG_ASSERT(NComps_Dim() == 1); } if (comp_y) { DBG_ASSERT(NComps_Dim()==comp_y->NComps()); } else { DBG_ASSERT(NComps_Dim() == 1); } // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for (Index irow=0; irow y_i; if (comp_y) { y_i = comp_y->GetCompNonConst(irow); } else { y_i = &y; } DBG_ASSERT(IsValid(y_i)); for (Index jcol=0; jcol<=irow; jcol++) { SmartPtr x_j; if (comp_x) { x_j = comp_x->GetComp(irow); } else { x_j = &x; } DBG_ASSERT(IsValid(x_j)); if (ConstComp(irow,jcol)) { ConstComp(irow,jcol)->MultVector(alpha, *comp_x->GetComp(jcol), 1., *comp_y->GetCompNonConst(irow)); } } for (Index jcol = irow+1; jcol < NComps_Dim(); jcol++) { if (ConstComp(jcol,irow)) { ConstComp(jcol,irow)->TransMultVector(alpha, *comp_x->GetComp(jcol), 1., *comp_y->GetCompNonConst(irow)); } } } } bool CompoundSymMatrix::HasValidNumbersImpl() const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); for (Index irow=0; irowHasValidNumbers()) { return false; } } } } return true; } void CompoundSymMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vector is assumed to be compound Vectors as well except if // there is only one component CompoundVector* comp_vec = dynamic_cast(&rows_norms); // A few sanity checks if (comp_vec) { DBG_ASSERT(NComps_Dim()==comp_vec->NComps()); } else { DBG_ASSERT(NComps_Dim() == 1); } for (Index jcol = 0; jcol < NComps_Dim(); jcol++) { for (Index irow = 0; irow < NComps_Dim(); irow++) { SmartPtr vec_i; if (comp_vec) { vec_i = comp_vec->GetCompNonConst(irow); } else { vec_i = &rows_norms; } DBG_ASSERT(IsValid(vec_i)); if (jcol <= irow && ConstComp(irow,jcol)) { ConstComp(irow, jcol)->ComputeRowAMax(*vec_i, false); } else if (jcol > irow && ConstComp(jcol, irow)) { ConstComp(jcol, irow)->ComputeRowAMax(*vec_i, false); } } } } void CompoundSymMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sCompoundSymMatrix \"%s\" with %d rows and columns components:\n", prefix.c_str(), name.c_str(), NComps_Dim()); for (Index irow = 0; irow < NComps_Dim(); irow++ ) { for (Index jcol = 0; jcol <= irow; jcol++ ) { jnlst.PrintfIndented(level, category, indent, "%sComponent for row %d and column %d:\n", prefix.c_str(), irow, jcol); if (ConstComp(irow,jcol)) { DBG_ASSERT(name.size()<200); char buffer[256]; Snprintf(buffer, 255, "%s[%d][%d]", name.c_str(), irow, jcol); std::string term_name = buffer; ConstComp(irow,jcol)->Print(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sThis component has not been set.\n", prefix.c_str()); } } } } bool CompoundSymMatrix::MatricesValid() const { // Check to make sure we have matrices everywhere the space has matrices // We already check that the matrix agrees with the block space // in the SetComp methods bool retValue = true; for (Index i=0; iGetCompSpace(i,j))) || (ConstComp(i, j) && IsNull(owner_space_->GetCompSpace(i,j))) ) { retValue = false; break; } } } return retValue; } CompoundSymMatrixSpace::CompoundSymMatrixSpace(Index ncomp_spaces, Index total_dim) : SymMatrixSpace(total_dim), ncomp_spaces_(ncomp_spaces), block_dim_(ncomp_spaces, -1), dimensions_set_(false) { for (Index irow=0; irow > row(irow+1); std::vector< bool > allocate_row(irow+1, false); comp_spaces_.push_back(row); allocate_block_.push_back(allocate_row); } } void CompoundSymMatrixSpace::SetBlockDim(Index irow_jcol, Index dim) { DBG_ASSERT(!dimensions_set_ && "for now, if dimensions are set, they cannot be changed"); DBG_ASSERT(block_dim_[irow_jcol] == -1 && "This dimension has already been set - sanity check"); DBG_ASSERT(irow_jcol < ncomp_spaces_); block_dim_[irow_jcol] = dim; } Index CompoundSymMatrixSpace::GetBlockDim(Index irow_jcol) const { DBG_ASSERT(dimensions_set_ && "Cannot get block dimensions before all dimensions are set."); DBG_ASSERT(irow_jcol < ncomp_spaces_); return block_dim_[irow_jcol]; } void CompoundSymMatrixSpace::SetCompSpace(Index irow, Index jcol, const MatrixSpace& mat_space, bool auto_allocate /*=false*/) { if (!dimensions_set_) { dimensions_set_ = DimensionsSet(); } DBG_ASSERT(dimensions_set_); DBG_ASSERT(irow (&mat_space)); DBG_ASSERT(block_dim_[jcol] != -1 && block_dim_[jcol] == mat_space.NCols()); DBG_ASSERT(block_dim_[irow] != -1 && block_dim_[irow] == mat_space.NRows()); comp_spaces_[irow][jcol] = &mat_space; allocate_block_[irow][jcol] = auto_allocate; } CompoundSymMatrix* CompoundSymMatrixSpace::MakeNewCompoundSymMatrix() const { if (!dimensions_set_) { dimensions_set_ = DimensionsSet(); } DBG_ASSERT(dimensions_set_); CompoundSymMatrix* mat = new CompoundSymMatrix(this); for (Index i=0; iSetCompNonConst(i, j, *GetCompSpace(i, j)->MakeNew()); } } } return mat; } bool CompoundSymMatrixSpace::DimensionsSet() const { Index total_dim= 0; bool valid = true; for (Index i=0; i #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #define ALLOW_NESTED namespace Ipopt { CompoundMatrix::CompoundMatrix(const CompoundMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space), matrices_valid_(false) { std::vector > row(NComps_Cols()); std::vector > const_row(NComps_Cols()); for (Index irow=0; irowGetCompSpace(irow, jcol)->IsMatrixFromSpace(matrix)); comps_[irow][jcol] = NULL; const_comps_[irow][jcol] = &matrix; ObjectChanged(); } void CompoundMatrix::SetCompNonConst(Index irow, Index jcol, Matrix& matrix) { DBG_ASSERT(irow < NComps_Rows()); DBG_ASSERT(jcol < NComps_Cols()); DBG_ASSERT(owner_space_->GetCompSpace(irow, jcol)->IsMatrixFromSpace(matrix)); const_comps_[irow][jcol] = NULL; comps_[irow][jcol] = &matrix; ObjectChanged(); } void CompoundMatrix::CreateBlockFromSpace(Index irow, Index jcol) { DBG_ASSERT(irow < NComps_Rows()); DBG_ASSERT(jcol < NComps_Cols()); DBG_ASSERT(IsValid(owner_space_->GetCompSpace(irow, jcol))); SetCompNonConst(irow, jcol, *owner_space_->GetCompSpace(irow,jcol)->MakeNew()); } void CompoundMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vectors are assumed to be compound Vectors as well const CompoundVector* comp_x = dynamic_cast(&x); CompoundVector* comp_y = dynamic_cast(&y); #ifndef ALLOW_NESTED // A few sanity checks if (comp_x) { DBG_ASSERT(NComps_Cols()==comp_x->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_y) { DBG_ASSERT(NComps_Rows()==comp_y->NComps()); } else { DBG_ASSERT(NComps_Rows() == 1); } #endif if (comp_x) { if (NComps_Cols()!=comp_x->NComps()) { comp_x = NULL; } } if (comp_y) { if (NComps_Rows()!=comp_y->NComps()) { comp_y = NULL; } } // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for ( Index irow = 0; irow < NComps_Rows(); irow++ ) { SmartPtr y_i; if (comp_y) { y_i = comp_y->GetCompNonConst(irow); } else { y_i = &y; } DBG_ASSERT(IsValid(y_i)); for ( Index jcol = 0; jcol < NComps_Cols(); jcol++ ) { if ( (owner_space_->Diagonal() && irow == jcol) || (!owner_space_->Diagonal() && ConstComp(irow,jcol)) ) { SmartPtr x_j; if (comp_x) { x_j = comp_x->GetComp(jcol); } else if (NComps_Cols() == 1) { x_j = &x; } DBG_ASSERT(IsValid(x_j)); ConstComp(irow, jcol)->MultVector(alpha, *x_j, 1., *y_i); } } } } void CompoundMatrix::TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vectors are assumed to be compound Vectors as well const CompoundVector* comp_x = dynamic_cast(&x); CompoundVector* comp_y = dynamic_cast(&y); #ifndef ALLOW_NESTED // A few sanity checks if (comp_y) { DBG_ASSERT(NComps_Cols()==comp_y->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_x) { DBG_ASSERT(NComps_Rows()==comp_x->NComps()); } else { DBG_ASSERT(NComps_Rows() == 1); } #endif if (comp_y) { if (NComps_Cols()!=comp_y->NComps()) { comp_y = NULL; } } if (comp_x) { if (NComps_Rows()!=comp_x->NComps()) { comp_x = NULL; } } // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for ( Index irow = 0; irow < NComps_Cols(); irow++ ) { SmartPtr y_i; if (comp_y) { y_i = comp_y->GetCompNonConst(irow); } else { y_i = &y; } DBG_ASSERT(IsValid(y_i)); for ( Index jcol = 0; jcol < NComps_Rows(); jcol++ ) { if ( (owner_space_->Diagonal() && irow == jcol) || (!owner_space_->Diagonal() && ConstComp(jcol, irow)) ) { SmartPtr x_j; if (comp_x) { x_j = comp_x->GetComp(jcol); } else { x_j = &x; } DBG_ASSERT(IsValid(x_j)); ConstComp(jcol, irow)->TransMultVector(alpha, *x_j, 1., *y_i); } } } } // Specialized method (overloaded from IpMatrix) void CompoundMatrix::AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const { // The vectors are assumed to be compound Vectors as well (unless they // are assumed to consist of only one component const CompoundVector* comp_S = dynamic_cast(&S); const CompoundVector* comp_Z = dynamic_cast(&Z); CompoundVector* comp_X = dynamic_cast(&X); #ifndef ALLOW_NESTED // A few sanity checks for sizes if (comp_S) { DBG_ASSERT(NComps_Cols()==comp_S->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_Z) { DBG_ASSERT(NComps_Cols()==comp_Z->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_X) { DBG_ASSERT(NComps_Rows()==comp_X->NComps()); } else { DBG_ASSERT(NComps_Rows() == 1); } #endif if (comp_S) { if (NComps_Cols()!=comp_S->NComps()) { comp_S = NULL; } } if (comp_Z) { if (NComps_Cols()!=comp_Z->NComps()) { comp_Z = NULL; } } if (comp_X) { if (NComps_Rows()!=comp_X->NComps()) { comp_X = NULL; } } for ( Index irow = 0; irow < NComps_Rows(); irow++ ) { SmartPtr X_i; if (comp_X) { X_i = comp_X->GetCompNonConst(irow); } else { X_i = &X; } DBG_ASSERT(IsValid(X_i)); for ( Index jcol = 0; jcol < NComps_Cols(); jcol++ ) { if ( (owner_space_->Diagonal() && irow == jcol) || (!owner_space_->Diagonal() && ConstComp(irow, jcol)) ) { SmartPtr S_j; if (comp_S) { S_j = comp_S->GetComp(jcol); } else { S_j = &S; } DBG_ASSERT(IsValid(S_j)); SmartPtr Z_j; if (comp_Z) { Z_j = comp_Z->GetComp(jcol); } else { Z_j = &Z; } DBG_ASSERT(IsValid(Z_j)); ConstComp(irow, jcol)->AddMSinvZ(alpha, *S_j, *Z_j, *X_i); } } } } // Specialized method (overloaded from IpMatrix) void CompoundMatrix::SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const { // First check if the matrix is indeed such that we can use the // special methods from the component spaces (this only works if // we have exactly one submatrix per column) bool fast_SinvBlrmZMTdBr = false; if (!owner_space_->Diagonal()) { fast_SinvBlrmZMTdBr = true; for (Index jcol=0; jcol < NComps_Cols(); jcol++ ) { Index nblocks = 0; for (Index irow=0; irow < NComps_Rows(); irow++ ) { if (ConstComp(irow, jcol)) { nblocks++; if (nblocks>1) { break; } } } if (nblocks!=1) { fast_SinvBlrmZMTdBr = false; break; } } } if (!owner_space_->Diagonal() && !fast_SinvBlrmZMTdBr) { // Use the standard replacement implementation Matrix::SinvBlrmZMTdBrImpl(alpha, S, R, Z, D, X); DBG_ASSERT(false && "Found a matrix where we can't use the fast SinvBlrmZMTdBr implementation in CompoundMatrix"); } else { // The vectors are assumed to be compound Vectors as well (unless they // are assumed to consist of only one component const CompoundVector* comp_S = dynamic_cast(&S); const CompoundVector* comp_R = dynamic_cast(&R); const CompoundVector* comp_Z = dynamic_cast(&Z); const CompoundVector* comp_D = dynamic_cast(&D); CompoundVector* comp_X = dynamic_cast(&X); #ifndef ALLOW_NESTED // A few sanity checks for sizes if (comp_S) { DBG_ASSERT(NComps_Cols()==comp_S->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_Z) { DBG_ASSERT(NComps_Cols()==comp_Z->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_R) { DBG_ASSERT(NComps_Cols()==comp_R->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } if (comp_D) { DBG_ASSERT(NComps_Rows()==comp_D->NComps()); } else { DBG_ASSERT(NComps_Rows() == 1); } if (comp_X) { DBG_ASSERT(NComps_Cols()==comp_X->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } #endif if (comp_S) { if (NComps_Cols()!=comp_S->NComps()) { comp_S = NULL; } } if (comp_Z) { if (NComps_Cols()!=comp_Z->NComps()) { comp_Z = NULL; } } if (comp_R) { if (NComps_Cols()!=comp_R->NComps()) { comp_R = NULL; } } if (comp_D) { if (NComps_Rows()!=comp_D->NComps()) { comp_D = NULL; } } if (comp_X) { if (NComps_Cols()!=comp_X->NComps()) { comp_X = NULL; } } for (Index irow=0; irowDiagonal()) { for (Index j=0; j S_i; if (comp_S) { S_i = comp_S->GetComp(irow); } else { S_i = &S; } DBG_ASSERT(IsValid(S_i)); SmartPtr Z_i; if (comp_Z) { Z_i = comp_Z->GetComp(irow); } else { Z_i = &Z; } DBG_ASSERT(IsValid(Z_i)); SmartPtr R_i; if (comp_R) { R_i = comp_R->GetComp(irow); } else { R_i = &R; } DBG_ASSERT(IsValid(R_i)); SmartPtr D_i; if (comp_D) { D_i = comp_D->GetComp(jcol); } else { D_i = &D; } DBG_ASSERT(IsValid(D_i)); SmartPtr X_i; if (comp_X) { X_i = comp_X->GetCompNonConst(irow); } else { X_i = &X; } DBG_ASSERT(IsValid(X_i)); ConstComp(jcol, irow)->SinvBlrmZMTdBr(alpha, *S_i, *R_i, *Z_i, *D_i, *X_i); } } } bool CompoundMatrix::HasValidNumbersImpl() const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); for ( Index irow = 0; irow < NComps_Rows(); irow++ ) { for ( Index jcol = 0; jcol < NComps_Cols(); jcol++ ) { if ( (owner_space_->Diagonal() && irow == jcol) || (!owner_space_->Diagonal() && ConstComp(irow,jcol)) ) { if (!ConstComp(irow, jcol)->HasValidNumbers()) { return false; } } } } return true; } void CompoundMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vector is assumed to be compound Vectors as well except if // there is only one component CompoundVector* comp_vec = dynamic_cast(&rows_norms); #ifndef ALLOW_NESTED // A few sanity checks if (comp_vec) { DBG_ASSERT(NComps_Rows()==comp_vec->NComps()); } else { DBG_ASSERT(NComps_Rows() == 1); } #endif if (comp_vec) { if (NComps_Rows()!=comp_vec->NComps()) { comp_vec = NULL; } } for (Index jcol = 0; jcol < NComps_Cols(); jcol++) { for (Index irow = 0; irow < NComps_Rows(); irow++) { if (ConstComp(irow, jcol)) { SmartPtr vec_i; if (comp_vec) { vec_i = comp_vec->GetCompNonConst(irow); } else { vec_i = &rows_norms; } DBG_ASSERT(IsValid(vec_i)); ConstComp(irow, jcol)->ComputeRowAMax(*vec_i, false); } } } } void CompoundMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { if (!matrices_valid_) { matrices_valid_ = MatricesValid(); } DBG_ASSERT(matrices_valid_); // The vector is assumed to be compound Vectors as well except if // there is only one component CompoundVector* comp_vec = dynamic_cast(&cols_norms); #ifndef ALLOW_NESTED // A few sanity checks if (comp_vec) { DBG_ASSERT(NComps_Cols()==comp_vec->NComps()); } else { DBG_ASSERT(NComps_Cols() == 1); } #endif if (comp_vec) { if (NComps_Cols()!=comp_vec->NComps()) { comp_vec = NULL; } } for (Index irow = 0; irow < NComps_Rows(); irow++) { for (Index jcol = 0; jcol < NComps_Cols(); jcol++) { if (ConstComp(irow, jcol)) { SmartPtr vec_i; if (comp_vec) { vec_i = comp_vec->GetCompNonConst(irow); } else { vec_i = &cols_norms; } DBG_ASSERT(IsValid(vec_i)); ConstComp(irow, jcol)->ComputeColAMax(*vec_i, false); } } } } void CompoundMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sCompoundMatrix \"%s\" with %d row and %d columns components:\n", prefix.c_str(), name.c_str(), NComps_Rows(), NComps_Cols()); for (Index irow = 0; irow < NComps_Rows(); irow++ ) { for (Index jcol = 0; jcol < NComps_Cols(); jcol++ ) { jnlst.PrintfIndented(level, category, indent, "%sComponent for row %d and column %d:\n", prefix.c_str(), irow, jcol); if (ConstComp(irow, jcol)) { DBG_ASSERT(name.size()<200); char buffer[256]; Snprintf(buffer, 255, "%s[%2d][%2d]", name.c_str(), irow, jcol); std::string term_name = buffer; ConstComp(irow, jcol)->Print(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sComponent has not been set.\n", prefix.c_str()); } } } } bool CompoundMatrix::MatricesValid() const { // Check to make sure we have matrices everywhere the space has matrices // We already check that the matrix agrees with the block space // in the SetComp methods bool retValue = true; for (Index i=0; iGetCompSpace(i,j)) && owner_space_->GetCompSpace(i,j)->NRows()>0 && owner_space_->GetCompSpace(i,j)->NCols()>0) || (ConstComp(i,j) && IsNull(owner_space_->GetCompSpace(i,j))) ) { retValue = false; break; } } } return retValue; } CompoundMatrixSpace::CompoundMatrixSpace(Index ncomps_rows, Index ncomps_cols, Index total_nRows, Index total_nCols) : MatrixSpace(total_nRows, total_nCols), ncomps_rows_(ncomps_rows), ncomps_cols_(ncomps_cols), dimensions_set_(false), block_rows_(ncomps_rows, -1), block_cols_(ncomps_cols, -1), diagonal_(false) { DBG_START_METH("CompoundMatrixSpace::CompoundMatrixSpace", 0); std::vector > row(ncomps_cols_); std::vector< bool > allocate_row(ncomps_cols_, false); for (Index i=0; iSetCompNonConst(i, j, *GetCompSpace(i, j)->MakeNew()); } } } return mat; } bool CompoundMatrixSpace::DimensionsSet() const { DBG_START_METH("CompoundMatrixSpace::DimensionsSet", 0); Index total_nrows = 0; Index total_ncols = 0; bool valid = true; for (Index i=0; i tmp_x = x.MakeNewCopy(); SmartPtr tmp_y = y.MakeNew(); if (IsValid(owner_space_->ColumnScaling())) { tmp_x->ElementWiseMultiply(*owner_space_->ColumnScaling()); } matrix_->MultVector(1.0, *tmp_x, 0.0, *tmp_y); if (IsValid(owner_space_->RowScaling())) { tmp_y->ElementWiseMultiply(*owner_space_->RowScaling()); } y.Axpy(alpha, *tmp_y); } void ScaledMatrix::TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { DBG_ASSERT(IsValid(matrix_)); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } // need some temporary vectors SmartPtr tmp_x = x.MakeNewCopy(); SmartPtr tmp_y = y.MakeNew(); if (IsValid(owner_space_->RowScaling())) { tmp_x->ElementWiseMultiply(*owner_space_->RowScaling()); } matrix_->TransMultVector(1.0, *tmp_x, 0.0, *tmp_y); if (IsValid(owner_space_->ColumnScaling())) { tmp_y->ElementWiseMultiply(*owner_space_->ColumnScaling()); } y.Axpy(alpha, *tmp_y); } bool ScaledMatrix::HasValidNumbersImpl() const { DBG_ASSERT(IsValid(matrix_)); return matrix_->HasValidNumbers(); } void ScaledMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "ScaledMatrix::ComputeRowAMaxImpl not implemented"); } void ScaledMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "ScaledMatrix::ComputeColAMaxImpl not implemented"); } void ScaledMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sScaledMatrix \"%s\" of dimension %d x %d:\n", prefix.c_str(), name.c_str(), NRows(), NCols()); if (IsValid(owner_space_->RowScaling())) { owner_space_->RowScaling()->Print(&jnlst, level, category, name+"_row_scaling", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent+1, "RowScaling is NULL\n"); } if (IsValid(matrix_)) { matrix_->Print(&jnlst, level, category, name+"_unscaled_matrix", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent+1, "%sunscaled matrix is NULL\n", prefix.c_str()); } if (IsValid(owner_space_->ColumnScaling())) { owner_space_->ColumnScaling()->Print(&jnlst, level, category, name+"_column_scaling", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent+1, "%sColumnScaling is NULL\n", prefix.c_str()); } } void ScaledMatrix::AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const { DBG_ASSERT(false && "Got the ScaledMatrix::AddMSinvZImpl. Should implement specialized method!"); SmartPtr tmp = S.MakeNew(); tmp->AddVectorQuotient(1., Z, S, 0.); MultVector(alpha, *tmp, 1., X); } void ScaledMatrix::SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const { DBG_ASSERT(false && "Got the ScaledMatrix::SinvBlrmZMTdBrImpl. Should implement specialized method!"); TransMultVector(alpha, D, 0., X); X.ElementWiseMultiply(Z); X.Axpy(1., R); X.ElementWiseDivide(S); } ScaledMatrixSpace::ScaledMatrixSpace( const SmartPtr& row_scaling, bool row_scaling_reciprocal, const SmartPtr& unscaled_matrix_space, const SmartPtr& column_scaling, bool column_scaling_reciprocal) : MatrixSpace(unscaled_matrix_space->NRows(), unscaled_matrix_space->NCols()), unscaled_matrix_space_(unscaled_matrix_space) { if (IsValid(row_scaling)) { row_scaling_ = row_scaling->MakeNewCopy(); if (row_scaling_reciprocal) { row_scaling_->ElementWiseReciprocal(); } } else { row_scaling_ = NULL; } if (IsValid(column_scaling)) { column_scaling_ = column_scaling->MakeNewCopy(); if (column_scaling_reciprocal) { column_scaling_->ElementWiseReciprocal(); } } else { column_scaling_ = NULL; } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpIdentityMatrix.cpp0000644000076600007660000000440611504216567020367 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIdentityMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpIdentityMatrix.hpp" namespace Ipopt { IdentityMatrix::IdentityMatrix(const SymMatrixSpace* owner_space) : SymMatrix(owner_space), factor_(1.0) {} IdentityMatrix::~IdentityMatrix() {} Index IdentityMatrix::Dim() const { DBG_ASSERT(NRows() == NCols()); return NRows(); } void IdentityMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NRows() == NCols()); DBG_ASSERT(NRows() == x.Dim()); DBG_ASSERT(NCols() == y.Dim()); y.AddOneVector(alpha*factor_, x, beta); } bool IdentityMatrix::HasValidNumbersImpl() const { return IsFiniteNumber(factor_); } void IdentityMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { if (init) { rows_norms.Set(1.); } else { SmartPtr v = rows_norms.MakeNew(); v->Set(1.); rows_norms.ElementWiseMax(*v); } } void IdentityMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { DBG_ASSERT(NRows() == NCols()); jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sIdentityMatrix \"%s\" with %d rows and columns and the factor %23.16e.\n", prefix.c_str(), name.c_str(), NRows(), factor_); } void IdentityMatrix::AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const { DBG_ASSERT(NRows() == NCols()); DBG_ASSERT(NRows() == S.Dim()); DBG_ASSERT(NCols() == Z.Dim()); DBG_ASSERT(NCols() == X.Dim()); X.AddVectorQuotient(alpha, Z, S, 1.); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseGenMatrix.cpp0000644000076600007660000002625011504216567020267 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseGenMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-24 #include "IpDenseGenMatrix.hpp" #include "IpBlas.hpp" #include "IpLapack.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif DenseGenMatrix::DenseGenMatrix(const DenseGenMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space), values_(new Number[NCols()*NRows()]), initialized_(false), factorization_(NONE), pivot_(NULL) {} DenseGenMatrix::~DenseGenMatrix() { DBG_START_METH("DenseGenMatrix::~DenseGenMatrix()",dbg_verbosity); delete [] values_; delete [] pivot_; } void DenseGenMatrix::ScaleColumns(const DenseVector& scal_vec) { DBG_ASSERT(scal_vec.Dim() == NCols()); DBG_ASSERT(initialized_); const Number* scal_values = scal_vec.Values(); for (Index j=0; jDot(*V2.GetVector(j)); } } } else { for (Index j=0; jDot(*V2.GetVector(j)) + beta*values_[i+j*NRows()]; } } } initialized_ = true; ObjectChanged(); } bool DenseGenMatrix::ComputeCholeskyFactor(const DenseSymMatrix& M) { Index dim = M.Dim(); DBG_ASSERT(dim==NCols()); DBG_ASSERT(dim==NRows()); ObjectChanged(); // First we copy the content of the symmetric matrix into J const Number* Mvalues = M.Values(); for (Index j=0; j=0); if (info!=0) { initialized_ = false; return false; } // We set all strictly upper values to zero // ToDo: This might not be necessary?!? for (Index j=1; j=0); if (info!=0) { delete [] pivot_; pivot_ = NULL; initialized_ = false; return false; } else { initialized_ = true; } factorization_ = LU; return true; } void DenseGenMatrix::LUSolveMatrix(DenseGenMatrix& B) const { DBG_ASSERT(NRows()==NCols()); DBG_ASSERT(B.NRows()==NRows()); DBG_ASSERT(initialized_); DBG_ASSERT(factorization_==LU); Number* Bvalues = B.Values(); IpLapackDgetrs(NRows(), B.NCols(), values_, NRows(), pivot_, Bvalues, B.NRows()); } void DenseGenMatrix::LUSolveVector(DenseVector& b) const { DBG_ASSERT(NRows()==NCols()); DBG_ASSERT(b.Dim()==NRows()); DBG_ASSERT(initialized_); DBG_ASSERT(factorization_==LU); Number* bvalues = b.Values(); IpLapackDgetrs(NRows(), 1, values_, NRows(), pivot_, bvalues, b.Dim()); } void DenseGenMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); DBG_ASSERT(initialized_); // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); bool trans = false; IpBlasDgemv(trans, NRows(), NCols(), alpha, values_, NRows(), dense_x->Values(), 1, beta, dense_y->Values(), 1); } void DenseGenMatrix::TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==y.Dim()); DBG_ASSERT(NRows()==x.Dim()); DBG_ASSERT(initialized_); // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); bool trans = true; IpBlasDgemv(trans, NRows(), NCols(), alpha, values_, NRows(), dense_x->Values(), 1, beta, dense_y->Values(), 1); } void DenseGenMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { // A few sanity checks DBG_ASSERT(initialized_); DenseVector* dense_vec = static_cast(&rows_norms); DBG_ASSERT(dynamic_cast(&rows_norms)); Number* vec_vals=dense_vec->Values(); const double* vals = values_; for (Index irow=0; irow(&cols_norms); DBG_ASSERT(dynamic_cast(&cols_norms)); Number* vec_vals=dense_vec->Values(); const double* vals = values_; for (Index jcol=0; jcolNonzeros(); } inline const Index* SymTMatrix::Irows() const { return owner_space_->Irows(); } inline const Index* SymTMatrix::Jcols() const { return owner_space_->Jcols(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/TMatrices/IpGenTMatrix.cpp0000644000076600007660000001532311504216567021326 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGenTMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpGenTMatrix.hpp" #include "IpDenseVector.hpp" #include "IpBlas.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { GenTMatrix::GenTMatrix(const GenTMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space), values_(NULL), initialized_(false) { values_ = owner_space_->AllocateInternalStorage(); if (Nonzeros() == 0) { initialized_ = true; // I guess ?!? what does this mean ?!? } } GenTMatrix::~GenTMatrix() { owner_space_->FreeInternalStorage(values_); } void GenTMatrix::SetValues(const Number* Values) { IpBlasDcopy(Nonzeros(), Values, 1, values_, 1); initialized_ = true; ObjectChanged(); } void GenTMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); // Take care of the y part of the addition DBG_ASSERT(initialized_); if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); if (dense_x && dense_y) { const Index* irows=Irows(); const Index* jcols=Jcols(); const Number* val=values_; Number* yvals=dense_y->Values(); yvals--; if (dense_x->IsHomogeneous()) { Number as = alpha * dense_x->Scalar(); for (Index i=0; iValues(); xvals--; for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); if (dense_x && dense_y) { const Index* irows=Irows(); const Index* jcols=Jcols(); const Number* val=values_; Number* yvals=dense_y->Values(); yvals--; if (dense_x->IsHomogeneous()) { Number as = alpha * dense_x->Scalar(); for (Index i=0; iValues(); xvals--; for (Index i=0; i(&rows_norms); DBG_ASSERT(dynamic_cast(&rows_norms)); const Index* irows=Irows(); const Number* val=values_; Number* vec_vals=dense_vec->Values(); vec_vals--; for (Index i=0; i(&cols_norms); DBG_ASSERT(dynamic_cast(&cols_norms)); const Index* jcols=Jcols(); const Number* val=values_; Number* vec_vals=dense_vec->Values(); vec_vals--; for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { SymTMatrix::SymTMatrix(const SymTMatrixSpace* owner_space) : SymMatrix(owner_space), owner_space_(owner_space), values_(NULL), initialized_(false) { values_ = owner_space_->AllocateInternalStorage(); if (Nonzeros() == 0) { initialized_ = true; // I guess ?!? what does this mean ?!? } } SymTMatrix::~SymTMatrix() { owner_space_->FreeInternalStorage(values_); } void SymTMatrix::SetValues(const Number* Values) { IpBlasDcopy(Nonzeros(), Values, 1, values_, 1); initialized_ = true; ObjectChanged(); } void SymTMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(Dim()==x.Dim()); DBG_ASSERT(Dim()==y.Dim()); // Take care of the y part of the addition DBG_ASSERT(initialized_); if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); if (dense_x && dense_y) { const Index* irn=Irows(); const Index* jcn=Jcols(); const Number* val=values_; Number* yvals=dense_y->Values(); if (dense_x->IsHomogeneous()) { Number as = alpha * dense_x->Scalar(); for (Index i=0; iValues(); for (Index i=0; i(&rows_norms); DBG_ASSERT(dynamic_cast(&rows_norms)); const Index* irn=Irows(); const Index* jcn=Jcols(); const Number* val=values_; Number* vec_vals=dense_vec->Values(); vec_vals--; const Number zero = 0.; IpBlasDcopy(NRows(), &zero, 0, vec_vals, 1); for (Index i=0; i $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/LinAlg/TMatrices/IpTripletHelper.cpp0000644000076600007660000006602311504216567022072 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTripletHelper.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpTripletHelper.hpp" #include "IpGenTMatrix.hpp" #include "IpSymTMatrix.hpp" #include "IpDiagMatrix.hpp" #include "IpIdentityMatrix.hpp" #include "IpExpansionMatrix.hpp" #include "IpScaledMatrix.hpp" #include "IpSymScaledMatrix.hpp" #include "IpSumMatrix.hpp" #include "IpSumSymMatrix.hpp" #include "IpZeroMatrix.hpp" #include "IpCompoundMatrix.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpTransposeMatrix.hpp" #include "IpExpandedMultiVectorMatrix.hpp" #include "IpDenseVector.hpp" #include "IpCompoundVector.hpp" #include "IpBlas.hpp" namespace Ipopt { Index TripletHelper::GetNumberEntries(const Matrix& matrix) { const Matrix* mptr = &matrix; const GenTMatrix* gent = dynamic_cast(mptr); if (gent) { return gent->Nonzeros(); } const SymTMatrix* symt = dynamic_cast(mptr); if (symt) { return symt->Nonzeros(); } const ScaledMatrix* scaled = dynamic_cast(mptr); if (scaled) { return GetNumberEntries(*GetRawPtr(scaled->GetUnscaledMatrix())); } const SymScaledMatrix* symscaled = dynamic_cast(mptr); if (symscaled) { return GetNumberEntries(*GetRawPtr(symscaled->GetUnscaledMatrix())); } const DiagMatrix* diag = dynamic_cast(mptr); if (diag) { return diag->Dim(); } const IdentityMatrix* ident = dynamic_cast(mptr); if (ident) { return ident->Dim(); } const ExpansionMatrix* exp = dynamic_cast(mptr); if (exp) { return exp->NCols(); } const SumMatrix* sum = dynamic_cast(mptr); if (sum) { return GetNumberEntries_(*sum); } const SumSymMatrix* sumsym = dynamic_cast(mptr); if (sumsym) { return GetNumberEntries_(*sumsym); } const ZeroMatrix* zero = dynamic_cast(mptr); if (zero) { return 0; } const CompoundMatrix* cmpd = dynamic_cast(mptr); if (cmpd) { return GetNumberEntries_(*cmpd); } const CompoundSymMatrix* cmpd_sym = dynamic_cast(mptr); if (cmpd_sym) { return GetNumberEntries_(*cmpd_sym); } const TransposeMatrix* trans = dynamic_cast(mptr); if (trans) { return GetNumberEntries_(*trans); } const ExpandedMultiVectorMatrix* expmv = dynamic_cast(mptr); if (expmv) { return GetNumberEntries_(*expmv); } THROW_EXCEPTION(UNKNOWN_MATRIX_TYPE,"Unknown matrix type passed to TripletHelper::GetNumberEntries"); } void TripletHelper::FillRowCol(Index n_entries, const Matrix& matrix, Index* iRow, Index* jCol, Index row_offset/*=0*/, Index col_offset/*=0*/) { const Matrix* mptr = &matrix; const GenTMatrix* gent = dynamic_cast(mptr); if (gent) { FillRowCol_(n_entries, *gent, row_offset, col_offset, iRow, jCol); return; } const SymTMatrix* symt = dynamic_cast(mptr); if (symt) { FillRowCol_(n_entries, *symt, row_offset, col_offset, iRow, jCol); return; } const ScaledMatrix* scaled = dynamic_cast(mptr); if (scaled) { FillRowCol_(n_entries, *scaled, row_offset, col_offset, iRow, jCol); return; } const SymScaledMatrix* symscaled = dynamic_cast(mptr); if (symscaled) { FillRowCol_(n_entries, *symscaled, row_offset, col_offset, iRow, jCol); return; } const DiagMatrix* diag = dynamic_cast(mptr); if (diag) { FillRowCol_(n_entries, *diag, row_offset, col_offset, iRow, jCol); return; } const IdentityMatrix* ident = dynamic_cast(mptr); if (ident) { FillRowCol_(n_entries, *ident, row_offset, col_offset, iRow, jCol); return; } const ExpansionMatrix* exp = dynamic_cast(mptr); if (exp) { FillRowCol_(n_entries, *exp, row_offset, col_offset, iRow, jCol); return; } const SumMatrix* sum = dynamic_cast(mptr); if (sum) { FillRowCol_(n_entries, *sum, row_offset, col_offset, iRow, jCol); return; } const SumSymMatrix* sumsym = dynamic_cast(mptr); if (sumsym) { FillRowCol_(n_entries, *sumsym, row_offset, col_offset, iRow, jCol); return; } const ZeroMatrix* zero = dynamic_cast(mptr); if (zero) { DBG_ASSERT(n_entries == 0); return; } const CompoundMatrix* cmpd = dynamic_cast(mptr); if (cmpd) { FillRowCol_(n_entries, *cmpd, row_offset, col_offset, iRow, jCol); return; } const CompoundSymMatrix* cmpd_sym = dynamic_cast(mptr); if (cmpd_sym) { FillRowCol_(n_entries, *cmpd_sym, row_offset, col_offset, iRow, jCol); return; } const TransposeMatrix* trans = dynamic_cast(mptr); if (trans) { FillRowCol_(n_entries, *trans, row_offset, col_offset, iRow, jCol); return; } const ExpandedMultiVectorMatrix* expmv = dynamic_cast(mptr); if (expmv) { FillRowCol_(n_entries, *expmv, row_offset, col_offset, iRow, jCol); return; } THROW_EXCEPTION(UNKNOWN_MATRIX_TYPE,"Unknown matrix type passed to TripletHelper::FillRowCol"); } void TripletHelper::FillValues(Index n_entries, const Matrix& matrix, Number* values) { const Matrix* mptr = &matrix; const GenTMatrix* gent = dynamic_cast(mptr); if (gent) { FillValues_(n_entries, *gent, values); return; } const SymTMatrix* symt = dynamic_cast(mptr); if (symt) { FillValues_(n_entries, *symt, values); return; } const ScaledMatrix* scaled = dynamic_cast(mptr); if (scaled) { FillValues_(n_entries, *scaled, values); return; } const SymScaledMatrix* symscaled = dynamic_cast(mptr); if (symscaled) { FillValues_(n_entries, *symscaled, values); return; } const DiagMatrix* diag = dynamic_cast(mptr); if (diag) { FillValues_(n_entries, *diag, values); return; } const IdentityMatrix* ident = dynamic_cast(mptr); if (ident) { FillValues_(n_entries, *ident, values); return; } const ExpansionMatrix* exp = dynamic_cast(mptr); if (exp) { FillValues_(n_entries, *exp, values); return; } const SumMatrix* sum = dynamic_cast(mptr); if (sum) { FillValues_(n_entries, *sum, values); return; } const SumSymMatrix* sumsym = dynamic_cast(mptr); if (sumsym) { FillValues_(n_entries, *sumsym, values); return; } const ZeroMatrix* zero = dynamic_cast(mptr); if (zero) { DBG_ASSERT(n_entries == 0); return; } const CompoundMatrix* cmpd = dynamic_cast(mptr); if (cmpd) { FillValues_(n_entries, *cmpd, values); return; } const CompoundSymMatrix* cmpd_sym = dynamic_cast(mptr); if (cmpd_sym) { FillValues_(n_entries, *cmpd_sym, values); return; } const TransposeMatrix* trans = dynamic_cast(mptr); if (trans) { FillValues_(n_entries, *trans, values); return; } const ExpandedMultiVectorMatrix* expmv = dynamic_cast(mptr); if (expmv) { FillValues_(n_entries, *expmv, values); return; } THROW_EXCEPTION(UNKNOWN_MATRIX_TYPE,"Unknown matrix type passed to TripletHelper::FillValues"); } Index TripletHelper::GetNumberEntries_(const SumMatrix& matrix) { Index n_entries = 0; Index nterms = matrix.NTerms(); for (Index i=0; i i_mat; matrix.GetTerm(i, dummy, i_mat); n_entries += GetNumberEntries(*i_mat); } return n_entries; } Index TripletHelper::GetNumberEntries_(const SumSymMatrix& matrix) { Index n_entries = 0; Index nterms = matrix.NTerms(); for (Index i=0; i i_mat; matrix.GetTerm(i, dummy, i_mat); n_entries += GetNumberEntries(*i_mat); } return n_entries; } Index TripletHelper::GetNumberEntries_(const CompoundMatrix& matrix) { Index n_entries = 0; Index nrows = matrix.NComps_Rows(); Index ncols = matrix.NComps_Cols(); for (Index i=0; i comp = matrix.GetComp(i,j); if (IsValid(comp)) { n_entries += GetNumberEntries(*comp); } } } return n_entries; } Index TripletHelper::GetNumberEntries_(const CompoundSymMatrix& matrix) { Index n_entries = 0; Index dim = matrix.NComps_Dim(); for (Index i=0; i comp = matrix.GetComp(i,j); if (IsValid(comp)) { n_entries += GetNumberEntries(*comp); } } } return n_entries; } Index TripletHelper::GetNumberEntries_(const TransposeMatrix& matrix) { return GetNumberEntries(*matrix.OrigMatrix()); } Index TripletHelper::GetNumberEntries_(const ExpandedMultiVectorMatrix& matrix) { Index nRows = matrix.NRows(); Index dimVec = matrix.ExpandedMultiVectorMatrixOwnerSpace()->RowVectorSpace()->Dim(); return nRows*dimVec; } void TripletHelper::FillRowCol_(Index n_entries, const GenTMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { DBG_ASSERT(n_entries == matrix.Nonzeros()); const Index* irow = matrix.Irows(); const Index* jcol = matrix.Jcols(); for (Index i=0; i v = matrix.GetDiag(); FillValuesFromVector(n_entries, *v, values); } void TripletHelper::FillRowCol_(Index n_entries, const IdentityMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { DBG_ASSERT(n_entries == matrix.Dim()); row_offset++; col_offset++; for (Index i=0; i retTerm; matrix.GetTerm(i, retFactor, retTerm); Index term_n_entries = GetNumberEntries(*retTerm); total_n_entries += term_n_entries; FillRowCol(term_n_entries, *retTerm, iRow, jCol, row_offset, col_offset); // now shift the iRow, jCol pointers for the next term iRow += term_n_entries; jCol += term_n_entries; } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillValues_(Index n_entries, const SumMatrix& matrix, Number* values) { Index total_n_entries = 0; for (Index i=0; i retTerm; matrix.GetTerm(i, retFactor, retTerm); Index term_n_entries = GetNumberEntries(*retTerm); total_n_entries += term_n_entries; FillValues(term_n_entries, *retTerm, values); // Now adjust the values based on the factor IpBlasDscal(term_n_entries, retFactor, values, 1); // now shift the values pointer for the next term values += term_n_entries; } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillRowCol_(Index n_entries, const SumSymMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { Index total_n_entries = 0; for (Index i=0; i retTerm; matrix.GetTerm(i, retFactor, retTerm); Index term_n_entries = GetNumberEntries(*retTerm); total_n_entries += term_n_entries; FillRowCol(term_n_entries, *retTerm, iRow, jCol, row_offset, col_offset); // now shift the iRow, jCol pointers for the next term iRow += term_n_entries; jCol += term_n_entries; } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillValues_(Index n_entries, const SumSymMatrix& matrix, Number* values) { Index total_n_entries = 0; for (Index i=0; i retTerm; matrix.GetTerm(i, retFactor, retTerm); Index term_n_entries = GetNumberEntries(*retTerm); total_n_entries += term_n_entries; if (retFactor!=0.0) { FillValues(term_n_entries, *retTerm, values); if (retFactor!=1.) { // Now adjust the values based on the factor IpBlasDscal(term_n_entries, retFactor, values, 1); } } else { const Number zero = 0.; IpBlasDcopy(term_n_entries, &zero, 0, values, 1); } // now shift the values pointer for the next term values += term_n_entries; } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillRowCol_(Index n_entries, const CompoundMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { Index total_n_entries = 0; const CompoundMatrixSpace* owner_space = static_cast(GetRawPtr(matrix.OwnerSpace())); DBG_ASSERT(dynamic_cast(GetRawPtr(matrix.OwnerSpace()))); Index c_row_offset = row_offset; for (Index i=0; i blk_mat = matrix.GetComp(i, j); if (IsValid(blk_mat)) { Index blk_n_entries = GetNumberEntries(*blk_mat); total_n_entries += blk_n_entries; FillRowCol(blk_n_entries, *blk_mat, iRow, jCol, c_row_offset, c_col_offset); // now shift the iRow, jCol pointers for the next term iRow += blk_n_entries; jCol += blk_n_entries; } c_col_offset += owner_space->GetBlockCols(j); } c_row_offset += owner_space->GetBlockRows(i); } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillValues_(Index n_entries, const CompoundMatrix& matrix, Number* values) { Index total_n_entries = 0; for (Index i=0; i blk_mat = matrix.GetComp(i, j); if (IsValid(blk_mat)) { Index blk_n_entries = GetNumberEntries(*blk_mat); total_n_entries += blk_n_entries; FillValues(blk_n_entries, *blk_mat, values); // now shift the values pointer for the next term values += blk_n_entries; } } } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillRowCol_(Index n_entries, const CompoundSymMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { Index total_n_entries = 0; const CompoundSymMatrixSpace* owner_space = static_cast(GetRawPtr(matrix.OwnerSpace())); DBG_ASSERT(dynamic_cast(GetRawPtr(matrix.OwnerSpace()))); Index c_row_offset = row_offset; for (Index i=0; i blk_mat = matrix.GetComp(i, j); if (IsValid(blk_mat)) { Index blk_n_entries = GetNumberEntries(*blk_mat); total_n_entries += blk_n_entries; FillRowCol(blk_n_entries, *blk_mat, iRow, jCol, c_row_offset, c_col_offset); // now shift the iRow, jCol pointers for the next term iRow += blk_n_entries; jCol += blk_n_entries; } c_col_offset += owner_space->GetBlockDim(j); } c_row_offset += owner_space->GetBlockDim(i); } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillValues_(Index n_entries, const CompoundSymMatrix& matrix, Number* values) { Index total_n_entries = 0; for (Index i=0; i blk_mat = matrix.GetComp(i, j); if (IsValid(blk_mat)) { Index blk_n_entries = GetNumberEntries(*blk_mat); total_n_entries += blk_n_entries; FillValues(blk_n_entries, *blk_mat, values); // now shift the iRow, jCol pointers for the next term values += blk_n_entries; } } } DBG_ASSERT(total_n_entries == n_entries); } void TripletHelper::FillValuesFromVector(Index dim, const Vector& vector, Number* values) { DBG_ASSERT(dim == vector.Dim()); const DenseVector* dv = dynamic_cast(&vector); if (dv) { if (dv->IsHomogeneous()) { Number scalar = dv->Scalar(); IpBlasDcopy(dim, &scalar, 0, values, 1); } else { const Number* dv_vals = dv->Values(); IpBlasDcopy(dim, dv_vals, 1, values, 1); } return; } const CompoundVector* cv = dynamic_cast(&vector); if (cv) { Index ncomps = cv->NComps(); Index total_dim = 0; for (Index i=0; i comp = cv->GetComp(i); Index comp_dim = comp->Dim(); FillValuesFromVector(comp_dim, *comp, values); values += comp_dim; total_dim += comp_dim; } DBG_ASSERT(total_dim == dim); return; } THROW_EXCEPTION(UNKNOWN_VECTOR_TYPE,"Unknown vector type passed to TripletHelper::FillValues"); } void TripletHelper::FillRowCol_(Index n_entries, const ScaledMatrix& matrix, Index row_offset, Index col_offset, Index* iRow, Index* jCol) { FillRowCol(n_entries, *GetRawPtr(matrix.GetUnscaledMatrix()), iRow, jCol, row_offset, col_offset); } void TripletHelper::FillValues_(Index n_entries, const ScaledMatrix& matrix, Number* values) { // ToDo: // This method can be made much more efficient for ScaledMatrix with GenTMatrix // contained // Get the matrix values FillValues(n_entries, *GetRawPtr(matrix.GetUnscaledMatrix()), values); // Scale the values // To Do : This assumes 1-base values (like the TMatrices) Index* iRow = new Index[n_entries]; Index* jCol = new Index[n_entries]; FillRowCol(n_entries, *GetRawPtr(matrix.GetUnscaledMatrix()), iRow, jCol, 0, 0); if (IsValid(matrix.RowScaling())) { Index n_rows = matrix.NRows(); Number* row_scaling = new Number[n_rows]; FillValuesFromVector(n_rows, *matrix.RowScaling(), row_scaling); for (Index i=0; i P = matrix.GetExpansionMatrix(); if (IsValid(P)) { const Index* exppos = P->ExpandedPosIndices(); const Index nExp = P->NCols(); DBG_ASSERT(n_entries = nRows*nExp); for (Index irow = row_offset; irow < row_offset+nRows; irow++) { for (Index j=0; j P = matrix.GetExpansionMatrix(); if (IsValid(P)) { const Index nExp = P->NCols(); double* vecvals = new double[nExp]; for (Index i=0; i vec = matrix.GetVector(i); if (IsValid(vec)) { DBG_ASSERT(vec->Dim() == nExp); FillValuesFromVector(nExp, *vec, vecvals); for (Index j=0; j vec = matrix.GetVector(i); if (IsValid(vec)) { DBG_ASSERT(vec->Dim() == nCols); FillValuesFromVector(nCols, *vec, values); values += nCols; } else { for (Index j=0; j(&vector); if (dv) { Number* dv_vals = dv->Values(); IpBlasDcopy(dim, values, 1, dv_vals, 1); return; } CompoundVector* cv = dynamic_cast(&vector); if (cv) { Index ncomps = cv->NComps(); Index total_dim = 0; for (Index i=0; i comp = cv->GetCompNonConst(i); Index comp_dim = comp->Dim(); PutValuesInVector(comp_dim, values, *comp); values += comp_dim; total_dim += comp_dim; } DBG_ASSERT(total_dim == dim); return; } THROW_EXCEPTION(UNKNOWN_VECTOR_TYPE,"Unknown vector type passed to TripletHelper::PutValuesInVector"); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/TMatrices/Makefile.in0000644000076600007660000005017612156624616020363 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/LinAlg/TMatrices DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libtmatrices_la_LIBADD = am_libtmatrices_la_OBJECTS = IpGenTMatrix.lo IpSymTMatrix.lo \ IpTripletHelper.lo libtmatrices_la_OBJECTS = $(am_libtmatrices_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libtmatrices_la_SOURCES) DIST_SOURCES = $(libtmatrices_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign noinst_LTLIBRARIES = libtmatrices.la libtmatrices_la_SOURCES = \ IpGenTMatrix.cpp IpGenTMatrix.hpp \ IpSymTMatrix.cpp IpSymTMatrix.hpp \ IpTripletHelper.cpp IpTripletHelper.hpp libtmatrices_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/..` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpGenTMatrix.cppbak IpGenTMatrix.hppbak \ IpSymTMatrix.cppbak IpSymTMatrix.hppbak \ IpTripletHelper.cppbak IpTripletHelper.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/LinAlg/TMatrices/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/LinAlg/TMatrices/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libtmatrices.la: $(libtmatrices_la_OBJECTS) $(libtmatrices_la_DEPENDENCIES) $(CXXLINK) $(libtmatrices_la_LDFLAGS) $(libtmatrices_la_OBJECTS) $(libtmatrices_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpGenTMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSymTMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTripletHelper.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/LinAlg/TMatrices/IpGenTMatrix.hpp0000644000076600007660000001630511504216567021334 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGenTMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPGENTMATRIX_HPP__ #define __IPGENTMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class GenTMatrixSpace; /** Class for general matrices stored in triplet format. In the * triplet format, the nonzeros elements of a general matrix is * stored in three arrays, Irow, Jcol, and Values, all of length * Nonzeros. The first two arrays indicate the location of a * non-zero element (row and column indices), and the last array * stores the value at that location. If nonzero elements are * listed more than once, their values are added. * * The structure of the nonzeros (i.e. the arrays Irow and Jcol) * cannot be changed after the matrix can been initialized. Only * the values of the nonzero elements can be modified. * * Note that the first row and column of a matrix has index 1, not * 0. */ class GenTMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ GenTMatrix(const GenTMatrixSpace* owner_space); /** Destructor */ ~GenTMatrix(); //@} /**@name Changing the Values.*/ //@{ /** Set values of nonzero elements. The values of the nonzero * elements are copied from the incoming Number array. Important: * It is assume that the order of the values in Values * corresponds to the one of Irn and Jcn given to one of the * constructors above. */ void SetValues(const Number* Values); //@} /** @name Accessor Methods */ //@{ /** Number of nonzero entries */ Index Nonzeros() const; /** Array with Row indices (counting starts at 1) */ const Index* Irows() const; /** Array with Column indices (counting starts at 1) */ const Index* Jcols() const; /** Array with nonzero values (const version). */ const Number* Values() const { return values_; } /** Array with the nonzero values of this matrix (non-const * version). Use this method only if you are intending to change * the values, because the GenTMatrix will be marked as changed. */ Number* Values() { ObjectChanged(); initialized_ = true; return values_; } //@} protected: /**@name Overloaded methods from Matrix base class*/ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { PrintImplOffset(jnlst, level, category, name, indent, prefix, 0); } //@} void PrintImplOffset(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix, Index offset) const; friend class ParGenMatrix; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ GenTMatrix(); /** Copy Constructor */ GenTMatrix(const GenTMatrix&); /** Overloaded Equals Operator */ void operator=(const GenTMatrix&); //@} /** Copy of the owner space as a GenTMatrixSpace instead of * a MatrixSpace */ const GenTMatrixSpace* owner_space_; /** Values of nonzeros */ Number* values_; /** Flag for Initialization */ bool initialized_; }; /** This is the matrix space for a GenTMatrix with fixed sparsity * structure. The sparsity structure is stored here in the matrix * space. */ class GenTMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of rows and columns, as well as * the number of nonzeros and the position of the nonzero * elements. Note that the counting of the nonzeros starts a 1, * i.e., iRows[i]==1 and jCols[i]==1 refers to the first element * in the first row. This is in accordance with the HSL data * structure. */ GenTMatrixSpace(Index nRows, Index nCols, Index nonZeros, const Index* iRows, const Index* jCols); /** Destructor */ ~GenTMatrixSpace() { delete [] iRows_; delete [] jCols_; } //@} /** Method for creating a new matrix of this specific type. */ GenTMatrix* MakeNewGenTMatrix() const { return new GenTMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewGenTMatrix(); } /**@name Methods describing Matrix structure */ //@{ /** Number of non-zeros in the sparse matrix */ Index Nonzeros() const { return nonZeros_; } /** Row index of each non-zero element (counting starts at 1) */ const Index* Irows() const { return iRows_; } /** Column index of each non-zero element (counting starts at 1) */ const Index* Jcols() const { return jCols_; } //@} private: /** @name Sparsity structure of matrices generated by this matrix * space. */ //@{ const Index nonZeros_; Index* jCols_; Index* iRows_; //@} /** This method is only for the GenTMatrix to call in order * to allocate internal storage */ Number* AllocateInternalStorage() const; /** This method is only for the GenTMatrix to call in order * to de-allocate internal storage */ void FreeInternalStorage(Number* values) const; friend class GenTMatrix; }; /* inline methods */ inline Index GenTMatrix::Nonzeros() const { return owner_space_->Nonzeros(); } inline const Index* GenTMatrix::Irows() const { return owner_space_->Irows(); } inline const Index* GenTMatrix::Jcols() const { return owner_space_->Jcols(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpCompoundVector.cpp0000644000076600007660000003245611504216567020366 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCompoundVector.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpCompoundVector.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif CompoundVector::CompoundVector(const CompoundVectorSpace* owner_space, bool create_new) : Vector(owner_space), comps_(owner_space->NCompSpaces()), const_comps_(owner_space->NCompSpaces()), owner_space_(owner_space), vectors_valid_(false) { Index dim_check = 0; for (Index i=0; i space = owner_space_->GetCompSpace(i); DBG_ASSERT(IsValid(space)); dim_check += space->Dim(); if (create_new) { comps_[i] = space->MakeNew(); } } DBG_ASSERT(dim_check == Dim()); if (create_new) { vectors_valid_ = VectorsValid(); } } CompoundVector::~CompoundVector() { // ToDo: Do we need an empty here? } void CompoundVector::SetComp(Index icomp, const Vector& vec) { DBG_ASSERT(icomp(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iCopy(*comp_x->GetComp(i)); } } void CompoundVector::ScalImpl(Number alpha) { DBG_START_METH("CompoundVector::ScalImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iScal(alpha); } } void CompoundVector::AxpyImpl(Number alpha, const Vector &x) { DBG_START_METH("CompoundVector::AxpyImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iAxpy(alpha, *comp_x->GetComp(i)); } } Number CompoundVector::DotImpl(const Vector &x) const { DBG_START_METH("CompoundVector::DotImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); Number dot = 0.; for (Index i=0; iDot(*comp_x->GetComp(i)); } return dot; } Number CompoundVector::Nrm2Impl() const { DBG_START_METH("CompoundVector::Nrm2Impl", dbg_verbosity); DBG_ASSERT(vectors_valid_); Number sum=0.; for (Index i=0; iNrm2(); sum += nrm2*nrm2; } return sqrt(sum); } Number CompoundVector::AsumImpl() const { DBG_START_METH("CompoundVector::AsumImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); Number sum=0.; for (Index i=0; iAsum(); } return sum; } Number CompoundVector::AmaxImpl() const { DBG_START_METH("CompoundVector::AmaxImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); Number max=0.; for (Index i=0; iAmax()); } return max; } void CompoundVector::SetImpl(Number value) { DBG_START_METH("CompoundVector::SetImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iSet(value); } } void CompoundVector::ElementWiseDivideImpl(const Vector& x) { DBG_START_METH("CompoundVector::ElementWiseDivideImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iElementWiseDivide(*comp_x->GetComp(i)); } } void CompoundVector::ElementWiseMultiplyImpl(const Vector& x) { DBG_START_METH("CompoundVector::ElementWiseMultiplyImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iElementWiseMultiply(*comp_x->GetComp(i)); } } void CompoundVector::ElementWiseMaxImpl(const Vector& x) { DBG_START_METH("CompoundVector::ElementWiseMaxImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iElementWiseMax(*comp_x->GetComp(i)); } } void CompoundVector::ElementWiseMinImpl(const Vector& x) { DBG_START_METH("CompoundVector::ElementWiseMinImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); const CompoundVector* comp_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(NComps() == comp_x->NComps()); for (Index i=0; iElementWiseMin(*comp_x->GetComp(i)); } } void CompoundVector::ElementWiseReciprocalImpl() { DBG_START_METH("CompoundVector::ElementWiseReciprocalImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iElementWiseReciprocal(); } } void CompoundVector::ElementWiseAbsImpl() { DBG_START_METH("CompoundVector::ElementWiseAbsImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iElementWiseAbs(); } } void CompoundVector::ElementWiseSqrtImpl() { DBG_START_METH("CompoundVector::ElementWiseSqrtImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iElementWiseSqrt(); } } void CompoundVector::AddScalarImpl(Number scalar) { DBG_START_METH("CompoundVector::AddScalarImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iAddScalar(scalar); } } Number CompoundVector::MaxImpl() const { DBG_START_METH("CompoundVector::MaxImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); DBG_ASSERT(NComps() > 0 && Dim() > 0 && "There is no Max of a zero length vector (no reasonable default can be returned)"); Number max = -std::numeric_limits::max(); for (Index i=0; iDim() != 0) { max = Ipopt::Max(max, ConstComp(i)->Max()); } } return max; } Number CompoundVector::MinImpl() const { DBG_START_METH("CompoundVector::MinImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); DBG_ASSERT(NComps() > 0 && Dim() > 0 && "There is no Min of a zero length vector (no reasonable default can be returned)"); Number min = std::numeric_limits::max(); for (Index i=0; iDim() != 0) { min = Ipopt::Min(min, ConstComp(i)->Min()); } } return min; } Number CompoundVector::SumImpl() const { DBG_START_METH("CompoundVector::SumImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); Number sum=0.; for (Index i=0; iSum(); } return sum; } Number CompoundVector::SumLogsImpl() const { DBG_START_METH("CompoundVector::SumLogsImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); Number sum=0.; for (Index i=0; iSumLogs(); } return sum; } void CompoundVector::ElementWiseSgnImpl() { DBG_START_METH("CompoundVector::ElementWiseSgnImpl", dbg_verbosity); DBG_ASSERT(vectors_valid_); for (Index i=0; iElementWiseSgn(); } } // Specialized Functions void CompoundVector::AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c) { DBG_ASSERT(vectors_valid_); const CompoundVector* comp_v1 = static_cast(&v1); DBG_ASSERT(dynamic_cast(&v1)); DBG_ASSERT(NComps() == comp_v1->NComps()); const CompoundVector* comp_v2 = static_cast(&v2); DBG_ASSERT(dynamic_cast(&v2)); DBG_ASSERT(NComps() == comp_v2->NComps()); for (Index i=0; iAddTwoVectors(a, *comp_v1->GetComp(i), b, *comp_v2->GetComp(i), c); } } Number CompoundVector::FracToBoundImpl(const Vector& delta, Number tau) const { DBG_ASSERT(vectors_valid_); const CompoundVector* comp_delta = static_cast(&delta); DBG_ASSERT(dynamic_cast(&delta)); DBG_ASSERT(NComps() == comp_delta->NComps()); Number alpha = 1.; for (Index i=0; iFracToBound(*comp_delta->GetComp(i), tau)); } return alpha; } void CompoundVector::AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c) { DBG_ASSERT(vectors_valid_); const CompoundVector* comp_z = static_cast(&z); DBG_ASSERT(dynamic_cast(&z)); DBG_ASSERT(NComps() == comp_z->NComps()); const CompoundVector* comp_s = static_cast(&s); DBG_ASSERT(dynamic_cast(&s)); DBG_ASSERT(NComps() == comp_s->NComps()); for (Index i=0; iAddVectorQuotient(a, *comp_z->GetComp(i), *comp_s->GetComp(i), c); } } bool CompoundVector::HasValidNumbersImpl() const { DBG_ASSERT(vectors_valid_); for (Index i=0; iHasValidNumbers()) { return false; } } return true; } void CompoundVector::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { DBG_START_METH("CompoundVector::PrintImpl", dbg_verbosity); jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sCompoundVector \"%s\" with %d components:\n", prefix.c_str(), name.c_str(), NComps()); for (Index i=0; iPrint(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sComponent %d is not yet set!\n", prefix.c_str(), i+1); } } } bool CompoundVector::VectorsValid() { bool retVal = true; for (Index i=0; i CompoundVectorSpace::GetCompSpace(Index icomp) const { DBG_ASSERT(icomp GetDiag() const { return D_; } /** Method for setting the positive low-rank update part. */ void SetV(const MultiVectorMatrix& V) { V_ = &V; ObjectChanged(); } /** Method for getting the positive low-rank update part. */ SmartPtr GetV() const { return V_; } /** Method for setting the negative low-rank update part. */ void SetU(const MultiVectorMatrix& U) { U_ = &U; ObjectChanged(); } /** Method for getting the negative low-rank update part. */ SmartPtr GetU() const { return U_; } /** Return the expansion matrix to lift the low-rank update to the * higher-dimensional space. */ SmartPtr P_LowRank() const; /** Return the vector space in with the low-rank update vectors * live. */ SmartPtr LowRankVectorSpace() const; /** Flag indicating whether the diagonal term lives in the smaller * space (from P_LowRank) or in the full space. */ bool ReducedDiag() const; protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ LowRankUpdateSymMatrix(); /** Copy Constructor */ LowRankUpdateSymMatrix(const LowRankUpdateSymMatrix&); /** Overloaded Equals Operator */ void operator=(const LowRankUpdateSymMatrix&); //@} /** corresponding matrix space */ SmartPtr owner_space_; /** Vector storing the diagonal matrix D. */ SmartPtr D_; /** Vector storing the positive low-rank update. */ SmartPtr V_; /** Vector storing the negative low-rank update. */ SmartPtr U_; }; /** This is the matrix space for LowRankUpdateSymMatrix. */ class LowRankUpdateSymMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the dimension of the matrix. */ LowRankUpdateSymMatrixSpace(Index dim, SmartPtr P_LowRank, SmartPtr LowRankVectorSpace, bool reduced_diag) : SymMatrixSpace(dim), P_LowRank_(P_LowRank), lowrank_vector_space_(LowRankVectorSpace), reduced_diag_(reduced_diag) { DBG_ASSERT(IsValid(lowrank_vector_space_)); } /** Destructor */ virtual ~LowRankUpdateSymMatrixSpace() {} //@} /** Overloaded MakeNew method for the SymMatrixSpace base class. */ virtual SymMatrix* MakeNewSymMatrix() const { return MakeNewLowRankUpdateSymMatrix(); } /** Method for creating a new matrix of this specific type. */ LowRankUpdateSymMatrix* MakeNewLowRankUpdateSymMatrix() const { return new LowRankUpdateSymMatrix(this); } SmartPtr P_LowRank() const { return P_LowRank_; } SmartPtr LowRankVectorSpace() const { return lowrank_vector_space_; } bool ReducedDiag() const { return reduced_diag_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ LowRankUpdateSymMatrixSpace(); /** Copy Constructor */ LowRankUpdateSymMatrixSpace(const LowRankUpdateSymMatrixSpace&); /** Overloaded Equals Operator */ void operator=(const LowRankUpdateSymMatrixSpace&); //@} /** Expansion matrix to lift the low-rank approximation into a * possibly higher-dimensional space. If it is NULL, it is * assume that no lift is performed. */ SmartPtr P_LowRank_; /** Vector space for the space in which the low-rank approximation * lives. */ SmartPtr lowrank_vector_space_; /** Flag indicating whether the diagonal matrix is nonzero only in * the space of V or in the full space. */ bool reduced_diag_; }; inline SmartPtr LowRankUpdateSymMatrix::P_LowRank() const { return owner_space_->P_LowRank(); } inline SmartPtr LowRankUpdateSymMatrix::LowRankVectorSpace() const { return owner_space_->LowRankVectorSpace(); } inline bool LowRankUpdateSymMatrix::ReducedDiag() const { return owner_space_->ReducedDiag(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpSymScaledMatrix.hpp0000644000076600007660000001534611504216567020474 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSymScaledMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSYMSCALEDMATRIX_HPP__ #define __IPSYMSCALEDMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" namespace Ipopt { /* forward declarations */ class SymScaledMatrixSpace; /** Class for a Matrix in conjunction with its scaling factors for * row and column scaling. Operations on the matrix are performed using * the scaled matrix. You can pull out the pointer to the * unscaled matrix for unscaled calculations. */ class SymScaledMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ SymScaledMatrix(const SymScaledMatrixSpace* owner_space); /** Destructor */ ~SymScaledMatrix(); //@} /** Set the unscaled matrix */ void SetUnscaledMatrix(const SmartPtr unscaled_matrix); /** Set the unscaled matrix in a non-const version */ void SetUnscaledMatrixNonConst(const SmartPtr& unscaled_matrix); /** Return the unscaled matrix in const form */ SmartPtr GetUnscaledMatrix() const; /** Return the unscaled matrix in non-const form */ SmartPtr GetUnscaledMatrixNonConst(); /** return the vector for the row and column scaling */ SmartPtr RowColScaling() const; protected: /**@name Methods overloaded from Matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). It is assumed here that the scaling factors * are always valid numbers. */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ SymScaledMatrix(); /** Copy Constructor */ SymScaledMatrix(const SymScaledMatrix&); /** Overloaded Equals Operator */ void operator=(const SymScaledMatrix&); //@} /** const version of the unscaled matrix */ SmartPtr matrix_; /** non-const version of the unscaled matrix */ SmartPtr nonconst_matrix_; /** Matrix space stored as a SymScaledMatrixSpace */ SmartPtr owner_space_; }; /** This is the matrix space for SymScaledMatrix. */ class SymScaledMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of row and columns blocks, as * well as the totel number of rows and columns. */ SymScaledMatrixSpace(const SmartPtr& row_col_scaling, bool row_col_scaling_reciprocal, const SmartPtr& unscaled_matrix_space) : SymMatrixSpace(unscaled_matrix_space->Dim()), unscaled_matrix_space_(unscaled_matrix_space) { scaling_ = row_col_scaling->MakeNewCopy(); if (row_col_scaling_reciprocal) { scaling_->ElementWiseReciprocal(); } } /** Destructor */ ~SymScaledMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ SymScaledMatrix* MakeNewSymScaledMatrix(bool allocate_unscaled_matrix = false) const { SymScaledMatrix* ret = new SymScaledMatrix(this); if (allocate_unscaled_matrix) { SmartPtr unscaled_matrix = unscaled_matrix_space_->MakeNewSymMatrix(); ret->SetUnscaledMatrixNonConst(unscaled_matrix); } return ret; } /** Overloaded method from SymMatrixSpace */ virtual SymMatrix* MakeNewSymMatrix() const { return MakeNewSymScaledMatrix(); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewSymScaledMatrix(); } /** return the vector for the row and column scaling */ SmartPtr RowColScaling() const { return ConstPtr(scaling_); } /** return the matrix space for the unscaled matrix */ SmartPtr UnscaledMatrixSpace() const { return unscaled_matrix_space_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ SymScaledMatrixSpace(); /** Copy Constructor */ SymScaledMatrixSpace(const SymScaledMatrixSpace&); /** Overloaded Equals Operator */ SymScaledMatrixSpace& operator=(const SymScaledMatrixSpace&); //@} /** Row scaling vector */ SmartPtr scaling_; /** unscaled matrix space */ SmartPtr unscaled_matrix_space_; }; inline void SymScaledMatrix::SetUnscaledMatrix(const SmartPtr unscaled_matrix) { matrix_ = unscaled_matrix; nonconst_matrix_ = NULL; ObjectChanged(); } inline void SymScaledMatrix::SetUnscaledMatrixNonConst(const SmartPtr& unscaled_matrix) { nonconst_matrix_ = unscaled_matrix; matrix_ = GetRawPtr(unscaled_matrix); ObjectChanged(); } inline SmartPtr SymScaledMatrix::GetUnscaledMatrix() const { return matrix_; } inline SmartPtr SymScaledMatrix::GetUnscaledMatrixNonConst() { DBG_ASSERT(IsValid(nonconst_matrix_)); ObjectChanged(); return nonconst_matrix_; } inline SmartPtr SymScaledMatrix::RowColScaling() const { return ConstPtr(owner_space_->RowColScaling()); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpBlas.hpp0000644000076600007660000000573711504216567016307 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpBlas.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPBLAS_HPP__ #define __IPBLAS_HPP__ #include "IpUtils.hpp" namespace Ipopt { // If CBLAS is not available, this is our own interface to the Fortran // implementation /** Wrapper for BLAS function DDOT. Compute dot product of vector x and vector y */ Number IpBlasDdot(Index size, const Number *x, Index incX, const Number *y, Index incY); /** Wrapper for BLAS function DNRM2. Compute 2-norm of vector x*/ Number IpBlasDnrm2(Index size, const Number *x, Index incX); /** Wrapper for BLAS function DASUM. Compute 1-norm of vector x*/ Number IpBlasDasum(Index size, const Number *x, Index incX); /** Wrapper for BLAS function IDAMAX. Compute index for largest absolute element of vector x */ Index IpBlasIdamax(Index size, const Number *x, Index incX); /** Wrapper for BLAS subroutine DCOPY. Copying vector x into vector y */ void IpBlasDcopy(Index size, const Number *x, Index incX, Number *y, Index incY); /** Wrapper for BLAS subroutine DAXPY. Adding the alpha multiple of vector x to vector y */ void IpBlasDaxpy(Index size, Number alpha, const Number *x, Index incX, Number *y, Index incY); /** Wrapper for BLAS subroutine DSCAL. Scaling vector x by scalar alpha */ void IpBlasDscal(Index size, Number alpha, Number *x, Index incX); /** Wrapper for BLAS subroutine DGEMV. Multiplying a matrix with a vector. */ void IpBlasDgemv(bool trans, Index nRows, Index nCols, Number alpha, const Number* A, Index ldA, const Number* x, Index incX, Number beta, Number* y, Index incY); /** Wrapper for BLAS subroutine DSYMV. Multiplying a symmetric matrix with a vector. */ void IpBlasDsymv(Index n, Number alpha, const Number* A, Index ldA, const Number* x, Index incX, Number beta, Number* y, Index incY); /** Wrapper for BLAS subroutine DGEMM. Multiplying two matrices */ void IpBlasDgemm(bool transa, bool transb, Index m, Index n, Index k, Number alpha, const Number* A, Index ldA, const Number* B, Index ldB, Number beta, Number* C, Index ldC); /** Wrapper for BLAS subroutine DSYRK. Adding a high-rank update to * a matrix */ void IpBlasDsyrk(bool trans, Index ndim, Index nrank, Number alpha, const Number* A, Index ldA, Number beta, Number* C, Index ldC); /** Wrapper for BLAS subroutine DTRSM. Backsolve for a lower triangular * matrix. */ void IpBlasDtrsm(bool trans, Index ndim, Index nrhs, Number alpha, const Number* A, Index ldA, Number* B, Index ldB); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/Makefile.am0000644000076600007660000000611011573147064016443 0ustar coincoin# Copyright (C) 2004, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2005 2011-06-06 12:55:16Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign SUBDIRS = TMatrices includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpMatrix.hpp \ IpSymMatrix.hpp \ IpVector.hpp \ IpDenseVector.hpp \ IpCompoundVector.hpp \ IpBlas.hpp \ IpLapack.hpp noinst_LTLIBRARIES = liblinalg.la liblinalg_la_SOURCES = \ IpBlas.cpp IpBlas.hpp \ IpCompoundMatrix.cpp IpCompoundMatrix.hpp \ IpCompoundSymMatrix.cpp IpCompoundSymMatrix.hpp \ IpCompoundVector.cpp IpCompoundVector.hpp \ IpDenseGenMatrix.cpp IpDenseGenMatrix.hpp \ IpDenseSymMatrix.cpp IpDenseSymMatrix.hpp \ IpDenseVector.cpp IpDenseVector.hpp \ IpDiagMatrix.cpp IpDiagMatrix.hpp \ IpExpandedMultiVectorMatrix.cpp IpExpandedMultiVectorMatrix.hpp \ IpExpansionMatrix.cpp IpExpansionMatrix.hpp \ IpIdentityMatrix.cpp IpIdentityMatrix.hpp \ IpLapack.cpp IpLapack.hpp \ IpLowRankUpdateSymMatrix.cpp IpLowRankUpdateSymMatrix.hpp \ IpMatrix.cpp IpMatrix.hpp \ IpMultiVectorMatrix.cpp IpMultiVectorMatrix.hpp \ IpScaledMatrix.cpp IpScaledMatrix.hpp \ IpSumMatrix.cpp IpSumMatrix.hpp \ IpSumSymMatrix.cpp IpSumSymMatrix.hpp \ IpSymMatrix.hpp \ IpSymScaledMatrix.cpp IpSymScaledMatrix.hpp \ IpTransposeMatrix.cpp IpTransposeMatrix.hpp \ IpVector.cpp IpVector.hpp \ IpZeroMatrix.cpp IpZeroMatrix.hpp liblinalg_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../Common` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = IpBlas.cppbak IpBlas.hppbak \ IpCompoundMatrix.cppbak IpCompoundMatrix.hppbak \ IpCompoundSymMatrix.cppbak IpCompoundSymMatrix.hppbak \ IpCompoundVector.cppbak IpCompoundVector.hppbak \ IpDenseGenMatrix.cppbak IpDenseGenMatrix.hppbak \ IpDenseSymMatrix.cppbak IpDenseSymMatrix.hppbak \ IpDenseVector.cppbak IpDenseVector.hppbak \ IpDiagMatrix.cppbak IpDiagMatrix.hppbak \ IpExpandedMultiVectorMatrix.cppbak IpExpandedMultiVectorMatrix.hppbak \ IpExpansionMatrix.cppbak IpExpansionMatrix.hppbak \ IpIdentityMatrix.cppbak IpIdentityMatrix.hppbak \ IpLapack.cppbak IpLapack.hppbak \ IpLowRankUpdateSymMatrix.cppbak IpLowRankUpdateSymMatrix.hppbak \ IpMatrix.cppbak IpMatrix.hppbak \ IpMultiVectorMatrix.cppbak IpMultiVectorMatrix.hppbak \ IpScaledMatrix.cppbak IpScaledMatrix.hppbak \ IpSumMatrix.cppbak IpSumMatrix.hppbak \ IpSumSymMatrix.cppbak IpSumSymMatrix.hppbak \ IpSymMatrix.hppbak \ IpSymScaledMatrix.cppbak IpSymScaledMatrix.hppbak \ IpTransposeMatrix.cppbak IpTransposeMatrix.hppbak \ IpVector.cppbak IpVector.hppbak \ IpZeroMatrix.cppbak IpZeroMatrix.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/LinAlg/IpCompoundVector.hpp0000644000076600007660000002460411504216567020367 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCompoundVector.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPCOMPOUNDVECTOR_HPP__ #define __IPCOMPOUNDVECTOR_HPP__ #include "IpUtils.hpp" #include "IpVector.hpp" #include namespace Ipopt { /* forward declarations */ class CompoundVectorSpace; /** Class of Vectors consisting of other vectors. This vector is a * vector that consists of zero, one or more Vector's which are * stacked on each others: \f$ x_{\rm compound} = * \left(\begin{array}{c}x_0\\\dots\\x_{{\rm * ncomps} - 1}\end{array}\right)\f$. The individual components can be * associated to different VectorSpaces. The individual components * can also be const and non-const Vectors. */ class CompoundVector : public Vector { public: /**@name Constructors/Destructors */ //@{ /** Constructor, given the corresponding CompoundVectorSpace. * Before this constructor can be called, all components of the * CompoundVectorSpace have to be set, so that the constructors * for the individual components can be called. If the flag * create_new is true, then the individual components of the new * CompoundVector are initialized with the MakeNew methods of * each VectorSpace (and are non-const). Otherwise, the * individual components can later be set using the SetComp and * SetCompNonConst method. */ CompoundVector(const CompoundVectorSpace* owner_space, bool create_new); /** Default destructor */ virtual ~CompoundVector(); //@} /** Method for setting the pointer for a component that is a const * Vector */ void SetComp(Index icomp, const Vector& vec); /** Method for setting the pointer for a component that is a * non-const Vector */ void SetCompNonConst(Index icomp, Vector& vec); /** Number of components of this compound vector */ inline Index NComps() const; /** Check if a particular component is const or not */ bool IsCompConst(Index i) const { DBG_ASSERT(i > 0 && i < NComps()); DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i])); if (IsValid(const_comps_[i])) { return true; } return false; } /** Check if a particular component is null or not */ bool IsCompNull(Index i) const { DBG_ASSERT(i >= 0 && i < NComps()); if (IsValid(comps_[i]) || IsValid(const_comps_[i])) { return false; } return true; } /** Return a particular component (const version) */ SmartPtr GetComp(Index i) const { return ConstComp(i); } /** Return a particular component (non-const version). Note that * calling this method with mark the CompoundVector as changed. * Therefore, only use this method if you are intending to change * the Vector that you receive. */ SmartPtr GetCompNonConst(Index i) { ObjectChanged(); return Comp(i); } protected: /** @name Overloaded methods from Vector base class */ //@{ /** Copy the data of the vector x into this vector (DCOPY). */ virtual void CopyImpl(const Vector& x); /** Scales the vector by scalar alpha (DSCAL) */ virtual void ScalImpl(Number alpha); /** Add the multiple alpha of vector x to this vector (DAXPY) */ virtual void AxpyImpl(Number alpha, const Vector &x); /** Computes inner product of vector x with this (DDOT) */ virtual Number DotImpl(const Vector &x) const; /** Computes the 2-norm of this vector (DNRM2) */ virtual Number Nrm2Impl() const; /** Computes the 1-norm of this vector (DASUM) */ virtual Number AsumImpl() const; /** Computes the max-norm of this vector (based on IDAMAX) */ virtual Number AmaxImpl() const; /** Set each element in the vector to the scalar alpha. */ virtual void SetImpl(Number value); /** Element-wise division \f$y_i \gets y_i/x_i\f$.*/ virtual void ElementWiseDivideImpl(const Vector& x); /** Element-wise multiplication \f$y_i \gets y_i*x_i\f$.*/ virtual void ElementWiseMultiplyImpl(const Vector& x); /** Element-wise max against entries in x */ virtual void ElementWiseMaxImpl(const Vector& x); /** Element-wise min against entries in x */ virtual void ElementWiseMinImpl(const Vector& x); /** Element-wise reciprocal */ virtual void ElementWiseReciprocalImpl(); /** Element-wise absolute values */ virtual void ElementWiseAbsImpl(); /** Element-wise square-root */ virtual void ElementWiseSqrtImpl(); /** Replaces entries with sgn of the entry */ virtual void ElementWiseSgnImpl(); /** Add scalar to every component of the vector.*/ virtual void AddScalarImpl(Number scalar); /** Max value in the vector */ virtual Number MaxImpl() const; /** Min value in the vector */ virtual Number MinImpl() const; /** Computes the sum of the lements of vector */ virtual Number SumImpl() const; /** Computes the sum of the logs of the elements of vector */ virtual Number SumLogsImpl() const; /** @name Implemented specialized functions */ //@{ /** Add two vectors (a * v1 + b * v2). Result is stored in this vector. */ void AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c); /** Fraction to the boundary parameter. */ Number FracToBoundImpl(const Vector& delta, Number tau) const; /** Add the quotient of two vectors, y = a * z/s + c * y. */ void AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c); //@} /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; /** @name Output methods */ //@{ /* Print the entire vector with padding */ virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CompoundVector(); /** Copy Constructor */ CompoundVector(const CompoundVector&); /** Overloaded Equals Operator */ void operator=(const CompoundVector&); //@} /** Components of the compound vector. The components * are stored by SmartPtrs in a std::vector */ std::vector< SmartPtr > comps_; std::vector< SmartPtr > const_comps_; const CompoundVectorSpace* owner_space_; bool vectors_valid_; bool VectorsValid(); inline const Vector* ConstComp(Index i) const; inline Vector* Comp(Index i); }; /** This vectors space is the vector space for CompoundVector. * Before a CompoundVector can be created, all components of this * CompoundVectorSpace have to be set. When calling the constructor, * the number of component has to be specified. The individual * VectorSpaces can be set with the SetComp method. */ class CompoundVectorSpace : public VectorSpace { public: /** @name Constructors/Destructors. */ //@{ /** Constructor, has to be given the number of components and the * total dimension of all components combined. */ CompoundVectorSpace(Index ncomp_spaces, Index total_dim); /** Destructor */ ~CompoundVectorSpace() {} //@} /** Method for setting the individual component VectorSpaces */ virtual void SetCompSpace(Index icomp /** Number of the component to be set */ , const VectorSpace& vec_space /** VectorSpace for component icomp */ ); /** Method for obtaining an individual component VectorSpace */ SmartPtr GetCompSpace(Index icomp) const; /** Accessor method to obtain the number of components */ Index NCompSpaces() const { return ncomp_spaces_; } /** Method for creating a new vector of this specific type. */ virtual CompoundVector* MakeNewCompoundVector(bool create_new = true) const { return new CompoundVector(this, create_new); } /** Overloaded MakeNew method for the VectorSpace base class. */ virtual Vector* MakeNew() const { return MakeNewCompoundVector(); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ CompoundVectorSpace(); /** Copy Constructor */ CompoundVectorSpace(const CompoundVectorSpace&); /** Overloaded Equals Operator */ CompoundVectorSpace& operator=(const CompoundVectorSpace&); //@} /** Number of components */ const Index ncomp_spaces_; /** std::vector of vector spaces for the components */ std::vector< SmartPtr > comp_spaces_; }; /* inline methods */ inline Index CompoundVector::NComps() const { return owner_space_->NCompSpaces(); } inline const Vector* CompoundVector::ConstComp(Index i) const { DBG_ASSERT(i < NComps()); DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i])); if (IsValid(comps_[i])) { return GetRawPtr(comps_[i]); } else if (IsValid(const_comps_[i])) { return GetRawPtr(const_comps_[i]); } DBG_ASSERT(false && "shouldn't be here"); return NULL; } inline Vector* CompoundVector::Comp(Index i) { DBG_ASSERT(i < NComps()); DBG_ASSERT(IsValid(comps_[i])); return GetRawPtr(comps_[i]); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpExpansionMatrix.hpp0000644000076600007660000001544011504216567020547 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExpansionMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPEXPANSIONMATRIX_HPP__ #define __IPEXPANSIONMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /** forward declarations */ class ExpansionMatrixSpace; /** Class for expansion/projection matrices. These matrices allow * to lift a vector to a vector with larger dimension, keeping * some elements of the larger vector zero. This operation is achieved * by the MultVector operation. The transpose operation then * filters some elements from a large vector into a smaller vector. */ class ExpansionMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ ExpansionMatrix(const ExpansionMatrixSpace* owner_space); /** Destructor */ ~ExpansionMatrix(); //@} /** Return the vector of indices marking the expanded position. * The result is the Index array (of length NSmallVec=NCols()) * that stores the mapping from the small vector to the large * vector. For each element i=0,..,NSmallVec in the small * vector, ExpandedPosIndices()[i] give the corresponding index * in the large vector. */ const Index* ExpandedPosIndices() const; /** Return the vector of indices marking the compressed position. * The result is the Index array (of length NLargeVec=NRows()) * that stores the mapping from the large vector to the small * vector. For each element i=0,..,NLargeVec in the large * vector, CompressedPosIndices()[i] gives the corresponding * index in the small vector, unless CompressedPosIndices()[i] is * negative. */ const Index* CompressedPosIndices() const; protected: /**@name Overloaded methods from Matrix base class*/ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** X = beta*X + alpha*(Matrix S^{-1} Z). Specialized implementation. */ virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** X = S^{-1} (r + alpha*Z*M^Td). Specialized implementation. */ virtual void SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { PrintImplOffset(jnlst, level, category, name, indent, prefix, 1, 1); } //@} void PrintImplOffset(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix, Index row_offset, Index col_offset) const; friend class ParExpansionMatrix; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ExpansionMatrix(); /** Copy Constructor */ ExpansionMatrix(const ExpansionMatrix&); /** Overloaded Equals Operator */ void operator=(const ExpansionMatrix&); //@} const ExpansionMatrixSpace* owner_space_; }; /** This is the matrix space for ExpansionMatrix. */ class ExpansionMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the list of elements of the large vector * (of size NLargeVec) to be filtered into the small vector (of * size NSmallVec). For each i=0..NSmallVec-1 the i-th element * of the small vector will be put into the ExpPos[i] position of * the large vector. The position counting in the vector is * assumed to start at 0 (C-like array notation). */ ExpansionMatrixSpace(Index NLargeVec, Index NSmallVec, const Index *ExpPos, const int offset = 0); /** Destructor */ ~ExpansionMatrixSpace() { delete [] compressed_pos_; delete [] expanded_pos_; } //@} /** Method for creating a new matrix of this specific type. */ ExpansionMatrix* MakeNewExpansionMatrix() const { return new ExpansionMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewExpansionMatrix(); } /** Accessor Method to obtain the Index array (of length * NSmallVec=NCols()) that stores the mapping from the small * vector to the large vector. For each element i=0,..,NSmallVec * in the small vector, ExpandedPosIndices()[i] give the * corresponding index in the large vector. */ const Index* ExpandedPosIndices() const { return expanded_pos_; } /** Accessor Method to obtain the Index array (of length * NLargeVec=NRows()) that stores the mapping from the large * vector to the small vector. For each element i=0,..,NLargeVec * in the large vector, CompressedPosIndices()[i] gives the * corresponding index in the small vector, unless * CompressedPosIndices()[i] is negative. */ const Index* CompressedPosIndices() const { return compressed_pos_; } private: Index *expanded_pos_; Index *compressed_pos_; }; /* inline methods */ inline const Index* ExpansionMatrix::ExpandedPosIndices() const { return owner_space_->ExpandedPosIndices(); } inline const Index* ExpansionMatrix::CompressedPosIndices() const { return owner_space_->CompressedPosIndices(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseSymMatrix.hpp0000644000076600007660000001327011504216567020331 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseSymMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-25 #ifndef __IPDENSESYMMATRIX_HPP__ #define __IPDENSESYMMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" #include "IpMultiVectorMatrix.hpp" #include "IpDenseVector.hpp" namespace Ipopt { /** forward declarations */ class DenseSymMatrixSpace; /** forward declaration so that this include file can be included * from DenseGenMatrix */ class DenseGenMatrix; /** Class for dense symetrix matrices. Matrix elements are stored * in one array in "Fortran" format, using BLAS "lower triangular" * storage (not packed). */ class DenseSymMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ DenseSymMatrix(const DenseSymMatrixSpace* owner_space); /** Destructor */ ~DenseSymMatrix(); //@} /** Create a new DenseSymMatrix from same MatrixSpace */ SmartPtr MakeNewDenseSymMatrix() const; /** Retrieve the array for storing the matrix elements. This is * the non-const version, and it is assume that afterwards the * calling method will set all matrix elements. The matrix * elements are stored one column after each other. */ Number* Values() { ObjectChanged(); initialized_ = true; return values_; } /** Retrieve the array that stores the matrix elements. This is * the const version, i.e., read-only. The matrix elements are * stored one column after each other. */ const Number* Values() const { DBG_ASSERT(initialized_); return values_; } /** Set this matrix to be a multiple of the identity matrix. */ void FillIdentity(Number factor=1.); /** Method for adding another matrix to this one. If B is this * matrix, it becomes B = alpha * A + beta * B after this call. */ void AddMatrix(Number alpha, const DenseSymMatrix& A, Number beta); /** Method for adding a high-rank update to this matrix. It * computes M = alpha*op(V) op(V)^T + beta*M, where V is a * DenseGenMatrix, where op(V) is V^T trans is true. */ void HighRankUpdate(bool trans, Number alpha, const DenseGenMatrix& V, Number beta); /** Method for adding a high-rank update to this matrix. It * computes M = alpha*V1^T V2 + beta*M, where V1 and V2 are * MultiVectorMatrices, so that V1^T V2 is symmetric. */ void HighRankUpdateTranspose(Number alpha, const MultiVectorMatrix& V1, const MultiVectorMatrix& V2, Number beta); /** Method for doing a specialized Add operation, required in the * limited memory SR1 update. if M is this matrix, it computes M * = M + D + L + L^T, where D is a diagonal matrix (given as a * DenseVector), and L is a matrix that is assumed to be strictly * lower triangular. */ void SpecialAddForLMSR1(const DenseVector& D, const DenseGenMatrix& L); protected: /**@name Overloaded methods from Matrix base class*/ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DenseSymMatrix(); /** Copy Constructor */ DenseSymMatrix(const DenseSymMatrix&); /** Overloaded Equals Operator */ void operator=(const DenseSymMatrix&); //@} const DenseSymMatrixSpace* owner_space_; /** Array for storing the matrix elements (one columns after each * other) */ Number* values_; /** Flag indicating whether the values_ array has been initialized */ bool initialized_; }; /** This is the matrix space for DenseSymMatrix. */ class DenseSymMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor for matrix space for DenseSymMatrices. Takes in * dimension of the matrices. */ DenseSymMatrixSpace(Index nDim); /** Destructor */ ~DenseSymMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ DenseSymMatrix* MakeNewDenseSymMatrix() const { return new DenseSymMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual SymMatrix* MakeNewSymMatrix() const { return MakeNewDenseSymMatrix(); } }; inline SmartPtr DenseSymMatrix::MakeNewDenseSymMatrix() const { return owner_space_->MakeNewDenseSymMatrix(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpExpandedMultiVectorMatrix.hpp0000644000076600007660000001340011504216567022523 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExpandedMultiVectorMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2009-11-05 #ifndef __IPEXPANDEDMULTIVECTORMATRIX_HPP__ #define __IPEXPANDEDMULTIVECTORMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" #include "IpExpansionMatrix.hpp" namespace Ipopt { /** forward declarations */ class ExpandedMultiVectorMatrixSpace; /** Class for Matrices with few rows that consists of Vectors, * together with a premultiplied Expansion matrix. So, the matrix * is V^T*P^T. If P is NULL, it is assumed to be the identity * matrix. If a row vector of V is NULL, it is assumed to be all * zero. This is used to construct the KKT system with low-rank * Hessian approximation. */ class ExpandedMultiVectorMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrixSpace* owner_space); /** Destructor */ virtual ~ExpandedMultiVectorMatrix() {} //@} SmartPtr MakeNewExpandedMultiVectorMatrix() const; /** Set a particular Vector at a given row position, replacing * another vector if there has been one. */ void SetVector(Index i, SmartPtr vec); /** Get a Vector in a particular row as a const Vector */ inline SmartPtr GetVector(Index i) const { DBG_ASSERT(i < NRows()); return vecs_[i]; } /** Vector space for the rows */ SmartPtr RowVectorSpace() const; /** Return the ExpandedMultiVectorMatrixSpace */ SmartPtr ExpandedMultiVectorMatrixOwnerSpace() const; /** Return the Expansion matrix. If NULL, there is no expansion, * the vector is used as is. */ SmartPtr GetExpansionMatrix() const; protected: /**@name Overloaded methods from Matrix base class */ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ExpandedMultiVectorMatrix(); /** Copy Constructor */ ExpandedMultiVectorMatrix(const ExpandedMultiVectorMatrix&); /** Overloaded Equals Operator */ void operator=(const ExpandedMultiVectorMatrix&); //@} const ExpandedMultiVectorMatrixSpace* owner_space_; /** space for storing the const Vector's */ std::vector > vecs_; }; /** This is the matrix space for ExpandedMultiVectorMatrix. */ class ExpandedMultiVectorMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of rows (i.e., Vectors to be * stored) and given the VectorSpace for the Vectors. */ ExpandedMultiVectorMatrixSpace(Index nrows, const VectorSpace& vec_space, SmartPtr exp_matrix); /** Destructor */ virtual ~ExpandedMultiVectorMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ ExpandedMultiVectorMatrix* MakeNewExpandedMultiVectorMatrix() const { return new ExpandedMultiVectorMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewExpandedMultiVectorMatrix(); } /** Accessor method for the VectorSpace for the rows */ SmartPtr RowVectorSpace() const { return vec_space_; } SmartPtr GetExpansionMatrix() const { return exp_matrix_; } private: SmartPtr vec_space_; SmartPtr exp_matrix_; }; inline SmartPtr ExpandedMultiVectorMatrix::MakeNewExpandedMultiVectorMatrix() const { return owner_space_->MakeNewExpandedMultiVectorMatrix(); } inline SmartPtr ExpandedMultiVectorMatrix::RowVectorSpace() const { return owner_space_->RowVectorSpace(); } inline SmartPtr ExpandedMultiVectorMatrix::GetExpansionMatrix() const { return owner_space_->GetExpansionMatrix(); } inline SmartPtr ExpandedMultiVectorMatrix::ExpandedMultiVectorMatrixOwnerSpace() const { return owner_space_; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpDiagMatrix.cpp0000644000076600007660000000447111504216567017444 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDiagMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpDiagMatrix.hpp" namespace Ipopt { DiagMatrix::DiagMatrix(const SymMatrixSpace* owner_space) : SymMatrix(owner_space) {} DiagMatrix::~DiagMatrix() {} void DiagMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(Dim()==x.Dim()); DBG_ASSERT(Dim()==y.Dim()); DBG_ASSERT(IsValid(diag_)); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } SmartPtr tmp_vec = y.MakeNew(); tmp_vec->Copy(x); tmp_vec->ElementWiseMultiply(*diag_); y.Axpy(alpha, *tmp_vec); } bool DiagMatrix::HasValidNumbersImpl() const { DBG_ASSERT(IsValid(diag_)); return diag_->HasValidNumbers(); } void DiagMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { DBG_ASSERT(IsValid(diag_)); if (init) { rows_norms.Copy(*diag_); rows_norms.ElementWiseAbs(); } else { SmartPtr v = diag_->MakeNewCopy(); v->ElementWiseAbs(); rows_norms.ElementWiseMax(*v); } } void DiagMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sDiagMatrix \"%s\" with %d rows and columns, and with diagonal elements:\n", prefix.c_str(), name.c_str(), Dim()); if (IsValid(diag_)) { diag_->Print(&jnlst, level, category, name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sDiagonal elements not set!\n", prefix.c_str()); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpCompoundSymMatrix.hpp0000644000076600007660000002231611504216567021060 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCompoundSymMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPCOMPOUNDSYMMATRIX_HPP__ #define __IPCOMPOUNDSYMMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" namespace Ipopt { /* forward declarations */ class CompoundSymMatrixSpace; /** Class for symmetric matrices consisting of other matrices. * Here, the lower left block of the matrix is stored. */ class CompoundSymMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking only the number for block components into the * row and column direction. The owner_space has to be defined, so * that at each block row and column contain at least one non-NULL * component. */ CompoundSymMatrix(const CompoundSymMatrixSpace* owner_space); /** Destructor */ ~CompoundSymMatrix(); //@} /** Method for setting an individual component at position (irow, * icol) in the compound matrix. The counting of indices starts * at 0. Since this only the lower left components are stored, we need * to have jcol<=irow, and if irow==jcol, the matrix must be a SymMatrix */ void SetComp(Index irow, Index jcol, const Matrix& matrix); /** Non const version of the same method */ void SetCompNonConst(Index irow, Index jcol, Matrix& matrix); /** Method for retrieving one block from the compound matrix. * Since this only the lower left components are stored, we need * to have jcol<=irow */ SmartPtr GetComp(Index irow, Index jcol) const { return ConstComp(irow,jcol); } /** Non const version of GetComp. You should only use this method * if you are intending to change the matrix you receive, since * this CompoundSymMatrix will be marked as changed. */ SmartPtr GetCompNonConst(Index irow, Index jcol) { ObjectChanged(); return Comp(irow,jcol); } /** Method for creating a new matrix of this specific type. */ SmartPtr MakeNewCompoundSymMatrix() const; // The following don't seem to be necessary /* Number of block rows of this compound matrix. */ // Index NComps_NRows() const { return NComps_Dim(); } /* Number of block colmuns of this compound matrix. */ // Index NComps_NCols() const { return NComps_Dim(); } /** Number of block rows and columns */ Index NComps_Dim() const; protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CompoundSymMatrix(); /** Copy Constructor */ CompoundSymMatrix(const CompoundSymMatrix&); /** Overloaded Equals Operator */ void operator=(const CompoundSymMatrix&); //@} /** Vector of vectors containing the components */ std::vector > > comps_; /** Vector of vectors containing the const components */ std::vector > > const_comps_; /** Copy of the owner_space ptr as a CompoundSymMatrixSpace */ const CompoundSymMatrixSpace* owner_space_; /** boolean indicating if the compound matrix is in a "valid" state */ mutable bool matrices_valid_; /** method to check wether or not the matrices are valid */ bool MatricesValid() const; /** Internal method to return a const pointer to one of the comps */ const Matrix* ConstComp(Index irow, Index jcol) const { DBG_ASSERT(irow < NComps_Dim()); DBG_ASSERT(jcol <= irow); if (IsValid(comps_[irow][jcol])) { return GetRawPtr(comps_[irow][jcol]); } else if (IsValid(const_comps_[irow][jcol])) { return GetRawPtr(const_comps_[irow][jcol]); } return NULL; } /** Internal method to return a non-const pointer to one of the comps */ Matrix* Comp(Index irow, Index jcol) { DBG_ASSERT(irow < NComps_Dim()); DBG_ASSERT(jcol <= irow); // We shouldn't be asking for a non-const if this entry holds a // const one... DBG_ASSERT(IsNull(const_comps_[irow][jcol])); if (IsValid(comps_[irow][jcol])) { return GetRawPtr(comps_[irow][jcol]); } return NULL; } }; /** This is the matrix space for CompoundSymMatrix. Before a * CompoundSymMatrix can be created, at least one SymMatrixSpace has * to be set per block row and column. Individual component * SymMatrixSpace's can be set with the SetComp method. */ class CompoundSymMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of blocks (same for rows and * columns), as well as the total dimension of the matrix. */ CompoundSymMatrixSpace(Index ncomp_spaces, Index total_dim); /** Destructor */ ~CompoundSymMatrixSpace() {} //@} /** @name Methods for setting information about the components. */ //@{ /** Set the dimension dim for block row (or column) irow_jcol */ void SetBlockDim(Index irow_jcol, Index dim); /** Get the dimension dim for block row (or column) irow_jcol */ Index GetBlockDim(Index irow_jcol) const; /** Set the component SymMatrixSpace. If auto_allocate is true, then * a new CompoundSymMatrix created later with MakeNew will have this * component automatically created with the SymMatrix's MakeNew. * Otherwise, the corresponding component will be NULL and has to * be set with the SetComp methods of the CompoundSymMatrix. */ void SetCompSpace(Index irow, Index jcol, const MatrixSpace& mat_space, bool auto_allocate = false); //@} /** Obtain the component MatrixSpace in block row irow and block * column jcol. */ SmartPtr GetCompSpace(Index irow, Index jcol) const { DBG_ASSERT(irow block_dim_; /** 2-dim std::vector of matrix spaces for the components. Only * the lower right part is stored. */ std::vector > > comp_spaces_; /** 2-dim std::vector of booleans deciding whether to * allocate a new matrix for the blocks automagically */ std::vector > allocate_block_; /** boolean indicating if the compound matrix space is in a "valid" state */ mutable bool dimensions_set_; /** Method to check whether or not the spaces are valid */ bool DimensionsSet() const; }; inline SmartPtr CompoundSymMatrix::MakeNewCompoundSymMatrix() const { return owner_space_->MakeNewCompoundSymMatrix(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseSymMatrix.cpp0000644000076600007660000001551111504216567020324 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseSymMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-25 #include "IpDenseSymMatrix.hpp" #include "IpDenseVector.hpp" #include "IpDenseGenMatrix.hpp" #include "IpBlas.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif DenseSymMatrix::DenseSymMatrix(const DenseSymMatrixSpace* owner_space) : SymMatrix(owner_space), owner_space_(owner_space), values_(new Number[NCols()*NRows()]), initialized_(false) {} DenseSymMatrix::~DenseSymMatrix() { delete [] values_; } void DenseSymMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); DBG_ASSERT(initialized_); // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); IpBlasDsymv(Dim(), alpha, values_, NRows(), dense_x->Values(), 1, beta, dense_y->Values(), 1); } void DenseSymMatrix::FillIdentity(Number factor /*=1.*/) { const Index dim = Dim(); for (Index j=0; jDot(*V2.GetVector(j)); } } } else { for (Index j=0; jDot(*V2.GetVector(j)) + beta*values_[i+j*dim]; } } } initialized_ = true; ObjectChanged(); } void DenseSymMatrix::HighRankUpdate(bool trans, Number alpha, const DenseGenMatrix& V, Number beta) { DBG_ASSERT((!trans && Dim()==V.NRows()) || (trans && Dim()==V.NCols())); DBG_ASSERT(beta==0. || initialized_); Index nrank; if (trans) { nrank = V.NRows(); } else { nrank = V.NCols(); } IpBlasDsyrk(trans, Dim(), nrank, alpha, V.Values(), V.NRows(), beta, values_, NRows()); initialized_ = true; ObjectChanged(); } void DenseSymMatrix::SpecialAddForLMSR1(const DenseVector& D, const DenseGenMatrix& L) { const Index dim = Dim(); DBG_ASSERT(initialized_); DBG_ASSERT(dim==D.Dim()); DBG_ASSERT(dim==L.NRows()); DBG_ASSERT(dim==L.NCols()); // First add the diagonal matrix const Number* Dvalues = D.Values(); for (Index i=0; i(&rows_norms); DBG_ASSERT(dynamic_cast(&rows_norms)); Number* vec_vals=dense_vec->Values(); const double* vals = values_; for (Index irow=0; irow #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif MultiVectorMatrix::MultiVectorMatrix(const MultiVectorMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space), const_vecs_(owner_space->NCols()), non_const_vecs_(owner_space->NCols()) {} void MultiVectorMatrix::SetVector(Index i, const Vector& vec) { DBG_ASSERT(i(&x); DBG_ASSERT(dynamic_cast(&x)); // We simply add all the Vectors one after the other if (dense_x->IsHomogeneous()) { Number val = dense_x->Scalar(); for (Index i=0; iValues(); for (Index i=0; i(&y); DBG_ASSERT(dynamic_cast(&y)); // Use the individual dot products to get the matrix (transpose) // vector product Number *yvals=dense_y->Values(); if ( beta!=0.0 ) { for (Index i=0; iDot(x) + beta*yvals[i]; } } else { for (Index i=0; iDot(x); } } } void MultiVectorMatrix::LRMultVector(Number alpha, const Vector &x, Number beta, Vector &y) const { DBG_START_METH("MultiVectorMatrix::LRMultVector(", dbg_verbosity); DBG_ASSERT(NRows()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); DBG_PRINT((1, "alpha = %e beta = %e\n", alpha, beta)); DBG_PRINT_VECTOR(2, "x", x); if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); } DBG_PRINT_VECTOR(2, "beta*y", y); for (Index i=0; iDot(x), *ConstVec(i), 1.); DBG_PRINT_VECTOR(2, "y mid", y); } } void MultiVectorMatrix::FillWithNewVectors() { SmartPtr vec_space = owner_space_->ColVectorSpace(); for (Index i=0; iMakeNew(); const_vecs_[i] = NULL; } ObjectChanged(); } void MultiVectorMatrix::ScaleRows(const Vector& scal_vec) { // Santiy checks DBG_ASSERT(scal_vec.Dim() == NRows()); for (Index i=0; iElementWiseMultiply(scal_vec); } ObjectChanged(); } void MultiVectorMatrix::ScaleColumns(const Vector& scal_vec) { // Santiy checks DBG_ASSERT(scal_vec.Dim() == NCols()); // See if we can understand the data const DenseVector* dense_scal_vec = static_cast(&scal_vec); DBG_ASSERT(dynamic_cast(&scal_vec)); if (dense_scal_vec->IsHomogeneous()) { Number val = dense_scal_vec->Scalar(); for (Index i=0; iScal(val); } } else { const Number* values = dense_scal_vec->Values(); for (Index i=0; iScal(values[i]); } } ObjectChanged(); } void MultiVectorMatrix::AddOneMultiVectorMatrix(Number a, const MultiVectorMatrix& mv1, Number c) { DBG_ASSERT(NRows()==mv1.NRows()); DBG_ASSERT(NCols()==mv1.NCols()); if (c==0.) { FillWithNewVectors(); } for (Index i=0; iAddOneVector(a, *mv1.GetVector(i), c); } ObjectChanged(); } void MultiVectorMatrix::AddRightMultMatrix(Number a, const MultiVectorMatrix& U, const Matrix& C, Number b) { DBG_ASSERT(NRows()==U.NRows()); DBG_ASSERT(U.NCols()==C.NRows()); DBG_ASSERT(NCols()==C.NCols()); if (b==0.) { FillWithNewVectors(); } // ToDo: For now, we simply use MatrixVector multiplications, but // we might be more efficient (at least in the non-parallel case) // if we used Level 3 Blas SmartPtr mydspace = new DenseVectorSpace(C.NRows()); SmartPtr mydvec = mydspace->MakeNewDenseVector(); const DenseGenMatrix* dgm_C = static_cast(&C); DBG_ASSERT(dynamic_cast(&C)); for (Index i=0; iValues(); Number* myvalues = mydvec->Values(); for (Index j=0; jHasValidNumbers()) { return false; } } return true; } void MultiVectorMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "MultiVectorMatrix::ComputeRowAMaxImpl not implemented"); } void MultiVectorMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "MultiVectorMatrix::ComputeColAMaxImpl not implemented"); } void MultiVectorMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sMultiVectorMatrix \"%s\" with %d columns:\n", prefix.c_str(), name.c_str(), NCols()); for (Index i=0; iPrint(&jnlst, level, category, term_name, indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sVector in column %d is not yet set!\n", prefix.c_str(), i); } } } MultiVectorMatrixSpace::MultiVectorMatrixSpace(Index ncols, const VectorSpace& vec_space) : MatrixSpace(vec_space.Dim(), ncols), vec_space_(&vec_space) {} } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpSumSymMatrix.cpp0000644000076600007660000001044111504216567020027 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSumSymMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpSumSymMatrix.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { SumSymMatrix::SumSymMatrix(const SumSymMatrixSpace* owner_space) : SymMatrix(owner_space), factors_(owner_space->NTerms(), 1.0), matrices_(owner_space->NTerms()), owner_space_(owner_space) {} SumSymMatrix::~SumSymMatrix() {} void SumSymMatrix::SetTerm(Index iterm, Number factor, const SymMatrix& matrix) { DBG_ASSERT(itermNTerms()); factors_[iterm] = factor; matrices_[iterm] = &matrix; } void SumSymMatrix::GetTerm(Index iterm, Number& factor, SmartPtr& matrix) const { DBG_ASSERT(itermNTerms()); factor = factors_[iterm]; matrix = matrices_[iterm]; } Index SumSymMatrix::NTerms() const { return owner_space_->NTerms(); } void SumSymMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(Dim()==x.Dim()); DBG_ASSERT(Dim()==y.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for (Index iterm=0; itermMultVector(alpha*factors_[iterm], x, 1.0, y); } } bool SumSymMatrix::HasValidNumbersImpl() const { for (Index iterm=0; itermHasValidNumbers()) { return false; } } return true; } void SumSymMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "SumSymMatrix::ComputeRowAMaxImpl not implemented"); } void SumSymMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "SumSymMatrix::ComputeColAMaxImpl not implemented"); } void SumSymMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sSumSymMatrix \"%s\" of dimension %d with %d terms:\n", prefix.c_str(), name.c_str(), Dim(), NTerms()); for (Index iterm=0; itermPrint(&jnlst, level, category, name, indent+1, prefix); } } void SumSymMatrixSpace::SetTermSpace (Index term_idx, const SymMatrixSpace& space) { while (term_idx >= (Index)term_spaces_.size()) { term_spaces_.push_back(NULL); } term_spaces_[term_idx] = &space; } SmartPtr SumSymMatrixSpace::GetTermSpace(Index term_idx) const { if (term_idx >= 0 && term_idx < (Index)term_spaces_.size()) { return term_spaces_[term_idx]; } return NULL; } SumSymMatrix* SumSymMatrixSpace::MakeNewSumSymMatrix() const { DBG_ASSERT(nterms_ == (Index)term_spaces_.size()); return new SumSymMatrix(this); } SymMatrix* SumSymMatrixSpace::MakeNewSymMatrix() const { return MakeNewSumSymMatrix(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpLowRankUpdateSymMatrix.cpp0000644000076600007660000001417111504216567022007 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLowRankUpdateSymMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-25 #include "IpLowRankUpdateSymMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LowRankUpdateSymMatrix::LowRankUpdateSymMatrix(const LowRankUpdateSymMatrixSpace* owner_space) : SymMatrix(owner_space), owner_space_(owner_space) {} LowRankUpdateSymMatrix::~LowRankUpdateSymMatrix() {} void LowRankUpdateSymMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { DBG_START_METH("LowRankUpdateSymMatrix::MultVectorImpl", dbg_verbosity); // A few sanity checks DBG_ASSERT(Dim()==x.Dim()); DBG_ASSERT(Dim()==y.Dim()); DBG_ASSERT(IsValid(D_)); SmartPtr P_LR = P_LowRank(); if (IsNull(P_LR)) { // Diagonal part if ( beta!=0.0 ) { SmartPtr tmp_vec = x.MakeNewCopy(); tmp_vec->ElementWiseMultiply(*D_); y.AddOneVector(alpha, *tmp_vec, beta); } else { y.AddOneVector(alpha, x, 0.); y.ElementWiseMultiply(*D_); } DBG_PRINT_VECTOR(2, "y = D*alpha*x", y); if (IsValid(V_)) { // Positive update V_->LRMultVector(alpha, x, 1., y); } if (IsValid(U_)) { // Negative update U_->LRMultVector(-alpha, x, 1., y); } } else { if (ReducedDiag()) { // Get everything into the smaller space SmartPtr LR_vec_space = LowRankVectorSpace(); SmartPtr small_x = LR_vec_space->MakeNew(); P_LR->TransMultVector(1., x, 0., *small_x); // Diagonal part in small space SmartPtr small_y = LR_vec_space->MakeNew(); small_y->Copy(*small_x); small_y->ElementWiseMultiply(*D_); if (IsValid(V_)) { // Positive update V_->LRMultVector(1., *small_x, 1., *small_y); } if (IsValid(U_)) { // Negative update U_->LRMultVector(-1., *small_x, 1., *small_y); } // Get the result back into the large space P_LR->MultVector(alpha, *small_y, beta, y); } else { // Diagonal part SmartPtr tmp = x.MakeNewCopy(); tmp->ElementWiseMultiply(*D_); y.AddOneVector(alpha, *tmp, beta); // Get x into the smaller space SmartPtr LR_vec_space = LowRankVectorSpace(); SmartPtr small_x = LR_vec_space->MakeNew(); P_LR->TransMultVector(1., x, 0., *small_x); SmartPtr small_y = LR_vec_space->MakeNew(); if (IsValid(V_)) { // Positive update V_->LRMultVector(1., *small_x, 0., *small_y); } else { small_y->Set(0.); } if (IsValid(U_)) { // Negative update U_->LRMultVector(-1., *small_x, 1., *small_y); } // Get the result back into the large space P_LR->MultVector(alpha, *small_y, 1., y); } } } bool LowRankUpdateSymMatrix::HasValidNumbersImpl() const { DBG_ASSERT(IsValid(D_)); if (!D_->HasValidNumbers()) { return false; } if (IsValid(V_)) { if (!V_->HasValidNumbers()) { return false; } } if (IsValid(U_)) { if (!U_->HasValidNumbers()) { return false; } } return true; } void LowRankUpdateSymMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "LowRankUpdateSymMatrix::ComputeRowAMaxImpl not implemented"); } void LowRankUpdateSymMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "LowRankUpdateSymMatrix::ComputeColAMaxImpl not implemented"); } void LowRankUpdateSymMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sLowRankUpdateSymMatrix \"%s\" with %d rows and columns:\n", prefix.c_str(), name.c_str(), Dim()); if (ReducedDiag()) { jnlst.PrintfIndented(level, category, indent+1, "%sThis matrix has reduced diagonal.\n", prefix.c_str()); } else { jnlst.PrintfIndented(level, category, indent+1, "%sThis matrix has full diagonal.\n", prefix.c_str()); } jnlst.PrintfIndented(level, category, indent+1, "%sDiagonal matrix:\n", prefix.c_str()); if (IsValid(D_)) { D_->Print(&jnlst, level, category, name+"-D", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sDiagonal matrix not set!\n", prefix.c_str()); } jnlst.PrintfIndented(level, category, indent+1, "%sMultiVectorMatrix V for positive update:\n", prefix.c_str()); if (IsValid(V_)) { V_->Print(&jnlst, level, category, name+"-V", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sV matrix not set!\n", prefix.c_str()); } jnlst.PrintfIndented(level, category, indent+1, "%sMultiVectorMatrix U for positive update:\n", prefix.c_str()); if (IsValid(U_)) { U_->Print(&jnlst, level, category, name+"-U", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sU matrix not set!\n", prefix.c_str()); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpDiagMatrix.hpp0000644000076600007660000000723611504216567017453 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDiagMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPDIAGMATRIX_HPP__ #define __IPDIAGMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" namespace Ipopt { /** Class for diagonal matrices. The diagonal is stored as a * Vector. */ class DiagMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, given the corresponding matrix space. */ DiagMatrix(const SymMatrixSpace* owner_space); /** Destructor */ ~DiagMatrix(); //@} /** Method for setting the diagonal elements (as a Vector). */ void SetDiag(const Vector& diag) { diag_ = &diag; } /** Method for setting the diagonal elements. */ SmartPtr GetDiag() const { return diag_; } protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DiagMatrix(); /** Copy Constructor */ DiagMatrix(const DiagMatrix&); /** Overloaded Equals Operator */ void operator=(const DiagMatrix&); //@} /** Vector storing the diagonal elements */ SmartPtr diag_; }; /** This is the matrix space for DiagMatrix. */ class DiagMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the dimension of the matrix. */ DiagMatrixSpace(Index dim) : SymMatrixSpace(dim) {} /** Destructor */ virtual ~DiagMatrixSpace() {} //@} /** Overloaded MakeNew method for the SymMatrixSpace base class. */ virtual SymMatrix* MakeNewSymMatrix() const { return MakeNewDiagMatrix(); } /** Method for creating a new matrix of this specific type. */ DiagMatrix* MakeNewDiagMatrix() const { return new DiagMatrix(this); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DiagMatrixSpace(); /** Copy Constructor */ DiagMatrixSpace(const DiagMatrixSpace&); /** Overloaded Equals Operator */ void operator=(const DiagMatrixSpace&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpMatrix.cpp0000644000076600007660000000456311504216567016661 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpMatrix.hpp" namespace Ipopt { void Matrix::AddMSinvZ(Number alpha, const Vector& S, const Vector& Z, Vector& X) const { AddMSinvZImpl(alpha, S, Z, X); } void Matrix::SinvBlrmZMTdBr(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const { SinvBlrmZMTdBrImpl(alpha, S, R, Z, D, X); } // Prototype for specialize methods (can and should be overloaded) void Matrix::AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const { SmartPtr tmp = S.MakeNew(); tmp->AddVectorQuotient(1., Z, S, 0.); MultVector(alpha, *tmp, 1., X); } void Matrix::SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const { TransMultVector(alpha, D, 0., X); X.ElementWiseMultiply(Z); X.Axpy(1., R); X.ElementWiseDivide(S); } bool Matrix::HasValidNumbers() const { if (valid_cache_tag_ != GetTag()) { cached_valid_ = HasValidNumbersImpl(); valid_cache_tag_ = GetTag(); } return cached_valid_; } void Matrix::Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (IsValid(jnlst) && jnlst->ProduceOutput(level, category)) { PrintImpl(*jnlst, level, category, name, indent, prefix); } } void Matrix::Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (jnlst.ProduceOutput(level, category)) { PrintImpl(jnlst, level, category, name, indent, prefix); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/Makefile.in0000644000076600007660000007156412156624616016474 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/LinAlg DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) liblinalg_la_LIBADD = am_liblinalg_la_OBJECTS = IpBlas.lo IpCompoundMatrix.lo \ IpCompoundSymMatrix.lo IpCompoundVector.lo IpDenseGenMatrix.lo \ IpDenseSymMatrix.lo IpDenseVector.lo IpDiagMatrix.lo \ IpExpandedMultiVectorMatrix.lo IpExpansionMatrix.lo \ IpIdentityMatrix.lo IpLapack.lo IpLowRankUpdateSymMatrix.lo \ IpMatrix.lo IpMultiVectorMatrix.lo IpScaledMatrix.lo \ IpSumMatrix.lo IpSumSymMatrix.lo IpSymScaledMatrix.lo \ IpTransposeMatrix.lo IpVector.lo IpZeroMatrix.lo liblinalg_la_OBJECTS = $(am_liblinalg_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(liblinalg_la_SOURCES) DIST_SOURCES = $(liblinalg_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includeipoptdir)" includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign SUBDIRS = TMatrices includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpMatrix.hpp \ IpSymMatrix.hpp \ IpVector.hpp \ IpDenseVector.hpp \ IpCompoundVector.hpp \ IpBlas.hpp \ IpLapack.hpp noinst_LTLIBRARIES = liblinalg.la liblinalg_la_SOURCES = \ IpBlas.cpp IpBlas.hpp \ IpCompoundMatrix.cpp IpCompoundMatrix.hpp \ IpCompoundSymMatrix.cpp IpCompoundSymMatrix.hpp \ IpCompoundVector.cpp IpCompoundVector.hpp \ IpDenseGenMatrix.cpp IpDenseGenMatrix.hpp \ IpDenseSymMatrix.cpp IpDenseSymMatrix.hpp \ IpDenseVector.cpp IpDenseVector.hpp \ IpDiagMatrix.cpp IpDiagMatrix.hpp \ IpExpandedMultiVectorMatrix.cpp IpExpandedMultiVectorMatrix.hpp \ IpExpansionMatrix.cpp IpExpansionMatrix.hpp \ IpIdentityMatrix.cpp IpIdentityMatrix.hpp \ IpLapack.cpp IpLapack.hpp \ IpLowRankUpdateSymMatrix.cpp IpLowRankUpdateSymMatrix.hpp \ IpMatrix.cpp IpMatrix.hpp \ IpMultiVectorMatrix.cpp IpMultiVectorMatrix.hpp \ IpScaledMatrix.cpp IpScaledMatrix.hpp \ IpSumMatrix.cpp IpSumMatrix.hpp \ IpSumSymMatrix.cpp IpSumSymMatrix.hpp \ IpSymMatrix.hpp \ IpSymScaledMatrix.cpp IpSymScaledMatrix.hpp \ IpTransposeMatrix.cpp IpTransposeMatrix.hpp \ IpVector.cpp IpVector.hpp \ IpZeroMatrix.cpp IpZeroMatrix.hpp liblinalg_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../Common` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = IpBlas.cppbak IpBlas.hppbak \ IpCompoundMatrix.cppbak IpCompoundMatrix.hppbak \ IpCompoundSymMatrix.cppbak IpCompoundSymMatrix.hppbak \ IpCompoundVector.cppbak IpCompoundVector.hppbak \ IpDenseGenMatrix.cppbak IpDenseGenMatrix.hppbak \ IpDenseSymMatrix.cppbak IpDenseSymMatrix.hppbak \ IpDenseVector.cppbak IpDenseVector.hppbak \ IpDiagMatrix.cppbak IpDiagMatrix.hppbak \ IpExpandedMultiVectorMatrix.cppbak IpExpandedMultiVectorMatrix.hppbak \ IpExpansionMatrix.cppbak IpExpansionMatrix.hppbak \ IpIdentityMatrix.cppbak IpIdentityMatrix.hppbak \ IpLapack.cppbak IpLapack.hppbak \ IpLowRankUpdateSymMatrix.cppbak IpLowRankUpdateSymMatrix.hppbak \ IpMatrix.cppbak IpMatrix.hppbak \ IpMultiVectorMatrix.cppbak IpMultiVectorMatrix.hppbak \ IpScaledMatrix.cppbak IpScaledMatrix.hppbak \ IpSumMatrix.cppbak IpSumMatrix.hppbak \ IpSumSymMatrix.cppbak IpSumSymMatrix.hppbak \ IpSymMatrix.hppbak \ IpSymScaledMatrix.cppbak IpSymScaledMatrix.hppbak \ IpTransposeMatrix.cppbak IpTransposeMatrix.hppbak \ IpVector.cppbak IpVector.hppbak \ IpZeroMatrix.cppbak IpZeroMatrix.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-recursive .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/LinAlg/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/LinAlg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liblinalg.la: $(liblinalg_la_OBJECTS) $(liblinalg_la_DEPENDENCIES) $(CXXLINK) $(liblinalg_la_LDFLAGS) $(liblinalg_la_OBJECTS) $(liblinalg_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpBlas.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCompoundMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCompoundSymMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCompoundVector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDenseGenMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDenseSymMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDenseVector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDiagMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpExpandedMultiVectorMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpExpansionMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIdentityMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLapack.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLowRankUpdateSymMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMultiVectorMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpScaledMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSumMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSumSymMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSymScaledMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTransposeMatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpVector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpZeroMatrix.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-includeipoptHEADERS install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-includeipoptHEADERS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-noinstLTLIBRARIES \ clean-recursive ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-includeipoptHEADERS install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-includeipoptHEADERS uninstall-info-am astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/LinAlg/IpIdentityMatrix.hpp0000644000076600007660000000775111504216567020402 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIdentityMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIDENTITYMATRIX_HPP__ #define __IPIDENTITYMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" namespace Ipopt { /** Class for Matrices which are multiples of the identity matrix. * */ class IdentityMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, initializing with dimensions of the matrix * (true identity matrix). */ IdentityMatrix(const SymMatrixSpace* owner_space); /** Destructor */ ~IdentityMatrix(); //@} /** Method for setting the factor for the identity matrix. */ void SetFactor(Number factor) { factor_ = factor; } /** Method for getting the factor for the identity matrix. */ Number GetFactor() const { return factor_; } /** Method for obtaining the dimention of the matrix. */ Index Dim() const; protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IdentityMatrix(); /** Copy Constructor */ IdentityMatrix(const IdentityMatrix&); /** Overloaded Equals Operator */ void operator=(const IdentityMatrix&); //@} /** Scaling factor for this identity matrix */ Number factor_; }; /** This is the matrix space for IdentityMatrix. */ class IdentityMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the dimension of the matrix. */ IdentityMatrixSpace(Index dim) : SymMatrixSpace(dim) {} /** Destructor */ virtual ~IdentityMatrixSpace() {} //@} /** Overloaded MakeNew method for the SymMatrixSpace base class. */ virtual SymMatrix* MakeNewSymMatrix() const { return MakeNewIdentityMatrix(); } /** Method for creating a new matrix of this specific type. */ IdentityMatrix* MakeNewIdentityMatrix() const { return new IdentityMatrix(this); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IdentityMatrixSpace(); /** Copy Constructor */ IdentityMatrixSpace(const IdentityMatrixSpace&); /** Overloaded Equals Operator */ void operator=(const IdentityMatrixSpace&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpExpansionMatrix.cpp0000644000076600007660000002673611504216567020554 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExpansionMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpExpansionMatrix.hpp" #include "IpDenseVector.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif ExpansionMatrix::ExpansionMatrix(const ExpansionMatrixSpace* owner_space) : Matrix(owner_space), owner_space_(owner_space) {} ExpansionMatrix::~ExpansionMatrix() {} void ExpansionMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } // See if we can understand the data const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); const Index* exp_pos = ExpandedPosIndices(); if (dense_x && dense_y) { Number* yvals=dense_y->Values(); if (dense_x->IsHomogeneous()) { Number val = alpha * dense_x->Scalar(); if (val != 0.) { for (Index i=0; iValues(); if (alpha == 1.) { for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); DenseVector* dense_y = static_cast(&y); DBG_ASSERT(dynamic_cast(&y)); const Index* exp_pos = ExpandedPosIndices(); if (dense_x && dense_y) { Number* yvals=dense_y->Values(); if (dense_x->IsHomogeneous()) { Number val = alpha * dense_x->Scalar(); if (val != 0.) { for (Index i=0; iValues(); if (alpha == 1.) { for (Index i=0; i(&S); DBG_ASSERT(dynamic_cast(&S)); const DenseVector* dense_Z = static_cast(&Z); DBG_ASSERT(dynamic_cast(&Z)); DenseVector* dense_X = static_cast(&X); DBG_ASSERT(dynamic_cast(&X)); // if vector S is homogeneous type, call the default implementation // ToDo: find out how often the default implementation is called and // if we should implement specialized method for the homogenenous // case if (dense_S->IsHomogeneous()) { DBG_ASSERT(false && "dense_S is homogeneous - implement specialized option?"); Matrix::AddMSinvZImpl(alpha, S, Z, X); return; } const Index* exp_pos = ExpandedPosIndices(); const Number* vals_S = dense_S->Values(); Number* vals_X = dense_X->Values(); if (dense_Z->IsHomogeneous()) { Number val = alpha*dense_Z->Scalar(); if (val != 0.) { for (Index i=0; iValues(); if (alpha==1.) { for (Index i=0; i(&S); DBG_ASSERT(dynamic_cast(&S)); const DenseVector* dense_R = static_cast(&R); DBG_ASSERT(dynamic_cast(&R)); const DenseVector* dense_Z = static_cast(&Z); DBG_ASSERT(dynamic_cast(&Z)); const DenseVector* dense_D = static_cast(&D); DBG_ASSERT(dynamic_cast(&D)); DenseVector* dense_X = static_cast(&X); DBG_ASSERT(dynamic_cast(&X)); // if the vectors S or D are of the homogeneous type, revert to the // default implementation // ToDo: find out how often the default implementation is called and // if we should implement specialized method for the homogenenous // case if (dense_S->IsHomogeneous() || dense_D->IsHomogeneous()) { DBG_ASSERT(false && "dense_S or dense_D is homogeneous - implement specialized option?"); Matrix::SinvBlrmZMTdBrImpl(alpha, S, R, Z, D, X); return; } const Index* exp_pos = ExpandedPosIndices(); const Number* vals_S = dense_S->Values(); const Number* vals_D = dense_D->Values(); Number* vals_X = dense_X->Values(); if (dense_R->IsHomogeneous()) { Number scalar_R = dense_R->Scalar(); if (dense_Z->IsHomogeneous()) { Number val = alpha*dense_Z->Scalar(); if (val == 0.) { for (Index i=0; iValues(); if (alpha==1.) { for (Index i=0; iValues(); if (dense_Z->IsHomogeneous()) { Number val = alpha*dense_Z->Scalar(); for (Index i=0; iValues(); if (alpha==1.) { for (Index i=0; i(&rows_norms); DBG_ASSERT(dynamic_cast(&rows_norms)); Number* vec_vals=dense_vec->Values(); const Index* exp_pos = ExpandedPosIndices(); for (Index i=0; i v = cols_norms.MakeNew(); v->Set(1.); cols_norms.ElementWiseMax(*v); } } void ExpansionMatrix::PrintImplOffset(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix, Index row_offset, Index col_offset) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sExpansionMatrix \"%s\" with %d rows and %d columns:\n", prefix.c_str(), name.c_str(), NRows(), NCols()); const Index* exp_pos = ExpandedPosIndices(); for (Index i=0; i0) { expanded_pos_ = new Index[NCols()]; } if (NRows()>0) { compressed_pos_ = new Index[NRows()]; } for (Index j=0; j=0); expanded_pos_[i]=ExpPos[i]-offset; compressed_pos_[ExpPos[i]-offset] = i; } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpTransposeMatrix.hpp0000644000076600007660000001121211504216567020552 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTransposeMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-25 #ifndef __IPTRANSPOSEMATRIX_HPP__ #define __IPTRANSPOSEMATRIX_HPP__ #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class TransposeMatrixSpace; /** Class for Matrices which are the transpose of another matrix. * */ class TransposeMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, initializing with dimensions of the matrix. */ TransposeMatrix(const TransposeMatrixSpace* owner_space); /** Destructor */ ~TransposeMatrix() {} SmartPtr OrigMatrix() const { return ConstPtr(orig_matrix_); } //@} protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const { DBG_ASSERT(IsValid(orig_matrix_)); orig_matrix_->TransMultVector(alpha, x, beta, y); } virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const { DBG_ASSERT(IsValid(orig_matrix_)); orig_matrix_->MultVector(alpha, x, beta, y); } /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const { DBG_ASSERT(IsValid(orig_matrix_)); return orig_matrix_->HasValidNumbers(); } virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { DBG_ASSERT(IsValid(orig_matrix_)); orig_matrix_->ComputeColAMax(rows_norms, init); } virtual void ComputeColAMaxImpl(Vector& rows_norms, bool init) const { DBG_ASSERT(IsValid(orig_matrix_)); orig_matrix_->ComputeRowAMax(rows_norms, init); } virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ TransposeMatrix(); /** Copy Constructor */ TransposeMatrix(const TransposeMatrix&); /** Overloaded Equals Operator */ void operator=(const TransposeMatrix&); //@} /** Pointer to original matrix */ SmartPtr orig_matrix_; }; /** This is the matrix space for TransposeMatrix. */ class TransposeMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the dimension of the matrix. */ TransposeMatrixSpace(const MatrixSpace* orig_matrix_space) : MatrixSpace(orig_matrix_space->NCols(), orig_matrix_space->NRows()), orig_matrix_space_(orig_matrix_space) {} /** Destructor */ virtual ~TransposeMatrixSpace() {} //@} /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewTransposeMatrix(); } /** Method for creating a new matrix of this specific type. */ TransposeMatrix* MakeNewTransposeMatrix() const { return new TransposeMatrix(this); } Matrix* MakeNewOrigMatrix() const { return orig_matrix_space_->MakeNew(); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ TransposeMatrixSpace(); /** Copy Constructor */ TransposeMatrixSpace(const TransposeMatrixSpace&); /** Overloaded Equals Operator */ void operator=(const TransposeMatrixSpace&); //@} /** Matrix space of the original matrix */ SmartPtr orig_matrix_space_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseGenMatrix.hpp0000644000076600007660000002002111504216567020262 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseGenMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-24 #ifndef __IPDENSEGENMATRIX_HPP__ #define __IPDENSEGENMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" #include "IpDenseVector.hpp" #include "IpDenseSymMatrix.hpp" namespace Ipopt { /** forward declarations */ class DenseGenMatrixSpace; /** Class for dense general matrices. Matrix elements are stored in * one array in "Fortran" format. */ class DenseGenMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ DenseGenMatrix(const DenseGenMatrixSpace* owner_space); /** Destructor */ ~DenseGenMatrix(); //@} /** Create a new DenseGenMatrix from same MatrixSpace */ SmartPtr MakeNewDenseGenMatrix() const; /** Retrieve the array for storing the matrix elements. This is * the non-const version, and it is assume that afterwards the * calling method will set all matrix elements. The matrix * elements are stored one column after each other. */ Number* Values() { initialized_ = true; ObjectChanged(); return values_; } /** Retrieve the array that stores the matrix elements. This is * the const version, i.e., read-only. The matrix elements are * stored one column after each other. */ const Number* Values() const { DBG_ASSERT(initialized_); return values_; } /** Method for copying the content of another matrix into this * matrix */ void Copy(const DenseGenMatrix& M); /** Set this matrix to be a multiple of the identity matrix . * This assumes that this matrix is square. */ void FillIdentity(Number factor=1.); /** Method for scaling the columns of the matrix. The scaling * factors are given in form of a DenseVector */ void ScaleColumns(const DenseVector& scal_vec); /** Method for adding the product of two matrices to this matrix. */ void AddMatrixProduct(Number alpha, const DenseGenMatrix& A, bool transA, const DenseGenMatrix& B, bool transB, Number beta); /** Method for adding a high-rank update to this matrix. It * computes M = alpha*V1^T V2 + beta*M, where V1 and V2 are * MultiVectorMatrices. */ void HighRankUpdateTranspose(Number alpha, const MultiVectorMatrix& V1, const MultiVectorMatrix& V2, Number beta); /** Method for computing the Cholesky factorization of a positive * definite matrix. The factor is stored in this matrix, as * lower-triangular matrix, i.e., M = J * J^T. The return values * is false if the factorization could not be done, e.g., when * the matrix is not positive definite. */ bool ComputeCholeskyFactor(const DenseSymMatrix& M); /** Method for computing an eigenvalue decomposition of the given * symmetrix matrix M. On return, this matrix contains the * eigenvalues in its columns, and Evalues contains the * eigenvalues. The return value is false, if there problems * during the computation. */ bool ComputeEigenVectors(const DenseSymMatrix& M, DenseVector& Evalues); /** Method for performing one backsolve with an entire matrix on * the right hand side, assuming that the this matrix is square * and contains a lower triangular matrix. The incoming right * hand side B is overwritten with the solution X of op(A)*X = * alpha*B. op(A) = A or op(A) = A^T. */ void CholeskyBackSolveMatrix(bool trans, Number alpha, DenseGenMatrix& B) const; /** Method for performing a solve of a linear system for one * vector, assuming that this matrix contains the Cholesky factor * for the linear system. The vector b contains the right hand * side on input, and contains the solution on output. */ void CholeskySolveVector(DenseVector& b) const; /** Method for performing a solve of a linear system for one * right-hand-side matrix, assuming that this matrix contains the * Cholesky factor for the linear system. The matrix B contains * the right hand sides on input, and contains the solution on * output. */ void CholeskySolveMatrix(DenseGenMatrix& B) const; /** Method for computing the LU factorization of an unsymmetric matrix. * The factorization is done in place. */ bool ComputeLUFactorInPlace(); /** Method for using a previously computed LU factorization for a * backsolve with a matrix on the rhs. */ void LUSolveMatrix(DenseGenMatrix& B) const; /** Method for using a previously computed LU fatorization for a * backsolve with a single vector. */ void LUSolveVector(DenseVector& b) const; protected: /**@name Overloaded methods from Matrix base class*/ //@{ virtual void MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DenseGenMatrix(); /** Copy Constructor */ DenseGenMatrix(const DenseGenMatrix&); /** Overloaded Equals Operator */ void operator=(const DenseGenMatrix&); //@} const DenseGenMatrixSpace* owner_space_; /** Array for storing the matrix elements (one columns after each * other) */ Number* values_; /** Flag indicating whether the values_ array has been initialized */ bool initialized_; /** Enum for factorization type */ enum Factorization { NONE, LU, CHOL }; /** Flag indicating if and which factorization has been applied */ Factorization factorization_; /** Array for storing the pivot sequences if the matrix has been LU-factorized */ int* pivot_; }; /** This is the matrix space for DenseGenMatrix. */ class DenseGenMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor for matrix space for DenseGenMatrices. Takes in * dimension of the matrices. */ DenseGenMatrixSpace(Index nRows, Index nCols); /** Destructor */ ~DenseGenMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ DenseGenMatrix* MakeNewDenseGenMatrix() const { return new DenseGenMatrix(this); } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewDenseGenMatrix(); } }; inline SmartPtr DenseGenMatrix::MakeNewDenseGenMatrix() const { return owner_space_->MakeNewDenseGenMatrix(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpSymScaledMatrix.cpp0000644000076600007660000000532711504216567020465 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSymScaledMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpSymScaledMatrix.hpp" namespace Ipopt { SymScaledMatrix::SymScaledMatrix(const SymScaledMatrixSpace* owner_space) : SymMatrix(owner_space), owner_space_(owner_space) {} SymScaledMatrix::~SymScaledMatrix() {} void SymScaledMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { DBG_ASSERT(IsValid(matrix_)); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } // need some temporary vectors SmartPtr tmp_x = x.MakeNewCopy(); SmartPtr tmp_y = y.MakeNew(); if (IsValid(owner_space_->RowColScaling())) { tmp_x->ElementWiseMultiply(*owner_space_->RowColScaling()); } matrix_->MultVector(1.0, *tmp_x, 0.0, *tmp_y); if (IsValid(owner_space_->RowColScaling())) { tmp_y->ElementWiseMultiply(*owner_space_->RowColScaling()); } y.Axpy(alpha, *tmp_y); } bool SymScaledMatrix::HasValidNumbersImpl() const { return matrix_->HasValidNumbers(); } void SymScaledMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "SymScaledMatrix::ComputeRowAMaxImpl not implemented"); } void SymScaledMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sSymScaledMatrix \"%s\" of dimension %d x %d:\n", prefix.c_str(), name.c_str(), NRows(), NCols()); owner_space_->RowColScaling()->Print(&jnlst, level, category, name+"_row_col_scaling", indent+1, prefix); if (IsValid(matrix_)) { matrix_->Print(&jnlst, level, category, name+"_unscaled_matrix", indent+1, prefix); } else { jnlst.PrintfIndented(level, category, indent, "%sunscaled matrix is NULL\n", prefix.c_str()); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpSumSymMatrix.hpp0000644000076600007660000001046711504216567020044 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSumSymMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSUMSYMMATRIX_HPP__ #define __IPSUMSYMMATRIX_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" namespace Ipopt { /* forward declarations */ class SumSymMatrixSpace; /** Class for Matrices which are sum of symmetric matrices. * For each term in the we store the matrix and a factor. */ class SumSymMatrix : public SymMatrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, initializing with dimensions of the matrix and * the number of terms in the sum. */ SumSymMatrix(const SumSymMatrixSpace* owner_space); /** Destructor */ ~SumSymMatrix(); //@} /** Method for setting term iterm for the sum. Note that counting * of terms starts at 0. */ void SetTerm(Index iterm, Number factor, const SymMatrix& matrix); /** Method for getting term iterm for the sum. Note that counting * of terms starts at 0. */ void GetTerm(Index iterm, Number& factor, SmartPtr& matrix) const; /** Return the number of terms */ Index NTerms() const; protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ SumSymMatrix(); /** Copy Constructor */ SumSymMatrix(const SumSymMatrix&); /** Overloaded Equals Operator */ void operator=(const SumSymMatrix&); //@} /** std::vector storing the factors for each term. */ std::vector factors_; /** std::vector storing the matrices for each term. */ std::vector > matrices_; /** Copy of the owner_space as a SumSymMatrixSpace */ const SumSymMatrixSpace* owner_space_; }; /** Class for matrix space for SumSymMatrix */ class SumSymMatrixSpace : public SymMatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the dimension of the matrix and the number * of terms in the sum. */ SumSymMatrixSpace(Index ndim, Index nterms) : SymMatrixSpace(ndim), nterms_(nterms) {} /** Destructor */ ~SumSymMatrixSpace() {} //@} /** @name Accessor functions */ //@{ /** Number of terms in the sum. */ Index NTerms() const { return nterms_; } //@} /** Use this method to set the matrix spaces for the various terms. * You will not be able to create a matrix until all these spaces * are set. */ void SetTermSpace(Index term_idx, const SymMatrixSpace& space); /** Get the matix space for a particular term */ SmartPtr GetTermSpace(Index term_idx) const; /** Method for creating a new matrix of this specific type. */ SumSymMatrix* MakeNewSumSymMatrix() const; /** Overloaded MakeNew method for the SymMatrixSpace base class. */ virtual SymMatrix* MakeNewSymMatrix() const; private: Index nterms_; std::vector< SmartPtr > term_spaces_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpLapack.hpp0000644000076600007660000000344611504216567016614 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLapack.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-25 #ifndef __IPLAPACK_HPP__ #define __IPLAPACK_HPP__ #include "IpUtils.hpp" #include "IpException.hpp" namespace Ipopt { DECLARE_STD_EXCEPTION(LAPACK_NOT_INCLUDED); /** Wrapper for LAPACK subroutine DPOTRS. Solving a linear system * given a Cholesky factorization. We assume that the Cholesky * factor is lower traiangular. */ void IpLapackDpotrs(Index ndim, Index nrhs, const Number *a, Index lda, Number *b, Index ldb); /** Wrapper for LAPACK subroutine DPOTRF. Compute Cholesky * factorization (lower triangular factor). info is the return * value from the LAPACK routine. */ void IpLapackDpotrf(Index ndim, Number *a, Index lda, Index& info); /** Wrapper for LAPACK subroutine DSYEV. Compute the Eigenvalue * decomposition for a given matrix. If compute_eigenvectors is * true, a will contain the eigenvectors in its columns on * return. */ void IpLapackDsyev(bool compute_eigenvectors, Index ndim, Number *a, Index lda, Number *w, Index& info); /** Wrapper for LAPACK subroutine DGETRF. Compute LU factorization. * info is the return value from the LAPACK routine. */ void IpLapackDgetrf(Index ndim, Number *a, Index* pivot, Index lda, Index& info); /** Wrapper for LAPACK subroutine DGETRS. Solving a linear system * given a LU factorization. */ void IpLapackDgetrs(Index ndim, Index nrhs, const Number *a, Index lda, Index* ipiv, Number *b, Index ldb); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpCompoundMatrix.hpp0000644000076600007660000002555411504216567020376 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCompoundMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPCOMPOUNDMATRIX_HPP__ #define __IPCOMPOUNDMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class CompoundMatrixSpace; /** Class for Matrices consisting of other matrices. This matrix is * a matrix that consists of zero, one or more Matrices's which are * arranged like this: \f$ M_{\rm compound} = * \left(\begin{array}{cccc}M_{00} & M_{01} & \ldots & M_{0,{\rm * ncomp\_cols}-1} \\ \dots &&&\dots \\ M_{{\rm ncomp\_rows}-1,0} & * M_{{\rm ncomp\_rows}-1,1} & \dots & M_{{\rm ncomp\_rows}-1,{\rm * ncomp\_cols}-1}\end{array}\right)\f$. The individual components * can be associated to different MatrixSpaces. The individual * components can also be const and non-const Matrices. If a * component is not set (i.e., it's pointer is NULL), then this * components is treated like a zero-matrix of appropriate * dimensions. */ class CompoundMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. The owner_space has to * be defined, so that at each block row and column contain at * least one non-NULL component. The individual components can * be set afterwards with the SeteComp and SetCompNonConst * methods. */ CompoundMatrix(const CompoundMatrixSpace* owner_space); /** Destructor */ virtual ~CompoundMatrix(); //@} /** Method for setting an individual component at position (irow, * icol) in the compound matrix. The counting of indices starts * at 0. */ void SetComp(Index irow, Index jcol, const Matrix& matrix); /** Method to set a non-const Matrix entry */ void SetCompNonConst(Index irow, Index jcol, Matrix& matrix); /** Method to create a new matrix from the space for this block */ void CreateBlockFromSpace(Index irow, Index jcol); /** Method for retrieving one block from the compound matrix as a * const Matrix. */ SmartPtr GetComp(Index irow, Index jcol) const { return ConstComp(irow, jcol); } /** Method for retrieving one block from the compound matrix as a * non-const Matrix. Note that calling this method with mark the * CompoundMatrix as changed. Therefore, only use this method if * you are intending to change the Matrix that you receive. */ SmartPtr GetCompNonConst(Index irow, Index jcol) { ObjectChanged(); return Comp(irow, jcol); } /** Number of block rows of this compound matrix. */ inline Index NComps_Rows() const; /** Number of block colmuns of this compound matrix. */ inline Index NComps_Cols() const; protected: /**@name Methods overloaded from Matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** X = beta*X + alpha*(Matrix S^{-1} Z). Specialized implementation. */ virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** X = S^{-1} (r + alpha*Z*M^Td). Specialized implementation. */ virtual void SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CompoundMatrix(); /** Copy Constructor */ CompoundMatrix(const CompoundMatrix&); /** Overloaded Equals Operator */ void operator=(const CompoundMatrix&); //@} /** Matrix of matrix's containing the components */ std::vector > > comps_; /** Matrix of const matrix's containing the components */ std::vector > > const_comps_; /** Copy of the owner_space ptr as a CompoundMatrixSpace instead * of MatrixSpace */ const CompoundMatrixSpace* owner_space_; /** boolean indicating if the compound matrix is in a "valid" state */ mutable bool matrices_valid_; /** Method to check whether or not the matrices are valid */ bool MatricesValid() const; inline const Matrix* ConstComp(Index irow, Index jcol) const; inline Matrix* Comp(Index irow, Index jcol); }; /** This is the matrix space for CompoundMatrix. Before a CompoundMatrix * can be created, at least one MatrixSpace has to be set per block * row and column. Individual component MatrixSpace's can be set * with the SetComp method. */ class CompoundMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of row and columns blocks, as * well as the totel number of rows and columns. */ CompoundMatrixSpace(Index ncomps_rows, Index ncomps_cols, Index total_nRows, Index total_nCols); /** Destructor */ ~CompoundMatrixSpace() {} //@} /** @name Methods for setting information about the components. */ //@{ /** Set the number nrows of rows in row-block number irow. */ void SetBlockRows(Index irow, Index nrows); /** Set the number ncols of columns in column-block number jcol. */ void SetBlockCols(Index jcol, Index ncols); /** Get the number nrows of rows in row-block number irow. */ Index GetBlockRows(Index irow) const; /** Set the number ncols of columns in column-block number jcol. */ Index GetBlockCols(Index jcol) const; /** Set the component MatrixSpace. If auto_allocate is true, then * a new CompoundMatrix created later with MakeNew will have this * component automatically created with the Matrix's MakeNew. * Otherwise, the corresponding component will be NULL and has to * be set with the SetComp methods of the CompoundMatrix. */ void SetCompSpace(Index irow, Index jcol, const MatrixSpace& mat_space, bool auto_allocate = false); //@} /** Obtain the component MatrixSpace in block row irow and block * column jcol. */ SmartPtr GetCompSpace(Index irow, Index jcol) const { DBG_ASSERT(irow > > comp_spaces_; /** 2-dim std::vector of booleans deciding whether to * allocate a new matrix for the blocks automagically */ std::vector > allocate_block_; /** Vector of the number of rows in each comp column */ std::vector block_rows_; /** Vector of the number of cols in each comp row */ std::vector block_cols_; /** true if the CompoundMatrixSpace only has Matrix spaces along the diagonal. * this means that the CompoundMatrix will only have matrices along the * diagonal and it could make some operations more efficient */ bool diagonal_; /** Auxilliary function for debugging to set if all block * dimensions have been set. */ bool DimensionsSet() const; }; /* inline methods */ inline Index CompoundMatrix::NComps_Rows() const { return owner_space_->NComps_Rows(); } inline Index CompoundMatrix::NComps_Cols() const { return owner_space_->NComps_Cols(); } inline const Matrix* CompoundMatrix::ConstComp(Index irow, Index jcol) const { DBG_ASSERT(irow < NComps_Rows()); DBG_ASSERT(jcol < NComps_Cols()); if (IsValid(comps_[irow][jcol])) { return GetRawPtr(comps_[irow][jcol]); } else if (IsValid(const_comps_[irow][jcol])) { return GetRawPtr(const_comps_[irow][jcol]); } return NULL; } inline Matrix* CompoundMatrix::Comp(Index irow, Index jcol) { DBG_ASSERT(irow < NComps_Rows()); DBG_ASSERT(jcol < NComps_Cols()); return GetRawPtr(comps_[irow][jcol]); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpMatrix.hpp0000644000076600007660000002455012141450650016653 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMatrix.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPMATRIX_HPP__ #define __IPMATRIX_HPP__ #include "IpVector.hpp" namespace Ipopt { /* forward declarations */ class MatrixSpace; /** Matrix Base Class. This is the base class for all derived matrix * types. All Matrices, such as Jacobian and Hessian matrices, as * well as possibly the iteration matrices needed for the step * computation, are of this type. * * Deriving from Matrix: Overload the protected XXX_Impl method. */ class Matrix : public TaggedObject { public: /** @name Constructor/Destructor */ //@{ /** Constructor. It has to be given a pointer to the * corresponding MatrixSpace. */ Matrix(const MatrixSpace* owner_space) : TaggedObject(), owner_space_(owner_space) {} /** Destructor */ virtual ~Matrix() {} //@} /**@name Operations of the Matrix on a Vector */ //@{ /** Matrix-vector multiply. Computes y = alpha * Matrix * x + * beta * y. Do not overload. Overload MultVectorImpl instead. */ void MultVector(Number alpha, const Vector& x, Number beta, Vector& y) const { MultVectorImpl(alpha, x, beta, y); } /** Matrix(transpose) vector multiply. Computes y = alpha * * Matrix^T * x + beta * y. Do not overload. Overload * TransMultVectorImpl instead. */ void TransMultVector(Number alpha, const Vector& x, Number beta, Vector& y) const { TransMultVectorImpl(alpha, x, beta, y); } //@} /** @name Methods for specialized operations. A prototype * implementation is provided, but for efficient implementation * those should be specially implemented. */ //@{ /** X = X + alpha*(Matrix S^{-1} Z). Should be implemented * efficiently for the ExansionMatrix */ void AddMSinvZ(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** X = S^{-1} (r + alpha*Z*M^Td). Should be implemented * efficiently for the ExansionMatrix */ void SinvBlrmZMTdBr(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const; //@} /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ bool HasValidNumbers() const; /** @name Information about the size of the matrix */ //@{ /** Number of rows */ inline Index NRows() const; /** Number of columns */ inline Index NCols() const; //@} /** @name Norms of the individual rows and columns */ //@{ /** Compute the max-norm of the rows in the matrix. The result is * stored in rows_norms. The vector is assumed to be initialized * of init is false. */ void ComputeRowAMax(Vector& rows_norms, bool init=true) const { DBG_ASSERT(NRows() == rows_norms.Dim()); if (init) rows_norms.Set(0.); ComputeRowAMaxImpl(rows_norms, init); } /** Compute the max-norm of the columns in the matrix. The result * is stored in cols_norms The vector is assumed to be initialized * of init is false. */ void ComputeColAMax(Vector& cols_norms, bool init=true) const { DBG_ASSERT(NCols() == cols_norms.Dim()); if (init) cols_norms.Set(0.); ComputeColAMaxImpl(cols_norms, init); } //@} /** Print detailed information about the matrix. Do not overload. * Overload PrintImpl instead. */ //@{ virtual void Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const; virtual void Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const; //@} /** Return the owner MatrixSpace*/ inline SmartPtr OwnerSpace() const; protected: /** @name implementation methods (derived classes MUST * overload these pure virtual protected methods. */ //@{ /** Matrix-vector multiply. Computes y = alpha * Matrix * x + * beta * y */ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const =0; /** Matrix(transpose) vector multiply. * Computes y = alpha * Matrix^T * x + beta * y */ virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const =0; /** X = X + alpha*(Matrix S^{-1} Z). Prototype for this * specialize method is provided, but for efficient * implementation it should be overloaded for the expansion matrix. */ virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** X = S^{-1} (r + alpha*Z*M^Td). Should be implemented * efficiently for the ExpansionMatrix. */ virtual void SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). A default implementation always returning true * is provided, but if possible it should be implemented. */ virtual bool HasValidNumbersImpl() const { return true; } /** Compute the max-norm of the rows in the matrix. The result is * stored in rows_norms. The vector is assumed to be * initialized. */ virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const = 0; /** Compute the max-norm of the columns in the matrix. The result * is stored in cols_norms. The vector is assumed to be * initialized. */ virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const = 0; /** Print detailed information about the matrix. */ virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const =0; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** default constructor */ Matrix(); /** Copy constructor */ Matrix(const Matrix&); /** Overloaded Equals Operator */ Matrix& operator=(const Matrix&); //@} const SmartPtr owner_space_; /**@name CachedResults data members */ //@{ mutable TaggedObject::Tag valid_cache_tag_; mutable bool cached_valid_; //@} }; /** MatrixSpace base class, corresponding to the Matrix base class. * For each Matrix implementation, a corresponding MatrixSpace has * to be implemented. A MatrixSpace is able to create new Matrices * of a specific type. The MatrixSpace should also store * information that is common to all Matrices of that type. For * example, the dimensions of a Matrix is stored in the MatrixSpace * base class. */ class MatrixSpace : public ReferencedObject { public: /** @name Constructors/Destructors */ //@{ /** Constructor, given the number rows and columns of all matrices * generated by this MatrixSpace. */ MatrixSpace(Index nRows, Index nCols) : nRows_(nRows), nCols_(nCols) {} /** Destructor */ virtual ~MatrixSpace() {} //@} /** Pure virtual method for creating a new Matrix of the * corresponding type. */ virtual Matrix* MakeNew() const=0; /** Accessor function for the number of rows. */ Index NRows() const { return nRows_; } /** Accessor function for the number of columns. */ Index NCols() const { return nCols_; } /** Method to test if a given matrix belongs to a particular * matrix space. */ bool IsMatrixFromSpace(const Matrix& matrix) const { return (matrix.OwnerSpace() == this); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** default constructor */ MatrixSpace(); /** Copy constructor */ MatrixSpace(const MatrixSpace&); /** Overloaded Equals Operator */ MatrixSpace& operator=(const MatrixSpace&); //@} /** Number of rows for all matrices of this type. */ const Index nRows_; /** Number of columns for all matrices of this type. */ const Index nCols_; }; /* Inline Methods */ inline Index Matrix::NRows() const { return owner_space_->NRows(); } inline Index Matrix::NCols() const { return owner_space_->NCols(); } inline SmartPtr Matrix::OwnerSpace() const { return owner_space_; } } // namespace Ipopt // Macro definitions for debugging matrices #if COIN_IPOPT_VERBOSITY == 0 # define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat) #else # define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat) \ if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \ if (dbg_jrnl.Jnlst()!=NULL) { \ (__mat).Print(dbg_jrnl.Jnlst(), \ J_ERROR, J_DBG, \ __mat_name, \ dbg_jrnl.IndentationLevel()*2, \ "# "); \ } \ } #endif // #if COIN_IPOPT_VERBOSITY == 0 #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpSumMatrix.hpp0000644000076600007660000001145111504216567017345 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSumMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSUMMATRIX_HPP__ #define __IPSUMMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class SumMatrixSpace; /** Class for Matrices which are sum of matrices. * For each term in the we store the matrix and a factor. */ class SumMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ SumMatrix(const SumMatrixSpace* owner_space); /** Destructor */ virtual ~SumMatrix(); //@} /** Method for setting term iterm for the sum. */ void SetTerm(Index iterm, Number factor, const Matrix& matrix); /** Method for getting term iterm for the sum. Note that counting * of terms starts at 0. */ void GetTerm(Index iterm, Number& factor, SmartPtr& matrix) const; /** Return the number of terms */ Index NTerms() const; protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ SumMatrix(); /** Copy Constructor */ SumMatrix(const SumMatrix&); /** Overloaded Equals Operator */ void operator=(const SumMatrix&); //@} /** std::vector storing the factors for each term. */ std::vector factors_; /** std::vector storing the matrices for each term. */ std::vector > matrices_; /** Copy of the owner_space as a SumMatrixSpace */ const SumMatrixSpace* owner_space_; }; /** Class for matrix space for SumMatrix. */ class SumMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of row and columns, as well as * the number of terms in the sum. */ SumMatrixSpace(Index nrows, Index ncols, Index nterms) : MatrixSpace(nrows, ncols), nterms_(nterms) {} /** Destructor */ virtual ~SumMatrixSpace() {} //@} /** Accessor functions to get the number of terms in the sum. */ Index NTerms() const { return nterms_; } /** Set the appropriate matrix space for each term. This must * be called for each term or a runtime error will occur */ void SetTermSpace(Index term_idx, const MatrixSpace& mat_space); /** Get the matrix space for a particular term */ SmartPtr GetTermSpace(Index term_idx) const; /** Method for creating a new matrix of this specific type. */ SumMatrix* MakeNewSumMatrix() const; /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ SumMatrixSpace(); /** Copy Constructor */ SumMatrixSpace(const SumMatrixSpace&); /** Overloaded Equals Operator */ SumMatrixSpace& operator=(const SumMatrixSpace&); //@} const Index nterms_; std::vector< SmartPtr > term_spaces_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpDenseVector.cpp0000644000076600007660000007371611504216567017644 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDenseVector.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpDenseVector.hpp" #include "IpBlas.hpp" #include "IpUtils.hpp" #include "IpDebug.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif DenseVector::DenseVector(const DenseVectorSpace* owner_space) : Vector(owner_space), owner_space_(owner_space), values_(NULL), expanded_values_(NULL), initialized_(false) { DBG_START_METH("DenseVector::DenseVector(Index dim)", dbg_verbosity); if (Dim() == 0) { initialized_ = true; homogeneous_ = false; } } DenseVector::~DenseVector() { DBG_START_METH("DenseVector::~DenseVector()", dbg_verbosity); if (values_) { owner_space_->FreeInternalStorage(values_); } if (expanded_values_) { owner_space_->FreeInternalStorage(expanded_values_); } } void DenseVector::SetValues(const Number* x) { initialized_ = true; IpBlasDcopy(Dim(), x, 1, values_allocated(), 1); homogeneous_ = false; // This is not an overloaded method from // Vector. Here, we must call ObjectChanged() // manually. ObjectChanged(); } const Number* DenseVector::ExpandedValues() const { if (IsHomogeneous()) { if (!expanded_values_) { expanded_values_ = owner_space_->AllocateInternalStorage(); } IpBlasDcopy(Dim(), &scalar_, 0, expanded_values_, 1); return expanded_values_; } else { return values_; } } void DenseVector::set_values_from_scalar() { DBG_ASSERT(homogeneous_); initialized_ = true; homogeneous_ = false; Number* vals = values_allocated(); IpBlasDcopy(Dim(), &scalar_, 0, vals, 1); } void DenseVector::CopyImpl(const Vector& x) { DBG_START_METH("DenseVector::CopyImpl(const Vector& x)", dbg_verbosity); const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); DBG_ASSERT(Dim() == dense_x->Dim()); homogeneous_ = dense_x->homogeneous_; if (homogeneous_) { scalar_ = dense_x->scalar_; } else { IpBlasDcopy(Dim(), dense_x->values_, 1, values_allocated(), 1); } initialized_=true; } void DenseVector::ScalImpl(Number alpha) { DBG_ASSERT(initialized_); if (homogeneous_) { scalar_ *= alpha; } else { IpBlasDscal(Dim(), alpha, values_, 1); } } void DenseVector::AxpyImpl(Number alpha, const Vector &x) { DBG_ASSERT(initialized_); const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { scalar_ += alpha * dense_x->scalar_; } else { homogeneous_ = false; Number* vals = values_allocated(); for (Index i=0; ivalues_[i]; } } } else { if (dense_x->homogeneous_) { if (dense_x->scalar_!=0.) { IpBlasDaxpy(Dim(), alpha, &dense_x->scalar_, 0, values_, 1); } } else { IpBlasDaxpy(Dim(), alpha, dense_x->values_, 1, values_, 1); } } } Number DenseVector::DotImpl(const Vector &x) const { DBG_ASSERT(initialized_); Number retValue; const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { retValue = Dim() * scalar_ * dense_x->scalar_; } else { retValue = IpBlasDdot(Dim(), dense_x->values_, 1, &scalar_, 0); } } else { if (dense_x->homogeneous_) { retValue = IpBlasDdot(Dim(), &dense_x->scalar_, 0, values_, 1); } else { retValue = IpBlasDdot(Dim(), dense_x->values_, 1, values_, 1); } } return retValue; } Number DenseVector::Nrm2Impl() const { DBG_ASSERT(initialized_); if (homogeneous_) { return sqrt((double)Dim()) * fabs(scalar_); } else { return IpBlasDnrm2(Dim(), values_, 1); } } Number DenseVector::AsumImpl() const { DBG_ASSERT(initialized_); if (homogeneous_) { return Dim() * fabs(scalar_); } else { return IpBlasDasum(Dim(), values_, 1); } } Number DenseVector::AmaxImpl() const { DBG_ASSERT(initialized_); if (Dim()==0) { return 0.; } else { if (homogeneous_) { return fabs(scalar_); } else { return fabs(values_[IpBlasIdamax(Dim(), values_, 1)-1]); } } } void DenseVector::SetImpl(Number value) { initialized_ = true; homogeneous_ = true; scalar_ = value; // ToDo decide if we want this here: if (values_) { owner_space_->FreeInternalStorage(values_); values_ = NULL; } } void DenseVector::ElementWiseDivideImpl(const Vector& x) { DBG_ASSERT(initialized_); const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); const Number* values_x = dense_x->values_; DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { scalar_ /= dense_x->scalar_; } else { homogeneous_ = false; Number* vals = values_allocated(); for (Index i=0; ihomogeneous_) { for (Index i=0; iscalar_; } } else { for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); const Number* values_x = dense_x->values_; DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { scalar_ *= dense_x->scalar_; } else { homogeneous_ = false; Number* vals = values_allocated(); for (Index i=0; ihomogeneous_) { if (dense_x->scalar_ != 1.0) { for (Index i=0; iscalar_; } } } else { for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); const Number* values_x = dense_x->values_; DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { scalar_ = Ipopt::Max(scalar_, dense_x->scalar_); } else { homogeneous_ = false; Number* vals = values_allocated(); for (Index i=0; ihomogeneous_) { for (Index i=0; iscalar_); } } else { for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); DBG_ASSERT(dense_x->initialized_); const Number* values_x = dense_x->values_; DBG_ASSERT(Dim() == dense_x->Dim()); if (homogeneous_) { if (dense_x->homogeneous_) { scalar_ = Ipopt::Min(scalar_, dense_x->scalar_); } else { homogeneous_ = false; Number* vals = values_allocated(); for (Index i=0; ihomogeneous_) { for (Index i=0; iscalar_); } } else { for (Index i=0; i::max(); } Number max; if (homogeneous_) { max = scalar_; } else { max = values_[0]; for (Index i=1; i::max(); } Number min; if (homogeneous_) { min = scalar_; } else { min = values_[0]; for (Index i=1; i 0.) { scalar_ = 1.; } else if (scalar_ < 0.) { scalar_ = -1.; } else { scalar_ = 0.; } } else { for (Index i=0; i 0.) { values_[i] = 1.; } else if (values_[i] < 0.) { values_[i] = -1.; } else { values_[i] = 0; } } } } // Specialized Functions void DenseVector::AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c) { const Number* values_v1=NULL; bool homogeneous_v1=false; Number scalar_v1 = 0; if (a!=0.) { const DenseVector* dense_v1 = static_cast(&v1); DBG_ASSERT(dynamic_cast(&v1)); DBG_ASSERT(dense_v1->initialized_); DBG_ASSERT(Dim() == dense_v1->Dim()); values_v1=dense_v1->values_; homogeneous_v1=dense_v1->homogeneous_; if (homogeneous_v1) scalar_v1 = dense_v1->scalar_; } const Number* values_v2=NULL; bool homogeneous_v2=false; Number scalar_v2 = 0; if (b!=0.) { const DenseVector* dense_v2 = static_cast(&v2); DBG_ASSERT(dynamic_cast(&v2)); DBG_ASSERT(dense_v2->initialized_); DBG_ASSERT(Dim() == dense_v2->Dim()); values_v2=dense_v2->values_; homogeneous_v2=dense_v2->homogeneous_; if (homogeneous_v2) scalar_v2 = dense_v2->scalar_; } DBG_ASSERT(c==0. || initialized_); if ((c==0. || homogeneous_) && homogeneous_v1 && homogeneous_v2 ) { homogeneous_ = true; Number val = 0; if (c!=0.) { val = c*scalar_; } scalar_ = val + a*scalar_v1 + b*scalar_v2; initialized_ = true; return; } if (c==0.) { // make sure we have memory allocated for this vector values_allocated(); homogeneous_ = false; } // If any of the vectors is homogeneous, call the default implementation if ( homogeneous_ || homogeneous_v1 || homogeneous_v2) { // ToDo:Should we implement specialized methods here too? Vector::AddTwoVectorsImpl(a, v1, b, v2, c); return; } // I guess I'm going over board here, but it might be best to // capture all cases for a, b, and c separately... if (c==0 ) { if (a==1.) { if (b==0.) { IpBlasDcopy(Dim(), values_v1, 1, values_, 1); } else if (b==1.) { for (Index i=0; i=0.); const DenseVector* dense_delta = static_cast(&delta); DBG_ASSERT(dynamic_cast(&delta)); Number alpha = 1.; Number* values_x = values_; Number* values_delta = dense_delta->values_; if (homogeneous_) { if (dense_delta->homogeneous_) { if (dense_delta->scalar_<0.) { alpha = Ipopt::Min(alpha, -tau/dense_delta->scalar_ * scalar_); } } else { for (Index i=0; ihomogeneous_) { if (dense_delta->scalar_<0.) { for (Index i=0; iscalar_ * values_x[i]); } } } else { for (Index i=0; i=0.); return alpha; } void DenseVector::AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c) { DBG_ASSERT(Dim()==z.Dim()); DBG_ASSERT(Dim()==s.Dim()); const DenseVector* dense_z = static_cast(&z); DBG_ASSERT(dynamic_cast(&z)); const DenseVector* dense_s = static_cast(&s); DBG_ASSERT(dynamic_cast(&s)); DBG_ASSERT(dense_z->initialized_); DBG_ASSERT(dense_s->initialized_); DBG_ASSERT(c==0. || initialized_); bool homogeneous_z = dense_z->homogeneous_; bool homogeneous_s = dense_s->homogeneous_; if ((c==0. || homogeneous_) && homogeneous_z && homogeneous_s) { if (c==0.) { scalar_ = a * dense_z->scalar_ / dense_s->scalar_; } else { scalar_ = c * scalar_ + a * dense_z->scalar_ / dense_s->scalar_; } initialized_ = true; homogeneous_ = true; if (values_) { owner_space_->FreeInternalStorage(values_); values_ = NULL; } return; } // At least one is not homogeneous // Make sure we have memory to store a non-homogeneous vector values_allocated(); Number* values_z = dense_z->values_; Number* values_s = dense_s->values_; if (c==0.) { if (homogeneous_z) { // then s is not homogeneous for (Index i=0; iscalar_ / values_s[i]; } } else if (homogeneous_s) { // then z is not homogeneous for (Index i=0; iscalar_; } } else { for (Index i=0; iscalar_ / values_s[i]; } } else if (homogeneous_s) { // then z is not homogeneous for (Index i=0; iscalar_; } } else { for (Index i=0; iscalar_/dense_s->scalar_; } } else { for (Index i=0; iscalar_/values_s[i]; } } } else { if (homogeneous_s) { for (Index i=0; iscalar_; } } else { for (Index i=0; i(&x); DBG_ASSERT(dynamic_cast(&x)); Number* vals = values_allocated(); homogeneous_ = false; if (dense_x->homogeneous_) { IpBlasDcopy(dim_x, &scalar_, 0, vals+Pos, 1); } else { IpBlasDcopy(dim_x, dense_x->values_, 1, vals+Pos, 1); } initialized_ = true; ObjectChanged(); } void DenseVector::CopyFromPos(Index Pos, const Vector& x) { DBG_ASSERT(Dim()+Pos<=x.Dim()); const DenseVector* dense_x = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); if (dense_x->IsHomogeneous()) { Set(dense_x->Scalar()); } else { IpBlasDcopy(Dim(), dense_x->Values()+Pos, 1, Values(), 1); initialized_ = true; ObjectChanged(); } } void DenseVector::PrintImplOffset(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix, Index offset /* = 1 */) const { jnlst.PrintfIndented(level, category, indent, "%sDenseVector \"%s\" with %d elements:\n", prefix.c_str(), name.c_str(), Dim()); if (initialized_) { if (homogeneous_) { jnlst.PrintfIndented(level, category, indent, "%sHomogeneous vector, all elements have value %23.16e\n", prefix.c_str(), scalar_); } else { if (owner_space_->HasStringMetaData("idx_names")) { const std::vector& idx_names = owner_space_->GetStringMetaData("idx_names"); for (Index i=0; i // Prototypes for the BLAS routines extern "C" { /** BLAS Fortran function DDOT */ double F77_FUNC(ddot,DDOT)(ipfint *n, const double *x, ipfint *incX, const double *y, ipfint *incY); /** BLAS Fortran function DNRM2 */ double F77_FUNC(dnrm2,DNRM2)(ipfint *n, const double *x, ipfint *incX); /** BLAS Fortran function DASUM */ double F77_FUNC(dasum,DASUM)(ipfint *n, const double *x, ipfint *incX); /** BLAS Fortran function IDAMAX */ ipfint F77_FUNC(idamax,IDAMAX)(ipfint *n, const double *x, ipfint *incX); /** BLAS Fortran subroutine DCOPY */ void F77_FUNC(dcopy,DCOPY)(ipfint *n, const double *x, ipfint *incX, double *y, ipfint *incY); /** BLAS Fortran subroutine DAXPY */ void F77_FUNC(daxpy,DAXPY)(ipfint *n, const double *alpha, const double *x, ipfint *incX, double *y, ipfint *incY); /** BLAS Fortran subroutine DSCAL */ void F77_FUNC(dscal,DSCAL)(ipfint *n, const double *alpha, const double *x, ipfint *incX); void F77_FUNC(dgemv,DGEMV)(char* trans, ipfint *m, ipfint *n, const double *alpha, const double *a, ipfint *lda, const double *x, ipfint *incX, const double *beta, double *y, ipfint *incY, int trans_len); void F77_FUNC(dsymv,DSYMV)(char* uplo, ipfint *n, const double *alpha, const double *a, ipfint *lda, const double *x, ipfint *incX, const double *beta, double *y, ipfint *incY, int uplo_len); void F77_FUNC(dgemm,DGEMM)(char* transa, char* transb, ipfint *m, ipfint *n, ipfint *k, const double *alpha, const double *a, ipfint *lda, const double *b, ipfint *ldb, const double *beta, double *c, ipfint *ldc, int transa_len, int transb_len); void F77_FUNC(dsyrk,DSYRK)(char* uplo, char* trans, ipfint *n, ipfint *k, const double *alpha, const double *a, ipfint *lda, const double *beta, double *c, ipfint *ldc, int uplo_len, int trans_len); void F77_FUNC(dtrsm,DTRSM)(char* side, char* uplo, char* transa, char* diag, ipfint *m, ipfint *n, const double *alpha, const double *a, ipfint *lda, const double *b, ipfint *ldb, int side_len, int uplo_len, int transa_len, int diag_len); } namespace Ipopt { #ifndef HAVE_CBLAS /* Interface to FORTRAN routine DDOT. */ Number IpBlasDdot(Index size, const Number *x, Index incX, const Number *y, Index incY) { if (incX > 0 && incY > 0) { ipfint n=size, INCX=incX, INCY=incY; return F77_FUNC(ddot,DDOT)(&n, x, &INCX, y, &INCY); } else { Number s = 0.0; for (; size; --size, x += incX, y += incY) s += *x * *y; return s; } } /* Interface to FORTRAN routine DNRM2. */ Number IpBlasDnrm2(Index size, const Number *x, Index incX) { ipfint n=size, INCX=incX; return F77_FUNC(dnrm2,DNRM2)(&n, x, &INCX); } /* Interface to FORTRAN routine DASUM. */ Number IpBlasDasum(Index size, const Number *x, Index incX) { ipfint n=size, INCX=incX; return F77_FUNC(dasum,DASUM)(&n, x, &INCX); } /* Interface to FORTRAN routine IDAMAX. */ Index IpBlasIdamax(Index size, const Number *x, Index incX) { ipfint n=size, INCX=incX; return (Index) F77_FUNC(idamax,IDAMAX)(&n, x, &INCX); } /* Interface to FORTRAN routine DCOPY. */ void IpBlasDcopy(Index size, const Number *x, Index incX, Number *y, Index incY) { if (incX > 0) { ipfint N=size, INCX=incX, INCY=incY; F77_FUNC(dcopy,DCOPY)(&N, x, &INCX, y, &INCY); } else if (incY == 1) { for (; size; --size, ++y) *y = *x; } else { for (; size; --size, y += incY) *y = *x; } } /* Interface to FORTRAN routine DAXPY. */ void IpBlasDaxpy(Index size, Number alpha, const Number *x, Index incX, Number *y, Index incY) { if (incX > 0) { ipfint N=size, INCX=incX, INCY=incY; F77_FUNC(daxpy,DAXPY)(&N, &alpha, x, &INCX, y, &INCY); } else if (incY == 1) { for (; size; --size, ++y) *y += alpha * *x; } else { for (; size; --size, y += incY) *y += alpha * *x; } } /* Interface to FORTRAN routine DSCAL. */ void IpBlasDscal(Index size, Number alpha, Number *x, Index incX) { ipfint N=size, INCX=incX; F77_FUNC(dscal,DSCAL)(&N, &alpha, x, &INCX); } void IpBlasDgemv(bool trans, Index nRows, Index nCols, Number alpha, const Number* A, Index ldA, const Number* x, Index incX, Number beta, Number* y, Index incY) { ipfint M=nCols, N=nRows, LDA=ldA, INCX=incX, INCY=incY; char TRANS; if (trans) { TRANS = 'T'; } else { TRANS = 'N'; } F77_FUNC(dgemv,DGEMV)(&TRANS, &M, &N, &alpha, A, &LDA, x, &INCX, &beta, y, &INCY, 1); } void IpBlasDsymv(Index n, Number alpha, const Number* A, Index ldA, const Number* x, Index incX, Number beta, Number* y, Index incY) { ipfint N=n, LDA=ldA, INCX=incX, INCY=incY; char UPLO='L'; F77_FUNC(dsymv,DSYMV)(&UPLO, &N, &alpha, A, &LDA, x, &INCX, &beta, y, &INCY, 1); } void IpBlasDgemm(bool transa, bool transb, Index m, Index n, Index k, Number alpha, const Number* A, Index ldA, const Number* B, Index ldB, Number beta, Number* C, Index ldC) { ipfint M=m, N=n, K=k, LDA=ldA, LDB=ldB, LDC=ldC; char TRANSA; if (transa) { TRANSA = 'T'; } else { TRANSA = 'N'; } char TRANSB; if (transb) { TRANSB = 'T'; } else { TRANSB = 'N'; } F77_FUNC(dgemm,DGEMM)(&TRANSA, &TRANSB, &M, &N, &K, &alpha, A, &LDA, B, &LDB, &beta, C, &LDC, 1, 1); } void IpBlasDsyrk(bool trans, Index ndim, Index nrank, Number alpha, const Number* A, Index ldA, Number beta, Number* C, Index ldC) { ipfint N=ndim, K=nrank, LDA=ldA, LDC=ldC; char UPLO='L'; char TRANS; if (trans) { TRANS = 'T'; } else { TRANS = 'N'; } F77_FUNC(dsyrk,DSYRK)(&UPLO, &TRANS, &N, &K, &alpha, A, &LDA, &beta, C, &LDC, 1, 1); } void IpBlasDtrsm(bool trans, Index ndim, Index nrhs, Number alpha, const Number* A, Index ldA, Number* B, Index ldB) { ipfint M=ndim, N=nrhs, LDA=ldA, LDB=ldB; char SIDE = 'L'; char UPLO = 'L'; char TRANSA; if (trans) { TRANSA = 'T'; } else { TRANSA = 'N'; } char DIAG = 'N'; F77_FUNC(dtrsm,DTRSM)(&SIDE, &UPLO, &TRANSA, &DIAG, &M, &N, &alpha, A, &LDA, B, &LDB, 1, 1, 1, 1); } #else /* Interface to CBLAS routine DDOT. */ Number IpBlasDdot(Index size, const Number *x, Index incX, const Number *y, Index incY) { Not Implemented Yet! } /* Interface to CBLAS routine DNRM2. */ Number IpBlasDnrm2(Index size, const Number *x, Index incX) { Not Implemented Yet! } /* Interface to CBLAS routine DASUM. */ Number IpBlasDasum(Index size, const Number *x, Index incX) { Not Implemented Yet! } /* Interface to CBLAS routine DASUM. */ Index IpBlasIdamax(Index size, const Number *x, Index incX) { Not Implemented Yet! } /* Interface to CBLAS routine DCOPY. */ void IpBlasDcopy(Index size, const Number *x, Index incX, Number *y, Index incY) { Not Implemented Yet! } /* Interface to CBLAS routine DAXPY. */ void IpBlasDaxpy(Index size, Number alpha, const Number *x, Index incX, Number *y, Index incY) { Not Implemented Yet! } /* Interface to CBLAS routine DSCAL. */ void IpBlasDscal(Index size, Number alpha, Number *x, Index incX) { Not Implemented Yet! } #endif } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpZeroMatrix.hpp0000644000076600007660000000657411504216567017532 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpZeroMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPZEROMATRIX_HPP__ #define __IPZEROMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /** Class for Matrices with only zero entries. */ class ZeroMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the corresponding matrix space. */ ZeroMatrix(const MatrixSpace* owner_space); /** Destructor */ ~ZeroMatrix(); //@} protected: /**@name Methods overloaded from matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const {} virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const {} virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ZeroMatrix(); /** Copy Constructor */ ZeroMatrix(const ZeroMatrix&); /** Overloaded Equals Operator */ void operator=(const ZeroMatrix&); //@} }; /** Class for matrix space for ZeroMatrix. */ class ZeroMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of row and columns. */ ZeroMatrixSpace(Index nrows, Index ncols) : MatrixSpace(nrows, ncols) {} /** Destructor */ virtual ~ZeroMatrixSpace() {} //@} /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewZeroMatrix(); } /** Method for creating a new matrix of this specific type. */ ZeroMatrix* MakeNewZeroMatrix() const { return new ZeroMatrix(this); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ZeroMatrixSpace(); /** Copy Constructor */ ZeroMatrixSpace(const ZeroMatrixSpace&); /** Overloaded Equals Operator */ void operator=(const ZeroMatrixSpace&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpSumMatrix.cpp0000644000076600007660000001146511504216567017345 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSumMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpSumMatrix.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { SumMatrix::SumMatrix(const SumMatrixSpace* owner_space) : Matrix(owner_space), factors_(owner_space->NTerms(), 1.0), matrices_(owner_space->NTerms()), owner_space_(owner_space) {} SumMatrix::~SumMatrix() {} void SumMatrix::SetTerm(Index iterm, Number factor, const Matrix& matrix) { DBG_ASSERT(itermNTerms()); factors_[iterm] = factor; matrices_[iterm] = &matrix; } void SumMatrix::GetTerm(Index iterm, Number& factor, SmartPtr& matrix) const { DBG_ASSERT(itermNTerms()); factor = factors_[iterm]; matrix = matrices_[iterm]; } Index SumMatrix::NTerms() const { return owner_space_->NTerms(); } void SumMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for (Index iterm=0; itermMultVector(alpha*factors_[iterm], x, 1.0, y); } } void SumMatrix::TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const { // A few sanity checks DBG_ASSERT(NRows()==x.Dim()); DBG_ASSERT(NCols()==y.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } for (Index iterm=0; itermTransMultVector(alpha*factors_[iterm], x, 1.0, y); } } bool SumMatrix::HasValidNumbersImpl() const { for (Index iterm=0; itermHasValidNumbers()) { return false; } } return true; } void SumMatrix::ComputeRowAMaxImpl(Vector& rows_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "SumMatrix::ComputeRowAMaxImpl not implemented"); } void SumMatrix::ComputeColAMaxImpl(Vector& cols_norms, bool init) const { THROW_EXCEPTION(UNIMPLEMENTED_LINALG_METHOD_CALLED, "SumMatrix::ComputeColAMaxImpl not implemented"); } void SumMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sSumMatrix \"%s\" of dimension %d x %d with %d terms:\n", prefix.c_str(), name.c_str(), NRows(), NCols(), NTerms()); for (Index iterm=0; itermPrint(&jnlst, level, category, name, indent+1, prefix); } } void SumMatrixSpace::SetTermSpace(Index term_idx, const MatrixSpace& mat_space) { while (term_idx >= (Index)term_spaces_.size()) { term_spaces_.push_back(NULL); } term_spaces_[term_idx] = &mat_space; } SmartPtr SumMatrixSpace::GetTermSpace(Index term_idx) const { if (term_idx >= 0 && term_idx < (Index)term_spaces_.size()) { return term_spaces_[term_idx]; } return NULL; } SumMatrix* SumMatrixSpace::MakeNewSumMatrix() const { DBG_ASSERT(nterms_ == (Index)term_spaces_.size()); return new SumMatrix(this); } Matrix* SumMatrixSpace::MakeNew() const { return MakeNewSumMatrix(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpScaledMatrix.hpp0000644000076600007660000001664411504216567020005 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpScaledMatrix.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSCALEDMATRIX_HPP__ #define __IPSCALEDMATRIX_HPP__ #include "IpUtils.hpp" #include "IpMatrix.hpp" namespace Ipopt { /* forward declarations */ class ScaledMatrixSpace; /** Class for a Matrix in conjunction with its scaling factors for * row and column scaling. Operations on the matrix are performed using * the scaled matrix. You can pull out the pointer to the * unscaled matrix for unscaled calculations. */ class ScaledMatrix : public Matrix { public: /**@name Constructors / Destructors */ //@{ /** Constructor, taking the owner_space. */ ScaledMatrix(const ScaledMatrixSpace* owner_space); /** Destructor */ ~ScaledMatrix(); //@} /** Set the unscaled matrix */ void SetUnscaledMatrix(const SmartPtr unscaled_matrix); /** Set the unscaled matrix in a non-const version */ void SetUnscaledMatrixNonConst(const SmartPtr& unscaled_matrix); /** Return the unscaled matrix in const form */ SmartPtr GetUnscaledMatrix() const; /** Return the unscaled matrix in non-const form */ SmartPtr GetUnscaledMatrixNonConst(); /** return the vector for the row scaling */ SmartPtr RowScaling() const; /** return the vector for the column scaling */ SmartPtr ColumnScaling() const; protected: /**@name Methods overloaded from Matrix */ //@{ virtual void MultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; virtual void TransMultVectorImpl(Number alpha, const Vector& x, Number beta, Vector& y) const; /** Method for determining if all stored numbers are valid (i.e., * no Inf or Nan). It is assumed that the scaling factors are * valid. */ virtual bool HasValidNumbersImpl() const; virtual void ComputeRowAMaxImpl(Vector& rows_norms, bool init) const; virtual void ComputeColAMaxImpl(Vector& cols_norms, bool init) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; /** X = beta*X + alpha*(Matrix S^{-1} Z). Specialized * implementation missing so far! */ virtual void AddMSinvZImpl(Number alpha, const Vector& S, const Vector& Z, Vector& X) const; /** X = S^{-1} (r + alpha*Z*M^Td). Specialized implementation * missing so far! */ virtual void SinvBlrmZMTdBrImpl(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Vector& D, Vector& X) const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ScaledMatrix(); /** Copy Constructor */ ScaledMatrix(const ScaledMatrix&); /** Overloaded Equals Operator */ void operator=(const ScaledMatrix&); //@} /** const version of the unscaled matrix */ SmartPtr matrix_; /** non-const version of the unscaled matrix */ SmartPtr nonconst_matrix_; /** Matrix space stored as a ScaledMatrixSpace */ SmartPtr owner_space_; }; /** This is the matrix space for ScaledMatrix. */ class ScaledMatrixSpace : public MatrixSpace { public: /** @name Constructors / Destructors */ //@{ /** Constructor, given the number of row and columns blocks, as * well as the totel number of rows and columns. */ ScaledMatrixSpace(const SmartPtr& row_scaling, bool row_scaling_reciprocal, const SmartPtr& unscaled_matrix_space, const SmartPtr& column_scaling, bool column_scaling_reciprocal); /** Destructor */ ~ScaledMatrixSpace() {} //@} /** Method for creating a new matrix of this specific type. */ ScaledMatrix* MakeNewScaledMatrix(bool allocate_unscaled_matrix = false) const { ScaledMatrix* ret = new ScaledMatrix(this); if (allocate_unscaled_matrix) { SmartPtr unscaled_matrix = unscaled_matrix_space_->MakeNew(); ret->SetUnscaledMatrixNonConst(unscaled_matrix); } return ret; } /** Overloaded MakeNew method for the MatrixSpace base class. */ virtual Matrix* MakeNew() const { return MakeNewScaledMatrix(); } /** return the vector for the row scaling */ SmartPtr RowScaling() const { return ConstPtr(row_scaling_); } /** return the matrix space for the unscaled matrix */ SmartPtr UnscaledMatrixSpace() const { return unscaled_matrix_space_; } /** return the vector for the column scaling */ SmartPtr ColumnScaling() const { return ConstPtr(column_scaling_); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ ScaledMatrixSpace(); /** Copy Constructor */ ScaledMatrixSpace(const ScaledMatrixSpace&); /** Overloaded Equals Operator */ ScaledMatrixSpace& operator=(const ScaledMatrixSpace&); //@} /** Row scaling vector */ SmartPtr row_scaling_; /** unscaled matrix space */ SmartPtr unscaled_matrix_space_; /** column scaling vector */ SmartPtr column_scaling_; }; inline void ScaledMatrix::SetUnscaledMatrix(const SmartPtr unscaled_matrix) { matrix_ = unscaled_matrix; nonconst_matrix_ = NULL; ObjectChanged(); } inline void ScaledMatrix::SetUnscaledMatrixNonConst(const SmartPtr& unscaled_matrix) { nonconst_matrix_ = unscaled_matrix; matrix_ = GetRawPtr(unscaled_matrix); ObjectChanged(); } inline SmartPtr ScaledMatrix::GetUnscaledMatrix() const { return matrix_; } inline SmartPtr ScaledMatrix::GetUnscaledMatrixNonConst() { DBG_ASSERT(IsValid(nonconst_matrix_)); ObjectChanged(); return nonconst_matrix_; } inline SmartPtr ScaledMatrix::RowScaling() const { return ConstPtr(owner_space_->RowScaling()); } inline SmartPtr ScaledMatrix::ColumnScaling() const { return ConstPtr(owner_space_->ColumnScaling()); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/LinAlg/IpZeroMatrix.cpp0000644000076600007660000000354711504216567017522 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpZeroMatrix.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpZeroMatrix.hpp" namespace Ipopt { ZeroMatrix::ZeroMatrix(const MatrixSpace* owner_space) : Matrix(owner_space) {} ZeroMatrix::~ZeroMatrix() {} void ZeroMatrix::MultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==x.Dim()); DBG_ASSERT(NRows()==y.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } } void ZeroMatrix::TransMultVectorImpl(Number alpha, const Vector &x, Number beta, Vector &y) const { // A few sanity checks DBG_ASSERT(NCols()==y.Dim()); DBG_ASSERT(NRows()==x.Dim()); // Take care of the y part of the addition if ( beta!=0.0 ) { y.Scal(beta); } else { y.Set(0.0); // In case y hasn't been initialized yet } } void ZeroMatrix::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { jnlst.Printf(level, category, "\n"); jnlst.PrintfIndented(level, category, indent, "%sZeroMatrix \"%s\" with %d row and %d column components:\n", prefix.c_str(), name.c_str(), NRows(), NCols()); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/LinAlg/IpVector.cpp0000644000076600007660000001120611504216567016647 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpVector.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpVector.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { void Vector::Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (IsValid(jnlst) && jnlst->ProduceOutput(level, category)) { PrintImpl(*jnlst, level, category, name, indent, prefix); } } void Vector::Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (jnlst.ProduceOutput(level, category)) { PrintImpl(jnlst, level, category, name, indent, prefix); } } /* Prototype implementation for specialized functions */ void Vector::AddTwoVectorsImpl(Number a, const Vector& v1, Number b, const Vector& v2, Number c) { if (c==0.) { if (a==1.) { Copy(v1); if (b!=0.) { Axpy(b, v2); } } else if (a==0.) { if (b==0.) { Set(0.); } else { Copy(v2); if (b!=1.) { Scal(b); } } } else { if (b==1.) { Copy(v2); Axpy(a, v1); } else if (b==0.) { Copy(v1); Scal(a); } else { Copy(v1); Scal(a); Axpy(b, v2); } } } else { /* c==0. */ if (c!=1.) { Scal(c); } if (a!=0.) { Axpy(a, v1); } if (b!=0.) { Axpy(b, v2); } } } Number Vector::FracToBoundImpl(const Vector& delta, Number tau) const { DBG_ASSERT(tau>=0.); DBG_ASSERT(Dim() == delta.Dim()); if (Dim() == 0 && delta.Dim() == 0) { return 1.0; } SmartPtr inv_alpha_bar = MakeNew(); inv_alpha_bar->AddOneVector(-1.0/tau, delta, 0.); inv_alpha_bar->ElementWiseDivide(*this); Number alpha = inv_alpha_bar->Max(); if (alpha > 0) { alpha = Ipopt::Min(1.0/alpha, 1.0); } else { alpha = 1.0; } return alpha; } // Need to put this here so that we don't need to include math.h in // the IpVector.hpp header file void Vector::Scal(Number alpha) { if (alpha!=1.) { TaggedObject::Tag old_tag = GetTag(); ScalImpl(alpha); ObjectChanged(); if (old_tag == nrm2_cache_tag_) { nrm2_cache_tag_ = GetTag(); cached_nrm2_ *= fabs(alpha); } if (old_tag == asum_cache_tag_) { asum_cache_tag_ = GetTag(); cached_asum_ *= fabs(alpha); } if (old_tag == amax_cache_tag_) { amax_cache_tag_ = GetTag(); cached_amax_ *= fabs(alpha); } if (old_tag == max_cache_tag_) { if (alpha>=0.) { max_cache_tag_ = GetTag(); cached_max_ *= alpha; } else if (alpha<0.) { min_cache_tag_ = GetTag(); cached_min_ = cached_max_ * alpha; } } if (old_tag == min_cache_tag_) { if (alpha>=0.) { min_cache_tag_ = GetTag(); cached_min_ *= alpha; } else if (alpha<0.) { max_cache_tag_ = GetTag(); cached_max_ = cached_min_ * alpha; } } if (old_tag == sum_cache_tag_) { sum_cache_tag_ = GetTag(); cached_sum_ *= alpha; } if (old_tag == sumlogs_cache_tag_) { sumlogs_cache_tag_ = GetTag(); cached_sumlogs_ += ((Number)Dim())*log(alpha); } } } void Vector::AddVectorQuotientImpl(Number a, const Vector& z, const Vector& s, Number c) { DBG_ASSERT(Dim() == z.Dim()); DBG_ASSERT(Dim() == s.Dim()); if (c==0.) { AddOneVector(a, z, 0.); ElementWiseDivide(s); } else { SmartPtr tmp = MakeNew(); tmp->Copy(z); tmp->ElementWiseDivide(s); AddOneVector(a, *tmp, c); } } bool Vector::HasValidNumbersImpl() const { Number sum = Asum(); return IsFiniteNumber(sum); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/0000755000076600007660000000000012214537465014474 5ustar coincoinIpopt-3.11.4/Ipopt/src/Common/config_default.h0000644000076600007660000000367612214316142017615 0ustar coincoin /* include the COIN-OR-wide system specific configure header */ #include "configall_system.h" /* include the public project specific macros */ #include "config_ipopt_default.h" /***************************************************************************/ /* HERE DEFINE THE PROJECT SPECIFIC PRIVATE MACROS */ /* These are only in effect in a setting that doesn't use configure */ /***************************************************************************/ /* Define to the debug sanity check level (0 is no test) */ #define COIN_IPOPT_CHECKLEVEL 0 /* Define to the debug verbosity level (0 is no output) */ #define COIN_IPOPT_VERBOSITY 0 /* If defined, the Ampl Solver Library is available. */ #define COIN_HAS_ASL 1 /* If defined, the BLAS Library is available. */ #define COIN_HAS_BLAS 1 /* If defined, the LAPACK Library is available. */ #define COIN_HAS_LAPACK 1 /* If defined, the HSL library is available. */ #define COIN_HAS_HSL 1 /* If defined, the METIS library is available. */ /* #undef COIN_HAS_METIS */ /* If defined, the MUMPS library is available. */ /* #undef COIN_HAS_MUMPS */ /* Define to 1 if the linear solver loader should be compiled to allow dynamic loading of shared libraries with linear solvers */ /* #undef HAVE_LINEARSOLVERLOADER */ /* Define to 1 if Pardiso is available */ /* #undef HAVE_PARDISO */ /* Define to 1 if you are using Pardiso from MKL */ /* #undef HAVE_PARDISO_MKL */ /* Define to 1 if you are not using at least a 4.0 version of Pardiso */ /* #undef HAVE_PARDISO_OLDINTERFACE 1 */ /* Define to 1 if you are using the parallel version of Pardiso */ /* #undef HAVE_PARDISO_PARALLEL */ /* Define to 1 if WSMP is available */ /* #undef HAVE_WSMP */ /* Define to the C type corresponding to Fortran INTEGER */ #ifndef FORTRAN_INTEGER_TYPE #define FORTRAN_INTEGER_TYPE int #endif #ifdef _MSC_VER /* Define to be the name of C-function for Inf check */ #define COIN_C_FINITE _finite #endif Ipopt-3.11.4/Ipopt/src/Common/IpReferenced.hpp0000644000076600007660000002172412125642312017533 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpReferenced.hpp 2182 2013-03-30 20:02:18Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPREFERENCED_HPP__ #define __IPREFERENCED_HPP__ #include "IpTypes.hpp" #include "IpDebug.hpp" #include #if COIN_IPOPT_CHECKLEVEL > 3 #define IP_DEBUG_REFERENCED #endif namespace Ipopt { /** Psydo-class, from which everything has to inherit that wants to * use be registered as a Referencer for a ReferencedObject. */ class Referencer {} ; /** ReferencedObject class. * This is part of the implementation of an intrusive smart pointer * design. This class stores the reference count of all the smart * pointers that currently reference it. See the documentation for * the SmartPtr class for more details. * * A SmartPtr behaves much like a raw pointer, but manages the lifetime * of an object, deleting the object automatically. This class implements * a reference-counting, intrusive smart pointer design, where all * objects pointed to must inherit off of ReferencedObject, which * stores the reference count. Although this is intrusive (native types * and externally authored classes require wrappers to be referenced * by smart pointers), it is a safer design. A more detailed discussion of * these issues follows after the usage information. * * Usage Example: * Note: to use the SmartPtr, all objects to which you point MUST * inherit off of ReferencedObject. * * \verbatim * * In MyClass.hpp... * * #include "IpReferenced.hpp" * namespace Ipopt { * * class MyClass : public ReferencedObject // must derive from ReferencedObject * { * ... * } * } // namespace Ipopt * * * In my_usage.cpp... * * #include "IpSmartPtr.hpp" * #include "MyClass.hpp" * * void func(AnyObject& obj) * { * SmartPtr ptr_to_myclass = new MyClass(...); * // ptr_to_myclass now points to a new MyClass, * // and the reference count is 1 * * ... * * obj.SetMyClass(ptr_to_myclass); * // Here, let's assume that AnyObject uses a * // SmartPtr internally here. * // Now, both ptr_to_myclass and the internal * // SmartPtr in obj point to the same MyClass object * // and its reference count is 2. * * ... * * // No need to delete ptr_to_myclass, this * // will be done automatically when the * // reference count drops to zero. * * } * * \endverbatim * * Other Notes: * The SmartPtr implements both dereference operators -> & *. * The SmartPtr does NOT implement a conversion operator to * the raw pointer. Use the GetRawPtr() method when this * is necessary. Make sure that the raw pointer is NOT * deleted. * The SmartPtr implements the comparison operators == & != * for a variety of types. Use these instead of * \verbatim * if (GetRawPtr(smrt_ptr) == ptr) // Don't use this * \endverbatim * SmartPtr's, as currently implemented, do NOT handle circular references. * For example: consider a higher level object using SmartPtrs to point to * A and B, but A and B also point to each other (i.e. A has a SmartPtr * to B and B has a SmartPtr to A). In this scenario, when the higher * level object is finished with A and B, their reference counts will * never drop to zero (since they reference each other) and they * will not be deleted. This can be detected by memory leak tools like * valgrind. If the circular reference is necessary, the problem can be * overcome by a number of techniques: * * 1) A and B can have a method that "releases" each other, that is * they set their internal SmartPtrs to NULL. * \verbatim * void AClass::ReleaseCircularReferences() * { * smart_ptr_to_B = NULL; * } * \endverbatim * Then, the higher level class can call these methods before * it is done using A & B. * * 2) Raw pointers can be used in A and B to reference each other. * Here, an implicit assumption is made that the lifetime is * controlled by the higher level object and that A and B will * both exist in a controlled manner. Although this seems * dangerous, in many situations, this type of referencing * is very controlled and this is reasonably safe. * * 3) This SmartPtr class could be redesigned with the Weak/Strong * design concept. Here, the SmartPtr is identified as being * Strong (controls lifetime of the object) or Weak (merely * referencing the object). The Strong SmartPtr increments * (and decrements) the reference count in ReferencedObject * but the Weak SmartPtr does not. In the example above, * the higher level object would have Strong SmartPtrs to * A and B, but A and B would have Weak SmartPtrs to each * other. Then, when the higher level object was done with * A and B, they would be deleted. The Weak SmartPtrs in A * and B would not decrement the reference count and would, * of course, not delete the object. This idea is very similar * to item (2), where it is implied that the sequence of events * is controlled such that A and B will not call anything using * their pointers following the higher level delete (i.e. in * their destructors!). This is somehow safer, however, because * code can be written (however expensive) to perform run-time * detection of this situation. For example, the ReferencedObject * could store pointers to all Weak SmartPtrs that are referencing * it and, in its destructor, tell these pointers that it is * dying. They could then set themselves to NULL, or set an * internal flag to detect usage past this point. * * For every most derived object only one ReferencedObject may exist, * that is multiple inheritance requires virtual inheritance, see also * the 2nd point in ticket #162. * * Comments on Non-Intrusive Design: * In a non-intrusive design, the reference count is stored somewhere other * than the object being referenced. This means, unless the reference * counting pointer is the first referencer, it must get a pointer to the * referenced object from another smart pointer (so it has access to the * reference count location). In this non-intrusive design, if we are * pointing to an object with a smart pointer (or a number of smart * pointers), and we then give another smart pointer the address through * a RAW pointer, we will have two independent, AND INCORRECT, reference * counts. To avoid this pitfall, we use an intrusive reference counting * technique where the reference count is stored in the object being * referenced. */ class ReferencedObject { public: ReferencedObject() : reference_count_(0) {} virtual ~ReferencedObject() { DBG_ASSERT(reference_count_ == 0); } inline Index ReferenceCount() const; inline void AddRef(const Referencer* referencer) const; inline void ReleaseRef(const Referencer* referencer) const; private: mutable Index reference_count_; # ifdef IP_DEBUG_REFERENCED mutable std::list referencers_; # endif }; /* inline methods */ inline Index ReferencedObject::ReferenceCount() const { // DBG_START_METH("ReferencedObject::ReferenceCount()", 0); // DBG_PRINT((1,"Returning reference_count_ = %d\n", reference_count_)); return reference_count_; } inline void ReferencedObject::AddRef(const Referencer* referencer) const { // DBG_START_METH("ReferencedObject::AddRef(const Referencer* referencer)", 0); reference_count_++; // DBG_PRINT((1, "New reference_count_ = %d\n", reference_count_)); # ifdef IP_DEBUG_REFERENCED referencers_.push_back(referencer); # endif } inline void ReferencedObject::ReleaseRef(const Referencer* referencer) const { // DBG_START_METH("ReferencedObject::ReleaseRef(const Referencer* referencer)", // 0); reference_count_--; // DBG_PRINT((1, "New reference_count_ = %d\n", reference_count_)); # ifdef IP_DEBUG_REFERENCED bool found = false; std::list::iterator iter; for (iter = referencers_.begin(); iter != referencers_.end(); iter++) { if ((*iter) == referencer) { found = true; break; } } // cannot call release on a reference that was never added... DBG_ASSERT(found); if (found) { referencers_.erase(iter); } # endif } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpSmartPtr.hpp0000644000076600007660000005150612125642312017246 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSmartPtr.hpp 2182 2013-03-30 20:02:18Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSMARTPTR_HPP__ #define __IPSMARTPTR_HPP__ #include "IpReferenced.hpp" #include "IpDebug.hpp" #if COIN_IPOPT_CHECKLEVEL > 2 # define IP_DEBUG_SMARTPTR #endif #ifndef IPOPT_UNUSED # if defined(__GNUC__) # define IPOPT_UNUSED __attribute__((unused)) # else # define IPOPT_UNUSED # endif #endif namespace Ipopt { /** Template class for Smart Pointers. * A SmartPtr behaves much like a raw pointer, but manages the lifetime * of an object, deleting the object automatically. This class implements * a reference-counting, intrusive smart pointer design, where all * objects pointed to must inherit off of ReferencedObject, which * stores the reference count. Although this is intrusive (native types * and externally authored classes require wrappers to be referenced * by smart pointers), it is a safer design. A more detailed discussion of * these issues follows after the usage information. * * Usage Example: * Note: to use the SmartPtr, all objects to which you point MUST * inherit off of ReferencedObject. * * \verbatim * * In MyClass.hpp... * * #include "IpReferenced.hpp" * namespace Ipopt { * * class MyClass : public ReferencedObject // must derive from ReferencedObject * { * ... * } * } // namespace Ipopt * * * In my_usage.cpp... * * #include "IpSmartPtr.hpp" * #include "MyClass.hpp" * * void func(AnyObject& obj) * { * SmartPtr ptr_to_myclass = new MyClass(...); * // ptr_to_myclass now points to a new MyClass, * // and the reference count is 1 * * ... * * obj.SetMyClass(ptr_to_myclass); * // Here, let's assume that AnyObject uses a * // SmartPtr internally here. * // Now, both ptr_to_myclass and the internal * // SmartPtr in obj point to the same MyClass object * // and its reference count is 2. * * ... * * // No need to delete ptr_to_myclass, this * // will be done automatically when the * // reference count drops to zero. * * } * * \endverbatim * * It is not necessary to use SmartPtr's in all cases where an * object is used that has been allocated "into" a SmartPtr. It is * possible to just pass objects by reference or regular pointers, * even if lower down in the stack a SmartPtr is to be held on to. * Everything should work fine as long as a pointer created by "new" * is immediately passed into a SmartPtr, and if SmartPtr's are used * to hold on to objects. * * Other Notes: * The SmartPtr implements both dereference operators -> & *. * The SmartPtr does NOT implement a conversion operator to * the raw pointer. Use the GetRawPtr() method when this * is necessary. Make sure that the raw pointer is NOT * deleted. * The SmartPtr implements the comparison operators == & != * for a variety of types. Use these instead of * \verbatim * if (GetRawPtr(smrt_ptr) == ptr) // Don't use this * \endverbatim * SmartPtr's, as currently implemented, do NOT handle circular references. * For example: consider a higher level object using SmartPtrs to point to * A and B, but A and B also point to each other (i.e. A has a SmartPtr * to B and B has a SmartPtr to A). In this scenario, when the higher * level object is finished with A and B, their reference counts will * never drop to zero (since they reference each other) and they * will not be deleted. This can be detected by memory leak tools like * valgrind. If the circular reference is necessary, the problem can be * overcome by a number of techniques: * * 1) A and B can have a method that "releases" each other, that is * they set their internal SmartPtrs to NULL. * \verbatim * void AClass::ReleaseCircularReferences() * { * smart_ptr_to_B = NULL; * } * \endverbatim * Then, the higher level class can call these methods before * it is done using A & B. * * 2) Raw pointers can be used in A and B to reference each other. * Here, an implicit assumption is made that the lifetime is * controlled by the higher level object and that A and B will * both exist in a controlled manner. Although this seems * dangerous, in many situations, this type of referencing * is very controlled and this is reasonably safe. * * 3) This SmartPtr class could be redesigned with the Weak/Strong * design concept. Here, the SmartPtr is identified as being * Strong (controls lifetime of the object) or Weak (merely * referencing the object). The Strong SmartPtr increments * (and decrements) the reference count in ReferencedObject * but the Weak SmartPtr does not. In the example above, * the higher level object would have Strong SmartPtrs to * A and B, but A and B would have Weak SmartPtrs to each * other. Then, when the higher level object was done with * A and B, they would be deleted. The Weak SmartPtrs in A * and B would not decrement the reference count and would, * of course, not delete the object. This idea is very similar * to item (2), where it is implied that the sequence of events * is controlled such that A and B will not call anything using * their pointers following the higher level delete (i.e. in * their destructors!). This is somehow safer, however, because * code can be written (however expensive) to perform run-time * detection of this situation. For example, the ReferencedObject * could store pointers to all Weak SmartPtrs that are referencing * it and, in its destructor, tell these pointers that it is * dying. They could then set themselves to NULL, or set an * internal flag to detect usage past this point. * * Comments on Non-Intrusive Design: * In a non-intrusive design, the reference count is stored somewhere other * than the object being referenced. This means, unless the reference * counting pointer is the first referencer, it must get a pointer to the * referenced object from another smart pointer (so it has access to the * reference count location). In this non-intrusive design, if we are * pointing to an object with a smart pointer (or a number of smart * pointers), and we then give another smart pointer the address through * a RAW pointer, we will have two independent, AND INCORRECT, reference * counts. To avoid this pitfall, we use an intrusive reference counting * technique where the reference count is stored in the object being * referenced. */ template class SmartPtr : public Referencer { public: #define ipopt_dbg_smartptr_verbosity 0 /**@name Constructors/Destructors */ //@{ /** Default constructor, initialized to NULL */ SmartPtr(); /** Copy constructor, initialized from copy of type T */ SmartPtr(const SmartPtr& copy); /** Copy constructor, initialized from copy of type U */ template SmartPtr(const SmartPtr& copy); /** Constructor, initialized from T* ptr */ SmartPtr(T* ptr); /** Destructor, automatically decrements the * reference count, deletes the object if * necessary.*/ ~SmartPtr(); //@} /**@name Overloaded operators. */ //@{ /** Overloaded arrow operator, allows the user to call * methods using the contained pointer. */ T* operator->() const; /** Overloaded dereference operator, allows the user * to dereference the contained pointer. */ T& operator*() const; /** Overloaded equals operator, allows the user to * set the value of the SmartPtr from a raw pointer */ SmartPtr& operator=(T* rhs); /** Overloaded equals operator, allows the user to * set the value of the SmartPtr from another * SmartPtr */ SmartPtr& operator=(const SmartPtr& rhs); /** Overloaded equals operator, allows the user to * set the value of the SmartPtr from another * SmartPtr of a different type */ template SmartPtr& operator=(const SmartPtr& rhs); /** Overloaded equality comparison operator, allows the * user to compare the value of two SmartPtrs */ template friend bool operator==(const SmartPtr& lhs, const SmartPtr& rhs); /** Overloaded equality comparison operator, allows the * user to compare the value of a SmartPtr with a raw pointer. */ template friend bool operator==(const SmartPtr& lhs, U2* raw_rhs); /** Overloaded equality comparison operator, allows the * user to compare the value of a raw pointer with a SmartPtr. */ template friend bool operator==(U1* lhs, const SmartPtr& raw_rhs); /** Overloaded in-equality comparison operator, allows the * user to compare the value of two SmartPtrs */ template friend bool operator!=(const SmartPtr& lhs, const SmartPtr& rhs); /** Overloaded in-equality comparison operator, allows the * user to compare the value of a SmartPtr with a raw pointer. */ template friend bool operator!=(const SmartPtr& lhs, U2* raw_rhs); /** Overloaded in-equality comparison operator, allows the * user to compare the value of a SmartPtr with a raw pointer. */ template friend bool operator!=(U1* lhs, const SmartPtr& raw_rhs); /** Overloaded less-than comparison operator, allows the * user to compare the value of two SmartPtrs */ template friend bool operator<(const SmartPtr& lhs, const SmartPtr& rhs); //@} /**@name friend method declarations. */ //@{ /** Returns the raw pointer contained. * Use to get the value of * the raw ptr (i.e. to pass to other * methods/functions, etc.) * Note: This method does NOT copy, * therefore, modifications using this * value modify the underlying object * contained by the SmartPtr, * NEVER delete this returned value. */ template friend U* GetRawPtr(const SmartPtr& smart_ptr); /** Returns a const pointer */ template friend SmartPtr ConstPtr(const SmartPtr& smart_ptr); /** Returns true if the SmartPtr is NOT NULL. * Use this to check if the SmartPtr is not null * This is preferred to if(GetRawPtr(sp) != NULL) */ template friend bool IsValid(const SmartPtr& smart_ptr); /** Returns true if the SmartPtr is NULL. * Use this to check if the SmartPtr IsNull. * This is preferred to if(GetRawPtr(sp) == NULL) */ template friend bool IsNull(const SmartPtr& smart_ptr); //@} private: /**@name Private Data/Methods */ //@{ /** Actual raw pointer to the object. */ T* ptr_; /** Set the value of the internal raw pointer * from another raw pointer, releasing the * previously referenced object if necessary. */ SmartPtr& SetFromRawPtr_(T* rhs); /** Set the value of the internal raw pointer * from a SmartPtr, releasing the previously referenced * object if necessary. */ SmartPtr& SetFromSmartPtr_(const SmartPtr& rhs); /** Release the currently referenced object. */ void ReleasePointer_(); //@} }; /**@name SmartPtr friend function declarations.*/ //@{ template U* GetRawPtr(const SmartPtr& smart_ptr); template SmartPtr ConstPtr(const SmartPtr& smart_ptr); template bool IsNull(const SmartPtr& smart_ptr); template bool IsValid(const SmartPtr& smart_ptr); template bool operator==(const SmartPtr& lhs, const SmartPtr& rhs); template bool operator==(const SmartPtr& lhs, U2* raw_rhs); template bool operator==(U1* lhs, const SmartPtr& raw_rhs); template bool operator!=(const SmartPtr& lhs, const SmartPtr& rhs); template bool operator!=(const SmartPtr& lhs, U2* raw_rhs); template bool operator!=(U1* lhs, const SmartPtr& raw_rhs); //@} template SmartPtr::SmartPtr() : ptr_(0) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr::SmartPtr()", ipopt_dbg_smartptr_verbosity); #endif #ifndef NDEBUG const ReferencedObject* IPOPT_UNUSED trying_to_use_SmartPtr_with_an_object_that_does_not_inherit_from_ReferencedObject_ = ptr_; #endif } template SmartPtr::SmartPtr(const SmartPtr& copy) : ptr_(0) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr::SmartPtr(const SmartPtr& copy)", ipopt_dbg_smartptr_verbosity); #endif #ifndef NDEBUG const ReferencedObject* IPOPT_UNUSED trying_to_use_SmartPtr_with_an_object_that_does_not_inherit_from_ReferencedObject_ = ptr_; #endif (void) SetFromSmartPtr_(copy); } template template SmartPtr::SmartPtr(const SmartPtr& copy) : ptr_(0) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr::SmartPtr(const SmartPtr& copy)", ipopt_dbg_smartptr_verbosity); #endif #ifndef NDEBUG const ReferencedObject* IPOPT_UNUSED trying_to_use_SmartPtr_with_an_object_that_does_not_inherit_from_ReferencedObject_ = ptr_; #endif (void) SetFromSmartPtr_(GetRawPtr(copy)); } template SmartPtr::SmartPtr(T* ptr) : ptr_(0) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr::SmartPtr(T* ptr)", ipopt_dbg_smartptr_verbosity); #endif #ifndef NDEBUG const ReferencedObject* IPOPT_UNUSED trying_to_use_SmartPtr_with_an_object_that_does_not_inherit_from_ReferencedObject_ = ptr_; #endif (void) SetFromRawPtr_(ptr); } template SmartPtr::~SmartPtr() { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr::~SmartPtr(T* ptr)", ipopt_dbg_smartptr_verbosity); #endif ReleasePointer_(); } template T* SmartPtr::operator->() const { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("T* SmartPtr::operator->()", ipopt_dbg_smartptr_verbosity); #endif // cannot deref a null pointer #if COIN_IPOPT_CHECKLEVEL > 0 assert(ptr_); #endif return ptr_; } template T& SmartPtr::operator*() const { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("T& SmartPtr::operator*()", ipopt_dbg_smartptr_verbosity); #endif // cannot dereference a null pointer #if COIN_IPOPT_CHECKLEVEL > 0 assert(ptr_); #endif return *ptr_; } template SmartPtr& SmartPtr::operator=(T* rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH("SmartPtr& SmartPtr::operator=(T* rhs)", ipopt_dbg_smartptr_verbosity); #endif return SetFromRawPtr_(rhs); } template SmartPtr& SmartPtr::operator=(const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH( "SmartPtr& SmartPtr::operator=(const SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif return SetFromSmartPtr_(rhs); } template template SmartPtr& SmartPtr::operator=(const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH( "SmartPtr& SmartPtr::operator=(const SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif return SetFromSmartPtr_(GetRawPtr(rhs)); } template SmartPtr& SmartPtr::SetFromRawPtr_(T* rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH( "SmartPtr& SmartPtr::SetFromRawPtr_(T* rhs)", ipopt_dbg_smartptr_verbosity); #endif if (rhs != 0) rhs->AddRef(this); // Release any old pointer ReleasePointer_(); ptr_ = rhs; return *this; } template SmartPtr& SmartPtr::SetFromSmartPtr_(const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH( "SmartPtr& SmartPtr::SetFromSmartPtr_(const SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif SetFromRawPtr_(GetRawPtr(rhs)); return (*this); } template void SmartPtr::ReleasePointer_() { #ifdef IP_DEBUG_SMARTPTR DBG_START_METH( "void SmartPtr::ReleasePointer()", ipopt_dbg_smartptr_verbosity); #endif if (ptr_) { ptr_->ReleaseRef(this); if (ptr_->ReferenceCount() == 0) delete ptr_; } } template U* GetRawPtr(const SmartPtr& smart_ptr) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "T* GetRawPtr(const SmartPtr& smart_ptr)", 0); #endif return smart_ptr.ptr_; } template SmartPtr ConstPtr(const SmartPtr& smart_ptr) { // compiler should implicitly cast return GetRawPtr(smart_ptr); } template bool IsValid(const SmartPtr& smart_ptr) { return !IsNull(smart_ptr); } template bool IsNull(const SmartPtr& smart_ptr) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool IsNull(const SmartPtr& smart_ptr)", 0); #endif return (smart_ptr.ptr_ == 0); } template bool ComparePointers(const U1* lhs, const U2* rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool ComparePtrs(const U1* lhs, const U2* rhs)", ipopt_dbg_smartptr_verbosity); #endif // Even if lhs and rhs point to the same object // with different interfaces U1 and U2, we cannot guarantee that // the value of the pointers will be equivalent. We can // guarantee this if we convert to ReferencedObject* (see also #162) const ReferencedObject* v_lhs = lhs; const ReferencedObject* v_rhs = rhs; return v_lhs == v_rhs; } template bool operator==(const SmartPtr& lhs, const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator==(const SmartPtr& lhs, const SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif U1* raw_lhs = GetRawPtr(lhs); U2* raw_rhs = GetRawPtr(rhs); return ComparePointers(raw_lhs, raw_rhs); } template bool operator==(const SmartPtr& lhs, U2* raw_rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator==(SmartPtr& lhs, U2* rhs)", ipopt_dbg_smartptr_verbosity); #endif U1* raw_lhs = GetRawPtr(lhs); return ComparePointers(raw_lhs, raw_rhs); } template bool operator==(U1* raw_lhs, const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator==(U1* raw_lhs, SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif const U2* raw_rhs = GetRawPtr(rhs); return ComparePointers(raw_lhs, raw_rhs); } template bool operator!=(const SmartPtr& lhs, const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator!=(const SmartPtr& lhs, const SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif bool retValue = operator==(lhs, rhs); return !retValue; } template bool operator!=(const SmartPtr& lhs, U2* raw_rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator!=(SmartPtr& lhs, U2* rhs)", ipopt_dbg_smartptr_verbosity); #endif bool retValue = operator==(lhs, raw_rhs); return !retValue; } template bool operator!=(U1* raw_lhs, const SmartPtr& rhs) { #ifdef IP_DEBUG_SMARTPTR DBG_START_FUN( "bool operator!=(U1* raw_lhs, SmartPtr& rhs)", ipopt_dbg_smartptr_verbosity); #endif bool retValue = operator==(raw_lhs, rhs); return !retValue; } template void swap(SmartPtr& a, SmartPtr& b) { #ifdef IP_DEBUG_REFERENCED SmartPtr tmp(a); a = b; b = tmp; #else std::swap(a.prt_, b.ptr_); #endif } template bool operator<(const SmartPtr& lhs, const SmartPtr& rhs) { return lhs.ptr_ < rhs.ptr_; } template bool operator> (const SmartPtr& lhs, const SmartPtr& rhs) { return rhs < lhs; } template bool operator<=(const SmartPtr& lhs, const SmartPtr& rhs) { return !( rhs < lhs ); } template bool operator>=(const SmartPtr& lhs, const SmartPtr& rhs) { return !( lhs < rhs ); } } // namespace Ipopt #undef ipopt_dbg_smartptr_verbosity #endif Ipopt-3.11.4/Ipopt/src/Common/IpRegOptions.hpp0000644000076600007660000006504212126050343017561 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRegOptions.hpp 2189 2013-03-31 15:06:11Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-18 #ifndef __IPREGOPTIONS_HPP__ #define __IPREGOPTIONS_HPP__ #include "IpUtils.hpp" #include "IpReferenced.hpp" #include "IpException.hpp" #include "IpSmartPtr.hpp" #include namespace Ipopt { enum RegisteredOptionType { OT_Number, OT_Integer, OT_String, OT_Unknown }; /** Base class for registered options. The derived types are more * specific to a string option or a Number (real) option, etc. */ class RegisteredOption : public ReferencedObject { public: /** class to hold the valid string settings for a string option */ class string_entry { public: string_entry(const std::string& value, const std::string& description) : value_(value), description_(description) {} std::string value_; std::string description_; }; /** Constructors / Destructors */ //@{ RegisteredOption(Index counter) : type_(OT_Unknown), has_lower_(false), has_upper_(false), counter_(counter) {} RegisteredOption(const std::string& name, const std::string& short_description, const std::string& long_description, const std::string& registering_category, Index counter) : name_(name), short_description_(short_description), long_description_(long_description), registering_category_(registering_category), type_(OT_Unknown), has_lower_(false), has_upper_(false), counter_(counter) {} RegisteredOption(const RegisteredOption& copy) : name_(copy.name_), short_description_(copy.short_description_), long_description_(copy.long_description_), registering_category_(copy.registering_category_), type_(copy.type_), has_lower_(copy.has_lower_), lower_(copy.lower_), has_upper_(copy.has_upper_), upper_(copy.upper_), valid_strings_(copy.valid_strings_), counter_(copy.counter_) {} virtual ~RegisteredOption() {} //@} DECLARE_STD_EXCEPTION(ERROR_CONVERTING_STRING_TO_ENUM); /** Standard Get / Set Methods */ //@{ /** Get the option's name (tag in the input file) */ virtual const std::string& Name() const { return name_; } /** Set the option's name (tag in the input file) */ virtual void SetName(const std::string& name) { name_ = name; } /** Get the short description */ virtual const std::string& ShortDescription() const { return short_description_; } /** Get the long description */ virtual const std::string& LongDescription() const { return long_description_; } /** Set the short description */ virtual void SetShortDescription(const std::string& short_description) { short_description_ = short_description; } /** Set the long description */ virtual void SetLongDescription(const std::string& long_description) { long_description_ = long_description; } /** Get the registering class */ virtual const std::string& RegisteringCategory() const { return registering_category_; } /** Set the registering class */ virtual void SetRegisteringCategory(const std::string& registering_category) { registering_category_ = registering_category; } /** Get the Option's type */ virtual const RegisteredOptionType& Type() const { return type_; } /** Get the Option's type */ virtual void SetType(const RegisteredOptionType& type) { type_ = type; } /** Counter */ virtual Index Counter() const { return counter_; } //@} /** @name Get / Set methods valid for specific types - NOTE: the Type * must be set before calling these methods. */ //@{ /** check if the option has a lower bound - can be called for * OT_Number & OT_Integer*/ virtual const bool& HasLower() const { DBG_ASSERT(type_ == OT_Number || type_ == OT_Integer); return has_lower_; } /** check if the lower bound is strict - can be called for OT_Number */ virtual const bool& LowerStrict() const { DBG_ASSERT(type_ == OT_Number && has_lower_ == true); return lower_strict_; } /** get the Number version of the lower bound - can be called for * OT_Number */ virtual Number LowerNumber() const { DBG_ASSERT(has_lower_ == true && type_ == OT_Number); return lower_; } /** set the Number version of the lower bound - can be called for * OT_Number */ virtual void SetLowerNumber(const Number& lower, const bool& strict) { DBG_ASSERT(type_ == OT_Number); lower_ = lower; lower_strict_ = strict, has_lower_ = true; } /** get the Integer version of the lower bound can be called for * OT_Integer*/ virtual Index LowerInteger() const { DBG_ASSERT(has_lower_ == true && type_ == OT_Integer); return (Index)lower_; } /** set the Integer version of the lower bound - can be called for * OT_Integer */ virtual void SetLowerInteger(const Index& lower) { DBG_ASSERT(type_ == OT_Integer); lower_ = (Number)lower; has_lower_ = true; } /** check if the option has an upper bound - can be called for * OT_Number & OT_Integer*/ virtual const bool& HasUpper() const { DBG_ASSERT(type_ == OT_Number || type_ == OT_Integer); return has_upper_; } /** check if the upper bound is strict - can be called for * OT_Number */ virtual const bool& UpperStrict() const { DBG_ASSERT(type_ == OT_Number && has_upper_ == true); return upper_strict_; } /** get the Number version of the upper bound - can be called for * OT_Number */ virtual Number UpperNumber() const { DBG_ASSERT(has_upper_ == true && type_ == OT_Number); return upper_; } /** set the Number version of the upper bound - can be called for * OT_Number */ virtual void SetUpperNumber(const Number& upper, const bool& strict) { DBG_ASSERT(type_ == OT_Number); upper_ = upper; upper_strict_ = strict; has_upper_ = true; } /** get the Integer version of the upper bound - can be called for * OT_Integer*/ virtual Index UpperInteger() const { DBG_ASSERT(has_upper_ == true && type_ == OT_Integer); return (Index)upper_; } /** set the Integer version of the upper bound - can be called for * OT_Integer */ virtual void SetUpperInteger(const Index& upper) { DBG_ASSERT(type_ == OT_Integer); upper_ = (Number)upper; has_upper_ = true; } /** method to add valid string entries - can be called for * OT_String */ virtual void AddValidStringSetting(const std::string value, const std::string description) { DBG_ASSERT(type_ == OT_String); valid_strings_.push_back(string_entry(value, description)); } /** get the default as a Number - can be called for OT_Number */ virtual Number DefaultNumber() const { DBG_ASSERT(type_ == OT_Number); return default_number_; } /** Set the default as a Number - can be called for OT_Number */ virtual void SetDefaultNumber(const Number& default_value) { DBG_ASSERT(type_ == OT_Number); default_number_ = default_value; } /** get the default as an Integer - can be called for OT_Integer*/ virtual Index DefaultInteger() const { DBG_ASSERT(type_ == OT_Integer); return (Index)default_number_; } /** Set the default as an Integer - can be called for OT_Integer */ virtual void SetDefaultInteger(const Index& default_value) { DBG_ASSERT(type_ == OT_Integer); default_number_ = (Number)default_value; } /** get the default as a string - can be called for OT_String */ virtual std::string DefaultString() const { DBG_ASSERT(type_ == OT_String); return default_string_; } /** get the default as a string, but as the index of the string in * the list - helps map from a string to an enum- can be called * for OT_String */ virtual Index DefaultStringAsEnum() const { DBG_ASSERT(type_ == OT_String); return MapStringSettingToEnum(default_string_); } /** Set the default as a string - can be called for OT_String */ virtual void SetDefaultString(const std::string& default_value) { DBG_ASSERT(type_ == OT_String); default_string_ = default_value; } /** get the valid string settings - can be called for OT_String */ virtual std::vector GetValidStrings() const { DBG_ASSERT(type_ == OT_String); return valid_strings_; } /** Check if the Number value is a valid setting - can be called * for OT_Number */ virtual bool IsValidNumberSetting(const Number& value) const { DBG_ASSERT(type_ == OT_Number); if (has_lower_ && ((lower_strict_ == true && value <= lower_) || (lower_strict_ == false && value < lower_))) { return false; } if (has_upper_ && ((upper_strict_ == true && value >= upper_) || (upper_strict_ == false && value > upper_))) { return false; } return true; } /** Check if the Integer value is a valid setting - can be called * for OT_Integer */ virtual bool IsValidIntegerSetting(const Index& value) const { DBG_ASSERT(type_ == OT_Integer); if (has_lower_ && value < lower_) { return false; } if (has_upper_ && value > upper_) { return false; } return true; } /** Check if the String value is a valid setting - can be called * for OT_String */ virtual bool IsValidStringSetting(const std::string& value) const; /** Map a user setting (allowing any case) to the case used when * the setting was registered. */ virtual std::string MapStringSetting(const std::string& value) const; /** Map a user setting (allowing any case) to the index of the * matched setting in the list of string settings. Helps map a * string setting to an enumeration. */ virtual Index MapStringSettingToEnum(const std::string& value) const; //@} /** output a description of the option */ virtual void OutputDescription(const Journalist& jnlst) const; /** output a more concise version */ virtual void OutputShortDescription(const Journalist& jnlst) const; /** output a latex version */ virtual void OutputLatexDescription(const Journalist& jnlst) const; private: std::string name_; std::string short_description_; std::string long_description_; std::string registering_category_; RegisteredOptionType type_; bool has_lower_; bool lower_strict_; Number lower_; bool has_upper_; bool upper_strict_; Number upper_; Number default_number_; void MakeValidLatexString(std::string source, std::string& dest) const; std::string MakeValidLatexNumber(Number value) const; /** Compare two strings and return true if they are equal (case insensitive comparison) */ bool string_equal_insensitive(const std::string& s1, const std::string& s2) const; std::vector valid_strings_; std::string default_string_; /** Has the information as how many-th option this one was * registered. */ const Index counter_; }; /** Class for storing registered options. Used for validation and * documentation. */ class RegisteredOptions : public ReferencedObject { public: /** Constructors / Destructors */ //@{ /** Standard Constructor */ RegisteredOptions() : next_counter_(0), current_registering_category_("Uncategorized") {} /** Standard Destructor */ virtual ~RegisteredOptions() {} //@} DECLARE_STD_EXCEPTION(OPTION_ALREADY_REGISTERED); /** Methods to interact with registered options */ //@{ /** set the registering class. All subsequent options will be * added with the registered class */ virtual void SetRegisteringCategory(const std::string& registering_category) { current_registering_category_ = registering_category; } /** retrieve the value of the current registering category */ virtual std::string RegisteringCategory() { return current_registering_category_; } /** Add a Number option (with no restrictions) */ virtual void AddNumberOption(const std::string& name, const std::string& short_description, Number default_value, const std::string& long_description=""); /** Add a Number option (with a lower bound) */ virtual void AddLowerBoundedNumberOption(const std::string& name, const std::string& short_description, Number lower, bool strict, Number default_value, const std::string& long_description=""); /** Add a Number option (with a upper bound) */ virtual void AddUpperBoundedNumberOption(const std::string& name, const std::string& short_description, Number upper, bool strict, Number default_value, const std::string& long_description=""); /** Add a Number option (with a both bounds) */ virtual void AddBoundedNumberOption(const std::string& name, const std::string& short_description, Number lower, bool lower_strict, Number upper, bool upper_strict, Number default_value, const std::string& long_description=""); /** Add a Integer option (with no restrictions) */ virtual void AddIntegerOption(const std::string& name, const std::string& short_description, Index default_value, const std::string& long_description=""); /** Add a Integer option (with a lower bound) */ virtual void AddLowerBoundedIntegerOption(const std::string& name, const std::string& short_description, Index lower, Index default_value, const std::string& long_description=""); /** Add a Integer option (with a upper bound) */ virtual void AddUpperBoundedIntegerOption(const std::string& name, const std::string& short_description, Index upper, Index default_value, const std::string& long_description=""); /** Add a Integer option (with a both bounds) */ virtual void AddBoundedIntegerOption(const std::string& name, const std::string& short_description, Index lower, Index upper, Index default_value, const std::string& long_description=""); /** Add a String option (with no restrictions) */ virtual void AddStringOption(const std::string& name, const std::string& short_description, const std::string& default_value, const std::vector& settings, const std::vector& descriptions, const std::string& long_description=""); /** Methods that make adding string options with only a few * entries easier */ virtual void AddStringOption1(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& long_description=""); virtual void AddStringOption2(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& long_description=""); virtual void AddStringOption3(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& long_description=""); virtual void AddStringOption4(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& long_description=""); virtual void AddStringOption5(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& long_description=""); virtual void AddStringOption6(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& long_description=""); virtual void AddStringOption7(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& long_description=""); virtual void AddStringOption8(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& long_description=""); virtual void AddStringOption9(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& setting9, const std::string& description9, const std::string& long_description=""); virtual void AddStringOption10(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& setting9, const std::string& description9, const std::string& setting10, const std::string& description10, const std::string& long_description=""); /** Get a registered option - this will return NULL if the option * does not exist */ virtual SmartPtr GetOption(const std::string& name); /** Output documentation for the options - gives a description, * etc. */ virtual void OutputOptionDocumentation(const Journalist& jnlst, std::list& categories); /** Output documentation in Latex format to include in a latex file */ virtual void OutputLatexOptionDocumentation(const Journalist& jnlst, std::list& categories); //@} typedef std::map > RegOptionsList; /** Giving access to iteratable representation of the registered * options */ virtual const RegOptionsList& RegisteredOptionsList () const { return registered_options_; } private: Index next_counter_; std::string current_registering_category_; std::map > registered_options_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpObserver.hpp0000644000076600007660000002420312070644551017261 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpObserver.hpp 2161 2013-01-01 20:39:05Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPOBSERVER_HPP__ #define __IPOBSERVER_HPP__ #include "IpUtils.hpp" #include #include //#define IP_DEBUG_OBSERVER #if COIN_IPOPT_CHECKLEVEL > 2 # define IP_DEBUG_OBSERVER #endif #ifdef IP_DEBUG_OBSERVER # include "IpDebug.hpp" #endif namespace Ipopt { /** Forward declarations */ class Subject; /** Slight Variation of the Observer Design Pattern. * This class implements the Observer class of the * Observer Design Pattern. An Observer "Attach"es * to a Subject, indicating that it would like to * be notified of changes in the Subject. * Any derived class wishing to recieve notifications * from a Subject should inherit off of * Observer and overload the protected method, * RecieveNotification_(...). */ class Observer { public: #ifdef IP_DEBUG_OBSERVER static const Index dbg_verbosity; #endif /**@name Constructors/Destructors */ //@{ /** Default Constructor */ Observer() {} /** Default destructor */ inline virtual ~Observer(); //@} /** Enumeration specifying the type of notification */ enum NotifyType { NT_All, NT_BeingDestroyed, NT_Changed }; protected: /** Derived classes should call this method * to request an "Attach" to a Subject. Do * not call "Attach" explicitly on the Subject * since further processing is done here */ inline void RequestAttach(NotifyType notify_type, const Subject* subject); /** Derived classes should call this method * to request a "Detach" to a Subject. Do * not call "Detach" explicitly on the Subject * since further processing is done here */ inline void RequestDetach(NotifyType notify_type, const Subject* subject); /** Derived classes should overload this method to * recieve the requested notification from * attached Subjects */ virtual void RecieveNotification(NotifyType notify_type, const Subject* subject)=0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Observer(const Observer&); /** Overloaded Equals Operator */ void operator=(const Observer&); //@} /** A list of the subjects currently being * observed. */ std::vector subjects_; /** Private Method for Recieving Notification * should only be called by the friend class * Subject. This method will, in turn, call * the overloaded RecieveNotification method * for the derived class to process. */ inline void ProcessNotification(NotifyType notify_type, const Subject* subject); friend class Subject; }; /** Slight Variation of the Observer Design Pattern (Subject part). * This class implements the Subject class of the Observer Design * Pattern. An Observer "Attach"es to a Subject, indicating that it * would like to be notified of changes in the Subject. Any * derived class that is to be observed has to inherit off the * Subject base class. If the subject needs to notify the * Observer, it calls the Notify method. */ class Subject { public: #ifdef IP_DEBUG_OBSERVER static const Index dbg_verbosity; #endif /**@name Constructors/Destructors */ //@{ /** Default Constructor */ Subject() {} /** Default destructor */ inline virtual ~Subject(); //@} /**@name Methods to Add and Remove Observers. * Currently, the notify_type flags are not used, * and Observers are attached in general and will * recieve all notifications (of the type requested * and possibly of types not requested). It is * up to the observer to ignore the types they * are not interested in. The NotifyType in the * parameter list is so a more efficient mechanism * depending on type could be implemented later if * necessary.*/ //@{ /** Attach the specified observer * (i.e., begin recieving notifications). */ inline void AttachObserver(Observer::NotifyType notify_type, Observer* observer) const; /** Detach the specified observer * (i.e., no longer recieve notifications). */ inline void DetachObserver(Observer::NotifyType notify_type, Observer* observer) const; //@} protected: inline void Notify(Observer::NotifyType notify_type) const; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Subject(const Subject&); /** Overloaded Equals Operator */ void operator=(const Subject&); //@} mutable std::vector observers_; }; /* inline methods */ inline Observer::~Observer() { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Observer::~Observer", dbg_verbosity); if (DBG_VERBOSITY()>=1) { for (Index i=0; i<(Index)subjects_.size(); i++) { DBG_PRINT((1,"subjects_[%d] = 0x%x\n", i, subjects_[i])); } } #endif // Detach all subjects for (Int i=(Int)(subjects_.size()-1); i>=0; i--) { #ifdef IP_DEBUG_OBSERVER DBG_PRINT((1,"About to detach subjects_[%d] = 0x%x\n", i, subjects_[i])); #endif RequestDetach(NT_All, subjects_[i]); } } inline void Observer::RequestAttach(NotifyType notify_type, const Subject* subject) { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Observer::RequestAttach", dbg_verbosity); // Add the subject to the list if it does not already exist std::vector::iterator attached_subject; attached_subject = std::find(subjects_.begin(), subjects_.end(), subject); DBG_ASSERT(attached_subject == subjects_.end()); DBG_ASSERT(subject); #endif // add the subject to the list subjects_.push_back(subject); // Attach the observer to the subject subject->AttachObserver(notify_type, this); } inline void Observer::RequestDetach(NotifyType notify_type, const Subject* subject) { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Observer::RequestDetach", dbg_verbosity); DBG_PRINT((1, "Requesting detach of subject: 0x%x\n", subject)); DBG_ASSERT(subject); #endif if (subject) { std::vector::iterator attached_subject; attached_subject = std::find(subjects_.begin(), subjects_.end(), subject); #ifdef IP_DEBUG_OBSERVER DBG_ASSERT(attached_subject != subjects_.end()); #endif if (attached_subject != subjects_.end()) { #ifdef IP_DEBUG_OBSERVER DBG_PRINT((1, "Removing subject: 0x%x from the list\n", subject)); #endif subjects_.erase(attached_subject); } // Detach the observer from the subject subject->DetachObserver(notify_type, this); } } inline void Observer::ProcessNotification(NotifyType notify_type, const Subject* subject) { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Observer::ProcessNotification", dbg_verbosity); DBG_ASSERT(subject); #endif if (subject) { std::vector::iterator attached_subject; attached_subject = std::find(subjects_.begin(), subjects_.end(), subject); // We must be processing a notification for a // subject that was previously attached. #ifdef IP_DEBUG_OBSERVER DBG_ASSERT(attached_subject != subjects_.end()); #endif this->RecieveNotification(notify_type, subject); if (notify_type == NT_BeingDestroyed) { // the subject is going away, remove it from our list subjects_.erase(attached_subject); } } } inline Subject::~Subject() { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Subject::~Subject", dbg_verbosity); #endif std::vector::iterator iter; for (iter = observers_.begin(); iter != observers_.end(); iter++) { (*iter)->ProcessNotification(Observer::NT_BeingDestroyed, this); } } inline void Subject::AttachObserver(Observer::NotifyType notify_type, Observer* observer) const { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Subject::AttachObserver", dbg_verbosity); // current implementation notifies all observers of everything // they must filter the notifications that they are not interested // in (i.e. a hub, not a router) DBG_ASSERT(observer); std::vector::iterator attached_observer; attached_observer = std::find(observers_.begin(), observers_.end(), observer); DBG_ASSERT(attached_observer == observers_.end()); DBG_ASSERT(observer); #endif observers_.push_back(observer); } inline void Subject::DetachObserver(Observer::NotifyType notify_type, Observer* observer) const { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Subject::DetachObserver", dbg_verbosity); DBG_ASSERT(observer); #endif if (observer) { std::vector::iterator attached_observer; attached_observer = std::find(observers_.begin(), observers_.end(), observer); #ifdef IP_DEBUG_OBSERVER DBG_ASSERT(attached_observer != observers_.end()); #endif if (attached_observer != observers_.end()) { observers_.erase(attached_observer); } } } inline void Subject::Notify(Observer::NotifyType notify_type) const { #ifdef IP_DEBUG_OBSERVER DBG_START_METH("Subject::Notify", dbg_verbosity); #endif std::vector::iterator iter; for (iter = observers_.begin(); iter != observers_.end(); iter++) { (*iter)->ProcessNotification(notify_type, this); } } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpOptionsList.hpp0000644000076600007660000002233111504216567017764 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOptionsList.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPOPTLIST_HPP__ #define __IPOPTLIST_HPP__ #include "IpUtils.hpp" #include "IpReferenced.hpp" #include "IpException.hpp" #include "IpRegOptions.hpp" #include #include namespace Ipopt { /** Exception that can be used to indicate errors with options */ DECLARE_STD_EXCEPTION(OPTION_INVALID); /** This class stores a list of user set options. Each options is * identified by a case-insensitive keyword (tag). Its value is * stored internally as a string (always lower case), but for * convenience set and get methods are provided to obtain Index and * Number type values. For each keyword we also keep track of how * often the value of an option has been requested by a get method. */ class OptionsList : public ReferencedObject { /** Class for storing the value and counter for each option in * OptionsList. */ class OptionValue { public: /**@name Constructors/Destructors */ //@{ /** Default constructor (needed for the map) */ OptionValue() : initialized_(false) {} /** Constructor given the value */ OptionValue(std::string value, bool allow_clobber, bool dont_print) : value_(value), counter_(0), initialized_(true), allow_clobber_(allow_clobber), dont_print_(dont_print) {} /** Copy Constructor */ OptionValue(const OptionValue& copy) : value_(copy.value_), counter_(copy.counter_), initialized_(copy.initialized_), allow_clobber_(copy.allow_clobber_), dont_print_(copy.dont_print_) {} /** Equals operator */ void operator=(const OptionValue& copy) { value_=copy.value_; counter_=copy.counter_; initialized_=copy.initialized_; allow_clobber_=copy.allow_clobber_; dont_print_=copy.dont_print_; } /** Default Destructor */ ~OptionValue() {} //@} /** Method for retrieving the value of an option. Calling this * method will increase the counter by one. */ std::string GetValue() const { DBG_ASSERT(initialized_); counter_++; return value_; } /** Method for retrieving the value without increasing the * counter */ std::string Value() const { DBG_ASSERT(initialized_); return value_; } /** Method for accessing current value of the request counter */ Index Counter() const { DBG_ASSERT(initialized_); return counter_; } /** True if the option can be overwritten */ bool AllowClobber() const { DBG_ASSERT(initialized_); return allow_clobber_; } /** True if this option is not to show up in the * print_user_options output */ bool DontPrint() const { DBG_ASSERT(initialized_); return dont_print_; } private: /** Value for this option */ std::string value_; /** Counter for requests */ mutable Index counter_; /** for debugging */ bool initialized_; /** True if the option can be overwritten */ bool allow_clobber_; /** True if this option is not to show up in the * print_user_options output */ bool dont_print_; }; public: /**@name Constructors/Destructors */ //@{ OptionsList(SmartPtr reg_options, SmartPtr jnlst) : reg_options_(reg_options), jnlst_(jnlst) {} OptionsList() {} /** Copy Constructor */ OptionsList(const OptionsList& copy) { // copy all the option strings and values options_ = copy.options_; // copy the registered options pointer reg_options_ = copy.reg_options_; } /** Default destructor */ virtual ~OptionsList() {} /** Overloaded Equals Operator */ virtual void operator=(const OptionsList& source) { options_ = source.options_; reg_options_ = source.reg_options_; jnlst_ = source.jnlst_; } //@} /** Method for clearing all previously set options */ virtual void clear() { options_.clear(); } /** @name Get / Set Methods */ //@{ virtual void SetRegisteredOptions(const SmartPtr reg_options) { reg_options_ = reg_options; } virtual void SetJournalist(const SmartPtr jnlst) { jnlst_ = jnlst; } //@} /** @name Methods for setting options */ //@{ virtual bool SetStringValue(const std::string& tag, const std::string& value, bool allow_clobber = true, bool dont_print = false); virtual bool SetNumericValue(const std::string& tag, Number value, bool allow_clobber = true, bool dont_print = false); virtual bool SetIntegerValue(const std::string& tag, Index value, bool allow_clobber = true, bool dont_print = false); //@} /** @name Methods for setting options only if they have not been * set before*/ //@{ virtual bool SetStringValueIfUnset(const std::string& tag, const std::string& value, bool allow_clobber = true, bool dont_print = false); virtual bool SetNumericValueIfUnset(const std::string& tag, Number value, bool allow_clobber = true, bool dont_print = false); virtual bool SetIntegerValueIfUnset(const std::string& tag, Index value, bool allow_clobber = true, bool dont_print = false); //@} /** @name Methods for retrieving values from the options list. If * a tag is not found, the methods return false, and value is set * to the default value defined in the registered options. */ //@{ virtual bool GetStringValue(const std::string& tag, std::string& value, const std::string& prefix) const; virtual bool GetEnumValue(const std::string& tag, Index& value, const std::string& prefix) const; virtual bool GetBoolValue(const std::string& tag, bool& value, const std::string& prefix) const; virtual bool GetNumericValue(const std::string& tag, Number& value, const std::string& prefix) const; virtual bool GetIntegerValue(const std::string& tag, Index& value, const std::string& prefix) const; //@} /** Get a string with the list of all options (tag, value, counter) */ virtual void PrintList(std::string& list) const; /** Get a string with the list of all options set by the user * (tag, value, use/notused). Here, options with dont_print flag * set to true are not printed. */ virtual void PrintUserOptions(std::string& list) const; /** Read options from the stream is. Returns false if * an error was encountered. */ virtual bool ReadFromStream(const Journalist& jnlst, std::istream& is); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ // OptionsList(); //@} /** map for storing the options */ std::map< std::string, OptionValue > options_; /** list of all the registered options to validate against */ SmartPtr reg_options_; /** Journalist for writing error messages, etc. */ SmartPtr jnlst_; /** auxilliary method for converting sting to all lower-case * letters */ const std::string& lowercase(const std::string tag) const; /** auxilliary method for finding the value for a tag in the * options list. This method first looks for the concatenated * string prefix+tag (if prefix is not ""), and if this is not * found, it looks for tag. The return value is true iff * prefix+tag or tag is found. In that case, the corresponding * string value is copied into value. */ bool find_tag(const std::string& tag, const std::string& prefix, std::string& value) const; /** tells whether or not we can clobber a particular option. * returns true if the option does not already exist, or if * the option exists but is set to allow_clobber */ bool will_allow_clobber(const std::string& tag) const; /** read the next token from stream is. Returns false, if EOF was * reached before a tokens was ecountered. */ bool readnexttoken(std::istream& is, std::string& token); /** auxilliary string set by lowercase method */ mutable std::string lowercase_buffer_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpDebug.cpp0000644000076600007660000000473311504216567016524 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDebug.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpDebug.hpp" #include "IpJournalist.hpp" #if COIN_IPOPT_VERBOSITY > 0 namespace Ipopt { Index DebugJournalistWrapper::indentation_level_ = 0; Journalist* DebugJournalistWrapper::jrnl_ = NULL; DebugJournalistWrapper::DebugJournalistWrapper( std::string func_name, Index verbose_level) : func_name_(func_name), verbose_level_(verbose_level), method_owner_(NULL) { if (jrnl_==NULL) { verbose_level_ = 0; return; } DebugPrintf(1, "-> Calling to: %s\n", func_name_.c_str()); if (verbose_level_>0) { indentation_level_++; } } DebugJournalistWrapper::DebugJournalistWrapper( std::string func_name, Index verbose_level, const void* const method_owner) : func_name_(func_name), verbose_level_(verbose_level), method_owner_(method_owner) { if (jrnl_==NULL) { verbose_level_ = 0; return; } DebugPrintf(1, "-> Calling to: %s in obj: 0x%x\n", func_name_.c_str(), method_owner_); if (verbose_level_>0) { indentation_level_++; } } DebugJournalistWrapper::~DebugJournalistWrapper() { if (verbose_level_>0) { indentation_level_--; } if (jrnl_) { if (method_owner_ == NULL) { DebugPrintf(1, "<- Returning from : %s\n", func_name_.c_str()); } else { DebugPrintf(1, "<- Returning from : %s in obj: 0x%x\n", func_name_.c_str(), method_owner_); } } } void DebugJournalistWrapper::SetJournalist(Journalist* jrnl) { if (jrnl == NULL) { jrnl_->Printf(J_ERROR, J_DBG, "# Setting Journalist to NULL in DebugJournalistWrapper.\n"); jrnl_ = NULL; } else if (!jrnl_) { jrnl_ = jrnl; } } void DebugJournalistWrapper::DebugPrintf(Index verbosity, const char* pformat, ...) { if (Verbosity() >= verbosity) { va_list(ap); va_start(ap, pformat); DBG_ASSERT(jrnl_); jrnl_->PrintfIndented(J_ERROR, J_DBG, indentation_level_, "# "); jrnl_->VPrintf(J_ERROR, J_DBG, pformat, ap); va_end(ap); } } } // namespace Ipopt #endif // #if COIN_IPOPT_VERBOSITY > 0 Ipopt-3.11.4/Ipopt/src/Common/IpJournalist.cpp0000644000076600007660000002753711504216567017637 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpJournalist.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpJournalist.hpp" #include "IpDebug.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif namespace Ipopt { Journalist::Journalist() {} Journalist::~Journalist() { journals_.clear(); } void Journalist::Printf( EJournalLevel level, EJournalCategory category, const char* pformat, ... ) const { // wrap the arguments and pass to VPrintf va_list ap; va_start(ap, pformat); VPrintf(level, category, pformat, ap); va_end(ap); } void Journalist::PrintStringOverLines(EJournalLevel level, EJournalCategory category, Index indent_spaces, Index max_length, const std::string& line) const { DBG_ASSERT(indent_spaces + max_length + 1 < 1024); char buffer[1024]; std::string::size_type last_line_pos = 0; std::string::size_type last_word_pos = 0; bool first_line = true; Index buffer_pos = 0; while (last_line_pos < line.length()) { std::string::size_type line_pos = last_line_pos; Index curr_length = 0; while (curr_length < max_length && line_pos < line.length()) { buffer[buffer_pos] = line[line_pos]; if (line[line_pos] == ' ') { last_word_pos = line_pos+1; } curr_length++; buffer_pos++; line_pos++; } if (line_pos == line.length()) { // This is the last line to be printed. buffer[buffer_pos] = '\0'; Printf(level, category, "%s", buffer); break; } if (last_word_pos == last_line_pos) { if (line[line_pos]==' ') { buffer[buffer_pos] = '\0'; last_word_pos = line_pos+1; last_line_pos = line_pos+1; } else { // The current word is too long to fit into one line // split word over two lines buffer[buffer_pos-1] = '-'; buffer[buffer_pos] = '\0'; last_word_pos = line_pos-1; last_line_pos = last_word_pos; } } else { // insert '\0' character after last complete word buffer[buffer_pos-(line_pos-last_word_pos)-1] = '\0'; last_line_pos = last_word_pos; } Printf(level, category, "%s\n", buffer); if (first_line) { for (Index i=0; iIsAccepted(category, level)) { // // print the message // journals_[i]->PrintVector(name, vector, indent, prefix); // } // } // } // void Journalist::PrintMatrix(EJournalLevel level, // EJournalCategory category, // const std::string& name, // const Matrix& matrix, // Index indent /*=0*/, // std::string prefix /*=""*/) const // { // // print the msg on every journal that accepts // // the category and output level // for (Index i=0; i<(Index)journals_.size(); i++) { // if (journals_[i]->IsAccepted(category, level)) { // // print the message // journals_[i]->PrintMatrix(name, matrix, indent, prefix); // } // } // } void Journalist::VPrintf( EJournalLevel level, EJournalCategory category, const char* pformat, va_list ap) const { // print the msg on every journal that accepts // the category and output level for (Index i=0; i<(Index)journals_.size(); i++) { if (journals_[i]->IsAccepted(category, level)) { // print the message #ifdef HAVE_VA_COPY va_list apcopy; va_copy(apcopy, ap); journals_[i]->Printf(category, level, pformat, apcopy); va_end(apcopy); #else journals_[i]->Printf(category, level, pformat, ap); #endif } } } void Journalist::VPrintfIndented( EJournalLevel level, EJournalCategory category, Index indent_level, const char* pformat, va_list ap) const { // print the msg on every journal that accepts // the category and output level for (Index i=0; i<(Index)journals_.size(); i++) { if (journals_[i]->IsAccepted(category, level)) { // indent the appropriate amount for (Index s=0; sPrint(category, level, " "); } // print the message #ifdef HAVE_VA_COPY va_list apcopy; va_copy(apcopy, ap); journals_[i]->Printf(category, level, pformat, apcopy); va_end(apcopy); #else journals_[i]->Printf(category, level, pformat, ap); #endif } } } bool Journalist::ProduceOutput(EJournalLevel level, EJournalCategory category) const { for (Index i=0; i<(Index)journals_.size(); i++) { if (journals_[i]->IsAccepted(category, level)) { return true; } } return false; } bool Journalist::AddJournal(const SmartPtr jrnl) { DBG_ASSERT(IsValid(jrnl)); std::string name = jrnl->Name(); SmartPtr temp = GetJournal(name); DBG_ASSERT(IsNull(temp)); if (IsValid(temp)) { return false; } journals_.push_back(jrnl); return true; } SmartPtr Journalist::AddFileJournal( const std::string& journal_name, const std::string& fname, EJournalLevel default_level ) { SmartPtr temp = new FileJournal(journal_name, default_level); // Open the file (Note:, a fname of "stdout" is handled by the // Journal class to mean stdout, etc. if (temp->Open(fname.c_str()) && AddJournal(GetRawPtr(temp))) { return GetRawPtr(temp); } return NULL; } void Journalist::FlushBuffer() const { for (Index i=0; i<(Index)journals_.size(); i++) { journals_[i]->FlushBuffer(); } } SmartPtr Journalist::GetJournal( const std::string& journal_name ) { SmartPtr retValue = NULL; // try to find the journal for (Index i=0; i<(Index)journals_.size(); i++) { SmartPtr tmp = journals_[i]; if (tmp->Name() == journal_name) { retValue = tmp; break; } } return retValue; } void Journalist::DeleteAllJournals() { for (Index i=0; i<(Index)journals_.size(); i++) { journals_[i]=NULL; } journals_.resize(0); } /////////////////////////////////////////////////////////////////////////// // Implementation of the Journal class // /////////////////////////////////////////////////////////////////////////// Journal::Journal( const std::string& name, EJournalLevel default_level ) : name_(name) { for (Index i=0; i= (Index) level) { return true; } return false; } void Journal::SetPrintLevel( EJournalCategory category, EJournalLevel level) { print_levels_[(Index)category] = (Index) level; } void Journal::SetAllPrintLevels( EJournalLevel level) { for (Index category=(Index)J_DBG; category<(Index)J_USER_APPLICATION; category++) { print_levels_[category] = (Index) level; } } /////////////////////////////////////////////////////////////////////////// // Implementation of the FileJournal class // /////////////////////////////////////////////////////////////////////////// FileJournal::FileJournal( const std::string& name, EJournalLevel default_level ) : Journal(name, default_level), file_(NULL) {} FileJournal::~FileJournal() { if (file_ && file_ != stdout && file_ != stderr) { // close the file fclose(file_); } file_ = NULL; } bool FileJournal::Open(const char* fname) { if (file_ && file_ != stdout && file_ != stderr) { // file already opened, close it fclose(file_); } file_ = NULL; if (strcmp("stdout", fname)==0) { file_=stdout; return true; } else if (strcmp("stderr", fname)==0) { file_=stderr; return true; } else { // open the file on disk file_ = fopen(fname, "w+"); if (file_) { return true; } } return false; } void FileJournal::PrintImpl(EJournalCategory category, EJournalLevel level, const char* str) { DBG_START_METH("Journal::Print", 0); if (file_) { fprintf(file_, "%s", str); DBG_EXEC(0, fflush(file_)); } } void FileJournal::PrintfImpl(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap) { DBG_START_METH("Journal::Printf", 0); if (file_) { vfprintf(file_, pformat, ap); DBG_EXEC(0, fflush(file_)); } } void FileJournal::FlushBufferImpl() { if (file_) { fflush(file_); } } /////////////////////////////////////////////////////////////////////////// // Implementation of the StreamJournal class // /////////////////////////////////////////////////////////////////////////// StreamJournal::StreamJournal( const std::string& name, EJournalLevel default_level ) : Journal(name, default_level), os_(NULL) {} void StreamJournal::SetOutputStream(std::ostream* os) { os_ = os; } void StreamJournal::PrintImpl(EJournalCategory category, EJournalLevel level, const char* str) { DBG_START_METH("StreamJournal::PrintImpl", 0); if (os_) { *os_ << str; DBG_EXEC(0, *os_ << std::flush); } } void StreamJournal::PrintfImpl(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap) { DBG_START_METH("StreamJournal::PrintfImpl", 0); if (os_) { vsprintf(buffer_, pformat, ap); *os_ << buffer_; DBG_EXEC(0, *os_ << std::flush); } } void StreamJournal::FlushBufferImpl() { if (os_) { *os_ << std::flush; } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/IpTimedTask.hpp0000644000076600007660000000757011504216567017372 0ustar coincoin// Copyright (C) 2006, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTimedTask.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-09-19 #ifndef __IPTIMEDTASK_HPP__ #define __IPTIMEDTASK_HPP__ #include "IpUtils.hpp" namespace Ipopt { /** This class is used to collect timing information for a * particular task. */ class TimedTask { public: /**@name Constructors/Destructors */ //@{ /** Default constructor. */ TimedTask() : total_cputime_(0.), total_systime_(0.), total_walltime_(0.), start_called_(false), end_called_(true) {} /** Default destructor */ ~TimedTask() {} //@} /** Method for resetting time to zero. */ void Reset() { total_cputime_ = 0.; total_systime_ = 0.; total_walltime_ = 0.; start_called_ = false; end_called_ = true; } /** Method that is called before execution of the task. */ void Start() { DBG_ASSERT(end_called_); DBG_ASSERT(!start_called_); end_called_ = false; start_called_ = true; start_cputime_ = CpuTime(); start_systime_ = SysTime(); start_walltime_ = WallclockTime(); } /** Method that is called after execution of the task. */ void End() { DBG_ASSERT(!end_called_); DBG_ASSERT(start_called_); end_called_ = true; start_called_ = false; total_cputime_ += CpuTime() - start_cputime_; total_systime_ += SysTime() - start_systime_; total_walltime_ += WallclockTime() - start_walltime_; } /** Method that is called after execution of the task for which * timing might have been started. This only updates the timing * if the timing has indeed been conducted. This is useful to * stop timing after catching exceptions. */ void EndIfStarted() { if (start_called_) { end_called_ = true; start_called_ = false; total_cputime_ += CpuTime() - start_cputime_; total_systime_ += SysTime() - start_systime_; total_walltime_ += WallclockTime() - start_walltime_; } DBG_ASSERT(end_called_); } /** Method returning total CPU time spend for task so far. */ Number TotalCpuTime() const { DBG_ASSERT(end_called_); return total_cputime_; } /** Method returning total system time spend for task so far. */ Number TotalSysTime() const { DBG_ASSERT(end_called_); return total_systime_; } /** Method returning total wall clock time spend for task so far. */ Number TotalWallclockTime() const { DBG_ASSERT(end_called_); return total_walltime_; } private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not * implemented and we do not want the compiler to implement them * for us, so we declare them private and do not define * them. This ensures that they will not be implicitly * created/called. */ //@{ /** Copy Constructor */ TimedTask(const TimedTask&); /** Overloaded Equals Operator */ void operator=(const TimedTask&); //@} /** CPU time at beginning of task. */ Number start_cputime_; /** Total CPU time for task measured so far. */ Number total_cputime_; /** System time at beginning of task. */ Number start_systime_; /** Total system time for task measured so far. */ Number total_systime_; /** Wall clock time at beginning of task. */ Number start_walltime_; /** Total wall clock time for task measured so far. */ Number total_walltime_; /** @name fields for debugging */ //@{ bool start_called_; bool end_called_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpUtils.hpp0000644000076600007660000000543312116344132016567 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpUtils.hpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPUTILS_HPP__ #define __IPUTILS_HPP__ // Standard Ip Include Files #include "IpTypes.hpp" #include "IpDebug.hpp" namespace Ipopt { inline Index Max(Index a, Index b) { return ((a) > (b) ? (a) : (b)); } inline Index Max(Index a, Index b, Index c) { Index max = Max(a,b); max = Max(max, c); return max; } inline Index Max(Index a, Index b, Index c, Index d) { Index max = Max(a, b, c); max = Max(max, d); return max; } inline Index Min(Index a, Index b) { return ((a) < (b) ? (a) : (b)); } inline Index Min(Index a, Index b, Index c) { Index min = Min(a,b); min = Min(min, c); return min; } inline Index Min(Index a, Index b, Index c, Index d) { Index min = Min(a, b, c); min = Min(min, d); return min; } /////////////////////////////////////////// inline Number Max(Number a, Number b) { return ((a) > (b) ? (a) : (b)); } inline Number Max(Number a, Number b, Number c) { Number max = Max(a,b); max = Max(max, c); return max; } inline Number Max(Number a, Number b, Number c, Number d) { Number max = Max(a, b, c); max = Max(max, d); return max; } inline Number Min(Number a, Number b) { return ((a) < (b) ? (a) : (b)); } inline Number Min(Number a, Number b, Number c) { Number min = Min(a,b); min = Min(min, c); return min; } inline Number Min(Number a, Number b, Number c, Number d) { Number min = Min(a, b, c); min = Min(min, d); return min; } /** Function returning true iff the argument is a valid double number * (not NaN or Inf). */ bool IsFiniteNumber(Number val); /** Function returning a random number between 0 and 1 */ Number IpRandom01(); /** Function resetting the random number generator */ void IpResetRandom01(); /** method determining CPU time */ Number CpuTime(); /** method determining system time */ Number SysTime(); /** method determining wallclock time since first call */ Number WallclockTime(); /** Method for comparing two numbers within machine precision. The * return value is true if lhs is less or equal the rhs, relaxing * this inequality by something a little larger than machine * precision relative to the absolute value of BasVal. */ bool Compare_le(Number lhs, Number rhs, Number BasVal); /** Method for printing a formatted output to a string with given size. */ int Snprintf(char* str, long size, const char* format, ...); } //namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpJournalist.hpp0000644000076600007660000004007112132261146017617 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpJournalist.hpp 2204 2013-04-13 13:49:26Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPJOURNALIST_HPP__ #define __IPJOURNALIST_HPP__ #include "IpoptConfig.h" #include "IpTypes.hpp" #include "IpReferenced.hpp" #include "IpSmartPtr.hpp" #ifdef HAVE_CSTDARG # include #else # ifdef HAVE_STDARG_H # include # else # include // if this header is included by someone who does not define HAVE_CSTDARG or HAVE_STDARG, let's hope that cstdarg is available # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # include // if this header is included by someone who does not define HAVE_CSTDIO or HAVE_STDIO, let's hope that cstdio is available # endif #endif #include #include #include namespace Ipopt { // forward declarations class Journal; class FileJournal; /**@name Journalist Enumerations. */ //@{ /** Print Level Enum. */ enum EJournalLevel { J_INSUPPRESSIBLE=-1, J_NONE=0, J_ERROR, J_STRONGWARNING, J_SUMMARY, J_WARNING, J_ITERSUMMARY, J_DETAILED, J_MOREDETAILED, J_VECTOR, J_MOREVECTOR, J_MATRIX, J_MOREMATRIX, J_ALL, J_LAST_LEVEL }; /** Category Selection Enum. */ enum EJournalCategory { J_DBG=0, J_STATISTICS, J_MAIN, J_INITIALIZATION, J_BARRIER_UPDATE, J_SOLVE_PD_SYSTEM, J_FRAC_TO_BOUND, J_LINEAR_ALGEBRA, J_LINE_SEARCH, J_HESSIAN_APPROXIMATION, J_SOLUTION, J_DOCUMENTATION, J_NLP, J_TIMING_STATISTICS, J_USER_APPLICATION /** This can be used by the user's application*/ , J_USER1 /** This can be used by the user's application*/ , J_USER2 /** This can be used by the user's application*/ , J_USER3 /** This can be used by the user's application*/ , J_USER4 /** This can be used by the user's application*/ , J_USER5 /** This can be used by the user's application*/ , J_USER6 /** This can be used by the user's application*/ , J_USER7 /** This can be used by the user's application*/ , J_USER8 /** This can be used by the user's application*/ , J_USER9 /** This can be used by the user's application*/ , J_USER10 /** This can be used by the user's application*/ , J_USER11 /** This can be used by the user's application*/ , J_USER12 /** This can be used by the user's application*/ , J_USER13 /** This can be used by the user's application*/ , J_USER14 /** This can be used by the user's application*/ , J_USER15 /** This can be used by the user's application*/ , J_USER16 /** This can be used by the user's application*/ , J_USER17 /** This can be used by the user's application*/ , J_LAST_CATEGORY }; //@} /** Class responsible for all message output. * This class is responsible for all messaging and output. * The "printing" code or "author" should send ALL messages to the * Journalist, indicating an appropriate category and print level. * The journalist then decides, based on reader specified * acceptance criteria, which message is actually printed in which * journals. * This allows the printing code to send everything, while the * "reader" can decide what they really want to see. * * Authors: * Authors use the * Journals: You can add as many Journals as you like to the * Journalist with the AddJournal or the AddFileJournal methods. * Each one represents a different printing location (or file). * Then, you can call the "print" methods of the Journalist to output * information to each of the journals. * * Acceptance Criteria: Each print message should be flagged * appropriately with an EJournalCategory and EJournalLevel. * * The AddFileJournal * method returns a pointer to the newly created Journal object * (if successful) so you can set Acceptance criteria for that * particular location. * */ class Journalist : public ReferencedObject { public: /**@name Constructor / Desructor. */ //@{ /** Constructor. */ Journalist(); /** Destructor... */ virtual ~Journalist(); //@} /**@name Author Methods. * These methods are used by authoring code, or code that wants * to report some information. */ //@{ /** Method to print a formatted string */ virtual void Printf(EJournalLevel level, EJournalCategory category, const char* format, ...) const; /** Method to print a long string including indentation. The * string is printed starting at the current position. If the * position (counting started at the current position) exceeds * max_length, a new line is inserted, and indent_spaces many * spaces are printed before the string is continued. This is * for example used during the printing of the option * documentation. */ virtual void PrintStringOverLines(EJournalLevel level, EJournalCategory category, Index indent_spaces, Index max_length, const std::string& line) const; /** Method to print a formatted string with indentation */ virtual void PrintfIndented(EJournalLevel level, EJournalCategory category, Index indent_level, const char* format, ...) const; /** Method to print a formatted string * using the va_list argument. */ virtual void VPrintf(EJournalLevel level, EJournalCategory category, const char* pformat, va_list ap) const; /** Method to print a formatted string with indentation, * using the va_list argument. */ virtual void VPrintfIndented(EJournalLevel level, EJournalCategory category, Index indent_level, const char* pformat, va_list ap) const; /** Method that returns true if there is a Journal that would * write output for the given JournalLevel and JournalCategory. * This is useful if expensive computation would be required for * a particular output. The author code can check with this * method if the computations are indeed required. */ virtual bool ProduceOutput(EJournalLevel level, EJournalCategory category) const; /** Method that flushes the current buffer for all Journalists. Calling this method after one optimization run helps to avoid cluttering output with that produced by other parts of the program (e.g. written in Fortran) */ virtual void FlushBuffer() const; //@} /**@name Reader Methods. * These methods are used by the reader. The reader will setup the * journalist with each output file and the acceptance * criteria for that file. * * Use these methods to setup the journals (files or other output). * These are the internal objects that keep track of the print levels * for each category. Then use the internal Journal objects to * set specific print levels for each category (or keep defaults). * */ //@{ /** Add a new journal. The location_name is a string identifier, * which can be used to obtain the pointer to the new Journal at * a later point using the GetJournal method. * The default_level is * used to initialize the * printing level for all categories. */ virtual bool AddJournal(const SmartPtr jrnl); /** Add a new FileJournal. fname is the name * of the * file to which this Journal corresponds. Use * fname="stdout" * for stdout, and use fname="stderr" for * stderr. This method * returns the Journal pointer so you can * set specific acceptance criteria. It returns NULL if there * was a problem creating a new Journal. */ virtual SmartPtr AddFileJournal( const std::string& location_name, /**< journal identifier */ const std::string& fname, /**< file name */ EJournalLevel default_level = J_WARNING /**< default journal level */ ); /** Get an existing journal. You can use this method to change * the acceptance criteria at runtime. */ virtual SmartPtr GetJournal(const std::string& location_name); /** Delete all journals curently known by the journalist. */ virtual void DeleteAllJournals(); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Journalist(const Journalist&); /** Overloaded Equals Operator */ void operator=(const Journalist&); //@} //** Private Data Members. */ //@{ std::vector< SmartPtr > journals_; //@} }; /** Journal class (part of the Journalist implementation.). This * class is the base class for all Journals. It controls the * acceptance criteria for print statements etc. Derived classes * like the FileJournal - output those messages to specific locations */ class Journal : public ReferencedObject { public: /** Constructor. */ Journal(const std::string& name, EJournalLevel default_level); /** Destructor. */ virtual ~Journal(); /** Get the name of the Journal */ virtual std::string Name(); /** Set the print level for a particular category. */ virtual void SetPrintLevel( EJournalCategory category, EJournalLevel level ); /** Set the print level for all category. */ virtual void SetAllPrintLevels( EJournalLevel level ); /**@name Journal Output Methods. These methods are called by the * Journalist who first checks if the output print level and category * are acceptable. * Calling the Print methods explicitly (instead of through the * Journalist will output the message regardless of print level * and category. You should use the Journalist to print & flush instead */ //@{ /** Ask if a particular print level/category is accepted by the * journal. */ virtual bool IsAccepted( EJournalCategory category, EJournalLevel level ) const; /** Print to the designated output location */ virtual void Print(EJournalCategory category, EJournalLevel level, const char* str) { PrintImpl(category, level, str); } /** Printf to the designated output location */ virtual void Printf(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap) { PrintfImpl(category, level, pformat, ap); } /** Flush output buffer.*/ virtual void FlushBuffer() { FlushBufferImpl(); } //@} protected: /**@name Implementation version of Print methods. Derived classes * should overload the Impl methods. */ //@{ /** Print to the designated output location */ virtual void PrintImpl(EJournalCategory category, EJournalLevel level, const char* str)=0; /** Printf to the designated output location */ virtual void PrintfImpl(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap)=0; /** Flush output buffer.*/ virtual void FlushBufferImpl()=0; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ Journal(); /** Copy Constructor */ Journal(const Journal&); /** Overloaded Equals Operator */ void operator=(const Journal&); //@} /** Name of the output location */ std::string name_; /** vector of integers indicating the level for each category */ Index print_levels_[J_LAST_CATEGORY]; }; /** FileJournal class. This is a particular Journal implementation that * writes to a file for output. It can write to (stdout, stderr, or disk) * by using "stdout" and "stderr" as filenames. */ class FileJournal : public Journal { public: /** Constructor. */ FileJournal(const std::string& name, EJournalLevel default_level); /** Destructor. */ virtual ~FileJournal(); /** Open a new file for the output location. * Special Names: stdout means stdout, * : stderr means stderr. * * Return code is false only if the file with the given name * could not be opened. */ virtual bool Open(const char* fname); protected: /**@name Implementation version of Print methods - Overloaded from * Journal base class. */ //@{ /** Print to the designated output location */ virtual void PrintImpl(EJournalCategory category, EJournalLevel level, const char* str); /** Printf to the designated output location */ virtual void PrintfImpl(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap); /** Flush output buffer.*/ virtual void FlushBufferImpl(); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ FileJournal(); /** Copy Constructor */ FileJournal(const FileJournal&); /** Overloaded Equals Operator */ void operator=(const FileJournal&); //@} /** FILE pointer for the output destination */ FILE* file_; }; /** StreamJournal class. This is a particular Journal implementation that * writes to a stream for output. */ class StreamJournal : public Journal { public: /** Constructor. */ StreamJournal(const std::string& name, EJournalLevel default_level); /** Destructor. */ virtual ~StreamJournal() {} /** Setting the output stream pointer */ void SetOutputStream(std::ostream* os); protected: /**@name Implementation version of Print methods - Overloaded from * Journal base class. */ //@{ /** Print to the designated output location */ virtual void PrintImpl(EJournalCategory category, EJournalLevel level, const char* str); /** Printf to the designated output location */ virtual void PrintfImpl(EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap); /** Flush output buffer.*/ virtual void FlushBufferImpl(); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ StreamJournal(); /** Copy Constructor */ StreamJournal(const StreamJournal&); /** Overloaded Equals Operator */ void operator=(const StreamJournal&); //@} /** pointer to output stream for the output destination */ std::ostream* os_; /** buffer for sprintf. Being generous in size here... */ char buffer_[32768]; }; } #endif Ipopt-3.11.4/Ipopt/src/Common/IpDebug.hpp0000644000076600007660000000761611573147064016535 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDebug.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPDEBUG_HPP__ #define __IPDEBUG_HPP__ #include "IpoptConfig.h" #include "IpTypes.hpp" #ifdef COIN_IPOPT_CHECKLEVEL #ifdef HAVE_CASSERT # include #else # ifdef HAVE_ASSERT_H # include # else # error "don't have header file for assert" # endif #endif #else #define COIN_IPOPT_CHECKLEVEL 0 #endif #if COIN_IPOPT_CHECKLEVEL > 0 # ifdef NDEBUG # undef NDEBUG # endif # define DBG_ASSERT(test) assert(test) # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg) \ ASSERT_EXCEPTION( (__condition), __except_type, __msg); # define DBG_DO(__cmd) __cmd #else # define DBG_ASSERT(test) # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg) # define DBG_DO(__cmd) #endif #ifndef COIN_IPOPT_VERBOSITY #define COIN_IPOPT_VERBOSITY 0 #endif #if COIN_IPOPT_VERBOSITY < 1 # define DBG_START_FUN(__func_name, __verbose_level) # define DBG_START_METH(__func_name, __verbose_level) # define DBG_PRINT(__printf_args) # define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec) # define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat) # define DBG_EXEC(__verbosity, __cmd) # define DBG_VERBOSITY() 0 #else #include namespace Ipopt { // forward definition class Journalist; /** Class that lives throughout the execution of a method or * function for which debug output is to be generated. The output * is sent to the unique debug journalist that is set with * SetJournalist at the beginning of program execution. */ class DebugJournalistWrapper { public: /** @name Constructors/Destructors. */ //@{ DebugJournalistWrapper(std::string func_name, Index verbose_level); DebugJournalistWrapper(std::string func_name, Index verbose_level, const void* const method_owner); ~DebugJournalistWrapper(); //@} /** @name accessor methods */ //@{ Index Verbosity() { return verbose_level_; } const Journalist* Jnlst() { return jrnl_; } Index IndentationLevel() { return indentation_level_; } //@} /** Printing */ void DebugPrintf(Index verbosity, const char* pformat, ...); /* Method for initialization of the static GLOBAL journalist, * through with all debug printout is to be written. This needs * to be set before any debug printout can be done. */ static void SetJournalist(Journalist* jrnl); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** default constructor */ DebugJournalistWrapper(); /** copy contructor */ DebugJournalistWrapper(const DebugJournalistWrapper&); /** Overloaded Equals Operator */ DebugJournalistWrapper& operator=(const DebugJournalistWrapper&); //@} static Index indentation_level_; std::string func_name_; Index verbose_level_; const void* method_owner_; static Journalist* jrnl_; }; } # define DBG_START_FUN(__func_name, __verbose_level) \ DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level)); \ # define DBG_START_METH(__func_name, __verbose_level) \ DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level), this); # define DBG_PRINT(__args) \ dbg_jrnl.DebugPrintf __args; # define DBG_EXEC(__verbose_level, __cmd) \ if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \ (__cmd); \ } # define DBG_VERBOSITY() \ dbg_jrnl.Verbosity() #endif #endif Ipopt-3.11.4/Ipopt/src/Common/Makefile.am0000644000076600007660000000375412141450650016526 0ustar coincoin# Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2276 2013-05-05 12:33:44Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpCachedResults.hpp \ IpDebug.hpp \ IpException.hpp \ IpJournalist.hpp \ IpObserver.hpp \ IpOptionsList.hpp \ IpReferenced.hpp \ IpRegOptions.hpp \ IpSmartPtr.hpp \ IpTaggedObject.hpp \ IpTimedTask.hpp \ IpTypes.hpp \ IpUtils.hpp noinst_LTLIBRARIES = libcommon.la libcommon_la_SOURCES = \ IpoptConfig.h \ IpCachedResults.hpp \ IpDebug.cpp IpDebug.hpp \ IpException.hpp \ IpJournalist.cpp IpJournalist.hpp \ IpObserver.cpp IpObserver.hpp \ IpOptionsList.cpp IpOptionsList.hpp \ IpRegOptions.cpp IpRegOptions.hpp \ IpReferenced.hpp \ IpSmartPtr.hpp \ IpTaggedObject.hpp \ IpTimedTask.hpp \ IpTypes.hpp \ IpUtils.cpp IpUtils.hpp libcommon_la_LDFLAGS = $(LT_LDFLAGS) install-exec-local: $(install_sh_DATA) config_ipopt.h $(DESTDIR)$(includeipoptdir)/IpoptConfig.h uninstall-local: rm -f $(DESTDIR)$(includeipoptdir)/IpoptConfig.h # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` # Astyle stuff ASTYLE_FILES = \ IpCachedResults.hppbak \ IpDebug.cppbak IpDebug.hppbak \ IpException.hppbak \ IpJournalist.cppbak IpJournalist.hppbak \ IpObserver.cppbak IpObserver.hppbak \ IpOptionsList.cppbak IpOptionsList.hppbak \ IpRegOptions.cppbak IpRegOptions.hppbak \ IpReferenced.hppbak \ IpSmartPtr.hppbak \ IpTaggedObject.hppbak \ IpTimedTask.hppbak \ IpTypes.hppbak \ IpUtils.cppbak IpUtils.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Common/IpTaggedObject.hpp0000644000076600007660000001221512141450650020006 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTaggedObject.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPTAGGEDOBJECT_HPP__ #define __IPTAGGEDOBJECT_HPP__ #include "IpUtils.hpp" #include "IpDebug.hpp" #include "IpReferenced.hpp" #include "IpObserver.hpp" #include #include // for std::pair namespace Ipopt { /** TaggedObject class. * Often, certain calculations or operations are expensive, * and it can be very inefficient to perform these calculations * again if the input to the calculation has not changed * since the result was last stored. * This base class provides an efficient mechanism to update * a tag, indicating that the object has changed. * Users of a TaggedObject class, need their own Tag data * member to keep track of the state of the TaggedObject, the * last time they performed a calculation. A basic use case for * users of a class inheriting from TaggedObject follows like * this: * * 1. Initialize your own Tag by its default constructor. * * 2. Before an expensive calculation, * check if the TaggedObject has changed, passing in * your own Tag, indicating the last time you used * the object for the calculation. If it has changed, * perform the calculation again, and store the result. * If it has not changed, simply return the stored result. * * Here is a simple example: \verbatim if (vector.HasChanged(my_vector_tag_)) { my_vector_tag_ = vector.GetTag(); result = PerformExpensiveCalculation(vector); return result; } else { return result; } \endverbatim * * Objects derived from TaggedObject must indicate that they have changed to * the base class using the protected member function ObjectChanged(). For * example, a Vector class, inside its own set method, MUST call * ObjectChanged() to update the internally stored tag for comparison. */ class TaggedObject : public ReferencedObject, public Subject { public: /** Type for the Tag values * * To make the tag unique among all objects, we * include the memory address of the object into the * tag value. */ typedef std::pair Tag; /** Constructor. */ TaggedObject() : Subject(), /* We can initialize the tag counter to 0, because this objects Tag * will differ from a Tag() object in its first member. */ tagcount_(0) { ObjectChanged(); } /** Destructor. */ virtual ~TaggedObject() {} /** Users of TaggedObjects call this to * update their own internal tags every time * they perform the expensive operation. */ Tag GetTag() const { return Tag(this, tagcount_); } /** Users of TaggedObjects call this to * check if the object HasChanged since * they last updated their own internal * tag. */ bool HasChanged(const Tag comparison_tag) const { return (comparison_tag.first != this) || (comparison_tag.second != tagcount_); } protected: /** Objects derived from TaggedObject MUST call this * method every time their internal state changes to * update the internal tag for comparison */ void ObjectChanged() { DBG_START_METH("TaggedObject::ObjectChanged()", 0); tagcount_++; DBG_ASSERT(tagcount_ < std::numeric_limits::max()); // The Notify method from the Subject base class notifies all // registered Observers that this subject has changed. Notify(Observer::NT_Changed); } private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ TaggedObject(const TaggedObject&); /** Overloaded Equals Operator */ void operator=(const TaggedObject&); //@} /** The tag indicating the current state of the object. * We use this to compare against the comparison_tag * in the HasChanged method. This member is increased * every time the object changes. */ Tag::second_type tagcount_; /** The index indicating the cache priority for this * TaggedObject. If a result that depended on this * TaggedObject is cached, it will be cached with this * priority */ Index cache_priority_; }; /** The addition of two tags - do not use. * * @note Do not use this operator, unless you really know what you are doing. */ inline TaggedObject::Tag operator+(const TaggedObject::Tag& tag1, const TaggedObject::Tag& tag2) { return TaggedObject::Tag(tag1.first, tag1.second + tag2.second); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpRegOptions.cpp0000644000076600007660000012470612150270140017553 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRegOptions.cpp 2308 2013-05-26 02:16:00Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-18 #include "IpoptConfig.h" #include "IpRegOptions.hpp" #include #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CCTYPE # include #else # ifdef HAVE_CTYPE_H # include # else # error "don't have header file for ctype" # endif #endif namespace Ipopt { void RegisteredOption::OutputDescription(const Journalist& jnlst) const { std::string type_str = "Unknown"; if (type_ ==OT_Number) { type_str = "Real Number"; } else if (type_ ==OT_Integer) { type_str = "Integer"; } else if (type_ ==OT_String) { type_str = "String"; } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n### %s (%s) ###\nCategory: %s\nDescription: %s\n", name_.c_str(), type_str.c_str(), registering_category_.c_str(), short_description_.c_str()); if (type_ ==OT_Number) { if (has_lower_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%g", lower_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "-inf"); } if (lower_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= "); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "(%g)", default_number_); if (has_upper_ && upper_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= "); } if (has_upper_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%g\n", upper_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "+inf\n"); } } else if (type_ ==OT_Integer) { if (has_lower_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%d", (Index)lower_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "-inf"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= (%d) <= ", (Index)default_number_); if (has_upper_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%d\n", (Index)upper_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "+inf\n"); } } else if (type_ ==OT_String) { std::vector::const_iterator i; jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "Valid Settings:\n"); for (i = valid_strings_.begin(); i != valid_strings_.end(); i++) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\t%s (%s)\n", (*i).value_.c_str(), (*i).description_.c_str()); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "Default: \"%s\"\n", default_string_.c_str()); } } void RegisteredOption::OutputLatexDescription(const Journalist& jnlst) const { std::string latex_name; MakeValidLatexString(name_, latex_name); std::string latex_desc; MakeValidLatexString(short_description_, latex_desc); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\\paragraph{%s:}\\label{opt:%s} ", latex_name.c_str(), name_.c_str()); if( short_description_.length() == 0 ) jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "~"); else jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, latex_desc.c_str()); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " \\\\\n"); // Index length = name_.length() + short_description_.length(); // DBG_ASSERT(length <= 80); // jnlst.PrintStringOverLines(J_SUMMARY, J_DOCUMENTATION, 0, 50, // latex_desc.c_str()); if (long_description_ != "") { latex_desc = ""; MakeValidLatexString(long_description_, latex_desc); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " "); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, latex_desc.c_str()); } if (type_ == OT_Number) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " The valid range for this real option is \n$"); std::string buff; if (has_lower_) { buff = MakeValidLatexNumber(lower_); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%s", buff.c_str()); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%s", "{\\tt -inf}"); } if (has_lower_ && !lower_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " \\le "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "{\\tt %s }", latex_name.c_str()); if (has_upper_ && !upper_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " \\le "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } if (has_upper_) { buff = MakeValidLatexNumber(upper_); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%s", buff.c_str()); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%s", "{\\tt +inf}"); } buff = MakeValidLatexNumber(default_number_); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "$\nand its default value is $%s$.\n\n", buff.c_str()); } else if (type_ == OT_Integer) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " The valid range for this integer option is\n$"); if (has_lower_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%d \\le ", (Index)lower_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%s < ", "{\\tt -inf}"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "{\\tt %s }", latex_name.c_str()); if (has_upper_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " \\le %d", (Index)upper_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < %s", "{\\tt +inf}"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "$\nand its default value is $%d$.\n\n", (Index)default_number_); } else if (type_ == OT_String) { std::string buff; MakeValidLatexString(default_string_, buff); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " The default value for this string option is \"%s\".\n", buff.c_str()); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\\\\ \nPossible values:\n"); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\\begin{itemize}\n"); for (std::vector::const_iterator i = valid_strings_.begin(); i != valid_strings_.end(); i++) { std::string latex_value; MakeValidLatexString((*i).value_, latex_value); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " \\item %s", latex_value.c_str()); if( (*i).description_.length() > 0 ) { std::string latex_desc; MakeValidLatexString((*i).description_, latex_desc); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, ": "); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, latex_desc.c_str()); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\\end{itemize}\n"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } void RegisteredOption::MakeValidLatexString(std::string source, std::string& dest) const { std::string::iterator c; for (c=source.begin(); c!=source.end(); c++) { if (*c == '_') { dest.append("\\_"); } else if (*c == '^') { dest.append("\\^"); } else { dest += *c; } } } std::string RegisteredOption::MakeValidLatexNumber(Number value) const { char buffer[256]; Snprintf(buffer, 255, "%g", value); std::string source = buffer; std::string dest; std::string::iterator c; bool found_e = false; for (c=source.begin(); c!=source.end(); c++) { if (*c == 'e') { found_e = true; dest.append(" \\cdot 10^{"); } else { dest += *c; } } if (found_e) { dest.append("}"); } return dest; } void RegisteredOption::OutputShortDescription(const Journalist& jnlst) const { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%-30s", name_.c_str()); if (type_ == OT_Number) { if (has_lower_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%10g", lower_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%10s", "-inf"); } if (has_lower_ && !lower_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "(%11g)", default_number_); if (has_upper_ && !upper_strict_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= "); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < "); } if (has_upper_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%-10g\n", upper_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%-10s\n", "+inf"); } } else if (type_ == OT_Integer) { if (has_lower_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%10d <= ", (Index)lower_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "%10s < ", "-inf"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "(%11d)", (Index)default_number_); if (has_upper_) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " <= %-10d\n", (Index)upper_); } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " < %-10s\n", "+inf"); } } else if (type_ == OT_String) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "(\"%s\")\n", default_string_.c_str()); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " "); jnlst.PrintStringOverLines(J_SUMMARY, J_DOCUMENTATION, 3, 76, short_description_.c_str()); if (long_description_ != "") { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n "); jnlst.PrintStringOverLines(J_SUMMARY, J_DOCUMENTATION, 5, 74, long_description_.c_str()); } if (type_ == OT_String) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n Possible values:\n"); for (std::vector::const_iterator i = valid_strings_.begin(); i != valid_strings_.end(); i++) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " - %-23s", (*i).value_.c_str()); if( (*i).description_.length() > 0 ) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, " ["); jnlst.PrintStringOverLines(J_SUMMARY, J_DOCUMENTATION, 31, 48, (*i).description_.c_str()); jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "]"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } } else { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } bool RegisteredOption::IsValidStringSetting(const std::string& value) const { DBG_ASSERT(type_ == OT_String); std::vector::const_iterator i; for (i = valid_strings_.begin(); i != valid_strings_.end(); i++) { if (i->value_ == "*" || string_equal_insensitive(i->value_, value)) { return true; } } return false; } std::string RegisteredOption::MapStringSetting(const std::string& value) const { DBG_ASSERT(type_ == OT_String); std::string matched_setting = ""; std::vector::const_iterator i; for (i = valid_strings_.begin(); i != valid_strings_.end(); i++) { if (i->value_ == "*") { matched_setting = value; } else if (string_equal_insensitive(i->value_, value)) { matched_setting = i->value_; } } return matched_setting; } Index RegisteredOption::MapStringSettingToEnum(const std::string& value) const { DBG_ASSERT(type_ == OT_String); Index matched_setting = -1; Index cnt = 0; std::vector::const_iterator i; for (i = valid_strings_.begin(); i != valid_strings_.end(); i++) { ASSERT_EXCEPTION(i->value_ != "*", IpoptException, "Cannot map a wildcard setting to an enumeration"); if (string_equal_insensitive(i->value_, value)) { matched_setting = cnt; break; } cnt++; } ASSERT_EXCEPTION(matched_setting != -1, ERROR_CONVERTING_STRING_TO_ENUM, std::string("Could not find a match for setting ") + value + " in option: " + name_); return matched_setting; } bool RegisteredOption::string_equal_insensitive(const std::string& s1, const std::string& s2) const { using namespace std; if (s1.size()!=s2.size()) return false; string::const_iterator i1 = s1.begin(); string::const_iterator i2 = s2.begin(); while (i1!=s1.end()) { if (toupper(*i1)!=toupper(*i2)) return false; i1++; i2++; } return true; } void RegisteredOptions::AddNumberOption(const std::string& name, const std::string& short_description, Number default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Number); option->SetDefaultNumber(default_value); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddLowerBoundedNumberOption(const std::string& name, const std::string& short_description, Number lower, bool strict, Number default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Number); option->SetDefaultNumber(default_value); option->SetLowerNumber(lower, strict); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddUpperBoundedNumberOption(const std::string& name, const std::string& short_description, Number upper, bool strict, Number default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Number); option->SetDefaultNumber(default_value); option->SetUpperNumber(upper, strict); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddBoundedNumberOption(const std::string& name, const std::string& short_description, Number lower, bool lower_strict, Number upper, bool upper_strict, Number default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Number); option->SetDefaultNumber(default_value); option->SetLowerNumber(lower, lower_strict); option->SetUpperNumber(upper, upper_strict); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddIntegerOption(const std::string& name, const std::string& short_description, Index default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Integer); option->SetDefaultInteger(default_value); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddLowerBoundedIntegerOption(const std::string& name, const std::string& short_description, Index lower, Index default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Integer); option->SetDefaultInteger(default_value); option->SetLowerInteger(lower); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddUpperBoundedIntegerOption(const std::string& name, const std::string& short_description, Index upper, Index default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Integer); option->SetDefaultInteger(default_value); option->SetUpperInteger(upper); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddBoundedIntegerOption(const std::string& name, const std::string& short_description, Index lower, Index upper, Index default_value, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_Integer); option->SetDefaultInteger(default_value); option->SetLowerInteger(lower); option->SetUpperInteger(upper); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption(const std::string& name, const std::string& short_description, const std::string& default_value, const std::vector& settings, const std::vector& descriptions, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); DBG_ASSERT(settings.size() == descriptions.size()); for (int i=0; i<(int)settings.size(); i++) { option->AddValidStringSetting(settings[i], descriptions[i]); } ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption1(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption2(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption3(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption4(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption5(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption6(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); option->AddValidStringSetting(setting6, description6); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption7(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); option->AddValidStringSetting(setting6, description6); option->AddValidStringSetting(setting7, description7); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption8(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); option->AddValidStringSetting(setting6, description6); option->AddValidStringSetting(setting7, description7); option->AddValidStringSetting(setting8, description8); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption9(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& setting9, const std::string& description9, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); option->AddValidStringSetting(setting6, description6); option->AddValidStringSetting(setting7, description7); option->AddValidStringSetting(setting8, description8); option->AddValidStringSetting(setting9, description9); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } void RegisteredOptions::AddStringOption10(const std::string& name, const std::string& short_description, const std::string& default_value, const std::string& setting1, const std::string& description1, const std::string& setting2, const std::string& description2, const std::string& setting3, const std::string& description3, const std::string& setting4, const std::string& description4, const std::string& setting5, const std::string& description5, const std::string& setting6, const std::string& description6, const std::string& setting7, const std::string& description7, const std::string& setting8, const std::string& description8, const std::string& setting9, const std::string& description9, const std::string& setting10, const std::string& description10, const std::string& long_description) { SmartPtr option = new RegisteredOption(name, short_description, long_description, current_registering_category_, next_counter_++); option->SetType(OT_String); option->SetDefaultString(default_value); option->AddValidStringSetting(setting1, description1); option->AddValidStringSetting(setting2, description2); option->AddValidStringSetting(setting3, description3); option->AddValidStringSetting(setting4, description4); option->AddValidStringSetting(setting5, description5); option->AddValidStringSetting(setting6, description6); option->AddValidStringSetting(setting7, description7); option->AddValidStringSetting(setting8, description8); option->AddValidStringSetting(setting9, description9); option->AddValidStringSetting(setting10, description10); ASSERT_EXCEPTION(registered_options_.find(name) == registered_options_.end(), OPTION_ALREADY_REGISTERED, std::string("The option: ") + option->Name() + " has already been registered by someone else"); registered_options_[name] = option; } SmartPtr RegisteredOptions::GetOption(const std::string& name) { std::string tag_only = name; std::string::size_type pos = name.rfind(".", name.length()); if (pos != std::string::npos) { tag_only = name.substr(pos+1, name.length()-pos); } SmartPtr option; std::map< std::string, SmartPtr >::iterator reg_option = registered_options_.find(tag_only); if (reg_option == registered_options_.end()) { option = NULL; } else { option = ConstPtr(reg_option->second); } return option; } void RegisteredOptions::OutputOptionDocumentation(const Journalist& jnlst, std::list& categories) { // create a set to print sorted output // std::set // classes; // std::map >::iterator option; // for (option = registered_options_.begin(); option != registered_options_.end(); option++) { // classes.insert(option->second->RegisteringCategory()); // } std::list ::iterator i; for (i = categories.begin(); i != categories.end(); i++) { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n### %s ###\n\n", (*i).c_str()); std::map > class_options; std::map >::iterator option; for (option = registered_options_.begin(); option != registered_options_.end(); option++) { if (option->second->RegisteringCategory() == (*i)) { class_options[option->second->Counter()] = option->second; } } std::map >::const_iterator co; for (co = class_options.begin(); co != class_options.end(); co++) { co->second->OutputShortDescription(jnlst); } jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\n"); } } void RegisteredOptions::OutputLatexOptionDocumentation( const Journalist& jnlst, std::list& options_to_print) { if (!options_to_print.empty()) { std::list::iterator coption; for (coption = options_to_print.begin(); coption != options_to_print.end(); coption++) { // std::map >::iterator option; if (coption->c_str()[0] == '#') { jnlst.Printf(J_SUMMARY, J_DOCUMENTATION, "\\subsection{%s}\n\n", &coption->c_str()[1]); } else { SmartPtr option = registered_options_[*coption]; DBG_ASSERT(IsValid(option)); option->OutputLatexDescription(jnlst); } } } else { std::map >::iterator option; for (option = registered_options_.begin(); option != registered_options_.end(); option++) { option->second->OutputLatexDescription(jnlst); } } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/config_ipopt.h.in0000644000076600007660000000067411573171156017737 0ustar coincoin/* src/Common/config_ipopt.h.in. */ #ifndef __CONFIG_IPOPT_H__ #define __CONFIG_IPOPT_H__ /* Version number of project */ #undef IPOPT_VERSION /* Major Version number of project */ #undef IPOPT_VERSION_MAJOR /* Minor Version number of project */ #undef IPOPT_VERSION_MINOR /* Release Version number of project */ #undef IPOPT_VERSION_RELEASE /* Define to the C type corresponding to Fortran INTEGER */ #undef FORTRAN_INTEGER_TYPE #endif Ipopt-3.11.4/Ipopt/src/Common/IpObserver.cpp0000644000076600007660000000072611504216567017263 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpObserver.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpObserver.hpp" namespace Ipopt { #ifdef IP_DEBUG_OBSERVER const Index Observer::dbg_verbosity = 0; const Index Subject::dbg_verbosity = 0; #endif } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/IpCachedResults.hpp0000644000076600007660000005727212141450650020231 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCachedResults.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPCACHEDRESULTS_HPP__ #define __IPCACHEDRESULTS_HPP__ #include "IpTaggedObject.hpp" #include "IpObserver.hpp" #include #include #include namespace Ipopt { #if COIN_IPOPT_CHECKLEVEL > 2 # define IP_DEBUG_CACHE #endif #ifdef IP_DEBUG_CACHE # include "IpDebug.hpp" #endif // Forward Declarations template class DependentResult; // AW: I'm taking this out, since this is by far the most used // class. We should keep it as simple as possible. // /** Cache Priority Enum */ // enum CachePriority // { // CP_Lowest, // CP_Standard, // CP_Trial, // CP_Iterate // }; /** Templated class for Cached Results. This class stores up to a * given number of "results", entities that are stored here * together with identifiers, that can be used to later retrieve the * information again. * * Typically, T is a SmartPtr for some calculated quantity that * should be stored (such as a Vector). The identifiers (or * dependencies) are a (possibly varying) number of Tags from * TaggedObjects, and a number of Numbers. Results are added to * the cache using the AddCachedResults methods, and the can be * retrieved with the GetCachedResults methods. The second set of * methods checks whether a result has been cached for the given * identifiers. If a corresponding result is found, a copy of it * is returned and the method evaluates to true, otherwise it * evaluates to false. * * Note that cached results can become "stale", namely when a * TaggedObject that is used to identify this CachedResult is * changed. When this happens, the cached result can never be * asked for again, so that there is no point in storing it any * longer. For this purpose, a cached result, which is stored as a * DependentResult, inherits off an Observer. This Observer * retrieves notification whenever a TaggedObject dependency has * changed. Stale results are later removed from the cache. */ template class CachedResults { public: #ifdef IP_DEBUG_CACHE /** (Only if compiled in DEBUG mode): debug verbosity level */ static const Index dbg_verbosity; #endif /** @name Constructors and Destructors. */ //@{ /** Constructor, where max_cache_size is the maximal number of * results that should be cached. If max_cache_size is negative, * we allow an infinite amount of cache. */ CachedResults(Int max_cache_size); /** Destructor */ virtual ~CachedResults(); //@} /** @name Generic methods for adding and retrieving cached results. */ //@{ /** Generic method for adding a result to the cache, given a * std::vector of TaggesObjects and a std::vector of Numbers. */ void AddCachedResult(const T& result, const std::vector& dependents, const std::vector& scalar_dependents); /** Generic method for retrieving a cached results, given the * dependencies as a std::vector of TaggesObjects and a * std::vector of Numbers. */ bool GetCachedResult(T& retResult, const std::vector& dependents, const std::vector& scalar_dependents) const; /** Method for adding a result, providing only a std::vector of * TaggedObjects. */ void AddCachedResult(const T& result, const std::vector& dependents); /** Method for retrieving a cached result, providing only a * std::vector of TaggedObjects. */ bool GetCachedResult(T& retResult, const std::vector& dependents) const; //@} /** @name Pointer-based methods for adding and retrieving cached * results, providing dependencies explicitly. */ //@{ /** Method for adding a result to the cache, proving one * dependency as a TaggedObject explicitly. */ void AddCachedResult1Dep(const T& result, const TaggedObject* dependent1); /** Method for retrieving a cached result, proving one dependency * as a TaggedObject explicitly. */ bool GetCachedResult1Dep(T& retResult, const TaggedObject* dependent1); /** Method for adding a result to the cache, proving two * dependencies as a TaggedObject explicitly. */ void AddCachedResult2Dep(const T& result, const TaggedObject* dependent1, const TaggedObject* dependent2); /** Method for retrieving a cached result, proving two * dependencies as a TaggedObject explicitly. */ bool GetCachedResult2Dep(T& retResult, const TaggedObject* dependent1, const TaggedObject* dependent2); /** Method for adding a result to the cache, proving three * dependencies as a TaggedObject explicitly. */ void AddCachedResult3Dep(const T& result, const TaggedObject* dependent1, const TaggedObject* dependent2, const TaggedObject* dependent3); /** Method for retrieving a cached result, proving three * dependencies as a TaggedObject explicitly. */ bool GetCachedResult3Dep(T& retResult, const TaggedObject* dependent1, const TaggedObject* dependent2, const TaggedObject* dependent3); /** @name Pointer-free version of the Add and Get methods */ //@{ bool GetCachedResult1Dep(T& retResult, const TaggedObject& dependent1) { return GetCachedResult1Dep(retResult, &dependent1); } bool GetCachedResult2Dep(T& retResult, const TaggedObject& dependent1, const TaggedObject& dependent2) { return GetCachedResult2Dep(retResult, &dependent1, &dependent2); } bool GetCachedResult3Dep(T& retResult, const TaggedObject& dependent1, const TaggedObject& dependent2, const TaggedObject& dependent3) { return GetCachedResult3Dep(retResult, &dependent1, &dependent2, &dependent3); } void AddCachedResult1Dep(const T& result, const TaggedObject& dependent1) { AddCachedResult1Dep(result, &dependent1); } void AddCachedResult2Dep(const T& result, const TaggedObject& dependent1, const TaggedObject& dependent2) { AddCachedResult2Dep(result, &dependent1, &dependent2); } void AddCachedResult3Dep(const T& result, const TaggedObject& dependent1, const TaggedObject& dependent2, const TaggedObject& dependent3) { AddCachedResult3Dep(result, &dependent1, &dependent2, &dependent3); } //@} /** Invalidates the result for given dependencies. Sets the stale * flag for the corresponding cached result to true if it is * found. Returns true, if the result was found. */ bool InvalidateResult(const std::vector& dependents, const std::vector& scalar_dependents); /** Invalidates all cached results */ void Clear(); /** Invalidate all cached results and changes max_cache_size */ void Clear(Int max_cache_size); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CachedResults(); /** Copy Constructor */ CachedResults(const CachedResults&); /** Overloaded Equals Operator */ void operator=(const CachedResults&); //@} /** maximum number of cached results */ Int max_cache_size_; /** list of currently cached results. */ mutable std::list*>* cached_results_; /** internal method for removing stale DependentResults from the * list. It is called at the beginning of every * GetDependentResult method. */ void CleanupInvalidatedResults() const; /** Print list of currently cached results */ void DebugPrintCachedResults() const; }; /** Templated class which stores one entry for the CachedResult * class. It stores the result (of type T), together with its * dependencies (vector of TaggedObjects and vector of Numbers). * It also stores a priority. */ template class DependentResult : public Observer { public: #ifdef IP_DEBUG_CACHE static const Index dbg_verbosity; #endif /** @name Constructor, Destructors */ //@{ /** Constructor, given all information about the result. */ DependentResult(const T& result, const std::vector& dependents, const std::vector& scalar_dependents); /** Destructor. */ ~DependentResult(); //@} /** @name Accessor method. */ //@{ /** This returns true, if the DependentResult is no longer valid. */ bool IsStale() const; /** Invalidates the cached result. */ void Invalidate(); /** Returns the cached result. */ const T& GetResult() const; //@} /** This method returns true if the dependencies provided to this * function are identical to the ones stored with the * DependentResult. */ bool DependentsIdentical(const std::vector& dependents, const std::vector& scalar_dependents) const; /** Print information about this DependentResults. */ void DebugPrint() const; protected: /** This method is overloading the pure virtual method from the * Observer base class. This method is called when a Subject * registered for this Observer sends a notification. In this * particular case, if this method is called with * notify_type==NT_Changed or NT_BeingDeleted, then this results * is marked as stale. */ virtual void RecieveNotification(NotifyType notify_type, const Subject* subject); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DependentResult(); /** Copy Constructor */ DependentResult(const DependentResult&); /** Overloaded Equals Operator */ void operator=(const DependentResult&); //@} /** Flag indicating, if the cached result is still valid. A result becomes invalid, if the RecieveNotification method is called with NT_Changed */ bool stale_; /** The value of the dependent results */ const T result_; /** Dependencies in form of TaggedObjects */ std::vector dependent_tags_; /** Dependencies in form a Numbers */ std::vector scalar_dependents_; }; #ifdef IP_DEBUG_CACHE template const Index CachedResults::dbg_verbosity = 0; template const Index DependentResult::dbg_verbosity = 0; #endif template DependentResult::DependentResult( const T& result, const std::vector& dependents, const std::vector& scalar_dependents) : stale_(false), result_(result), dependent_tags_(dependents.size()), scalar_dependents_(scalar_dependents) { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::DependentResult()", dbg_verbosity); #endif for (Index i=0; i<(Index)dependents.size(); i++) { if (dependents[i]) { // Call the RequestAttach method of the Observer base class. // This will add this dependent result in the Observer list // for the Subject dependents[i]. As a consequence, the // RecieveNotification method of this DependentResult will be // called with notify_type=NT_Changed, whenever the // TaggedResult dependents[i] is changed (i.e. its HasChanged // method is called). RequestAttach(NT_Changed, dependents[i]); dependent_tags_[i] = dependents[i]->GetTag(); } else { dependent_tags_[i] = TaggedObject::Tag(); } } } template DependentResult::~DependentResult() { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::~DependentResult()", dbg_verbosity); //DBG_ASSERT(stale_ == true); #endif // Nothing to be done here, destructor // of T should sufficiently remove // any memory, etc. } template bool DependentResult::IsStale() const { return stale_; } template void DependentResult::Invalidate() { stale_ = true; } template void DependentResult::RecieveNotification(NotifyType notify_type, const Subject* subject) { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::RecieveNotification", dbg_verbosity); #endif if (notify_type == NT_Changed || notify_type==NT_BeingDestroyed) { stale_ = true; // technically, I could unregister the notifications here, but they // aren't really hurting anything } } template bool DependentResult::DependentsIdentical(const std::vector& dependents, const std::vector& scalar_dependents) const { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::DependentsIdentical", dbg_verbosity); DBG_ASSERT(stale_ == false); DBG_ASSERT(dependents.size() == dependent_tags_.size()); #endif bool retVal = true; if (dependents.size() != dependent_tags_.size() || scalar_dependents.size() != scalar_dependents_.size()) { retVal = false; } else { for (Index i=0; i<(Index)dependents.size(); i++) { if ( (dependents[i] && dependents[i]->GetTag() != dependent_tags_[i]) || (!dependents[i] && dependent_tags_[i] != TaggedObject::Tag()) ) { retVal = false; break; } } if (retVal) { for (Index i=0; i<(Index)scalar_dependents.size(); i++) { if (scalar_dependents[i] != scalar_dependents_[i]) { retVal = false; break; } } } } return retVal; } template const T& DependentResult::GetResult() const { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::GetResult()", dbg_verbosity); DBG_ASSERT(stale_ == false); #endif return result_; } template void DependentResult::DebugPrint() const { #ifdef IP_DEBUG_CACHE DBG_START_METH("DependentResult::DebugPrint", dbg_verbosity); #endif } template CachedResults::CachedResults(Int max_cache_size) : max_cache_size_(max_cache_size), cached_results_(NULL) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::CachedResults", dbg_verbosity); #endif } template CachedResults::~CachedResults() { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::!CachedResults()", dbg_verbosity); #endif if (cached_results_) { for (typename std::list< DependentResult* >::iterator iter = cached_results_-> begin(); iter != cached_results_->end(); iter++) { delete *iter; } delete cached_results_; } /* while (!cached_results_.empty()) { DependentResult* result = cached_results_.back(); cached_results_.pop_back(); delete result; } */ } template void CachedResults::AddCachedResult(const T& result, const std::vector& dependents, const std::vector& scalar_dependents) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::AddCachedResult", dbg_verbosity); #endif CleanupInvalidatedResults(); // insert the new one here DependentResult* newResult = new DependentResult(result, dependents, scalar_dependents); if (!cached_results_) { cached_results_ = new std::list*>; } cached_results_->push_front(newResult); // keep the list small enough if (max_cache_size_ >= 0) { // if negative, allow infinite cache // non-negative - limit size of list to max_cache_size DBG_ASSERT((Int)cached_results_->size()<=max_cache_size_+1); if ((Int)cached_results_->size() > max_cache_size_) { delete cached_results_->back(); cached_results_->pop_back(); } } #ifdef IP_DEBUG_CACHE DBG_EXEC(2, DebugPrintCachedResults()); #endif } template void CachedResults::AddCachedResult(const T& result, const std::vector& dependents) { std::vector scalar_dependents; AddCachedResult(result, dependents, scalar_dependents); } template bool CachedResults::GetCachedResult(T& retResult, const std::vector& dependents, const std::vector& scalar_dependents) const { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::GetCachedResult", dbg_verbosity); #endif if (!cached_results_) return false; CleanupInvalidatedResults(); bool retValue = false; typename std::list< DependentResult* >::const_iterator iter; for (iter = cached_results_->begin(); iter != cached_results_->end(); iter++) { if ((*iter)->DependentsIdentical(dependents, scalar_dependents)) { retResult = (*iter)->GetResult(); retValue = true; break; } } #ifdef IP_DEBUG_CACHE DBG_EXEC(2, DebugPrintCachedResults()); #endif return retValue; } template bool CachedResults::GetCachedResult( T& retResult, const std::vector& dependents) const { std::vector scalar_dependents; return GetCachedResult(retResult, dependents, scalar_dependents); } template void CachedResults::AddCachedResult1Dep(const T& result, const TaggedObject* dependent1) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::AddCachedResult1Dep", dbg_verbosity); #endif std::vector dependents(1); dependents[0] = dependent1; AddCachedResult(result, dependents); } template bool CachedResults::GetCachedResult1Dep(T& retResult, const TaggedObject* dependent1) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::GetCachedResult1Dep", dbg_verbosity); #endif std::vector dependents(1); dependents[0] = dependent1; return GetCachedResult(retResult, dependents); } template void CachedResults::AddCachedResult2Dep(const T& result, const TaggedObject* dependent1, const TaggedObject* dependent2) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::AddCachedResult2dDep", dbg_verbosity); #endif std::vector dependents(2); dependents[0] = dependent1; dependents[1] = dependent2; AddCachedResult(result, dependents); } template bool CachedResults::GetCachedResult2Dep(T& retResult, const TaggedObject* dependent1, const TaggedObject* dependent2) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::GetCachedResult2Dep", dbg_verbosity); #endif std::vector dependents(2); dependents[0] = dependent1; dependents[1] = dependent2; return GetCachedResult(retResult, dependents); } template void CachedResults::AddCachedResult3Dep(const T& result, const TaggedObject* dependent1, const TaggedObject* dependent2, const TaggedObject* dependent3) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::AddCachedResult2dDep", dbg_verbosity); #endif std::vector dependents(3); dependents[0] = dependent1; dependents[1] = dependent2; dependents[2] = dependent3; AddCachedResult(result, dependents); } template bool CachedResults::GetCachedResult3Dep(T& retResult, const TaggedObject* dependent1, const TaggedObject* dependent2, const TaggedObject* dependent3) { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::GetCachedResult2Dep", dbg_verbosity); #endif std::vector dependents(3); dependents[0] = dependent1; dependents[1] = dependent2; dependents[2] = dependent3; return GetCachedResult(retResult, dependents); } template bool CachedResults::InvalidateResult(const std::vector& dependents, const std::vector& scalar_dependents) { if (!cached_results_) return false; CleanupInvalidatedResults(); bool retValue = false; typename std::list< DependentResult* >::const_iterator iter; for (iter = cached_results_->begin(); iter != cached_results_->end(); iter++) { if ((*iter)->DependentsIdentical(dependents, scalar_dependents)) { (*iter)->Invalidate(); retValue = true; break; } } return retValue; } template void CachedResults::Clear() { if (!cached_results_) return; typename std::list< DependentResult* >::const_iterator iter; for (iter = cached_results_->begin(); iter != cached_results_->end(); iter++) { (*iter)->Invalidate(); } CleanupInvalidatedResults(); } template void CachedResults::Clear(Int max_cache_size) { Clear(); max_cache_size_ = max_cache_size; } template void CachedResults::CleanupInvalidatedResults() const { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::CleanupInvalidatedResults", dbg_verbosity); #endif if (!cached_results_) return; typename std::list< DependentResult* >::iterator iter; iter = cached_results_->begin(); while (iter != cached_results_->end()) { if ((*iter)->IsStale()) { typename std::list< DependentResult* >::iterator iter_to_remove = iter; iter++; DependentResult* result_to_delete = (*iter_to_remove); cached_results_->erase(iter_to_remove); delete result_to_delete; } else { iter++; } } } template void CachedResults::DebugPrintCachedResults() const { #ifdef IP_DEBUG_CACHE DBG_START_METH("CachedResults::DebugPrintCachedResults", dbg_verbosity); if (DBG_VERBOSITY()>=2 ) { if (!cached_results_) { DBG_PRINT((2,"Currentlt no cached results:\n")); } else { typename std::list< DependentResult* >::const_iterator iter; DBG_PRINT((2,"Current set of cached results:\n")); for (iter = cached_results_->begin(); iter != cached_results_->end(); iter++) { DBG_PRINT((2," DependentResult:0x%x\n", (*iter))); } } } #endif } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Common/IpUtils.cpp0000644000076600007660000001363512116344132016565 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpUtils.cpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-12 #include "IpoptConfig.h" #include "IpUtils.hpp" #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif #ifdef HAVE_CTIME # include #else # ifdef HAVE_TIME_H # include # else # error "don't have header file for time" # endif #endif #ifdef HAVE_CSTDIO # include // The special treatment of vsnprintf on SUN has been suggsted by Lou // Hafer 2010/07/04 # if defined(HAVE_VSNPRINTF) && defined(__SUNPRO_CC) namespace std { # include } # endif #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTDARG # include #else # ifdef HAVE_STDARG_H # include # else # error "don't have header file for stdarg" # endif #endif #include // The following code has been copied from CoinUtils' CoinTime /** 8< (BEGIN) ******************************** */ #if defined(_MSC_VER) // Turn off compiler warning about long names # pragma warning(disable:4786) #else // MacOS-X and FreeBSD needs sys/time.h #if defined(__MACH__) || defined (__FreeBSD__) #include #endif #if !defined(__MSVCRT__) #include #endif #endif //############################################################################# #if defined(_MSC_VER) #if 0 // change this to 1 if want to use the win32 API #include #ifdef small /* for some unfathomable reason (to me) rpcndr.h (pulled in by windows.h) does a '#define small char' */ #undef small #endif #define TWO_TO_THE_THIRTYTWO 4294967296.0 #define DELTA_EPOCH_IN_SECS 11644473600.0 inline double IpCoinGetTimeOfDay() { FILETIME ft; GetSystemTimeAsFileTime(&ft); double t = ft.dwHighDateTime * TWO_TO_THE_THIRTYTWO + ft.dwLowDateTime; t = t/10000000.0 - DELTA_EPOCH_IN_SECS; return t; } #else #include #include inline double IpCoinGetTimeOfDay() { struct _timeb timebuffer; #pragma warning(disable:4996) _ftime( &timebuffer ); // C4996 #pragma warning(default:4996) return timebuffer.time + timebuffer.millitm/1000.0; } #endif #else #include inline double IpCoinGetTimeOfDay() { struct timeval tv; gettimeofday(&tv, NULL); return static_cast(tv.tv_sec) + static_cast(tv.tv_usec)/1000000.0; } #endif // _MSC_VER /** 8< (END) ******************************** */ namespace Ipopt { bool IsFiniteNumber(Number val) { #ifdef COIN_C_FINITE return (bool)COIN_C_FINITE(val); #else return true; #endif } Number IpRandom01() { #ifdef HAVE_DRAND48 return Number(drand48()); #else # ifdef HAVE_RAND return Number(rand())/Number(RAND_MAX); # else # ifdef HAVE_STD__RAND return Number(std::rand())/Number(RAND_MAX); # else # error "don't have function for random number generator" # endif # endif #endif } void IpResetRandom01() { #ifdef HAVE_DRAND48 srand48(1); #else # ifdef HAVE_RAND srand(1); # else # ifdef HAVE_STD__RAND std::srand(1); # else # error "don't have function for random number generator" # endif # endif #endif } static double Wallclock_firstCall_ = -1.; // The following function were taken from CoinTime.hpp in COIN/Coin Number CpuTime() { double cpu_temp; #if defined(_MSC_VER) || defined(__MSVCRT__) unsigned int ticksnow; /* clock_t is same as int */ ticksnow = (unsigned int)clock(); cpu_temp = (double)((double)ticksnow/CLOCKS_PER_SEC); #else struct rusage usage; getrusage(RUSAGE_SELF,&usage); cpu_temp = (double)usage.ru_utime.tv_sec; cpu_temp += 1.0e-6*((double) usage.ru_utime.tv_usec); #endif return cpu_temp; } Number SysTime() { double sys_temp; #if defined(_MSC_VER) || defined(__MSVCRT__) // not yet implemented for Windows sys_temp = 0.; #else struct rusage usage; getrusage(RUSAGE_SELF,&usage); sys_temp = (double)usage.ru_stime.tv_sec; sys_temp += 1.0e-6*((double) usage.ru_stime.tv_usec); #endif return sys_temp; } Number WallclockTime() { double callTime = IpCoinGetTimeOfDay(); if (Wallclock_firstCall_ == -1.) { Wallclock_firstCall_ = callTime; } return callTime - Wallclock_firstCall_; } bool Compare_le(Number lhs, Number rhs, Number BasVal) { Number mach_eps = std::numeric_limits::epsilon(); return (lhs - rhs <= 10.*mach_eps*fabs(BasVal)); } int Snprintf(char* str, long size, const char* format, ...) { #if defined(HAVE_VSNPRINTF) && defined(__SUNPRO_CC) std::va_list ap; #else va_list ap; #endif va_start(ap, format); int ret; #ifdef HAVE_VA_COPY va_list apcopy; va_copy(apcopy, ap); # ifdef HAVE_VSNPRINTF # ifdef __SUNPRO_CC ret = std::vsnprintf(str, size, format, apcopy); # else ret = vsnprintf(str, size, format, apcopy); # endif # else # ifdef HAVE__VSNPRINTF ret = _vsnprintf(str, size, format, apcopy); # else ret = vsprintf(str, format, apcopy); # endif va_end(apcopy); # endif #else # ifdef HAVE_VSNPRINTF # ifdef __SUNPRO_CC ret = std::vsnprintf(str, size, format, ap); # else ret = vsnprintf(str, size, format, ap); # endif # else # ifdef HAVE__VSNPRINTF ret = _vsnprintf(str, size, format, ap); # else ret = vsprintf(str, format, ap); # endif # endif #endif va_end(ap); return ret; } } //namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/Makefile.in0000644000076600007660000005663012156624616016553 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/Common DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/config_ipopt.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libcommon_la_LIBADD = am_libcommon_la_OBJECTS = IpDebug.lo IpJournalist.lo IpObserver.lo \ IpOptionsList.lo IpRegOptions.lo IpUtils.lo libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcommon_la_SOURCES) DIST_SOURCES = $(libcommon_la_SOURCES) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includeipoptdir)" includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpCachedResults.hpp \ IpDebug.hpp \ IpException.hpp \ IpJournalist.hpp \ IpObserver.hpp \ IpOptionsList.hpp \ IpReferenced.hpp \ IpRegOptions.hpp \ IpSmartPtr.hpp \ IpTaggedObject.hpp \ IpTimedTask.hpp \ IpTypes.hpp \ IpUtils.hpp noinst_LTLIBRARIES = libcommon.la libcommon_la_SOURCES = \ IpoptConfig.h \ IpCachedResults.hpp \ IpDebug.cpp IpDebug.hpp \ IpException.hpp \ IpJournalist.cpp IpJournalist.hpp \ IpObserver.cpp IpObserver.hpp \ IpOptionsList.cpp IpOptionsList.hpp \ IpRegOptions.cpp IpRegOptions.hpp \ IpReferenced.hpp \ IpSmartPtr.hpp \ IpTaggedObject.hpp \ IpTimedTask.hpp \ IpTypes.hpp \ IpUtils.cpp IpUtils.hpp libcommon_la_LDFLAGS = $(LT_LDFLAGS) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` # Astyle stuff ASTYLE_FILES = \ IpCachedResults.hppbak \ IpDebug.cppbak IpDebug.hppbak \ IpException.hppbak \ IpJournalist.cppbak IpJournalist.hppbak \ IpObserver.cppbak IpObserver.hppbak \ IpOptionsList.cppbak IpOptionsList.hppbak \ IpRegOptions.cppbak IpRegOptions.hppbak \ IpReferenced.hppbak \ IpSmartPtr.hppbak \ IpTaggedObject.hppbak \ IpTimedTask.hppbak \ IpTypes.hppbak \ IpUtils.cppbak IpUtils.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: config.h config_ipopt.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Common/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status src/Common/config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ config_ipopt.h: stamp-h2 @if test ! -f $@; then \ rm -f stamp-h2; \ $(MAKE) stamp-h2; \ else :; fi stamp-h2: $(srcdir)/config_ipopt.h.in $(top_builddir)/config.status @rm -f stamp-h2 cd $(top_builddir) && $(SHELL) ./config.status src/Common/config_ipopt.h distclean-hdr: -rm -f config.h stamp-h1 config_ipopt.h stamp-h2 clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES) $(CXXLINK) $(libcommon_la_LDFLAGS) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDebug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpJournalist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpObserver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpOptionsList.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRegOptions.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpUtils.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in config_ipopt.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_ipopt.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in config_ipopt.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in config_ipopt.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h config_ipopt.h installdirs: for dir in "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeipoptHEADERS install-exec-am: install-exec-local install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeipoptHEADERS uninstall-info-am \ uninstall-local .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-exec-local install-includeipoptHEADERS install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-includeipoptHEADERS \ uninstall-info-am uninstall-local install-exec-local: $(install_sh_DATA) config_ipopt.h $(DESTDIR)$(includeipoptdir)/IpoptConfig.h uninstall-local: rm -f $(DESTDIR)$(includeipoptdir)/IpoptConfig.h astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Common/IpOptionsList.cpp0000644000076600007660000005737012135264167017772 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOptionsList.cpp 2222 2013-04-22 16:42:31Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpOptionsList.hpp" #ifdef HAVE_CCTYPE # include #else # ifdef HAVE_CTYPE_H # include # else # error "don't have header file for ctype" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # else # error "don't have header file for stdlib" # endif #endif #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for stdlib" # endif #endif namespace Ipopt { bool OptionsList::SetStringValue(const std::string& tag, const std::string& value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { if (IsValid(reg_options_)) { SmartPtr option = reg_options_->GetOption(tag); if (IsNull(option)) { if (IsValid(jnlst_)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is not a valid option. Please check the list of available options.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (option->Type() != OT_String) { if (IsValid(jnlst_)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_Number) { msg += " Number"; } else if (option->Type() == OT_Integer) { msg += " Integer"; } else { msg += " Unknown"; } msg += ", not of type String. Please check the documentation for options.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (!option->IsValidStringSetting(value)) { if (IsValid(jnlst_)) { std::string msg = "Setting: \"" + value; msg += "\" is not a valid setting for Option: "; msg += tag; msg += ". Check the option documentation.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } } if (!will_allow_clobber(tag)) { if (IsValid(jnlst_)) { std::string msg = "WARNING: Tried to set option \"" + tag; msg += "\" to a value of \"" + value; msg += "\",\n but the previous value is set to disallow clobbering.\n"; msg += " The setting will remain as: \"" + tag; msg += " " + options_[lowercase(tag)].GetValue(); msg += "\"\n"; jnlst_->Printf(J_WARNING, J_MAIN, msg.c_str()); } } else { // if (will_allow_clobber(tag)) { OptionsList::OptionValue optval(value, allow_clobber, dont_print); options_[lowercase(tag)] = optval; } return true; // std::string msg = "Option: \"" + tag; // msg += " "; // msg += value; // msg += "\" not taken because a value of \n\"" ; // msg += options_[lowercase(tag)].GetValue(); // msg += "\" already exists and is set to disallow clobbering.\n\n"; // jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); // return false; } bool OptionsList::SetNumericValue(const std::string& tag, Number value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { char buffer[256]; Snprintf(buffer, 255, "%g", value); if (IsValid(reg_options_)) { SmartPtr option = reg_options_->GetOption(tag); if (IsNull(option)) { if (IsValid(jnlst_)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is not a valid option. Please check the list of available options.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (option->Type() != OT_Number) { if (IsValid(jnlst_)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_String) { msg += " String"; } else if (option->Type() == OT_Integer) { msg += " Integer"; } else { msg += " Unknown"; } msg += ", not of type Number. Please check the documentation for options.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (!option->IsValidNumberSetting(value)) { if (IsValid(jnlst_)) { std::string msg = "Setting: \""; msg += buffer; msg += "\" is not a valid setting for Option: "; msg += tag; msg += ". Check the option documentation.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } } if (!will_allow_clobber(tag)) { if (IsValid(jnlst_)) { std::string msg = "WARNING: Tried to set option \"" + tag; msg += "\" to a value of \""; msg += buffer; msg += "\",\n but the previous value is set to disallow clobbering.\n"; msg += " The setting will remain as: \"" + tag; msg += " " + options_[lowercase(tag)].GetValue(); msg += "\"\n"; jnlst_->Printf(J_WARNING, J_MAIN, msg.c_str()); } } else { OptionsList::OptionValue optval(buffer, allow_clobber, dont_print); options_[lowercase(tag)] = optval; } return true; } bool OptionsList::SetIntegerValue(const std::string& tag, Index value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { char buffer[256]; Snprintf(buffer, 255, "%d", value); if (IsValid(reg_options_)) { SmartPtr option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is not a valid option. Please check the list of available options.\n"; if (IsValid(jnlst_)) { jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (option->Type() != OT_Integer) { if (IsValid(jnlst_)) { std::string msg = "Tried to set Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_String) { msg += " String"; } else if (option->Type() == OT_Number) { msg += " Number"; } else { msg += " Unknown"; } msg += ", not of type Integer. Please check the documentation for options.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } if (!option->IsValidIntegerSetting(value)) { if (IsValid(jnlst_)) { std::string msg = "Setting: \""; msg += buffer; msg += "\" is not a valid setting for Option: "; msg += tag; msg += ". Check the option documentation.\n"; jnlst_->Printf(J_ERROR, J_MAIN, msg.c_str()); option->OutputDescription(*jnlst_); } //THROW_EXCEPTION(OPTION_INVALID, msg); return false; } } if (!will_allow_clobber(tag)) { if (IsValid(jnlst_)) { std::string msg = "WARNING: Tried to set option \"" + tag; msg += "\" to a value of \""; msg += buffer; msg += "\",\n but the previous value is set to disallow clobbering.\n"; msg += " The setting will remain as: \"" + tag; msg += " " + options_[lowercase(tag)].GetValue(); msg += "\"\n"; jnlst_->Printf(J_WARNING, J_MAIN, msg.c_str()); } } else { // if (will_allow_clobber(tag)) { OptionsList::OptionValue optval(buffer, allow_clobber, dont_print); options_[lowercase(tag)] = optval; } return true; } bool OptionsList::SetStringValueIfUnset(const std::string& tag, const std::string& value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { std::string val; bool found = GetStringValue(tag, val, ""); if (!found) { return SetStringValue(tag, value, allow_clobber, dont_print); } return true; } bool OptionsList::SetNumericValueIfUnset(const std::string& tag, Number value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { Number val; bool found = GetNumericValue(tag, val, ""); if (!found) { return SetNumericValue(tag, value, allow_clobber, dont_print); } return true; } bool OptionsList::SetIntegerValueIfUnset(const std::string& tag, Index value, bool allow_clobber, /* = true */ bool dont_print /* = false */) { Index val; bool found = GetIntegerValue(tag, val, ""); if (!found) { return SetIntegerValue(tag, value, allow_clobber, dont_print); } return true; } bool OptionsList::GetStringValue(const std::string& tag, std::string& value, const std::string& prefix) const { SmartPtr option = NULL; bool found = find_tag(tag, prefix, value); if (IsValid(reg_options_)) { option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is not a valid registered option."; THROW_EXCEPTION(OPTION_INVALID, msg); } if (option->Type() != OT_String) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_Integer) { msg += " Integer"; } else if (option->Type() == OT_Number) { msg += " Number"; } else { msg += " Unknown"; } msg += ", not of type String. Please check the documentation for options."; if (IsValid(jnlst_)) { option->OutputDescription(*jnlst_); } THROW_EXCEPTION(OPTION_INVALID, msg); } if (found) { value = option->MapStringSetting(value); } else { value = option->DefaultString(); } } return found; } bool OptionsList::GetEnumValue(const std::string& tag, Index& value, const std::string& prefix) const { std::string str; SmartPtr option = NULL; bool found = find_tag(tag, prefix, str); if (IsValid(reg_options_)) { option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is not a valid registered option."; THROW_EXCEPTION(OPTION_INVALID, msg); } if (option->Type() != OT_String) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_Integer) { msg += " Integer"; } else if (option->Type() == OT_Number) { msg += " Number"; } else { msg += " Unknown"; } msg += ", not of type String. Please check the documentation for options."; if (IsValid(jnlst_)) { option->OutputDescription(*jnlst_); } THROW_EXCEPTION(OPTION_INVALID, msg); } if (found) { value = option->MapStringSettingToEnum(str); } else { value = option->DefaultStringAsEnum(); } } return found; } bool OptionsList::GetBoolValue(const std::string& tag, bool& value, const std::string& prefix) const { std::string str; bool ret = GetStringValue(tag, str, prefix); if (str == "no" || str == "false" || str == "off") { value = false; } else if (str == "yes" || str == "true" || str == "on") { value = true; } else { THROW_EXCEPTION(OPTION_INVALID, "Tried to get a boolean from an option and failed."); } return ret; } bool OptionsList::GetNumericValue(const std::string& tag, Number& value, const std::string& prefix) const { SmartPtr option = NULL; if (IsValid(reg_options_)) { option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is not a valid registered option."; THROW_EXCEPTION(OPTION_INVALID, msg); } if (option->Type() != OT_Number) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_Integer) { msg += " Integer"; } else if (option->Type() == OT_String) { msg += " String"; } else { msg += " Unknown"; } msg += ", not of type Number. Please check the documentation for options."; if (IsValid(jnlst_)) { option->OutputDescription(*jnlst_); } THROW_EXCEPTION(OPTION_INVALID, msg); } } std::string strvalue; if (find_tag(tag, prefix, strvalue)) { // Some people like to use 'd' instead of 'e' in floating point // numbers. Therefore, we change a 'd' to an 'e' char* buffer = new char[strvalue.length()+1]; strcpy(buffer, strvalue.c_str()); for (int i=0; i<(int)strvalue.length(); ++i) { if (buffer[i]=='d' || buffer[i]=='D') { buffer[i] = 'e'; } } char* p_end; Number retval = strtod(buffer, &p_end); if (*p_end!='\0' && !isspace(*p_end)) { delete [] buffer; std::string msg = "Option \"" + tag + "\": Double value expected, but non-numeric value \"" + strvalue+"\" found.\n"; THROW_EXCEPTION(OPTION_INVALID, msg); } delete [] buffer; value = retval; return true; } else if (IsValid(option)) { value = option->DefaultNumber(); return false; } return false; } bool OptionsList::GetIntegerValue(const std::string& tag, Index& value, const std::string& prefix) const { SmartPtr option = NULL; if (IsValid(reg_options_)) { option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is not a valid registered option."; THROW_EXCEPTION(OPTION_INVALID, msg); } if (option->Type() != OT_Integer) { std::string msg = "IPOPT tried to get the value of Option: " + tag; msg += ". It is a valid option, but it is of type "; if (option->Type() == OT_Number) { msg += " Number"; } else if (option->Type() == OT_String) { msg += " String"; } else { msg += " Unknown"; } msg += ", not of type Integer. Please check the documentation for options."; if (IsValid(jnlst_)) { option->OutputDescription(*jnlst_); } THROW_EXCEPTION(OPTION_INVALID, msg); } } std::string strvalue; if (find_tag(tag, prefix, strvalue)) { char* p_end; size_t retval = strtol(strvalue.c_str(), &p_end, 10); if (*p_end!='\0' && !isspace(*p_end)) { std::string msg = "Option \"" + tag + "\": Integer value expected, but non-integer value \"" + strvalue+"\" found.\n"; THROW_EXCEPTION(OPTION_INVALID, msg); } value = static_cast(retval); return true; } else if (IsValid(option)) { value = option->DefaultInteger(); return false; } return false; } const std::string& OptionsList::lowercase(const std::string tag) const { lowercase_buffer_ = tag; for (Index i=0; i<(Index)tag.length(); i++) { lowercase_buffer_[i] = (char)tolower(tag[i]); } return lowercase_buffer_; } void OptionsList::PrintList(std::string& list) const { list.erase(); char buffer[256]; Snprintf(buffer, 255, "%40s %-20s %s\n", "Name", "Value", "# times used"); list += buffer; for (std::map< std::string, OptionValue >::const_iterator p = options_.begin(); p != options_.end(); p++ ) { Snprintf(buffer, 255, "%40s = %-20s %6d\n", p->first.c_str(), p->second.Value().c_str(), p->second.Counter()); list += buffer; } } void OptionsList::PrintUserOptions(std::string& list) const { list.erase(); char buffer[256]; Snprintf(buffer, 255, "%40s %-20s %s\n", "Name", "Value", "used"); list += buffer; for (std::map< std::string, OptionValue >::const_iterator p = options_.begin(); p != options_.end(); p++ ) { if (!p->second.DontPrint()) { const char yes[] = "yes"; const char no[] = "no"; const char* used; if (p->second.Counter()>0) { used = yes; } else { used = no; } Snprintf(buffer, 255, "%40s = %-20s %4s\n", p->first.c_str(), p->second.Value().c_str(), used); list += buffer; } } } bool OptionsList::ReadFromStream(const Journalist& jnlst, std::istream& is) { jnlst.Printf(J_DETAILED, J_MAIN, "Start reading options from stream.\n"); while (true) { std::string tag; std::string value; if (!readnexttoken(is, tag)) { // That's it - end of file reached. jnlst.Printf(J_DETAILED, J_MAIN, "Finished reading options from file.\n"); return true; } if (!readnexttoken(is, value)) { // Can't read value for a given tag jnlst.Printf(J_ERROR, J_MAIN, "Error reading value for tag %s from file.\n", tag.c_str()); return false; } // Now add the value for the options list jnlst.Printf(J_DETAILED, J_MAIN, "Adding option \"%s\" with value \"%s\" to OptionsList.\n", tag.c_str(), value.c_str()); if (IsValid(reg_options_)) { SmartPtr option = reg_options_->GetOption(tag); if (IsNull(option)) { std::string msg = "Read Option: \""; msg += tag; msg += "\". It is not a valid option. Check the list of available options."; THROW_EXCEPTION(OPTION_INVALID, msg); } if (option->Type() == OT_String) { bool result = SetStringValue(tag, value, false); ASSERT_EXCEPTION(result, OPTION_INVALID, "Error setting string value read from option file."); } else if (option->Type() == OT_Number) { // Some people like to use 'd' instead of 'e' in floating // point numbers. Therefore, we change a 'd' to an 'e' char* buffer = new char[value.length()+1]; strcpy(buffer, value.c_str()); for (int i=0; i<(int)value.length(); ++i) { if (buffer[i]=='d' || buffer[i]=='D') { buffer[i] = 'e'; } } char* p_end; Number retval = strtod(buffer, &p_end); if (*p_end!='\0' && !isspace(*p_end)) { delete [] buffer; std::string msg = "Option \"" + tag + "\": Double value expected, but non-numeric option value \"" + value + "\" found.\n"; THROW_EXCEPTION(OPTION_INVALID, msg); } delete [] buffer; bool result = SetNumericValue(tag, retval, false); ASSERT_EXCEPTION(result, OPTION_INVALID, "Error setting numeric value read from file."); } else if (option->Type() == OT_Integer) { char* p_end; size_t retval = strtol(value.c_str(), &p_end, 10); if (*p_end!='\0' && !isspace(*p_end)) { std::string msg = "Option \"" + tag + "\": Integer value expected, but non-integer option value \"" + value + "\" found.\n"; if (IsValid(jnlst_)) { option->OutputDescription(*jnlst_); } THROW_EXCEPTION(OPTION_INVALID, msg); } bool result = SetIntegerValue(tag, static_cast(retval), false); ASSERT_EXCEPTION(result, OPTION_INVALID, "Error setting integer value read from option file."); } else { DBG_ASSERT(false && "Option Type: Unknown"); } } else { bool result = SetStringValue(tag, value, false); ASSERT_EXCEPTION(result, OPTION_INVALID, "Error setting value read from option file."); } } } bool OptionsList::find_tag(const std::string& tag, const std::string& prefix, std::string& value) const { bool found=false; std::map< std::string, OptionValue >::const_iterator p; if (prefix != "") { p = options_.find(lowercase(prefix+tag)); if (p != options_.end()) { found = true; } } if (!found) { p = options_.find(lowercase(tag)); if (p != options_.end()) { found = true; } } if (found) { value = p->second.GetValue(); } return found; } bool OptionsList::will_allow_clobber(const std::string& tag) const { bool allow_clobber=true; std::map< std::string, OptionValue >::const_iterator p; p = options_.find(lowercase(tag)); if (p != options_.end()) { allow_clobber = p->second.AllowClobber(); } return allow_clobber; } bool OptionsList::readnexttoken(std::istream& is, std::string& token) { token.erase(); int c = is.get(); // First get rid of all comments and white spaces while (!is.eof() && (isspace(c) || c=='#') ) { if (c=='#') { is.ignore(10000000, '\n'); } c=is.get(); } bool inside_quotes = (c=='"'); if (inside_quotes) { if (is.eof()) return false; // eof after quotation symbol c=is.get(); } if( is.eof() ) return false; // Now read the token while (!is.eof() && (inside_quotes || !isspace(c))) { token += (char)c; c = is.get(); if (inside_quotes && (c=='"')) { inside_quotes = false; if (!is.eof()) c = is.get(); } } return !inside_quotes; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Common/IpoptConfig.h0000644000076600007660000000256211573147064017072 0ustar coincoin/* Copyright (C) 2011 * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: IpoptConfig.h 2005 2011-06-06 12:55:16Z stefan $ * * Include file for the configuration of Ipopt. * * On systems where the code is configured with the configure script * (i.e., compilation is always done with HAVE_CONFIG_H defined), this * header file includes the automatically generated header file, and * undefines macros that might configure with other Config.h files. * * On systems that are compiled in other ways (e.g., with the * Developer Studio), a header files is included to define those * macros that depend on the operating system and the compiler. The * macros that define the configuration of the particular user setting * (e.g., presence of other COIN-OR packages or third party code) are set * by the files config_*default.h. The project maintainer needs to remember * to update these file and choose reasonable defines. * A user can modify the default setting by editing the config_*default.h files. * */ #ifndef __IPOPTCONFIG_H__ #define __IPOPTCONFIG_H__ #ifdef HAVE_CONFIG_H #ifdef IPOPT_BUILD #include "config.h" #else #include "config_ipopt.h" #endif #else /* HAVE_CONFIG_H */ #ifdef IPOPT_BUILD #include "config_default.h" #else #include "config_ipopt_default.h" #endif #endif /* HAVE_CONFIG_H */ #endif /*__IPOPTCONFIG_H__*/ Ipopt-3.11.4/Ipopt/src/Common/IpTypes.hpp0000644000076600007660000000124011573147064016576 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTypes.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPTYPES_HPP__ #define __IPTYPES_HPP__ #include "IpoptConfig.h" namespace Ipopt { /** Type of all numbers */ typedef double Number; /** Type of all indices of vectors, matrices etc */ typedef int Index; /** Type of default integer */ typedef int Int; } // namespace Ipopt /* Type of Fortran integer translated into C */ typedef FORTRAN_INTEGER_TYPE ipfint; #endif Ipopt-3.11.4/Ipopt/src/Common/config_ipopt_default.h0000644000076600007660000000111512214340172021012 0ustar coincoin /***************************************************************************/ /* HERE DEFINE THE PROJECT SPECIFIC PUBLIC MACROS */ /* These are only in effect in a setting that doesn't use configure */ /***************************************************************************/ /* Version number of project */ #define IPOPT_VERSION "3.11.4" /* Major Version number of project */ #define IPOPT_VERSION_MAJOR 3 /* Minor Version number of project */ #define IPOPT_VERSION_MINOR 11 /* Release Version number of project */ #define IPOPT_VERSION_RELEASE 4 Ipopt-3.11.4/Ipopt/src/Common/IpException.hpp0000644000076600007660000001015211577171515017434 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpException.hpp 2023 2011-06-18 18:49:49Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPEXCEPTION_HPP__ #define __IPEXCEPTION_HPP__ #include "IpUtils.hpp" #include "IpJournalist.hpp" /* This file contains a base class for all exceptions * and a set of macros to help with exceptions */ namespace Ipopt { /** This is the base class for all exceptions. The easiest way to * use this class is by means of the following macros: * * \verbatim DECLARE_STD_EXCEPTION(ExceptionType); \endverbatim * * This macro defines a new class with the name ExceptionType, * inherited from the base class IpoptException. After this, * exceptions of this type can be thrown using * * \verbatim THROW_EXCEPTION(ExceptionType, Message); \endverbatim * * where Message is a std::string with a message that gives an * indication of what caused the exception. Exceptions can also be * thrown using the macro * * \verbatim ASSERT_EXCEPTION(Condition, ExceptionType, Message); \endverbatim * * where Conditions is an expression. If Condition evaluates to * false, then the exception of the type ExceptionType is thrown * with Message. * * When an exception is caught, the method ReportException can be * used to write the information about the exception to the * Journalist, using the level J_ERROR and the category J_MAIN. * */ class IpoptException { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ IpoptException(std::string msg, std::string file_name, Index line_number, std::string type="IpoptException") : msg_(msg), file_name_(file_name), line_number_(line_number), type_(type) {} /** Copy Constructor */ IpoptException(const IpoptException& copy) : msg_(copy.msg_), file_name_(copy.file_name_), line_number_(copy.line_number_), type_(copy.type_) {} /** Default destructor */ virtual ~IpoptException() {} //@} /** Method to report the exception to a journalist */ void ReportException(const Journalist& jnlst, EJournalLevel level = J_ERROR) const { jnlst.Printf(level, J_MAIN, "Exception of type: %s in file \"%s\" at line %d:\n Exception message: %s\n", type_.c_str(), file_name_.c_str(), line_number_, msg_.c_str()); } const std::string& Message() const { return msg_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IpoptException(); /** Overloaded Equals Operator */ void operator=(const IpoptException&); //@} std::string msg_; std::string file_name_; Index line_number_; std::string type_; }; } // namespace Ipopt #define THROW_EXCEPTION(__except_type, __msg) \ throw __except_type( (__msg), (__FILE__), (__LINE__) ); #define ASSERT_EXCEPTION(__condition, __except_type, __msg) \ if (! (__condition) ) { \ std::string newmsg = #__condition; \ newmsg += " evaluated false: "; \ newmsg += __msg; \ throw __except_type( (newmsg), (__FILE__), (__LINE__) ); \ } #define DECLARE_STD_EXCEPTION(__except_type) \ class __except_type : public Ipopt::IpoptException \ { \ public: \ __except_type(std::string msg, std::string fname, Ipopt::Index line) \ : Ipopt::IpoptException(msg,fname,line, #__except_type) {} \ __except_type(const __except_type& copy) \ : Ipopt::IpoptException(copy) {} \ private: \ __except_type(); \ void operator=(const __except_type&); \ } #endif Ipopt-3.11.4/Ipopt/src/Common/config.h.in0000644000076600007660000001351712214316142016511 0ustar coincoin/* src/Common/config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if the inexact linear solver option is included */ #undef BUILD_INEXACT /* Define to be the name of C-function for Inf check */ #undef COIN_C_FINITE /* Define to 1 if the ASL package is available */ #undef COIN_HAS_ASL /* If defined, the BLAS Library is available. */ #undef COIN_HAS_BLAS /* Define to 1 if the HSL package is available */ #undef COIN_HAS_HSL /* If defined, the LAPACK Library is available. */ #undef COIN_HAS_LAPACK /* Define to 1 if the Mumps package is available */ #undef COIN_HAS_MUMPS /* Define to the debug sanity check level (0 is no test) */ #undef COIN_IPOPT_CHECKLEVEL /* Define to the debug verbosity level (0 is no output) */ #undef COIN_IPOPT_VERBOSITY /* Define to dummy `main' function (if any) required to link to the Fortran libraries. */ #undef F77_DUMMY_MAIN /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ #undef F77_FUNC /* As F77_FUNC, but for C identifiers containing underscores. */ #undef F77_FUNC_ /* Define if F77 and FC dummy `main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 /* Define to the C type corresponding to Fortran INTEGER */ #undef FORTRAN_INTEGER_TYPE /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the header file. */ #undef HAVE_CASSERT /* Define to 1 if you have the header file. */ #undef HAVE_CCTYPE /* Define to 1 if you have the header file. */ #undef HAVE_CFLOAT /* Define to 1 if you have the header file. */ #undef HAVE_CIEEEFP /* Define to 1 if you have the header file. */ #undef HAVE_CMATH /* Define to 1 if you have the header file. */ #undef HAVE_CSTDARG /* Define to 1 if you have the header file. */ #undef HAVE_CSTDDEF /* Define to 1 if you have the header file. */ #undef HAVE_CSTDIO /* Define to 1 if you have the header file. */ #undef HAVE_CSTDLIB /* Define to 1 if you have the header file. */ #undef HAVE_CSTRING /* Define to 1 if you have the header file. */ #undef HAVE_CTIME /* Define to 1 if you have the header file. */ #undef HAVE_CTYPE_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if function drand48 is available */ #undef HAVE_DRAND48 /* Define to 1 if you have the header file. */ #undef HAVE_FLOAT_H /* Define to 1 if you have the header file. */ #undef HAVE_IEEEFP_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if the linear solver loader should be compiled to allow dynamic loading of shared libraries with linear solvers */ #undef HAVE_LINEARSOLVERLOADER /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if Pardiso is available */ #undef HAVE_PARDISO /* Define to 1 if you are using Pardiso from MKL */ #undef HAVE_PARDISO_MKL /* Define to 1 if you are not using at least a 4.0 version of Pardiso */ #undef HAVE_PARDISO_OLDINTERFACE /* Define to 1 if you are using the parallel version of Pardiso */ #undef HAVE_PARDISO_PARALLEL /* Define to 1 if function rand is available */ #undef HAVE_RAND /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if function std::rand is available */ #undef HAVE_STD__RAND /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if va_copy is available */ #undef HAVE_VA_COPY /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_WINDOWS_H /* Define to 1 if WSMP is available */ #undef HAVE_WSMP /* Define to 1 if you have the `_snprintf' function. */ #undef HAVE__SNPRINTF /* Define to 1 if you have the `_vsnprintf' function. */ #undef HAVE__VSNPRINTF /* SVN revision number of project */ #undef IPOPT_SVN_REV /* Version number of project */ #undef IPOPT_VERSION /* Major Version number of project */ #undef IPOPT_VERSION_MAJOR /* Minor Version number of project */ #undef IPOPT_VERSION_MINOR /* Release Version number of project */ #undef IPOPT_VERSION_RELEASE /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Set to extension for shared libraries in quotes. */ #undef SHAREDLIBEXT /* The size of a `int *', as computed by sizeof. */ #undef SIZEOF_INT_P /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION Ipopt-3.11.4/Ipopt/src/contrib/0000755000076600007660000000000012214537465014704 5ustar coincoinIpopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/0000755000076600007660000000000012214537465020440 5ustar coincoinIpopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/HSLLoader.c0000644000076600007660000010210412156621430022346 0ustar coincoin/* Copyright (C) 2008, 2011 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: HSLLoader.c 2332 2013-06-14 14:05:12Z stefan $ Author: Stefan Vigerske */ #include "IpoptConfig.h" #include "LibraryHandler.h" #include "HSLLoader.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #include #include #define HSLLIBNAME "libhsl." SHAREDLIBEXT static soHandle_t HSL_handle=NULL; void LSL_lateHSLLoad(); typedef void (*voidfun)(void); voidfun LSL_loadSym (soHandle_t h, const char *symName, char *msgBuf, int msgLen); #ifndef COINHSL_HAS_MA27 static ma27ad_t func_ma27ad=NULL; static ma27bd_t func_ma27bd=NULL; static ma27cd_t func_ma27cd=NULL; static ma27id_t func_ma27id=NULL; void F77_FUNC(ma27ad,MA27AD)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, ipfint *IW, ipfint* LIW, ipfint* IKEEP, ipfint *IW1, ipfint* NSTEPS, ipfint* IFLAG, ipfint* ICNTL, double* CNTL, ipfint *INFO, double* OPS) { if (func_ma27ad==NULL) LSL_lateHSLLoad(); if (func_ma27ad==NULL) { fprintf(stderr, "HSL routine MA27AD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma27ad(N, NZ, IRN, ICN, IW, LIW, IKEEP, IW1, NSTEPS, IFLAG, ICNTL, CNTL, INFO, OPS); } void F77_FUNC(ma27bd,MA27BD)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, ipfint* IKEEP, ipfint* NSTEPS, ipfint* MAXFRT, ipfint* IW1, ipfint* ICNTL, double* CNTL, ipfint* INFO) { if (func_ma27bd==NULL) LSL_lateHSLLoad(); if (func_ma27bd==NULL) { fprintf(stderr, "HSL routine MA27BD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma27bd(N, NZ, IRN, ICN, A, LA, IW, LIW, IKEEP, NSTEPS, MAXFRT, IW1, ICNTL, CNTL, INFO); } void F77_FUNC(ma27cd,MA27CD)(ipfint *N, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, double* W, ipfint* MAXFRT, double* RHS, ipfint* IW1, ipfint* NSTEPS, ipfint* ICNTL, double* CNTL) { if (func_ma27cd==NULL) LSL_lateHSLLoad(); if (func_ma27cd==NULL) { fprintf(stderr, "HSL routine MA27CD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma27cd(N, A, LA, IW, LIW, W, MAXFRT, RHS, IW1, NSTEPS, ICNTL, CNTL); } void F77_FUNC(ma27id,MA27ID)(ipfint* ICNTL, double* CNTL) { if (func_ma27id==NULL) LSL_lateHSLLoad(); if (func_ma27id==NULL) { fprintf(stderr, "HSL routine MA27ID not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma27id(ICNTL, CNTL); } #endif #ifndef COINHSL_HAS_MA28 static ma28ad_t func_ma28ad=NULL; void F77_FUNC(ma28ad,MA28AD)(void* nsize, void* nz, void* rw, void* licn, void* iw, void* lirn, void* iw2, void* pivtol, void* iw3, void* iw4, void* rw2, void* iflag) { if (func_ma28ad==NULL) LSL_lateHSLLoad(); if (func_ma28ad==NULL) { fprintf(stderr, "HSL routine MA28AD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma28ad(nsize, nz, rw, licn, iw, lirn, iw2, pivtol, iw3, iw4, rw2, iflag); } #endif #ifndef COINHSL_HAS_MA57 static ma57id_t func_ma57id=NULL; static ma57ad_t func_ma57ad=NULL; static ma57bd_t func_ma57bd=NULL; static ma57cd_t func_ma57cd=NULL; static ma57ed_t func_ma57ed=NULL; void F77_FUNC (ma57id, MA57ID) (double *cntl, ipfint *icntl) { if (func_ma57id==NULL) LSL_lateHSLLoad(); if (func_ma57id==NULL) { fprintf(stderr, "HSL routine MA57ID not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma57id(cntl, icntl); } void F77_FUNC (ma57ad, MA57AD) ( ipfint *n, /* Order of matrix. */ ipfint *ne, /* Number of entries. */ const ipfint *irn, /* Matrix nonzero row structure */ const ipfint *jcn, /* Matrix nonzero column structure */ ipfint *lkeep, /* Workspace for the pivot order of lenght 3*n */ ipfint *keep, /* Workspace for the pivot order of lenght 3*n */ ipfint *iwork, /* Integer work space. */ ipfint *icntl, /* Integer Control parameter of length 30*/ ipfint *info, /* Statistical Information; Integer array of length 20 */ double *rinfo) /* Double Control parameter of length 5 */ { if (func_ma57ad==NULL) LSL_lateHSLLoad(); if (func_ma57ad==NULL) { fprintf(stderr, "HSL routine MA57AD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma57ad(n, ne, irn, jcn, lkeep, keep, iwork, icntl, info, rinfo); } void F77_FUNC (ma57bd, MA57BD) ( ipfint *n, /* Order of matrix. */ ipfint *ne, /* Number of entries. */ double *a, /* Numerical values. */ double *fact, /* Entries of factors. */ ipfint *lfact, /* Length of array `fact'. */ ipfint *ifact, /* Indexing info for factors. */ ipfint *lifact, /* Length of array `ifact'. */ ipfint *lkeep, /* Length of array `keep'. */ ipfint *keep, /* Integer array. */ ipfint *iwork, /* Workspace of length `n'. */ ipfint *icntl, /* Integer Control parameter of length 20. */ double *cntl, /* Double Control parameter of length 5. */ ipfint *info, /* Statistical Information; Integer array of length 40. */ double *rinfo) /* Statistical Information; Real array of length 20. */ { if (func_ma57bd==NULL) LSL_lateHSLLoad(); if (func_ma57bd==NULL) { fprintf(stderr, "HSL routine MA57BD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma57bd(n, ne, a, fact, lfact, ifact, lifact, lkeep, keep, iwork, icntl, cntl, info, rinfo); } void F77_FUNC (ma57cd, MA57CD) ( ipfint *job, /* Solution job. Solve for... */ ipfint *n, /* Order of matrix. */ double *fact, /* Entries of factors. */ ipfint *lfact, /* Length of array `fact'. */ ipfint *ifact, /* Indexing info for factors. */ ipfint *lifact, /* Length of array `ifact'. */ ipfint *nrhs, /* Number of right hand sides. */ double *rhs, /* Numerical Values. */ ipfint *lrhs, /* Leading dimensions of `rhs'. */ double *work, /* Real workspace. */ ipfint *lwork, /* Length of `work', >= N*NRHS. */ ipfint *iwork, /* Integer array of length `n'. */ ipfint *icntl, /* Integer Control parameter array of length 20. */ ipfint *info) /* Statistical Information; Integer array of length 40. */ { if (func_ma57cd==NULL) LSL_lateHSLLoad(); if (func_ma57cd==NULL) { fprintf(stderr, "HSL routine MA57CD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma57cd(job, n, fact, lfact, ifact, lifact, nrhs, rhs, lrhs, work, lwork, iwork, icntl, info); } void F77_FUNC (ma57ed, MA57ED) ( ipfint *n, ipfint *ic, /* 0: copy real array. >=1: copy integer array. */ ipfint *keep, double *fact, ipfint *lfact, double *newfac, ipfint *lnew, ipfint *ifact, ipfint *lifact, ipfint *newifc, ipfint *linew, ipfint *info) { if (func_ma57ed==NULL) LSL_lateHSLLoad(); if (func_ma57ed==NULL) { fprintf(stderr, "HSL routine MA57ED not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma57ed(n, ic, keep, fact, lfact, newfac, lnew, ifact, lifact, newifc, linew, info); } #endif #ifndef COINHSL_HAS_MA77 static ma77_default_control_t func_ma77_default_control = NULL; static ma77_open_nelt_t func_ma77_open_nelt = NULL; static ma77_open_t func_ma77_open = NULL; static ma77_input_vars_t func_ma77_input_vars = NULL; static ma77_input_reals_t func_ma77_input_reals = NULL; static ma77_analyse_t func_ma77_analyse = NULL; static ma77_factor_t func_ma77_factor = NULL; static ma77_factor_solve_t func_ma77_factor_solve = NULL; static ma77_solve_t func_ma77_solve = NULL; static ma77_resid_t func_ma77_resid = NULL; static ma77_scale_t func_ma77_scale = NULL; static ma77_enquire_posdef_t func_ma77_enquire_posdef = NULL; static ma77_enquire_indef_t func_ma77_enquire_indef = NULL; static ma77_alter_t func_ma77_alter = NULL; static ma77_restart_t func_ma77_restart = NULL; static ma77_finalise_t func_ma77_finalise = NULL; /* Initialise control with default values */ void ma77_default_control(struct ma77_control_d *control) { if (func_ma77_default_control==NULL) LSL_lateHSLLoad(); if (func_ma77_default_control==NULL) { fprintf(stderr, "HSL routine ma77_default_control not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_default_control(control); } void ma77_open_nelt(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const int nelt) { if (func_ma77_open_nelt==NULL) LSL_lateHSLLoad(); if (func_ma77_open_nelt==NULL) { fprintf(stderr, "HSL routine ma77_open_nelt not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_open_nelt(n, fname1, fname2, fname3, fname4, keep, control, info, nelt); } void ma77_open(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_open==NULL) LSL_lateHSLLoad(); if (func_ma77_open==NULL) { fprintf(stderr, "HSL routine ma77_open not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_open(n, fname1, fname2, fname3, fname4, keep, control, info); } void ma77_input_vars(const int idx, const int nvar, const int list[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_input_vars==NULL) LSL_lateHSLLoad(); if (func_ma77_input_vars==NULL) { fprintf(stderr, "HSL routine ma77_input_vars not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_input_vars(idx, nvar, list, keep, control, info); } void ma77_input_reals(const int idx, const int length, const ma77pkgtype_d_ reals[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_input_reals==NULL) LSL_lateHSLLoad(); if (func_ma77_input_reals==NULL) { fprintf(stderr, "HSL routine ma77_input_reals not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_input_reals(idx, length, reals, keep, control, info); } void ma77_analyse(const int order[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_analyse==NULL) LSL_lateHSLLoad(); if (func_ma77_analyse==NULL) { fprintf(stderr, "HSL routine ma77_analyse not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_analyse(order, keep, control, info); } void ma77_factor(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale) { if (func_ma77_factor==NULL) LSL_lateHSLLoad(); if (func_ma77_factor==NULL) { fprintf(stderr, "HSL routine ma77_factor not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_factor(posdef, keep, control, info, scale); } void ma77_factor_solve(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale, const int nrhs, const int lx, ma77pkgtype_d_ rhs[]) { if (func_ma77_factor_solve==NULL) LSL_lateHSLLoad(); if (func_ma77_factor_solve==NULL) { fprintf(stderr, "HSL routine ma77_factor_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_factor_solve(posdef, keep, control, info, scale, nrhs, lx, rhs); } void ma77_solve(const int job, const int nrhs, const int lx, ma77pkgtype_d_ x[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale) { if (func_ma77_solve==NULL) LSL_lateHSLLoad(); if (func_ma77_solve==NULL) { fprintf(stderr, "HSL routine ma77_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_solve(job, nrhs, lx, x, keep, control, info, scale); } void ma77_resid(const int nrhs, const int lx, const ma77pkgtype_d_ x[], const int lresid, ma77pkgtype_d_ resid[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, ma77pkgtype_d_ *anorm_bnd) { if (func_ma77_resid==NULL) LSL_lateHSLLoad(); if (func_ma77_resid==NULL) { fprintf(stderr, "HSL routine ma77_resid not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_resid(nrhs, lx, x, lresid, resid, keep, control, info, anorm_bnd); } void ma77_scale(ma77pkgtype_d_ scale[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, ma77pkgtype_d_ *anorm) { if (func_ma77_scale==NULL) LSL_lateHSLLoad(); if (func_ma77_scale==NULL) { fprintf(stderr, "HSL routine ma77_scale not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_scale(scale, keep, control, info, anorm); } void ma77_enquire_posdef(ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_enquire_posdef==NULL) LSL_lateHSLLoad(); if (func_ma77_enquire_posdef==NULL) { fprintf(stderr, "HSL routine ma77_enquire_posdef not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_enquire_posdef(d, keep, control, info); } void ma77_enquire_indef(int piv_order[], ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_enquire_indef==NULL) LSL_lateHSLLoad(); if (func_ma77_enquire_indef==NULL) { fprintf(stderr, "HSL routine ma77_enquire_indef not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_enquire_indef(piv_order, d, keep, control, info); } void ma77_alter(const ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_alter==NULL) LSL_lateHSLLoad(); if (func_ma77_alter==NULL) { fprintf(stderr, "HSL routine ma77_alter not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_alter(d, keep, control, info); } void ma77_restart(const char *restart_file, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_restart==NULL) LSL_lateHSLLoad(); if (func_ma77_restart==NULL) { fprintf(stderr, "HSL routine ma77_restart not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_restart(restart_file, fname1, fname2, fname3, fname4, keep, control, info); } void ma77_finalise(void **keep, const struct ma77_control_d *control, struct ma77_info_d *info) { if (func_ma77_finalise==NULL) LSL_lateHSLLoad(); if (func_ma77_finalise==NULL) { fprintf(stderr, "HSL routine ma77_finalise not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma77_finalise(keep, control, info); } #endif #ifndef COINHSL_HAS_MA86 static ma86_default_control_t func_ma86_default_control=NULL; static ma86_analyse_t func_ma86_analyse=NULL; static ma86_factor_t func_ma86_factor=NULL; static ma86_factor_solve_t func_ma86_factor_solve=NULL; static ma86_solve_t func_ma86_solve=NULL; static ma86_finalise_t func_ma86_finalise=NULL; void ma86_default_control(struct ma86_control *control) { if (func_ma86_default_control==NULL) LSL_lateHSLLoad(); if (func_ma86_default_control==NULL) { fprintf(stderr, "HSL routine ma86_default_control not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_default_control(control); } void ma86_analyse(const int n, const int ptr[], const int row[], int order[], void **keep, const struct ma86_control *control, struct ma86_info *info) { if (func_ma86_analyse==NULL) LSL_lateHSLLoad(); if (func_ma86_analyse==NULL) { fprintf(stderr, "HSL routine ma86_analyse not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_analyse(n, ptr, row, order, keep, control, info); } void ma86_factor(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[]) { if (func_ma86_factor==NULL) LSL_lateHSLLoad(); if (func_ma86_factor==NULL) { fprintf(stderr, "HSL routine ma86_factor not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_factor(n, ptr, row, val, order, keep, control, info, scale); } void ma86_factor_solve(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const int nrhs, const int ldx, ma86pkgtype_d_ x[], const ma86pkgtype_d_ scale[]) { if (func_ma86_factor_solve==NULL) LSL_lateHSLLoad(); if (func_ma86_factor_solve==NULL) { fprintf(stderr, "HSL routine ma86_factor_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_factor_solve(n, ptr, row, val, order, keep, control, info, nrhs, ldx, x, scale); } void ma86_solve(const int job, const int nrhs, const int ldx, ma86pkgtype_d_ *x, const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[]) { if (func_ma86_solve==NULL) LSL_lateHSLLoad(); if (func_ma86_solve==NULL) { fprintf(stderr, "HSL routine ma86_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_solve(job, nrhs, ldx, x, order, keep, control, info, scale); } void ma86_finalise(void **keep, const struct ma86_control *control) { if (func_ma86_finalise==NULL) LSL_lateHSLLoad(); if (func_ma86_finalise==NULL) { fprintf(stderr, "HSL routine ma86_finalise not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma86_finalise(keep, control); } #endif #ifndef COINHSL_HAS_MA97 static ma97_default_control_t func_ma97_default_control=NULL; static ma97_analyse_t func_ma97_analyse=NULL; static ma97_factor_t func_ma97_factor=NULL; static ma97_factor_solve_t func_ma97_factor_solve=NULL; static ma97_solve_t func_ma97_solve=NULL; static ma97_finalise_t func_ma97_finalise=NULL; static ma97_free_akeep_t func_ma97_free_akeep=NULL; void ma97_default_control(struct ma97_control *control) { if (func_ma97_default_control==NULL) LSL_lateHSLLoad(); if (func_ma97_default_control==NULL) { fprintf(stderr, "HSL routine ma97_default_control not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_default_control(control); } void ma97_analyse(const int check, const int n, const int ptr[], const int row[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control *control, struct ma97_info *info, int order[]) { if (func_ma97_analyse==NULL) LSL_lateHSLLoad(); if (func_ma97_analyse==NULL) { fprintf(stderr, "HSL routine ma97_analyse not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_analyse(check, n, ptr, row, val, akeep, control, info, order); } void ma97_factor(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[]) { if (func_ma97_factor==NULL) LSL_lateHSLLoad(); if (func_ma97_factor==NULL) { fprintf(stderr, "HSL routine ma97_factor not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_factor(matrix_type, ptr, row, val, akeep, fkeep, control, info, scale); } void ma97_factor_solve(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], const int nrhs, ma97pkgtype_d_ x[], const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[]) { if (func_ma97_factor_solve==NULL) LSL_lateHSLLoad(); if (func_ma97_factor_solve==NULL) { fprintf(stderr, "HSL routine ma97_factor_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_factor_solve(matrix_type, ptr, row, val, nrhs, x, ldx, akeep, fkeep, control, info, scale); } void ma97_solve(const int job, const int nrhs, ma97pkgtype_d_ *x, const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info) { if (func_ma97_solve==NULL) LSL_lateHSLLoad(); if (func_ma97_solve==NULL) { fprintf(stderr, "HSL routine ma97_solve not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_solve(job, nrhs, x, ldx, akeep, fkeep, control, info); } void ma97_finalise(void **akeep, void **fkeep) { if (func_ma97_finalise==NULL) LSL_lateHSLLoad(); if (func_ma97_finalise==NULL) { fprintf(stderr, "HSL routine ma97_finalise not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_finalise(akeep, fkeep); } void ma97_free_akeep(void **akeep) { if (func_ma97_free_akeep==NULL) LSL_lateHSLLoad(); if (func_ma97_free_akeep==NULL) { fprintf(stderr, "HSL routine ma97_free_akeep not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_ma97_free_akeep(akeep); } #endif #ifndef COINHSL_HAS_MC19 static mc19ad_t func_mc19ad=NULL; void F77_FUNC(mc19ad,MC19AD)(ipfint *N, ipfint *NZ, double* A, ipfint *IRN, ipfint* ICN, float* R, float* C, float* W) { if (func_mc19ad==NULL) LSL_lateHSLLoad(); if (func_mc19ad==NULL) { fprintf(stderr, "HSL routine MC19AD not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_mc19ad(N, NZ, A, IRN, ICN, R, C, W); } #endif #ifndef COINHSL_HAS_MC68 mc68_default_control_t func_mc68_default_control=NULL; mc68_order_t func_mc68_order=NULL; void mc68_default_control_i(struct mc68_control_i *control) { if (func_mc68_default_control==NULL) LSL_lateHSLLoad(); if (func_mc68_default_control==NULL) { fprintf(stderr, "HSL routine mc68_default_control not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_mc68_default_control(control); } void mc68_order_i(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control_i *control, struct mc68_info_i *info) { if (func_mc68_order==NULL) LSL_lateHSLLoad(); if (func_mc68_order==NULL) { fprintf(stderr, "HSL routine mc68_default_control not found in " HSLLIBNAME ".\nAbort...\n"); exit(EXIT_FAILURE); } func_mc68_order(ord, n, ptr, row, perm, control, info); } #endif int LSL_loadHSL(const char* libname, char* msgbuf, int msglen) { /* load HSL library */ if (libname) { HSL_handle=LSL_loadLib(libname, msgbuf, msglen); } else { /* try a default library name */ HSL_handle=LSL_loadLib(HSLLIBNAME, msgbuf, msglen); } if (HSL_handle==NULL) return 1; /* load HSL functions */ #ifndef COINHSL_HAS_MA27 func_ma27id=(ma27id_t)LSL_loadSym(HSL_handle, "ma27id", msgbuf, msglen); func_ma27ad=(ma27ad_t)LSL_loadSym(HSL_handle, "ma27ad", msgbuf, msglen); func_ma27bd=(ma27bd_t)LSL_loadSym(HSL_handle, "ma27bd", msgbuf, msglen); func_ma27cd=(ma27cd_t)LSL_loadSym(HSL_handle, "ma27cd", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MA28 func_ma28ad=(ma28ad_t)LSL_loadSym(HSL_handle, "ma28ad", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MA57 func_ma57id=(ma57id_t)LSL_loadSym(HSL_handle, "ma57id", msgbuf, msglen); func_ma57ad=(ma57ad_t)LSL_loadSym(HSL_handle, "ma57ad", msgbuf, msglen); func_ma57bd=(ma57bd_t)LSL_loadSym(HSL_handle, "ma57bd", msgbuf, msglen); func_ma57cd=(ma57cd_t)LSL_loadSym(HSL_handle, "ma57cd", msgbuf, msglen); func_ma57ed=(ma57ed_t)LSL_loadSym(HSL_handle, "ma57ed", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MA77 #define LOADMA77SYM( sym ) \ func_##sym = (sym##_t)LSL_loadSym(HSL_handle, #sym"_d", msgbuf, msglen); LOADMA77SYM(ma77_default_control) LOADMA77SYM(ma77_open_nelt) LOADMA77SYM(ma77_open) LOADMA77SYM(ma77_input_vars) LOADMA77SYM(ma77_input_reals) LOADMA77SYM(ma77_analyse) LOADMA77SYM(ma77_factor) LOADMA77SYM(ma77_factor_solve) LOADMA77SYM(ma77_solve) LOADMA77SYM(ma77_resid) LOADMA77SYM(ma77_scale) LOADMA77SYM(ma77_enquire_posdef) LOADMA77SYM(ma77_enquire_indef) LOADMA77SYM(ma77_alter) LOADMA77SYM(ma77_restart) LOADMA77SYM(ma77_finalise) #endif #ifndef COINHSL_HAS_MA86 func_ma86_default_control=(ma86_default_control_t)LSL_loadSym(HSL_handle, "ma86_default_control_d", msgbuf, msglen); func_ma86_analyse=(ma86_analyse_t)LSL_loadSym(HSL_handle, "ma86_analyse_d", msgbuf, msglen); func_ma86_factor=(ma86_factor_t)LSL_loadSym(HSL_handle, "ma86_factor_d", msgbuf, msglen); func_ma86_factor_solve=(ma86_factor_solve_t)LSL_loadSym(HSL_handle, "ma86_factor_solve_d", msgbuf, msglen); func_ma86_solve=(ma86_solve_t)LSL_loadSym(HSL_handle, "ma86_solve_d", msgbuf, msglen); func_ma86_finalise=(ma86_finalise_t)LSL_loadSym(HSL_handle, "ma86_finalise_d", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MA97 func_ma97_default_control=(ma97_default_control_t)LSL_loadSym(HSL_handle, "ma97_default_control_d", msgbuf, msglen); func_ma97_analyse=(ma97_analyse_t)LSL_loadSym(HSL_handle, "ma97_analyse_d", msgbuf, msglen); func_ma97_factor=(ma97_factor_t)LSL_loadSym(HSL_handle, "ma97_factor_d", msgbuf, msglen); func_ma97_factor_solve=(ma97_factor_solve_t)LSL_loadSym(HSL_handle, "ma97_factor_solve_d", msgbuf, msglen); func_ma97_solve=(ma97_solve_t)LSL_loadSym(HSL_handle, "ma97_solve_d", msgbuf, msglen); func_ma97_finalise=(ma97_finalise_t)LSL_loadSym(HSL_handle, "ma97_finalise_d", msgbuf, msglen); func_ma97_free_akeep=(ma97_free_akeep_t)LSL_loadSym(HSL_handle, "ma97_free_akeep_d", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MC19 func_mc19ad=(mc19ad_t)LSL_loadSym(HSL_handle, "mc19ad", msgbuf, msglen); #endif #ifndef COINHSL_HAS_MC68 func_mc68_default_control=(mc68_default_control_t)LSL_loadSym(HSL_handle, "mc68_default_control_i", msgbuf, msglen); func_mc68_order=(mc68_order_t)LSL_loadSym(HSL_handle, "mc68_order_i", msgbuf, msglen); #endif return 0; } int LSL_unloadHSL() { int rc; if (HSL_handle==NULL) return 0; rc = LSL_unloadLib(HSL_handle); HSL_handle=NULL; #ifndef COINHSL_HAS_MA27 func_ma27id=NULL; func_ma27ad=NULL; func_ma27bd=NULL; func_ma27cd=NULL; #endif #ifndef COINHSL_HAS_MA28 func_ma28ad=NULL; #endif #ifndef COINHSL_HAS_MA57 func_ma57id=NULL; func_ma57ad=NULL; func_ma57bd=NULL; func_ma57cd=NULL; func_ma57ed=NULL; #endif #ifndef COINHSL_HAS_MA77 func_ma77_default_control = NULL; func_ma77_open_nelt = NULL; func_ma77_open = NULL; func_ma77_input_vars = NULL; func_ma77_input_reals = NULL; func_ma77_analyse = NULL; func_ma77_factor = NULL; func_ma77_factor_solve = NULL; func_ma77_solve = NULL; func_ma77_resid = NULL; func_ma77_scale = NULL; func_ma77_enquire_posdef = NULL; func_ma77_enquire_indef = NULL; func_ma77_alter = NULL; func_ma77_restart = NULL; func_ma77_finalise = NULL; #endif #ifndef COINHSL_HAS_MA86 func_ma86_default_control=NULL; func_ma86_analyse=NULL; func_ma86_factor=NULL; func_ma86_factor_solve=NULL; func_ma86_solve=NULL; func_ma86_finalise=NULL; #endif #ifndef COINHSL_HAS_MA97 func_ma97_default_control=NULL; func_ma97_analyse=NULL; func_ma97_factor=NULL; func_ma97_factor_solve=NULL; func_ma97_solve=NULL; func_ma97_finalise=NULL; #endif #ifndef COINHSL_HAS_MC19 func_mc19ad=NULL; #endif #ifndef COINHSL_HAS_MC68 func_mc68_default_control=NULL; func_mc68_order=NULL; #endif return rc; } int LSL_isHSLLoaded() { return HSL_handle!=NULL; } int LSL_isMA27available() { #ifndef COINHSL_HAS_MA27 return func_ma27id!=NULL && func_ma27ad!=NULL && func_ma27bd!=NULL && func_ma27cd!=NULL; #else return 1; #endif } int LSL_isMA28available() { #ifndef COINHSL_HAS_MA28 return func_ma28ad!=NULL; #else return 1; #endif } int LSL_isMA57available() { #ifndef COINHSL_HAS_MA57 return func_ma57id!=NULL && func_ma57ad!=NULL && func_ma57bd!=NULL && func_ma57cd!=NULL && func_ma57ed!=NULL; #else return 1; #endif } int LSL_isMA77available() { #ifndef COINHSL_HAS_MA77 return func_ma77_default_control!=NULL && func_ma77_open_nelt!=NULL && func_ma77_open!=NULL && func_ma77_input_vars!=NULL && func_ma77_input_reals!=NULL && func_ma77_analyse!=NULL && func_ma77_factor!=NULL && func_ma77_factor_solve!=NULL && func_ma77_solve!=NULL && func_ma77_resid!=NULL && func_ma77_scale!=NULL && func_ma77_enquire_posdef!=NULL && func_ma77_enquire_indef!=NULL && func_ma77_alter!=NULL && func_ma77_restart!=NULL && func_ma77_finalise!=NULL; #else return 1; #endif } int LSL_isMA86available() { #ifndef COINHSL_HAS_MA86 return func_ma86_default_control!=NULL && func_ma86_analyse!=NULL && func_ma86_factor!=NULL && func_ma86_factor_solve!=NULL && func_ma86_solve!=NULL && func_ma86_finalise!=NULL; #else return 1; #endif } int LSL_isMA97available() { #ifndef COINHSL_HAS_MA97 return func_ma97_default_control!=NULL && func_ma97_analyse!=NULL && func_ma97_factor!=NULL && func_ma97_factor_solve!=NULL && func_ma97_solve!=NULL && func_ma97_finalise!=NULL && func_ma97_free_akeep!=NULL; #else return 1; #endif } int LSL_isMC19available() { #ifndef COINHSL_HAS_MC19 return func_mc19ad!=NULL; #else return 1; #endif } int LSL_isMC68available() { #ifndef COINHSL_HAS_MC68 return func_mc68_default_control!=NULL && func_mc68_order!=NULL; #else return 1; #endif } void LSL_lateHSLLoad() { char buffer[512]; int rc; sprintf(buffer, "Error unknown."); rc = LSL_loadHSL(NULL, buffer, 512); if (rc!=0) { fprintf(stderr, "Error loading HSL dynamic library " HSLLIBNAME ": %s\nThis executable was not compiled with the HSL routine you specified.\nYou need to compile the HSL dynamic library to use deferred loading of the linear solver.\nAbort...\n", buffer); exit(EXIT_FAILURE); } } char* LSL_HSLLibraryName() { static char name[] = HSLLIBNAME; return name; } void LSL_setMA27(ma27ad_t ma27ad, ma27bd_t ma27bd, ma27cd_t ma27cd, ma27id_t ma27id) { #ifndef COINHSL_HAS_MA27 func_ma27ad = ma27ad; func_ma27bd = ma27bd; func_ma27cd = ma27cd; func_ma27id = ma27id; #endif } void LSL_setMA28(ma28ad_t ma28ad) { #ifndef COINHSL_HAS_MA28 func_ma28ad = ma28ad; #endif } void LSL_setMA57(ma57ad_t ma57ad, ma57bd_t ma57bd, ma57cd_t ma57cd, ma57ed_t ma57ed, ma57id_t ma57id) { #ifndef COINHSL_HAS_MA57 func_ma57ad = ma57ad; func_ma57bd = ma57bd; func_ma57cd = ma57cd; func_ma57ed = ma57ed; func_ma57id = ma57id; #endif } void LSL_setMA77(ma77_default_control_t ma77_default_control, ma77_open_nelt_t ma77_open_nelt, ma77_open_t ma77_open, ma77_input_vars_t ma77_input_vars, ma77_input_reals_t ma77_input_reals, ma77_analyse_t ma77_analyse, ma77_factor_t ma77_factor, ma77_factor_solve_t ma77_factor_solve, ma77_solve_t ma77_solve, ma77_resid_t ma77_resid, ma77_scale_t ma77_scale, ma77_enquire_posdef_t ma77_enquire_posdef, ma77_enquire_indef_t ma77_enquire_indef, ma77_alter_t ma77_alter, ma77_restart_t ma77_restart, ma77_finalise_t ma77_finalise) { #ifndef COINHSL_HAS_MA77 func_ma77_open_nelt = ma77_open_nelt; func_ma77_open = ma77_open; func_ma77_input_vars = ma77_input_vars; func_ma77_input_reals = ma77_input_reals; func_ma77_analyse = ma77_analyse; func_ma77_factor = ma77_factor; func_ma77_factor_solve = ma77_factor_solve; func_ma77_solve = ma77_solve; func_ma77_resid = ma77_resid; func_ma77_scale = ma77_scale; func_ma77_enquire_posdef = ma77_enquire_posdef; func_ma77_enquire_indef = ma77_enquire_indef; func_ma77_alter = ma77_alter; func_ma77_restart = ma77_restart; func_ma77_finalise = ma77_finalise; #endif } void LSL_setMA86(ma86_default_control_t ma86_default_control, ma86_analyse_t ma86_analyse, ma86_factor_t ma86_factor, ma86_factor_solve_t ma86_factor_solve, ma86_solve_t ma86_solve, ma86_finalise_t ma86_finalise) { #ifndef COINHSL_HAS_MA86 func_ma86_default_control = ma86_default_control; func_ma86_analyse = ma86_analyse; func_ma86_factor = ma86_factor; func_ma86_factor_solve = ma86_factor_solve; func_ma86_solve = ma86_solve; func_ma86_finalise = ma86_finalise; #endif } void LSL_setMA97(ma97_default_control_t ma97_default_control, ma97_analyse_t ma97_analyse, ma97_factor_t ma97_factor, ma97_factor_solve_t ma97_factor_solve, ma97_solve_t ma97_solve, ma97_finalise_t ma97_finalise, ma97_free_akeep_t ma97_free_akeep) { #ifndef COINHSL_HAS_MA97 func_ma97_default_control = ma97_default_control; func_ma97_analyse = ma97_analyse; func_ma97_factor = ma97_factor; func_ma97_factor_solve = ma97_factor_solve; func_ma97_solve = ma97_solve; func_ma97_finalise = ma97_finalise; func_ma97_free_akeep = ma97_free_akeep; #endif } void LSL_setMC19(mc19ad_t mc19ad) { #ifndef COINHSL_HAS_MC19 func_mc19ad = mc19ad; #endif } void LSL_setMC68(mc68_default_control_t mc68_default_control, mc68_order_t mc68_order) { #ifndef COINHSL_HAS_MC68 func_mc68_default_control = mc68_default_control; func_mc68_order = mc68_order; #endif } Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/LibraryHandler.c0000644000076600007660000001070211632474626023510 0ustar coincoin/* Copyright (C) 2008 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: LibraryHandler.c 2048 2011-09-09 20:39:50Z stefan $ Author: Stefan Vigerske inspired by optcc.c in gams i/o libs */ #include "LibraryHandler.h" #include #include #include #ifdef HAVE_SNPRINTF #define mysnprintf snprintf #else # ifdef HAVE__SNPRINTF # define mysnprintf _snprintf # else # define mysnprintf snprintf # error "Do not have function for save printing into a C-string (snprintf or _snprintf)" # endif #endif soHandle_t LSL_loadLib(const char *libName, char *msgBuf, int msgLen) { soHandle_t h=NULL; #ifdef ERROR_LOADLIB mysnprintf(msgBuf, msgLen, "loadLib error: Do not know how to handle shared libraries on this operating system"); return h; #else if (libName==NULL) { mysnprintf(msgBuf, msgLen, "loadLib error: no library name given (libName is NULL)"); return NULL; } # ifdef HAVE_WINDOWS_H h = LoadLibrary (libName); if (NULL == h) { mysnprintf(msgBuf, msgLen, "Windows error while loading dynamic library %s, error = %d.\n(see http://msdn.microsoft.com/en-us/library/ms681381%%28v=vs.85%%29.aspx)\n", libName, GetLastError()); } # else h = dlopen (libName, RTLD_NOW); if (NULL == h) { strncpy(msgBuf, dlerror(), msgLen); msgBuf[msgLen-1]=0; } # endif return h; #endif } /* LSL_loadLib */ int LSL_unloadLib (soHandle_t h) { int rc=1; #ifdef HAVE_WINDOWS_H rc = FreeLibrary (h); rc = ! rc; #else # ifdef HAVE_DLFCN_H rc = dlclose (h); # endif #endif return rc; } /* LSL_unLoadLib */ #ifdef HAVE_WINDOWS_H typedef FARPROC symtype; #else typedef void* symtype; #endif /** Loads a symbol from a dynamically linked library. * This function is not defined in the header to allow a workaround for the problem that dlsym returns an object instead of a function pointer. * However, Windows also needs special care. * * The method does six attempts to load the symbol. Next to its given name, it also tries variations of lower case and upper case form and with an extra underscore. * @param h Handle of dynamicall linkes library. * @param symName Name of the symbol to load. * @param msgBuf Buffer for error messages, assumed to be NOT NULL! * @param msgLen Length of message buffer. * @return A pointer to the symbol, or NULL if not found. */ symtype LSL_loadSym (soHandle_t h, const char *symName, char *msgBuf, int msgLen) { symtype s; const char *from; char *to; const char *tripSym; char* err; char lcbuf[257]; char ucbuf[257]; char ocbuf[257]; size_t symLen; int trip; s = NULL; err = NULL; /* search in this order: * 1. original * 2. lower_ * 3. upper_ * 4. original_ * 5. lower * 6. upper */ symLen = 0; for (trip = 1; trip <= 6; trip++) { switch (trip) { case 1: /* original */ tripSym = symName; break; case 2: /* lower_ */ for (from = symName, to = lcbuf; *from; from++, to++) { *to = tolower(*from); } symLen = from - symName; *to++ = '_'; *to = '\0'; tripSym = lcbuf; break; case 3: /* upper_ */ for (from = symName, to = ucbuf; *from; from++, to++) { *to = toupper(*from); } *to++ = '_'; *to = '\0'; tripSym = ucbuf; break; case 4: /* original_ */ memcpy (ocbuf, symName, symLen); ocbuf[symLen] = '_'; ocbuf[symLen+1] = '\0'; tripSym = ocbuf; break; case 5: /* lower */ lcbuf[symLen] = '\0'; tripSym = lcbuf; break; case 6: /* upper */ ucbuf[symLen] = '\0'; tripSym = ucbuf; break; default: tripSym = symName; } /* end switch */ #ifdef HAVE_WINDOWS_H s = GetProcAddress (h, tripSym); if (NULL != s) { return s; } else { mysnprintf(msgBuf, msgLen, "Cannot find symbol %s in dynamic library, error = %d.", symName, GetLastError()); } #else # ifdef HAVE_DLFCN_H s = dlsym (h, tripSym); err = dlerror(); /* we have only one chance; a successive call to dlerror() returns NULL */ if (err) { strncpy(msgBuf, err, msgLen); msgBuf[msgLen-1]=0; } else { return s; } # endif #endif } /* end loop over symbol name variations */ return NULL; } /* LSL_loadSym */ Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/Makefile.am0000644000076600007660000000162011765704451022474 0ustar coincoin# Copyright (C) 2008, 2011 GAMS Development # All Rights Reserved. # This file is distributed under the Eclipse Public License. # ## $Id: Makefile.am 2107 2012-06-12 18:23:37Z stefan $ # # Author: Stefan Vigerske AUTOMAKE_OPTIONS = foreign EXTRA_DIST = noinst_LTLIBRARIES = libLinearSolverLoader.la libLinearSolverLoader_la_SOURCES = \ LibraryHandler.c LibraryHandler.h \ HSLLoader.c HSLLoader.h AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../Algorithm/LinearSolvers` \ $(HSL_CFLAGS) if BUILD_PARDISOLOADER libLinearSolverLoader_la_SOURCES += PardisoLoader.c PardisoLoader.h endif libLinearSolverLoader_la_LIBADD = libLinearSolverLoader_la_DEPENDENCIES = includeipoptdir = $(includedir)/coin includeipopt_HEADERS = HSLLoader.h PardisoLoader.h DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common DISTCLEANFILES = Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/LibraryHandler.h0000644000076600007660000000217511765641226023521 0ustar coincoin/* Copyright (C) 2008 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: LibraryHandler.h 2105 2012-06-12 13:22:30Z stefan $ Author: Stefan Vigerske inspired by optcc.h in gams i/o libs */ #ifndef LIBRARYHANDLER_H_ #define LIBRARYHANDLER_H_ #include "IpoptConfig.h" #ifdef HAVE_WINDOWS_H # include typedef HINSTANCE soHandle_t; #ifdef small #undef small #endif #else # ifdef HAVE_DLFCN_H # include # include typedef void *soHandle_t; # else # define ERROR_LOADLIB typedef void *soHandle_t; # endif #endif /** Loads a dynamically linked library. * @param libname The name of the library to load. * @param msgbuf A buffer to store an error message. * @param msglen Length of the message buffer. * @return Shared library handle, or NULL if failure. */ soHandle_t LSL_loadLib(const char* libname, char* msgbuf, int msglen); /** Unloads a shared library. * @param libhandle Handle of shared library to unload. * @return Zero on success, nonzero on failure. */ int LSL_unloadLib(soHandle_t libhandle); #endif /*LIBRARYHANDLER_H_*/ Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/HSLLoader.h0000644000076600007660000003754412156621430022372 0ustar coincoin/* Copyright (C) 2008, 2011 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: HSLLoader.h 2332 2013-06-14 14:05:12Z stefan $ Author: Stefan Vigerske */ #ifndef HSLLOADER_H_ #define HSLLOADER_H_ #include "IpoptConfig.h" #ifdef __cplusplus extern "C" { #endif #ifndef ma77_default_control #define ma77_control ma77_control_d #define ma77_info ma77_info_d #define ma77_default_control ma77_default_control_d #define ma77_open_nelt ma77_open_nelt_d #define ma77_open ma77_open_d #define ma77_input_vars ma77_input_vars_d #define ma77_input_reals ma77_input_reals_d #define ma77_analyse ma77_analyse_d #define ma77_factor ma77_factor_d #define ma77_factor_solve ma77_factor_solve_d #define ma77_solve ma77_solve_d #define ma77_resid ma77_resid_d #define ma77_scale ma77_scale_d #define ma77_enquire_posdef ma77_enquire_posdef_d #define ma77_enquire_indef ma77_enquire_indef_d #define ma77_alter ma77_alter_d #define ma77_restart ma77_restart_d #define ma77_finalise ma77_finalise_d #endif struct ma77_control; struct ma77_info; typedef double ma77pkgtype_d_; #ifndef ma86_default_control #define ma86_control ma86_control_d #define ma86_info ma86_info_d #define ma86_default_control ma86_default_control_d #define ma86_analyse ma86_analyse_d #define ma86_factor ma86_factor_d #define ma86_factor_solve ma86_factor_solve_d #define ma86_solve ma86_solve_d #define ma86_finalise ma86_finalise_d #endif struct ma86_control; struct ma86_info; typedef double ma86pkgtype_d_; typedef double ma86realtype_d_; #ifndef ma97_default_control #define ma97_control ma97_control_d #define ma97_info ma97_info_d #define ma97_default_control ma97_default_control_d #define ma97_analyse ma97_analyse_d #define ma97_factor ma97_factor_d #define ma97_factor_solve ma97_factor_solve_d #define ma97_solve ma97_solve_d #define ma97_finalise ma97_finalise_d #define ma97_free_akeep ma97_free_akeep_d #endif struct ma97_control; struct ma97_info; typedef double ma97pkgtype_d_; typedef double ma97realtype_d_; struct mc68_control_i; struct mc68_info_i; #ifndef __IPTYPES_HPP__ /* Type of Fortran integer translated into C */ typedef FORTRAN_INTEGER_TYPE ipfint; #endif typedef void (*ma27ad_t)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, ipfint *IW, ipfint* LIW, ipfint* IKEEP, ipfint *IW1, ipfint* NSTEPS, ipfint* IFLAG, ipfint* ICNTL, double* CNTL, ipfint *INFO, double* OPS); typedef void (*ma27bd_t)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, ipfint* IKEEP, ipfint* NSTEPS, ipfint* MAXFRT, ipfint* IW1, ipfint* ICNTL, double* CNTL, ipfint* INFO); typedef void (*ma27cd_t)(ipfint *N, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, double* W, ipfint* MAXFRT, double* RHS, ipfint* IW1, ipfint* NSTEPS, ipfint* ICNTL, double* CNTL); typedef void (*ma27id_t)(ipfint* ICNTL, double* CNTL); typedef void (*ma28ad_t)(void* nsize, void* nz, void* rw, void* licn, void* iw, void* lirn, void* iw2, void* pivtol, void* iw3, void* iw4, void* rw2, void* iflag); typedef void (*ma57ad_t) ( ipfint *n, /* Order of matrix. */ ipfint *ne, /* Number of entries. */ const ipfint *irn, /* Matrix nonzero row structure */ const ipfint *jcn, /* Matrix nonzero column structure */ ipfint *lkeep, /* Workspace for the pivot order of lenght 3*n */ ipfint *keep, /* Workspace for the pivot order of lenght 3*n */ /* Automatically iflag = 0; ikeep pivot order iflag = 1 */ ipfint *iwork, /* Integer work space. */ ipfint *icntl, /* Integer Control parameter of length 30*/ ipfint *info, /* Statistical Information; Integer array of length 20 */ double *rinfo); /* Double Control parameter of length 5 */ typedef void (*ma57bd_t) ( ipfint *n, /* Order of matrix. */ ipfint *ne, /* Number of entries. */ double *a, /* Numerical values. */ double *fact, /* Entries of factors. */ ipfint *lfact, /* Length of array `fact'. */ ipfint *ifact, /* Indexing info for factors. */ ipfint *lifact, /* Length of array `ifact'. */ ipfint *lkeep, /* Length of array `keep'. */ ipfint *keep, /* Integer array. */ ipfint *iwork, /* Workspace of length `n'. */ ipfint *icntl, /* Integer Control parameter of length 20. */ double *cntl, /* Double Control parameter of length 5. */ ipfint *info, /* Statistical Information; Integer array of length 40. */ double *rinfo); /* Statistical Information; Real array of length 20. */ typedef void (*ma57cd_t) ( ipfint *job, /* Solution job. Solve for... */ ipfint *n, /* Order of matrix. */ double *fact, /* Entries of factors. */ ipfint *lfact, /* Length of array `fact'. */ ipfint *ifact, /* Indexing info for factors. */ ipfint *lifact, /* Length of array `ifact'. */ ipfint *nrhs, /* Number of right hand sides. */ double *rhs, /* Numerical Values. */ ipfint *lrhs, /* Leading dimensions of `rhs'. */ double *work, /* Real workspace. */ ipfint *lwork, /* Length of `work', >= N*NRHS. */ ipfint *iwork, /* Integer array of length `n'. */ ipfint *icntl, /* Integer Control parameter array of length 20. */ ipfint *info); /* Statistical Information; Integer array of length 40. */ typedef void (*ma57ed_t) ( ipfint *n, ipfint *ic, /* 0: copy real array. >=1: copy integer array. */ ipfint *keep, double *fact, ipfint *lfact, double *newfac, ipfint *lnew, ipfint *ifact, ipfint *lifact, ipfint *newifc, ipfint *linew, ipfint *info); typedef void (*ma57id_t) (double *cntl, ipfint *icntl); typedef void (*ma77_default_control_t)(struct ma77_control_d *control); typedef void (*ma77_open_nelt_t)(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const int nelt); typedef void (*ma77_open_t)(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_input_vars_t)(const int idx, const int nvar, const int list[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_input_reals_t)(const int idx, const int length, const double reals[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_analyse_t)(const int order[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_factor_t)(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale); typedef void (*ma77_factor_solve_t)(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale, const int nrhs, const int lx, double rhs[]); typedef void (*ma77_solve_t)(const int job, const int nrhs, const int lx, double x[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const double *scale); typedef void (*ma77_resid_t)(const int nrhs, const int lx, const double x[], const int lresid, double resid[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, double *anorm_bnd); typedef void (*ma77_scale_t)(double scale[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, double *anorm); typedef void (*ma77_enquire_posdef_t)(double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_enquire_indef_t)(int piv_order[], double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_alter_t)(const double d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_restart_t)(const char *restart_file, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma77_finalise_t)(void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); typedef void (*ma86_default_control_t)(struct ma86_control *control); typedef void (*ma86_analyse_t)(const int n, const int ptr[], const int row[], int order[], void **keep, const struct ma86_control *control, struct ma86_info *info); typedef void (*ma86_factor_t)(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[]); typedef void (*ma86_factor_solve_t)(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const int nrhs, const int ldx, ma86pkgtype_d_ x[], const ma86pkgtype_d_ scale[]); typedef void (*ma86_solve_t)(const int job, const int nrhs, const int ldx, ma86pkgtype_d_ *x, const int order[], void **keep, const struct ma86_control *control, struct ma86_info *info, const ma86pkgtype_d_ scale[]); typedef void (*ma86_finalise_t)(void **keep, const struct ma86_control *control); typedef void (*ma97_default_control_t)(struct ma97_control *control); typedef void (*ma97_analyse_t)(const int check, const int n, const int ptr[], const int row[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control *control, struct ma97_info *info, int order[]); typedef void (*ma97_factor_t)(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[]); typedef void (*ma97_factor_solve_t)(const int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], const int nrhs, ma97pkgtype_d_ x[], const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, const ma97pkgtype_d_ scale[]); typedef void (*ma97_solve_t)(const int job, const int nrhs, ma97pkgtype_d_ *x, const int ldx, void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info); typedef void (*ma97_finalise_t)(void **akeep, void **fkeep); typedef void (*ma97_free_akeep_t)(void **akeep); typedef void (*mc19ad_t)(ipfint *N, ipfint *NZ, double* A, ipfint *IRN, ipfint* ICN, float* R, float* C, float* W); typedef void (*mc68_default_control_t)(struct mc68_control_i *control); typedef void (*mc68_order_t)(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control_i *control, struct mc68_info_i *info); /** Tries to load a dynamically linked library with HSL routines. * Also tries to load symbols for those HSL routines that are not linked into Ipopt, i.e., HAVE_... is not defined. * Return a failure if the library cannot be loaded, but not if a symbol is not found. * @see LSL_isMA27available * @see LSL_isMA28available * @see LSL_isMA57available * @see LSL_isMA77available * @see LSL_isMA86available * @see LSL_isMA97available * @see LSL_isMC19available * @param libname The name under which the HSL lib can be found, or NULL to use a default name (libhsl.SHAREDLIBEXT). * @param msgbuf A buffer where we can store a failure message. Assumed to be NOT NULL! * @param msglen Length of the message buffer. * @return Zero on success, nonzero on failure. */ int LSL_loadHSL(const char* libname, char* msgbuf, int msglen); /** Unloads a loaded HSL library. * @return Zero on success, nonzero on failure. */ int LSL_unloadHSL(); /** Indicates whether a HSL library has been loaded. * @return Zero if not loaded, nonzero if handle is loaded */ int LSL_isHSLLoaded(); /** Indicates whether a HSL library is loaded and all symbols necessary to use MA27 have been found. * @return Zero if not available, nonzero if MA27 is available in the loaded library. */ int LSL_isMA27available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use MA28 have been found. * @return Zero if not available, nonzero if MA28 is available in the loaded library. */ int LSL_isMA28available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use MA57 have been found. * @return Zero if not available, nonzero if MA57 is available in the loaded library. */ int LSL_isMA57available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use MA77 have been found. * @return Zero if not available, nonzero if HSL_MA77 is available in the loaded library. */ int LSL_isMA77available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MA86 have been found. * @return Zero if not available, nonzero if HSL_MA86 is available in the loaded library. */ int LSL_isMA86available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MA97 have been found. * @return Zero if not available, nonzero if HSL_MA97 is available in the loaded library. */ int LSL_isMA97available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use MA57 have been found. * @return Zero if not available, nonzero if MC19 is available in the loaded library. */ int LSL_isMC19available(); /** Indicates whether a HSL library is loaded and all symbols necessary to use HSL_MC68 have been found. * @return Zero if not available, nonzero if MC68 is available in the loaded library. */ int LSL_isMC68available(); /** Returns name of the shared library that should contain HSL */ char* LSL_HSLLibraryName(); /** sets pointers to MA27 functions */ void LSL_setMA27(ma27ad_t ma27ad, ma27bd_t ma27bd, ma27cd_t ma27cd, ma27id_t ma27id); /** sets pointers to MA28 functions */ void LSL_setMA28(ma28ad_t ma28ad); /** sets pointers to MA57 functions */ void LSL_setMA57(ma57ad_t ma57ad, ma57bd_t ma57bd, ma57cd_t ma57cd, ma57ed_t ma57ed, ma57id_t ma57id); /** sets pointers to MA77 functions */ void LSL_setMA77(ma77_default_control_t ma77_default_control, ma77_open_nelt_t ma77_open_nelt, ma77_open_t ma77_open, ma77_input_vars_t ma77_input_vars, ma77_input_reals_t ma77_input_reals, ma77_analyse_t ma77_analyse, ma77_factor_t ma77_factor, ma77_factor_solve_t ma77_factor_solve, ma77_solve_t ma77_solve, ma77_resid_t ma77_resid, ma77_scale_t ma77_scale, ma77_enquire_posdef_t ma77_enquire_posdef, ma77_enquire_indef_t ma77_enquire_indef, ma77_alter_t ma77_alter, ma77_restart_t ma77_restart, ma77_finalise_t ma77_finalise); /** sets pointers to MA86 functions */ void LSL_setMA86(ma86_default_control_t ma86_default_control, ma86_analyse_t ma86_analyse, ma86_factor_t ma86_factor, ma86_factor_solve_t ma86_factor_solve, ma86_solve_t ma86_solve, ma86_finalise_t ma86_finalise); /** sets pointers to MA97 functions */ void LSL_setMA97(ma97_default_control_t ma97_default_control, ma97_analyse_t ma97_analyse, ma97_factor_t ma97_factor, ma97_factor_solve_t ma97_factor_solve, ma97_solve_t ma97_solve, ma97_finalise_t ma97_finalise, ma97_free_akeep_t ma97_free_akeep); /** sets pointer to MC19 function */ void LSL_setMC19(mc19ad_t mc19ad); /** sets pointers to MC68 functions */ void LSL_setMC68(mc68_default_control_t mc68_default_control, mc68_order_t mc68_order); #ifdef __cplusplus } #endif #endif /*HSLLOADER_H_*/ Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/PardisoLoader.h0000644000076600007660000000245012132261146023327 0ustar coincoin/* Copyright (C) 2008 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: PardisoLoader.h 2204 2013-04-13 13:49:26Z stefan $ Author: Stefan Vigerske */ #ifndef PARDISOLOADER_H_ #define PARDISOLOADER_H_ #ifdef __cplusplus extern "C" { #endif /** Tries to load a dynamically linked library with Pardiso. * Return a failure if the library cannot be loaded or not all Pardiso symbols are found. * @param libname The name under which the Pardiso lib can be found, or NULL to use a default name (libpardiso.SHAREDLIBEXT). * @param msgbuf A buffer where we can store a failure message. Assumed to be NOT NULL! * @param msglen Length of the message buffer. * @return Zero on success, nonzero on failure. */ int LSL_loadPardisoLib(const char* libname, char* msgbuf, int msglen); /** Unloads a loaded Pardiso library. * @return Zero on success, nonzero on failure. */ int LSL_unloadPardisoLib(); /** Indicates whether a Pardiso library has been successfully loaded. * @return Zero if not loaded, nonzero if handle is loaded */ int LSL_isPardisoLoaded(); /** Returns name of the shared library that should contain Pardiso */ char* LSL_PardisoLibraryName(); #ifdef __cplusplus } #endif #endif /*PARADISOLOADER_H_*/ Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/Makefile.in0000644000076600007660000005201212156624616022505 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2008, 2011 GAMS Development # All Rights Reserved. # This file is distributed under the Eclipse Public License. # # # Author: Stefan Vigerske srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_PARDISOLOADER_TRUE@am__append_1 = PardisoLoader.c PardisoLoader.h subdir = src/contrib/LinearSolverLoader DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__libLinearSolverLoader_la_SOURCES_DIST = LibraryHandler.c \ LibraryHandler.h HSLLoader.c HSLLoader.h PardisoLoader.c \ PardisoLoader.h @BUILD_PARDISOLOADER_TRUE@am__objects_1 = PardisoLoader.lo am_libLinearSolverLoader_la_OBJECTS = LibraryHandler.lo HSLLoader.lo \ $(am__objects_1) libLinearSolverLoader_la_OBJECTS = \ $(am_libLinearSolverLoader_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libLinearSolverLoader_la_SOURCES) DIST_SOURCES = $(am__libLinearSolverLoader_la_SOURCES_DIST) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includeipoptdir)" includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = noinst_LTLIBRARIES = libLinearSolverLoader.la libLinearSolverLoader_la_SOURCES = LibraryHandler.c LibraryHandler.h \ HSLLoader.c HSLLoader.h $(am__append_1) AM_CPPFLAGS = \ -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../Algorithm/LinearSolvers` \ $(HSL_CFLAGS) libLinearSolverLoader_la_LIBADD = libLinearSolverLoader_la_DEPENDENCIES = includeipoptdir = $(includedir)/coin includeipopt_HEADERS = HSLLoader.h PardisoLoader.h DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common DISTCLEANFILES = all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/contrib/LinearSolverLoader/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/contrib/LinearSolverLoader/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libLinearSolverLoader.la: $(libLinearSolverLoader_la_OBJECTS) $(libLinearSolverLoader_la_DEPENDENCIES) $(LINK) $(libLinearSolverLoader_la_LDFLAGS) $(libLinearSolverLoader_la_OBJECTS) $(libLinearSolverLoader_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HSLLoader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LibraryHandler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PardisoLoader.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeipoptHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeipoptHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-includeipoptHEADERS install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-includeipoptHEADERS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/contrib/LinearSolverLoader/PardisoLoader.c0000644000076600007660000001510011575701353023327 0ustar coincoin/* Copyright (C) 2008 GAMS Development and others All Rights Reserved. This code is published under the Eclipse Public License. $Id: PardisoLoader.c 2014 2011-06-14 15:48:59Z stefan $ Author: Stefan Vigerske */ #include "IpoptConfig.h" #include "LibraryHandler.h" #include "PardisoLoader.h" #include #include #include /* Type of Fortran integer translated into C */ typedef FORTRAN_INTEGER_TYPE ipfint; static soHandle_t Pardiso_handle = NULL; void LSL_lateParadisoLibLoad(); typedef void (*voidfun)(void); voidfun LSL_loadSym (soHandle_t h, const char *symName, char *msgBuf, int msgLen); /* Old pre-4.0.0 pardiso interface */ typedef void (*pardisoinit_old_t)(void* PT, const ipfint* MTYPE, ipfint* IPARM); typedef void (*pardiso_old_t)(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* E); /* PARDISO 4.0.0 and above */ typedef void (*pardisoinit_new_t)(void* PT, const ipfint* MTYPE, const ipfint * SOLVER, ipfint* IPARM, double* DPARM, ipfint* E); typedef void (*pardiso_new_t)(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* E, double* DPARM); static pardisoinit_old_t func_pardisoinit = NULL; static pardisoinit_new_t func_new_pardisoinit = NULL; static pardiso_old_t func_pardiso = NULL; static pardiso_new_t func_new_pardiso = NULL; static int pardiso_is_parallel = 0; void wrap_old_pardisoinit(void* PT, const ipfint* MTYPE, const ipfint* SOLVER, ipfint* IPARM, double* DPARM, ipfint* E) { if (func_pardisoinit == NULL) LSL_lateParadisoLibLoad(); func_pardisoinit(PT, MTYPE, IPARM); *E = 0; } void wrap_old_pardiso(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* E, double* DPARM) { /* Note: we assume dparm is not of importance (only used for indirect solver * according to PARDISO 4.1.1 documentation). */ if (func_pardiso == NULL) LSL_lateParadisoLibLoad(); /* if we do not have a parallel version, ensure that IPARM[2] (#threads) is set to 1 */ if (!pardiso_is_parallel) IPARM[2] = 1; func_pardiso(PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA, JA, PERM, NRHS, IPARM, MSGLVL, B, X, E); } void F77_FUNC(pardisoinit,PARDISOINIT)(void* PT, const ipfint* MTYPE, const ipfint* SOLVER, ipfint* IPARM, double* DPARM, ipfint* E) { if (func_new_pardisoinit == NULL) LSL_lateParadisoLibLoad(); assert(func_new_pardisoinit != NULL); func_new_pardisoinit(PT, MTYPE, SOLVER, IPARM, DPARM, E); } void F77_FUNC(pardiso,PARDISO)(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* E, double* DPARM) { if (func_new_pardiso == NULL) LSL_lateParadisoLibLoad(); assert(func_new_pardiso != NULL); /* if we do not have a parallel version, ensure that IPARM[2] (#threads) is set to 1 */ if (!pardiso_is_parallel) IPARM[2] = 1; func_new_pardiso(PT, MAXFCT, MNUM, MTYPE, PHASE, N, A, IA, JA, PERM, NRHS, IPARM, MSGLVL, B, X, E, DPARM); } #define PARDISOLIBNAME "libpardiso." SHAREDLIBEXT int LSL_loadPardisoLib(const char* libname, char* msgbuf, int msglen) { /* load Pardiso library */ if (libname) { Pardiso_handle=LSL_loadLib(libname, msgbuf, msglen); } else { /* try a default library name */ Pardiso_handle=LSL_loadLib(PARDISOLIBNAME, msgbuf, msglen); } if (Pardiso_handle==NULL) return 1; /* load Pardiso functions */ /* first check if we are new or old interface */ if(LSL_loadSym(Pardiso_handle, "pardiso_ipopt_newinterface", msgbuf, msglen) != NULL) { func_new_pardisoinit=(pardisoinit_new_t)LSL_loadSym(Pardiso_handle, "pardisoinit", msgbuf, msglen); if (func_new_pardisoinit == NULL) return 1; func_new_pardiso=(pardiso_new_t)LSL_loadSym(Pardiso_handle, "pardiso", msgbuf, msglen); if (func_new_pardiso == NULL) return 1; } else { func_pardisoinit=(pardisoinit_old_t)LSL_loadSym(Pardiso_handle, "pardisoinit", msgbuf, msglen); if (func_pardisoinit == NULL) return 1; func_pardiso=(pardiso_old_t)LSL_loadSym(Pardiso_handle, "pardiso", msgbuf, msglen); if (func_pardiso == NULL) return 1; func_new_pardisoinit = wrap_old_pardisoinit; func_new_pardiso = wrap_old_pardiso; } /* check if we use a parallel version of pardiso */ pardiso_is_parallel = LSL_loadSym(Pardiso_handle, "pardiso_exist_parallel", msgbuf, msglen) != NULL; return 0; } int LSL_unloadPardisoLib() { int rc; if (Pardiso_handle==NULL) return 0; rc = LSL_unloadLib(Pardiso_handle); Pardiso_handle=NULL; func_pardisoinit=NULL; func_pardiso=NULL; return rc; } int LSL_isPardisoLoaded() { return Pardiso_handle!=NULL; } void LSL_lateParadisoLibLoad() { char buffer[512]; int rc; sprintf(buffer, "Error unknown."); rc = LSL_loadPardisoLib(NULL, buffer, 512); if (rc!=0) { fprintf(stderr, "Error loading Pardiso dynamic library " PARDISOLIBNAME ": %s\nAbort...\n", buffer); exit(EXIT_FAILURE); } } char* LSL_PardisoLibraryName() { static char name[] = PARDISOLIBNAME; return name; } Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/0000755000076600007660000000000012214537465016532 5ustar coincoinIpopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyData.cpp0000644000076600007660000000341212141450650022134 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyData.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2007-06-04 // based on IpIpoptData.hpp #include "IpCGPenaltyData.hpp" namespace Ipopt { CGPenaltyData::CGPenaltyData() {} CGPenaltyData::~CGPenaltyData() {} bool CGPenaltyData::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { have_cgpen_deltas_ = false; have_cgfast_deltas_ = false; initialize_called_ = true; penalty_initialized_ = false; kkt_penalty_initialized_ = false; have_cgpen_deltas_ = false; have_cgfast_deltas_ = false; curr_penalty_pert_ = 0.; max_alpha_x_ = 1.; never_try_pure_Newton_ = false; restor_iter_ = -1; restor_counter_ = 0.; return true; } bool CGPenaltyData::InitializeDataStructures() { DBG_ASSERT(initialize_called_); #if COIN_IPOPT_CHECKLEVEL > 0 debug_delta_cgpen_tag_ = TaggedObject::Tag(); debug_delta_cgfast_tag_ = TaggedObject::Tag(); debug_delta_cgpen_tag_sum_ = TaggedObject::Tag(); debug_delta_cgfast_tag_sum_ = TaggedObject::Tag(); #endif // Set the pointers for storing steps to NULL delta_cgpen_ = NULL; delta_cgfast_ = NULL; have_cgpen_deltas_ = false; have_cgfast_deltas_ = false; return true; } void CGPenaltyData::AcceptTrialPoint() { // Free the memory for the Chen-Goldfarb step delta_cgpen_ = NULL; delta_cgfast_ = NULL; have_cgpen_deltas_ = false; have_cgfast_deltas_ = false; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyRegOp.hpp0000644000076600007660000000102211504216567022310 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyRegOp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-06-01 #ifndef __IPCGPENALTYREGOP_HPP__ #define __IPCGPENALTYREGOP_HPP__ #include "IpSmartPtr.hpp" namespace Ipopt { class RegisteredOptions; void RegisterOptions_CGPenalty(const SmartPtr& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPerturbationHandler.cpp0000644000076600007660000003637112125642166023723 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPerturbationHandler.cpp 2181 2013-03-30 20:00:54Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-04 #include "IpCGPerturbationHandler.hpp" #include "IpCGPenaltyData.hpp" #include "IpCGPenaltyCq.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif CGPerturbationHandler::CGPerturbationHandler() : PDPerturbationHandler(), reset_last_(false), degen_iters_max_(3) {} void CGPerturbationHandler::RegisterOptions(SmartPtr roptions) {} bool CGPerturbationHandler::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("max_hessian_perturbation", delta_xs_max_, prefix); options.GetNumericValue("min_hessian_perturbation", delta_xs_min_, prefix); options.GetNumericValue("perturb_inc_fact_first", delta_xs_first_inc_fact_, prefix); options.GetNumericValue("perturb_inc_fact", delta_xs_inc_fact_, prefix); options.GetNumericValue("perturb_dec_fact", delta_xs_dec_fact_, prefix); options.GetNumericValue("first_hessian_perturbation", delta_xs_init_, prefix); options.GetNumericValue("jacobian_regularization_value", delta_cd_val_, prefix); options.GetNumericValue("jacobian_regularization_exponent", delta_cd_exp_, prefix); options.GetBoolValue("perturb_always_cd", perturb_always_cd_, prefix); // The following option has been registered from CGSearchDirCalc options.GetNumericValue("penalty_max", penalty_max_, prefix); // The following option has been registered from CGPenaltyLSAccepter options.GetNumericValue("mult_diverg_feasibility_tol", mult_diverg_feasibility_tol_, prefix); hess_degenerate_ = NOT_YET_DETERMINED; if (!perturb_always_cd_) { jac_degenerate_ = NOT_YET_DETERMINED; } else { jac_degenerate_ = NOT_DEGENERATE; } degen_iters_ = 0; delta_x_curr_ = 0.; delta_s_curr_ = 0.; delta_c_curr_ = 0.; delta_d_curr_ = 0.; delta_x_last_ = 0.; delta_s_last_ = 0.; delta_c_last_ = 0.; delta_d_last_ = 0.; test_status_ = NO_TEST; return PDPerturbationHandler::InitializeImpl(options, prefix); } bool CGPerturbationHandler::ConsiderNewSystem(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("CGPerturbationHandler::ConsiderNewSystem",dbg_verbosity); // Check if we can conclude that some components of the system are // structurally degenerate finalize_test(); // If the current iterate is restored from a previous iteration, // initialize perturbationhandler data if (CGPenData().restor_iter() == IpData().iter_count()) { hess_degenerate_ = NOT_YET_DETERMINED; jac_degenerate_ = NOT_YET_DETERMINED; degen_iters_ = 0; hess_degenerate_ = NOT_DEGENERATE; jac_degenerate_ = NOT_DEGENERATE; delta_x_curr_ = 0.; delta_s_curr_ = 0.; delta_c_curr_ = 0.; delta_d_curr_ = 0.; delta_x_last_ = 0.; delta_s_last_ = 0.; delta_c_last_ = 0.; delta_d_last_ = 0.; test_status_ = NO_TEST; } // Store the perturbation from the previous matrix if (reset_last_) { delta_x_last_ = delta_x_curr_; delta_s_last_ = delta_s_curr_; delta_c_last_ = delta_c_curr_; delta_d_last_ = delta_d_curr_; } else { if (delta_x_curr_ > 0.) { delta_x_last_ = delta_x_curr_; } if (delta_s_curr_ > 0.) { delta_s_last_ = delta_s_curr_; } if (delta_c_curr_ > 0.) { delta_c_last_ = delta_c_curr_; } if (delta_d_curr_ > 0.) { delta_d_last_ = delta_d_curr_; } } DBG_ASSERT((hess_degenerate_ != NOT_YET_DETERMINED || jac_degenerate_ != DEGENERATE) && (jac_degenerate_ != NOT_YET_DETERMINED || hess_degenerate_ != DEGENERATE)); if (hess_degenerate_ == NOT_YET_DETERMINED || jac_degenerate_ == NOT_YET_DETERMINED) { if (!perturb_always_cd_ || CGPenCq().curr_cg_pert_fact() < delta_cd() || !CGPenData().NeverTryPureNewton()) { test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_EQ_0; } else { test_status_ = TEST_DELTA_C_GT_0_DELTA_X_EQ_0; } } else { test_status_ = NO_TEST; } Number pert_fact = CGPenCq().curr_cg_pert_fact(); if (jac_degenerate_ == DEGENERATE || CGPenData().NeverTryPureNewton() || perturb_always_cd_) { Number mach_eps = std::numeric_limits::epsilon(); if (pert_fact < 100.*mach_eps && jac_degenerate_ == DEGENERATE) { delta_c = delta_c_curr_ = 100.*mach_eps; } else { delta_c = delta_c_curr_ = pert_fact; } } else { delta_c = delta_c_curr_ = 0.; } CGPenData().SetCurrPenaltyPert(delta_c); delta_d = delta_d_curr_ = delta_c; if (hess_degenerate_ == DEGENERATE) { delta_x_curr_ = 0.; delta_s_curr_ = 0.; bool retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } } else { delta_x = 0.; delta_s = delta_x; } delta_x_curr_ = delta_x; delta_s_curr_ = delta_s; delta_c_curr_ = delta_c; delta_d_curr_ = delta_d; IpData().Set_info_regu_x(delta_x); get_deltas_for_wrong_inertia_called_ = false; return true; } bool CGPerturbationHandler::PerturbForSingularity( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("CGPerturbationHandler::PerturbForSingularity", dbg_verbosity); bool retval; // Check for structural degeneracy if (hess_degenerate_ == NOT_YET_DETERMINED || jac_degenerate_ == NOT_YET_DETERMINED) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Degeneracy test for hess_degenerate_ = %d and jac_degenerate_ = %d\n test_status_ = %d\n", hess_degenerate_, jac_degenerate_, test_status_); switch (test_status_) { case TEST_DELTA_C_EQ_0_DELTA_X_EQ_0: DBG_ASSERT(delta_x_curr_ == 0. && delta_c_curr_ == 0.); // in this case we haven't tried anything for this matrix yet if (jac_degenerate_ == NOT_YET_DETERMINED) { delta_d_curr_ = delta_c_curr_ = delta_cd(); test_status_ = TEST_DELTA_C_GT_0_DELTA_X_EQ_0; } else { DBG_ASSERT(hess_degenerate_ == NOT_YET_DETERMINED); retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } DBG_ASSERT(delta_c == 0. && delta_d == 0.); test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_GT_0; } break; case TEST_DELTA_C_GT_0_DELTA_X_EQ_0: DBG_ASSERT(delta_x_curr_ == 0. && delta_c_curr_ > 0.); DBG_ASSERT(jac_degenerate_ == NOT_YET_DETERMINED); //if (!perturb_always_cd_) { delta_d_curr_ = delta_c_curr_ = Max(delta_cd(), CGPenCq().curr_cg_pert_fact()); //delta_d_curr_ = delta_c_curr_ = // Max(delta_cd(), CGPenCq().curr_cg_pert_fact()); if (delta_d_curr_ < delta_cd()) { test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_GT_0; } else { test_status_ = TEST_DELTA_C_GT_0_DELTA_X_GT_0; } retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } /* DBG_ASSERT(delta_c == 0. && delta_d == 0.); */ test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_GT_0; //} /* else { retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } DBG_ASSERT(delta_c > 0. && delta_d > 0.); test_status_ = TEST_DELTA_C_GT_0_DELTA_X_GT_0; }*/ break; case TEST_DELTA_C_EQ_0_DELTA_X_GT_0: DBG_ASSERT(delta_x_curr_ > 0. && delta_c_curr_ == 0.); delta_d_curr_ = delta_c_curr_ = Max(delta_cd(), CGPenCq().curr_cg_pert_fact()); //delta_d_curr_ = delta_c_curr_ = CGPenCq().curr_cg_pert_fact(); retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } test_status_ = TEST_DELTA_C_GT_0_DELTA_X_GT_0; break; case TEST_DELTA_C_GT_0_DELTA_X_GT_0: retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } break; case NO_TEST: DBG_ASSERT(false && "we should not get here."); } } else { if (delta_c_curr_ > 0. || get_deltas_for_wrong_inertia_called_) { // If we already used a perturbation for the constraints, we do // the same thing as if we were encountering negative curvature retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Can't get_deltas_for_wrong_inertia for delta_x_curr_ = %e and delta_c_curr_ = %e\n", delta_x_curr_, delta_c_curr_); return false; } } else { // Otherwise we now perturb the lower right corner delta_d_curr_ = delta_c_curr_ = delta_cd(); // ToDo - also perturb Hessian? IpData().Append_info_string("L"); Number curr_inf = IpCq().curr_primal_infeasibility(NORM_2); if (!CGPenData().NeverTryPureNewton() && curr_inf > mult_diverg_feasibility_tol_) { Number penalty = CGPenCq().compute_curr_cg_penalty_scale(); penalty = Min(penalty_max_, Max(penalty, CGPenData().curr_kkt_penalty())); CGPenData().Set_kkt_penalty(penalty); Number mach_pro = std::numeric_limits::epsilon(); delta_d_curr_ = delta_c_curr_ = Max(1e3*mach_pro,Max(CGPenCq().curr_cg_pert_fact(),delta_cd())); IpData().Append_info_string("u"); } } } delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; IpData().Set_info_regu_x(delta_x); return true; } bool CGPerturbationHandler::get_deltas_for_wrong_inertia( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { if (delta_x_curr_ == 0.) { if (delta_x_last_ == 0.) { delta_x_curr_ = delta_xs_init_; } else { delta_x_curr_ = Max(delta_xs_min_, delta_x_last_*delta_xs_dec_fact_); } } else { if (delta_x_last_ == 0. || 1e5*delta_x_last_ delta_xs_max_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "delta_x perturbation is becoming too large: %e\n", delta_x_curr_); delta_x_last_ = 0.; delta_s_last_ = 0.; IpData().Append_info_string("dx"); return false; } delta_s_curr_ = delta_x_curr_; delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; IpData().Set_info_regu_x(delta_x); get_deltas_for_wrong_inertia_called_ = true; return true; } bool CGPerturbationHandler::PerturbForWrongInertia( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("CGPerturbationHandler::PerturbForWrongInertia", dbg_verbosity); // Check if we can conclude that components of the system are // structurally degenerate (we only get here if the most recent // perturbation for a test did not result in a singular system) finalize_test(); bool retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval && delta_c==0.) { DBG_ASSERT(delta_d == 0.); delta_c_curr_ = delta_cd(); delta_d_curr_ = delta_c_curr_; delta_x_curr_ = 0.; delta_s_curr_ = 0.; test_status_ = NO_TEST; if (hess_degenerate_ == DEGENERATE) { hess_degenerate_ = NOT_YET_DETERMINED; } retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); } return retval; } void CGPerturbationHandler::CurrentPerturbation( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; } Number CGPerturbationHandler::delta_cd() { return delta_cd_val_ * pow(IpData().curr_mu(), delta_cd_exp_); } void CGPerturbationHandler::finalize_test() { switch (test_status_) { case NO_TEST: return; case TEST_DELTA_C_EQ_0_DELTA_X_EQ_0: if (hess_degenerate_ == NOT_YET_DETERMINED && jac_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nhj "); } else if (hess_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nh "); } else if (jac_degenerate_ == NOT_YET_DETERMINED) { jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nj "); } break; case TEST_DELTA_C_GT_0_DELTA_X_EQ_0: if (hess_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nh "); } if (jac_degenerate_ == NOT_YET_DETERMINED) { degen_iters_++; if (degen_iters_ >= degen_iters_max_) { jac_degenerate_ = DEGENERATE; IpData().Append_info_string("Dj "); } IpData().Append_info_string("L"); } break; case TEST_DELTA_C_EQ_0_DELTA_X_GT_0: if (jac_degenerate_ == NOT_YET_DETERMINED) { jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nj "); } if (hess_degenerate_ == NOT_YET_DETERMINED) { degen_iters_++; if (degen_iters_ >= degen_iters_max_) { hess_degenerate_ = DEGENERATE; IpData().Append_info_string("Dh "); } } break; case TEST_DELTA_C_GT_0_DELTA_X_GT_0: degen_iters_++; if (degen_iters_ >= degen_iters_max_) { hess_degenerate_ = DEGENERATE; jac_degenerate_ = DEGENERATE; IpData().Append_info_string("Dhj "); } IpData().Append_info_string("L"); break; } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPerturbationHandler.hpp0000644000076600007660000001770211504216567023727 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPerturbationHandler.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-04 #ifndef __IPCGPERTURBATIONHANDLER_HPP__ #define __IPCGPERTURBATIONHANDLER_HPP__ #include "IpPDPerturbationHandler.hpp" #include "IpCGPenaltyCq.hpp" namespace Ipopt { /** Class for handling the perturbation factors delta_x, delta_s, * delta_c, and delta_d in the primal dual system. This class is * used by the PDFullSpaceSolver to handle the cases where the * primal-dual system is singular or has the wrong inertia. The * perturbation factors are obtained based on simple heuristics, * taking into account the size of previous perturbations. */ class CGPerturbationHandler: public PDPerturbationHandler { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ CGPerturbationHandler(); /** Default destructor */ virtual ~CGPerturbationHandler() {} //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** This method must be called for each new matrix, and before any * other method for generating perturbation factors. Usually, * the returned perturbation factors are zero, but if the system * is thought to be structurally singular, they might be * positive. If the return value is false, no suitable * perturbation could be found. */ bool ConsiderNewSystem(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method returns pertubation factors for the case when the * most recent factorization resulted in a singular matrix. If * the return value is false, no suitable perturbation could be * found. */ bool PerturbForSingularity(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method returns pertubation factors for the case when the * most recent factorization resulted in a matrix with an * incorrect number of negative eigenvalues. If the return value * is false, no suitable perturbation could be found. */ bool PerturbForWrongInertia(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** Just return the perturbation values that have been determined * most recently */ void CurrentPerturbation(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ CGPerturbationHandler(const CGPerturbationHandler&); /** Overloaded Equals Operator */ void operator=(const CGPerturbationHandler&); //@} /** Method to easily access CGPenalty data */ CGPenaltyData& CGPenData() { CGPenaltyData& cg_pen_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return cg_pen_data; } /** Method to easily access CGPenalty calculated quantities */ CGPenaltyCq& CGPenCq() { CGPenaltyCq& cg_pen_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return cg_pen_cq; } /** @name Size of the most recent non-zero perturbation. */ //@{ /** The last nonzero value for delta_x */ Number delta_x_last_; /** The last nonzero value for delta_s */ Number delta_s_last_; /** The last nonzero value for delta_c */ Number delta_c_last_; /** The last nonzero value for delta_d */ Number delta_d_last_; //@} /** @name Size of the most recently suggested perturbation for the * current matrix. */ //@{ /** The current value for delta_x */ Number delta_x_curr_; /** The current value for delta_s */ Number delta_s_curr_; /** The current value for delta_c */ Number delta_c_curr_; /** The current value for delta_d */ Number delta_d_curr_; //@} /** Flag indicating if for the given matrix the perturb for wrong * inertia method has already been called. */ bool get_deltas_for_wrong_inertia_called_; /** @name Handling structural degeneracy */ //@{ /** Type for degeneracy flags */ enum DegenType { NOT_YET_DETERMINED, NOT_DEGENERATE, DEGENERATE }; /** Flag indicating whether the reduced Hessian matrix is thought * to be structurally singular. */ DegenType hess_degenerate_; /** Flag indicating whether the Jacobian of the constraints is * thought to be structurally rank-deficient. */ DegenType jac_degenerate_; /** Flag counting matrices in which degeneracy was observed in the * first successive iterations. -1 means that there was a * non-degenerate (unperturbed) matrix at some point. */ Index degen_iters_; /** Status of current trial configuration */ enum TrialStatus { NO_TEST, TEST_DELTA_C_EQ_0_DELTA_X_EQ_0, TEST_DELTA_C_GT_0_DELTA_X_EQ_0, TEST_DELTA_C_EQ_0_DELTA_X_GT_0, TEST_DELTA_C_GT_0_DELTA_X_GT_0 }; /** Current status */ TrialStatus test_status_; //@} /** @name Algorithmic parameters. */ //@{ /** Maximal perturbation for x and s. */ Number delta_xs_max_; /** Smallest possible perturbation for x and s. */ Number delta_xs_min_; /** Increase factor for delta_xs for first required perturbation. */ Number delta_xs_first_inc_fact_; /** Increase factor for delta_xs for later perturbations. */ Number delta_xs_inc_fact_; /** Decrease factor for delta_xs for later perturbations. */ Number delta_xs_dec_fact_; /** Very first trial value for delta_xs perturbation. */ Number delta_xs_init_; /** Size of perturbation for c and d blocks. */ Number delta_cd_val_; /** Exponent on mu in formula for of perturbation for c and d blocks. */ Number delta_cd_exp_; /** Flag indicating whether the new values are based on the * perturbations in the last iteration or in the more recent * iteration in which a perturbation was done. */ bool reset_last_; /** Required number of iterations for degeneracy conclusions. */ Index degen_iters_max_; /** Flag indicating that the delta_c, delta_d perturbation should * always be used */ bool perturb_always_cd_; //@} /** The max reference value for scaling the penalty parameter */ Number penalty_max_; /** Feasibility for perturbation in pure Newton method*/ Number mult_diverg_feasibility_tol_; /** @name Auxilliary methods */ //@{ /** Internal version of PerturbForWrongInertia with the * difference, that finalize_test is not called. Returns false * if the delta_x and delta_s parameters become too large. */ bool get_deltas_for_wrong_inertia(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method is call whenever a matrix had been factorization * and is not singular. In here, we can evaluate the outcome of * the deneracy test heuristics. */ void finalize_test(); /** Compute perturbation value for constraints */ Number delta_cd(); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpPiecewisePenalty.hpp0000644000076600007660000000743711504216567023017 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPiecewisePenalty.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Lifeng Chen/Zaiwen Wen Columbia Univ #ifndef __IPPIECEWISEPENALTY_HPP__ #define __IPPIECEWISEPENALTY_HPP__ #include "IpJournalist.hpp" #include "IpDebug.hpp" #include "IpOptionsList.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpBacktrackingLSAcceptor.hpp" #include "IpPDSystemSolver.hpp" #include #include namespace Ipopt { /** struct for one Piecewise Penalty entry. */ typedef struct PiecewisePenEntry { Number pen_r; Number barrier_obj; Number infeasi; } PiecewisePenEntry; /** Class for the Piecewise Penalty. This class contains all * Piecewise Penalty entries. * The entries are stored as the corner point, including the * margin. */ class PiecewisePenalty { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ PiecewisePenalty(Index dim); /** Default Destructor */ ~PiecewisePenalty() { //ToDo figure out if that here is necessary // Clear(); } //@} //@{ // Initialize Piecewise Penalty list bool IsPiecewisePenaltyListEmpty() { return PiecewisePenalty_list_.empty(); } void InitPiecewisePenaltyList(Number pen_r, Number barrier_obj, Number infeasi) { AddEntry( pen_r, barrier_obj, infeasi); } /** Check acceptability of given coordinates with respect * to the Piecewise Penalty. Returns true, if pair is acceptable */ bool Acceptable(Number Fzconst, Number Fzlin); /** Get the value of the biggest barrier function so far*/ Number BiggestBarr(); /** Update Piecewise Penalty entry for given coordinates. */ void UpdateEntry(Number barrier_obj, Number infeasi); /** Add a entry to the list */ void AddEntry(Number pen_r, Number barrier_obj, Number infeasi) { PiecewisePenEntry TmpEntry; if (IsPiecewisePenaltyListEmpty()) { TmpEntry.pen_r = 0.0; } else { TmpEntry.pen_r = pen_r; } TmpEntry.barrier_obj = barrier_obj; TmpEntry.infeasi = infeasi; PiecewisePenalty_list_.push_back(TmpEntry); } /** Clear and reset the piecewise penalty list */ void ResetList(Number pen_r, Number barrier_obj, Number infeasi) { PiecewisePenalty_list_.clear(); AddEntry( pen_r, barrier_obj, infeasi); } //@} /** Delete all Piecewise Penalty entries */ void Clear() { PiecewisePenalty_list_.clear(); } /** Print current Piecewise Penalty entries */ void Print(const Journalist& jnlst); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ PiecewisePenalty(); /** Copy Constructor */ PiecewisePenalty(const PiecewisePenalty&); /** Overloaded Equals Operator */ void operator=(const PiecewisePenalty&); //@} /** Dimension of the Piecewise Penalty (number of coordinates per entry) */ Index dim_; /** The min penalty value for the piecewise penalty list */ Number min_piece_penalty_; /** The max number of the break points in the piecewise penalty list */ Index max_piece_number_; /** vector storing the Piecewise Penalty entries */ std::vector PiecewisePenalty_list_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyRegOp.cpp0000644000076600007660000000136011504216567022310 0ustar coincoin// Copyright (C) 2007, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyRegOp.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-06-01 #include "IpAlgorithmRegOp.hpp" #include "IpRegOptions.hpp" #include "IpCGSearchDirCalc.hpp" #include "IpCGPenaltyLSAcceptor.hpp" namespace Ipopt { void RegisterOptions_CGPenalty(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Undocumented"); CGSearchDirCalculator::RegisterOptions(roptions); CGPenaltyLSAcceptor::RegisterOptions(roptions); CGPenaltyCq::RegisterOptions(roptions); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/Makefile.am0000644000076600007660000000340311573147064020565 0ustar coincoin# Copyright (C) 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2005 2011-06-06 12:55:16Z stefan $ # Authors: Andreas Waechter IBM 2007-06-01 AUTOMAKE_OPTIONS = foreign noinst_LTLIBRARIES = libcgpenalty.la libcgpenalty_la_SOURCES = \ IpCGPenaltyCq.cpp IpCGPenaltyCq.hpp \ IpCGPenaltyData.cpp IpCGPenaltyData.hpp \ IpCGPenaltyLSAcceptor.cpp IpCGPenaltyLSAcceptor.hpp \ IpCGPenaltyRegOp.cpp IpCGPenaltyRegOp.hpp \ IpCGPerturbationHandler.cpp IpCGPerturbationHandler.hpp \ IpCGSearchDirCalc.cpp IpCGSearchDirCalc.hpp \ IpPiecewisePenalty.cpp IpPiecewisePenalty.hpp libcgpenalty_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../Algorithm` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpCGPenaltyCq.cppbak IpCGPenaltyCq.hppbak \ IpCGPenaltyData.cppbak IpCGPenaltyData.hppbak \ IpCGPenaltyLSAcceptor.cppbak IpCGPenaltyLSAcceptor.hppbak \ IpCGPenaltyRegOp.cppbak IpCGPenaltyRegOp.hppbak \ IpCGPerturbationHandler.cppbak IpCGPerturbationHandler.hppbak \ IpCGSearchDirCalc.cppbak IpCGSearchDirCalc.hppbak \ IpPiecewisePenalty.cppbak IpPiecewisePenalty.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpPiecewisePenalty.cpp0000644000076600007660000001704011504216567023001 0ustar coincoin// Copyright (C) 2007, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPiecewisePenalty.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Lifeng Chen/Zaiwen Wen Columbia Univ #include "IpPiecewisePenalty.hpp" #include "IpJournalist.hpp" #include "IpRestoPhase.hpp" #include "IpAlgTypes.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PiecewisePenalty::PiecewisePenalty(Index dim) : dim_(dim), min_piece_penalty_(0), // make it regular option here or elsewhere? max_piece_number_(100) // make it regular option here or elsewhere? {} bool PiecewisePenalty::Acceptable(Number Fzconst, Number Fzlin) { DBG_START_METH("PiebcewisePenalty::Acceptable", dbg_verbosity); DBG_ASSERT(!IsPiecewisePenaltyListEmpty()); bool acceptable = false; std::vector::iterator iter; // Avoid the entries of the piecewise penalty list becoming too many. // Here, we require the entry number is less than or equal to max_piece_number, // unless the entries are accepted by the regular Armijo conditions. Index size = (Index)PiecewisePenalty_list_.size(); if (size >= max_piece_number_) { Number trial_inf = Fzlin; Number trial_barrier = Fzconst; // First check the starting entry of the list. iter = PiecewisePenalty_list_.begin(); Number value = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; if (value >= 0.) { iter++; value = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; if (value <= 0.) { return false; } } // Then check the ending entry of the list. iter = PiecewisePenalty_list_.end(); iter--; value = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; if (value <= 0. && trial_inf <= iter->infeasi) { return false; } // Check the next to the ending entry. if (value >= 0. && trial_inf >= iter->infeasi) { iter-=1; value = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; if (value <= 0.) { return false; } } // Finally, check the middle entries of the list. Number value_left, value_mid, value_right; for (iter = PiecewisePenalty_list_.begin() +1; iter != PiecewisePenalty_list_.end(); iter++) { value_mid = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; iter++; value_right = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; iter-=2; value_left = iter->barrier_obj + iter->pen_r * iter->infeasi - trial_barrier - iter->pen_r * trial_inf; iter++; if (value_left <= 0. && value_mid >= 0. && value_right <= 0.) { return false; } } } // Check if the trial point is acceptable to the piecewise list Number Fz; for (iter = PiecewisePenalty_list_.begin(); iter != PiecewisePenalty_list_.end(); iter++) { Fz = Fzconst + iter->pen_r * (Fzlin - iter->infeasi) - iter->barrier_obj ; if (Fz < 0.) { acceptable = true; break; } } iter = PiecewisePenalty_list_.end() -1; if (acceptable == false && Fzlin < iter->infeasi) { acceptable = true; } return acceptable; } Number PiecewisePenalty::BiggestBarr() { DBG_START_METH("PiecewisePenalty::BiggestBarr", dbg_verbosity); DBG_ASSERT(!IsPiecewisePenaltyListEmpty()); Number value = -1e20; if (PiecewisePenalty_list_.size() > 0) { std::vector::iterator iter; iter = PiecewisePenalty_list_.end(); iter--; value = iter->barrier_obj; } return value; } void PiecewisePenalty::UpdateEntry(Number barrier_obj, Number infeasi) { DBG_START_METH("PiecewisePenalty::UpdateEntry", dbg_verbosity); DBG_ASSERT(!IsPiecewisePenaltyListEmpty()); Number Gzi1, Gzi2; Number epsM = 0.0; //1e-20; Number TmpPen = 0.0; // construt a temp list, copy current list to the temp list std::vector TmpList(PiecewisePenalty_list_); // Erases the elements of current list PiecewisePenalty_list_.clear(); std::vector::iterator iter = TmpList.begin(), iter2; Gzi1 = barrier_obj + iter->pen_r * ( infeasi - iter->infeasi) - iter->barrier_obj; for (; iter <= TmpList.end()-1; iter++) { // Be careful about this if ( TmpList.size() > 1 && iter <= TmpList.end()-2 ) { iter2 = iter+1; Gzi2 = barrier_obj + iter2->pen_r * ( infeasi - iter2->infeasi) - iter2->barrier_obj; } else { Gzi2 = infeasi - iter->infeasi; } if ( Gzi1 < -epsM && Gzi2 >= epsM ) { if ( IsPiecewisePenaltyListEmpty() ) { AddEntry(TmpPen, barrier_obj, infeasi); } if (Gzi2 > epsM) { TmpPen = (iter->barrier_obj - barrier_obj)/( infeasi - iter->infeasi ); AddEntry(TmpPen, iter->barrier_obj, iter->infeasi); } } if (Gzi1 >= epsM && Gzi2 < -epsM) { if (Gzi1 > epsM) { AddEntry(iter->pen_r, iter->barrier_obj, iter->infeasi); } TmpPen = (iter->barrier_obj - barrier_obj)/(infeasi - iter->infeasi); AddEntry(TmpPen, barrier_obj, infeasi); } if (Gzi1 >= epsM && Gzi2 >= epsM) { AddEntry(iter->pen_r, iter->barrier_obj, iter->infeasi); } // handle the last point if ( iter == TmpList.end()-1 ) { if ( Gzi1 < - epsM && Gzi2 < - epsM ) { if ( IsPiecewisePenaltyListEmpty() ) { AddEntry(0.0, barrier_obj, infeasi); } } } Gzi1 = Gzi2; } dim_ = (Index)PiecewisePenalty_list_.size(); } /* void PiecewisePenalty::Clear() { DBG_START_METH("PenaltyLineSearch::Filter::Clear", dbg_verbosity); while (!PiecewisePenalty_list_.empty()) { PiecewisePenEntry entry = PiecewisePenalty_list_.back(); PiecewisePenalty_list_.pop_back(); delete entry; } } */ void PiecewisePenalty::Print(const Journalist& jnlst) { // DBG_START_METH("FilterLineSearch::Filter::Print", dbg_verbosity); jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "The current piecewise penalty has %d entries.\n",PiecewisePenalty_list_.size()); jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "We only allow %d entries.\n", max_piece_number_); jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "The min piecewise penalty is %d .\n", min_piece_penalty_); if (!jnlst.ProduceOutput(J_DETAILED, J_LINE_SEARCH)) { return; } std::vector::iterator iter; Index count = 0; for (iter = PiecewisePenalty_list_.begin(); iter != PiecewisePenalty_list_.end(); iter++) { if (count % 10 == 0) { jnlst.Printf(J_DETAILED, J_LINE_SEARCH, " pen_r barrier_obj infeasi\n"); } count++; jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "%5d ", count); jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "%23.16e %23.16e %23.16e \n", iter->pen_r, iter->barrier_obj, iter->infeasi); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyLSAcceptor.hpp0000644000076600007660000002511011504216567023277 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 #ifndef __IPCGPENALTYLSACCEPTOR_HPP__ #define __IPCGPENALTYLSACCEPTOR_HPP__ #include "IpPiecewisePenalty.hpp" #include "IpBacktrackingLSAcceptor.hpp" #include "IpPDSystemSolver.hpp" #include "IpIpoptAlg.hpp" #include "IpCGPenaltyCq.hpp" namespace Ipopt { /** Line search acceptor, based on the Chen-Goldfarb penalty * function approach. */ class CGPenaltyLSAcceptor : public BacktrackingLSAcceptor { public: /**@name Constructors/Destructors */ //@{ /** Constructor. The PDSystemSolver object only needs to be * provided (i.e. not NULL) if second order correction or * corrector steps are to be used. */ CGPenaltyLSAcceptor(const SmartPtr& pd_solver); /** Default destructor */ virtual ~CGPenaltyLSAcceptor(); //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Reset the acceptor. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset(); /** Initialization for the next line search. The flag in_watchdog * indicates if we are currently in an active watchdog * procedure. */ virtual void InitThisLineSearch(bool in_watchdog); /** Method that is called before the restoration phase is called. * Here, we can set up things that are required in the * termination test for the restoration phase. */ virtual void PrepareRestoPhaseStart(); /** Method returning the lower bound on the trial step sizes. If * the backtracking procedure encounters a trial step size below * this value after the first trial set, it swtiches to the * (soft) restoration phase. */ virtual Number CalculateAlphaMin(); /** Method for checking if current trial point is acceptable. * It is assumed that the delta information in ip_data is the * search direction used in criteria. The primal trial point has * to be set before the call. */ virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal); /** Try a second order correction for the constraints. If the * first trial step (with incoming alpha_primal) has been reject, * this tries up to max_soc_ second order corrections for the * constraints. Here, alpha_primal_test is the step size that * has to be used in the merit function acceptance tests. On * output actual_delta_ has been set to the step including the * second order correction if it has been accepted, otherwise it * is unchanged. If the SOC step has been accepted, alpha_primal * has the fraction-to-the-boundary value for the SOC step on * output. The return value is true, if a SOC step has been * accepted. */ virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ virtual bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Method for ending the current line search. When it is called, * the internal data should be updates, e.g., the penalty * parameter might be updated. alpha_primal_test is the value of * alpha that has been used for in the acceptence test ealier. */ virtual char UpdateForNextIteration(Number alpha_primal_test); /** Method for setting internal data if the watchdog procedure is * started. */ virtual void StartWatchDog(); /** Method for setting internal data if the watchdog procedure is * stopped. */ virtual void StopWatchDog(); /** Method for telling the BacktrackingLineSearch object that * a previous iterate has been restored. */ virtual bool RestoredIterate(); /** Method for telling the BacktrackingLineSearch object that the restoration * is not needed */ virtual bool NeverRestorationPhase(); /** Method for doing a fallback approach in case no search * direction could be computed. If no such fall back option is * available, return false. */ virtual bool DoFallback(); /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ CGPenaltyLSAcceptor(const CGPenaltyLSAcceptor&); /** Overloaded Equals Operator */ void operator=(const CGPenaltyLSAcceptor&); //@} /** Method to easily access CGPenalty data */ CGPenaltyData& CGPenData() { CGPenaltyData& cg_pen_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return cg_pen_data; } /** Method to easily access CGPenalty calculated quantities */ CGPenaltyCq& CGPenCq() { CGPenaltyCq& cg_pen_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return cg_pen_cq; } /** Check if the trial point is acceptable to the piecewise penalty list */ bool IsAcceptableToPiecewisePenalty(Number alpha_primal_test); /** Check if the trial point is acceptable by the Armijo condition */ bool ArmijoHolds(Number alpha_primal_test); /** Check comparison "lhs <= rhs", using machine precision based on BasVal */ //ToDo This should probably not be a static member function if we want to // allow for different relaxation parameters values static bool Compare_le(Number lhs, Number rhs, Number BasVal); bool CurrentIsBest(); void StoreBestPoint(); bool RestoreBestPoint(); bool MultipliersDiverged(); char UpdatePenaltyParameter(); /** @name Parameters for the penalty function algorithm. */ //@{ /** Relaxation factor in the Armijo condition for the penalty function */ Number eta_penalty_; /** Tolerance for infeasibility part in penalty parameter update * rule. */ Number penalty_update_infeasibility_tol_; /** Minimal tolerance for step part in penalty parameter update * rule. */ Number eta_min_; /** Tolerance for complementarity part in penalty parameter update * rule. */ Number penalty_update_compl_tol_; Number chi_hat_; Number chi_tilde_; Number chi_cup_; Number gamma_hat_; Number gamma_tilde_; Number penalty_max_; Number epsilon_c_; /** Parameters for piecewise penalty acceptor */ Number piecewisepenalty_gamma_obj_; Number piecewisepenalty_gamma_infeasi_; //@{ /** Upper bound on infeasibility */ Number pen_theta_max_; Number pen_theta_max_fact_; //@} // Number used to indicate that mu has been decreased Number pen_curr_mu_; /** Parameters deciding when the piecewise penalty acceptor shall be closed */ Number theta_min_; /** Flag indicating whether the trial point is accepted by the Armijo * condition or the PLPF condition */ bool accepted_by_Armijo_; /** Min step size that triggers nonmonotone method */ Number min_alpha_primal_; //@{ /*Initial constraint violation*/ Number reference_theta_; //@} /** Maximal number of second order correction steps */ Index max_soc_; /** Required reduction in constraint violation before trying * multiple second order correction steps \f$ \kappa_{soc}\f$. */ Number kappa_soc_; //@} /** Counter for increases of penalty parameter. */ Index counter_first_type_penalty_updates_; Index counter_second_type_penalty_updates_; /** eta parameter */ Number curr_eta_; /** counter for cut backs in the line search*/ Index ls_counter_; /** Record the lease KKT error found so far */ Number best_KKT_error_; /** Store the iterate with best KKT error found so far */ SmartPtr best_iterate_; /** Check if the multpliers are diverging*/ Number mult_diverg_feasibility_tol_; Number mult_diverg_y_tol_; /** @name Information related to watchdog procedure */ //@{ /** Penalty function at the point with respect to which * progress is to be made */ Number reference_penalty_function_; /** Directional derivative of penalty function at the point with * respect to which progress is to be made */ Number reference_direct_deriv_penalty_function_; Number reference_curr_direct_f_nrm_; /** Penalty function at the point with respect to which * progress is to be made (at watchdog point) */ Number watchdog_penalty_function_; /** Directional derivative of penalty function at the point with * respect to which progress is to be made (at watchdog point) */ Number watchdog_direct_deriv_penalty_function_; /** Backup for the Chen-Goldfarb search direction (needed in the * update rule for the penalty parameter */ SmartPtr watchdog_delta_cgpen_; //@} /** Flag for whether or not use piecewise penalty line search */ bool never_use_piecewise_penalty_ls_; // piecewise penalty list PiecewisePenalty PiecewisePenalty_; /** Flag indicating whether PiecewisePenalty has to be initiailized */ bool reset_piecewise_penalty_; Index jump_for_tiny_step_; /** @name Strategy objective that are used */ //@{ SmartPtr pd_solver_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyData.hpp0000644000076600007660000002242312141450650022144 0ustar coincoin// Copyright (C) 2007, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyData.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2007-06-04 // based on IpIpoptData.hpp #ifndef __IPCGPENALTYDATA_HPP__ #define __IPCGPENALTYDATA_HPP__ #include "IpIteratesVector.hpp" #include "IpOptionsList.hpp" #include "IpIpoptData.hpp" namespace Ipopt { /** Class to organize all the additional data required by the * Chen-Goldfarb penalty function algorithm. */ class CGPenaltyData : public IpoptAdditionalData { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ CGPenaltyData(); /** Default destructor */ ~CGPenaltyData(); //@} /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** Initialize Data Structures */ bool InitializeDataStructures(); /** Delta for the Chen-Goldfarb search direction */ SmartPtr delta_cgpen() const; /** Set the delta_cgpen - like the trial point, this method copies * the pointer for efficiency (no copy and to keep cache tags the * same) so after you call set, you cannot modify the data. */ void set_delta_cgpen(SmartPtr& delta_pen); /** Set the delta_cgpen - like the trial point, this method copies * the pointer for efficiency (no copy and to keep cache tags the * same) so after you call set, you cannot modify the data. This * is the version that is happy with a pointer to const * IteratesVector. */ void set_delta_cgpen(SmartPtr& delta_pen); /** Delta for the fast Chen-Goldfarb search direction */ SmartPtr delta_cgfast() const; /** Set the delta_cgpen - like the trial point, this method copies * the pointer for efficiency (no copy and to keep cache tags the * same) so after you call set, you cannot modify the data. */ void set_delta_cgfast(SmartPtr& delta_fast); /** @name Chen-Goldfarb step2. Those fields can be used to store * directions related to the Chen-Goldfarb algorithm */ //@{ bool HaveCgPenDeltas() const { return have_cgpen_deltas_; } void SetHaveCgPenDeltas(bool have_cgpen_deltas) { have_cgpen_deltas_ = have_cgpen_deltas; } bool HaveCgFastDeltas() const { return have_cgfast_deltas_; } void SetHaveCgFastDeltas(bool have_cgfast_deltas) { have_cgfast_deltas_ = have_cgfast_deltas; } //@} /** @name Public Methods for updating iterates */ //@{ /** Set the current iterate values from the * trial values. */ void AcceptTrialPoint(); //@} Number CurrPenaltyPert() { return curr_penalty_pert_; } void SetCurrPenaltyPert(Number curr_penalty_pert) { curr_penalty_pert_ = curr_penalty_pert; } void SetNeverTryPureNewton(bool never_try_pure_Newton) { never_try_pure_Newton_ = never_try_pure_Newton; } Index NeverTryPureNewton() { return never_try_pure_Newton_; } Index restor_iter() { return restor_iter_; } void SetRestorIter(Index restor_iter) { restor_iter_ = restor_iter; } Number restor_counter() { return restor_counter_; } void SetRestorCounter(Number restor_counter) { restor_counter_ = restor_counter; } void SetPrimalStepSize(Number max_alpha_x) { max_alpha_x_ = max_alpha_x; } Number PrimalStepSize() { return max_alpha_x_; } Number curr_penalty() const { DBG_ASSERT(penalty_initialized_); return curr_penalty_; } void Set_penalty(Number penalty) { curr_penalty_ = penalty; penalty_initialized_ = true; } void SetPenaltyUninitialized() { penalty_initialized_ = false; } bool PenaltyInitialized() const { return penalty_initialized_; } Number curr_kkt_penalty() const { DBG_ASSERT(kkt_penalty_initialized_); return curr_kkt_penalty_; } void Set_kkt_penalty(Number kkt_penalty) { curr_kkt_penalty_ = kkt_penalty; kkt_penalty_initialized_ = true; } void SetKKTPenaltyUninitialized() { kkt_penalty_initialized_ = false; } bool KKTPenaltyInitialized() const { return kkt_penalty_initialized_; } private: /** @name Pure Chen-Goldfarb step for the penatly function. This * used to transfer the information about the step from the * computation of the overall search direction to the line * search. */ //@{ SmartPtr delta_cgpen_; /** The following flag is set to true, if some other part of the * algorithm has already computed the Chen-Goldfarb step. This * flag is reset when the AcceptTrialPoint method is called. * ToDo: we could cue off of a null delta_cgpen_; */ bool have_cgpen_deltas_; //@} /** @name Fast Chen-Goldfarb step for the penatly function. This * used to transfer the information about the step from the * computation of the overall search direction to the line * search. */ //@{ SmartPtr delta_cgfast_; /** The following flag is set to true, if some other part of the * algorithm has already computed the fast Chen-Goldfarb step. * This flag is reset when the AcceptTrialPoint method is called. * * ToDo: we could cue off of a null delta_cgfast_; */ bool have_cgfast_deltas_; //@} /** @name penalty method **/ //@{ /** Flag indicating whether the pure Newton method is used */ bool never_try_pure_Newton_; /** The iteration at which pure Newton method is given up*/ Index restor_iter_; Number restor_counter_; /**@name penalty parameters */ Number curr_penalty_; bool penalty_initialized_; Number curr_kkt_penalty_; bool kkt_penalty_initialized_; Number curr_penalty_pert_; Number max_alpha_x_; //@} /** flag indicating if Initialize method has been called (for * debugging) */ bool initialize_called_; /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ CGPenaltyData(const CGPenaltyData&); /** Overloaded Equals Operator */ void operator=(const CGPenaltyData&); //@} #if COIN_IPOPT_CHECKLEVEL > 0 /** Some debug flags to make sure vectors are not changed * behind the CGPenaltyData's back */ //@{ TaggedObject::Tag debug_delta_cgpen_tag_; TaggedObject::Tag debug_delta_cgfast_tag_; TaggedObject::Tag debug_delta_cgpen_tag_sum_; TaggedObject::Tag debug_delta_cgfast_tag_sum_; //@} #endif }; inline SmartPtr CGPenaltyData::delta_cgpen() const { DBG_ASSERT(IsNull(delta_cgpen_) || (delta_cgpen_->GetTag() == debug_delta_cgpen_tag_ && delta_cgpen_->GetTagSum() == debug_delta_cgpen_tag_sum_) ); return delta_cgpen_; } inline SmartPtr CGPenaltyData::delta_cgfast() const { DBG_ASSERT(IsNull(delta_cgfast_) || (delta_cgfast_->GetTag() == debug_delta_cgfast_tag_ && delta_cgfast_->GetTagSum() == debug_delta_cgfast_tag_sum_) ); return delta_cgfast_; } inline void CGPenaltyData::set_delta_cgpen(SmartPtr& delta_cgpen) { delta_cgpen_ = ConstPtr(delta_cgpen); #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta_cgpen)) { debug_delta_cgpen_tag_ = delta_cgpen->GetTag(); debug_delta_cgpen_tag_sum_ = delta_cgpen->GetTagSum(); } else { debug_delta_cgpen_tag_ = TaggedObject::Tag(); debug_delta_cgpen_tag_sum_ = delta_cgpen->GetTagSum(); } #endif delta_cgpen = NULL; } inline void CGPenaltyData::set_delta_cgpen(SmartPtr& delta_cgpen) { delta_cgpen_ = delta_cgpen; #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta_cgpen)) { debug_delta_cgpen_tag_ = delta_cgpen->GetTag(); debug_delta_cgpen_tag_sum_ = delta_cgpen->GetTagSum(); } else { debug_delta_cgpen_tag_ = TaggedObject::Tag(); debug_delta_cgpen_tag_sum_ = delta_cgpen->GetTagSum(); } #endif delta_cgpen = NULL; } inline void CGPenaltyData::set_delta_cgfast(SmartPtr& delta_cgfast) { delta_cgfast_ = ConstPtr(delta_cgfast); #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta_cgfast)) { debug_delta_cgfast_tag_ = delta_cgfast->GetTag(); debug_delta_cgfast_tag_sum_ = delta_cgfast->GetTagSum(); } else { debug_delta_cgfast_tag_ = TaggedObject::Tag(); debug_delta_cgfast_tag_sum_ = delta_cgfast->GetTagSum(); } #endif delta_cgfast = NULL; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/Makefile.in0000644000076600007660000005224312156624616020605 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Andreas Waechter IBM 2007-06-01 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/contrib/CGPenalty DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libcgpenalty_la_LIBADD = am_libcgpenalty_la_OBJECTS = IpCGPenaltyCq.lo IpCGPenaltyData.lo \ IpCGPenaltyLSAcceptor.lo IpCGPenaltyRegOp.lo \ IpCGPerturbationHandler.lo IpCGSearchDirCalc.lo \ IpPiecewisePenalty.lo libcgpenalty_la_OBJECTS = $(am_libcgpenalty_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcgpenalty_la_SOURCES) DIST_SOURCES = $(libcgpenalty_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign noinst_LTLIBRARIES = libcgpenalty.la libcgpenalty_la_SOURCES = \ IpCGPenaltyCq.cpp IpCGPenaltyCq.hpp \ IpCGPenaltyData.cpp IpCGPenaltyData.hpp \ IpCGPenaltyLSAcceptor.cpp IpCGPenaltyLSAcceptor.hpp \ IpCGPenaltyRegOp.cpp IpCGPenaltyRegOp.hpp \ IpCGPerturbationHandler.cpp IpCGPerturbationHandler.hpp \ IpCGSearchDirCalc.cpp IpCGSearchDirCalc.hpp \ IpPiecewisePenalty.cpp IpPiecewisePenalty.hpp libcgpenalty_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../Algorithm` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpCGPenaltyCq.cppbak IpCGPenaltyCq.hppbak \ IpCGPenaltyData.cppbak IpCGPenaltyData.hppbak \ IpCGPenaltyLSAcceptor.cppbak IpCGPenaltyLSAcceptor.hppbak \ IpCGPenaltyRegOp.cppbak IpCGPenaltyRegOp.hppbak \ IpCGPerturbationHandler.cppbak IpCGPerturbationHandler.hppbak \ IpCGSearchDirCalc.cppbak IpCGSearchDirCalc.hppbak \ IpPiecewisePenalty.cppbak IpPiecewisePenalty.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/contrib/CGPenalty/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/contrib/CGPenalty/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcgpenalty.la: $(libcgpenalty_la_OBJECTS) $(libcgpenalty_la_DEPENDENCIES) $(CXXLINK) $(libcgpenalty_la_LDFLAGS) $(libcgpenalty_la_OBJECTS) $(libcgpenalty_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGPenaltyCq.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGPenaltyData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGPenaltyLSAcceptor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGPenaltyRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGPerturbationHandler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpCGSearchDirCalc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPiecewisePenalty.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGSearchDirCalc.hpp0000644000076600007660000000771311504216567022403 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 // // Lifeng Chen/Zaiwen Wen Columbia Univ #ifndef __IPCGSEARCHDIRCALC_HPP__ #define __IPCGSEARCHDIRCALC_HPP__ #include "IpSearchDirCalculator.hpp" #include "IpPDSystemSolver.hpp" #include "IpCGPenaltyCq.hpp" namespace Ipopt { /** Implementation of the search direction calculator that computes * the Chen-Goldfarb step for the current barrier and penalty * parameter. */ class CGSearchDirCalculator : public SearchDirectionCalculator { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ CGSearchDirCalculator(const SmartPtr& pd_solver); /** Default destructor */ virtual ~CGSearchDirCalculator(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the search direction. If the penalty * paraemeter has not yet been initialized, it is initialized * now. The computed direction is stored in IpData().delta(). */ virtual bool ComputeSearchDirection(); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CGSearchDirCalculator(); /** Copy Constructor */ CGSearchDirCalculator(const CGSearchDirCalculator&); /** Overloaded Equals Operator */ void operator=(const CGSearchDirCalculator&); //@} /** Method to easily access CGPenalty data */ CGPenaltyData& CGPenData() { CGPenaltyData& cg_pen_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return cg_pen_data; } /** Method to easily access CGPenalty calculated quantities */ CGPenaltyCq& CGPenCq() { CGPenaltyCq& cg_pen_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return cg_pen_cq; } /** @name Algorithmic parameters */ //@{ /** safeguard factor for bound multipliers. If value >= 1, then * the dual variables will never deviate from the primal estimate * by more than the factors kappa_sigma and 1./kappa_sigma. */ Number penalty_init_min_; /** Maximal value for initial penalty parameter */ Number penalty_init_max_; /** Maximal value for penalty parameters */ Number penalty_max_; /** parameters used in computation of line search penalty parameter and * KKT perturbation parameters **/ Number pen_des_fact_; /** Algorithm type */ bool penalty_backward_; /** parameters used to check if the fast direction can be * used as the line search direction **/ Number kappa_x_dis_; Number kappa_y_dis_; Number vartheta_; Number delta_y_max_; Number fast_des_fact_; Number pen_init_fac_; /** Flag indicating whether the fast Chen-Goldfarb direction * should never be used */ bool never_use_fact_cgpen_direction_; /** Counter for how many times the pen para is updated nonmonotonically*/ Index nonmonotone_pen_update_counter_; //@} /** @name Strategy objects */ //@{ SmartPtr pd_solver_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyCq.hpp0000644000076600007660000001161111504216567021644 0ustar coincoin// Copyright (C) 2007, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyCq.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-06-04 // derived from IpIpoptCalculatedQuantities.hpp #ifndef __IPCGPENALTYCQ_HPP__ #define __IPCGPENALTYCQ_HPP__ #include "IpIpoptCalculatedQuantities.hpp" #include "IpCGPenaltyData.hpp" namespace Ipopt { /** Class for all Chen-Goldfarb penalty method specific calculated * quantities. */ class CGPenaltyCq : public IpoptAdditionalCq { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ CGPenaltyCq(IpoptNLP* ip_nlp, IpoptData* ip_data, IpoptCalculatedQuantities* ip_cg); /** Default destructor */ virtual ~CGPenaltyCq(); //@} /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /**@name Methods for the Chen-Goldfarb line search */ //@{ /** Compute ||delta_c, delta_d||_infty */ Number curr_jac_cd_norm(Index nrm_type); /** Compute gradient scaling based y->Amax */ Number curr_scaled_y_Amax(); /** Compute the 2-norm of y plus delta y */ Number curr_added_y_nrm2(); /** Method for the penalty function at current point */ Number curr_penalty_function(); /** Method for the penalty function at trial point */ Number trial_penalty_function(); /** Method for the directional derivative of the penalty function * at current point with current step in delta */ Number curr_direct_deriv_penalty_function(); /** Method for the directional derivative of the penalty function * at current point with current "fast" step in delta_cgpen */ Number curr_fast_direct_deriv_penalty_function(); /** Quality of d^T Aug(H) d */ Number dT_times_barH_times_d(); /** Method for the current value for the perturbation factor for * the Chen-Goldfarb method. The factor is computed as 2-norm of * the constraints devided by the current penbalty parameter */ Number curr_cg_pert_fact(); /** Method for choose line search penalty parameter */ Number compute_curr_cg_penalty(const Number ); /** Method for choose penalty parameters for scaling the KKT system */ Number compute_curr_cg_penalty_scale(); //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(const SmartPtr& roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ CGPenaltyCq(); /** Copy Constructor */ CGPenaltyCq(const CGPenaltyCq&); /** Overloaded Equals Operator */ void operator=(const CGPenaltyCq&); //@} /** @name Pointers for easy access to data and NLP information. To * avoid circular references of Smart Pointers, we use a regular * pointer here. */ //@{ IpoptNLP* ip_nlp_; IpoptData* ip_data_; IpoptCalculatedQuantities* ip_cq_; //@} /** Method to easily access CGPenalty data */ CGPenaltyData& CGPenData() { CGPenaltyData& cg_pen_data = static_cast(ip_data_->AdditionalData()); DBG_ASSERT(dynamic_cast(&ip_data_->AdditionalData())); return cg_pen_data; } /**@name Caches for the Chen-Goldfarb line search */ //@{ CachedResults curr_fast_direct_deriv_penalty_function_cache_; CachedResults curr_jac_cd_norm_cache_; CachedResults curr_scaled_y_Amax_cache_; CachedResults curr_added_y_nrm2_cache_; /** Cache for the penalty function at current point */ CachedResults curr_penalty_function_cache_; /** Cache for the penalty function at trial point */ CachedResults trial_penalty_function_cache_; /** Cache for the directional derivative of the penalty function * at current point with step in delta */ CachedResults curr_direct_deriv_penalty_function_cache_; /** Cache for Chen-Goldfarb perturbation factor. */ CachedResults curr_cg_pert_fact_cache_; //@} /** Parameters for penalty method */ //@{ Number reference_infeasibility_; //@} /** flag indicating if Initialize method has been called (for * debugging) */ bool initialize_called_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGSearchDirCalc.cpp0000644000076600007660000003635511504216567022402 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGSearchDirCalc.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 // derived from IpIpoptAlg.cpp // // Lifeng Chen/Zaiwen Wen Columbia Univ #include "IpCGPenaltyData.hpp" #include "IpCGPenaltyCq.hpp" #include "IpCGSearchDirCalc.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif CGSearchDirCalculator::CGSearchDirCalculator(const SmartPtr& pd_solver) : pd_solver_(pd_solver) { DBG_START_FUN("CGSearchDirCalculator::CGSearchDirCalculator", dbg_verbosity); DBG_ASSERT(IsValid(pd_solver_)); } CGSearchDirCalculator::~CGSearchDirCalculator() { DBG_START_FUN("CGSearchDirCalculator::~CGSearchDirCalculator()", dbg_verbosity); } void CGSearchDirCalculator::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "penalty_init_max", "Maximal value for the intial penalty parameter (for Chen-Goldfarb line search).", 0, true, 1e5, ""); roptions->AddLowerBoundedNumberOption( "penalty_init_min", "Minimal value for the intial penalty parameter for line search(for Chen-Goldfarb line search).", 0., true, 1., ""); roptions->AddLowerBoundedNumberOption( "penalty_max", "Maximal value for the penalty parameter (for Chen-Goldfarb line search).", 0, true, 1e30, ""); roptions->AddLowerBoundedNumberOption( "pen_des_fact", "a parameter used in penalty parameter computation (for Chen-Goldfarb line search).", 0.0, true, 2e-1, ""); roptions->AddLowerBoundedNumberOption( "kappa_x_dis", "a parameter used to check if the fast direction can be used as" "the line search direction (for Chen-Goldfarb line search).", 0.0, true, 1e2, ""); roptions->AddLowerBoundedNumberOption( "kappa_y_dis", "a parameter used to check if the fast direction can be used as" "the line search direction (for Chen-Goldfarb line search).", 0.0, true, 1e4, ""); roptions->AddLowerBoundedNumberOption( "vartheta", "a parameter used to check if the fast direction can be used as" "the line search direction (for Chen-Goldfarb line search).", 0.0, true, 0.5, ""); roptions->AddLowerBoundedNumberOption( "delta_y_max", "a parameter used to check if the fast direction can be used as" "the line search direction (for Chen-Goldfarb line search).", 0.0, true, 1e12, ""); roptions->AddLowerBoundedNumberOption( "fast_des_fact", "a parameter used to check if the fast direction can be used as" "the line search direction (for Chen-Goldfarb line search).", 0.0, true, 1e-1, ""); roptions->AddLowerBoundedNumberOption( "pen_init_fac", "a parameter used to choose initial penalty parameters" "when the regularized Newton method is used.", 0.0, true, 5e1, ""); roptions->AddStringOption2( "never_use_fact_cgpen_direction", "Toggle to switch off the fast Chen-Goldfarb direction", "no", "no", "always compute the fast direction", "yes", "never compute the fast direction", ""); } bool CGSearchDirCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("penalty_init_max", penalty_init_max_, prefix); options.GetNumericValue("penalty_init_min", penalty_init_min_, prefix); options.GetNumericValue("penalty_max", penalty_max_, prefix); options.GetNumericValue("kappa_x_dis", kappa_x_dis_, prefix); options.GetNumericValue("kappa_y_dis", kappa_y_dis_, prefix); options.GetNumericValue("vartheta", vartheta_, prefix); options.GetNumericValue("delta_y_max", delta_y_max_, prefix); options.GetNumericValue("fast_des_fact", fast_des_fact_, prefix); options.GetNumericValue("pen_des_fact", pen_des_fact_, prefix); options.GetNumericValue("pen_init_fac", pen_init_fac_, prefix); options.GetBoolValue("never_use_fact_cgpen_direction", never_use_fact_cgpen_direction_, prefix); options.GetNumericValue("penalty_init_min", penalty_init_min_, prefix); nonmonotone_pen_update_counter_ = 0; return pd_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool CGSearchDirCalculator::ComputeSearchDirection() { DBG_START_METH("CGSearchDirCalculator::ComputeSearchDirection", dbg_verbosity); bool improve_solution = false; // So far, the adaptive mu strategies do not yet work with the // penalty function line search DBG_ASSERT(!IpData().FreeMuMode()); SmartPtr rhs = IpData().curr()->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_with_damping_x()); rhs->Set_s(*IpCq().curr_grad_lag_with_damping_s()); rhs->Set_z_L(*IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_U(*IpCq().curr_relaxed_compl_x_U()); rhs->Set_v_L(*IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_U(*IpCq().curr_relaxed_compl_s_U()); /** Initialize the penalty parameter */ if (!CGPenData().PenaltyInitialized() || !CGPenData().KKTPenaltyInitialized()) { Number penalty_init = penalty_init_min_; Number kkt_penalty_init = penalty_init_min_; if (!CGPenData().NeverTryPureNewton()) { Number y_max = Max(IpData().curr()->y_c()->Amax(), IpData().curr()->y_d()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Initializing penalty parameter for KKT matrix...\n"); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Max(||y_c||_inf,||y_d||_inf = %8.2e\n", y_max); penalty_init = Max(penalty_init_min_, Min(y_max, penalty_init_max_)); } else { // penalty_init = CGPenCq().compute_curr_cg_penalty_scale(); // penalty_init = Max(penalty_init_min_, Min(penalty_init, penalty_init_max_)); // For the moment,let's just not do scale penalty_init = 1e2*IpCq().curr_primal_infeasibility(NORM_2); penalty_init = Min(1e5, Max(1e1,penalty_init)); kkt_penalty_init = penalty_init; } CGPenData().Set_penalty(penalty_init); CGPenData().Set_kkt_penalty(kkt_penalty_init); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Initial value of the penalty parameter for line search = %8.2e\n", penalty_init); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Initial value of the kkt penalty parameter for scaling the linear system = %8.2e\n", kkt_penalty_init); } else { /* if (CGPenData().NeverTryPureNewton()) { // If pure Newton method is not used, adjust the penalty para for // purposes of well scaling the KKT system. if (CGPenData().restor_iter() == IpData().iter_count()) { Number restor_penalty_init = CGPenCq().compute_curr_cg_penalty_scale(); restor_penalty_init = Max(penalty_init_min_, Min(restor_penalty_init, penalty_init_max_)); CGPenData().Set_penalty(restor_penalty_init); CGPenData().Set_kkt_penalty(restor_penalty_init); } else { Number penalty_new = CGPenCq().compute_curr_cg_penalty_scale(); penalty_new = Max(CGPenData().curr_penalty(), Min(penalty_new, penalty_max_)); CGPenData().Set_penalty(penalty_new); CGPenData().Set_kkt_penalty(penalty_new); } }*/ if (CGPenData().restor_iter() == IpData().iter_count()) { Number i = CGPenData().restor_counter(); Number fac = pen_init_fac_*pow(1e-1, i); //Number restor_penalty_init = fac*IpCq().curr_primal_infeasibility(NORM_2); Number restor_penalty_init = fac; restor_penalty_init = Min(1e6, Max(1e1,restor_penalty_init)); CGPenData().Set_penalty(restor_penalty_init); CGPenData().Set_kkt_penalty(restor_penalty_init); } } // Initialize iteration data CGPenData().SetCurrPenaltyPert(0.); CGPenData().SetPrimalStepSize(1.); // Compute the fast direction rhs->Set_y_c(*IpCq().curr_c()); rhs->Set_y_d(*IpCq().curr_d_minus_s()); // Get space for the search direction SmartPtr delta_fast = IpData().curr()->MakeNewIteratesVector(true); bool allow_inexact = false; bool retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *delta_fast, allow_inexact, improve_solution); if (!retval) { return false; } // Store the fast search direction in the IpData->CGPenData object CGPenData().set_delta_cgfast(delta_fast); CGPenData().SetHaveCgFastDeltas(true); bool keep_fast_delta = true; // Get space for the cg_pen search direction SmartPtr delta_cgpen = IpData().curr()->MakeNewIteratesVector(true); if (CGPenData().CurrPenaltyPert() == 0.) { // if there is no perturbation on the Jacob, delta_fast = delta_cgpen. delta_cgpen->AddOneVector(1., *CGPenData().delta_cgfast(), 0.); CGPenData().set_delta_cgpen(delta_cgpen); CGPenData().SetHaveCgPenDeltas(true); } else { SmartPtr rhs_c = IpData().curr()->y_c()->MakeNew(); Number curr_pen_pert = CGPenData().CurrPenaltyPert(); rhs_c->AddTwoVectors(1., *IpCq().curr_c(), -curr_pen_pert, *IpData().curr()->y_c(), 0.); rhs->Set_y_c(*rhs_c); SmartPtr rhs_d = IpData().curr()->y_d()->MakeNew(); rhs_d->AddTwoVectors(1., *IpCq().curr_d_minus_s(), -curr_pen_pert, *IpData().curr()->y_d(), 0.); rhs->Set_y_d(*rhs_d); DBG_PRINT_VECTOR(2, "rhs_cgpen", *rhs); allow_inexact = false; retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *delta_cgpen, allow_inexact, improve_solution); if (!retval) { return false; } // Store the original search direction in the IpData object CGPenData().set_delta_cgpen(delta_cgpen); CGPenData().SetHaveCgPenDeltas(true); // Now we check whether the fast direction is good compatible with // the merit function // do the || tilde d_x - bar d_x ||_2 <= k_x_dis ||tilde d_x||_2^{vartheta} test SmartPtr delta_fast_x = CGPenData().delta_cgfast()->x(); SmartPtr delta_fast_s = CGPenData().delta_cgfast()->s(); SmartPtr delta_x = CGPenData().delta_cgpen()->x(); SmartPtr delta_s = CGPenData().delta_cgpen()->s(); Number tilde_dx_nrm = sqrt(pow(delta_fast_x->Nrm2(), 2.) + pow(delta_fast_s->Nrm2(), 2.)); Number diff_dx_nrm = sqrt(pow(delta_fast_x->Nrm2(), 2.) + pow(delta_fast_s->Nrm2(), 2.) - 2.*delta_x->Dot(*delta_fast_x) - 2.*delta_s->Dot(*delta_fast_s) + pow(delta_x->Nrm2(), 2.) + pow(delta_s->Nrm2(), 2.)); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Testing if fast direction can be used.\n" " diff_dx_nrm = %8.2e tilde_dx_norm = %8.2e\n", diff_dx_nrm, tilde_dx_nrm); tilde_dx_nrm = Max(tilde_dx_nrm, pow(tilde_dx_nrm, vartheta_)); if (diff_dx_nrm > kappa_x_dis_*tilde_dx_nrm) { keep_fast_delta = false; } if (keep_fast_delta) { // do the || tilde d_y ||_2 <= Max(d_y_max, k_y_dis || y + bar d_y ||_2) SmartPtr y_c = IpData().curr()->y_c(); SmartPtr y_d = IpData().curr()->y_d(); SmartPtr delta_fast_y_c = CGPenData().delta_cgfast()->y_c(); SmartPtr delta_fast_y_d = CGPenData().delta_cgfast()->y_d(); SmartPtr delta_y_c = CGPenData().delta_cgpen()->y_c(); SmartPtr delta_y_d = CGPenData().delta_cgpen()->y_d(); Number tilde_dy_nrm = sqrt(pow(delta_fast_y_c->Nrm2(), 2.) + pow(delta_fast_y_d->Nrm2(), 2.)); Number bar_y_nrm = sqrt(pow(y_c->Nrm2(), 2.) + pow(y_d->Nrm2(), 2.) + 2.*y_c->Dot(*delta_y_c) + 2.*y_d->Dot(*delta_y_d) + pow(delta_y_c->Nrm2(), 2.) + pow(delta_y_d->Nrm2(), 2.)); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Testing if fast direction can be used.\n" " tilde_dy_nrm = %8.2e bar_y_nrm = %8.2e\n", tilde_dy_nrm, bar_y_nrm); if (tilde_dy_nrm > Max(delta_y_max_, kappa_y_dis_*bar_y_nrm)) { keep_fast_delta = false; } } if (keep_fast_delta) { // For now, I just check if the directional derivative for the // penalty functions are not too much off Number dT_times_BarH_times_d = CGPenCq().dT_times_barH_times_d(); Number fast_direct_deriv = CGPenCq().curr_fast_direct_deriv_penalty_function(); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "dT_times_BarH_times_d = %23.15e fast_direct_deriv = %23.15e\n", dT_times_BarH_times_d, fast_direct_deriv); if (fast_direct_deriv > fast_des_fact_*dT_times_BarH_times_d) { keep_fast_delta = false; IpData().Append_info_string("g"); } } } // Set search direction SmartPtr delta = IpData().curr()->MakeNewIteratesVector(true); if (!keep_fast_delta) { CGPenData().SetHaveCgFastDeltas(false); delta->AddOneVector(1., *CGPenData().delta_cgpen(), 0.); } else { CGPenData().SetHaveCgFastDeltas(true); delta->AddOneVector(1., *CGPenData().delta_cgfast(), 0.); } IpData().set_delta(delta); // If the pure Newton method is used, update the penalty parameter for line search if (!CGPenData().NeverTryPureNewton()) { Number penalty = CGPenCq().compute_curr_cg_penalty(pen_des_fact_); Number curr_penalty = CGPenData().curr_penalty(); Number curr_kkt_penalty = CGPenData().curr_kkt_penalty(); if (penalty>curr_penalty) { penalty = Max(penalty, curr_penalty+1.); } else { if (curr_penalty <= curr_kkt_penalty || CGPenData().CurrPenaltyPert() == 0.) { penalty = curr_penalty; } else { penalty = curr_kkt_penalty; nonmonotone_pen_update_counter_++; } } CGPenData().Set_penalty(penalty); if (penalty > curr_kkt_penalty && nonmonotone_pen_update_counter_ > 50) { CGPenData().Set_kkt_penalty(penalty); } } return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyLSAcceptor.cpp0000644000076600007660000007544011504216567023305 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyLSAcceptor.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.cpp #include "IpCGPenaltyLSAcceptor.hpp" #include "IpCGPenaltyData.hpp" #include "IpCGPenaltyCq.hpp" #include "IpJournalist.hpp" #include "IpRestoPhase.hpp" #include "IpAlgTypes.hpp" #include "IpIpoptAlg.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif CGPenaltyLSAcceptor::CGPenaltyLSAcceptor(const SmartPtr& pd_solver) : PiecewisePenalty_(1), pd_solver_(pd_solver) { DBG_START_FUN("CGPenaltyLSAcceptor::CGPenaltyLSAcceptor", dbg_verbosity); } CGPenaltyLSAcceptor::~CGPenaltyLSAcceptor() { DBG_START_FUN("CGPenaltyLSAcceptor::~CGPenaltyLSAcceptor()", dbg_verbosity); } void CGPenaltyLSAcceptor::RegisterOptions(SmartPtr roptions) { roptions->AddStringOption2( "never_use_piecewise_penalty_ls", "Toggle to switch off the piecewise penalty method", "no", "no", "always use the piecewise penalty method", "yes", "never use the piecewise penalty method", ""); roptions->AddBoundedNumberOption( "eta_penalty", "Relaxation factor in the Armijo condition for the penalty function.", 0.0, true, 0.5, true, 1e-8); roptions->AddLowerBoundedNumberOption( "penalty_update_infeasibility_tol", "Threshold for infeasibility in penalty parameter update test.", 0.0, true, 1e-9, "If the new constraint violation is smaller than this tolerance, the " "penalty parameter is not increased."); roptions->AddLowerBoundedNumberOption( "eta_min", "LIFENG WRITES THIS.", 0.0, true, 1e1, ""); roptions->AddLowerBoundedNumberOption( "pen_theta_max_fact", "Determines upper bound for constraint violation in the filter.", 0.0, true, 1e4, "The algorithmic parameter theta_max is determined as theta_max_fact " "times the maximum of 1 and the constraint violation at initial point. " "Any point with a constraint violation larger than theta_max is " "unacceptable to the filter (see Eqn. (21) in implementation paper)."); roptions->AddLowerBoundedNumberOption( "penalty_update_compl_tol", "LIFENG WRITES THIS.", 0.0, true, 1e1, ""); roptions->AddLowerBoundedNumberOption( "chi_hat", "LIFENG WRITES THIS.", 0.0, true, 2., ""); roptions->AddLowerBoundedNumberOption( "chi_tilde", "LIFENG WRITES THIS.", 0.0, true, 5., ""); roptions->AddLowerBoundedNumberOption( "chi_cup", "LIFENG WRITES THIS.", 0.0, true, 1.5, ""); roptions->AddLowerBoundedNumberOption( "gamma_hat", "LIFENG WRITES THIS.", 0.0, true, 0.04, ""); roptions->AddLowerBoundedNumberOption( "gamma_tilde", "LIFENG WRITES THIS.", 0.0, true, 4., ""); roptions->AddLowerBoundedNumberOption( "epsilon_c", "LIFENG WRITES THIS.", 0.0, true, 1e-2, ""); roptions->AddLowerBoundedNumberOption( "piecewisepenalty_gamma_obj", "LIFENG WRITES THIS.", 0.0, true, 1e-13, ""); roptions->AddLowerBoundedNumberOption( "piecewisepenalty_gamma_infeasi", "LIFENG WRITES THIS.", 0.0, true, 1e-13, ""); roptions->AddLowerBoundedNumberOption( "min_alpha_primal", "LIFENG WRITES THIS.", 0.0, true, 1e-13, ""); roptions->AddLowerBoundedNumberOption( "theta_min", "LIFENG WRITES THIS.", 0.0, true, 1e-6, ""); roptions->AddLowerBoundedNumberOption( "mult_diverg_feasibility_tol", "tolerance for deciding if the multipliers are diverging", 0, true, 1e-7, ""); roptions->AddLowerBoundedNumberOption( "mult_diverg_y_tol", "tolerance for deciding if the multipliers are diverging", 0, true, 1e8, ""); } bool CGPenaltyLSAcceptor::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("never_use_piecewise_penalty_ls", never_use_piecewise_penalty_ls_, prefix); options.GetNumericValue("eta_penalty", eta_penalty_, prefix); options.GetNumericValue("penalty_update_infeasibility_tol", penalty_update_infeasibility_tol_, prefix); options.GetNumericValue("eta_min", eta_min_, prefix); options.GetNumericValue("penalty_update_compl_tol", penalty_update_compl_tol_, prefix); options.GetNumericValue("chi_hat", chi_hat_, prefix); options.GetNumericValue("chi_tilde", chi_tilde_, prefix); options.GetNumericValue("chi_cup", chi_cup_, prefix); options.GetNumericValue("gamma_hat", gamma_hat_, prefix); options.GetNumericValue("gamma_tilde", gamma_tilde_, prefix); options.GetNumericValue("epsilon_c", epsilon_c_, prefix); options.GetNumericValue("piecewisepenalty_gamma_obj", piecewisepenalty_gamma_obj_, prefix); options.GetNumericValue("piecewisepenalty_gamma_infeasi", piecewisepenalty_gamma_infeasi_, prefix); options.GetNumericValue("pen_theta_max_fact", pen_theta_max_fact_, prefix); options.GetNumericValue("min_alpha_primal", min_alpha_primal_, prefix); options.GetNumericValue("theta_min", theta_min_, prefix); options.GetNumericValue("mult_diverg_feasibility_tol", mult_diverg_feasibility_tol_, prefix); options.GetNumericValue("mult_diverg_y_tol", mult_diverg_y_tol_, prefix); // The following option has been registered by FilterLSAcceptor options.GetIntegerValue("max_soc", max_soc_, prefix); // The following option has been registered by CGSearhDirCalc options.GetNumericValue("penalty_max", penalty_max_, prefix); if (max_soc_>0) { ASSERT_EXCEPTION(IsValid(pd_solver_), OPTION_INVALID, "Option \"max_soc\": This option is non-negative, but no linear solver for computing the SOC given to FilterLSAcceptor object."); } options.GetNumericValue("kappa_soc", kappa_soc_, prefix); pen_theta_max_ = -1.; pen_curr_mu_ = IpData().curr_mu(); counter_first_type_penalty_updates_ = 0; counter_second_type_penalty_updates_ = 0; curr_eta_ = -1.; CGPenData().SetPenaltyUninitialized(); ls_counter_ = 0; best_KKT_error_ = -1.; accepted_by_Armijo_ = true; //never_do_restor_ = true; jump_for_tiny_step_ = 0; return true; } void CGPenaltyLSAcceptor::InitThisLineSearch(bool in_watchdog) { DBG_START_METH("CGPenaltyLSAcceptor::InitThisLineSearch", dbg_verbosity); accepted_by_Armijo_ = true; ls_counter_ = 0; // If the algorithm restarts from a previous iteration, reset line search parameters. if (CGPenData().restor_iter() == IpData().iter_count()) { Reset(); } // Every time mu is decreased, reset line search parameters. if (pen_curr_mu_ > IpData().curr_mu()) { Reset(); } if (reset_piecewise_penalty_) { Number curr_barr = IpCq().curr_barrier_obj(); Number curr_infeasi = IpCq().curr_constraint_violation(); PiecewisePenalty_.InitPiecewisePenaltyList(0.,curr_barr, curr_infeasi); reset_piecewise_penalty_ = false; } // Set the values for the reference point if (!in_watchdog) { reference_penalty_function_ = CGPenCq().curr_penalty_function(); reference_theta_ = IpCq().curr_constraint_violation(); if (CGPenData().HaveCgFastDeltas()) { // use the fast step reference_direct_deriv_penalty_function_ = CGPenCq().curr_fast_direct_deriv_penalty_function(); } else { reference_direct_deriv_penalty_function_ = CGPenCq().curr_direct_deriv_penalty_function(); } } else { //reference_theta_ = watchdog_theta_; reference_penalty_function_ = watchdog_penalty_function_; reference_direct_deriv_penalty_function_ = watchdog_direct_deriv_penalty_function_; } } bool CGPenaltyLSAcceptor::CheckAcceptabilityOfTrialPoint(Number alpha_primal_test) { DBG_START_METH("CGPenaltyLSAcceptor::CheckAcceptabilityOfTrialPoint", dbg_verbosity); Number curr_barr = IpCq().curr_barrier_obj(); Number curr_infeasi = IpCq().curr_constraint_violation(); //Number trial_barr = IpCq().trial_barrier_obj(); Number trial_infeasi = IpCq().trial_constraint_violation(); bool accept = false; ls_counter_++; if (ls_counter_ == 1) { CGPenData().SetPrimalStepSize(alpha_primal_test); } if (jump_for_tiny_step_ == 1) { jump_for_tiny_step_ = 0; Reset(); IpData().Append_info_string("jump"); return true; } /* if (jump_for_tiny_step_ == 1) { PiecewisePenalty_.InitPiecewisePenaltyList(0.,trial_barr, trial_infeasi); jump_for_tiny_step_ = 0; } */ // Initialize the piecewise penalty list in case that it's empty. if ( PiecewisePenalty_.IsPiecewisePenaltyListEmpty() ) { PiecewisePenalty_.InitPiecewisePenaltyList(0.,curr_barr, curr_infeasi); } // Initialize the max infeasibility that's allowed for every iteration, if (pen_theta_max_ < 0.) { pen_theta_max_ = pen_theta_max_fact_*Max(1.0, reference_theta_); } // Check if the constraint violation is becoming too large. If the violation // is bigger than pen_theta_max_, the trial point is rejected. if (pen_theta_max_>0 && trial_infeasi > pen_theta_max_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "trial_infeasi = %e is larger than theta_max = %e\n", trial_infeasi, pen_theta_max_); return false; } // Check Armijo conditions. if (!accept) { accept = ArmijoHolds(alpha_primal_test); } // Check PLPF criteria. if (!accept && !never_use_piecewise_penalty_ls_) { accept = IsAcceptableToPiecewisePenalty(alpha_primal_test); if (accept) { accepted_by_Armijo_ = false; } } if (alpha_primal_test < min_alpha_primal_ && !accept) { accept = true; } if (accept) { if (ls_counter_ > 15 && alpha_primal_test < 1e-5 && jump_for_tiny_step_ == 0) { jump_for_tiny_step_ = 1; } ls_counter_ = 0; } return accept; } Number CGPenaltyLSAcceptor::CalculateAlphaMin() { // ToDo For now we just return zero Number min_step_size = 0.; return min_step_size; } bool CGPenaltyLSAcceptor::IsAcceptableToPiecewisePenalty(Number alpha_primal_test) { DBG_START_METH("CGPenaltyLSAcceptor::IsAcceptableToPiecewisePenalty", dbg_verbosity); // If the current infeasibility is small, we require the barrier to be decreased. bool accept = false; Number infeasibility = IpCq().curr_primal_infeasibility(NORM_MAX); SmartPtr dx = IpData().delta()->x(); SmartPtr ds = IpData().delta()->s(); Number curr_barr = IpCq().curr_barrier_obj(); Number trial_barr = IpCq().trial_barrier_obj(); Number nrm_dx_ds = pow(dx->Nrm2(),2.) + pow(ds->Nrm2(),2.); if (infeasibility < theta_min_) { Number biggest_barr = PiecewisePenalty_.BiggestBarr(); accept = Compare_le(trial_barr-biggest_barr, -alpha_primal_test* piecewisepenalty_gamma_obj_*nrm_dx_ds, curr_barr); if (!accept) { return false; } } Number Fzconst, Fzlin; Fzconst = IpCq().trial_barrier_obj() + alpha_primal_test * piecewisepenalty_gamma_obj_ * nrm_dx_ds; Fzlin = IpCq().trial_constraint_violation() + alpha_primal_test * piecewisepenalty_gamma_infeasi_ * IpCq().curr_constraint_violation(); accept = PiecewisePenalty_.Acceptable(Fzconst, Fzlin); return accept; } bool CGPenaltyLSAcceptor::ArmijoHolds(Number alpha_primal_test) { DBG_START_METH("CGPenaltyLSAcceptor::ArmijoHolds", dbg_verbosity); bool accept = false; Number trial_penalty_function = CGPenCq().trial_penalty_function(); DBG_ASSERT(IsFiniteNumber(trial_penalty_function)); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking acceptability for trial step size alpha_primal_test=%13.6e:\n", alpha_primal_test); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of penalty function = %23.16e (reference %23.16e):\n", trial_penalty_function, reference_penalty_function_); if (Jnlst().ProduceOutput(J_DETAILED, J_LINE_SEARCH)) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "curr_barr = %23.16e curr_inf = %23.16e\n", IpCq().curr_barrier_obj(), IpCq().curr_constraint_violation()); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "trial_barr = %23.16e trial_inf = %23.16e\n", IpCq().trial_barrier_obj(), IpCq().trial_constraint_violation()); } // Now check the Armijo condition accept = Compare_le(trial_penalty_function-reference_penalty_function_, eta_penalty_*alpha_primal_test*reference_direct_deriv_penalty_function_, reference_penalty_function_); return accept; } bool CGPenaltyLSAcceptor::Compare_le(Number lhs, Number rhs, Number BasVal) { DBG_START_FUN("CGPenaltyLSAcceptor::Compare_le", dbg_verbosity); DBG_PRINT((1,"lhs = %27.16e rhs = %27.16e BasVal = %27.16e\n",lhs,rhs,BasVal)); Number mach_eps = std::numeric_limits::epsilon(); return (lhs - rhs <= 10.*mach_eps*fabs(BasVal)); } void CGPenaltyLSAcceptor::StartWatchDog() { DBG_START_FUN("CGPenaltyLSAcceptor::StartWatchDog", dbg_verbosity); watchdog_penalty_function_ = CGPenCq().curr_penalty_function(); watchdog_direct_deriv_penalty_function_ = CGPenCq().curr_direct_deriv_penalty_function(); watchdog_delta_cgpen_ = CGPenData().delta_cgpen(); } void CGPenaltyLSAcceptor::StopWatchDog() { DBG_START_FUN("CGPenaltyLSAcceptor::StopWatchDog", dbg_verbosity); reference_penalty_function_ = watchdog_penalty_function_; reference_direct_deriv_penalty_function_ = watchdog_direct_deriv_penalty_function_; CGPenData().set_delta_cgpen(watchdog_delta_cgpen_); watchdog_delta_cgpen_ = NULL; } void CGPenaltyLSAcceptor::Reset() { DBG_START_FUN("CGPenaltyLSAcceptor::Reset", dbg_verbosity); reset_piecewise_penalty_ = true; pen_theta_max_ = -1.; curr_eta_ = -1.; pen_curr_mu_ = IpData().curr_mu(); } bool CGPenaltyLSAcceptor::TrySecondOrderCorrection( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { DBG_START_METH("CGPenaltyLSAcceptor::TrySecondOrderCorrection", dbg_verbosity); if (max_soc_==0) { return false; } bool accept = false; Index count_soc = 0; Number theta_soc_old = 0.; Number theta_soc_old2 = 0.; Number theta_trial = IpCq().trial_constraint_violation(); Number theta_trial2 = IpCq().curr_primal_infeasibility(NORM_2); Number alpha_primal_soc = alpha_primal; // delta_y_c and delta_y_d are the steps used in the right hand // side for the SOC step SmartPtr delta_y_c = IpData().delta()->y_c(); SmartPtr delta_y_d = IpData().delta()->y_d(); SmartPtr c_soc = IpCq().curr_c()->MakeNewCopy(); SmartPtr dms_soc = IpCq().curr_d_minus_s()->MakeNewCopy(); while (count_socAddTwoVectors(1.0, *IpCq().trial_c(), -CGPenData().CurrPenaltyPert(), *delta_y_c, alpha_primal_soc); dms_soc->AddTwoVectors(1.0, *IpCq().trial_d_minus_s(), -CGPenData().CurrPenaltyPert(), *delta_y_d, alpha_primal_soc); // Compute the SOC search direction SmartPtr delta_soc = actual_delta->MakeNewIteratesVector(true); SmartPtr rhs = actual_delta->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_with_damping_x()); rhs->Set_s(*IpCq().curr_grad_lag_with_damping_s()); rhs->Set_y_c(*c_soc); rhs->Set_y_d(*dms_soc); rhs->Set_z_L(*IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_U(*IpCq().curr_relaxed_compl_x_U()); rhs->Set_v_L(*IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_U(*IpCq().curr_relaxed_compl_s_U()); pd_solver_->Solve(-1.0, 0.0, *rhs, *delta_soc, true); // Update the delta_y_c and delta_y_d vectors in case we do // additional SOC steps delta_y_c = ConstPtr(delta_soc->y_c()); delta_y_d = ConstPtr(delta_soc->y_d()); // Compute step size alpha_primal_soc = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *delta_soc->x(), *delta_soc->s()); // Check if trial point is acceptable try { // Compute the primal trial point IpData().SetTrialPrimalVariablesFromStep(alpha_primal_soc, *delta_soc->x(), *delta_soc->s()); // in acceptance tests, use original step size! accept = CheckAcceptabilityOfTrialPoint(alpha_primal_test); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_MAIN, "Warning: SOC step rejected due to evaluation error\n"); IpData().Append_info_string("e"); accept = false; // There is no point in continuing SOC procedure break; } if (accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Second order correction step accepted with %d corrections.\n", count_soc+1); // Accept all SOC quantities alpha_primal = alpha_primal_soc; actual_delta = delta_soc; } else { count_soc++; theta_trial = IpCq().trial_constraint_violation(); theta_trial2 = IpCq().trial_primal_infeasibility(NORM_2); } } if (accept) { ls_counter_ = 0; } return accept; } bool CGPenaltyLSAcceptor::TryCorrector( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { DBG_START_METH("CGPenaltyLSAcceptor::TryCorrector", dbg_verbosity); return false; } char CGPenaltyLSAcceptor::UpdateForNextIteration(Number alpha_primal_test) { char info_alpha_primal_char='n'; if (pen_curr_mu_ > IpData().curr_mu()) { pen_curr_mu_ = IpData().curr_mu(); best_KKT_error_ = -1.; } // See if the current iterate has the least KKT errors so far // If so, store the current iterate if (CurrentIsBest()) { StoreBestPoint(); } // update piecewise penalty parameters PiecewisePenalty_.Print( Jnlst() ); if (!accepted_by_Armijo_) { PiecewisePenalty_.UpdateEntry(IpCq().trial_barrier_obj(), IpCq().trial_constraint_violation()); } PiecewisePenalty_.Print( Jnlst() ); // update regular penalty parameter if (CGPenData().CurrPenaltyPert() != 0) { info_alpha_primal_char = UpdatePenaltyParameter(); } return info_alpha_primal_char; } bool CGPenaltyLSAcceptor::RestoredIterate() { bool restored_iterate = false; // See if we want to restor a previous iterate. // This is the case when the multipliers are blowing up. //if (!CGPenData().NeverTryPureNewton()){ if (CGPenData().restor_counter()<3.) { if (MultipliersDiverged()) { if (RestoreBestPoint()) { // so far the restoration method is wrong. Although it restores // both the primal and dual iterates here, the dual iterates // may be overwritten later when performing dual steps // in the line search method Index restor_iter = IpData().iter_count() + 1; Number restor_counter = CGPenData().restor_counter(); CGPenData().SetRestorCounter(restor_counter+1); CGPenData().SetNeverTryPureNewton(true); CGPenData().SetRestorIter(restor_iter); restored_iterate = true; } } } //} return restored_iterate; } bool CGPenaltyLSAcceptor::NeverRestorationPhase() { return true; } bool CGPenaltyLSAcceptor::CurrentIsBest() { DBG_START_METH("CGPenaltyLSAcceptor::CurrentIsBest", dbg_verbosity); Number dual_inf = IpCq().unscaled_curr_dual_infeasibility(NORM_MAX); Number constr_viol = IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX); Number compl_inf = IpCq().unscaled_curr_complementarity(0., NORM_MAX); Number KKT_error = Max(dual_inf,Max(constr_viol,compl_inf)); DBG_PRINT((1, "dual_inf = %e\n", dual_inf)); DBG_PRINT((1, "constr_viol = %e\n", constr_viol)); DBG_PRINT((1, "compl_inf = %e\n", compl_inf)); DBG_PRINT((1, "best_KKT_error_= %e\n", best_KKT_error_)); bool best = false; if (KKT_error < best_KKT_error_ || best_KKT_error_ < 0.) { best_KKT_error_ = KKT_error; best = true; } return best; } void CGPenaltyLSAcceptor::StoreBestPoint() { DBG_START_METH("CGPenaltyLSAcceptor::StoreBestPoint", dbg_verbosity); best_iterate_ = IpData().curr(); } bool CGPenaltyLSAcceptor::RestoreBestPoint() { DBG_START_METH("CGPenaltyLSAcceptor::RestoreBestPoint", dbg_verbosity); if (!IsValid(best_iterate_)) { return false; } SmartPtr prev_iterate = best_iterate_->MakeNewContainer(); IpData().set_trial(prev_iterate); return true; } bool CGPenaltyLSAcceptor::MultipliersDiverged() { DBG_START_METH("CGPenaltyLSAcceptor::MultipliersDiverged", dbg_verbosity); bool diverged = false; Number curr_inf = IpCq().curr_primal_infeasibility(NORM_2); Number trial_inf = IpCq().trial_primal_infeasibility(NORM_2); if (curr_inf > mult_diverg_feasibility_tol_ && trial_inf > mult_diverg_feasibility_tol_ && IpCq().curr_dual_infeasibility(NORM_MAX) > 1e4) { Number y_ref_big_step = mult_diverg_y_tol_; Number y_ref_tiny_step = 1e4; Number alpha_ref = 1e-4; /* if (IpCq().trial_grad_f()->Amax() < IpData().tol()){ y_ref_big_step *= 1e4; y_ref_tiny_step *= 1e4; } */ Number y_Amax = CGPenCq().curr_scaled_y_Amax(); if ((y_Amax > y_ref_big_step && (IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim() + IpData().curr()->y_d()->Dim() == 0 || CGPenData().PrimalStepSize() < 1e-2)) || (CGPenData().PrimalStepSize() < alpha_ref && y_Amax > y_ref_tiny_step)) { diverged = true; } } return diverged; } char CGPenaltyLSAcceptor::UpdatePenaltyParameter() { DBG_START_METH("CGPenaltyLSAcceptor::UpdatePenaltyParameter", dbg_verbosity); char info_alpha_primal_char = 'n'; // We use the new infeasibility here... Number trial_inf = IpCq().trial_primal_infeasibility(NORM_2); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "trial infeasibility = %8.2\n", trial_inf); if (curr_eta_<0.) { // We need to initialize the eta tolerance curr_eta_ = Max(eta_min_, Min(gamma_tilde_, gamma_hat_*IpCq().curr_nlp_error())); } // Check if the penalty parameter is to be increased Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Starting tests for penalty parameter update:\n"); bool increase = (trial_inf >= penalty_update_infeasibility_tol_); if (!increase) { info_alpha_primal_char='i'; } if (increase) { Number max_step = Max(CGPenData().delta_cgpen()->x()->Amax(), CGPenData().delta_cgpen()->s()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Max norm of step = %8.2\n", max_step); increase = (max_step <= curr_eta_); if (!increase) { info_alpha_primal_char='d'; } } // Lifeng: Should we use the new complementarity here? If so, I // have to restructure BacktrackingLineSearch Number mu = IpData().curr_mu(); if (increase) { Number min_compl = mu; Number max_compl = mu; if (IpNLP().x_L()->Dim()>0) { SmartPtr compl_x_L = IpCq().curr_compl_x_L(); min_compl = Min(min_compl, compl_x_L->Min()); max_compl = Max(max_compl, compl_x_L->Max()); } if (IpNLP().x_U()->Dim()>0) { SmartPtr compl_x_U = IpCq().curr_compl_x_U(); min_compl = Min(min_compl, compl_x_U->Min()); max_compl = Max(max_compl, compl_x_U->Max()); } if (IpNLP().d_L()->Dim()>0) { SmartPtr compl_s_L = IpCq().curr_compl_s_L(); min_compl = Min(min_compl, compl_s_L->Min()); max_compl = Max(max_compl, compl_s_L->Max()); } if (IpNLP().d_U()->Dim()>0) { SmartPtr compl_s_U = IpCq().curr_compl_s_U(); min_compl = Min(min_compl, compl_s_U->Min()); max_compl = Max(max_compl, compl_s_U->Max()); } Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Minimal compl = %8.2\n", min_compl); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Maximal compl = %8.2\n", max_compl); increase = (min_compl >= mu*penalty_update_compl_tol_ && max_compl <= mu/penalty_update_compl_tol_); if (!increase) { info_alpha_primal_char='c'; } } // Lifeng: Here I'm using the information from the current step // and the current infeasibility if (increase) { SmartPtr vec = IpData().curr()->y_c()->MakeNewCopy(); vec->AddTwoVectors(1., *CGPenData().delta_cgpen()->y_c(), -1./CGPenCq().curr_cg_pert_fact(), *IpCq().curr_c(), 1.); Number omega_test = vec->Amax(); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "omega_test for c = %8.2\n", omega_test); increase = (omega_test < curr_eta_); if (increase) { SmartPtr vec = IpData().curr()->y_d()->MakeNewCopy(); vec->AddTwoVectors(1., *IpData().delta()->y_d(), -1./CGPenCq().curr_cg_pert_fact(), *IpCq().curr_d_minus_s(), 1.); omega_test = vec->Amax(); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "omega_test for d = %8.2\n", omega_test); increase = (omega_test < curr_eta_); } if (!increase) { info_alpha_primal_char='m'; } } if (increase) { // Ok, now we should increase the penalty parameter counter_first_type_penalty_updates_++; // Update the eta tolerance curr_eta_ = Max(eta_min_, curr_eta_/2.); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Updating eta to = %8.2\n", curr_eta_); Number penalty = CGPenData().curr_kkt_penalty(); Number y_full_step_max; SmartPtr vec = IpData().curr()->y_c()->MakeNew(); vec->AddTwoVectors(1., *IpData().curr()->y_c(), 1., *CGPenData().delta_cgpen()->y_c(), 0.); y_full_step_max = vec->Amax(); vec = IpData().curr()->y_d()->MakeNew(); vec->AddTwoVectors(1., *IpData().curr()->y_d(), 1., *CGPenData().delta_cgpen()->y_d(), 0.); y_full_step_max = Max(y_full_step_max, vec->Amax()); if (IpCq().curr_primal_infeasibility(NORM_2) >= epsilon_c_) { penalty = Max(chi_hat_*penalty, y_full_step_max + 1.); info_alpha_primal_char = 'l'; } else { penalty = Max(chi_tilde_*penalty, chi_cup_*y_full_step_max); info_alpha_primal_char = 's'; } if (penalty > penalty_max_) { THROW_EXCEPTION(IpoptException, "Penalty parameter becomes too large."); } CGPenData().Set_kkt_penalty(penalty); if (CGPenData().NeverTryPureNewton()) { CGPenData().Set_penalty(penalty); } } // Second heuristic update for penalty parameters if (IpData().curr()->y_c()->Dim() + IpData().curr()->y_d()->Dim() > 0 && !never_use_piecewise_penalty_ls_) { Number scaled_y_Amax = CGPenCq().curr_scaled_y_Amax(); if (scaled_y_Amax <= 1e4 || counter_second_type_penalty_updates_ < 5) { Number result; SmartPtr ty_c = IpData().curr()->y_c(); SmartPtr ty_d = IpData().curr()->y_d(); SmartPtr dy_c = IpData().delta()->y_c(); SmartPtr dy_d = IpData().delta()->y_d(); Number curr_inf = IpCq().curr_primal_infeasibility(NORM_2); result = dy_c->Dot(*IpCq().curr_c()) + dy_d->Dot(*IpCq().curr_d_minus_s()); if (!CGPenData().HaveCgFastDeltas()) { result += ty_c->Dot(*IpCq().curr_c()) + ty_d->Dot(*IpCq().curr_d_minus_s()); } Number k_pen = CGPenData().curr_kkt_penalty(); if (result > 0.5*k_pen*curr_inf || result < -0.5*k_pen*curr_inf) { Number nrm2_y = CGPenCq().curr_added_y_nrm2(); result = 5.*nrm2_y; CGPenData().Set_kkt_penalty(result); if (CGPenData().NeverTryPureNewton()) { CGPenData().Set_penalty(result); } if (scaled_y_Amax > 1e4) { counter_second_type_penalty_updates_++; } } } } return info_alpha_primal_char; } bool CGPenaltyLSAcceptor::DoFallback() { // LIFENG: REPLACE ME! if (RestoreBestPoint()) { Index restor_iter = IpData().iter_count() + 1; CGPenData().SetRestorIter(restor_iter); CGPenData().SetNeverTryPureNewton(true); IpData().Append_info_string("help"); return true; } else { return false; } } void CGPenaltyLSAcceptor::PrepareRestoPhaseStart() { DBG_ASSERT(false && "PrepareRestoPhaseStart not yet implemented"); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/contrib/CGPenalty/IpCGPenaltyCq.cpp0000644000076600007660000004152511504216567021646 0ustar coincoin// Copyright (C) 2007, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpCGPenaltyCq.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-06-04 // derived from IpIpoptCalculatedQuantities.cpp #include "IpCGPenaltyCq.hpp" #include "IpCGPenaltyData.hpp" #include "IpTripletHelper.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif CGPenaltyCq::CGPenaltyCq(IpoptNLP* ip_nlp, IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) : ip_nlp_(ip_nlp), ip_data_(ip_data), ip_cq_(ip_cq), curr_fast_direct_deriv_penalty_function_cache_(1), curr_jac_cd_norm_cache_(1), curr_scaled_y_Amax_cache_(1), curr_added_y_nrm2_cache_(1), curr_penalty_function_cache_(2), trial_penalty_function_cache_(5), curr_direct_deriv_penalty_function_cache_(1), curr_cg_pert_fact_cache_(1), initialize_called_(false) { DBG_START_METH("CGPenaltyCq::CGPenaltyCq", dbg_verbosity); DBG_ASSERT(ip_nlp_); DBG_ASSERT(ip_data_); DBG_ASSERT(ip_cq_); } CGPenaltyCq::~CGPenaltyCq() {} void CGPenaltyCq::RegisterOptions(const SmartPtr& roptions) {} bool CGPenaltyCq::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { initialize_called_ = true; return true; } ////////////////////////////////////////////////////// // Methods for the Chen-Goldfarb penalty function // ////////////////////////////////////////////////////// Number CGPenaltyCq::curr_jac_cd_norm(Index nrm_type) { DBG_START_METH("CGPenaltyCq::curr_jac_cd_norm()", dbg_verbosity); Number result; SmartPtr jac_c = ip_cq_->curr_jac_c(); Index nnz = TripletHelper::GetNumberEntries(*jac_c); Number* values = new Number[nnz]; TripletHelper::FillValues(nnz, *jac_c, values); Index count = 1; result = 0.; for (Index i=1; i jac_d = ip_cq_->curr_jac_d(); nnz = TripletHelper::GetNumberEntries(*jac_d); values = new Number[nnz]; TripletHelper::FillValues(nnz, *jac_d, values); for (Index i=1; i x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); std::vector tdeps(2); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); Number mu = ip_data_->curr_mu(); Number penalty = CGPenData().curr_penalty(); std::vector sdeps(2); sdeps[0] = mu; sdeps[1] = penalty; if (!curr_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!trial_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { result = ip_cq_->curr_barrier_obj(); result += penalty*ip_cq_->curr_primal_infeasibility(NORM_2); } curr_penalty_function_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_ASSERT(IsFiniteNumber(result)); return result; } Number CGPenaltyCq::trial_penalty_function() { DBG_START_METH("CGPenaltyCq::trial_penalty_function()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); std::vector tdeps(2); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); Number mu = ip_data_->curr_mu(); Number penalty = CGPenData().curr_penalty(); std::vector sdeps(2); sdeps[0] = mu; sdeps[1] = penalty; if (!trial_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!curr_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { result = ip_cq_->trial_barrier_obj(); result += penalty*ip_cq_->trial_primal_infeasibility(NORM_2); } trial_penalty_function_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_ASSERT(IsFiniteNumber(result)); return result; } Number CGPenaltyCq::curr_direct_deriv_penalty_function() { DBG_START_METH("CGPenaltyCq::curr_direct_deriv_penalty_function()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr dy_c = CGPenData().delta_cgpen()->y_c(); SmartPtr dy_d = CGPenData().delta_cgpen()->y_d(); SmartPtr dx = CGPenData().delta_cgpen()->x(); SmartPtr ds = CGPenData().delta_cgpen()->s(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(dy_c); tdeps[5] = GetRawPtr(dy_d); tdeps[6] = GetRawPtr(dx); tdeps[7] = GetRawPtr(ds); Number mu = ip_data_->curr_mu(); Number penalty = CGPenData().curr_penalty(); std::vector sdeps(2); sdeps[0] = mu; sdeps[1] = penalty; if (!curr_direct_deriv_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { result = ip_cq_->curr_grad_barrier_obj_x()->Dot(*dx) + ip_cq_->curr_grad_barrier_obj_s()->Dot(*ds); Number curr_inf = ip_cq_->curr_primal_infeasibility(NORM_2); result -= penalty*curr_inf; if (curr_inf != 0.) { Number fac = penalty*CGPenData().CurrPenaltyPert()/curr_inf; SmartPtr c = ip_cq_->curr_c(); SmartPtr d_minus_s = ip_cq_->curr_d_minus_s(); Number result1 = c->Dot(*y_c); result1 += c->Dot(*dy_c); result1 += d_minus_s->Dot(*y_d); result1 += d_minus_s->Dot(*dy_d); result1 *= fac; result += result1; } curr_direct_deriv_penalty_function_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number CGPenaltyCq::curr_fast_direct_deriv_penalty_function() { DBG_START_METH("CGPenaltyCq::curr_fast_direct_deriv_penalty_function()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); DBG_ASSERT(CGPenData().HaveCgPenDeltas()); SmartPtr dy_c = CGPenData().delta_cgfast()->y_c(); SmartPtr dy_d = CGPenData().delta_cgfast()->y_d(); SmartPtr dx = CGPenData().delta_cgfast()->x(); SmartPtr ds = CGPenData().delta_cgfast()->s(); std::vector tdeps(6); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(dy_c); tdeps[3] = GetRawPtr(dy_d); tdeps[4] = GetRawPtr(dx); tdeps[5] = GetRawPtr(ds); Number mu = ip_data_->curr_mu(); Number penalty = CGPenData().curr_penalty(); std::vector sdeps(2); sdeps[0] = mu; sdeps[1] = penalty; if (!curr_fast_direct_deriv_penalty_function_cache_.GetCachedResult(result, tdeps, sdeps)) { result = ip_cq_->curr_grad_barrier_obj_x()->Dot(*dx) + ip_cq_->curr_grad_barrier_obj_s()->Dot(*ds); Number curr_inf = ip_cq_->curr_primal_infeasibility(NORM_2); result -= penalty*curr_inf; if (curr_inf != 0.) { Number fac = penalty*CGPenData().CurrPenaltyPert()/curr_inf; SmartPtr c = ip_cq_->curr_c(); SmartPtr d_minus_s = ip_cq_->curr_d_minus_s(); Number result1 = c->Dot(*dy_c); result1 += d_minus_s->Dot(*dy_d); result1 *= fac; result += result1; } curr_fast_direct_deriv_penalty_function_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number CGPenaltyCq::curr_cg_pert_fact() { DBG_START_METH("IpoptCalculatedQuantities::curr_cg_pert_fact()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); std::vector tdeps(2); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); Number penalty = CGPenData().curr_kkt_penalty(); std::vector sdeps(1); sdeps[0] = penalty; DBG_ASSERT(penalty>0.); if (!curr_cg_pert_fact_cache_.GetCachedResult(result, tdeps, sdeps)) { Number eq_2nrm = ip_cq_->curr_primal_infeasibility(NORM_2); result = eq_2nrm/penalty; curr_cg_pert_fact_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number CGPenaltyCq::dT_times_barH_times_d() { DBG_START_METH("IpoptCalculatedQuantities::dT_times_barH_times_d()", dbg_verbosity); Number result; SmartPtr d_x = CGPenData().delta_cgfast()->x(); SmartPtr d_s = CGPenData().delta_cgfast()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr dy_c = CGPenData().delta_cgfast()->y_c(); SmartPtr dy_d = CGPenData().delta_cgfast()->y_d(); SmartPtr c = ip_cq_->curr_c(); SmartPtr d_minus_s = ip_cq_->curr_d_minus_s(); Number deriv_barrier_dx = ip_cq_->curr_grad_barrier_obj_x()->Dot(*d_x); Number deriv_barrier_dx_ds = deriv_barrier_dx + ip_cq_->curr_grad_barrier_obj_s()->Dot(*d_s); Number penalty = CGPenData().curr_penalty(); result = -y_c->Dot(*dy_c); result -= y_d->Dot(*dy_d); result *= curr_cg_pert_fact(); result -= deriv_barrier_dx_ds; result += c->Dot(*y_c); result += d_minus_s->Dot(*y_d); result -= c->Dot(*dy_c); result -= d_minus_s->Dot(*dy_d); result += penalty*ip_cq_->curr_primal_infeasibility(NORM_2); return result; } Number CGPenaltyCq::compute_curr_cg_penalty(const Number pen_des_fact ) { DBG_START_METH("CGPenaltyCq::compute_curr_cg_penalty()", dbg_verbosity); SmartPtr d_x = ip_data_->delta()->x(); SmartPtr d_s = ip_data_->delta()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr dy_c = ip_data_->delta()->y_c(); SmartPtr dy_d = ip_data_->delta()->y_d(); // Compute delta barrier times (delta x, delta s) Number deriv_barrier_dx = ip_cq_->curr_grad_barrier_obj_x()->Dot(*d_x); Number deriv_barrier_dx_ds = deriv_barrier_dx + ip_cq_->curr_grad_barrier_obj_s()->Dot(*d_s); // Compute delta x times the damped Hessian times delta x SmartPtr tem_jac_cT_times_y_c = ip_cq_->curr_jac_cT_times_vec(*y_c); SmartPtr tem_jac_cT_times_dy_c = ip_cq_->curr_jac_cT_times_vec(*dy_c); SmartPtr tem_jac_cT_times_y_c_plus_dy_c = tem_jac_cT_times_y_c->MakeNew(); tem_jac_cT_times_y_c_plus_dy_c->AddTwoVectors(1.,*tem_jac_cT_times_y_c, 1., *tem_jac_cT_times_dy_c, 0.); SmartPtr tem_jac_dT_times_y_d = ip_cq_->curr_jac_dT_times_vec(*y_d); SmartPtr tem_jac_dT_times_dy_d = ip_cq_->curr_jac_cT_times_vec(*dy_c); SmartPtr tem_jac_dT_times_y_d_plus_dy_d = tem_jac_cT_times_y_c->MakeNew(); tem_jac_dT_times_y_d_plus_dy_d->AddTwoVectors(1.,*tem_jac_dT_times_y_d, 1., *tem_jac_dT_times_dy_d, 0.); Number d_xs_times_damped_Hessian_times_d_xs = -deriv_barrier_dx_ds; d_xs_times_damped_Hessian_times_d_xs += -(tem_jac_cT_times_y_c_plus_dy_c->Dot(*d_x) +tem_jac_dT_times_y_d_plus_dy_d->Dot(*d_x) -y_d->Dot(*d_s) -dy_d->Dot(*d_s)); Number dxs_nrm = pow(d_x->Nrm2(), 2.) + pow(d_s->Nrm2(), 2.); d_xs_times_damped_Hessian_times_d_xs = Max(1e-8*dxs_nrm, d_xs_times_damped_Hessian_times_d_xs); Number infeasibility = ip_cq_->curr_primal_infeasibility(NORM_2); Number penalty = 0.; if (infeasibility > 0.) { Number deriv_inf = 0.; Number fac = CGPenData().CurrPenaltyPert()/infeasibility; SmartPtr c = ip_cq_->curr_c(); SmartPtr d_minus_s = ip_cq_->curr_d_minus_s(); if (CGPenData().HaveCgFastDeltas()) { SmartPtr fast_dy_c = CGPenData().delta_cgfast()->y_c(); SmartPtr fast_dy_d = CGPenData().delta_cgfast()->y_d(); deriv_inf += c->Dot(*fast_dy_c); deriv_inf += d_minus_s->Dot(*fast_dy_d); deriv_inf *= fac; deriv_inf -= infeasibility; } else { SmartPtr cgpen_dy_c = CGPenData().delta_cgpen()->y_c(); SmartPtr cgpen_dy_d = CGPenData().delta_cgpen()->y_d(); deriv_inf += c->Dot(*cgpen_dy_c); deriv_inf += c->Dot(*y_c); deriv_inf += d_minus_s->Dot(*cgpen_dy_d); deriv_inf += d_minus_s->Dot(*y_d); deriv_inf *= fac; deriv_inf -= infeasibility; } penalty = -(deriv_barrier_dx_ds + pen_des_fact* d_xs_times_damped_Hessian_times_d_xs)/ (deriv_inf + pen_des_fact*infeasibility); } return penalty; } Number CGPenaltyCq::compute_curr_cg_penalty_scale() { DBG_START_METH("CGPenaltyCq::compute_curr_cg_penalty_scale()", dbg_verbosity); Number penalty; Number infeasibility = ip_cq_->curr_primal_infeasibility(NORM_2); if (!CGPenData().NeverTryPureNewton()) { penalty = Min(1e13, infeasibility*1e9); } else { Number reference = (curr_jac_cd_norm(1) + ip_cq_->curr_primal_infeasibility(NORM_1)/ (ip_data_->curr()->y_c()->Dim()+ ip_data_->curr()->y_d()->Dim()))/2.; if (CGPenData().restor_iter() == ip_data_->iter_count() || ip_data_->iter_count() == 0) { reference_infeasibility_ = Min(1., infeasibility); } Number i = CGPenData().restor_counter(); Number fac = 4*1e-2*pow(1e1, i); //Number fac = 1e-2; penalty = Min(1e4,infeasibility) / (reference*fac* pow(reference_infeasibility_, 1)); } return penalty; } Number CGPenaltyCq::curr_scaled_y_Amax() { DBG_START_METH("CGPenaltyCq::curr_scaled_y_Amax()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); std::vector deps(3); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(y_c); deps[2] = GetRawPtr(y_d); if (!curr_scaled_y_Amax_cache_.GetCachedResult(result, deps)) { result = Max(y_c->Amax(), y_d->Amax()); result /= Max(1., ip_cq_->curr_grad_f()->Amax()); curr_scaled_y_Amax_cache_.AddCachedResult(result, deps); } return result; } Number CGPenaltyCq::curr_added_y_nrm2() { DBG_START_METH("CGPenaltyCq::curr_added_y_nrm2()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); std::vector deps(3); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(y_c); deps[2] = GetRawPtr(y_d); if (!curr_added_y_nrm2_cache_.GetCachedResult(result, deps)) { SmartPtr y_c_plus_dy_c = ip_data_->delta()->y_c()->MakeNew(); SmartPtr y_d_plus_dy_d = ip_data_->delta()->y_d()->MakeNew(); y_c_plus_dy_c->AddTwoVectors(1.,*ip_data_->delta()->y_c(), 1.,*ip_data_->curr()->y_c(), 0.); y_d_plus_dy_d->AddTwoVectors(1.,*ip_data_->delta()->y_d(), 1.,*ip_data_->curr()->y_d(), 0.); result = sqrt(pow(y_c_plus_dy_c->Nrm2(),2) + pow(y_d_plus_dy_d->Nrm2(),2) ); curr_added_y_nrm2_cache_.AddCachedResult(result, deps); } return result; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Apps/0000755000076600007660000000000012214537465014147 5ustar coincoinIpopt-3.11.4/Ipopt/src/Apps/Makefile.am0000644000076600007660000000057012130253367016176 0ustar coincoin# Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2194 2013-04-07 11:22:31Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign SUBDIRS = CUTErInterface if COIN_HAS_ASL SUBDIRS += AmplSolver endif Ipopt-3.11.4/Ipopt/src/Apps/CUTErInterface/0000755000076600007660000000000012214537465016712 5ustar coincoinIpopt-3.11.4/Ipopt/src/Apps/CUTErInterface/CUTErInterface.f0000644000076600007660000006527711504216567021643 0ustar coincoinC Copyright (C) 2002, 2004, 2005 Carnegie Mellon University, C Dominique Orban and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* PROGRAM IPOPTMA C C IPOPT CUTEr driver. C D. Orban, adapted from Andreas Waechter's CUTE driver. C Adapted for C++ version by Andreas Waechter, Oct 2004 C IMPLICIT NONE INTEGER IOUT PARAMETER( IOUT = 6 ) C C Maximal sizes for CUTEr C CB CUTE_NMAX maximal number of variables CB CUTE_MMAX maximal number of constraints CB CUTE_NZMAX maximal number of nonzero elements INTEGER CUTE_NMAX, CUTE_MMAX, CUTE_NZMAX CTOY PARAMETER( CUTE_NMAX = 1000, CUTE_MMAX = 1000 ) CMED PARAMETER( CUTE_NMAX = 10000, CUTE_MMAX = 10000 ) CBIG PARAMETER( CUTE_NMAX = 50000, CUTE_MMAX = 50000 ) CCUS PARAMETER( CUTE_NMAX = 200000, CUTE_MMAX = 200000 ) CTOY PARAMETER( CUTE_NZMAX = 100000 ) CMED PARAMETER( CUTE_NZMAX = 200000 ) CBIG PARAMETER( CUTE_NZMAX = 1000000 ) CCUS PARAMETER( CUTE_NZMAX = 10000000 ) C C C INTEGER N, M DOUBLE PRECISION X( CUTE_NMAX ) DOUBLE PRECISION X_L( CUTE_NMAX ) DOUBLE PRECISION X_U( CUTE_NMAX ) DOUBLE PRECISION Z_L( CUTE_NMAX ) DOUBLE PRECISION Z_U( CUTE_NMAX ) DOUBLE PRECISION G( CUTE_MMAX ) DOUBLE PRECISION G_L( CUTE_MMAX ) DOUBLE PRECISION G_U( CUTE_MMAX ) DOUBLE PRECISION LAM( CUTE_MMAX ) INTEGER IERR, IPSOLVE C32BIT INTEGER IPROBLEM, IPCREATE C64BIT INTEGER*8 IPROBLEM, IPCREATE C integer IDX_STYLE, NELE_JAC, NELE_HESS external EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS C C The following arrays are work space for the evaluation subroutines C DOUBLE PRECISION DAT(CUTE_NMAX+CUTE_NZMAX) INTEGER IDAT(2*CUTE_NZMAX) REAL CALLS( 7 ), CPU( 2 ) CHARACTER*10 PNAME CHARACTER*10 VNAMES( CUTE_NMAX ), GNAMES( CUTE_MMAX ) DOUBLE PRECISION F C logical equatn(CUTE_MMAX), linear(CUTE_MMAX) integer i, cnr_input logical efirst, lfirst, nvfrst, ex double precision init_val C C Initialize the CUTEr interface and get the initial point C cnr_input = 60 efirst = .false. lfirst = .false. nvfrst = .false. open(cnr_input,file='OUTSDIF.d',status='old') call CSETUP(cnr_input, IOUT, N, M, X, X_L, X_U, CUTE_NMAX, 1 equatn, linear, LAM, G_L, G_U, CUTE_MMAX, 2 efirst, lfirst, nvfrst) close(cnr_input) C C See if we want to set a different initial point C inquire(file='INITPOINT.VAL', exist=ex) if (ex) then open(70, file='INITPOINT.VAL', status='old') read(70,'(d25.16)') init_val do i = 1, N X(i) = init_val enddo close(70) endif C C Obtain the number of nonzeros in Jacobian and Hessian C CALL CDIMSJ(NELE_JAC) NELE_JAC = NELE_JAC - N if (NELE_JAC.gt.CUTE_NZMAX) then write(*,*) 'NELE_JAC = ',NELE_JAC,' larger than CUTE_NZMAX = ', 1 CUTE_NZMAX write(*,*) 'Increase CUTE_NZMAX' stop endif CALL CDIMSH(NELE_HESS) if (NELE_HESS.gt.CUTE_NZMAX) then write(*,*) 'NELE_HESS = ',NELE_HESS, 1 ' larger than CUTE_NZMAX = ', CUTE_NZMAX write(*,*) 'Increase CUTE_NZMAX' stop endif C C Get problem name. C CALL CNAMES(N, M, PNAME, VNAMES, GNAMES) C C Call IPOPT C IDX_STYLE = 1 IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS, 1 IDX_STYLE, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS) if (IPROBLEM.eq.0) then write(*,*) 'Error creating Ipopt Problem.' stop endif C IERR = IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT) C call IPFREE(IPROBLEM) C C Display CUTEr statistics C CALL CREPRT( CALLS, CPU ) WRITE ( IOUT, 2000 ) PNAME, N, M, CALLS(1), CALLS(2), . CALLS(3), CALLS(4), CALLS(5), CALLS(6), CALLS(7), . IERR, F, CPU(1), CPU(2) c 2000 FORMAT( /, 24('*'), ' CUTEr statistics ', 24('*') // * ,/,' Code used : IPOPT', / * ,' Problem : ', A10, / * ,' # variables = ', I10 / * ,' # constraints = ', I10 / * ,' # objective functions = ', E15.7 / * ,' # objective gradients = ', E15.7 / * ,' # objective Hessians = ', E15.7 / * ,' # Hessian-vector prdct = ', E15.7 / * ,' # constraints functions = ', E15.7 / * ,' # constraints gradients = ', E15.7 / * ,' # constraints Hessians = ', E15.7 / * ,' Exit code = ', I10 / * ,' Final f = ', E15.7 / * ,' Set up time = ', 0P, F10.2, ' seconds' / * ,' Solve time = ', 0P, F10.2, ' seconds' // * ,/,66('*') / ) 9999 CONTINUE END C Copyright (C) 2002, Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* C subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR) C C******************************************************************************* C C $Id: CUTErInterface.f 1861 2010-12-21 21:34:47Z andreasw $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Compute objective function value to CUTEr problem C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 02/25/99 CA Andreas Waechter 10/29/04 adapted for C++ version C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP N I INT number of variables in problem statement CP X I DP point where F is to be evaluated CP NEW_X I INT if 1, X has not been changed since last call CP F O DP objective function value CP IDAT P INT privat INT data for evaluation routines CP DAT P DP privat DP data for evaluation routines CP IERR O INT set to nonzero value if error occurred C C------------------------------------------------------------------------------- C local variables C------------------------------------------------------------------------------- C CL C C------------------------------------------------------------------------------- C used subroutines C------------------------------------------------------------------------------- C CS COFG C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer N double precision X(N) integer NEW_X double precision F double precision DAT(*) integer IDAT(*) integer IERR C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C double precision dummy C C******************************************************************************* C C Executable Statements C C******************************************************************************* C IERR = 0 C C Call COFG to obtain value of objective function C call COFG( N, X, F, dummy, .false.) 9999 continue return end C Copyright (C) 2002, Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* C subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR) C C******************************************************************************* C C $Id: CUTErInterface.f 1861 2010-12-21 21:34:47Z andreasw $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Compute gradient of objective function to CUTEr problem C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 02/25/99 CA Andreas Waechter 10/29/04 adapted for C++ version C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP N I INT number of variables in problem statement CP (including slacks for inequality constraints) CP X I DP point where G is to be evaluated CP NEW_X I INT if 1, X has not been changed since last call CP GRAD O DP gradient of objective function CP IDAT P INT privat INT data for evaluation routines CP DAT P DP privat DP data for evaluation routines CP IERR O INT set to nonzero value if error occurred C C------------------------------------------------------------------------------- C local variables C------------------------------------------------------------------------------- C CL C C------------------------------------------------------------------------------- C used subroutines C------------------------------------------------------------------------------- C CS COFG C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer N double precision X(N) integer NEW_X double precision GRAD(N) double precision DAT(*) integer IDAT(*) integer IERR C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C double precision f C C******************************************************************************* C C Executable Statements C C******************************************************************************* C IERR = 0 C C Call COFG to obtain gradient of objective function C call COFG( N, X, f, GRAD, .true.) 9999 continue return end C Copyright (C) 2002, Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* C subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR) C C******************************************************************************* C C $Id: CUTErInterface.f 1861 2010-12-21 21:34:47Z andreasw $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Compute values of constraints to CUTEr problem C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 02/25/99 CA Andreas Waechter 07/01/99 BUG: problems if ineq not first CA Andreas Waechter 10/29/04 adapted for C++ version C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP N I INT number of variables in problem statement CP (including slacks for inequality constraints) CP X I DP point where G is to be evaluated CP NEW_X I INT if 1, X has not been changed since last call CP M I INT number of constraints CP G O DP values of constraints CP IDAT P INT privat INT data for evaluation routines CP DAT P DP privat DP data for evaluation routines CP IERR O INT set to nonzero value if error occurred C C------------------------------------------------------------------------------- C local variables C------------------------------------------------------------------------------- C CL C C------------------------------------------------------------------------------- C used subroutines C------------------------------------------------------------------------------- C CS CCFG C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer N double precision X(N) integer NEW_X integer M double precision G(M) double precision DAT(*) integer IDAT(*) integer IERR C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C double precision dummy C C******************************************************************************* C C Executable Statements C C******************************************************************************* C IERR = 0 C C Call CCFG to obtain constraint values, but without slacks C call CCFG(N, M, X, M, G, .FALSE., 1, 1, dummy, .FALSE.) 9999 continue return end C Copyright (C) 2002, Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* C subroutine EV_JAC_G(TASK, N, X, NEW_X, M, NZ, ACON, AVAR, A, 1 IDAT, DAT, IERR) C C******************************************************************************* C C $Id: CUTErInterface.f 1861 2010-12-21 21:34:47Z andreasw $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Compute Jacobian of constraints to CUTEr problem C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 02/25/99 CA Andreas Waechter 10/29/04 adapted for C++ version C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP TASK I INT =0: Fill ACON and AVAR, don't use A CP <>0: Fill A, don't use ACON, AVAR CP N I INT number of variables in problem statement CP X I DP point where A is to be evaluated CP NEW_X I INT if 1, X has not been changed since last call CP M I INT number of constraints CP NZ I INT number of nonzero elements CP (size of A, AVAR, ACON) CP ACON O INT (only TASK=0) row indices CP AVAR O INT (only TASK=0) column indices CP A O DP (only TASK<>0) values in Jacobian CP IDAT P INT privat INT data for evaluation routines CP DAT P DP privat DP data for evaluation routines CP IERR O INT set to nonzero value if error occurred C C------------------------------------------------------------------------------- C local variables C------------------------------------------------------------------------------- C CL C C------------------------------------------------------------------------------- C used subroutines C------------------------------------------------------------------------------- C CS CDIMSJ CS CCFSG C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer TASK integer N double precision X(N) integer NEW_X integer M integer NZ double precision A(NZ) integer ACON(NZ) integer AVAR(NZ) double precision DAT(*) integer IDAT(*) integer IERR C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C integer i, nele_jac C C******************************************************************************* C C Executable Statements C C******************************************************************************* C IERR = 0 if( TASK.eq.0 ) then C C Get the nonzero structure C do i = 1, N DAT(i) = 0.d0 enddo call CCFSG(N, M, DAT(1), M, DAT(1), nele_jac, 1 NZ, DAT(N+1), AVAR, ACON, .TRUE.) else C C Get the values of nonzeros C call CCFSG(N, M, X, M, DAT(1), nele_jac, 1 NZ, A, IDAT(1), IDAT(1+NZ), .TRUE.) endif 9999 continue return end C Copyright (C) 2002, Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C******************************************************************************* C subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM, 1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR) C C******************************************************************************* C C $Id: CUTErInterface.f 1861 2010-12-21 21:34:47Z andreasw $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Compute Hessian of Lagrangian for CUTEr problem C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 03/23/00 CA Andreas Waechter 10/29/04 adapted for C++ version C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP TASK I INT =0: Fill IRNH and ICNH, don't use HESS CP <>0: Fill HESS, don't use IRNH, ICNH CP N I INT number of variables in problem statement CP X I DP point where A is to be evaluated CP NEW_X I INT if 1, X has not been changed since last call CP OBJFACT I DP weighting factor for objective function Hessian CP M I INT number of constriants CP LAM I DP weighting factors for the constraints CP NEW_LAM I INT if 1, LAM has not been changed since last call CP NNZH I INT number of nonzero elements CP (size of HESS, IRNH, ICNH) CP IRNH O INT (only TASK=0) row indices CP ICNH O INT (only TASK=0) column indices CP HESS O DP (only TASK<>0) values in Hessian CP IDAT P INT privat INT data for evaluation routines CP DAT P DP privat DP data for evaluation routines CP IERR O INT set to nonzero value if error occurred C C------------------------------------------------------------------------------- C local variables C------------------------------------------------------------------------------- C CL C C------------------------------------------------------------------------------- C used subroutines C------------------------------------------------------------------------------- C CS CSH C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer TASK integer N double precision X(N) integer NEW_X double precision OBJFACT integer M double precision LAM(M) integer NEW_LAM integer NNZH integer IRNH(NNZH) integer ICNH(NNZH) double precision HESS(NNZH) double precision DAT(*) integer IDAT(*) integer IERR C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C integer i, nnzh2 C C******************************************************************************* C C Executable Statements C C******************************************************************************* C IERR = 0 if( TASK.eq.0 ) then C C Get the nonzero structure C do i = 1, N DAT(i) = 0.d0 enddo call CSH(N, M, DAT(1), M, DAT(1), nnzh2, NNZH, DAT(N+1), 1 IRNH, ICNH) else C C Call CSH to get the values C if( OBJFACT.ne.0.d0 ) then if( OBJFACT.ne.1.d0 ) then do i = 1, M DAT(i) = LAM(i)/OBJFACT enddo call CSH(N, M, X, M, DAT(1), nnzh2, NNZH, HESS, 1 IDAT(1), IDAT(1+NNZH)) do i = 1, NNZH HESS(i) = HESS(i)*OBJFACT enddo else call CSH(N, M, X, M, LAM, nnzh2, NNZH, HESS, 1 IDAT(1), IDAT(1+NNZH)) endif else C now we have to call CSH twice, since we can't otherwise get rid of C the objective function entries do i = 1, M DAT(i) = 0.d0 enddo call CSH(N, M, X, M, DAT(1), nnzh2, NNZH, DAT(1+M), 1 IDAT(1), IDAT(1+NNZH)) call CSH(N, M, X, M, LAM, nnzh2, NNZH, HESS, 1 IDAT(1), IDAT(1+NNZH)) do i = 1, NNZH HESS(i) = HESS(i) - DAT(M+i) enddo endif endif 9999 continue return end Ipopt-3.11.4/Ipopt/src/Apps/CUTErInterface/Makefile.am0000644000076600007660000000402411573147064020745 0ustar coincoin# Copyright (C) 2003, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2005 2011-06-06 12:55:16Z stefan $ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = \ CUTErInterface.f \ ipoma-dummy.f noinst_LTLIBRARIES = libdummy.la nodist_libdummy_la_SOURCES = ipoma.f # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common ipoma.f: CUTErInterface.f if test -z "$$MYCUTER" -o -z "$$CUTER"; then \ rm -f ipoma.f; \ cp $(srcdir)/ipoma-dummy.f ipoma.f; \ else \ sed "/#{sizing}/r $$MYCUTER/double/config/tools.siz" $< | sed -f $$MYCUTER/double/config/cast.sed | sed "s/C$(BITS_PER_POINTER)BIT//" > ipoma.f; \ fi ipo: if test -r $$CUTER/build/prototypes/gen.pro ; then \ sed -e 's/gen/ipo/g' $$CUTER/build/prototypes/gen.pro \ -e 's/"ipo.o"/""/' \ -e 's!SYSLIBS ""!SYSLIBS "\`cat $${MYCUTER}/double/lib/ipo.liblist\`"!'\ -e "s!set arguments = ''!set arguments = \"--blas -lm --lapack -lm\"!" > ipo.pro; \ sed -f $$MYCUTER/double/config/script.sed ipo.pro > $@; \ chmod a+x $@; \ else \ touch ipo; \ fi sdipo: if test -r $$CUTER/build/prototypes/gen.pro ; then \ sed -e 's/gen/ipo/g' $$CUTER/build/prototypes/sdgen.pro > sdipo.pro; \ sed -f $$MYCUTER/double/config/script.sed sdipo.pro > $@ ; \ chmod a+x $@; \ else \ touch sdipo; \ fi CLEANFILES = ipoma.f ipo sdipo ipo.pro sdipo.pro cuter: ipoma.$(OBJEXT) ipo sdipo if test -z "$$MYCUTER" -o -z "$$CUTER"; then \ echo CUTEr environment variables not set - cannot install ipoma.f; \ else \ echo "-L$(libdir) -lipopt $(IPOPTLIB_LIBS_INSTALLED) $(CXXLIBS) $(RPATH_FLAGS)" >$$MYCUTER/double/lib/ipo.liblist ;\ if test -r $$CUTER/build/prototypes/gen.pro ; then \ cp ipoma.o $(MYCUTER)/double/bin/ipoma.$(OBJEXT); \ cp ipo $(MYCUTER)/bin/ipo ;\ cp sdipo $(MYCUTER)/bin/sdipo ;\ else \ cp ipoma.o $(MYCUTER)/double/bin/ipoptma.$(OBJEXT); \ fi; \ fi Ipopt-3.11.4/Ipopt/src/Apps/CUTErInterface/Makefile.in0000644000076600007660000004552612156624616020773 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2003, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/Apps/CUTErInterface DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libdummy_la_LIBADD = nodist_libdummy_la_OBJECTS = ipoma.lo libdummy_la_OBJECTS = $(nodist_libdummy_la_OBJECTS) F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(nodist_libdummy_la_SOURCES) DIST_SOURCES = ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = \ CUTErInterface.f \ ipoma-dummy.f noinst_LTLIBRARIES = libdummy.la nodist_libdummy_la_SOURCES = ipoma.f # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common CLEANFILES = ipoma.f ipo sdipo ipo.pro sdipo.pro all: all-am .SUFFIXES: .SUFFIXES: .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Apps/CUTErInterface/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Apps/CUTErInterface/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libdummy.la: $(libdummy_la_OBJECTS) $(libdummy_la_DEPENDENCIES) $(F77LINK) $(libdummy_la_LDFLAGS) $(libdummy_la_OBJECTS) $(libdummy_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am ipoma.f: CUTErInterface.f if test -z "$$MYCUTER" -o -z "$$CUTER"; then \ rm -f ipoma.f; \ cp $(srcdir)/ipoma-dummy.f ipoma.f; \ else \ sed "/#{sizing}/r $$MYCUTER/double/config/tools.siz" $< | sed -f $$MYCUTER/double/config/cast.sed | sed "s/C$(BITS_PER_POINTER)BIT//" > ipoma.f; \ fi ipo: if test -r $$CUTER/build/prototypes/gen.pro ; then \ sed -e 's/gen/ipo/g' $$CUTER/build/prototypes/gen.pro \ -e 's/"ipo.o"/""/' \ -e 's!SYSLIBS ""!SYSLIBS "\`cat $${MYCUTER}/double/lib/ipo.liblist\`"!'\ -e "s!set arguments = ''!set arguments = \"--blas -lm --lapack -lm\"!" > ipo.pro; \ sed -f $$MYCUTER/double/config/script.sed ipo.pro > $@; \ chmod a+x $@; \ else \ touch ipo; \ fi sdipo: if test -r $$CUTER/build/prototypes/gen.pro ; then \ sed -e 's/gen/ipo/g' $$CUTER/build/prototypes/sdgen.pro > sdipo.pro; \ sed -f $$MYCUTER/double/config/script.sed sdipo.pro > $@ ; \ chmod a+x $@; \ else \ touch sdipo; \ fi cuter: ipoma.$(OBJEXT) ipo sdipo if test -z "$$MYCUTER" -o -z "$$CUTER"; then \ echo CUTEr environment variables not set - cannot install ipoma.f; \ else \ echo "-L$(libdir) -lipopt $(IPOPTLIB_LIBS_INSTALLED) $(CXXLIBS) $(RPATH_FLAGS)" >$$MYCUTER/double/lib/ipo.liblist ;\ if test -r $$CUTER/build/prototypes/gen.pro ; then \ cp ipoma.o $(MYCUTER)/double/bin/ipoma.$(OBJEXT); \ cp ipo $(MYCUTER)/bin/ipo ;\ cp sdipo $(MYCUTER)/bin/sdipo ;\ else \ cp ipoma.o $(MYCUTER)/double/bin/ipoptma.$(OBJEXT); \ fi; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Apps/CUTErInterface/ipoma-dummy.f0000644000076600007660000000006310331775060021307 0ustar coincoin subroutine dummy() integer i end Ipopt-3.11.4/Ipopt/src/Apps/Makefile.in0000644000076600007660000004716512156624616016231 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @COIN_HAS_ASL_TRUE@am__append_1 = AmplSolver subdir = src/Apps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = CUTErInterface AmplSolver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign SUBDIRS = CUTErInterface $(am__append_1) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Apps/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Apps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/0000755000076600007660000000000012214537465016233 5ustar coincoinIpopt-3.11.4/Ipopt/src/Apps/AmplSolver/ipoptamplinterface.pc.in0000644000076600007660000000054211507663653023056 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin Name: IPOPT Description: Ampl Interface TNLP to Ipopt URL: https://projects.coin-or.org/Ipopt Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lipoptamplinterface @IPOPTAMPLINTERFACELIB_PCLIBS@ Cflags: -I${includedir} Requires: ipopt @IPOPTAMPLINTERFACELIB_PCREQUIRES@ Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/AmplTNLP.hpp0000644000076600007660000004412412136030746020331 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: AmplTNLP.hpp 2242 2013-04-24 19:26:30Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPAMPLTNLP_HPP__ #define __IPAMPLTNLP_HPP__ #include "IpUtils.hpp" #include "IpTNLP.hpp" #include "IpJournalist.hpp" #include "IpOptionsList.hpp" #include #include /* non Ipopt forward declaration */ struct ASL_pfgh; struct SufDecl; struct SufDesc; namespace Ipopt { class AmplSuffixHandler : public ReferencedObject { public: AmplSuffixHandler(); ~AmplSuffixHandler(); enum Suffix_Type { Index_Type, Number_Type }; enum Suffix_Source { Variable_Source, Constraint_Source, Objective_Source, Problem_Source }; void AddAvailableSuffix(std::string suffix_string, Suffix_Source source, Suffix_Type type) { suffix_ids_.push_back(suffix_string); suffix_types_.push_back(type); suffix_sources_.push_back(source); // suffix_values_.push_back(); } const Index* GetIntegerSuffixValues(std::string suffix_string, Suffix_Source source) const; const Number* GetNumberSuffixValues(std::string suffix_string, Suffix_Source source) const; std::vector GetIntegerSuffixValues(Index n, std::string suffix_string, Suffix_Source source) const; std::vector GetNumberSuffixValues(Index n, std::string suffix_string, Suffix_Source source) const; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //AmplSuffixHandler(); /** Copy Constructor */ AmplSuffixHandler(const AmplSuffixHandler&); /** Overloaded Equals Operator */ void operator=(const AmplSuffixHandler&); //@} mutable ASL_pfgh* asl_; SufDecl* suftab_; std::vector suffix_ids_; std::vector suffix_types_; std::vector suffix_sources_; /** Method called by AmplTNLP to prepare the asl for the suffixes */ void PrepareAmplForSuffixes(ASL_pfgh* asl); /** Method called by AmplTNLP to retrieve the suffixes from asl */ // void RetrieveSuffixesFromAmpl(ASL_pfgh* asl); friend class AmplTNLP; }; /** Class for storing a number of AMPL options that should be * registered to the AMPL Solver library interface */ class AmplOptionsList : public ReferencedObject { public: enum AmplOptionType { String_Option, Number_Option, Integer_Option, WS_Option, /* this is for AMPL's internal wantsol callback */ HaltOnError_Option /* this is for our setting of the nerror_ member */ }; /** Ampl Option class, contains name, type and description for an * AMPL option */ class AmplOption : public ReferencedObject { public: AmplOption(const std::string ipopt_option_name, AmplOptionType type, const std::string description); ~AmplOption() { delete [] description_; } const std::string& IpoptOptionName() const { return ipopt_option_name_; } AmplOptionType Type() const { return type_; } char* Description() const { return description_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ AmplOption(); /** Copy Constructor */ AmplOption(const AmplOption&); /** Overloaded Equals Operator */ void operator=(const AmplOption&); //@} const std::string ipopt_option_name_; const AmplOptionType type_; char* description_; }; class PrivatInfo { public: PrivatInfo(const std::string ipopt_name, SmartPtr options, SmartPtr jnlst, void** nerror = NULL) : ipopt_name_(ipopt_name), options_(options), jnlst_(jnlst), nerror_(nerror) {} const std::string& IpoptName() const { return ipopt_name_; } const SmartPtr& Options() const { return options_; } const SmartPtr& Jnlst() const { return jnlst_; } void** NError() { return nerror_; } private: const std::string ipopt_name_; const SmartPtr options_; const SmartPtr jnlst_; void** nerror_; }; public: /** Default Constructor */ AmplOptionsList() : keywds_(NULL), nkeywds_(0) {} /** Destructor */ ~AmplOptionsList(); /** Adding a new AMPL Option */ void AddAmplOption(const std::string ampl_option_name, const std::string ipopt_option_name, AmplOptionsList::AmplOptionType type, const std::string description) { SmartPtr new_option = new AmplOption(ipopt_option_name, type, description); ampl_options_map_[ampl_option_name] = ConstPtr(new_option); } /** Number of AMPL Options */ Index NumberOfAmplOptions() { return (Index)ampl_options_map_.size(); } /** ASL keywords list for the stored options. */ void* Keywords(const SmartPtr& options, SmartPtr jnlst, void** nerror); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //AmplOptionsList(); /** Copy Constructor */ AmplOptionsList(const AmplOptionsList&); /** Overloaded Equals Operator */ void operator=(const AmplOptionsList&); //@} void MakeValidLatexString(std::string source, std::string& dest) const; void PrintLatex(SmartPtr jnlst); /** map for storing registered AMPL options */ std::map > ampl_options_map_; // AW: I think it should be with const like in the following line // but with const the AIX compiler fails // std::map > ampl_options_map_; /** pointer to the keywords */ void* keywds_; /** Number of entries stored in keywds_ */ Index nkeywds_; }; /** Ampl Interface. * Ampl Interface, implemented as a TNLP. */ class AmplTNLP : public TNLP { public: /**@name Constructors/Destructors */ //@{ /** Constructor. */ AmplTNLP(const SmartPtr& jnlst, const SmartPtr options, char**& argv, SmartPtr suffix_handler = NULL, bool allow_discrete = false, SmartPtr ampl_options_list = NULL, const char* ampl_option_string = NULL, const char* ampl_invokation_string = NULL, const char* ampl_banner_string = NULL, std::string* nl_file_content = NULL); /** Default destructor */ virtual ~AmplTNLP(); //@} /** Exceptions */ DECLARE_STD_EXCEPTION(NONPOSITIVE_SCALING_FACTOR); /**@name methods to gather information about the NLP. These * methods are overloaded from TNLP. See TNLP for their more * detailed documentation. */ //@{ /** returns dimensions of the nlp. Overloaded from TNLP */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** returns names and other meta data for the variables and constraints * Overloaded from TNLP */ virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md); /** returns bounds of the nlp. Overloaded from TNLP */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Returns the constraint linearity. * array will be alocated with length n. (default implementation * just return false and does not fill the array). */ virtual bool get_constraints_linearity(Index m, LinearityType* const_types); /** provides a starting point for the nlp variables. Overloaded from TNLP */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** evaluates the objective value for the nlp. Overloaded from TNLP */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** evaluates the gradient of the objective for the nlp. Overloaded from TNLP */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** evaluates the constraint residuals for the nlp. Overloaded from TNLP */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** specifies the jacobian structure (if values is NULL) and * evaluates the jacobian values (if values is not NULL) for the * nlp. Overloaded from TNLP */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** specifies the structure of the hessian of the lagrangian (if * values is NULL) and evaluates the values (if values is not * NULL). Overloaded from TNLP */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); /** retrieve the scaling parameters for the variables, objective * function, and constraints. */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); //@} /** @name Solution Methods */ //@{ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} /** @name Method for quasi-Newton approximation information. */ //@{ virtual Index get_number_of_nonlinear_variables(); virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars); //@} /**@name Ampl specific methods */ //@{ /** Return the ampl solver object (ASL*) */ ASL_pfgh* AmplSolverObject() { return asl_; } /** Write the solution file. This is a wrapper for AMPL's * write_sol. TODO Maybe this should be at a different place, or * collect the numbers itself? */ void write_solution_file(const std::string& message) const; /** ampl orders the variables like (continuous, binary, integer). * This method gives the number of binary and integer variables. * For details, see Tables 3 and 4 in "Hooking Your Solver to * AMPL" */ void get_discrete_info(Index& nlvb_, Index& nlvbi_, Index& nlvc_, Index& nlvci_, Index& nlvo_, Index& nlvoi_, Index& nbv_, Index& niv_) const; //@} /** A method for setting the index of the objective function to be * considered. This method must be called after the constructor, * and before anything else is called. It can only be called * once, and if there is more than one objective function in the * AMPL model, it MUST be called. */ void set_active_objective(Index obj_no); /**@name Methods to set meta data for the variables * and constraints. These values will be passed on * to the TNLP in get_var_con_meta_data */ //@{ void set_string_metadata_for_var(std::string tag, std::vector meta_data) { var_string_md_[tag] = meta_data; } void set_integer_metadata_for_var(std::string tag, std::vector meta_data) { var_integer_md_[tag] = meta_data; } void set_numeric_metadata_for_var(std::string tag, std::vector meta_data) { var_numeric_md_[tag] = meta_data; } void set_string_metadata_for_con(std::string tag, std::vector meta_data) { con_string_md_[tag] = meta_data; } void set_integer_metadata_for_con(std::string tag, std::vector meta_data) { con_integer_md_[tag] = meta_data; } void set_numeric_metadata_for_con(std::string tag, std::vector meta_data) { con_numeric_md_[tag] = meta_data; } //@} /** Method for returning the suffix handler */ SmartPtr get_suffix_handler() { return suffix_handler_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ AmplTNLP(); /** Copy Constructor */ AmplTNLP(const AmplTNLP&); /** Overloaded Equals Operator */ void operator=(const AmplTNLP&); //@} /** Journlist */ SmartPtr jnlst_; /** pointer to the main ASL structure */ ASL_pfgh* asl_; /** Sign of the objective fn (1 for min, -1 for max) */ double obj_sign_; /**@name Problem Size Data*/ //@{ Index nz_h_full_; // number of nonzeros in the full_x hessian /* the rest of the problem size data is available easily through the ampl variables */ //@} /**@name Internal copies of data */ //@{ /** Solution Vectors */ Number* x_sol_; Number* z_L_sol_; Number* z_U_sol_; Number* g_sol_; Number* lambda_sol_; Number obj_sol_; //@} /**@name Flags to track internal state */ //@{ /** true when the objective value has been calculated with the * current x, set to false in apply_new_x, and set to true in * internal_objval */ bool objval_called_with_current_x_; /** true when the constraint values have been calculated with the * current x, set to false in apply_new_x, and set to true in * internal_conval */ bool conval_called_with_current_x_; /** true when we have called hesset */ bool hesset_called_; /** true when set_active_objective has been called */ bool set_active_objective_called_; //@} /** Pointer to the Oinfo structure */ void* Oinfo_ptr_; /** nerror flag passed to ampl calls - set to NULL to halt on error */ void* nerror_; /** Suffix Handler */ SmartPtr suffix_handler_; /** Make the objective call to ampl */ bool internal_objval(const Number* x, Number& obj_val); /** Make the constraint call to ampl*/ bool internal_conval(const Number* x, Index m, Number* g=NULL); /** Internal function to update the internal and ampl state if the * x value changes */ bool apply_new_x(bool new_x, Index n, const Number* x); /** Method for obtaining the name of the NL file and the options * set from AMPL. Returns a pointer to a char* with the name of * the stub */ char* get_options(const SmartPtr& options, SmartPtr& ampl_options_list, const char* ampl_option_string, const char* ampl_invokation_string, const char* ampl_banner_string, char**& argv); /** returns true if the ampl nerror code is ok */ bool nerror_ok(void* nerror); /** calls hesset ASL function */ void call_hesset(); /** meta data to pass on to TNLP */ StringMetaDataMapType var_string_md_; IntegerMetaDataMapType var_integer_md_; NumericMetaDataMapType var_numeric_md_; StringMetaDataMapType con_string_md_; IntegerMetaDataMapType con_integer_md_; NumericMetaDataMapType con_numeric_md_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/Makefile.am0000644000076600007660000000345112164277047020273 0ustar coincoin# Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2346 2013-07-01 13:03:35Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign lib_LTLIBRARIES = libipoptamplinterface.la bin_PROGRAMS = ipopt libipoptamplinterface_la_SOURCES = \ AmplTNLP.cpp AmplTNLP.hpp ipopt_SOURCES = \ ampl_ipopt.cpp ipopt_LDADD = libipoptamplinterface.la ../../Interfaces/libipopt.la \ $(IPOPTAMPLINTERFACELIB_LIBS) $(IPOPTLIB_LIBS) ipopt_DEPENDENCIES = libipoptamplinterface.la ../../Interfaces/libipopt.la \ $(IPOPTAMPLINTERFACELIB_DEPENDENCIES) $(IPOPTLIB_DEPENDENCIES) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` AM_CPPFLAGS += $(ASL_CFLAGS) includeipoptdir = $(includedir)/coin includeipopt_HEADERS = AmplTNLP.hpp pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = ../../../ipoptamplinterface.pc # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common if COIN_CXX_IS_CL install-exec-hook: test -s ipopt.exe.manifest && \ mt -manifest ipopt.exe.manifest -outputresource:ipopt.exe;\ cp ipopt.exe $(bindir)/ipopt.exe endif # Astyle stuff ASTYLE_FILES = \ AmplTNLP.cppbak AmplTNLP.hppbak \ ampl_ipopt.cppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in0000644000076600007660000000053511507663653025400 0ustar coincoinprefix=@prefix@ libdir=@ABSBUILDDIR@/src/Apps/AmplSolver Name: IPOPT Description: Ampl Interface TNLP to Ipopt URL: https://projects.coin-or.org/Ipopt Version: @PACKAGE_VERSION@ Libs: ${libdir}/libipoptamplinterface.la @IPOPTAMPLINTERFACELIB_PCLIBS@ Cflags: -I@abs_source_dir@/src/Apps/AmplSolver Requires: ipopt @IPOPTAMPLINTERFACELIB_PCREQUIRES@ Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/ampl_ipopt.cpp0000644000076600007660000000651711717176416021116 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: ampl_ipopt.cpp 2092 2012-02-16 12:56:46Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "AmplTNLP.hpp" #include "IpIpoptApplication.hpp" #include "IpoptConfig.h" #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif // for printf #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif int main(int argc, char**args) { using namespace Ipopt; SmartPtr app = IpoptApplicationFactory(); // Check if executable is run only to print out options documentation if (argc == 2) { bool print_options = false; bool print_latex_options = false; if (!strcmp(args[1],"--print-options")) { print_options = true; } else if (!strcmp(args[1],"--print-latex-options")) { print_options = true; print_latex_options = true; } if (print_options) { SmartPtr options = app->Options(); options->SetStringValue("print_options_documentation", "yes"); if (print_latex_options) { options->SetStringValue("print_options_latex_mode", "yes"); } app->Initialize(""); return 0; } } // Call Initialize the first time to create a journalist, but ignore // any options file ApplicationReturnStatus retval; retval = app->Initialize(""); if (retval != Solve_Succeeded) { printf("ampl_ipopt.cpp: Error in first Initialize!!!!\n"); exit(-100); } // Add the suffix handler for scaling SmartPtr suffix_handler = new AmplSuffixHandler(); suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Constraint_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("scaling_factor", AmplSuffixHandler::Objective_Source, AmplSuffixHandler::Number_Type); // Modified for warm-start from AMPL suffix_handler->AddAvailableSuffix("ipopt_zL_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zU_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zL_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zU_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); SmartPtr ampl_tnlp = new AmplTNLP(ConstPtr(app->Jnlst()), app->Options(), args, suffix_handler); // Call Initialize again to process output related options retval = app->Initialize(); if (retval != Solve_Succeeded) { printf("ampl_ipopt.cpp: Error in second Initialize!!!!\n"); exit(-101); } const int n_loops = 1; // make larger for profiling for (Index i=0; iOptimizeTNLP(ampl_tnlp); } // finalize_solution method in AmplTNLP writes the solution file return 0; } Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/Makefile.in0000644000076600007660000006313312164277047020307 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = ipopt$(EXEEXT) subdir = src/Apps/AmplSolver DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(includeipoptdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libipoptamplinterface_la_LIBADD = am_libipoptamplinterface_la_OBJECTS = AmplTNLP.lo libipoptamplinterface_la_OBJECTS = \ $(am_libipoptamplinterface_la_OBJECTS) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_ipopt_OBJECTS = ampl_ipopt.$(OBJEXT) ipopt_OBJECTS = $(am_ipopt_OBJECTS) am__DEPENDENCIES_1 = depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libipoptamplinterface_la_SOURCES) $(ipopt_SOURCES) DIST_SOURCES = $(libipoptamplinterface_la_SOURCES) $(ipopt_SOURCES) pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign lib_LTLIBRARIES = libipoptamplinterface.la libipoptamplinterface_la_SOURCES = \ AmplTNLP.cpp AmplTNLP.hpp ipopt_SOURCES = \ ampl_ipopt.cpp ipopt_LDADD = libipoptamplinterface.la ../../Interfaces/libipopt.la \ $(IPOPTAMPLINTERFACELIB_LIBS) $(IPOPTLIB_LIBS) ipopt_DEPENDENCIES = libipoptamplinterface.la ../../Interfaces/libipopt.la \ $(IPOPTAMPLINTERFACELIB_DEPENDENCIES) $(IPOPTLIB_DEPENDENCIES) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` -I`$(CYGPATH_W) \ $(srcdir)/../../LinAlg` -I`$(CYGPATH_W) \ $(srcdir)/../../LinAlg/TMatrices` -I`$(CYGPATH_W) \ $(srcdir)/../../Algorithm` -I`$(CYGPATH_W) \ $(srcdir)/../../Interfaces` $(ASL_CFLAGS) includeipoptdir = $(includedir)/coin includeipopt_HEADERS = AmplTNLP.hpp pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = ../../../ipoptamplinterface.pc # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ AmplTNLP.cppbak AmplTNLP.hppbak \ ampl_ipopt.cppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Apps/AmplSolver/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Apps/AmplSolver/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libipoptamplinterface.la: $(libipoptamplinterface_la_OBJECTS) $(libipoptamplinterface_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libipoptamplinterface_la_LDFLAGS) $(libipoptamplinterface_la_OBJECTS) $(libipoptamplinterface_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ipopt$(EXEEXT): $(ipopt_OBJECTS) $(ipopt_DEPENDENCIES) @rm -f ipopt$(EXEEXT) $(CXXLINK) $(ipopt_LDFLAGS) $(ipopt_OBJECTS) $(ipopt_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AmplTNLP.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ampl_ipopt.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgconfiglibdir)" "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @COIN_CXX_IS_CL_FALSE@install-exec-hook: clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeipoptHEADERS install-pkgconfiglibDATA install-exec-am: install-binPROGRAMS install-libLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-includeipoptHEADERS \ uninstall-info-am uninstall-libLTLIBRARIES \ uninstall-pkgconfiglibDATA .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-exec-hook install-includeipoptHEADERS install-info \ install-info-am install-libLTLIBRARIES install-man \ install-pkgconfiglibDATA install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-includeipoptHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES uninstall-pkgconfiglibDATA @COIN_CXX_IS_CL_TRUE@install-exec-hook: @COIN_CXX_IS_CL_TRUE@ test -s ipopt.exe.manifest && \ @COIN_CXX_IS_CL_TRUE@ mt -manifest ipopt.exe.manifest -outputresource:ipopt.exe;\ @COIN_CXX_IS_CL_TRUE@ cp ipopt.exe $(bindir)/ipopt.exe astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Apps/AmplSolver/AmplTNLP.cpp0000644000076600007660000015634512214316142020327 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: AmplTNLP.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "AmplTNLP.hpp" #include "IpDenseVector.hpp" #include "IpGenTMatrix.hpp" #include "IpSymTMatrix.hpp" #include "IpBlas.hpp" #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif /* AMPL includes */ #include "asl.h" #include "asl_pfgh.h" #include "getstub.h" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif AmplTNLP::AmplTNLP(const SmartPtr& jnlst, const SmartPtr options, char**& argv, SmartPtr suffix_handler /* = NULL */, bool allow_discrete /* = false */, SmartPtr ampl_options_list /* = NULL */, const char* ampl_option_string /* = NULL */, const char* ampl_invokation_string /* = NULL */, const char* ampl_banner_string /* = NULL */, std::string* nl_file_content /* = NULL */) : TNLP(), jnlst_(jnlst), asl_(NULL), obj_sign_(1), nz_h_full_(-1), x_sol_(NULL), z_L_sol_(NULL), z_U_sol_(NULL), g_sol_(NULL), lambda_sol_(NULL), obj_sol_(0.0), objval_called_with_current_x_(false), conval_called_with_current_x_(false), hesset_called_(false), set_active_objective_called_(false), Oinfo_ptr_(NULL), suffix_handler_(suffix_handler) { DBG_START_METH("AmplTNLP::AmplTNLP", dbg_verbosity); // The ASL include files #define certain // variables that they expect you to work with. // These variables then appear as though they are // global variables when, in fact, they are not // Most of them are data members of an asl object // Create the ASL structure ASL_pfgh* asl = (ASL_pfgh*)ASL_alloc(ASL_read_pfgh); DBG_ASSERT(asl); asl_ = asl; // keep the pointer for ourselves to use later... // First assume that we don't want to halt on error (default) fint* fint_nerror = new fint; *fint_nerror = 0; nerror_ = (void*) fint_nerror; // Read the options and stub char* stub = get_options(options, ampl_options_list, ampl_option_string, ampl_invokation_string, ampl_banner_string, argv); FILE*nl = NULL; if (nl_file_content) { nl = jac0dim(const_cast(nl_file_content->c_str()), -(ftnlen)nl_file_content->length()); } else { if (!stub) { jnlst_->Printf(J_ERROR, J_MAIN, "No .nl file given!\n"); THROW_EXCEPTION(INVALID_TNLP, "No .nl file given!\n"); } nl = jac0dim(stub, (fint)strlen(stub)); DBG_ASSERT(nl); } jnlst_->Printf(J_SUMMARY, J_MAIN, "\n"); // check the problem statistics (see Table 1 in AMPL doc) DBG_ASSERT(n_var > 0); // need some continuous variables if (!allow_discrete && (nbv>0 || niv>0 || nlvbi>0 || nlvci>0 || nlvoi>0) ) { jnlst_->Printf(J_WARNING, J_MAIN, "==> Warning: Treating %d binary and %d integer variables as continous.\n\n", nbv, niv+nlvbi+nlvci+nlvoi); allow_discrete = true; } allow_discrete = true; ASSERT_EXCEPTION(allow_discrete || (nbv == 0 && niv == 0 && nlvbi == 0 && nlvci == 0 && nlvoi == 0), IpoptException, "Discrete variables not allowed when the allow_discrete flag is false, " "Either remove the integer variables, or change the flag in the constructor of AmplTNLP" ); if (n_cc != 0) { jnlst_->Printf(J_ERROR, J_MAIN, "\n\n***** Currently, the AMPL interface to Ipopt does not support\n complementarity constraints. Aborting. *****\n\n"); ASSERT_EXCEPTION(n_cc == 0, IpoptException, "Currently, the AMPL interface to Ipopt does not support complementarity constraints."); } DBG_ASSERT(nlo == 0 || nlo == 1); // Can handle nonlinear obj. DBG_ASSERT(nwv == 0); // Don't know what "linear arc" variables are DBG_ASSERT(nlnc == 0); // Don't know what "nonlinear network"constraints are DBG_ASSERT(lnc == 0); // Don't know what "linear network" constraints are // Set options in the asl structure want_xpi0 = 1 | 2; // allocate initial values for primal and dual if available obj_no = 0; DBG_ASSERT((want_xpi0 & 1) == 1 && (want_xpi0 & 2) == 2); // allocate space for initial values X0 = new real[n_var]; havex0 = new char[n_var]; pi0 = new real[n_con]; havepi0 = new char[n_con]; // prepare for suffixes if (IsValid(suffix_handler)) { suffix_handler->PrepareAmplForSuffixes(asl_); } // read the rest of the nl file int retcode = pfgh_read(nl, ASL_return_read_err | ASL_findgroups); switch (retcode) { case ASL_readerr_none : {} break; case ASL_readerr_nofile : { jnlst_->Printf(J_ERROR, J_MAIN, "Cannot open .nl file\n"); THROW_EXCEPTION(INVALID_TNLP, "Cannot open .nl file"); } break; case ASL_readerr_nonlin : { DBG_ASSERT(false); // this better not be an error! jnlst_->Printf(J_ERROR, J_MAIN, "model involves nonlinearities (ed0read)\n"); THROW_EXCEPTION(INVALID_TNLP, "model involves nonlinearities (ed0read)"); } break; case ASL_readerr_argerr : { jnlst_->Printf(J_ERROR, J_MAIN, "user-defined function with bad args\n"); THROW_EXCEPTION(INVALID_TNLP, "user-defined function with bad args"); } break; case ASL_readerr_unavail : { jnlst_->Printf(J_ERROR, J_MAIN, "user-defined function not available\n"); THROW_EXCEPTION(INVALID_TNLP, "user-defined function not available"); } break; case ASL_readerr_corrupt : { jnlst_->Printf(J_ERROR, J_MAIN, "corrupt .nl file\n"); THROW_EXCEPTION(INVALID_TNLP, "corrupt .nl file"); } break; case ASL_readerr_bug : { jnlst_->Printf(J_ERROR, J_MAIN, "bug in .nl reader\n"); THROW_EXCEPTION(INVALID_TNLP, "bug in .nl reader"); } break; case ASL_readerr_CLP : { jnlst_->Printf(J_ERROR, J_MAIN, "Ampl model contains a constraint without \"=\", \">=\", or \"<=\".\n"); THROW_EXCEPTION(INVALID_TNLP, "Ampl model contains a constraint without \"=\", \">=\", or \"<=\"."); } break; default: { jnlst_->Printf(J_ERROR, J_MAIN, "Unknown error in stub file read. retcode = %d\n", retcode); THROW_EXCEPTION(INVALID_TNLP, "Unknown error in stub file read"); } break; } } void AmplTNLP::set_active_objective(Index in_obj_no) { if (hesset_called_) { jnlst_->Printf(J_ERROR, J_MAIN, "Internal error: AmplTNLP::set_active_objective called after AmplTNLP::call_hesset.\n"); THROW_EXCEPTION(INVALID_TNLP, "Internal error: AmplTNLP::set_active_objective called after AmplTNLP::call_hesset."); } ASL_pfgh* asl = asl_; obj_no = in_obj_no; set_active_objective_called_ = true; } void AmplTNLP::call_hesset() { if (hesset_called_) { jnlst_->Printf(J_ERROR, J_MAIN, "Internal error: AmplTNLP::call_hesset is called twice.\n"); THROW_EXCEPTION(INVALID_TNLP, "Internal error: AmplTNLP::call_hesset is called twice."); } ASL_pfgh* asl = asl_; if (n_obj == 0) { hesset(1,0,0,0,nlc); } else { if (n_obj>1 && !set_active_objective_called_) { jnlst_->Printf(J_ERROR, J_MAIN, "There is more than one objective function in the AMPL model, but AmplTNLP::set_active_objective has not been called.\n"); THROW_EXCEPTION(INVALID_TNLP, "There is more than one objective function in the AMPL model, but AmplTNLP::set_active_objective has not been called"); } // see "changes" in solvers directory of ampl code... hesset(1,obj_no,1,0,nlc); } obj_sign_ = 1; // minimization if (objtype[obj_no] != 0) { obj_sign_ = -1; } // find the nonzero structure for the hessian parameters to // sphsetup: int coeff_obj = 1; int mult_supplied = 1; // multipliers will be supplied int uptri = 1; // only need the upper triangular part nz_h_full_ = sphsetup(-1, coeff_obj, mult_supplied, uptri); hesset_called_ = true; } AmplTNLP::~AmplTNLP() { ASL_pfgh* asl = asl_; if (asl) { if (X0) { delete [] X0; X0 = NULL; } if (havex0) { delete [] havex0; havex0 = NULL; } if (pi0) { delete [] pi0; pi0 = NULL; } if (havepi0) { delete [] havepi0; havepi0 = NULL; } ASL* asl_to_free = (ASL*)asl_; ASL_free(&asl_to_free); asl_ = NULL; } delete [] x_sol_; x_sol_ = NULL; delete [] z_L_sol_; z_L_sol_ = NULL; delete [] z_U_sol_; z_U_sol_ = NULL; delete [] g_sol_; g_sol_ = NULL; delete [] lambda_sol_; lambda_sol_ = NULL; if (Oinfo_ptr_) { Option_Info* Oinfo = (Option_Info*) Oinfo_ptr_; delete [] Oinfo->sname; delete [] Oinfo->bsname; delete [] Oinfo->opname; delete Oinfo; } delete (fint*) nerror_; } bool AmplTNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); if (!hesset_called_) { call_hesset(); } n = n_var; // # of variables (variable types have been asserted in the constructor m = n_con; // # of constraints nnz_jac_g = nzc; // # of non-zeros in the jacobian nnz_h_lag = nz_h_full_; // # of non-zeros in the hessian index_style = TNLP::FORTRAN_STYLE; return true; } bool AmplTNLP::get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) { ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); // pick up the variable and constraints names if available Index rlen = maxrownamelen; Index clen = maxcolnamelen; if (rlen > 0) { std::vector var_names(n); for (Index i=0; i 0) { std::vector con_names(m); for (Index i=0; i 0 || var_integer_md_.size() > 0 || var_numeric_md_.size() > 0 || con_string_md_.size() > 0 || con_integer_md_.size() > 0 || con_numeric_md_.size() > 0) { var_string_md = var_string_md_; var_integer_md = var_integer_md_; var_numeric_md = var_numeric_md_; con_string_md = con_string_md_; con_integer_md = con_integer_md_; con_numeric_md = con_numeric_md_; return true; } return false; } bool AmplTNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); DBG_ASSERT(n == n_var); DBG_ASSERT(m == n_con); for (Index i=0; iGetNumberSuffixValues("ipopt_zL_in", AmplSuffixHandler::Variable_Source); const double* zU_init = suffix_handler_->GetNumberSuffixValues("ipopt_zU_in", AmplSuffixHandler::Variable_Source); for (Index i=0; i(x), grad_f, (fint*)nerror_); if (!nerror_ok(nerror_)) { return false; } if (obj_sign_==-1) { for (Index i=0; inext) { iRow[cg->goff] = i + 1; jCol[cg->goff] = cg->varno + 1; // iRow[current_nz] = i + 1; // jCol[current_nz] = cg->varno+1; current_nz++; } } DBG_ASSERT(current_nz == nele_jac); return true; } else if (!iRow && !jCol && values) { if (!apply_new_x(new_x, n, x)) { return false; } jacval(const_cast(x), values, (fint*)nerror_); if (nerror_ok(nerror_)) { return true; } } else { DBG_ASSERT(false && "Invalid combination of iRow, jCol, and values pointers"); } return false; } bool AmplTNLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { DBG_START_METH("AmplTNLP::eval_h", dbg_verbosity); ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); DBG_ASSERT(n == n_var); DBG_ASSERT(m == n_con); if (iRow && jCol && !values) { // setup the structure int k=0; for (int i=0; ihcolstarts[i]; jhcolstarts[i+1]; j++) { iRow[k] = i + 1; jCol[k] = sputinfo->hrownos[j]+1; k++; } } DBG_ASSERT(k==nele_hess); return true; } else if (!iRow && !jCol && values) { if (!apply_new_x(new_x, n, x)) { return false; } if (!objval_called_with_current_x_) { Number dummy; internal_objval(x, dummy); internal_conval(x, m); } if (!conval_called_with_current_x_) { internal_conval(x, m); } real* OW = new real[Max(1,n_obj)]; if (n_obj>0) { for (Index i=0; i(lambda)); delete [] OW; return true; } else { DBG_ASSERT(false && "Invalid combination of iRow, jCol, and values pointers"); } return false; } void AmplTNLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { ASL_pfgh* asl = asl_; if (!x_sol_) { x_sol_ = new Number[n]; } if (!z_L_sol_) { z_L_sol_ = new Number[n]; } if (!z_U_sol_) { z_U_sol_ = new Number[n]; } if (!g_sol_) { g_sol_ = new Number[m]; } if (!lambda_sol_) { lambda_sol_ = new Number[m]; } IpBlasDcopy(n, x, 1, x_sol_, 1); IpBlasDcopy(m, g, 1, g_sol_, 1); if( obj_sign_ == -1.0 ) // maximization { for( int i = 0; i < n; ++i ) z_L_sol_[i] = -z_L[i]; IpBlasDcopy(n, z_U, 1, z_U_sol_, 1); IpBlasDcopy(m, lambda, 1, lambda_sol_, 1); } else { IpBlasDcopy(n, z_L, 1, z_L_sol_, 1); for( int i = 0; i < n; ++i ) z_U_sol_[i] = -z_U[i]; for( int i = 0; i < m; ++i ) lambda_sol_[i] = -lambda[i]; } obj_sol_ = obj_value; std::string message; if (status == SUCCESS) { message = "Optimal Solution Found"; solve_result_num = 0; } else if (status == MAXITER_EXCEEDED) { message = "Maximum Number of Iterations Exceeded."; solve_result_num = 400; } else if (status == CPUTIME_EXCEEDED) { message = "Maximum CPU Time Exceeded."; solve_result_num = 401; } else if (status == STOP_AT_TINY_STEP) { message = "Search Direction becomes Too Small."; solve_result_num = 500; } else if (status == STOP_AT_ACCEPTABLE_POINT) { message = "Solved To Acceptable Level."; solve_result_num = 1; } else if (status == FEASIBLE_POINT_FOUND) { message = "Found feasible point for square problem."; solve_result_num = 2; } else if (status == LOCAL_INFEASIBILITY) { message = "Converged to a locally infeasible point. Problem may be infeasible."; solve_result_num = 200; } else if (status == RESTORATION_FAILURE) { message = "Restoration Phase Failed."; solve_result_num = 501; } else if (status == DIVERGING_ITERATES) { message = "Iterates diverging; problem might be unbounded."; solve_result_num = 300; } else { message = "Unknown Error"; solve_result_num = 502; } if (IsValid(suffix_handler_)) { // Modified for warm-start from AMPL. Assign Bound Multipliers as Suffixes suf_rput("ipopt_zL_out", ASL_Sufkind_var, z_L_sol_); suf_rput("ipopt_zU_out", ASL_Sufkind_var, z_U_sol_); } // Write the .sol file message = " \nIpopt " IPOPT_VERSION ": " + message; write_solution_file(message.c_str()); } bool AmplTNLP::internal_objval(const Number* x, Number& obj_val) { DBG_START_METH("AmplTNLP::internal_objval", dbg_verbosity); ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); objval_called_with_current_x_ = false; // in case the call below fails if (n_obj==0) { obj_val = 0; objval_called_with_current_x_ = true; return true; } else { Number retval = objval(obj_no, const_cast(x), (fint*)nerror_); if (nerror_ok(nerror_)) { obj_val = obj_sign_*retval; objval_called_with_current_x_ = true; return true; } } return false; } bool AmplTNLP::internal_conval(const Number* x, Index m, Number* g) { DBG_START_METH("AmplTNLP::internal_conval", dbg_verbosity); ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); DBG_ASSERT(m == n_con); conval_called_with_current_x_ = false; // in case the call below fails bool allocated = false; if (!g) { g = new double[m]; allocated = true; } conval(const_cast(x), g, (fint*)nerror_); if (allocated) { delete [] g; g = NULL; } if (nerror_ok(nerror_)) { conval_called_with_current_x_ = true; return true; } return false; } bool AmplTNLP::apply_new_x(bool new_x, Index n, const Number* x) { DBG_START_METH("AmplTNLP::apply_new_x", dbg_verbosity); ASL_pfgh* asl = asl_; DBG_ASSERT(asl_); if (new_x) { if (!hesset_called_) { call_hesset(); } DBG_PRINT((1, "Set new x.\n")); // update the flags so these methods are called // before evaluating the hessian conval_called_with_current_x_ = false; objval_called_with_current_x_ = false; // tell ampl that we have a new x xknowne(const_cast(x), (fint*)nerror_); return nerror_ok(nerror_); } return true; } void AmplTNLP::write_solution_file(const std::string& message) const { ASL_pfgh* asl = asl_; DBG_ASSERT(asl); DBG_ASSERT(x_sol_ && lambda_sol_); // We need to copy the message into a non-const char array to make // it work with the AMPL C function. char* cmessage = new char[message.length()+1]; strcpy(cmessage, message.c_str()); write_sol(cmessage, x_sol_, lambda_sol_, (Option_Info*)Oinfo_ptr_); delete [] cmessage; } void AmplTNLP::get_discrete_info(Index& nlvb_, Index& nlvbi_, Index& nlvc_, Index& nlvci_, Index& nlvo_, Index& nlvoi_, Index& nbv_, Index& niv_) const { ASL_pfgh* asl = asl_; DBG_ASSERT(asl); nlvb_ = nlvb; nlvbi_ = nlvbi; nlvc_ = nlvc; nlvci_ = nlvci; nlvo_ = nlvo; nlvoi_ = nlvoi; nbv_ = nbv; niv_ = niv; } bool AmplTNLP::get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) { DBG_ASSERT(IsValid(suffix_handler_)); const double* obj = suffix_handler_->GetNumberSuffixValues("scaling_factor", AmplSuffixHandler::Objective_Source); obj_scaling = (obj) ? obj[0] : 1.0; const double* x = suffix_handler_->GetNumberSuffixValues("scaling_factor", AmplSuffixHandler::Variable_Source); if (x) { use_x_scaling = true; for (int i=0; i < n; i++) { if (x[i] > 0.0) { x_scaling[i] = x[i]; } else { x_scaling[i] = 1.0; } } } else { use_x_scaling = false; } const double* g = suffix_handler_->GetNumberSuffixValues("scaling_factor", AmplSuffixHandler::Constraint_Source); if (g) { use_g_scaling = true; for (int i=0; i < m; i++) { if (g[i] > 0) { g_scaling[i] = g[i]; } else { g_scaling[i] = 1.0; } } } else { use_g_scaling = false; } return true; } Index AmplTNLP::get_number_of_nonlinear_variables() { ASL_pfgh* asl = asl_; return Max(nlvo,nlvc); } bool AmplTNLP::get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars) { DBG_DO(ASL_pfgh* asl = asl_;) DBG_ASSERT(num_nonlin_vars == Max(nlvo,nlvc)); // The first variables are the nonlinear ones (using Fortran // numbering) for (Index i=0; iinfo; real real_val; kw->info = &real_val; char* retval = D_val(oi, kw, value); kw->info = (void*) pinfo; if (!pinfo->Options()->SetNumericValue(pinfo->IpoptName().c_str(), real_val)) { pinfo->Jnlst()->Printf(J_ERROR, J_MAIN, "\nInvalid value \"%s\" for option %s.\n", value, kw->name); THROW_EXCEPTION(OPTION_INVALID, "Invalid numeric option"); } return retval; } static char* get_int_opt(Option_Info *oi, keyword *kw, char *value) { AmplOptionsList::PrivatInfo* pinfo = (AmplOptionsList::PrivatInfo*) kw->info; int int_val; kw->info = &int_val; char* retval = I_val(oi, kw, value); kw->info = (void*) pinfo; if (!pinfo->Options()->SetIntegerValue(pinfo->IpoptName().c_str(), int_val)) { pinfo->Jnlst()->Printf(J_ERROR, J_MAIN, "\nInvalid value \"%s\" for option %s.\n", value, kw->name); THROW_EXCEPTION(OPTION_INVALID, "Invalid integer option"); } return retval; } static char* get_str_opt(Option_Info *oi, keyword *kw, char *value) { AmplOptionsList::PrivatInfo* pinfo = (AmplOptionsList::PrivatInfo*) kw->info; char* str_val; kw->info = &str_val; char* retval = C_val(oi, kw, value); kw->info = (void*) pinfo; if (!pinfo->Options()->SetStringValue(pinfo->IpoptName().c_str(), str_val)) { pinfo->Jnlst()->Printf(J_ERROR, J_MAIN, "\nInvalid value \"%s\" for option %s.\n", value, kw->name); THROW_EXCEPTION(OPTION_INVALID, "Invalid string option"); } return retval; } static char* get_haltonerror_opt(Option_Info *oi, keyword *kw, char *value) { AmplOptionsList::PrivatInfo* pinfo = (AmplOptionsList::PrivatInfo*) kw->info; char* str_val; kw->info = &str_val; char* retval = C_val(oi, kw, value); kw->info = (void*) pinfo; fint** nerror = (fint**) pinfo->NError(); if (strcmp(str_val, "yes")==0) { delete *nerror; *nerror = NULL; } else if (strcmp(str_val, "no")==0) { delete *nerror; *nerror = new fint; **nerror = 0; } else { pinfo->Jnlst()->Printf(J_ERROR, J_MAIN, "\nInvalid value \"%s\" for option %s.\n", value, kw->name); THROW_EXCEPTION(OPTION_INVALID, "Invalid option"); } return retval; } } AmplOptionsList::AmplOption::AmplOption(const std::string ipopt_option_name, AmplOptionType type, const std::string description) : ipopt_option_name_(ipopt_option_name), type_(type) { description_ = new char[description.size()+1]; strcpy(description_, description.c_str()); } AmplOptionsList::~AmplOptionsList() { if (keywds_) { DBG_ASSERT(nkeywds_>0); keyword* keywords = (keyword*) keywds_; for (Index i=0; i& options, SmartPtr jnlst, void** nerror) { if (keywds_) { DBG_ASSERT(nkeywds_>0); keyword* keywords = (keyword*) keywds_; for (Index i=0; i >::iterator iter = ampl_options_map_.begin(); iter != ampl_options_map_.end(); iter++) { keywords[ioption].name = new char[iter->first.size()+1]; strcpy(keywords[ioption].name, iter->first.c_str()); keywords[ioption].desc = iter->second->Description(); switch (iter->second->Type()) { case String_Option: { PrivatInfo* pinfo = new PrivatInfo(iter->second->IpoptOptionName(), options, jnlst); keywords[ioption].info = (void*) pinfo; keywords[ioption].kf = get_str_opt; } break; case Number_Option: { PrivatInfo* pinfo = new PrivatInfo(iter->second->IpoptOptionName(), options, jnlst); keywords[ioption].info = (void*) pinfo; keywords[ioption].kf = get_num_opt; } break; case Integer_Option: { PrivatInfo* pinfo = new PrivatInfo(iter->second->IpoptOptionName(), options, jnlst); keywords[ioption].info = (void*) pinfo; keywords[ioption].kf = get_int_opt; } break; case WS_Option: keywords[ioption].info = NULL; keywords[ioption].kf = WS_val; break; case HaltOnError_Option: PrivatInfo* pinfo = new PrivatInfo(iter->second->IpoptOptionName(), options, jnlst, nerror); keywords[ioption].info = (void*) pinfo; keywords[ioption].kf = get_haltonerror_opt; break; } ioption++; } DBG_ASSERT(ioption==n_options); nkeywds_ = n_options; keywds_ = (void*) keywords; return keywds_; } void AmplOptionsList::MakeValidLatexString(std::string source, std::string& dest) const { std::string::iterator c; for (c=source.begin(); c!=source.end(); c++) { if (*c == '_') { dest.append("\\_"); } else if (*c == '^') { dest.append("\\^"); } else if (*c == '>' || *c == '<') { ; } else if (*c == '\n') { dest += ", "; } else { dest += *c; } } } void AmplOptionsList::PrintLatex(SmartPtr jnlst) { jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, "\\begin{description}\n"); for( std::map >::iterator iter = ampl_options_map_.begin(); iter != ampl_options_map_.end(); ++iter) { std::string amplname; std::string ipoptname; std::string descr; MakeValidLatexString(iter->first.c_str(), amplname); MakeValidLatexString(iter->second->IpoptOptionName(), ipoptname); MakeValidLatexString(iter->second->Description(), descr); if( ipoptname.length() > 0 ) { jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, "\\item[{\\htmlref{%s}{opt:%s}}]", amplname.c_str(), iter->second->IpoptOptionName().c_str()); if( amplname != ipoptname ) jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, " (Ipopt name: \\htmlref{%s}{opt:%s})", ipoptname.c_str(), iter->second->IpoptOptionName().c_str()); } else { jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, "\\item[%s]", amplname.c_str()); } jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, " %s\n", descr.c_str()); } jnlst->Printf(J_SUMMARY, J_DOCUMENTATION, "\\end{description}\n"); } char* AmplTNLP::get_options(const SmartPtr& options, SmartPtr& ampl_options_list, const char* ampl_option_string, const char* ampl_invokation_string, const char* ampl_banner_string, char**& argv) { ASL_pfgh* asl = asl_; if (!IsValid(ampl_options_list)) { ampl_options_list = new AmplOptionsList(); } // Output ampl_options_list->AddAmplOption("print_level", "print_level", AmplOptionsList::Integer_Option, "Verbosity level"); ampl_options_list->AddAmplOption("outlev", "print_level", AmplOptionsList::Integer_Option, "Verbosity level"); ampl_options_list->AddAmplOption("print_user_options", "print_user_options", AmplOptionsList::String_Option, "Toggle printing of user options"); ampl_options_list->AddAmplOption("print_options_documentation", "print_options_documentation", AmplOptionsList::String_Option, "Print all available options (for ipopt.opt)"); ampl_options_list->AddAmplOption("output_file", "output_file", AmplOptionsList::String_Option, "File name of an output file (leave unset for no file output)"); ampl_options_list->AddAmplOption("file_print_level", "file_print_level", AmplOptionsList::Integer_Option, "Verbosity level for output file"); ampl_options_list->AddAmplOption("option_file_name", "option_file_name", AmplOptionsList::String_Option, "File name of options file (default: ipopt.opt)"); // Termination ampl_options_list->AddAmplOption("tol", "tol", AmplOptionsList::Number_Option, "Desired convergence tolerance (relative)"); ampl_options_list->AddAmplOption("max_iter", "max_iter", AmplOptionsList::Integer_Option, "Maximum number of iterations"); ampl_options_list->AddAmplOption("maxit", "max_iter", AmplOptionsList::Integer_Option, "Maximum number of iterations"); ampl_options_list->AddAmplOption("max_cpu_time", "max_cpu_time", AmplOptionsList::Number_Option, "CPU time limit"); ampl_options_list->AddAmplOption("compl_inf_tol", "compl_inf_tol", AmplOptionsList::Number_Option, "Acceptance threshold for the complementarity conditions"); ampl_options_list->AddAmplOption("dual_inf_tol", "dual_inf_tol", AmplOptionsList::Number_Option, "Desired threshold for the dual infeasibility"); ampl_options_list->AddAmplOption("constr_viol_tol", "constr_viol_tol", AmplOptionsList::Number_Option, "Desired threshold for the constraint violation"); ampl_options_list->AddAmplOption("acceptable_tol", "acceptable_tol", AmplOptionsList::Number_Option, "Acceptable convergence tolerance (relative)"); ampl_options_list->AddAmplOption("acceptable_compl_inf_tol", "acceptable_compl_inf_tol", AmplOptionsList::Number_Option, "Acceptance threshold for the complementarity conditions"); ampl_options_list->AddAmplOption("acceptable_dual_inf_tol", "acceptable_dual_inf_tol", AmplOptionsList::Number_Option, "Acceptance threshold for the dual infeasibility"); ampl_options_list->AddAmplOption("acceptable_constr_viol_tol", "acceptable_constr_viol_tol", AmplOptionsList::Number_Option, "Acceptance threshold for the constraint violation"); ampl_options_list->AddAmplOption("diverging_iterates_tol", "diverging_iterates_tol", AmplOptionsList::Number_Option, "Threshold for maximal value of primal iterates"); // NLP scaling ampl_options_list->AddAmplOption("obj_scaling_factor", "obj_scaling_factor", AmplOptionsList::Number_Option, "Scaling factor for the objective function"); ampl_options_list->AddAmplOption("nlp_scaling_method", "nlp_scaling_method", AmplOptionsList::String_Option, "Select the technique used for scaling the NLP"); ampl_options_list->AddAmplOption("nlp_scaling_max_gradient", "nlp_scaling_max_gradient", AmplOptionsList::Number_Option, "Maximum gradient after scaling"); // NLP corrections ampl_options_list->AddAmplOption("bound_relax_factor", "bound_relax_factor", AmplOptionsList::Number_Option, "Factor for initial relaxation of the bounds"); ampl_options_list->AddAmplOption("honor_original_bounds", "honor_original_bounds", AmplOptionsList::String_Option, "If no, solution might slightly violate bounds"); // Barrier parameter ampl_options_list->AddAmplOption("mu_strategy", "mu_strategy", AmplOptionsList::String_Option, "Update strategy for barrier parameter"); ampl_options_list->AddAmplOption("mu_oracle", "mu_oracle", AmplOptionsList::String_Option, "Oracle for a new barrier parameter in the adaptive strategy"); // Barrier parameter ampl_options_list->AddAmplOption("mu_max", "mu_max", AmplOptionsList::Number_Option, "Maximal value for barrier parameter for adaptive strategy"); ampl_options_list->AddAmplOption("mu_init", "mu_init", AmplOptionsList::Number_Option, "Initial value for the barrier parameter"); // Initialization ampl_options_list->AddAmplOption("bound_frac", "bound_frac", AmplOptionsList::Number_Option, "Desired minimal relative distance of initial point to bound"); ampl_options_list->AddAmplOption("bound_push", "bound_push", AmplOptionsList::Number_Option, "Desired minimal absolute distance of initial point to bound"); ampl_options_list->AddAmplOption("slack_bound_frac", "slack_bound_frac", AmplOptionsList::Number_Option, "Desired minimal relative distance of initial slack to bound"); ampl_options_list->AddAmplOption("slack_bound_push", "slack_bound_push", AmplOptionsList::Number_Option, "Desired minimal absolute distance of initial slack to bound"); ampl_options_list->AddAmplOption("bound_mult_init_val", "bound_mult_init_val", AmplOptionsList::Number_Option, "Initial value for the bound multipliers"); ampl_options_list->AddAmplOption("constr_mult_init_max", "constr_mult_init_max", AmplOptionsList::Number_Option, "Maximal allowed least-square guess of constraint multipliers"); // Multiplier updates ampl_options_list->AddAmplOption("alpha_for_y", "alpha_for_y", AmplOptionsList::String_Option, "Step size for constraint multipliers"); // Line search ampl_options_list->AddAmplOption("max_soc", "max_soc", AmplOptionsList::Integer_Option, "Maximal number of second order correction trial steps"); ampl_options_list->AddAmplOption("watchdog_shortened_iter_trigger", "watchdog_shortened_iter_trigger", AmplOptionsList::Integer_Option, "Trigger counter for watchdog procedure"); // Restoration phase ampl_options_list->AddAmplOption("expect_infeasible_problem", "expect_infeasible_problem", AmplOptionsList::String_Option, "Enable heuristics to quickly detect an infeasible problem"); ampl_options_list->AddAmplOption("required_infeasibility_reduction", "required_infeasibility_reduction", AmplOptionsList::Number_Option, "Required infeasibility reduction in restoration phase"); // Added for Warm-Start ampl_options_list->AddAmplOption("warm_start_init_point", "warm_start_init_point", AmplOptionsList::String_Option, "Enables to specify bound multiplier values"); ampl_options_list->AddAmplOption("warm_start_bound_push", "warm_start_bound_push", AmplOptionsList::Number_Option, "Enables to specify how much should variables should be pushed inside the feasible region"); ampl_options_list->AddAmplOption("warm_start_mult_bound_push", "warm_start_mult_bound_push", AmplOptionsList::Number_Option, "Enables to specify how much should bound multipliers should be pushed inside the feasible region"); // Quasi-Newton ampl_options_list->AddAmplOption("hessian_approximation", "hessian_approximation", AmplOptionsList::String_Option, "Can enable Quasi-Newton approximation of hessian"); // Linear solver ampl_options_list->AddAmplOption("linear_solver", "linear_solver", AmplOptionsList::String_Option, "Linear solver to be used for step calculation"); ampl_options_list->AddAmplOption("linear_system_scaling", "linear_system_scaling", AmplOptionsList::String_Option, "Method for scaling the linear systems"); ampl_options_list->AddAmplOption("linear_scaling_on_demand", "linear_scaling_on_demand", AmplOptionsList::String_Option, "Enables heuristic for scaling only when seems required"); ampl_options_list->AddAmplOption("max_refinement_steps", "max_refinement_steps", AmplOptionsList::Integer_Option, "Maximal number of iterative refinement steps per linear system solve"); ampl_options_list->AddAmplOption("min_refinement_steps", "min_refinement_steps", AmplOptionsList::Integer_Option, "Minimum number of iterative refinement steps per linear system solve"); // Quasi-Newton ampl_options_list->AddAmplOption("hessian_approximation", "hessian_approximation", AmplOptionsList::String_Option, "Can enable Quasi-Newton approximation of hessian"); // Special linear solver options ampl_options_list->AddAmplOption("ma27_pivtol", "ma27_pivtol", AmplOptionsList::Number_Option, "Pivot tolerance for the linear solver MA27"); ampl_options_list->AddAmplOption("ma27_pivtolmax", "ma27_pivtolmax", AmplOptionsList::Number_Option, "Maximal pivot tolerance for the linear solver MA27"); ampl_options_list->AddAmplOption("ma57_pivtol", "ma57_pivtol", AmplOptionsList::Number_Option, "Pivot tolerance for the linear solver MA57"); ampl_options_list->AddAmplOption("ma57_pivtolmax", "ma57_pivtolmax", AmplOptionsList::Number_Option, "Maximal pivot tolerance for the linear solver MA57"); ampl_options_list->AddAmplOption("ma57_pivot_order", "ma57_pivot_order", AmplOptionsList::Integer_Option, "Controls pivot order in MA57"); ampl_options_list->AddAmplOption("pardiso_matching_strategy", "pardiso_matching_strategy", AmplOptionsList::String_Option, "Matching strategy for linear solver Pardiso"); ampl_options_list->AddAmplOption("pardiso_out_of_core_power", "pardiso_out_of_core_power", AmplOptionsList::Integer_Option, "Enables out-of-core version of linear solver Pardiso"); #ifdef HAVE_WSMP ampl_options_list->AddAmplOption("wsmp_num_threads", "wsmp_num_threads", AmplOptionsList::Integer_Option, "Number of threads to be used in WSMP"); ampl_options_list->AddAmplOption("wsmp_pivtol", "wsmp_pivtol", AmplOptionsList::Number_Option, "Pivot tolerance for the linear solver WSMP"); ampl_options_list->AddAmplOption("wsmp_pivtolmax", "wsmp_pivtolmax", AmplOptionsList::Number_Option, "Maximum pivot tolerance for the linear solver WSMP"); ampl_options_list->AddAmplOption("wsmp_scaling", "wsmp_scaling", AmplOptionsList::Integer_Option, "Determines how the matrix is scaled by WSMP"); #endif // AMPL's wantsol option ampl_options_list->AddAmplOption("wantsol", "", AmplOptionsList::WS_Option, WS_desc_ASL+5); // special AMPL option to exit when there is in error in the // function evaluation ampl_options_list->AddAmplOption("halt_on_ampl_error", "", AmplOptionsList::HaltOnError_Option, "Exit with message on evaluation error"); int n_options = ampl_options_list->NumberOfAmplOptions(); keyword* keywds = (keyword*) ampl_options_list->Keywords(options, jnlst_, (void**)&nerror_); static const char sname_default[] = "ipopt"; static const char bsname_default[] = "Ipopt " IPOPT_VERSION; static const char opname_default[] = "ipopt_options"; const char* sname; const char* bsname; const char* opname; if (ampl_option_string) { opname = ampl_option_string; } else { opname = opname_default; } if (ampl_invokation_string) { sname = ampl_invokation_string; } else { sname = sname_default; } if (ampl_banner_string) { bsname = ampl_banner_string; } else { bsname = bsname_default; } DBG_ASSERT(!Oinfo_ptr_); Option_Info* Oinfo = new Option_Info; Oinfo->sname = new char[strlen(sname)+1]; strcpy(Oinfo->sname, sname); Oinfo->bsname = new char[strlen(bsname)+1]; strcpy(Oinfo->bsname, bsname); Oinfo->opname = new char[strlen(opname)+1]; strcpy(Oinfo->opname, opname); Oinfo->keywds = keywds; Oinfo->n_keywds = n_options; // Set the default for the remaining entries Oinfo->flags = 0; Oinfo->version = NULL; Oinfo->usage = NULL; Oinfo->kwf = NULL; Oinfo->feq = NULL; Oinfo->options = NULL; Oinfo->n_options = 0; Oinfo->driver_date = 0; Oinfo->wantsol = 0; Oinfo->nS = 0; Oinfo->S = NULL; Oinfo->uinfo = NULL; Oinfo->asl = NULL; Oinfo->eqsign = NULL; Oinfo->n_badopts = 0; Oinfo->option_echo = 0; Oinfo->nnl = 0; Oinfo_ptr_ = Oinfo; char* stub = getstops(argv, Oinfo); return stub; } bool AmplTNLP::nerror_ok(void* nerror) { DBG_START_METH("AmplTNLP::nerror_ok", dbg_verbosity); if (nerror == NULL || *((fint*)nerror) == 0) { return true; } jnlst_->Printf(J_ERROR, J_MAIN, "Error in an AMPL evaluation. Run with \"halt_on_ampl_error yes\" to see details.\n"); DBG_PRINT((1, "nerror = %d\n", *((fint*)nerror))); return false; } AmplSuffixHandler::AmplSuffixHandler() : asl_(NULL), suftab_ (NULL) {} AmplSuffixHandler::~AmplSuffixHandler() { if (suftab_) { Index n = (Index)suffix_ids_.size(); for (Index i=0; iu.i; } std::vector AmplSuffixHandler::GetIntegerSuffixValues(Index n, std::string suffix_string, Suffix_Source source) const { std::vector ret; const Index* ptr = GetIntegerSuffixValues(suffix_string, source); if (ptr) { ret.reserve(n); for (Index i=0; iu.r; } std::vector AmplSuffixHandler::GetNumberSuffixValues(Index n, std::string suffix_string, Suffix_Source source) const { std::vector ret; const Number* ptr = GetNumberSuffixValues(suffix_string, source); if (ptr) { ret.reserve(n); for (Index i=0; i& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space)=0; /** Method for obtaining the bounds information */ virtual bool GetBoundsInformation(const Matrix& Px_L, Vector& x_L, const Matrix& Px_U, Vector& x_U, const Matrix& Pd_L, Vector& d_L, const Matrix& Pd_U, Vector& d_U)=0; /** Method for obtaining the starting point for all the * iterates. ToDo it might not make sense to ask for initial * values for v_L and v_U? */ virtual bool GetStartingPoint( SmartPtr x, bool need_x, SmartPtr y_c, bool need_y_c, SmartPtr y_d, bool need_y_d, SmartPtr z_L, bool need_z_L, SmartPtr z_U, bool need_z_U )=0; /** Method for obtaining an entire iterate as a warmstart point. * The incoming IteratesVector has to be filled. The default * dummy implementation returns false. */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate) { return false; } //@} /** @name NLP evaluation routines (overload * in derived classes. */ //@{ virtual bool Eval_f(const Vector& x, Number& f) = 0; virtual bool Eval_grad_f(const Vector& x, Vector& g_f) = 0; virtual bool Eval_c(const Vector& x, Vector& c) = 0; virtual bool Eval_jac_c(const Vector& x, Matrix& jac_c) = 0; virtual bool Eval_d(const Vector& x, Vector& d) = 0; virtual bool Eval_jac_d(const Vector& x, Matrix& jac_d) = 0; virtual bool Eval_h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, SymMatrix& h) = 0; //@} /** @name NLP solution routines. Have default dummy * implementations that can be overloaded. */ //@{ /** This method is called at the very end of the optimization. It * provides the final iterate to the user, so that it can be * stored as the solution. The status flag indicates the outcome * of the optimization, where SolverReturn is defined in * IpAlgTypes.hpp. */ virtual void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) {} /** This method is called once per iteration, after the iteration * summary output has been printed. It provides the current * information to the user to do with it anything she wants. It * also allows the user to ask for a premature termination of the * optimization by returning false, in which case Ipopt will * terminate with a corresponding return status. The basic * information provided in the argument list has the quantities * values printed in the iteration summary line. If more * information is required, a user can obtain it from the IpData * and IpCalculatedQuantities objects. However, note that the * provided quantities are all for the problem that Ipopt sees, * i.e., the quantities might be scaled, fixed variables might be * sorted out, etc. The status indicates things like whether the * algorithm is in the restoration phase... In the restoration * phase, the dual variables are probably not not changing. */ virtual bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { return true; } //@} /** Routines to get the scaling parameters. These do not need to * be overloaded unless the options are set for User scaling */ //@{ virtual void GetScalingParameters( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, Number& obj_scaling, SmartPtr& x_scaling, SmartPtr& c_scaling, SmartPtr& d_scaling) const { THROW_EXCEPTION(USER_SCALING_NOT_IMPLEMENTED, "You have set options for user provided scaling, but have" " not implemented GetScalingParameters in the NLP interface"); } //@} /** Method for obtaining the subspace in which the limited-memory * Hessian approximation should be done. This is only called if * the limited-memory Hessian approximation is chosen. Since the * Hessian is zero in the space of all variables that appear in * the problem functions only linearly, this allows the user to * provide a VectorSpace for all nonlinear variables, and an * ExpansionMatrix to lift from this VectorSpace to the * VectorSpace of the primal variables x. If the returned values * are NULL, it is assumed that the Hessian is to be approximated * in the space of all x variables. The default instantiation of * this method returns NULL, and a user only has to overwrite * this method if the approximation is to be done only in a * subspace. */ virtual void GetQuasiNewtonApproximationSpaces(SmartPtr& approx_space, SmartPtr& P_approx) { approx_space = NULL; P_approx = NULL; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ NLP(const NLP&); /** Overloaded Equals Operator */ void operator=(const NLP&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpStdCInterface.h0000644000076600007660000003130211717070522020437 0ustar coincoin/************************************************************************* Copyright (C) 2004, 2010 International Business Machines and others. All Rights Reserved. This code is published under the Eclipse Public License. $Id: IpStdCInterface.h 2082 2012-02-16 03:00:34Z andreasw $ Authors: Carl Laird, Andreas Waechter IBM 2004-09-02 *************************************************************************/ #ifndef __IPSTDCINTERFACE_H__ #define __IPSTDCINTERFACE_H__ #ifndef IPOPT_EXPORT #ifdef _MSC_VER #ifdef IPOPT_DLL #define IPOPT_EXPORT(type) __declspec(dllexport) type __cdecl #else #define IPOPT_EXPORT(type) type __cdecl #endif #else #define IPOPT_EXPORT(type) type #endif #endif #ifdef __cplusplus extern "C" { #endif /** Type for all number. We need to make sure that this is identical with what is defined in Common/IpTypes.hpp */ typedef double Number; /** Type for all incides. We need to make sure that this is identical with what is defined in Common/IpTypes.hpp */ typedef int Index; /** Type for all integers. We need to make sure that this is identical with what is defined in Common/IpTypes.hpp */ typedef int Int; /* This includes the SolverReturn enum type */ #include "IpReturnCodes.h" /** Structure collecting all information about the problem * definition and solve statistics etc. This is defined in the * source file. */ struct IpoptProblemInfo; /** Pointer to a Ipopt Problem. */ typedef struct IpoptProblemInfo* IpoptProblem; /** define a boolean type for C */ typedef int Bool; #ifndef TRUE # define TRUE (1) #endif #ifndef FALSE # define FALSE (0) #endif /** A pointer for anything that is to be passed between the called * and individual callback function */ typedef void * UserDataPtr; /** Type defining the callback function for evaluating the value of * the objective function. Return value should be set to false if * there was a problem doing the evaluation. */ typedef Bool (*Eval_F_CB)(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data); /** Type defining the callback function for evaluating the gradient of * the objective function. Return value should be set to false if * there was a problem doing the evaluation. */ typedef Bool (*Eval_Grad_F_CB)(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data); /** Type defining the callback function for evaluating the value of * the constraint functions. Return value should be set to false if * there was a problem doing the evaluation. */ typedef Bool (*Eval_G_CB)(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data); /** Type defining the callback function for evaluating the Jacobian of * the constrant functions. Return value should be set to false if * there was a problem doing the evaluation. */ typedef Bool (*Eval_Jac_G_CB)(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); /** Type defining the callback function for evaluating the Hessian of * the Lagrangian function. Return value should be set to false if * there was a problem doing the evaluation. */ typedef Bool (*Eval_H_CB)(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); /** Type defining the callback function for giving intermediate * execution control to the user. If set, it is called once per * iteration, providing the user with some information on the state * of the optimization. This can be used to print some * user-defined output. It also gives the user a way to terminate * the optimization prematurely. If this method returns false, * Ipopt will terminate the optimization. */ typedef Bool (*Intermediate_CB)(Index alg_mod, /* 0 is regular, 1 is resto */ Index iter_count, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, UserDataPtr user_data); /** Function for creating a new Ipopt Problem object. This function * returns an object that can be passed to the IpoptSolve call. It * contains the basic definition of the optimization problem, such * as number of variables and constraints, bounds on variables and * constraints, information about the derivatives, and the callback * function for the computation of the optimization problem * functions and derivatives. During this call, the options file * PARAMS.DAT is read as well. * * If NULL is returned, there was a problem with one of the inputs * or reading the options file. */ IPOPT_EXPORT(IpoptProblem) CreateIpoptProblem( Index n /** Number of optimization variables */ , Number* x_L /** Lower bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity. */ , Number* x_U /** Upper bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity. */ , Index m /** Number of constraints. */ , Number* g_L /** Lower bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity. */ , Number* g_U /** Upper bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity. */ , Index nele_jac /** Number of non-zero elements in constraint Jacobian. */ , Index nele_hess /** Number of non-zero elements in Hessian of Lagrangian. */ , Index index_style /** indexing style for iRow & jCol, 0 for C style, 1 for Fortran style */ , Eval_F_CB eval_f /** Callback function for evaluating objective function */ , Eval_G_CB eval_g /** Callback function for evaluating constraint functions */ , Eval_Grad_F_CB eval_grad_f /** Callback function for evaluating gradient of objective function */ , Eval_Jac_G_CB eval_jac_g /** Callback function for evaluating Jacobian of constraint functions */ , Eval_H_CB eval_h /** Callback function for evaluating Hessian of Lagrangian function */ ); /** Method for freeing a previously created IpoptProblem. After freeing an IpoptProblem, it cannot be used anymore. */ IPOPT_EXPORT(void) FreeIpoptProblem(IpoptProblem ipopt_problem); /** Function for adding a string option. Returns FALSE the option * could not be set (e.g., if keyword is unknown) */ IPOPT_EXPORT(Bool) AddIpoptStrOption(IpoptProblem ipopt_problem, char* keyword, char* val); /** Function for adding a Number option. Returns FALSE the option * could not be set (e.g., if keyword is unknown) */ IPOPT_EXPORT(Bool) AddIpoptNumOption(IpoptProblem ipopt_problem, char* keyword, Number val); /** Function for adding an Int option. Returns FALSE the option * could not be set (e.g., if keyword is unknown) */ IPOPT_EXPORT(Bool) AddIpoptIntOption(IpoptProblem ipopt_problem, char* keyword, Int val); /** Function for opening an output file for a given name with given * printlevel. Returns false, if there was a problem opening the * file. */ IPOPT_EXPORT(Bool) OpenIpoptOutputFile(IpoptProblem ipopt_problem, char* file_name, Int print_level); /** Optional function for setting scaling parameter for the NLP. * This corresponds to the get_scaling_parameters method in TNLP. * If the pointers x_scaling or g_scaling are NULL, then no scaling * for x resp. g is done. */ IPOPT_EXPORT(Bool) SetIpoptProblemScaling(IpoptProblem ipopt_problem, Number obj_scaling, Number* x_scaling, Number* g_scaling); /** Setting a callback function for the "intermediate callback" * method in the TNLP. This gives control back to the user once * per iteration. If set, it provides the user with some * information on the state of the optimization. This can be used * to print some user-defined output. It also gives the user a way * to terminate the optimization prematurely. If the callback * method returns false, Ipopt will terminate the optimization. * Calling this set method to set the CB pointer to NULL disables * the intermediate callback functionality. */ IPOPT_EXPORT(Bool) SetIntermediateCallback(IpoptProblem ipopt_problem, Intermediate_CB intermediate_cb); /** Function calling the Ipopt optimization algorithm for a problem previously defined with CreateIpoptProblem. The return specified outcome of the optimization procedure (e.g., success, failure etc). */ IPOPT_EXPORT(enum ApplicationReturnStatus) IpoptSolve( IpoptProblem ipopt_problem /** Problem that is to be optimized. Ipopt will use the options previously specified with AddIpoptOption (etc) for this problem. */ , Number* x /** Input: Starting point Output: Optimal solution */ , Number* g /** Values of constraint at final point (output only - ignored if set to NULL) */ , Number* obj_val /** Final value of objective function (output only - ignored if set to NULL) */ , Number* mult_g /** Input: Initial values for the constraint multipliers (only if warm start option is chosen) Output: Final multipliers for constraints (ignored if set to NULL) */ , Number* mult_x_L /** Input: Initial values for the multipliers for lower variable bounds (only if warm start option is chosen) Output: Final multipliers for lower variable bounds (ignored if set to NULL) */ , Number* mult_x_U /** Input: Initial values for the multipliers for upper variable bounds (only if warm start option is chosen) Output: Final multipliers for upper variable bounds (ignored if set to NULL) */ , UserDataPtr user_data /** Pointer to user data. This will be passed unmodified to the callback functions. */ ); /** void IpoptStatisticsCounts; void IpoptStatisticsInfeasibilities; */ #ifdef __cplusplus } /* extern "C" { */ #endif #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpReturnCodes.inc0000644000076600007660000000403411504216567020547 0ustar coincoinC Copyright (C) 2005, 2009 International Business Machines and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C C $Id: IpReturnCodes.inc 1861 2010-12-21 21:34:47Z andreasw $ C C Author: Andreas Waechter IBM 2005-08-11 C INTEGER IP_SOLVE_SUCCEEDED PARAMETER( IP_SOLVE_SUCCEEDED = 0 ) INTEGER IP_ACCEPTABLE_LEVEL PARAMETER( IP_ACCEPTABLE_LEVEL = 1 ) INTEGER IP_INFEASIBLE_PROBLEM PARAMETER( IP_INFEASIBLE_PROBLEM = 2 ) INTEGER IP_SEARCH_DIRECTION_TOO_SMALL PARAMETER( IP_SEARCH_DIRECTION_TOO_SMALL = 3 ) INTEGER IP_DIVERGING_ITERATES PARAMETER( IP_DIVERGING_ITERATES = 4 ) INTEGER IP_USER_REQUESTED_STOP PARAMETER( IP_USER_REQUESTED_STOP = 5 ) INTEGER IP_FEASIBLE_POINT_FOUND PARAMETER( IP_FEASIBLE_POINT_FOUND = 6 ) INTEGER IP_ITERATION_EXCEEDED PARAMETER( IP_ITERATION_EXCEEDED = -1 ) INTEGER IP_RESTORATION_FAILED PARAMETER( IP_RESTORATION_FAILED = -2 ) INTEGER IP_ERROR_IN_STEP_COMPUTATION PARAMETER( IP_ERROR_IN_STEP_COMPUTATION = -3 ) INTEGER IP_CPUTIME_EXCEEDED PARAMETER( IP_CPUTIME_EXCEEDED = -4 ) INTEGER IP_NOT_ENOUGH_DEGREES_OF_FRE PARAMETER( IP_NOT_ENOUGH_DEGREES_OF_FRE = -10 ) INTEGER IP_INVALID_PROBLEM_DEFINITION PARAMETER( IP_INVALID_PROBLEM_DEFINITION = -11) INTEGER IP_INVALID_OPTION PARAMETER( IP_INVALID_OPTION = -12 ) INTEGER IP_INVALID_NUMBER_DETECTED PARAMETER( IP_INVALID_NUMBER_DETECTED = -13 ) INTEGER IP_UNRECOVERABLE_EXCEPTION PARAMETER( IP_UNRECOVERABLE_EXCEPTION = -100 ) INTEGER IP_NON_IPOPT_EXCEPTION PARAMETER( IP_NON_IPOPT_EXCEPTION = -101 ) INTEGER IP_INSUFFICIENT_MEMORY PARAMETER( IP_INSUFFICIENT_MEMORY = -102 ) INTEGER IP_INTERNAL_ERROR PARAMETER( IP_INTERNAL_ERROR = -199 ) INTEGER IP_REGULAR_MODE PARAMETER( IP_REGULAR_MODE = 0 ) INTEGER IP_RESTORATION_PHASE_MODE PARAMETER( IP_RESTORATION_PHASE_MODE = 1 ) Ipopt-3.11.4/Ipopt/src/Interfaces/IpStdInterfaceTNLP.cpp0000644000076600007660000003037712214316142021372 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpStdInterfaceTNLP.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-02 #include "IpStdInterfaceTNLP.hpp" #include "IpBlas.hpp" namespace Ipopt { StdInterfaceTNLP::StdInterfaceTNLP(Index n_var, const Number* x_L, const Number* x_U, Index n_con, const Number* g_L, const Number* g_U, Index nele_jac, Index nele_hess, Index index_style, const Number* start_x, const Number* start_lam, const Number* start_z_L, const Number* start_z_U, Eval_F_CB eval_f, Eval_G_CB eval_g, Eval_Grad_F_CB eval_grad_f, Eval_Jac_G_CB eval_jac_g, Eval_H_CB eval_h, Intermediate_CB intermediate_cb, Number* x_sol, Number* z_L_sol, Number* z_U_sol, Number* g_sol, Number* lam_sol, Number* obj_sol, UserDataPtr user_data, Number obj_scaling/*=1*/, const Number* x_scaling /*= NULL*/, const Number* g_scaling /*= NULL*/) : TNLP(), n_var_(n_var), n_con_(n_con), x_L_(x_L), x_U_(x_U), g_L_(g_L), g_U_(g_U), nele_jac_(nele_jac), nele_hess_(nele_hess), index_style_(index_style), start_x_(start_x), start_lam_(start_lam), start_z_L_(start_z_L), start_z_U_(start_z_U), eval_f_(eval_f), eval_g_(eval_g), eval_grad_f_(eval_grad_f), eval_jac_g_(eval_jac_g), eval_h_(eval_h), intermediate_cb_(intermediate_cb), user_data_(user_data), obj_scaling_(obj_scaling), x_scaling_(NULL), g_scaling_(NULL), non_const_x_(NULL), x_sol_(x_sol), z_L_sol_(z_L_sol), z_U_sol_(z_U_sol), g_sol_(g_sol), lambda_sol_(lam_sol), obj_sol_(obj_sol) { ASSERT_EXCEPTION(n_var_>0, INVALID_STDINTERFACE_NLP, "The number of variables must be at least 1."); ASSERT_EXCEPTION(n_con_>=0, INVALID_STDINTERFACE_NLP, "The number of constrains must be non-negative."); ASSERT_EXCEPTION(x_L_, INVALID_STDINTERFACE_NLP, "No lower bounds for variables provided."); ASSERT_EXCEPTION(x_U_, INVALID_STDINTERFACE_NLP, "No upper bounds for variables provided."); ASSERT_EXCEPTION(g_L_ || n_con_==0, INVALID_STDINTERFACE_NLP, "No lower bounds for constraints provided."); ASSERT_EXCEPTION(g_U_ || n_con_==0, INVALID_STDINTERFACE_NLP, "No upper bounds for constraints provided."); ASSERT_EXCEPTION(nele_jac_>=0, INVALID_STDINTERFACE_NLP, "Number of non-zero elements in constraint Jacobian must be non-negative."); ASSERT_EXCEPTION(nele_hess_>=0, INVALID_STDINTERFACE_NLP, "Number of non-zero elements in Hessian of Lagrangian must be non-negative."); ASSERT_EXCEPTION(index_style_ == 0 || index_style_ == 1, INVALID_STDINTERFACE_NLP, "Valid index styles are 0 (C style) or 1 (Fortran style)"); ASSERT_EXCEPTION(start_x_, INVALID_STDINTERFACE_NLP, "No initial point for the variables provided."); ASSERT_EXCEPTION(eval_f_, INVALID_STDINTERFACE_NLP, "No callback function for evaluating the value of objective function provided."); ASSERT_EXCEPTION(eval_g_, INVALID_STDINTERFACE_NLP, "No callback function for evaluating the values of constraints provided."); ASSERT_EXCEPTION(eval_grad_f_, INVALID_STDINTERFACE_NLP, "No callback function for evaluating the gradient of objective function provided."); ASSERT_EXCEPTION(eval_jac_g_, INVALID_STDINTERFACE_NLP, "No callback function for evaluating the Jacobian of the constraints provided."); ASSERT_EXCEPTION(eval_h_, INVALID_STDINTERFACE_NLP, "No callback function for evaluating the Hessian of the constraints provided."); if (x_scaling) { Number* tmp = new Number[n_var_]; for (Index i=0; i namespace Ipopt { // forward declarations class IpoptData; class IpoptCalculatedQuantities; class IteratesVector; /** Base class for all NLP's that use standard triplet matrix form * and dense vectors. This is the standard base class for all * NLP's that use the standard triplet matrix form (as for Harwell * routines) and dense vectors. The class TNLPAdapter then converts * this interface to an interface that can be used directly by * ipopt. * * This interface presents the problem form: * * min f(x) * * s.t. gL <= g(x) <= gU * * xL <= x <= xU * * In order to specify an equality constraint, set gL_i = gU_i = * rhs. The value that indicates "infinity" for the bounds * (i.e. the variable or constraint has no lower bound (-infinity) * or upper bound (+infinity)) is set through the option * nlp_lower_bound_inf and nlp_upper_bound_inf. To indicate that a * variable has no upper or lower bound, set the bound to * -ipopt_inf or +ipopt_inf respectively */ class TNLP : public ReferencedObject { public: /** Type of the constraints*/ enum LinearityType { LINEAR/** Constraint/Variable is linear.*/, NON_LINEAR/**Constraint/Varaible is non-linear.*/ }; /**@name Constructors/Destructors */ //@{ TNLP() {} /** Default destructor */ virtual ~TNLP() {} //@} DECLARE_STD_EXCEPTION(INVALID_TNLP); /**@name methods to gather information about the NLP */ //@{ /** overload this method to return the number of variables * and constraints, and the number of non-zeros in the jacobian and * the hessian. The index_style parameter lets you specify C or Fortran * style indexing for the sparse matrix iRow and jCol parameters. * C_STYLE is 0-based, and FORTRAN_STYLE is 1-based. */ enum IndexStyleEnum { C_STYLE=0, FORTRAN_STYLE=1 }; virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style)=0; typedef std::map > StringMetaDataMapType; typedef std::map > IntegerMetaDataMapType; typedef std::map > NumericMetaDataMapType; /** overload this method to return any meta data for * the variables and the constraints */ virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) { return false; } /** overload this method to return the information about the bound * on the variables and constraints. The value that indicates * that a bound does not exist is specified in the parameters * nlp_lower_bound_inf and nlp_upper_bound_inf. By default, * nlp_lower_bound_inf is -1e19 and nlp_upper_bound_inf is * 1e19. (see TNLPAdapter) */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u)=0; /** overload this method to return scaling parameters. This is * only called if the options are set to retrieve user scaling. * There, use_x_scaling (or use_g_scaling) should get set to true * only if the variables (or constraints) are to be scaled. This * method should return true only if the scaling parameters could * be provided. */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) { return false; } /** overload this method to return the variables linearity * (TNLP::LINEAR or TNLP::NON_LINEAR). The var_types * array has been allocated with length at least n. (default implementation * just return false and does not fill the array).*/ virtual bool get_variables_linearity(Index n, LinearityType* var_types) { return false; } /** overload this method to return the constraint linearity. * array has been allocated with length at least n. (default implementation * just return false and does not fill the array).*/ virtual bool get_constraints_linearity(Index m, LinearityType* const_types) { return false; } /** overload this method to return the starting point. The bool * variables indicate whether the algorithm wants you to * initialize x, z_L/z_u, and lambda, respectively. If, for some * reason, the algorithm wants you to initialize these and you * cannot, return false, which will cause Ipopt to stop. You * will have to run Ipopt with different options then. */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda)=0; /** overload this method to provide an Ipopt iterate (already in * the form Ipopt requires it internally) for a warm start. * Since this is only for expert users, a default dummy * implementation is provided and returns false. */ virtual bool get_warm_start_iterate(IteratesVector& warm_start_iterate) { return false; } /** overload this method to return the value of the objective function */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value)=0; /** overload this method to return the vector of the gradient of * the objective w.r.t. x */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f)=0; /** overload this method to return the vector of constraint values */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g)=0; /** overload this method to return the jacobian of the * constraints. The vectors iRow and jCol only need to be set * once. The first call is used to set the structure only (iRow * and jCol will be non-NULL, and values will be NULL) For * subsequent calls, iRow and jCol will be NULL. */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values)=0; /** overload this method to return the hessian of the * lagrangian. The vectors iRow and jCol only need to be set once * (during the first call). The first call is used to set the * structure only (iRow and jCol will be non-NULL, and values * will be NULL) For subsequent calls, iRow and jCol will be * NULL. This matrix is symmetric - specify the lower diagonal * only. A default implementation is provided, in case the user * wants to se quasi-Newton approximations to estimate the second * derivatives and doesn't not neet to implement this method. */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { return false; } //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq)=0; /** This method is called just before finalize_solution. With * this method, the algorithm returns any metadata collected * during its run, including the metadata provided by the user * with the above get_var_con_metadata. Each metadata can be of * type string, integer, and numeric. It can be associated to * either the variables or the constraints. The metadata that * was associated with the primal variable vector is stored in * var_..._md. The metadata associated with the constraint * multipliers is stored in con_..._md. The metadata associated * with the bound multipliers is stored in var_..._md, with the * suffixes "_z_L", and "_z_U", denoting lower and upper * bounds. */ virtual void finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md) {} /** Intermediate Callback method for the user. Providing dummy * default implementation. For details see IntermediateCallBack * in IpNLP.hpp. */ virtual bool intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { return true; } //@} /** @name Methods for quasi-Newton approximation. If the second * derivatives are approximated by Ipopt, it is better to do this * only in the space of nonlinear variables. The following * methods are call by Ipopt if the quasi-Newton approximation is * selected. If -1 is returned as number of nonlinear variables, * Ipopt assumes that all variables are nonlinear. Otherwise, it * calls get_list_of_nonlinear_variables with an array into which * the indices of the nonlinear variables should be written - the * array has the lengths num_nonlin_vars, which is identical with * the return value of get_number_of_nonlinear_variables(). It * is assumed that the indices are counted starting with 1 in the * FORTRAN_STYLE, and 0 for the C_STYLE. */ //@{ virtual Index get_number_of_nonlinear_variables() { return -1; } virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars) { return false; } //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //TNLP(); /** Copy Constructor */ TNLP(const TNLP&); /** Overloaded Equals Operator */ void operator=(const TNLP&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpStdInterfaceTNLP.hpp0000644000076600007660000002312511504216567021403 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpStdInterfaceTNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSTDINTERFACETNLP_HPP__ #define __IPSTDINTERFACETNLP_HPP__ #include "IpUtils.hpp" #include "IpTNLP.hpp" #include "IpJournalist.hpp" #include "IpException.hpp" #include "IpStdCInterface.h" #include "IpSmartPtr.hpp" namespace Ipopt { /** Declare excpetion that is thrown when invalid NLP data * is provided */ DECLARE_STD_EXCEPTION(INVALID_STDINTERFACE_NLP); /** Implementation of a TNLP for the Standard C interface. The * standard C interface is exposed to the user as a single C * function that is given problem dimension, starting points, and * pointers for functions that evaluate objective function etc. */ class StdInterfaceTNLP : public TNLP { public: /**@name Constructors/Destructors */ //@{ /** Constructor, given dimensions of problem, function pointers * for evaluation callback functions, and starting points. Note * that the constrctor does not make a copy of any of the Number * arrays, i.e. it is up to the called to keep them around. */ StdInterfaceTNLP(Index n_var, const Number* x_L, const Number* x_U, Index n_con, const Number* g_L, const Number* g_U, Index nele_jac, Index nele_hess, Index index_style, const Number* start_x, const Number* start_lam, const Number* start_z_L, const Number* start_z_U, Eval_F_CB eval_f, Eval_G_CB eval_g, Eval_Grad_F_CB eval_grad_f, Eval_Jac_G_CB eval_jac_g, Eval_H_CB eval_h, Intermediate_CB intermediate_cb, Number* x_sol, Number* z_L_sol, Number* z_U_sol, Number* g_sol, Number* lam_sol, Number* obj_sol, UserDataPtr user_data, Number obj_scaling=1, const Number* x_scaling = NULL, const Number* g_scaling = NULL); /** Default destructor */ virtual ~StdInterfaceTNLP(); //@} /**@name methods to gather information about the NLP. These methods are * overloaded from TNLP. See TNLP for their more detailed documentation. */ //@{ /** returns dimensions of the nlp. Overloaded from TNLP */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** returns bounds of the nlp. Overloaded from TNLP */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** returns scaling parameters (if nlp_scaling_method is selected * as user-scaling). Overloaded from TNLP */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** provides a starting point for the nlp variables. Overloaded from TNLP */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** evaluates the objective value for the nlp. Overloaded from TNLP */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** evaluates the gradient of the objective for the * nlp. Overloaded from TNLP */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** evaluates the constraint residuals for the nlp. Overloaded from TNLP */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** specifies the jacobian structure (if values is NULL) and * evaluates the jacobian values (if values is not NULL) for the * nlp. Overloaded from TNLP */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** specifies the structure of the hessian of the lagrangian (if values is NULL) and * evaluates the values (if values is not NULL). Overloaded from TNLP */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); /** Intermediate Callback method for the user. Overloaded from TNLP */ virtual bool intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} /** @name Solution Methods */ //@{ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /** Journlist */ SmartPtr jnlst_; /** @name Information about the problem */ //@{ /** Number of variables */ const Index n_var_; /** Number of constraints */ const Index n_con_; /** Pointer to Number array containing lower bounds for variables */ const Number* x_L_; /** Pointer to Number array containing upper bounds for variables */ const Number* x_U_; /** Pointer to Number array containing lower bounds for constraints */ const Number* g_L_; /** Pointer to Number array containing upper bounds for constraints */ const Number* g_U_; /** Number of non-zero elements in the constraint Jacobian */ const Index nele_jac_; /** Number of non-zero elements in the Hessian */ const Index nele_hess_; /** Starting value of the iRow and jCol parameters for matrices */ const Index index_style_; /** Pointer to Number array containing starting point for variables */ const Number* start_x_; /** Poitner to Number array containing starting values for * constraint multipliers */ const Number* start_lam_; /** Pointer to Number array containing starting values for lower * bound multipliers */ const Number* start_z_L_; /** Pointer to Number array containing starting values for upper * bound multipliers */ const Number* start_z_U_; /** Pointer to callback function evaluating value of objective function */ Eval_F_CB eval_f_; /** Pointer to callback function evaluating value of constraints */ Eval_G_CB eval_g_; /** Pointer to callback function evaluating gradient of objective * function */ Eval_Grad_F_CB eval_grad_f_; /** Pointer to callback function evaluating Jacobian of constraints */ Eval_Jac_G_CB eval_jac_g_; /** Pointer to callback function evaluating Hessian of Lagrangian */ Eval_H_CB eval_h_; /** Pointer to intermediate callback function giving control to user */ Intermediate_CB intermediate_cb_; /** Pointer to user data */ UserDataPtr user_data_; /** Objective scaling factor */ Number obj_scaling_; /** Scaling factors for variables (if not NULL) */ const Number* x_scaling_; /** Scaling factors for constraints (if not NULL) */ const Number* g_scaling_; //@} /** A non-const copy of x - this is kept up-to-date in apply_new_x */ Number* non_const_x_; /** Pointers to the user provided vectors for solution */ Number* x_sol_; Number* z_L_sol_; Number* z_U_sol_; Number* g_sol_; Number* lambda_sol_; Number* obj_sol_; /** Internal function to update the internal and ampl state if the * x value changes */ void apply_new_x(bool new_x, Index n, const Number* x); /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ StdInterfaceTNLP(); /** Copy Constructor */ StdInterfaceTNLP(const StdInterfaceTNLP&); /** Overloaded Equals Operator */ void operator=(const StdInterfaceTNLP&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpSolveStatistics.cpp0000644000076600007660000000663511504216567021477 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSolveStatistics.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-08-15 #include "IpSolveStatistics.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" namespace Ipopt { SolveStatistics::SolveStatistics( const SmartPtr& ip_nlp, const SmartPtr& ip_data, const SmartPtr& ip_cq) : num_iters_(ip_data->iter_count()), total_cpu_time_(ip_data->TimingStats().OverallAlgorithm().TotalCpuTime()), total_sys_time_(ip_data->TimingStats().OverallAlgorithm().TotalSysTime()), total_wallclock_time_(ip_data->TimingStats().OverallAlgorithm().TotalWallclockTime()), num_obj_evals_(ip_nlp->f_evals()), num_constr_evals_(Max(ip_nlp->c_evals(), ip_nlp->d_evals())), num_obj_grad_evals_(ip_nlp->grad_f_evals()), num_constr_jac_evals_(Max(ip_nlp->jac_c_evals(),ip_nlp->jac_d_evals())), num_hess_evals_(ip_nlp->h_evals()), scaled_obj_val_(ip_cq->curr_f()), obj_val_(ip_cq->unscaled_curr_f()), scaled_dual_inf_(ip_cq->curr_dual_infeasibility(NORM_MAX)), dual_inf_(ip_cq->unscaled_curr_dual_infeasibility(NORM_MAX)), scaled_constr_viol_(ip_cq->curr_nlp_constraint_violation(NORM_MAX)), constr_viol_(ip_cq->unscaled_curr_nlp_constraint_violation(NORM_MAX)), scaled_compl_(ip_cq->curr_complementarity(0., NORM_MAX)), compl_(ip_cq->unscaled_curr_complementarity(0., NORM_MAX)), scaled_kkt_error_(ip_cq->curr_nlp_error()), kkt_error_(ip_cq->unscaled_curr_nlp_error()) {} Index SolveStatistics::IterationCount() const { return num_iters_; } Number SolveStatistics::TotalCpuTime() const { return total_cpu_time_; } Number SolveStatistics::TotalSysTime() const { return total_sys_time_; } Number SolveStatistics::TotalWallclockTime() const { return total_wallclock_time_; } void SolveStatistics::NumberOfEvaluations( Index& num_obj_evals, Index& num_constr_evals, Index& num_obj_grad_evals, Index& num_constr_jac_evals, Index& num_hess_evals) const { num_obj_evals = num_obj_evals_; num_constr_evals = num_constr_evals_; num_obj_grad_evals = num_obj_grad_evals_; num_constr_jac_evals = num_constr_jac_evals_; num_hess_evals = num_hess_evals_; } void SolveStatistics::Infeasibilities(Number& dual_inf, Number& constr_viol, Number& complementarity, Number& kkt_error) const { dual_inf = dual_inf_; constr_viol = constr_viol_; complementarity = compl_; kkt_error = kkt_error_; } void SolveStatistics::ScaledInfeasibilities(Number& scaled_dual_inf, Number& scaled_constr_viol, Number& scaled_complementarity, Number& scaled_kkt_error) const { scaled_dual_inf = scaled_dual_inf_; scaled_constr_viol = scaled_constr_viol_; scaled_complementarity = scaled_compl_; scaled_kkt_error = scaled_kkt_error_; } Number SolveStatistics::FinalObjective() const { return obj_val_; } Number SolveStatistics::FinalScaledObjective() const { return scaled_obj_val_; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Interfaces/IpIpoptApplication.cpp0000644000076600007660000013314712164277047021615 0ustar coincoin// Copyright (C) 2004, 2012 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptApplication.cpp 2346 2013-07-01 13:03:35Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-02 #include "IpoptConfig.h" #include "IpIpoptApplication.hpp" #include "IpTNLPAdapter.hpp" #include "IpIpoptAlg.hpp" #include "IpOrigIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpAlgBuilder.hpp" #include "IpSolveStatistics.hpp" #include "IpLinearSolversRegOp.hpp" #include "IpInterfacesRegOp.hpp" #include "IpAlgorithmRegOp.hpp" #include "IpCGPenaltyRegOp.hpp" #include "IpNLPBoundsRemover.hpp" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #ifdef BUILD_INEXACT # include "IpInexactRegOp.hpp" # include "IpInexactAlgBuilder.hpp" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include // Factory to facilitate creating IpoptApplication objects from within a DLL Ipopt::IpoptApplication * IpoptApplicationFactory() { return new Ipopt::IpoptApplication; } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif IpoptApplication::IpoptApplication(bool create_console_out /* = true */, bool create_empty /* = false */) : read_params_dat_(true), inexact_algorithm_(false), replace_bounds_(false) { options_ = new OptionsList(); if (create_empty) return; jnlst_ = new Journalist(); try { # if COIN_IPOPT_VERBOSITY > 0 DebugJournalistWrapper::SetJournalist(GetRawPtr(jnlst_)); SmartPtr debug_jrnl = jnlst_->AddFileJournal("Debug", "debug.out", J_ITERSUMMARY); debug_jrnl->SetPrintLevel(J_DBG, J_ALL); # endif DBG_START_METH("IpoptApplication::IpoptApplication()", dbg_verbosity); if (create_console_out) { SmartPtr stdout_jrnl = jnlst_->AddFileJournal("console", "stdout", J_ITERSUMMARY); stdout_jrnl->SetPrintLevel(J_DBG, J_NONE); } // Register the valid options reg_options_ = new RegisteredOptions(); RegisterAllIpoptOptions(reg_options_); options_->SetJournalist(jnlst_); options_->SetRegisteredOptions(reg_options_); } catch (IpoptException& exc) { exc.ReportException(*jnlst_); THROW_EXCEPTION(IPOPT_APPLICATION_ERROR, "Caught unknown Ipopt exception"); } catch (std::bad_alloc&) { jnlst_->Printf(J_ERROR, J_MAIN, "\nEXIT: Not enough memory.\n"); THROW_EXCEPTION(IPOPT_APPLICATION_ERROR, "Not enough memory"); } catch (...) { IpoptException exc("Unknown Exception caught in ipopt", "Unknown File", -1); exc.ReportException(*jnlst_); THROW_EXCEPTION(IPOPT_APPLICATION_ERROR, "Caught unknown exception"); } } IpoptApplication::IpoptApplication(SmartPtr reg_options, SmartPtr options, SmartPtr jnlst) : read_params_dat_(true), jnlst_(jnlst), reg_options_(reg_options), options_(options), inexact_algorithm_(false), replace_bounds_(false) {} SmartPtr IpoptApplication::clone() { SmartPtr retval = new IpoptApplication(false, true); retval->jnlst_ = Jnlst(); retval->reg_options_ = RegOptions(); *retval->options_ = *Options(); retval->read_params_dat_ = read_params_dat_; retval->inexact_algorithm_ = inexact_algorithm_; retval->replace_bounds_ = replace_bounds_; return retval; } ApplicationReturnStatus IpoptApplication::Initialize(std::istream& is) { try { // Get the options if (is.good()) { // stream exists, read the content options_->ReadFromStream(*jnlst_, is); } bool no_output; options_->GetBoolValue("suppress_all_output", no_output, ""); if (no_output) { jnlst_->DeleteAllJournals(); } else { Index ivalue; options_->GetIntegerValue("print_level", ivalue, ""); EJournalLevel print_level = (EJournalLevel)ivalue; SmartPtr stdout_jrnl = jnlst_->GetJournal("console"); if (IsValid(stdout_jrnl)) { // Set printlevel for stdout stdout_jrnl->SetAllPrintLevels(print_level); stdout_jrnl->SetPrintLevel(J_DBG, J_NONE); } bool option_set; #if COIN_IPOPT_VERBOSITY > 0 // Set printlevel for debug option_set = options_->GetIntegerValue("debug_print_level", ivalue, ""); EJournalLevel debug_print_level; if (option_set) { debug_print_level = (EJournalLevel)ivalue; } else { debug_print_level = print_level; } SmartPtr debug_jrnl = jnlst_->GetJournal("Debug"); if (IsNull(debug_jrnl)) { debug_jrnl = jnlst_->AddFileJournal("Debug", "debug.out", J_ITERSUMMARY); } debug_jrnl->SetAllPrintLevels(debug_print_level); debug_jrnl->SetPrintLevel(J_DBG, J_ALL); #endif // Open an output file if required std::string output_filename; options_->GetStringValue("output_file", output_filename, ""); if (output_filename != "") { EJournalLevel file_print_level; option_set = options_->GetIntegerValue("file_print_level", ivalue, ""); if (option_set) { file_print_level = (EJournalLevel)ivalue; } else { file_print_level = print_level; } bool openend = OpenOutputFile(output_filename, file_print_level); if (!openend) { jnlst_->Printf(J_ERROR, J_INITIALIZATION, "Error opening output file \"%s\"\n", output_filename.c_str()); return Invalid_Option; } } } // output a description of all the options bool print_options_documentation; options_->GetBoolValue("print_options_documentation", print_options_documentation, ""); if (print_options_documentation) { bool latex; options_->GetBoolValue("print_options_latex_mode", latex, ""); if (latex) { std::list options_to_print; options_to_print.push_back("#Output"); options_to_print.push_back("print_level"); options_to_print.push_back("print_user_options"); options_to_print.push_back("print_options_documentation"); options_to_print.push_back("print_frequency_iter"); options_to_print.push_back("print_frequency_time"); options_to_print.push_back("output_file"); options_to_print.push_back("file_print_level"); options_to_print.push_back("option_file_name"); options_to_print.push_back("print_info_string"); options_to_print.push_back("inf_pr_output"); options_to_print.push_back("print_timing_statistics"); options_to_print.push_back("#Termination"); options_to_print.push_back("tol"); options_to_print.push_back("max_iter"); options_to_print.push_back("max_cpu_time"); options_to_print.push_back("dual_inf_tol"); options_to_print.push_back("constr_viol_tol"); options_to_print.push_back("compl_inf_tol"); options_to_print.push_back("acceptable_tol"); options_to_print.push_back("acceptable_iter"); options_to_print.push_back("acceptable_constr_viol_tol"); options_to_print.push_back("acceptable_dual_inf_tol"); options_to_print.push_back("acceptable_compl_inf_tol"); options_to_print.push_back("acceptable_obj_change_tol"); options_to_print.push_back("diverging_iterates_tol"); options_to_print.push_back("#NLP Scaling"); options_to_print.push_back("obj_scaling_factor"); options_to_print.push_back("nlp_scaling_method"); options_to_print.push_back("nlp_scaling_max_gradient"); options_to_print.push_back("nlp_scaling_min_value"); options_to_print.push_back("#NLP"); options_to_print.push_back("bound_relax_factor"); options_to_print.push_back("honor_original_bounds"); options_to_print.push_back("check_derivatives_for_naninf"); options_to_print.push_back("nlp_lower_bound_inf"); options_to_print.push_back("nlp_upper_bound_inf"); options_to_print.push_back("fixed_variable_treatment"); options_to_print.push_back("jac_c_constant"); options_to_print.push_back("jac_d_constant"); options_to_print.push_back("hessian_constant"); options_to_print.push_back("#Initialization"); options_to_print.push_back("bound_frac"); options_to_print.push_back("bound_push"); options_to_print.push_back("slack_bound_frac"); options_to_print.push_back("slack_bound_push"); options_to_print.push_back("bound_mult_init_val"); options_to_print.push_back("constr_mult_init_max"); options_to_print.push_back("bound_mult_init_method"); options_to_print.push_back("#Barrier Parameter"); options_to_print.push_back("mehrotra_algorithm"); options_to_print.push_back("mu_strategy"); options_to_print.push_back("mu_oracle"); options_to_print.push_back("quality_function_max_section_steps"); options_to_print.push_back("fixed_mu_oracle"); options_to_print.push_back("adaptive_mu_globalization"); options_to_print.push_back("mu_init"); options_to_print.push_back("mu_max_fact"); options_to_print.push_back("mu_max"); options_to_print.push_back("mu_min"); options_to_print.push_back("mu_target"); options_to_print.push_back("barrier_tol_factor"); options_to_print.push_back("mu_linear_decrease_factor"); options_to_print.push_back("mu_superlinear_decrease_power"); options_to_print.push_back("#Multiplier Updates"); options_to_print.push_back("alpha_for_y"); options_to_print.push_back("alpha_for_y_tol"); options_to_print.push_back("recalc_y"); options_to_print.push_back("recalc_y_feas_tol"); options_to_print.push_back("#Line Search"); options_to_print.push_back("max_soc"); options_to_print.push_back("watchdog_shortened_iter_trigger"); options_to_print.push_back("watchdog_trial_iter_max"); options_to_print.push_back("accept_every_trial_step"); options_to_print.push_back("corrector_type"); options_to_print.push_back("#Warm Start"); options_to_print.push_back("warm_start_init_point"); options_to_print.push_back("warm_start_bound_push"); options_to_print.push_back("warm_start_bound_frac"); options_to_print.push_back("warm_start_slack_bound_frac"); options_to_print.push_back("warm_start_slack_bound_push"); options_to_print.push_back("warm_start_mult_bound_push"); options_to_print.push_back("warm_start_mult_init_max"); options_to_print.push_back("#Restoration Phase"); options_to_print.push_back("expect_infeasible_problem"); options_to_print.push_back("expect_infeasible_problem_ctol"); options_to_print.push_back("expect_infeasible_problem_ytol"); options_to_print.push_back("start_with_resto"); options_to_print.push_back("soft_resto_pderror_reduction_factor"); options_to_print.push_back("required_infeasibility_reduction"); options_to_print.push_back("bound_mult_reset_threshold"); options_to_print.push_back("constr_mult_reset_threshold"); options_to_print.push_back("evaluate_orig_obj_at_resto_trial"); options_to_print.push_back("#Linear Solver"); options_to_print.push_back("linear_solver"); options_to_print.push_back("linear_system_scaling"); options_to_print.push_back("linear_scaling_on_demand"); options_to_print.push_back("max_refinement_steps"); options_to_print.push_back("min_refinement_steps"); options_to_print.push_back("#Hessian Perturbation"); options_to_print.push_back("max_hessian_perturbation"); options_to_print.push_back("min_hessian_perturbation"); options_to_print.push_back("first_hessian_perturbation"); options_to_print.push_back("perturb_inc_fact_first"); options_to_print.push_back("perturb_inc_fact"); options_to_print.push_back("perturb_dec_fact"); options_to_print.push_back("jacobian_regularization_value"); options_to_print.push_back("#Quasi-Newton"); options_to_print.push_back("hessian_approximation"); options_to_print.push_back("limited_memory_update_type"); options_to_print.push_back("limited_memory_max_history"); options_to_print.push_back("limited_memory_max_skipping"); options_to_print.push_back("limited_memory_initialization"); options_to_print.push_back("limited_memory_init_val"); options_to_print.push_back("limited_memory_init_val_max"); options_to_print.push_back("limited_memory_init_val_min"); options_to_print.push_back("limited_memory_special_for_resto"); options_to_print.push_back("#Derivative Test"); options_to_print.push_back("derivative_test"); options_to_print.push_back("derivative_test_perturbation"); options_to_print.push_back("derivative_test_tol"); options_to_print.push_back("derivative_test_print_all"); options_to_print.push_back("derivative_test_first_index"); options_to_print.push_back("point_perturbation_radius"); // Special linear solver #if defined(COINHSL_HAS_MA27) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#MA27 Linear Solver"); options_to_print.push_back("ma27_pivtol"); options_to_print.push_back("ma27_pivtolmax"); options_to_print.push_back("ma27_liw_init_factor"); options_to_print.push_back("ma27_la_init_factor"); options_to_print.push_back("ma27_meminc_factor"); #endif #if defined(COINHSL_HAS_MA57) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#MA57 Linear Solver"); options_to_print.push_back("ma57_pivtol"); options_to_print.push_back("ma57_pivtolmax"); options_to_print.push_back("ma57_pre_alloc"); options_to_print.push_back("ma57_pivot_order"); options_to_print.push_back("ma57_automatic_scaling"); options_to_print.push_back("ma57_block_size"); options_to_print.push_back("ma57_node_amalgamation"); options_to_print.push_back("ma57_small_pivot_flag"); #endif #if defined(COINHSL_HAS_MA77) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#MA77 Linear Solver"); options_to_print.push_back("ma77_print_level"); options_to_print.push_back("ma77_buffer_lpage"); options_to_print.push_back("ma77_buffer_npage"); options_to_print.push_back("ma77_file_size"); options_to_print.push_back("ma77_maxstore"); options_to_print.push_back("ma77_nemin"); #if defined(COINHSL_HSL2013) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("ma77_order"); #endif options_to_print.push_back("ma77_small"); options_to_print.push_back("ma77_static"); options_to_print.push_back("ma77_u"); options_to_print.push_back("ma77_umax"); #endif #if defined(COINHSL_HAS_MA86) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#MA86 Linear Solver"); options_to_print.push_back("ma86_print_level"); options_to_print.push_back("ma86_nemin"); options_to_print.push_back("ma86_order"); options_to_print.push_back("ma86_scaling"); options_to_print.push_back("ma86_small"); options_to_print.push_back("ma86_static"); options_to_print.push_back("ma86_u"); options_to_print.push_back("ma86_umax"); #endif #if defined(COINHSL_HAS_MA97) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#MA97 Linear Solver"); options_to_print.push_back("ma97_print_level"); options_to_print.push_back("ma97_nemin"); options_to_print.push_back("ma97_order"); options_to_print.push_back("ma97_scaling"); options_to_print.push_back("ma97_scaling1"); options_to_print.push_back("ma97_scaling2"); options_to_print.push_back("ma97_scaling3"); options_to_print.push_back("ma97_small"); options_to_print.push_back("ma97_solve_blas3"); options_to_print.push_back("ma97_switch1"); options_to_print.push_back("ma97_switch2"); options_to_print.push_back("ma97_switch3"); options_to_print.push_back("ma97_u"); options_to_print.push_back("ma97_umax"); #endif #ifdef COIN_HAS_MUMPS options_to_print.push_back("#MUMPS Linear Solver"); options_to_print.push_back("mumps_pivtol"); options_to_print.push_back("mumps_pivtolmax"); options_to_print.push_back("mumps_mem_percent"); options_to_print.push_back("mumps_permuting_scaling"); options_to_print.push_back("mumps_pivot_order"); options_to_print.push_back("mumps_scaling"); #endif #if defined(HAVE_PARDISO) || defined(HAVE_LINEARSOLVERLOADER) options_to_print.push_back("#Pardiso Linear Solver"); options_to_print.push_back("pardiso_msglvl"); options_to_print.push_back("pardiso_matching_strategy"); options_to_print.push_back("pardiso_out_of_core_power"); #endif #ifdef HAVE_WSMP options_to_print.push_back("#WSMP Linear Solver"); options_to_print.push_back("wsmp_num_threads"); options_to_print.push_back("wsmp_ordering_option"); options_to_print.push_back("wsmp_pivtol"); options_to_print.push_back("wsmp_pivtolmax"); options_to_print.push_back("wsmp_scaling"); options_to_print.push_back("wsmp_singularity_threshold"); #endif reg_options_->OutputLatexOptionDocumentation(*jnlst_, options_to_print); } else { std::list categories; categories.push_back("Output"); /*categories.push_back("Main Algorithm");*/ categories.push_back("Convergence"); categories.push_back("NLP Scaling"); categories.push_back("NLP"); categories.push_back("Initialization"); categories.push_back("Barrier Parameter Update"); categories.push_back("Line Search"); categories.push_back("Warm Start"); categories.push_back("Linear Solver"); categories.push_back("Step Calculation"); categories.push_back("Restoration Phase"); categories.push_back("Derivative Checker"); categories.push_back("Hessian Approximation"); categories.push_back("MA27 Linear Solver"); categories.push_back("MA57 Linear Solver"); categories.push_back("Pardiso Linear Solver"); #ifdef HAVE_WSMP categories.push_back("WSMP Linear Solver"); #endif #ifdef COIN_HAS_MUMPS categories.push_back("Mumps Linear Solver"); #endif categories.push_back("MA28 Linear Solver"); categories.push_back("Uncategorized"); //categories.push_back("Undocumented Options"); reg_options_->OutputOptionDocumentation(*jnlst_, categories); } } #ifdef BUILD_INEXACT // Check if we are to use the inexact linear solver option options_->GetBoolValue("inexact_algorithm", inexact_algorithm_, ""); // Change the default flags for the inexact algorithm if (inexact_algorithm_) { AddInexactDefaultOptions(*options_); } #endif options_->GetBoolValue("replace_bounds", replace_bounds_, ""); } catch (OPTION_INVALID& exc) { exc.ReportException(*jnlst_, J_ERROR); return Invalid_Option; } catch (IpoptException& exc) { exc.ReportException(*jnlst_, J_ERROR); return Unrecoverable_Exception; } catch (std::bad_alloc&) { jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Not enough memory.\n"); return Insufficient_Memory; } catch (...) { IpoptException exc("Unknown Exception caught in ipopt", "Unknown File", -1); exc.ReportException(*jnlst_); return NonIpopt_Exception_Thrown; } return Solve_Succeeded; } ApplicationReturnStatus IpoptApplication::Initialize(std::string params_file) { std::ifstream is; if (params_file != "") { try { is.open(params_file.c_str()); } catch (std::bad_alloc&) { jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Not enough memory.\n"); return Insufficient_Memory; } catch (...) { IpoptException exc("Unknown Exception caught in ipopt", "Unknown File", -1); exc.ReportException(*jnlst_); return NonIpopt_Exception_Thrown; } } ApplicationReturnStatus retval = Initialize(is); if (is) { is.close(); } return retval; } ApplicationReturnStatus IpoptApplication::Initialize() { std::string option_file_name; options_->GetStringValue("option_file_name", option_file_name, ""); if (option_file_name != "" && option_file_name != "ipopt.opt") jnlst_->Printf(J_SUMMARY, J_MAIN, "Using option file \"%s\".\n\n", option_file_name.c_str()); return Initialize(option_file_name); } IpoptApplication::~IpoptApplication() { DBG_START_METH("IpoptApplication::~IpoptApplication()", dbg_verbosity); } void IpoptApplication::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("Output"); roptions->AddBoundedIntegerOption( "print_level", "Output verbosity level.", 0, J_LAST_LEVEL-1, J_ITERSUMMARY, "Sets the default verbosity level for console output. The " "larger this value the more detailed is the output."); roptions->AddStringOption1( "output_file", "File name of desired output file (leave unset for no file output).", "", "*", "Any acceptable standard file name", "NOTE: This option only works when read from the ipopt.opt options file! " "An output file with this name will be written (leave unset for no " "file output). The verbosity level is by default set to \"print_level\", " "but can be overridden with \"file_print_level\". The file name is " "changed to use only small letters."); roptions->AddBoundedIntegerOption( "file_print_level", "Verbosity level for output file.", 0, J_LAST_LEVEL-1, J_ITERSUMMARY, "NOTE: This option only works when read from the ipopt.opt options file! " "Determines the verbosity level for the file specified by " "\"output_file\". By default it is the same as \"print_level\"."); roptions->AddStringOption2( "print_user_options", "Print all options set by the user.", "no", "no", "don't print options", "yes", "print options", "If selected, the algorithm will print the list of all options set by " "the user including their values and whether they have been used. In " "some cases this information might be incorrect, due to the internal " "program flow."); roptions->AddStringOption2( "print_options_documentation", "Switch to print all algorithmic options.", "no", "no", "don't print list", "yes", "print list", "If selected, the algorithm will print the list of all available " "algorithmic options with some documentation before solving the " "optimization problem."); #if COIN_IPOPT_VERBOSITY > 0 roptions->AddBoundedIntegerOption( "debug_print_level", "Verbosity level for debug file.", 0, J_LAST_LEVEL-1, J_ITERSUMMARY, "This Ipopt library has been compiled in debug mode, and a file " "\"debug.out\" is produced for every run. This option determines " "the verbosity level for this file. By default it is the same as " "\"print_level\"."); #endif roptions->AddStringOption2( "print_timing_statistics", "Switch to print timing statistics.", "no", "no", "don't print statistics", "yes", "print all timing statistics", "If selected, the program will print the CPU usage (user time) for " "selected tasks."); roptions->AddStringOption1( "option_file_name", "File name of options file.", "ipopt.opt", "*", "Any acceptable standard file name", "By default, the name of the Ipopt options file is \"ipopt.opt\" - or " "something else if specified in the IpoptApplication::Initialize call. " "If this option is set by SetStringValue BEFORE the options file is " "read, it specifies the name of the options file. It does not make any " "sense to specify this option within the options file. " "Setting this option to an empty string disables reading of an options file."); roptions->AddStringOption2( "replace_bounds", "Indicates if all variable bounds should be replaced by inequality constraints", "no", "no", "leave bounds on variables", "yes", "replace variable bounds by inequality constraints", "This option must be set for the inexact algorithm"); roptions->AddStringOption2( "skip_finalize_solution_call", "Indicates if call to NLP::FinalizeSolution after optimization should be suppressed", "no", "no", "call FinalizeSolution", "yes", "do not call FinalizeSolution", "In some Ipopt applications, the user might want to call the " "FinalizeSolution method separately. Setting this option to \"yes\" " "will cause the IpoptApplication object to suppress the default call to " "that method."); roptions->SetRegisteringCategory("Undocumented"); roptions->AddStringOption2( "print_options_latex_mode", "Undocumented", "no", "no", "Undocumented", "yes", "Undocumented", "Undocumented"); roptions->AddStringOption2( "suppress_all_output", "Undocumented", "no", "no", "Undocumented", "yes", "Undocumented", "Undocumented"); #ifdef BUILD_INEXACT roptions->AddStringOption2( "inexact_algorithm", "Activate the version of Ipopt that allows iterative linear solvers.", "no", "no", "use default algorithm with direct linear solvers", "yes", "use the EXPERIMENTAL iterative linear solver option", ""); #endif } ApplicationReturnStatus IpoptApplication::OptimizeTNLP(const SmartPtr& tnlp) { nlp_adapter_ = new TNLPAdapter(GetRawPtr(tnlp), ConstPtr(jnlst_)); return OptimizeNLP(nlp_adapter_); } ApplicationReturnStatus IpoptApplication::ReOptimizeTNLP(const SmartPtr& tnlp) { ASSERT_EXCEPTION(IsValid(nlp_adapter_), INVALID_WARMSTART, "ReOptimizeTNLP called before OptimizeTNLP."); TNLPAdapter* adapter = static_cast (GetRawPtr(nlp_adapter_)); DBG_ASSERT(dynamic_cast (GetRawPtr(nlp_adapter_))); ASSERT_EXCEPTION(adapter->tnlp()==tnlp, INVALID_WARMSTART, "ReOptimizeTNLP called for different TNLP.") return ReOptimizeNLP(nlp_adapter_); } ApplicationReturnStatus IpoptApplication::OptimizeNLP(const SmartPtr& nlp) { SmartPtr alg_builder = NULL; return OptimizeNLP(nlp, alg_builder); } ApplicationReturnStatus IpoptApplication::OptimizeNLP(const SmartPtr& nlp, SmartPtr& alg_builder) { ApplicationReturnStatus retValue = Internal_Error; // Prepare internal data structures of the algorithm try { if (IsNull(alg_builder)) { #ifdef BUILD_INEXACT if (inexact_algorithm_) { alg_builder = new InexactAlgorithmBuilder(); } else { #endif alg_builder = new AlgorithmBuilder(); #ifdef BUILD_INEXACT } #endif } SmartPtr use_nlp; if (replace_bounds_) { use_nlp = new NLPBoundsRemover(*nlp); } else { use_nlp = nlp; } alg_builder->BuildIpoptObjects(*jnlst_, *options_, "", use_nlp, ip_nlp_, ip_data_, ip_cq_); alg_ = GetRawPtr(alg_builder->BuildBasicAlgorithm(*jnlst_, *options_, "")); // finally call the optimization retValue = call_optimize(); } catch (OPTION_INVALID& exc) { exc.ReportException(*jnlst_, J_ERROR); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Invalid option encountered.\n"); retValue = Invalid_Option; } catch (IpoptException& exc) { exc.ReportException(*jnlst_, J_ERROR); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Some uncaught Ipopt exception encountered.\n"); retValue = Unrecoverable_Exception; } catch (std::bad_alloc&) { retValue = Insufficient_Memory; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Not enough memory.\n"); } catch (...) { IpoptException exc("Unknown Exception caught in Ipopt", "Unknown File", -1); exc.ReportException(*jnlst_, J_ERROR); retValue = NonIpopt_Exception_Thrown; } jnlst_->FlushBuffer(); return retValue; } ApplicationReturnStatus IpoptApplication::ReOptimizeNLP(const SmartPtr& nlp) { ASSERT_EXCEPTION(IsValid(alg_), INVALID_WARMSTART, "ReOptimizeNLP called before OptimizeNLP."); OrigIpoptNLP* orig_nlp = static_cast (GetRawPtr(ip_nlp_)); DBG_ASSERT(dynamic_cast (GetRawPtr(ip_nlp_))); ASSERT_EXCEPTION(orig_nlp->nlp()==nlp, INVALID_WARMSTART, "ReOptimizeTNLP called for different NLP.") return call_optimize(); } ApplicationReturnStatus IpoptApplication::call_optimize() { // Reset the print-level for the screen output Index ivalue; options_->GetIntegerValue("print_level", ivalue, ""); EJournalLevel print_level = (EJournalLevel)ivalue; SmartPtr stdout_jrnl = jnlst_->GetJournal("console"); if (IsValid(stdout_jrnl)) { // Set printlevel for stdout stdout_jrnl->SetAllPrintLevels(print_level); stdout_jrnl->SetPrintLevel(J_DBG, J_NONE); } statistics_ = NULL; /* delete old statistics */ // Get the pointers to the real objects (need to do it that // awkwardly since otherwise we would have to include so many // things in IpoptApplication, which a user would have to // include, too (SmartPtr doesn't work otherwise on AIX) IpoptAlgorithm* p2alg = static_cast (GetRawPtr(alg_)); DBG_ASSERT(dynamic_cast (GetRawPtr(alg_))); IpoptData* p2ip_data = static_cast (GetRawPtr(ip_data_)); DBG_ASSERT(dynamic_cast (GetRawPtr(ip_data_))); OrigIpoptNLP* p2ip_nlp = static_cast (GetRawPtr(ip_nlp_)); DBG_ASSERT(dynamic_cast (GetRawPtr(ip_nlp_))); IpoptCalculatedQuantities* p2ip_cq = static_cast (GetRawPtr(ip_cq_)); DBG_ASSERT(dynamic_cast (GetRawPtr(ip_cq_))); // Reset Timing statistics ip_data_->TimingStats().ResetTimes(); p2ip_nlp->ResetTimes(); ApplicationReturnStatus retValue = Internal_Error; SolverReturn status = INTERNAL_ERROR; /** Flag indicating if the NLP:FinalizeSolution method should not * be called after optimization. */ bool skip_finalize_solution_call = false; try { // Set up the algorithm p2alg->Initialize(*jnlst_, *p2ip_nlp, *p2ip_data, *p2ip_cq, *options_, ""); // Process the options used below bool print_timing_statistics; options_->GetBoolValue("print_timing_statistics", print_timing_statistics, ""); // If selected, print the user options bool print_user_options; options_->GetBoolValue("print_user_options", print_user_options, ""); if (print_user_options) { std::string liststr; options_->PrintUserOptions(liststr); jnlst_->Printf(J_ERROR, J_MAIN, "\nList of user-set options:\n\n%s", liststr.c_str()); } if ( jnlst_->ProduceOutput(J_DETAILED, J_MAIN) ) { // Print out the options (including the number of times they were used std::string liststr; options_->PrintList(liststr); jnlst_->Printf(J_DETAILED, J_MAIN, "\nList of options:\n\n%s", liststr.c_str()); } // Run the algorithm status = p2alg->Optimize(); // Since all the output below doesn't make any sense in this // case, we rethrow the TOO_FEW_DOF exception here ASSERT_EXCEPTION(status != TOO_FEW_DEGREES_OF_FREEDOM, TOO_FEW_DOF, "Too few degrees of freedom (rethrown)!"); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "\nNumber of Iterations....: %d\n", p2ip_data->iter_count()); if (status!=INVALID_NUMBER_DETECTED) { try { jnlst_->Printf(J_SUMMARY, J_SOLUTION, "\n (scaled) (unscaled)\n"); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "Objective...............: %24.16e %24.16e\n", p2ip_cq->curr_f(), p2ip_cq->unscaled_curr_f()); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "Dual infeasibility......: %24.16e %24.16e\n", p2ip_cq->curr_dual_infeasibility(NORM_MAX), p2ip_cq->unscaled_curr_dual_infeasibility(NORM_MAX)); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "Constraint violation....: %24.16e %24.16e\n", p2ip_cq->curr_nlp_constraint_violation(NORM_MAX), p2ip_cq->unscaled_curr_nlp_constraint_violation(NORM_MAX)); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "Complementarity.........: %24.16e %24.16e\n", p2ip_cq->curr_complementarity(0., NORM_MAX), p2ip_cq->unscaled_curr_complementarity(0., NORM_MAX)); jnlst_->Printf(J_SUMMARY, J_SOLUTION, "Overall NLP error.......: %24.16e %24.16e\n\n", p2ip_cq->curr_nlp_error(), p2ip_cq->unscaled_curr_nlp_error()); } catch (IpoptNLP::Eval_Error& exc) { status = INVALID_NUMBER_DETECTED; exc.ReportException(*jnlst_, J_ERROR); } } p2ip_data->curr()->x()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "x"); p2ip_data->curr()->y_c()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "y_c"); p2ip_data->curr()->y_d()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "y_d"); p2ip_data->curr()->z_L()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "z_L"); p2ip_data->curr()->z_U()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "z_U"); p2ip_data->curr()->v_L()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "v_L"); p2ip_data->curr()->v_U()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "v_U"); if (status==LOCAL_INFEASIBILITY) { p2ip_cq->curr_c()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "curr_c"); p2ip_cq->curr_d_minus_s()->Print(*jnlst_, J_VECTOR, J_SOLUTION, "curr_d_minus_s"); } jnlst_->Printf(J_SUMMARY, J_STATISTICS, "\nNumber of objective function evaluations = %d\n", p2ip_nlp->f_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of objective gradient evaluations = %d\n", p2ip_nlp->grad_f_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of equality constraint evaluations = %d\n", p2ip_nlp->c_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of inequality constraint evaluations = %d\n", p2ip_nlp->d_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of equality constraint Jacobian evaluations = %d\n", p2ip_nlp->jac_c_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of inequality constraint Jacobian evaluations = %d\n", p2ip_nlp->jac_d_evals()); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Number of Lagrangian Hessian evaluations = %d\n", p2ip_nlp->h_evals()); Number cpu_time_overall_alg = p2ip_data->TimingStats().OverallAlgorithm().TotalCpuTime(); Number cpu_time_funcs = p2ip_nlp->TotalFunctionEvaluationCpuTime(); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Total CPU secs in IPOPT (w/o function evaluations) = %10.3f\n", cpu_time_overall_alg-cpu_time_funcs); jnlst_->Printf(J_SUMMARY, J_STATISTICS, "Total CPU secs in NLP function evaluations = %10.3f\n", cpu_time_funcs); // Write timing statistics information if (print_timing_statistics) { jnlst_->Printf(J_SUMMARY, J_TIMING_STATISTICS, "\n\nTiming Statistics:\n\n"); p2ip_data->TimingStats().PrintAllTimingStatistics(*jnlst_, J_SUMMARY, J_TIMING_STATISTICS); p2ip_nlp->PrintTimingStatistics(*jnlst_, J_SUMMARY, J_TIMING_STATISTICS); } // Write EXIT message if (status == SUCCESS) { retValue = Solve_Succeeded; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Optimal Solution Found.\n"); } else if (status == MAXITER_EXCEEDED) { retValue = Maximum_Iterations_Exceeded; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Maximum Number of Iterations Exceeded.\n"); } else if (status == CPUTIME_EXCEEDED) { retValue = Maximum_CpuTime_Exceeded; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Maximum CPU time exceeded.\n"); } else if (status == STOP_AT_TINY_STEP) { retValue = Search_Direction_Becomes_Too_Small; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Search Direction is becoming Too Small.\n"); } else if (status == STOP_AT_ACCEPTABLE_POINT) { retValue = Solved_To_Acceptable_Level; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Solved To Acceptable Level.\n"); } else if (status == FEASIBLE_POINT_FOUND) { retValue = Feasible_Point_Found; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Feasible point for square problem found.\n"); } else if (status == DIVERGING_ITERATES) { retValue = Diverging_Iterates; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Iterates diverging; problem might be unbounded.\n"); } else if (status == RESTORATION_FAILURE) { retValue = Restoration_Failed; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Restoration Failed!\n"); } else if (status == ERROR_IN_STEP_COMPUTATION) { retValue = Error_In_Step_Computation; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Error in step computation (regularization becomes too large?)!\n"); } else if (status == LOCAL_INFEASIBILITY) { retValue = Infeasible_Problem_Detected; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Converged to a point of local infeasibility. Problem may be infeasible.\n"); } else if (status == USER_REQUESTED_STOP) { retValue = User_Requested_Stop; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Stopping optimization at current point as requested by user.\n"); } else if (status == INVALID_NUMBER_DETECTED) { retValue = Invalid_Number_Detected; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Invalid number in NLP function or derivative detected.\n"); } else { retValue = Internal_Error; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: INTERNAL ERROR: Unknown SolverReturn value - Notify IPOPT Authors.\n"); return retValue; } if (status!=INVALID_NUMBER_DETECTED) { // Create a SolveStatistics object statistics_ = new SolveStatistics(p2ip_nlp, p2ip_data, p2ip_cq); } } catch (TOO_FEW_DOF& exc) { exc.ReportException(*jnlst_, J_ERROR); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Problem has too few degrees of freedom.\n"); retValue = Not_Enough_Degrees_Of_Freedom; status = TOO_FEW_DEGREES_OF_FREEDOM; } catch (OPTION_INVALID& exc) { exc.ReportException(*jnlst_, J_ERROR); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Invalid option encountered.\n"); retValue = Invalid_Option; status = INVALID_OPTION; } catch (NO_FREE_VARIABLES_BUT_FEASIBLE& exc) { exc.ReportException(*jnlst_, J_MOREDETAILED); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Optimal Solution Found.\n"); retValue = Solve_Succeeded; status = SUCCESS; skip_finalize_solution_call = true; /* has already been called by TNLPAdapter (and we don't know the correct primal solution) */ } catch (NO_FREE_VARIABLES_AND_INFEASIBLE& exc) { exc.ReportException(*jnlst_, J_MOREDETAILED); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Problem has only fixed variables and constraints are infeasible.\n"); retValue = Infeasible_Problem_Detected; status = LOCAL_INFEASIBILITY; skip_finalize_solution_call = true; /* has already been called by TNLPAdapter (and we don't know the correct primal solution) */ } catch (IpoptException& exc) { exc.ReportException(*jnlst_, J_ERROR); jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Some uncaught Ipopt exception encountered.\n"); retValue = Unrecoverable_Exception; } catch (std::bad_alloc&) { retValue = Insufficient_Memory; jnlst_->Printf(J_SUMMARY, J_MAIN, "\nEXIT: Not enough memory.\n"); status = OUT_OF_MEMORY; } catch (...) { IpoptException exc("Unknown Exception caught in Ipopt", "Unknown File", -1); exc.ReportException(*jnlst_, J_ERROR); retValue = NonIpopt_Exception_Thrown; } if (!skip_finalize_solution_call) options_->GetBoolValue("skip_finalize_solution_call", skip_finalize_solution_call, ""); if (!skip_finalize_solution_call && IsValid(p2ip_data->curr()) && IsValid(p2ip_data->curr()->x())) { SmartPtr c; SmartPtr d; SmartPtr zL; SmartPtr zU; SmartPtr yc; SmartPtr yd; Number obj = 0.; switch (status) { case SUCCESS: case MAXITER_EXCEEDED: case STOP_AT_TINY_STEP: case STOP_AT_ACCEPTABLE_POINT: case LOCAL_INFEASIBILITY: case USER_REQUESTED_STOP: case FEASIBLE_POINT_FOUND: case DIVERGING_ITERATES: case RESTORATION_FAILURE: case ERROR_IN_STEP_COMPUTATION: c = p2ip_cq->curr_c(); d = p2ip_cq->curr_d(); obj = p2ip_cq->curr_f(); zL = p2ip_data->curr()->z_L(); zU = p2ip_data->curr()->z_U(); yc = p2ip_data->curr()->y_c(); yd = p2ip_data->curr()->y_d(); break; default: { SmartPtr tmp = p2ip_data->curr()->y_c()->MakeNew(); tmp->Set(0.); c = ConstPtr(tmp); yc = ConstPtr(tmp); tmp = p2ip_data->curr()->y_d()->MakeNew(); tmp->Set(0.); d = ConstPtr(tmp); yd = ConstPtr(tmp); tmp = p2ip_data->curr()->z_L()->MakeNew(); tmp->Set(0.); zL = ConstPtr(tmp); tmp = p2ip_data->curr()->z_U()->MakeNew(); tmp->Set(0.); zU = ConstPtr(tmp); } } p2ip_nlp->FinalizeSolution(status, *p2ip_data->curr()->x(), *zL, *zU, *c, *d, *yc, *yd, obj, p2ip_data, p2ip_cq); } jnlst_->FlushBuffer(); return retValue; } bool IpoptApplication::OpenOutputFile(std::string file_name, EJournalLevel print_level) { SmartPtr file_jrnl = jnlst_->GetJournal("OutputFile:"+file_name); if (IsNull(file_jrnl)) { file_jrnl = jnlst_->AddFileJournal("OutputFile:"+file_name, file_name.c_str(), print_level); } // Check, if the output file could be created properly if (IsNull(file_jrnl)) { return false; } file_jrnl->SetPrintLevel(J_DBG, J_NONE); return true; } void IpoptApplication::RegisterAllIpoptOptions(const SmartPtr& roptions) { RegisterOptions_Interfaces(roptions); RegisterOptions_Algorithm(roptions); RegisterOptions_CGPenalty(roptions); RegisterOptions_LinearSolvers(roptions); #ifdef BUILD_INEXACT RegisterOptions_Inexact(roptions); #endif } SmartPtr IpoptApplication::Statistics() { return statistics_; } SmartPtr IpoptApplication::IpoptNLPObject() { return ip_nlp_; } SmartPtr IpoptApplication::IpoptDataObject() { return ip_data_; } SmartPtr IpoptApplication::IpoptCQObject() { return ip_cq_; } SmartPtr IpoptApplication::AlgorithmObject() { return alg_; } void IpoptApplication::PrintCopyrightMessage() { IpoptAlgorithm::print_copyright_message(*jnlst_); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Interfaces/IpTNLPReducer.hpp0000644000076600007660000001503011504216567020415 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTNLPReducer.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-10 #ifndef __IPTNLPREDUCER_HPP__ #define __IPTNLPREDUCER_HPP__ #include "IpTNLP.hpp" namespace Ipopt { /** This is a wrapper around a given TNLP class that takes out a * list of constraints that are given to the constructor. It is * provided for convenience, if one wants to experiment with * problems that consist of only a subset of the constraints. But * keep in mind that this is not efficient, since behind the scenes * we are still evaluation all functions and derivatives, and are * making copies of the original data. */ class TNLPReducer : public TNLP { public: /**@name Constructors/Destructors */ //@{ /** Constructor is given the indices of the constraints that * should be taken out of the problem statement, as well as the * original TNLP. */ TNLPReducer(TNLP& tnlp, Index n_g_skip, const Index* index_g_skip, Index n_xL_skip, const Index* index_xL_skip, Index n_xU_skip, const Index* index_xU_skip, Index n_x_fix, const Index* index_f_fix); /** Default destructor */ virtual ~TNLPReducer(); //@} /** @name Overloaded methods from TNLP */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); virtual bool get_variables_linearity(Index n, LinearityType* var_types); virtual bool get_constraints_linearity(Index m, LinearityType* const_types); virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); virtual bool get_warm_start_iterate(IteratesVector& warm_start_iterate); virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); virtual bool intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); virtual Index get_number_of_nonlinear_variables(); virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ TNLPReducer(); /** Copy Constructor */ TNLPReducer(const TNLPReducer&); /** Overloaded Equals Operator */ void operator=(const TNLPReducer&); //@} /** @name original TNLP */ //@{ SmartPtr tnlp_; Index m_orig_; Index nnz_jac_g_orig_; //@} /** Number of constraints to be skipped */ Index n_g_skip_; /** Array of indices of the constraints that are to be skipped. * This is provided at the beginning in the constructor. */ Index* index_g_skip_; /** Index style for original problem. Internally, we use C-Style * now. */ IndexStyleEnum index_style_orig_; /** Map from original constraints to new constraints. A -1 means * that a constraint is skipped. */ Index* g_keep_map_; /** Number of constraints in reduced NLP */ Index m_reduced_; /** Number of Jacobian nonzeros in the reduced NLP */ Index nnz_jac_g_reduced_; /** Number of Jacobian nonzeros that are skipped */ Index nnz_jac_g_skipped_; /** Array of Jacobian elements that are to be skipped. This is in * increasing order. */ Index* jac_g_skipped_; /** Number of lower variable bounds to be skipped. */ Index n_xL_skip_; /** Array of indices of the lower variable bounds to be skipped. */ Index* index_xL_skip_; /** Number of upper variable bounds to be skipped. */ Index n_xU_skip_; /** Array of indices of the upper variable bounds to be skipped. */ Index* index_xU_skip_; /** Number of variables that are to be fixed to initial value. */ Index n_x_fix_; /** Array of indices of the variables that are to be fixed. */ Index* index_x_fix_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpTNLPAdapter.hpp0000644000076600007660000003616211504216567020415 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTNLPAdapter.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPTNLPADAPTER_HPP__ #define __IPTNLPADAPTER_HPP__ #include "IpNLP.hpp" #include "IpTNLP.hpp" #include "IpOrigIpoptNLP.hpp" #include namespace Ipopt { // forward declarations class ExpansionMatrix; class ExpansionMatrixSpace; class IteratesVector; class TDependencyDetector; /** This class Adapts the TNLP interface so it looks like an NLP interface. * This is an Adapter class (Design Patterns) that converts a TNLP to an * NLP. This allows users to write to the "more convenient" TNLP interface. */ class TNLPAdapter : public NLP { public: /**@name Constructors/Destructors */ //@{ /** Default constructor */ TNLPAdapter(const SmartPtr tnlp, const SmartPtr jnlst = NULL); /** Default destructor */ virtual ~TNLPAdapter(); //@} /**@name Exceptions */ //@{ DECLARE_STD_EXCEPTION(INVALID_TNLP); DECLARE_STD_EXCEPTION(ERROR_IN_TNLP_DERIVATIVE_TEST); //@} /** @name TNLPAdapter Initialization. */ //@{ virtual bool ProcessOptions(const OptionsList& options, const std::string& prefix); /** Method for creating the derived vector / matrix types * (Do not delete these, the ). */ virtual bool GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space); /** Method for obtaining the bounds information */ virtual bool GetBoundsInformation(const Matrix& Px_L, Vector& x_L, const Matrix& Px_U, Vector& x_U, const Matrix& Pd_L, Vector& d_L, const Matrix& Pd_U, Vector& d_U); /** Method for obtaining the starting point * for all the iterates. */ virtual bool GetStartingPoint( SmartPtr x, bool need_x, SmartPtr y_c, bool need_y_c, SmartPtr y_d, bool need_y_d, SmartPtr z_L, bool need_z_L, SmartPtr z_U, bool need_z_U ); /** Method for obtaining an entire iterate as a warmstart point. * The incoming IteratesVector has to be filled. */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate); //@} /** @name TNLPAdapter evaluation routines. */ //@{ virtual bool Eval_f(const Vector& x, Number& f); virtual bool Eval_grad_f(const Vector& x, Vector& g_f); virtual bool Eval_c(const Vector& x, Vector& c); virtual bool Eval_jac_c(const Vector& x, Matrix& jac_c); virtual bool Eval_d(const Vector& x, Vector& d); virtual bool Eval_jac_d(const Vector& x, Matrix& jac_d); virtual bool Eval_h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, SymMatrix& h); virtual void GetScalingParameters( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, Number& obj_scaling, SmartPtr& x_scaling, SmartPtr& c_scaling, SmartPtr& d_scaling) const; //@} /** @name Solution Reporting Methods */ //@{ virtual void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); virtual bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} /** Method returning information on quasi-Newton approximation. */ virtual void GetQuasiNewtonApproximationSpaces(SmartPtr& approx_space, SmartPtr& P_approx); /** Enum for treatment of fixed variables option */ enum FixedVariableTreatmentEnum { MAKE_PARAMETER=0, MAKE_CONSTRAINT, RELAX_BOUNDS }; /** Enum for specifying which derivative test is to be performed. */ enum DerivativeTestEnum { NO_TEST=0, FIRST_ORDER_TEST, SECOND_ORDER_TEST, ONLY_SECOND_ORDER_TEST }; /** Enum for specifying technique for computing Jacobian */ enum JacobianApproxEnum { JAC_EXACT=0, JAC_FINDIFF_VALUES }; /** Method for performing the derivative test */ bool CheckDerivatives(DerivativeTestEnum deriv_test, Index deriv_test_start_index); /** @name Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Accessor method for the underlying TNLP. */ SmartPtr tnlp() const { return tnlp_; } /** @name Methods for translating data for IpoptNLP into the TNLP * data. These methods are used to obtain the current (or * final) data for the TNLP formulation from the IpoptNLP * structure. */ //@{ /** Sort the primal variables, and add the fixed values in x */ void ResortX(const Vector& x, Number* x_orig); void ResortG(const Vector& c, const Vector& d, Number *g_orig); void ResortBnds(const Vector& x_L, Number* x_L_orig, const Vector& x_U, Number* x_U_orig); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ TNLPAdapter(const TNLPAdapter&); /** Overloaded Equals Operator */ void operator=(const TNLPAdapter&); //@} /** @name Method implementing the detection of linearly dependent equality constraints */ bool DetermineDependentConstraints(Index n_x_var, const Index* x_not_fixed_map, const Number* x_l, const Number* x_u, const Number* g_l, const Number* g_u, Index n_c, const Index* c_map, std::list& c_deps); /** Pointer to the TNLP class (class specific to Number* vectors and * harwell triplet matrices) */ SmartPtr tnlp_; /** Journalist */ SmartPtr jnlst_; /** Object that can be used to detect linearly dependent rows in * the equality constraint Jacobian */ SmartPtr dependency_detector_; /**@name Algorithmic parameters */ //@{ /** Value for a lower bound that denotes -infinity */ Number nlp_lower_bound_inf_; /** Value for a upper bound that denotes infinity */ Number nlp_upper_bound_inf_; /** Flag indicating how fixed variables should be handled */ FixedVariableTreatmentEnum fixed_variable_treatment_; /* Determines relaxation of fixing bound for RELAX_BOUNDS. */ Number bound_relax_factor_; /* Maximal slack for one-sidedly bounded variables. If a * variable has only one bound, say a lower bound xL, then an * upper bound xL + max_onesided_bound_slack_. If this value is * zero, no upper bound is added. */ /* Took this out: Number max_onesided_bound_slack_; */ /** Enum indicating whether and which derivative test should be * performed at starting point. */ DerivativeTestEnum derivative_test_; /** Size of the perturbation for the derivative test */ Number derivative_test_perturbation_; /** Relative threshold for marking deviation from finite * difference test */ Number derivative_test_tol_; /** Flag indicating if all test values should be printed, or only * those violating the threshold. */ bool derivative_test_print_all_; /** Index of first quantity to be checked. */ Index derivative_test_first_index_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; /** Flag indicating what Hessian information is to be used. */ HessianApproximationType hessian_approximation_; /** Number of linear variables. */ Index num_linear_variables_; /** Flag indicating how Jacobian is computed. */ JacobianApproxEnum jacobian_approximation_; /** Size of the perturbation for the derivative approximation */ Number findiff_perturbation_; /** Maximal perturbation of the initial point */ Number point_perturbation_radius_; /** Flag indicating if rhs should be considered during dependency * detection */ bool dependency_detection_with_rhs_; /** Overall convergence tolerance */ Number tol_; //@} /**@name Problem Size Data */ //@{ /** full dimension of x (fixed + non-fixed) */ Index n_full_x_; /** full dimension of g (c + d) */ Index n_full_g_; /** non-zeros of the jacobian of c */ Index nz_jac_c_; /** non-zeros of the jacobian of c without added constraints for * fixed variables. */ Index nz_jac_c_no_extra_; /** non-zeros of the jacobian of d */ Index nz_jac_d_; /** number of non-zeros in full-size Jacobian of g */ Index nz_full_jac_g_; /** number of non-zeros in full-size Hessian */ Index nz_full_h_; /** number of non-zeros in the non-fixed-size Hessian */ Index nz_h_; /** Number of fixed variables */ Index n_x_fixed_; //@} /** Numbering style of variables and constraints */ TNLP::IndexStyleEnum index_style_; /** @name Local copy of spaces (for warm start) */ //@{ SmartPtr x_space_; SmartPtr c_space_; SmartPtr d_space_; SmartPtr x_l_space_; SmartPtr px_l_space_; SmartPtr x_u_space_; SmartPtr px_u_space_; SmartPtr d_l_space_; SmartPtr pd_l_space_; SmartPtr d_u_space_; SmartPtr pd_u_space_; SmartPtr Jac_c_space_; SmartPtr Jac_d_space_; SmartPtr Hess_lagrangian_space_; //@} /**@name Local Copy of the Data */ //@{ Number* full_x_; /** copy of the full x vector (fixed & non-fixed) */ Number* full_lambda_; /** copy of lambda (yc & yd) */ Number* full_g_; /** copy of g (c & d) */ Number* jac_g_; /** the values for the full jacobian of g */ Number* c_rhs_; /** the rhs values of c */ //@} /**@name Tags for deciding when to update internal copies of vectors */ //@{ TaggedObject::Tag x_tag_for_iterates_; TaggedObject::Tag y_c_tag_for_iterates_; TaggedObject::Tag y_d_tag_for_iterates_; TaggedObject::Tag x_tag_for_g_; TaggedObject::Tag x_tag_for_jac_g_; //@} /**@name Methods to update the values in the local copies of vectors */ //@{ bool update_local_x(const Vector& x); bool update_local_lambda(const Vector& y_c, const Vector& y_d); //@} /**@name Internal routines for evaluating g and jac_g (values stored since * they are used in both c and d routines */ //@{ bool internal_eval_g(bool new_x); bool internal_eval_jac_g(bool new_x); //@} /** @name Internal methods for dealing with finite difference approxation */ //@{ /** Initialize sparsity structure for finite difference Jacobian */ void initialize_findiff_jac(const Index* iRow, const Index* jCol); //@} /**@name Internal Permutation Spaces and matrices */ //@{ /** Expansion from fixed x (ipopt) to full x */ SmartPtr P_x_full_x_; SmartPtr P_x_full_x_space_; /** Expansion from fixed x_L (ipopt) to full x */ SmartPtr P_x_x_L_; SmartPtr P_x_x_L_space_; /** Expansion from fixed x_U (ipopt) to full x */ SmartPtr P_x_x_U_; SmartPtr P_x_x_U_space_; /** Expansion from c only (ipopt) to full ampl c */ SmartPtr P_c_g_space_; SmartPtr P_c_g_; /** Expansion from d only (ipopt) to full ampl d */ SmartPtr P_d_g_space_; SmartPtr P_d_g_; Index* jac_idx_map_; Index* h_idx_map_; /** Position of fixed variables. This is required for a warm start */ Index* x_fixed_map_; //@} /** @name Data for finite difference approximations of derivatives */ //@{ /** Number of unique nonzeros in constraint Jacobian */ Index findiff_jac_nnz_; /** Start position for nonzero indices in ja for each column of Jacobian */ Index* findiff_jac_ia_; /** Ordered by columns, for each column the row indices in Jacobian */ Index* findiff_jac_ja_; /** Position of entry in original triplet matrix */ Index* findiff_jac_postriplet_; /** Copy of the lower bounds */ Number* findiff_x_l_; /** Copy of the upper bounds */ Number* findiff_x_u_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/Makefile.am0000644000076600007660000000472111765704451017370 0ustar coincoin# Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2107 2012-06-12 18:23:37Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpAlgTypes.hpp \ IpIpoptApplication.hpp \ IpNLP.hpp \ IpReturnCodes.h \ IpReturnCodes.hpp \ IpReturnCodes_inc.h \ IpReturnCodes.inc \ IpSolveStatistics.hpp \ IpStdCInterface.h \ IpTNLP.hpp \ IpTNLPAdapter.hpp \ IpTNLPReducer.hpp lib_LTLIBRARIES = libipopt.la libipopt_la_SOURCES = \ IpAlgTypes.hpp \ IpInterfacesRegOp.cpp IpInterfacesRegOp.hpp \ IpIpoptApplication.cpp IpIpoptApplication.hpp \ IpNLP.hpp \ IpReturnCodes.h \ IpReturnCodes.hpp \ IpSolveStatistics.cpp IpSolveStatistics.hpp \ IpStdCInterface.cpp IpStdCInterface.h \ IpStdFInterface.c \ IpStdInterfaceTNLP.cpp IpStdInterfaceTNLP.hpp \ IpTNLP.hpp \ IpTNLPAdapter.cpp IpTNLPAdapter.hpp \ IpTNLPReducer.cpp IpTNLPReducer.hpp libipopt_la_LIBADD = $(IPALLLIBS) libipopt_la_DEPENDENCIES = $(IPALLLIBS) libipopt_la_LDFLAGS = $(LT_LDFLAGS) CXXFLAGS += -I`$(CYGPATH_W) $(srcdir)/../Common` \ -I`$(CYGPATH_W) $(srcdir)/../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../Algorithm/LinearSolvers` \ -I`$(CYGPATH_W) $(srcdir)/../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../Algorithm/Inexact` \ -I`$(CYGPATH_W) $(srcdir)/../contrib/CGPenalty` \ -I`$(CYGPATH_W) $(srcdir)/../contrib/LinearSolverLoader` \ $(HSL_CFLAGS) CFLAGS += -I`$(CYGPATH_W) $(srcdir)/../Common` \ $(HSL_CFLAGS) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpAlgTypes.hppbak \ IpInterfacesRegOp.cppbak IpInterfacesRegOp.hppbak \ IpIpoptApplication.cppbak IpIpoptApplication.hppbak \ IpNLP.hppbak \ IpSolveStatistics.cppbak IpSolveStatistics.hppbak \ IpStdCInterface.cppbak \ IpStdInterfaceTNLP.cppbak IpStdInterfaceTNLP.hppbak \ IpTNLP.hppbak \ IpTNLPAdapter.cppbak IpTNLPAdapter.hppbak \ IpTNLPReducer.cppbak IpTNLPReducer.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ CLEANFILES = DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Interfaces/IpIpoptApplication.hpp0000644000076600007660000002124012164277047021610 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptApplication.hpp 2346 2013-07-01 13:03:35Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIPOPTAPPLICATION_HPP__ #define __IPIPOPTAPPLICATION_HPP__ #ifndef IPOPT_EXPORT #ifdef _MSC_VER #ifdef IPOPT_DLL #define IPOPT_EXPORT(type) __declspec(dllexport) type __cdecl #else #define IPOPT_EXPORT(type) type __cdecl #endif #else #define IPOPT_EXPORT(type) type #endif #endif #include #include "IpJournalist.hpp" #include "IpTNLP.hpp" #include "IpNLP.hpp" /* Return codes for the Optimize call for an application */ #include "IpReturnCodes.hpp" namespace Ipopt { DECLARE_STD_EXCEPTION(IPOPT_APPLICATION_ERROR); /* forward declarations */ class IpoptAlgorithm; class IpoptNLP; class IpoptData; class IpoptCalculatedQuantities; class AlgorithmBuilder; class RegisteredOptions; class OptionsList; class SolveStatistics; /** This is the main application class for making calls to Ipopt. */ class IpoptApplication : public ReferencedObject { public: IpoptApplication(bool create_console_out = true, bool create_empty = false); /** Another constructor that assumes that the code in the * (default) constructor has already been executed */ IpoptApplication(SmartPtr reg_options, SmartPtr options, SmartPtr jnlst); virtual ~IpoptApplication(); /** Method for creating a new IpoptApplication that uses the same * journalist and registered options, and a copy of the options list. */ virtual SmartPtr clone(); /** Initialization method. This method reads options from the * input stream and initializes the journalists. It returns * something other than Solve_Succeeded if there was a * problem in the initialization (such as an invalid option). * You should call one of the initialization methods at some * point before the first optimize call. */ virtual ApplicationReturnStatus Initialize(std::istream& is); /** Initialization method. This method reads options from the * params file and initializes the journalists. It returns * something other than Solve_Succeeded if there was a * problem in the initialization (such as an invalid option). * You should call one of the initialization methods at some * point before the first optimize call. * Note: You can skip the processing of a params file by * setting params_file to "". */ virtual ApplicationReturnStatus Initialize(std::string params_file); /** Initialize method. This method reads the options file specified * by the option_file_name option and initializes the journalists. * You should call this method at some point before the first optimize * call. * It returns something other than Solve_Succeeded if there was a * problem in the initialization (such as an invalid option). */ virtual ApplicationReturnStatus Initialize(); /**@name Solve methods */ //@{ /** Solve a problem that inherits from TNLP */ virtual ApplicationReturnStatus OptimizeTNLP(const SmartPtr& tnlp); /** Solve a problem that inherits from NLP */ virtual ApplicationReturnStatus OptimizeNLP(const SmartPtr& nlp); /** Solve a problem that inherits from NLP */ virtual ApplicationReturnStatus OptimizeNLP(const SmartPtr& nlp, SmartPtr& alg_builder); /** Solve a problem (that inherits from TNLP) for a repeated time. * The OptimizeTNLP method must have been called before. The * TNLP must be the same object, and the structure (number of * variables and constraints and position of nonzeros in Jacobian * and Hessian must be the same). */ virtual ApplicationReturnStatus ReOptimizeTNLP(const SmartPtr& tnlp); /** Solve a problem (that inherits from NLP) for a repeated time. * The OptimizeNLP method must have been called before. The * NLP must be the same object, and the structure (number of * variables and constraints and position of nonzeros in Jacobian * and Hessian must be the same). */ virtual ApplicationReturnStatus ReOptimizeNLP(const SmartPtr& nlp); //@} /** Method for opening an output file with given print_level. * Returns false if there was a problem. */ virtual bool OpenOutputFile(std::string file_name, EJournalLevel print_level); /**@name Accessor methods */ //@{ /** Get the Journalist for printing output */ virtual SmartPtr Jnlst() { return jnlst_; } /** Get a pointer to RegisteredOptions object to * add new options */ virtual SmartPtr RegOptions() { return reg_options_; } /** Get the options list for setting options */ virtual SmartPtr Options() { return options_; } /** Get the options list for setting options (const version) */ virtual SmartPtr Options() const { return ConstPtr(options_); } /** Get the object with the statistics about the most recent * optimization run. */ virtual SmartPtr Statistics(); /** Get the IpoptNLP Object */ virtual SmartPtr IpoptNLPObject(); /** Get the IpoptData Object */ SmartPtr IpoptDataObject(); /** Get the IpoptCQ Object */ virtual SmartPtr IpoptCQObject(); /** Get the Algorithm Object */ SmartPtr AlgorithmObject(); //@} /** Method for printing Ipopt copyright message now instead of * just before the optimization. If you want to have the copy * right message printed earlier than by default, call this * method at the convenient time. */ void PrintCopyrightMessage(); /** @name Methods for IpoptTypeInfo */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Method to registering all Ipopt options. */ static void RegisterAllIpoptOptions(const SmartPtr& roptions); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ // IpoptApplication(); /** Copy Constructor */ IpoptApplication(const IpoptApplication&); /** Overloaded Equals Operator */ void operator=(const IpoptApplication&); //@} /** Method for the actual optimize call of the Ipopt algorithm. * This is used both for Optimize and ReOptimize */ ApplicationReturnStatus call_optimize(); /**@name Variables that customize the application behavior */ //@{ /** Decide whether or not the ipopt.opt file should be read */ bool read_params_dat_; //@} /** Journalist for reporting output */ SmartPtr jnlst_; /** RegisteredOptions */ SmartPtr reg_options_; /** OptionsList used for the application */ SmartPtr options_; /** Object for storing statistics about the most recent * optimization run. */ SmartPtr statistics_; /** Object with the algorithm sceleton. */ SmartPtr alg_; /** IpoptNLP Object for the NLP. We keep this around for a * ReOptimize warm start. */ SmartPtr ip_nlp_; /** IpoptData Object for the NLP. We keep this around for a * ReOptimize warm start. */ SmartPtr ip_data_; /** IpoptCalculatedQuantities Object for the NLP. We keep this * around for a ReOptimize warm start. */ SmartPtr ip_cq_; /** Pointer to the TNLPAdapter used to convert the TNLP to an NLP. * We keep this around for the ReOptimizerTNLP call. */ SmartPtr nlp_adapter_; /** @name Algorithmic parameters */ //@{ /** Flag indicating if we are to use the inexact linear solver option */ bool inexact_algorithm_; /** Flag indicating if all bounds should be replaced by inequality * constraints. This is necessary for the inexact algorithm. */ bool replace_bounds_; //@} }; } // namespace Ipopt extern "C" IPOPT_EXPORT(class Ipopt::IpoptApplication *) IpoptApplicationFactory(); #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpReturnCodes_inc.h0000644000076600007660000000274112132560770021055 0ustar coincoin/*********************************************************************** // Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpReturnCodes_inc.h 2216 2013-04-14 17:06:00Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 ************************************************************************/ /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ /* !!!!!!!!! REMEMBER TO UPDATE IpReturnCodes.inc and Ipopt.java !!!!!!!! */ /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ /** Return codes for the Optimize call for an application */ enum ApplicationReturnStatus { Solve_Succeeded=0, Solved_To_Acceptable_Level=1, Infeasible_Problem_Detected=2, Search_Direction_Becomes_Too_Small=3, Diverging_Iterates=4, User_Requested_Stop=5, Feasible_Point_Found=6, Maximum_Iterations_Exceeded=-1, Restoration_Failed=-2, Error_In_Step_Computation=-3, Maximum_CpuTime_Exceeded=-4, Not_Enough_Degrees_Of_Freedom=-10, Invalid_Problem_Definition=-11, Invalid_Option=-12, Invalid_Number_Detected=-13, Unrecoverable_Exception=-100, NonIpopt_Exception_Thrown=-101, Insufficient_Memory=-102, Internal_Error=-199 }; /** enum to indicate the mode in which the algorithm is */ enum AlgorithmMode { RegularMode=0, RestorationPhaseMode=1 }; Ipopt-3.11.4/Ipopt/src/Interfaces/IpReturnCodes.hpp0000644000076600007660000000111711504216567020564 0ustar coincoin/*********************************************************************** // Copyright (C) 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpReturnCodes.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2006-03-01 ************************************************************************/ #ifndef __IPRETURNCODES_HPP__ #define __IPRETURNCODES_HPP__ /* include from a common include file */ namespace Ipopt { #include "IpReturnCodes_inc.h" } #endif Ipopt-3.11.4/Ipopt/src/Interfaces/Makefile.in0000644000076600007660000006260712156624616017407 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/Interfaces DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includeipoptdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = am_libipopt_la_OBJECTS = IpInterfacesRegOp.lo IpIpoptApplication.lo \ IpSolveStatistics.lo IpStdCInterface.lo IpStdFInterface.lo \ IpStdInterfaceTNLP.lo IpTNLPAdapter.lo IpTNLPReducer.lo libipopt_la_OBJECTS = $(am_libipopt_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libipopt_la_SOURCES) DIST_SOURCES = $(libipopt_la_SOURCES) includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ -I`$(CYGPATH_W) $(srcdir)/../Common` $(HSL_CFLAGS) COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ -I`$(CYGPATH_W) $(srcdir)/../Common` \ -I`$(CYGPATH_W) $(srcdir)/../LinAlg` -I`$(CYGPATH_W) \ $(srcdir)/../Algorithm/LinearSolvers` -I`$(CYGPATH_W) \ $(srcdir)/../LinAlg/TMatrices` -I`$(CYGPATH_W) \ $(srcdir)/../Algorithm` -I`$(CYGPATH_W) \ $(srcdir)/../Algorithm/Inexact` -I`$(CYGPATH_W) \ $(srcdir)/../contrib/CGPenalty` -I`$(CYGPATH_W) \ $(srcdir)/../contrib/LinearSolverLoader` $(HSL_CFLAGS) CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign includeipoptdir = $(includedir)/coin includeipopt_HEADERS = \ IpAlgTypes.hpp \ IpIpoptApplication.hpp \ IpNLP.hpp \ IpReturnCodes.h \ IpReturnCodes.hpp \ IpReturnCodes_inc.h \ IpReturnCodes.inc \ IpSolveStatistics.hpp \ IpStdCInterface.h \ IpTNLP.hpp \ IpTNLPAdapter.hpp \ IpTNLPReducer.hpp lib_LTLIBRARIES = libipopt.la libipopt_la_SOURCES = \ IpAlgTypes.hpp \ IpInterfacesRegOp.cpp IpInterfacesRegOp.hpp \ IpIpoptApplication.cpp IpIpoptApplication.hpp \ IpNLP.hpp \ IpReturnCodes.h \ IpReturnCodes.hpp \ IpSolveStatistics.cpp IpSolveStatistics.hpp \ IpStdCInterface.cpp IpStdCInterface.h \ IpStdFInterface.c \ IpStdInterfaceTNLP.cpp IpStdInterfaceTNLP.hpp \ IpTNLP.hpp \ IpTNLPAdapter.cpp IpTNLPAdapter.hpp \ IpTNLPReducer.cpp IpTNLPReducer.hpp libipopt_la_LIBADD = $(IPALLLIBS) libipopt_la_DEPENDENCIES = $(IPALLLIBS) libipopt_la_LDFLAGS = $(LT_LDFLAGS) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpAlgTypes.hppbak \ IpInterfacesRegOp.cppbak IpInterfacesRegOp.hppbak \ IpIpoptApplication.cppbak IpIpoptApplication.hppbak \ IpNLP.hppbak \ IpSolveStatistics.cppbak IpSolveStatistics.hppbak \ IpStdCInterface.cppbak \ IpStdInterfaceTNLP.cppbak IpStdInterfaceTNLP.hppbak \ IpTNLP.hppbak \ IpTNLPAdapter.cppbak IpTNLPAdapter.hppbak \ IpTNLPReducer.cppbak IpTNLPReducer.hppbak CLEANFILES = DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .c .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Interfaces/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Interfaces/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libipopt.la: $(libipopt_la_OBJECTS) $(libipopt_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libipopt_la_LDFLAGS) $(libipopt_la_OBJECTS) $(libipopt_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInterfacesRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIpoptApplication.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSolveStatistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpStdCInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpStdFInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpStdInterfaceTNLP.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTNLPAdapter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTNLPReducer.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeipoptHEADERS install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeipoptHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-includeipoptHEADERS install-info \ install-info-am install-libLTLIBRARIES install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-includeipoptHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Interfaces/IpSolveStatistics.hpp0000644000076600007660000001244511504216567021500 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSolveStatistics.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-15 #ifndef __IPSOLVESTATISTICS_HPP__ #define __IPSOLVESTATISTICS_HPP__ #include "IpReferenced.hpp" #include "IpSmartPtr.hpp" namespace Ipopt { // forward declaration (to avoid inclusion of too many header files) class IpoptNLP; class IpoptData; class IpoptCalculatedQuantities; /** This class collects statistics about an optimziation run, such * as iteration count, final infeasibilities etc. It is meant to * provide such information to a user of Ipopt during the * finalize_solution call. */ class SolveStatistics : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Default constructor. It takes in those collecting Ipopt * objects that can provide the statistics information. Those * statistics are retrieved at the time of the constructor * call. */ SolveStatistics(const SmartPtr& ip_nlp, const SmartPtr& ip_data, const SmartPtr& ip_cq); /** Default destructor */ virtual ~SolveStatistics() {} //@} /** @name Accessor methods for retrieving different kind of solver * statistics information */ //@{ /** Iteration counts. */ virtual Index IterationCount() const; /** Total CPU time, including function evaluations. */ virtual Number TotalCpuTime() const; /** Total CPU time, including function evaluations. Included for * backward compatibility. */ Number TotalCPUTime() const { return TotalCpuTime(); } /** Total System time, including function evaluations. */ virtual Number TotalSysTime() const; /** Total wall clock time, including function evaluations. */ virtual Number TotalWallclockTime() const; /** Number of NLP function evaluations. */ virtual void NumberOfEvaluations(Index& num_obj_evals, Index& num_constr_evals, Index& num_obj_grad_evals, Index& num_constr_jac_evals, Index& num_hess_evals) const; /** Unscaled solution infeasibilities */ virtual void Infeasibilities(Number& dual_inf, Number& constr_viol, Number& complementarity, Number& kkt_error) const; /** Scaled solution infeasibilities */ virtual void ScaledInfeasibilities(Number& scaled_dual_inf, Number& scaled_constr_viol, Number& scaled_complementarity, Number& scaled_kkt_error) const; /** Final value of objective function */ virtual Number FinalObjective() const; /** Final scaled value of objective function */ virtual Number FinalScaledObjective() const; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ SolveStatistics(); /** Copy Constructor */ SolveStatistics(const SolveStatistics&); /** Overloaded Equals Operator */ void operator=(const SolveStatistics&); //@} /** @name Fields for storing the statistics data */ //@{ /** Number of iterations. */ Index num_iters_; /* Total CPU time */ Number total_cpu_time_; /* Total system time */ Number total_sys_time_; /* Total wall clock time */ Number total_wallclock_time_; /** Number of objective function evaluations. */ Index num_obj_evals_; /** Number of constraints evaluations (max of equality and * inequality) */ Index num_constr_evals_; /** Number of objective gradient evaluations. */ Index num_obj_grad_evals_; /** Number of constraint Jacobian evaluations. */ Index num_constr_jac_evals_; /** Number of Lagrangian Hessian evaluations. */ Index num_hess_evals_; /** Final scaled value of objective function */ Number scaled_obj_val_; /** Final unscaled value of objective function */ Number obj_val_; /** Final scaled dual infeasibility (max-norm) */ Number scaled_dual_inf_; /** Final unscaled dual infeasibility (max-norm) */ Number dual_inf_; /** Final scaled constraint violation (max-norm) */ Number scaled_constr_viol_; /** Final unscaled constraint violation (max-norm) */ Number constr_viol_; /** Final scaled complementarity error (max-norm) */ Number scaled_compl_; /** Final unscaled complementarity error (max-norm) */ Number compl_; /** Final overall scaled KKT error (max-norm) */ Number scaled_kkt_error_; /** Final overall unscaled KKT error (max-norm) */ Number kkt_error_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpInterfacesRegOp.hpp0000644000076600007660000000104211504216567021344 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInterfacesRegOp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #ifndef __IPINTERFACESREGOP_HPP__ #define __IPINTERFACESREGOP_HPP__ #include "IpSmartPtr.hpp" namespace Ipopt { class RegisteredOptions; void RegisterOptions_Interfaces(const SmartPtr& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpTNLPReducer.cpp0000644000076600007660000003401011504216567020407 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTNLPReducer.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-10 #include "IpTNLPReducer.hpp" #include #include namespace Ipopt { TNLPReducer::TNLPReducer(TNLP& tnlp, Index n_g_skip, const Index* index_g_skip, Index n_xL_skip, const Index* index_xL_skip, Index n_xU_skip, const Index* index_xU_skip, Index n_x_fix, const Index* index_x_fix) : tnlp_(&tnlp), n_g_skip_(n_g_skip), index_g_skip_(NULL), g_keep_map_(NULL), m_reduced_(-1), jac_g_skipped_(NULL), n_xL_skip_(n_xL_skip), index_xL_skip_(NULL), n_xU_skip_(n_xU_skip), index_xU_skip_(NULL), n_x_fix_(n_x_fix), index_x_fix_(NULL) { index_g_skip_ = new Index[n_g_skip_+1]; for (Index i=0; iget_nlp_info(n, m_orig_, nnz_jac_g_orig_, nnz_h_lag, index_style_orig_); if (!retval) return false; // If we haven't computed the conversion map yet, let's to this now if (m_reduced_ == -1) { if (index_style_orig_ == FORTRAN_STYLE) { for (Index i=0; ieval_jac_g(n, NULL, false, m_orig_, nnz_jac_g_orig_, iRow, jCol, NULL); if (!retval) { delete [] iRow; delete [] jCol; } nnz_jac_g_reduced_ = 0; nnz_jac_g_skipped_ = 0; for (Index i=0; iget_bounds_info(n, x_l, x_u, m_orig_, g_l_orig, g_u_orig); if (retval) { if (n_x_fix_>0 || n_xL_skip_>0 || n_xU_skip_>0) { const Number huge = std::numeric_limits::max(); // If there are fixed variables, we need to compute the starting // point to know what to fix the variable to Number* x_start = NULL; if (n_x_fix_>0) { x_start = new Number[n]; retval = tnlp_->get_starting_point(n, true, x_start, false, NULL, NULL, m_orig_, false, NULL); if (!retval) return false; } Index count_xL = 0; Index count_xU = 0; Index count_x = 0; for (Index i=0; i= 0) { g_l[new_index] = g_l_orig[i]; g_u[new_index] = g_u_orig[i]; } } } delete [] g_l_orig; delete [] g_u_orig; return retval; } bool TNLPReducer::get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) { Number* g_scaling_orig = new Number[m_orig_]; bool retval = tnlp_->get_scaling_parameters(obj_scaling, use_x_scaling, n, x_scaling, use_g_scaling, m_orig_, g_scaling_orig); if (retval && use_g_scaling) { for (Index i=0; i= 0) { g_scaling[new_index] = g_scaling_orig[i]; } } } delete [] g_scaling_orig; return retval; } bool TNLPReducer::get_variables_linearity(Index n, LinearityType* var_types) { return tnlp_->get_variables_linearity(n, var_types); } bool TNLPReducer::get_constraints_linearity(Index m, LinearityType* const_types) { LinearityType* const_types_orig = new LinearityType[m_orig_]; bool retval = tnlp_->get_constraints_linearity(m_orig_, const_types_orig); if (retval) { for (Index i=0; i= 0) { const_types[new_index] = const_types_orig[i]; } } } delete [] const_types_orig; return retval; } bool TNLPReducer::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { Number* lambda_orig = NULL; if (init_lambda) { lambda_orig = new Number[m_orig_]; } bool retval = tnlp_->get_starting_point(n, init_x, x, init_z, z_L, z_U, m_orig_, init_lambda, lambda_orig); if (retval && init_lambda) { for (Index i=0; i= 0) { lambda[new_index] = lambda_orig[i]; } } } delete [] lambda_orig; return retval; } bool TNLPReducer::get_warm_start_iterate(IteratesVector& warm_start_iterate) { return tnlp_->get_warm_start_iterate(warm_start_iterate); } bool TNLPReducer::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { return tnlp_->eval_f(n, x, new_x, obj_value); } bool TNLPReducer::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { return tnlp_->eval_grad_f(n, x, new_x, grad_f); } bool TNLPReducer::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { Number* g_orig = new Number[m_orig_]; bool retval = tnlp_->eval_g(n, x, new_x, m_orig_, g_orig); if (retval) { for (Index i=0; i= 0) { g[new_index] = g_orig[i]; } } } delete [] g_orig; return retval; } bool TNLPReducer::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { bool retval; if (iRow) { delete [] jac_g_skipped_; jac_g_skipped_ = NULL; Index* iRow_orig = new Index[nnz_jac_g_orig_]; Index* jCol_orig = new Index[nnz_jac_g_orig_]; retval = tnlp_->eval_jac_g(n, x, new_x, m_orig_, nnz_jac_g_orig_, iRow_orig, jCol_orig, values); Index offset = 0; if (index_style_orig_ == FORTRAN_STYLE) { offset = 1; } if (retval) { jac_g_skipped_ = new Index[nnz_jac_g_skipped_+1]; Index count = 0; Index count2 = 0; for (Index i=0; i=0) { iRow[count] = irow_red + offset; jCol[count] = jCol_orig[i]; count++; } else { jac_g_skipped_[count2] = i; count2++; } } DBG_ASSERT(count == nnz_jac_g_reduced_); DBG_ASSERT(count2 == nnz_jac_g_skipped_); jac_g_skipped_[nnz_jac_g_skipped_] = -1; } delete [] iRow_orig; delete [] jCol_orig; } else { Number* values_orig = new Number[nnz_jac_g_orig_]; retval = tnlp_->eval_jac_g(n, x, new_x, m_orig_, nnz_jac_g_orig_, iRow, jCol, values_orig); if (retval) { Index count = 0; Index count2 = 0; for (Index i=0; ieval_h(n, x, new_x, obj_factor, m_orig_, lambda, new_lambda, nele_hess, iRow, jCol, values); } Number* lambda_orig = new Number[m_orig_]; for (Index i=0; i= 0) { lambda_orig[i] = lambda[new_index]; } else { lambda_orig[i] = 0.; } } bool retval = tnlp_->eval_h(n, x, new_x, obj_factor, m_orig_, lambda_orig, new_lambda, nele_hess, iRow, jCol, values); delete [] lambda_orig; return retval; } void TNLPReducer::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { Number* g_orig = new Number[m_orig_]; Number* lambda_orig = new Number[m_orig_]; // call evaluation method to get correct constraint values tnlp_->eval_g(n, x, true, m_orig_, g_orig); // fill unknown multipliers with 0 for (Index i=0; i= 0) { lambda_orig[i] = lambda[new_index]; } else { lambda_orig[i] = 0.; } } tnlp_->finalize_solution(status, n, x, z_L, z_U, m_orig_, g_orig, lambda_orig, obj_value, ip_data, ip_cq); delete [] lambda_orig; delete [] g_orig; } bool TNLPReducer::intermediate_callback(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { return tnlp_->intermediate_callback(mode, iter, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials, ip_data, ip_cq); } Index TNLPReducer::get_number_of_nonlinear_variables() { return tnlp_->get_number_of_nonlinear_variables(); } bool TNLPReducer::get_list_of_nonlinear_variables(Index num_nonlin_vars, Index* pos_nonlin_vars) { return tnlp_->get_list_of_nonlinear_variables(num_nonlin_vars, pos_nonlin_vars); } } Ipopt-3.11.4/Ipopt/src/Interfaces/IpStdFInterface.c0000644000076600007660000002533211504216567020450 0ustar coincoin/******************************************************************** Copyright (C) 2004, 2010 International Business Machines and others. All Rights Reserved. This code is published under the Eclipse Public License. $Id: IpStdFInterface.c 1861 2010-12-21 21:34:47Z andreasw $ Authors: Carl Laird, Andreas Waechter IBM 2004-09-03 ********************************************************************/ #include "IpStdCInterface.h" #include "IpoptConfig.h" #include #include #include /* ToDo: The following needs to be adapted based on configuration */ typedef FORTRAN_INTEGER_TYPE fint; typedef double fdouble; typedef long fptr; /** Return value for indicating that evaluation could be done without problem. */ static const fint OKRetVal = 0; static const fint NotOKRetVal = 1; /* Function pointer types for the Fortran callback functions */ typedef void (*FEval_F_CB)(fint* N, fdouble* X, fint* NEW_X, fdouble* OBJVAL, fint* IDAT, fdouble* DDAT, fint* IERR); typedef void (*FEval_G_CB)(fint* N, fdouble* X, fint* NEW_X, fint* M, fdouble* G, fint* IDAT, fdouble* DDAT, fint* IERR); typedef void (*FEval_Grad_F_CB)(fint *N, fdouble* X, fint* NEW_X, fdouble* GRAD, fint* IDAT, fdouble* DDAT, fint* IERR); typedef void (*FEval_Jac_G_CB)(fint* TASK, fint* N, fdouble* X, fint* NEW_X, fint* M, fint* NNZJAC, fint* IROW, fint* JCOL, fdouble* VALUES, fint* IDAT, fdouble* DDAT, fint* IERR); typedef void (*FEval_Hess_CB)(fint* TASK, fint* N, fdouble* X, fint* NEW_X, fdouble *OBJFACT, fint* M, fdouble* LAMBDA, fint* NEW_LAM, fint* NNZHESS, fint* IROW, fint* JCOL, fdouble* VALUES, fint* IDAT, fdouble* DDAT, fint* IERR); typedef void (*FIntermediate_CB)(fint* ALG_MODE, fint* ITER_COUNT, fdouble* OBJVAL, fdouble* INF_PR, fdouble* INF_DU, fdouble* MU, fdouble* DNORM, fdouble* REGU_SIZE, fdouble* ALPHA_DU, fdouble* ALPHA_PR, fint* LS_TRIAL, fint* IDAT, fdouble* DDAT, fint* ISTOP); struct _FUserData { fint* IDAT; fdouble* DDAT; FEval_F_CB EVAL_F; FEval_G_CB EVAL_G; FEval_Grad_F_CB EVAL_GRAD_F; FEval_Jac_G_CB EVAL_JAC_G; FEval_Hess_CB EVAL_HESS; FIntermediate_CB INTERMEDIATE_CB; IpoptProblem Problem; }; typedef struct _FUserData FUserData; static Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data) { fint N = n; fint NEW_X = new_x; FUserData* fuser_data = (FUserData*)user_data; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint IERR=0; fuser_data->EVAL_F(&N, x, &NEW_X, obj_value, IDAT, DDAT, &IERR); return (Bool) (IERR==OKRetVal); } static Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data) { fint N = n; fint NEW_X = new_x; FUserData* fuser_data = (FUserData*)user_data; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint IERR=0; fuser_data->EVAL_GRAD_F(&N, x, &NEW_X, grad_f, IDAT, DDAT, &IERR); return (Bool) (IERR==OKRetVal); } static Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data) { fint N = n; fint NEW_X = new_x; fint M = m; FUserData* fuser_data = (FUserData*)user_data; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint IERR=0; fuser_data->EVAL_G(&N, x, &NEW_X, &M, g, IDAT, DDAT, &IERR); return (Bool) (IERR==OKRetVal); } static Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { fint N = n; fint NEW_X = new_x; fint M = m; fint NNZJAC = nele_jac; fint TASK; FUserData* fuser_data = (FUserData*)user_data; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint IERR=0; if(iRow && jCol && !values) { /* Only request the structure */ TASK = 0; } else if (!iRow && !jCol && values) { /* Only request the values */ TASK = 1; } else { printf("Error in IpStdFInterface eval_jac_g!\n"); return (Bool) 0; } fuser_data->EVAL_JAC_G(&TASK, &N, x, &NEW_X, &M, &NNZJAC, iRow, jCol, values, IDAT, DDAT, &IERR); return (Bool) (IERR==OKRetVal); } static Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { fint N = n; fint NEW_X = new_x; fint M = m; fint NEW_LAM = new_lambda; fint NNZHESS = nele_hess; fint TASK; FUserData* fuser_data = (FUserData*)user_data; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint IERR=0; if(iRow && jCol && !values) { /* Only request the structure */ TASK = 0; } else if (!iRow && !jCol && values) { /* Only request the values */ TASK = 1; } else { printf("Error in IpStdFInterface eval_hess!\n"); return (Bool) 0; } fuser_data->EVAL_HESS(&TASK, &N, x, &NEW_X, &obj_factor, &M, lambda, &NEW_LAM, &NNZHESS, iRow, jCol, values, IDAT, DDAT, &IERR); return (Bool) (IERR==OKRetVal); } static Bool intermediate_cb(Index alg_mod, Index iter_count, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, UserDataPtr user_data) { FUserData* fuser_data = (FUserData*)user_data; fint ALG_MODE = alg_mod; fint ITER_COUNT = iter_count; fdouble OBJVAL = obj_value; fdouble INF_PR = inf_pr; fdouble INF_DU = inf_du; fdouble MU = mu; fdouble DNORM = d_norm; fdouble REGU_SIZE = regularization_size; fdouble ALPHA_DU = alpha_du; fdouble ALPHA_PR = alpha_pr; fint LS_TRIAL = ls_trials; fint* IDAT = fuser_data->IDAT; fdouble* DDAT = fuser_data->DDAT; fint ISTOP=0; if (!fuser_data->INTERMEDIATE_CB) return (Bool) TRUE; fuser_data->INTERMEDIATE_CB(&ALG_MODE, &ITER_COUNT, &OBJVAL, &INF_PR, &INF_DU, &MU, &DNORM, ®U_SIZE, &ALPHA_DU, &ALPHA_PR, &LS_TRIAL, IDAT, DDAT, &ISTOP); return (Bool) (ISTOP==OKRetVal); } fptr F77_FUNC(ipcreate,IPCREATE) (fint* N, fdouble* X_L, fdouble* X_U, fint* M, fdouble* G_L, fdouble* G_U, fint* NELE_JAC, fint* NELE_HESS, fint* IDX_STY, FEval_F_CB EVAL_F, FEval_G_CB EVAL_G, FEval_Grad_F_CB EVAL_GRAD_F, FEval_Jac_G_CB EVAL_JAC_G, FEval_Hess_CB EVAL_HESS) { Index n = *N; Index m = *M; Index nele_jac = *NELE_JAC; Index nele_hess = *NELE_HESS; Index index_style = *IDX_STY; FUserData* fuser_data; fuser_data = (FUserData*) malloc(sizeof(FUserData)); /* First create a new IpoptProblem object; if that fails return 0 */ fuser_data->Problem = CreateIpoptProblem(n, X_L, X_U, m, G_L, G_U, nele_jac, nele_hess, index_style, eval_f, eval_g, eval_grad_f, eval_jac_g, eval_h); if (fuser_data->Problem == NULL) { free(fuser_data); return (fptr)NULL; } /* Store the information for the callback function */ fuser_data->EVAL_F = EVAL_F; fuser_data->EVAL_G = EVAL_G; fuser_data->EVAL_GRAD_F = EVAL_GRAD_F; fuser_data->EVAL_JAC_G = EVAL_JAC_G; fuser_data->EVAL_HESS = EVAL_HESS; fuser_data->INTERMEDIATE_CB = NULL; return (fptr)fuser_data; } void F77_FUNC(ipfree,IPFREE) (fptr* FProblem) { FUserData* fuser_data = (FUserData*) *FProblem; FreeIpoptProblem(fuser_data->Problem); free(fuser_data); *FProblem = (fptr)NULL; } fint F77_FUNC(ipsolve,IPSOLVE) (fptr* FProblem, fdouble* X, fdouble* G, fdouble* OBJ_VAL, fdouble* MULT_G, fdouble* MULT_X_L, fdouble* MULT_X_U, fint* IDAT, fdouble* DDAT) { FUserData* fuser_data = (FUserData*) *FProblem; UserDataPtr user_data; fuser_data->IDAT = IDAT; fuser_data->DDAT = DDAT; user_data = (UserDataPtr) fuser_data; return (fint)IpoptSolve(fuser_data->Problem, X, G, OBJ_VAL, MULT_G, MULT_X_L, MULT_X_U, user_data); } static char* f2cstr(char* FSTR, int slen) { int len; char* cstr; for (len=slen;len>0;len--) { if (FSTR[len-1]!=' ') { break; } } cstr = (char*)malloc(sizeof(char)*(len+1)); strncpy(cstr, FSTR, len); cstr[len]='\0'; return cstr; } /* ToDo make sure position of vlen and klen are at the right place */ fint F77_FUNC(ipaddstroption,IPADDSTROPTION) (fptr* FProblem, char* KEYWORD, char* VALUE, int klen, int vlen) { char* keyword; char* val; FUserData* fuser_data = (FUserData*) *FProblem; fint retval; keyword = f2cstr(KEYWORD, klen); val = f2cstr(VALUE, vlen); retval = AddIpoptStrOption(fuser_data->Problem, keyword, val); free(val); free(keyword); if (retval) { return OKRetVal; } else { return NotOKRetVal; } } fint F77_FUNC(ipaddnumoption,IPADDNUMOPTION) (fptr* FProblem, char* KEYWORD, fdouble* VALUE, int klen) { char* keyword; FUserData* fuser_data = (FUserData*) *FProblem; fint retval; keyword = f2cstr(KEYWORD, klen); retval = AddIpoptNumOption(fuser_data->Problem, keyword, *VALUE); free(keyword); if (retval) { return OKRetVal; } else { return NotOKRetVal; } } fint F77_FUNC(ipaddintoption,IPADDINTOPTION) (fptr* FProblem, char* KEYWORD, fint* VALUE, int klen) { char* keyword; FUserData* fuser_data = (FUserData*) *FProblem; Int value = *VALUE; fint retval; keyword = f2cstr(KEYWORD, klen); retval = AddIpoptIntOption(fuser_data->Problem, keyword, value); free(keyword); if (retval) { return OKRetVal; } else { return NotOKRetVal; } } fint F77_FUNC(ipopenoutputfile,IPOPENOUTPUTFILE) (fptr* FProblem, char* FILENAME, fint* PRINTLEVEL, int flen) { char* filename; FUserData* fuser_data = (FUserData*) *FProblem; Int printlevel = *PRINTLEVEL; fint retval; filename = f2cstr(FILENAME, flen); retval = OpenIpoptOutputFile(fuser_data->Problem, filename, printlevel); free(filename); if (retval) { return OKRetVal; } else { return NotOKRetVal; } } void F77_FUNC(ipsetcallback,IPSETCALLBACK) (fptr* FProblem, FIntermediate_CB inter_cb) { FUserData* fuser_data = (FUserData*) *FProblem; fuser_data->INTERMEDIATE_CB = inter_cb; SetIntermediateCallback(fuser_data->Problem, intermediate_cb); } void F77_FUNC(ipunsetcallback,IPUNSETCALLBACK) (fptr* FProblem) { FUserData* fuser_data = (FUserData*) *FProblem; fuser_data->INTERMEDIATE_CB = NULL; SetIntermediateCallback(fuser_data->Problem, NULL); } Ipopt-3.11.4/Ipopt/src/Interfaces/IpInterfacesRegOp.cpp0000644000076600007660000000144511504216567021346 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInterfacesRegOp.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #include "IpInterfacesRegOp.hpp" #include "IpRegOptions.hpp" #include "IpIpoptApplication.hpp" #include "IpTNLPAdapter.hpp" namespace Ipopt { void RegisterOptions_Interfaces(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Uncategorized"); IpoptApplication::RegisterOptions(roptions); roptions->SetRegisteringCategory("Uncategorized"); TNLPAdapter::RegisterOptions(roptions); roptions->SetRegisteringCategory("Uncategorized"); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Interfaces/IpStdCInterface.cpp0000644000076600007660000001727111717204130020775 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpStdCInterface.cpp 2094 2012-02-16 13:44:56Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpStdCInterface.h" #include "IpStdInterfaceTNLP.hpp" #include "IpOptionsList.hpp" #include "IpIpoptApplication.hpp" struct IpoptProblemInfo { Index n; Number* x_L; Number* x_U; Index m; Number* g_L; Number* g_U; Index nele_jac; Index nele_hess; Index index_style; Eval_F_CB eval_f; Eval_G_CB eval_g; Eval_Grad_F_CB eval_grad_f; Eval_Jac_G_CB eval_jac_g; Eval_H_CB eval_h; Intermediate_CB intermediate_cb; Ipopt::SmartPtr app; Number obj_scaling; Number* x_scaling; Number* g_scaling; }; IpoptProblem CreateIpoptProblem( Index n, Number* x_L, Number* x_U, Index m, Number* g_L, Number* g_U, Index nele_jac, Index nele_hess, Index index_style, Eval_F_CB eval_f, Eval_G_CB eval_g, Eval_Grad_F_CB eval_grad_f, Eval_Jac_G_CB eval_jac_g, Eval_H_CB eval_h) { // make sure input is Ok if (n<1 || m<0 || !x_L || !x_U || (m>0 && (!g_L || !g_U)) || (m==0 && nele_jac != 0) || (m>0 && nele_jac < 1) || nele_hess < 0 || !eval_f || !eval_grad_f || (m>0 && (!eval_g || !eval_jac_g))) { return NULL; } IpoptProblem retval = new IpoptProblemInfo; retval->n = n; retval->x_L = new Number[n]; for (Index i=0; ix_L[i] = x_L[i]; } retval->x_U = new Number[n]; for (Index i=0; ix_U[i] = x_U[i]; } retval->m = m; if (m>0) { retval->g_L = new Number[m]; for (Index i=0; ig_L[i] = g_L[i]; } retval->g_U = new Number[m]; for (Index i=0; ig_U[i] = g_U[i]; } } else { retval->g_L = NULL; retval->g_U = NULL; } retval->nele_jac = nele_jac; retval->nele_hess = nele_hess; retval->index_style = index_style; retval->eval_f = eval_f; retval->eval_g = eval_g; retval->eval_grad_f = eval_grad_f; retval->eval_jac_g = eval_jac_g; retval->eval_h = eval_h; retval->intermediate_cb = NULL; retval->app = new Ipopt::IpoptApplication(); retval->obj_scaling = 1; retval->x_scaling = NULL; retval->g_scaling = NULL; return retval; } void FreeIpoptProblem(IpoptProblem ipopt_problem) { delete [] ipopt_problem->x_L; delete [] ipopt_problem->x_U; if (ipopt_problem->m>0) { delete [] ipopt_problem->g_L; delete [] ipopt_problem->g_U; } ipopt_problem->app = NULL; delete [] ipopt_problem->x_scaling; delete [] ipopt_problem->g_scaling; delete ipopt_problem; } Bool AddIpoptStrOption(IpoptProblem ipopt_problem, char* keyword, char* val) { std::string tag(keyword); std::string value(val); return (Bool) ipopt_problem->app->Options()->SetStringValue(tag, value); } Bool AddIpoptNumOption(IpoptProblem ipopt_problem, char* keyword, Number val) { std::string tag(keyword); Ipopt::Number value=val; return (Bool) ipopt_problem->app->Options()->SetNumericValue(tag, value); } Bool AddIpoptIntOption(IpoptProblem ipopt_problem, char* keyword, Int val) { std::string tag(keyword); Ipopt::Index value=val; return (Bool) ipopt_problem->app->Options()->SetIntegerValue(tag, value); } Bool OpenIpoptOutputFile(IpoptProblem ipopt_problem, char* file_name, Int print_level) { std::string name(file_name); Ipopt::EJournalLevel level = Ipopt::EJournalLevel(print_level); return (Bool) ipopt_problem->app->OpenOutputFile(name, level); } Bool SetIpoptProblemScaling(IpoptProblem ipopt_problem, Number obj_scaling, Number* x_scaling, Number* g_scaling) { ipopt_problem->obj_scaling = obj_scaling; if (x_scaling) { if (!ipopt_problem->x_scaling) { ipopt_problem->x_scaling = new Number[ipopt_problem->n]; } for (::Index i=0; in; i++) { ipopt_problem->x_scaling[i] = x_scaling[i]; } } else { delete [] ipopt_problem->x_scaling; ipopt_problem->x_scaling = NULL; } if (g_scaling) { if (!ipopt_problem->g_scaling) { ipopt_problem->g_scaling = new Number[ipopt_problem->m]; } for (::Index i=0; im; i++) { ipopt_problem->g_scaling[i] = g_scaling[i]; } } else { delete [] ipopt_problem->g_scaling; ipopt_problem->g_scaling = NULL; } return (Bool)true; } Bool SetIntermediateCallback(IpoptProblem ipopt_problem, Intermediate_CB intermediate_cb) { ipopt_problem->intermediate_cb = intermediate_cb; return (Bool)true; } enum ApplicationReturnStatus IpoptSolve( IpoptProblem ipopt_problem, Number* x, Number* g, Number* obj_val, Number* mult_g, Number* mult_x_L, Number* mult_x_U, UserDataPtr user_data) { using namespace Ipopt; // Initialize and process options Ipopt::ApplicationReturnStatus retval = ipopt_problem->app->Initialize(); if (retval!=Ipopt::Solve_Succeeded) { return (::ApplicationReturnStatus) retval; } if (!x) { ipopt_problem->app->Jnlst()->Printf(J_ERROR, J_MAIN, "Error: Array x with starting point information is NULL."); return (::ApplicationReturnStatus) Ipopt::Invalid_Problem_Definition; } // Copy the starting point information ::Number* start_x = new ::Number[ipopt_problem->n]; for (::Index i=0; in; i++) { start_x[i] = x[i]; } ::Number* start_lam = NULL; if (mult_g) { start_lam = new ::Number[ipopt_problem->m]; for (::Index i=0; im; i++) { start_lam[i] = mult_g[i]; } } ::Number* start_z_L = NULL; if (mult_x_L) { start_z_L = new ::Number[ipopt_problem->n]; for (::Index i=0; in; i++) { start_z_L[i] = mult_x_L[i]; } } ::Number* start_z_U = NULL; if (mult_x_U) { start_z_U = new ::Number[ipopt_problem->n]; for (::Index i=0; in; i++) { start_z_U[i] = mult_x_U[i]; } } // Create the original nlp SmartPtr tnlp; Ipopt::ApplicationReturnStatus status; try { tnlp = new StdInterfaceTNLP(ipopt_problem->n, ipopt_problem->x_L, ipopt_problem->x_U, ipopt_problem->m, ipopt_problem->g_L, ipopt_problem->g_U, ipopt_problem->nele_jac, ipopt_problem->nele_hess, ipopt_problem->index_style, start_x, start_lam, start_z_L, start_z_U, ipopt_problem->eval_f, ipopt_problem->eval_g, ipopt_problem->eval_grad_f, ipopt_problem->eval_jac_g, ipopt_problem->eval_h, ipopt_problem->intermediate_cb, x, mult_x_L, mult_x_U, g, mult_g, obj_val, user_data, ipopt_problem->obj_scaling, ipopt_problem->x_scaling, ipopt_problem->g_scaling); status = ipopt_problem->app->OptimizeTNLP(tnlp); } catch (INVALID_STDINTERFACE_NLP& exc) { exc.ReportException(*ipopt_problem->app->Jnlst(), J_ERROR); status = Ipopt::Invalid_Problem_Definition; } catch( IpoptException& exc ) { exc.ReportException(*ipopt_problem->app->Jnlst(), J_ERROR); status = Ipopt::Unrecoverable_Exception; } delete [] start_x; delete [] start_lam; delete [] start_z_L; delete [] start_z_U; return (::ApplicationReturnStatus) status; } Ipopt-3.11.4/Ipopt/src/Interfaces/IpTNLPAdapter.cpp0000644000076600007660000032320612214316142020373 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTNLPAdapter.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpTNLPAdapter.hpp" #include "IpBlas.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpDenseVector.hpp" #include "IpExpansionMatrix.hpp" #include "IpGenTMatrix.hpp" #include "IpSymTMatrix.hpp" #include "IpTDependencyDetector.hpp" #include "IpTSymDependencyDetector.hpp" #include "IpTripletToCSRConverter.hpp" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #include "IpMa28TDependencyDetector.hpp" #ifdef COIN_HAS_MUMPS # include "IpMumpsSolverInterface.hpp" #endif #ifdef HAVE_WSMP # include "IpWsmpSolverInterface.hpp" #endif #ifdef HAVE_LINEARSOLVERLOADER # include "HSLLoader.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif TNLPAdapter::TNLPAdapter(const SmartPtr tnlp, const SmartPtr jnlst /* = NULL */) : tnlp_(tnlp), jnlst_(jnlst), full_x_(NULL), full_lambda_(NULL), full_g_(NULL), jac_g_(NULL), c_rhs_(NULL), jac_idx_map_(NULL), h_idx_map_(NULL), x_fixed_map_(NULL), findiff_jac_ia_(NULL), findiff_jac_ja_(NULL), findiff_jac_postriplet_(NULL), findiff_x_l_(NULL), findiff_x_u_(NULL) { ASSERT_EXCEPTION(IsValid(tnlp_), INVALID_TNLP, "The TNLP passed to TNLPAdapter is NULL. This MUST be a valid TNLP!"); } TNLPAdapter::~TNLPAdapter() { delete [] full_x_; delete [] full_lambda_; delete [] full_g_; delete [] jac_g_; delete [] c_rhs_; delete [] jac_idx_map_; delete [] h_idx_map_; delete [] x_fixed_map_; delete [] findiff_jac_ia_; delete [] findiff_jac_ja_; delete [] findiff_jac_postriplet_; delete [] findiff_x_l_; delete [] findiff_x_u_; } void TNLPAdapter::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("NLP"); roptions->AddNumberOption( "nlp_lower_bound_inf", "any bound less or equal this value will be considered -inf (i.e. not lower bounded).", -1e19); roptions->AddNumberOption( "nlp_upper_bound_inf", "any bound greater or this value will be considered +inf (i.e. not upper bounded).", 1e19); roptions->AddStringOption3( "fixed_variable_treatment", "Determines how fixed variables should be handled.", "make_parameter", "make_parameter", "Remove fixed variable from optimization variables", "make_constraint", "Add equality constraints fixing variables", "relax_bounds", "Relax fixing bound constraints", "The main difference between those options is that the starting " "point in the \"make_constraint\" case still has the fixed variables at " "their given values, whereas in the case \"make_parameter\" the " "functions are always evaluated with the fixed values for those " "variables. Also, for \"relax_bounds\", the fixing bound " "constraints are relaxed (according to\" bound_relax_factor\"). For " "both \"make_constraints\" and \"relax_bounds\", bound multipliers are " "computed for the fixed variables."); roptions->AddStringOption4( "dependency_detector", "Indicates which linear solver should be used to detect linearly dependent equality constraints.", "none", "none", "don't check; no extra work at beginning", "mumps", "use MUMPS", "wsmp", "use WSMP", "ma28", "use MA28", "The default and available choices depend on how Ipopt has been " "compiled. This is experimental and does not work well."); roptions->AddStringOption2( "dependency_detection_with_rhs", "Indicates if the right hand sides of the constraints should be considered during dependency detection", "no", "no", "only look at gradients", "yes", "also consider right hand side", ""); roptions->AddLowerBoundedIntegerOption( "num_linear_variables", "Number of linear variables", 0, 0, "When the Hessian is approximated, it is assumed that the first " "num_linear_variables variables are linear. The Hessian is then not " "approximated in this space. If the get_number_of_nonlinear_variables " "method in the TNLP is implemented, this option is ignored."); roptions->SetRegisteringCategory("Derivative Checker"); roptions->AddStringOption4( "derivative_test", "Enable derivative checker", "none", "none", "do not perform derivative test", "first-order", "perform test of first derivatives at starting point", "second-order", "perform test of first and second derivatives at starting point", "only-second-order", "perform test of second derivatives at starting point", "If this option is enabled, a (slow!) derivative test will be performed " "before the optimization. The test is performed at the user provided " "starting point and marks derivative values that seem suspicious"); roptions->AddLowerBoundedIntegerOption( "derivative_test_first_index", "Index of first quantity to be checked by derivative checker", -2, -2, "If this is set to -2, then all derivatives are checked. Otherwise, " "for the first derivative test it specifies the first variable for " "which the test is done (counting starts at 0). For second " "derivatives, it specifies the first constraint for which the test is " "done; counting of constraint indices starts at 0, and -1 refers to the " "objective function Hessian."); roptions->AddLowerBoundedNumberOption( "derivative_test_perturbation", "Size of the finite difference perturbation in derivative test.", 0., true, 1e-8, "This determines the relative perturbation of the variable entries."); roptions->AddLowerBoundedNumberOption( "derivative_test_tol", "Threshold for indicating wrong derivative.", 0., true, 1e-4, "If the relative deviation of the estimated derivative from the given " "one is larger than this value, the corresponding derivative is marked " "as wrong."); roptions->AddStringOption2( "derivative_test_print_all", "Indicates whether information for all estimated derivatives should be printed.", "no", "no", "Print only suspect derivatives", "yes", "Print all derivatives", "Determines verbosity of derivative checker."); roptions->AddStringOption2( "jacobian_approximation", "Specifies technique to compute constraint Jacobian", "exact", "exact", "user-provided derivatives", "finite-difference-values", "user-provided structure, values by finite differences" ); roptions->AddLowerBoundedNumberOption( "findiff_perturbation", "Size of the finite difference perturbation for derivative approximation.", 0., true, 1e-7, "This determines the relative perturbation of the variable entries."); roptions->AddLowerBoundedNumberOption( "point_perturbation_radius", "Maximal perturbation of an evaluation point.", 0., false, 10., "If a random perturbation of a points is required, this number " "indicates the maximal perturbation. This is for example used when " "determining the center point at which the finite difference derivative " "test is executed."); } bool TNLPAdapter::ProcessOptions(const OptionsList& options, const std::string& prefix) { DBG_START_METH("TNLPAdapter::ProcessOptions", dbg_verbosity); options.GetNumericValue("nlp_lower_bound_inf", nlp_lower_bound_inf_, prefix); options.GetNumericValue("nlp_upper_bound_inf", nlp_upper_bound_inf_, prefix); ASSERT_EXCEPTION(nlp_lower_bound_inf_ < nlp_upper_bound_inf_, OPTION_INVALID, "Option \"nlp_lower_bound_inf\" must be smaller than \"nlp_upper_bound_inf\"."); // Registered in IpOrigIpoptNLP options.GetNumericValue("bound_relax_factor", bound_relax_factor_, prefix); Index enum_int; options.GetEnumValue("fixed_variable_treatment", enum_int, prefix); fixed_variable_treatment_ = FixedVariableTreatmentEnum(enum_int); options.GetEnumValue("derivative_test", enum_int, prefix); derivative_test_ = DerivativeTestEnum(enum_int); options.GetNumericValue("derivative_test_perturbation", derivative_test_perturbation_, prefix); options.GetNumericValue("derivative_test_tol", derivative_test_tol_, prefix); options.GetBoolValue("derivative_test_print_all", derivative_test_print_all_, prefix); options.GetIntegerValue("derivative_test_first_index", derivative_test_first_index_, prefix); // The option warm_start_same_structure is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); // The following is registered in OrigIpoptNLP options.GetEnumValue("hessian_approximation", enum_int, prefix); hessian_approximation_ = HessianApproximationType(enum_int); options.GetIntegerValue("num_linear_variables", num_linear_variables_, prefix); options.GetEnumValue("jacobian_approximation", enum_int, prefix); jacobian_approximation_ = JacobianApproxEnum(enum_int); options.GetNumericValue("findiff_perturbation", findiff_perturbation_, prefix); options.GetNumericValue("point_perturbation_radius", point_perturbation_radius_, prefix); options.GetNumericValue("tol", tol_, prefix); options.GetBoolValue("dependency_detection_with_rhs", dependency_detection_with_rhs_, prefix); std::string dependency_detector; options.GetStringValue("dependency_detector", dependency_detector, prefix); if (dependency_detector != "none") { if (dependency_detector == "mumps") { #ifdef COIN_HAS_MUMPS SmartPtr SolverInterface; SolverInterface = new MumpsSolverInterface(); SmartPtr ScaledSolver = new TSymLinearSolver(SolverInterface, NULL); dependency_detector_ = new TSymDependencyDetector(*ScaledSolver); #else THROW_EXCEPTION(OPTION_INVALID, "Ipopt has not been compiled with MUMPS. You cannot choose \"mumps\" for \"dependency_detector\"."); #endif } else if (dependency_detector == "wsmp") { #ifdef HAVE_WSMP SmartPtr SolverInterface; SolverInterface = new WsmpSolverInterface(); SmartPtr ScaledSolver = new TSymLinearSolver(SolverInterface, NULL); dependency_detector_ = new TSymDependencyDetector(*ScaledSolver); #else THROW_EXCEPTION(OPTION_INVALID, "Ipopt has not been compiled with WSMP. You cannot choose \"wsmp\" for \"dependency_detector\"."); #endif } else if (dependency_detector == "ma28") { #ifdef COINHSL_HAS_MA28 dependency_detector_ = new Ma28TDependencyDetector(); #else # ifdef HAVE_LINEARSOLVERLOADER dependency_detector_ = new Ma28TDependencyDetector(); if (!LSL_isMA28available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected dependency detector MA28 not available.\nTried to obtain MA28 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Ipopt has not been compiled with MA28. You cannot choose \"ma28\" for \"dependency_detector\"."); # endif #endif } else { THROW_EXCEPTION(OPTION_INVALID, "Something internally wrong for \"dependency_detector\"."); } if (!dependency_detector_->ReducedInitialize(*jnlst_, options, prefix)) { return false; } } return true; } bool TNLPAdapter::GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space) { DBG_START_METH("TNLPAdapter::GetSpaces", dbg_verbosity); // First, if required, perform derivative test if (derivative_test_ != NO_TEST) { bool retval = CheckDerivatives(derivative_test_, derivative_test_first_index_); if (!retval) { return retval; } } if (warm_start_same_structure_) { ASSERT_EXCEPTION(full_x_, INVALID_WARMSTART, "warm_start_same_structure chosen, but TNLPAdapter is called for the first time."); if (IsValid(jnlst_)) { jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "Reusing previous information for warm start in TNLPAdapter.\n"); } } else { // In case the Adapter has been used before, but this is not a // warm start, make sure we delete all previously allocated // memory delete [] full_x_; full_x_ = NULL; delete [] full_lambda_; full_lambda_ = NULL; delete [] full_g_; full_g_ = NULL; delete [] jac_g_; jac_g_ = NULL; delete [] c_rhs_; c_rhs_ = NULL; delete [] jac_idx_map_; jac_idx_map_ = NULL; delete [] h_idx_map_; h_idx_map_ = NULL; delete [] x_fixed_map_; x_fixed_map_ = NULL; } // Get the full dimensions of the problem Index n_full_x, n_full_g, nz_full_jac_g, nz_full_h; bool retval = tnlp_->get_nlp_info(n_full_x, n_full_g, nz_full_jac_g, nz_full_h, index_style_); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_nlp_info returned false"); ASSERT_EXCEPTION(!warm_start_same_structure_ || (n_full_x == n_full_x_ && n_full_g == n_full_g_ && nz_full_jac_g == nz_full_jac_g_ && nz_full_h == nz_full_h_), INVALID_WARMSTART, "warm_start_same_structure chosen, but problem dimensions are different."); n_full_x_ = n_full_x; n_full_g_ = n_full_g; nz_full_jac_g_ = nz_full_jac_g; nz_full_h_ = nz_full_h; if (!warm_start_same_structure_) { // create space to store vectors that are the full length of x full_x_ = new Number[n_full_x_]; // create space to store vectors that area the full length of lambda full_lambda_ = new Number[n_full_g_]; // create space to store vectors that are the full length of g full_g_ = new Number[n_full_g_]; // check if there is any meta data for the variables and constraints StringMetaDataMapType var_string_md; IntegerMetaDataMapType var_integer_md; NumericMetaDataMapType var_numeric_md; StringMetaDataMapType con_string_md; IntegerMetaDataMapType con_integer_md; NumericMetaDataMapType con_numeric_md; if (!tnlp_->get_var_con_metadata(n_full_x_, var_string_md, var_integer_md, var_numeric_md, n_full_g_, con_string_md, con_integer_md, con_numeric_md)) { var_string_md.clear(); var_integer_md.clear(); var_numeric_md.clear(); con_string_md.clear(); con_integer_md.clear(); con_numeric_md.clear(); } // allocate internal space to store the full jacobian jac_g_ = new Number[nz_full_jac_g_]; /* Spaces for bounds. We need to remove the fixed variables * and find out which bounds do not exist. */ Number* x_l = new Number[n_full_x_]; Number* x_u = new Number[n_full_x_]; Number* g_l = new Number[n_full_g_]; Number* g_u = new Number[n_full_g_]; bool retval = tnlp_->get_bounds_info(n_full_x_, x_l, x_u, n_full_g_, g_l, g_u); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_bounds_info returned false in GetSpaces"); //********************************************************* // Create the spaces and permutation spaces //********************************************************* Index n_x_var; Index n_x_l; Index n_x_u; Index* x_not_fixed_map = new Index[n_full_x_]; Index* x_l_map = new Index[n_full_x_]; Index* x_u_map = new Index[n_full_x_]; Index n_c; Index n_d; Index n_d_l; Index n_d_u; Index* c_map = new Index[n_full_g_]; // we do not know n_c yet! Index* d_map = new Index[n_full_g_]; // we do not know n_d yet! Index* d_l_map = new Index[n_full_g_]; // " Index* d_u_map = new Index[n_full_g_]; // " bool done=false; // We might have to do the following twice: If we detect that we // don't have enought degrees of freedom, we simply redo // everything with fixed_variable_treatment to set RELAX_BOUNDS while (!done) { n_x_var = 0; n_x_l = 0; n_x_u = 0; n_x_fixed_ = 0; Index* x_fixed_map_tmp = new Index[n_full_x_]; for (Index i=0; i upper_bound) { char string[128]; Snprintf(string, 127, "There are inconsistent bounds on variable %d: lower = %25.16e and upper = %25.16e.", i, lower_bound, upper_bound); delete [] x_l; delete [] x_u; delete [] g_l; delete [] g_u; delete [] x_not_fixed_map; delete [] x_fixed_map_tmp; delete [] x_l_map; delete [] x_u_map; delete [] c_map; delete [] d_map; delete [] d_l_map; delete [] d_u_map; THROW_EXCEPTION(INVALID_TNLP, string); } else { x_not_fixed_map[n_x_var] = i; if (lower_bound > nlp_lower_bound_inf_) { x_l_map[n_x_l] = n_x_var; n_x_l++; } if (upper_bound < nlp_upper_bound_inf_) { x_u_map[n_x_u] = n_x_var; n_x_u++; } n_x_var++; } } // If there are fixed variables, we keep their position around // for a possible warm start later or if fixed variables are // treated by added equality constraints if (n_x_fixed_>0) { delete [] x_fixed_map_; x_fixed_map_ = NULL; x_fixed_map_ = new Index[n_x_fixed_]; for (Index i=0; i upper_bound) { delete [] x_l; delete [] x_u; delete [] g_l; delete [] g_u; delete [] x_not_fixed_map; delete [] x_l_map; delete [] x_u_map; delete [] c_map; delete [] d_map; delete [] d_l_map; delete [] d_u_map; char string[128]; Snprintf(string, 127, "There are inconsistent bounds on constraint %d: lower = %25.16e and upper = %25.16e.", i, lower_bound, upper_bound); THROW_EXCEPTION(INVALID_TNLP, string); } else { // inequality constraint d_map[n_d] = i; if (lower_bound > nlp_lower_bound_inf_) { d_l_map[n_d_l] = n_d; n_d_l++; } if (upper_bound < nlp_upper_bound_inf_) { d_u_map[n_d_u] = n_d; n_d_u++; } n_d++; } } if (fixed_variable_treatment_ == RELAX_BOUNDS || n_x_fixed_ == 0 || n_x_var >= n_c || n_x_var == 0) { done = true; } else { fixed_variable_treatment_ = RELAX_BOUNDS; jnlst_->Printf(J_WARNING, J_INITIALIZATION, "Too few degrees of freedom (n_x = %d, n_c = %d).\n Trying fixed_variable_treatment = RELAX_BOUNDS\n\n", n_x_var, n_c); } } // while (!done) if (n_x_var == 0) { // Check of all constraints are satisfied: for (Index i=0; ieval_g(n_full_x_, full_x_, true, n_full_g_, full_g_); ASSERT_EXCEPTION(retval, IpoptNLP::Eval_Error, "All variables are fixed, but constraints cannot be evaluated at fixed point."); } Number max_viol = 0.; for (Index i=0; ieval_f(n_full_x_, full_x_, false, obj_value); ASSERT_EXCEPTION(retval, IpoptNLP::Eval_Error, "All variables are fixed, but objective cannot be evaluated at fixed point."); // Call finalize_solution so that user has required information Number* full_z_L = new Number[n_full_x_]; Number* full_z_U = new Number[n_full_x_]; Number* full_lambda = new Number[n_full_g_]; // For now, we return zeros as multipliers... (ToDo?) const Number zero = 0.; IpBlasDcopy(n_full_x_, &zero, 0, full_z_L, 1); IpBlasDcopy(n_full_x_, &zero, 0, full_z_U, 1); IpBlasDcopy(n_full_g_, &zero, 0, full_lambda, 1); tnlp_->finalize_solution(status, n_full_x_, full_x_, full_z_L, full_z_U, n_full_g_, full_g_, full_lambda, obj_value, NULL, NULL); delete [] full_z_L; delete [] full_z_U; delete [] full_lambda; // Free memory delete [] x_not_fixed_map; delete [] x_l_map; delete [] x_u_map; delete [] c_map; delete [] d_map; delete [] d_l_map; delete [] d_u_map; delete [] x_l; delete [] x_u; delete [] g_l; delete [] g_u; // NOTE: we have passed the primal solution to the user, but not to Ipopt // that is, Ipopt's data object still holds none or another solution // However, since IpoptApplication will not call finalize_solution with this point if // it gets a NO_FREE_VARIABLES_* exception, this should be good enough. char string[128]; Snprintf(string, 127, "All variables are fixed, and constraint violation is %e", max_viol); if (status == SUCCESS) { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "All variables are fixed and constraint violation %e\n is below tolerance %e. Declaring success.\n", max_viol, tol_); THROW_EXCEPTION(NO_FREE_VARIABLES_BUT_FEASIBLE, string); } else { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "All variables are fixed and constraint violation %e\n is above tolerance %e. Declaring that problem is infeasible.\n", max_viol, tol_); THROW_EXCEPTION(NO_FREE_VARIABLES_AND_INFEASIBLE, string); } } // If requested, check if there are linearly dependent equality // constraints if (n_c>0 && IsValid(dependency_detector_)) { std::list c_deps; if (!DetermineDependentConstraints(n_x_var, x_not_fixed_map, x_l, x_u, g_l, g_u, n_c, c_map, c_deps)) { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "Dependent constraint detector had a problem, assume full rank.\n"); } c_deps.sort(); if (c_deps.size() > 0) { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "\nDetected %d linearly dependent equality constraints; taking those out.\n\n", c_deps.size()); } else { jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "\nNo dependent constraints detected.\n\n"); } if (jnlst_->ProduceOutput(J_DETAILED, J_INITIALIZATION)) { jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "\nList of indices of dependent constraints:\n"); int count=0; for (std::list::iterator i=c_deps.begin(); i!=c_deps.end(); i++) { jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "c_dep[%d] = %d\n", count++, *i); } jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "\n"); } if (c_deps.size()>0) { // Take the dependent constraints out. // We assume that the list in c_dep is sorted std::list::iterator idep = c_deps.begin(); Index new_n_c = *idep; for (Index i=*idep; i dv_x_space = new DenseVectorSpace(n_x_var); x_space_ = GetRawPtr(dv_x_space); SmartPtr dv_x_l_space = new DenseVectorSpace(n_x_l); x_l_space_ = GetRawPtr(dv_x_l_space); SmartPtr dv_x_u_space = new DenseVectorSpace(n_x_u); x_u_space_ = GetRawPtr(dv_x_u_space); if (n_x_fixed_>0 && fixed_variable_treatment_==MAKE_PARAMETER) { P_x_full_x_space_ = new ExpansionMatrixSpace(n_full_x_, n_x_var, x_not_fixed_map); P_x_full_x_ = P_x_full_x_space_->MakeNewExpansionMatrix(); } else { P_x_full_x_space_ = NULL; P_x_full_x_ = NULL; } P_x_x_L_space_ = new ExpansionMatrixSpace(n_x_var, n_x_l, x_l_map); px_l_space_ = GetRawPtr(P_x_x_L_space_); P_x_x_L_ = P_x_x_L_space_->MakeNewExpansionMatrix(); P_x_x_U_space_ = new ExpansionMatrixSpace(n_x_var, n_x_u, x_u_map); px_u_space_ = GetRawPtr(P_x_x_U_space_); P_x_x_U_ = P_x_x_U_space_->MakeNewExpansionMatrix(); // setup the variable meta data if present if (var_string_md.size() > 0) { StringMetaDataMapType::iterator iter; for (iter=var_string_md.begin(); iter != var_string_md.end(); iter++) { std::vector string_md(n_x_var); const Index* pos_idx = NULL; if (IsValid(P_x_full_x_space_)) { pos_idx = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } } else { for (Index i=0; isecond[i]; } } dv_x_space->SetStringMetaData(iter->first, string_md); string_md.clear(); string_md.resize(n_x_l); pos_idx = P_x_x_L_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_l_space->SetStringMetaData(iter->first, string_md); string_md.clear(); string_md.resize(n_x_u); pos_idx = P_x_x_U_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_u_space->SetStringMetaData(iter->first, string_md); } } if (var_integer_md.size() > 0) { IntegerMetaDataMapType::iterator iter; for (iter=var_integer_md.begin(); iter != var_integer_md.end(); iter++) { std::vector integer_md(n_x_var); const Index* pos_idx = NULL; if (IsValid(P_x_full_x_space_)) { pos_idx = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } } else { for (Index i=0; isecond[i]; } } dv_x_space->SetIntegerMetaData(iter->first, integer_md); integer_md.clear(); integer_md.resize(n_x_l); pos_idx = P_x_x_L_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_l_space->SetIntegerMetaData(iter->first, integer_md); integer_md.clear(); integer_md.resize(n_x_u); pos_idx = P_x_x_U_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_u_space->SetIntegerMetaData(iter->first, integer_md); } } if (var_numeric_md.size() > 0) { NumericMetaDataMapType::iterator iter; for (iter=var_numeric_md.begin(); iter != var_numeric_md.end(); iter++) { std::vector numeric_md(n_x_var); const Index* pos_idx = NULL; if (IsValid(P_x_full_x_space_)) { pos_idx = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } } else { for (Index i=0; isecond[i]; } } dv_x_space->SetNumericMetaData(iter->first, numeric_md); numeric_md.clear(); numeric_md.resize(n_x_l); pos_idx = P_x_x_L_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_l_space->SetNumericMetaData(iter->first, numeric_md); numeric_md.clear(); numeric_md.resize(n_x_u); pos_idx = P_x_x_U_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_x_u_space->SetNumericMetaData(iter->first, numeric_md); } } delete [] x_not_fixed_map; x_not_fixed_map = NULL; delete [] x_l_map; x_l_map = NULL; delete [] x_u_map; x_u_map = NULL; // create the required c_space SmartPtr dc_space; if (n_x_fixed_==0 || fixed_variable_treatment_==MAKE_PARAMETER) { dc_space = new DenseVectorSpace(n_c); } else { dc_space = new DenseVectorSpace(n_c+n_x_fixed_); } c_space_ = GetRawPtr(dc_space); c_rhs_ = new Number[dc_space->Dim()]; // create the internal expansion matrix for c to g P_c_g_space_ = new ExpansionMatrixSpace(n_full_g_, n_c, c_map); P_c_g_ = P_c_g_space_->MakeNewExpansionMatrix(); delete [] c_map; c_map = NULL; // create the required d_space SmartPtr dv_d_space = new DenseVectorSpace(n_d); d_space_ = GetRawPtr(dv_d_space); // create the internal expansion matrix for d to g P_d_g_space_ = new ExpansionMatrixSpace(n_full_g_, n_d, d_map); P_d_g_ = P_d_g_space_->MakeNewExpansionMatrix(); delete [] d_map; d_map = NULL; // create the required d_l space SmartPtr dv_d_l_space = new DenseVectorSpace(n_d_l); d_l_space_ = GetRawPtr(dv_d_l_space); // create the required expansion matrix for d_L to d_L_exp SmartPtr P_d_l_space = new ExpansionMatrixSpace(n_d, n_d_l, d_l_map); pd_l_space_ = GetRawPtr(P_d_l_space); delete [] d_l_map; d_l_map = NULL; // create the required d_u space SmartPtr dv_d_u_space = new DenseVectorSpace(n_d_u); d_u_space_ = GetRawPtr(dv_d_u_space); // create the required expansion matrix for d_U to d_U_exp SmartPtr P_d_u_space = new ExpansionMatrixSpace(n_d, n_d_u, d_u_map); pd_u_space_ = GetRawPtr(P_d_u_space); delete [] d_u_map; d_u_map = NULL; delete [] g_l; g_l = NULL; delete [] g_u; g_u = NULL; // set the constraint meta data if present if (con_string_md.size() > 0) { StringMetaDataMapType::iterator iter; for (iter=con_string_md.begin(); iter != con_string_md.end(); iter++) { std::vector string_md(n_c); const Index* pos_idx = P_c_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dc_space->SetStringMetaData(iter->first, string_md); string_md.clear(); string_md.resize(n_d); pos_idx = P_d_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_space->SetStringMetaData(iter->first, string_md); string_md.clear(); string_md.resize(n_d_l); pos_idx = P_d_l_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_l_space->SetStringMetaData(iter->first, string_md); string_md.clear(); string_md.resize(n_d_u); pos_idx = P_d_u_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_u_space->SetStringMetaData(iter->first, string_md); } } if (con_integer_md.size() > 0) { IntegerMetaDataMapType::iterator iter; for (iter=con_integer_md.begin(); iter != con_integer_md.end(); iter++) { std::vector integer_md(n_c); const Index* pos_idx = P_c_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dc_space->SetIntegerMetaData(iter->first, integer_md); integer_md.clear(); integer_md.resize(n_d); pos_idx = P_d_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_space->SetIntegerMetaData(iter->first, integer_md); integer_md.clear(); integer_md.resize(n_d_l); pos_idx = P_d_l_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_l_space->SetIntegerMetaData(iter->first, integer_md); integer_md.clear(); integer_md.resize(n_d_u); pos_idx = P_d_u_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_u_space->SetIntegerMetaData(iter->first, integer_md); } } if (con_numeric_md.size() > 0) { NumericMetaDataMapType::iterator iter; for (iter=con_numeric_md.begin(); iter != con_numeric_md.end(); iter++) { std::vector numeric_md(n_c); const Index* pos_idx = P_c_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dc_space->SetNumericMetaData(iter->first, numeric_md); numeric_md.clear(); numeric_md.resize(n_d); pos_idx = P_d_g_space_->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_space->SetNumericMetaData(iter->first, numeric_md); numeric_md.clear(); numeric_md.resize(n_d_l); pos_idx = P_d_l_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_l_space->SetNumericMetaData(iter->first, numeric_md); numeric_md.clear(); numeric_md.resize(n_d_u); pos_idx = P_d_u_space->ExpandedPosIndices(); for (Index i=0; isecond[pos_idx[i]]; } dv_d_u_space->SetNumericMetaData(iter->first, numeric_md); } } /** Create the matrix space for the jacobians */ // Get the non zero structure Index* g_iRow = new Index[nz_full_jac_g_]; Index* g_jCol = new Index[nz_full_jac_g_]; tnlp_->eval_jac_g(n_full_x_, NULL, false, n_full_g_, nz_full_jac_g_, g_iRow, g_jCol, NULL); if (index_style_ != TNLP::FORTRAN_STYLE) { for (Index i=0; i 0 && jacobian_approximation_ == JAC_FINDIFF_VALUES) { initialize_findiff_jac(g_iRow, g_jCol); } // ... build the non-zero structure for jac_c // ... (the permutation from rows in jac_g to jac_c is // ... the same as P_c_g_) Index nz_jac_all; if (fixed_variable_treatment_==MAKE_PARAMETER) { nz_jac_all = nz_full_jac_g_; } else { nz_jac_all = nz_full_jac_g_ + n_x_fixed_; } jac_idx_map_ = new Index[nz_jac_all]; Index* jac_c_iRow = new Index[nz_jac_all]; Index* jac_c_jCol = new Index[nz_jac_all]; Index current_nz = 0; const Index* c_row_pos = P_c_g_->CompressedPosIndices(); if (IsValid(P_x_full_x_)) { // there are missing variables x const Index* c_col_pos = P_x_full_x_->CompressedPosIndices(); for (Index i=0; iCompressedPosIndices(); if (IsValid(P_x_full_x_)) { const Index* d_col_pos = P_x_full_x_->CompressedPosIndices(); for (Index i=0; ieval_h(n_full_x_, NULL, false, 0, n_full_g_, NULL, false, nz_full_h_, full_h_iRow, full_h_jCol, NULL); if (!retval) { delete [] full_h_iRow; delete [] full_h_jCol; delete [] h_iRow; delete [] h_jCol; jnlst_->Printf(J_ERROR, J_INITIALIZATION, "Option \"hessian_approximation\" is not chosen as \"limited-memory\", but eval_h returns false.\n"); THROW_EXCEPTION(OPTION_INVALID, "eval_h is called but has not been implemented"); } if (index_style_ != TNLP::FORTRAN_STYLE) { for (Index i=0; iCompressedPosIndices(); for (Index i=0; iPrintf(J_ITERSUMMARY, J_STATISTICS, "Number of nonzeros in equality constraint Jacobian...:%9d\n", nz_jac_c_); jnlst_->Printf(J_ITERSUMMARY, J_STATISTICS, "Number of nonzeros in inequality constraint Jacobian.:%9d\n", nz_jac_d_); jnlst_->Printf(J_ITERSUMMARY, J_STATISTICS, "Number of nonzeros in Lagrangian Hessian.............:%9d\n\n", nz_h_); } return true; } bool TNLPAdapter::GetBoundsInformation(const Matrix& Px_L, Vector& x_L, const Matrix& Px_U, Vector& x_U, const Matrix& Pd_L, Vector& d_L, const Matrix& Pd_U, Vector& d_U) { // This could be done more efficiently, I have already called this method // once to setup the structure for the problem, I could store the values // and use them here ? // Actually, this is better for a warm start Number* x_l = new Number[n_full_x_]; Number* x_u = new Number[n_full_x_]; Number* g_l = new Number[n_full_g_]; Number* g_u = new Number[n_full_g_]; bool retval = tnlp_->get_bounds_info(n_full_x_, x_l, x_u, n_full_g_, g_l, g_u); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_bounds_info returned false in GetBoundsInformation"); if (fixed_variable_treatment_==MAKE_PARAMETER) { // Set the values of fixed variables for (Index i=0; i(&x_L); DBG_ASSERT(dynamic_cast(&x_L)); Number* values = dx_L->Values(); const ExpansionMatrix* em_Px_L = static_cast(&Px_L); DBG_ASSERT(dynamic_cast(&Px_L)); if (IsValid(P_x_full_x_)) { for (Index i=0; iExpandedPosIndices()[i]; const Index& full_idx = P_x_full_x_->ExpandedPosIndices()[ipopt_idx]; const Number& lower_bound = x_l[full_idx]; values[i] = lower_bound; } } else { for (Index i=0; iExpandedPosIndices()[i]; const Number& lower_bound = x_l[ipopt_idx]; values[i] = lower_bound; } } DenseVector* dx_U = static_cast(&x_U); DBG_ASSERT(dynamic_cast(&x_U)); values = dx_U->Values(); const ExpansionMatrix* em_Px_U = static_cast(&Px_U); DBG_ASSERT(dynamic_cast(&Px_U)); if (IsValid(P_x_full_x_)) { for (Index i=0; iExpandedPosIndices()[i]; const Index& full_idx = P_x_full_x_->ExpandedPosIndices()[ipopt_idx]; const Number& upper_bound = x_u[full_idx]; values[i] = upper_bound; } } else { for (Index i=0; iExpandedPosIndices()[i]; const Number& upper_bound = x_u[ipopt_idx]; values[i] = upper_bound; } } // get the bounds values (rhs values to subtract) for c // i.e. if gL == gU, then we actually have g(x) = gL = gU, // since we solve c(x) = 0, we actually need c(x) - gL = 0 for (Index i=0; iNCols(); i++) { Index full_idx = P_c_g_->ExpandedPosIndices()[i]; Number rhs = g_l[full_idx]; c_rhs_[i] = rhs; } // similarly, if we have fixed variables, consider them here if (fixed_variable_treatment_==MAKE_CONSTRAINT) { Index n_c_no_fixed = P_c_g_->NCols(); for (Index i=0; i(&d_L); DBG_ASSERT(dynamic_cast(&d_L)); values = dd_L->Values(); const ExpansionMatrix* em_Pd_L = static_cast(&Pd_L); DBG_ASSERT(dynamic_cast(&Pd_L)); for (Index i=0; iExpandedPosIndices()[i]; Index full_idx = P_d_g_->ExpandedPosIndices()[d_exp_idx]; Number lower_bound = g_l[full_idx]; values[i] = lower_bound; } DenseVector* dd_U = static_cast(&d_U); DBG_ASSERT(dynamic_cast(&d_U)); values = dd_U->Values(); const ExpansionMatrix* em_Pd_U = static_cast(&Pd_U); DBG_ASSERT(dynamic_cast(&Pd_U)); for (Index i=0; iExpandedPosIndices()[i]; Index full_idx = P_d_g_->ExpandedPosIndices()[d_exp_idx]; Number upper_bound = g_u[full_idx]; values[i] = upper_bound; } // In case we are doing finite differences, keep a copy of the bounds if (jacobian_approximation_ != JAC_EXACT) { delete [] findiff_x_l_; delete [] findiff_x_u_; findiff_x_l_ = x_l; findiff_x_u_ = x_u; x_l = NULL; x_u = NULL; } delete [] x_l; x_l = NULL; delete [] x_u; x_u = NULL; delete [] g_l; g_l = NULL; delete [] g_u; g_u = NULL; return true; } bool TNLPAdapter::GetStartingPoint(SmartPtr x, bool need_x, SmartPtr y_c, bool need_y_c, SmartPtr y_d, bool need_y_d, SmartPtr z_L, bool need_z_L, SmartPtr z_U, bool need_z_U ) { Number* full_x = new Number[n_full_x_]; Number* full_z_l = new Number[n_full_x_]; Number* full_z_u = new Number[n_full_x_]; Number* full_lambda = new Number[n_full_g_]; bool init_x = need_x; bool init_z = need_z_L || need_z_U; bool init_lambda = need_y_c || need_y_d; bool retvalue = tnlp_->get_starting_point(n_full_x_, init_x, full_x, init_z, full_z_l, full_z_u, n_full_g_, init_lambda, full_lambda); if (!retvalue) { delete [] full_x; delete [] full_z_l; delete [] full_z_u; delete [] full_lambda; return false; } if (need_x) { DenseVector* dx = static_cast(GetRawPtr(x)); DBG_ASSERT(dynamic_cast(GetRawPtr(x))); Number* values = dx->Values(); const Index& n_x_var = x->Dim(); if (IsValid(P_x_full_x_)) { const Index* x_pos = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; i(GetRawPtr(y_c)); DBG_ASSERT(dynamic_cast(GetRawPtr(y_c))); Number* values = dy_c->Values(); const Index* y_c_pos = P_c_g_->ExpandedPosIndices(); for (Index i=0; iNCols(); i++) { values[i] = full_lambda[y_c_pos[i]]; } if (fixed_variable_treatment_==MAKE_CONSTRAINT) { // ToDo maybe use info from z_L and Z_U here? const Number zero = 0.; IpBlasDcopy(n_x_fixed_, &zero, 0, &values[P_c_g_->NCols()], 1); } } if (need_y_d) { DenseVector* dy_d = static_cast(GetRawPtr(y_d)); DBG_ASSERT(dynamic_cast(GetRawPtr(y_d))); Number* values = dy_d->Values(); const Index* y_d_pos = P_d_g_->ExpandedPosIndices(); for (Index i=0; iDim(); i++) { values[i] = full_lambda[y_d_pos[i]]; } } if (need_z_L) { DenseVector* dz_l = static_cast(GetRawPtr(z_L)); DBG_ASSERT(dynamic_cast(GetRawPtr(z_L))); Number* values = dz_l->Values(); const Index& n_z_l = z_L->Dim(); const Index* z_l_pos = P_x_x_L_->ExpandedPosIndices(); if (IsValid(P_x_full_x_)) { const Index* x_pos = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; i(GetRawPtr(z_U)); DBG_ASSERT(dynamic_cast(GetRawPtr(z_U))); Number* values = dz_u->Values(); const Index* z_u_pos = P_x_x_U_->ExpandedPosIndices(); if (IsValid(P_x_full_x_)) { const Index* x_pos = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; iDim(); i++) { Index idx = z_u_pos[i]; // convert from x_u to x (ipopt) idx = x_pos[idx]; // convert from x (ipopt) to x_full values[i] = full_z_u[idx]; } } else { for (Index i=0; iDim(); i++) { Index idx = z_u_pos[i]; // convert from x_u to x (ipopt) values[i] = full_z_u[idx]; } } } delete [] full_x; full_x = NULL; delete [] full_z_l; full_z_l = NULL; delete [] full_z_u; full_z_u = NULL; delete [] full_lambda; full_lambda = NULL; return true; } bool TNLPAdapter::GetWarmStartIterate(IteratesVector& warm_start_iterate) { return tnlp_->get_warm_start_iterate(warm_start_iterate); } bool TNLPAdapter::Eval_f(const Vector& x, Number& f) { bool new_x = false; if (update_local_x(x)) { new_x = true; } return tnlp_->eval_f(n_full_x_, full_x_, new_x, f); } bool TNLPAdapter::Eval_grad_f(const Vector& x, Vector& g_f) { bool retvalue = false; bool new_x = false; if (update_local_x(x)) { new_x = true; } DenseVector* dg_f = static_cast(&g_f); DBG_ASSERT(dynamic_cast(&g_f)); Number* values = dg_f->Values(); if (IsValid(P_x_full_x_)) { Number* full_grad_f = new Number[n_full_x_]; if (tnlp_->eval_grad_f(n_full_x_, full_x_, new_x, full_grad_f)) { const Index* x_pos = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; ieval_grad_f(n_full_x_, full_x_, new_x, values); } return retvalue; } bool TNLPAdapter::Eval_c(const Vector& x, Vector& c) { bool new_x = false; if (update_local_x(x)) { new_x = true; } if (internal_eval_g(new_x)) { DenseVector* dc = static_cast(&c); DBG_ASSERT(dynamic_cast(&c)); Number* values = dc->Values(); const Index* c_pos = P_c_g_->ExpandedPosIndices(); Index n_c_no_fixed = P_c_g_->NCols(); for (Index i=0; i(&jac_c); DBG_ASSERT(dynamic_cast(&jac_c)); Number* values = gt_jac_c->Values(); for (Index i=0; i(&d); DBG_ASSERT(dynamic_cast(&d)); Number* values = dd->Values(); if (internal_eval_g(new_x)) { const Index* d_pos = P_d_g_->ExpandedPosIndices(); for (Index i=0; i(&jac_d); DBG_ASSERT(dynamic_cast(&jac_d)); Number* values = gt_jac_d->Values(); for (Index i=0; i(&h); DBG_ASSERT(dynamic_cast(&h)); Number* values = st_h->Values(); for (Index i=0; i(&h); DBG_ASSERT(dynamic_cast(&h)); Number* values = st_h->Values(); if (h_idx_map_) { Number* full_h = new Number[nz_full_h_]; if (tnlp_->eval_h(n_full_x_, full_x_, new_x, obj_factor, n_full_g_, full_lambda_, new_y, nz_full_h_, NULL, NULL, full_h)) { for (Index i=0; ieval_h(n_full_x_, full_x_, new_x, obj_factor, n_full_g_, full_lambda_, new_y, nz_full_h_, NULL, NULL, values); } return retval; } void TNLPAdapter::GetScalingParameters( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, Number& obj_scaling, SmartPtr& x_scaling, SmartPtr& c_scaling, SmartPtr& d_scaling) const { x_scaling = x_space->MakeNew(); c_scaling = c_space->MakeNew(); d_scaling = d_space->MakeNew(); DBG_ASSERT((c_scaling->Dim()+d_scaling->Dim()) == n_full_g_); DenseVector* dx = static_cast(GetRawPtr(x_scaling)); DBG_ASSERT(dynamic_cast(GetRawPtr(x_scaling))); DenseVector* dc = static_cast(GetRawPtr(c_scaling)); DBG_ASSERT(dynamic_cast(GetRawPtr(c_scaling))); DenseVector* dd = static_cast(GetRawPtr(d_scaling)); DBG_ASSERT(dynamic_cast(GetRawPtr(d_scaling))); Number* dx_values = dx->Values(); Number* dc_values = dc->Values(); Number* dd_values = dd->Values(); Number* full_g_scaling = new Number[n_full_g_]; bool use_x_scaling=true; bool use_g_scaling=true; if (IsValid(P_x_full_x_)) { Number* full_x_scaling = new Number[n_full_x_]; bool retval = tnlp_->get_scaling_parameters(obj_scaling, use_x_scaling, n_full_x_, full_x_scaling, use_g_scaling, n_full_g_, full_g_scaling); if (!retval) { delete [] full_x_scaling; jnlst_->Printf(J_ERROR, J_INITIALIZATION, "Option nlp_scaling_method selected as user-scaling, but no user-scaling available, or it cannot be computed.\n"); THROW_EXCEPTION(OPTION_INVALID, "User scaling chosen, but get_scaling_parameters returned false."); } if (use_x_scaling) { const Index* x_pos = P_x_full_x_->ExpandedPosIndices(); for (Index i=0; iDim(); i++) { dx_values[i] = full_x_scaling[x_pos[i]]; } } delete [] full_x_scaling; } else { bool retval = tnlp_->get_scaling_parameters(obj_scaling, use_x_scaling, n_full_x_, dx_values, use_g_scaling, n_full_g_, full_g_scaling); if (!retval) { jnlst_->Printf(J_ERROR, J_INITIALIZATION, "Option nlp_scaling_method selected as user-scaling, but no user-scaling available, or it cannot be computed.\n"); THROW_EXCEPTION(OPTION_INVALID, "User scaling chosen, but get_scaling_parameters returned false."); } } if (!use_x_scaling) { x_scaling = NULL; } if (use_g_scaling) { const Index* c_pos = P_c_g_->ExpandedPosIndices(); for (Index i=0; iNCols(); i++) { dc_values[i] = full_g_scaling[c_pos[i]]; } if (fixed_variable_treatment_==MAKE_CONSTRAINT) { const Number one = 1.; IpBlasDcopy(n_x_fixed_, &one, 0, &dc_values[P_c_g_->NCols()], 1); } const Index* d_pos = P_d_g_->ExpandedPosIndices(); for (Index i=0; iDim(); i++) { dd_values[i] = full_g_scaling[d_pos[i]]; } } else { c_scaling = NULL; d_scaling = NULL; } delete [] full_g_scaling; } void TNLPAdapter::FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { DBG_START_METH("TNLPAdapter::FinalizeSolution", dbg_verbosity); update_local_x(x); update_local_lambda(y_c, y_d); ResortX(x, full_x_); StringMetaDataMapType var_string_md; IntegerMetaDataMapType var_integer_md; NumericMetaDataMapType var_numeric_md; StringMetaDataMapType con_string_md; IntegerMetaDataMapType con_integer_md; NumericMetaDataMapType con_numeric_md; SmartPtr x_space = dynamic_cast(GetRawPtr(x.OwnerSpace())); const NumericMetaDataMapType x_meta = x_space->GetNumericMetaData(); NumericMetaDataMapType::const_iterator x_meta_iter; for (x_meta_iter=x_meta.begin(); x_meta_iter!=x_meta.end(); ++x_meta_iter) { if ((Index)x_meta_iter->second.size()==x.Dim()) { std::vector new_meta_data; new_meta_data.resize(n_full_x_); SmartPtr x_meta_vector = x_space->MakeNewDenseVector(); x_meta_vector->SetValues(&(x_meta_iter->second)[0]); ResortX(*x_meta_vector, &new_meta_data[0]); var_numeric_md[x_meta_iter->first] = new_meta_data; } } ResortG(y_c, y_d, full_lambda_); SmartPtr y_c_space = dynamic_cast(GetRawPtr(y_c.OwnerSpace())); SmartPtr y_d_space = dynamic_cast(GetRawPtr(y_d.OwnerSpace())); const NumericMetaDataMapType y_c_meta = y_c_space->GetNumericMetaData(); const NumericMetaDataMapType y_d_meta = y_d_space->GetNumericMetaData(); NumericMetaDataMapType::const_iterator y_c_meta_iter; for (y_c_meta_iter=y_c_meta.begin(); y_c_meta_iter!=y_c_meta.end(); ++y_c_meta_iter) { if ((Index)y_c_meta_iter->second.size()==y_c.Dim()) { if (y_d_space->HasNumericMetaData(y_c_meta_iter->first.c_str()) // There exists a corresponding y_d metadata && ((Index)(y_d_meta.find(y_c_meta_iter->first)->second).size())==y_d.Dim()) { // and y_d metadata vector has size y_d.Dim() std::vector y_d_second = y_d_space->GetNumericMetaData(y_c_meta_iter->first); std::vector new_g_meta_data; new_g_meta_data.resize(n_full_g_); SmartPtr y_c_meta_vector = y_c_space->MakeNewDenseVector(); SmartPtr y_d_meta_vector = y_d_space->MakeNewDenseVector(); y_c_meta_vector->SetValues(&(y_c_meta_iter->second)[0]); y_d_meta_vector->SetValues(&y_d_second[0]); ResortG(*y_c_meta_vector, *y_d_meta_vector, &new_g_meta_data[0]); con_numeric_md[y_c_meta_iter->first] = new_g_meta_data; } } } Number* full_g = new Number[n_full_g_]; // TODO: if (c.Dim() + d.Dim() < n_full_g_) { const Number zero = 0.; IpBlasDcopy(n_full_g_, &zero, 0, full_g, 1); } ResortG(c, d, full_g); // To Ipopt, the equality constraints are presented with right // hand side zero, so we correct for the original right hand side. const Index* c_pos = P_c_g_->ExpandedPosIndices(); Index n_c_no_fixed = P_c_g_->NCols(); for (Index i=0; i z_L_space = dynamic_cast(GetRawPtr(z_L.OwnerSpace())); SmartPtr z_U_space = dynamic_cast(GetRawPtr(z_U.OwnerSpace())); const NumericMetaDataMapType z_L_meta = z_L_space->GetNumericMetaData(); const NumericMetaDataMapType z_U_meta = z_U_space->GetNumericMetaData(); NumericMetaDataMapType::const_iterator z_L_meta_iter; for (z_L_meta_iter=z_L_meta.begin(); z_L_meta_iter!=z_L_meta.end(); ++z_L_meta_iter) { if ((Index)z_L_meta_iter->second.size()==z_L.Dim()) { if (z_U_space->HasNumericMetaData(z_L_meta_iter->first.c_str()) && (Index)z_U_meta.find(z_L_meta_iter->first.c_str())->second.size()==z_U.Dim()) { std::vector z_U_second = z_U_space->GetNumericMetaData(z_L_meta_iter->first); SmartPtr z_L_meta_vector = z_L_space->MakeNewDenseVector(); SmartPtr z_U_meta_vector = z_U_space->MakeNewDenseVector(); z_L_meta_vector->SetValues(&(z_L_meta_iter->second)[0]); z_U_meta_vector->SetValues(&z_U_second[0]); std::vector new_z_L_meta_data(n_full_x_, 0.0); std::vector new_z_U_meta_data(n_full_x_, 0.0); ResortBnds(*z_L_meta_vector, &new_z_L_meta_data[0], *z_U_meta_vector, &new_z_U_meta_data[0]); std::string z_L_meta_data_tag = z_L_meta_iter->first; std::string z_U_meta_data_tag = z_L_meta_iter->first; z_L_meta_data_tag += "_z_L"; z_U_meta_data_tag += "_z_U"; var_numeric_md[z_L_meta_data_tag] = new_z_L_meta_data; var_numeric_md[z_U_meta_data_tag] = new_z_U_meta_data; } } } // Hopefully the following is correct to recover the bound // multipliers for fixed variables (sign ok?) if (fixed_variable_treatment_==MAKE_CONSTRAINT && n_x_fixed_>0) { const DenseVector* dy_c = static_cast(&y_c); DBG_ASSERT(dynamic_cast(&y_c)); Index n_c_no_fixed = y_c.Dim() - n_x_fixed_; if (!dy_c->IsHomogeneous()) { const Number* values = dy_c->Values(); for (Index i=0; iScalar(); for (Index i=0; ifinalize_metadata(n_full_x_, var_string_md, var_integer_md, var_numeric_md, n_full_g_, con_string_md, con_integer_md, con_numeric_md); tnlp_->finalize_solution(status, n_full_x_, full_x_, full_z_L, full_z_U, n_full_g_, full_g, full_lambda_, obj_value, ip_data, ip_cq); delete [] full_z_L; full_z_L = NULL; delete [] full_z_U; full_z_U = NULL; delete [] full_g; full_g = NULL; if (c.Dim() + d.Dim() < n_full_g_) { // Temporary: Check if we really have a feasible point: Number max_viol = 0.; Number* x_l = new Number[n_full_x_]; Number* x_u = new Number[n_full_x_]; Number* g_l = new Number[n_full_g_]; Number* g_u = new Number[n_full_g_]; bool retval = tnlp_->get_bounds_info(n_full_x_, x_l, x_u, n_full_g_, g_l, g_u); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_bounds_info returned false in FinalizeSolution"); for (Index i=0; iPrintf(J_ITERSUMMARY, J_INITIALIZATION, "Constraint violation for ALL constraints is %e.\n", max_viol); delete [] x_l; delete [] x_u; delete [] g_l; delete [] g_u; } } bool TNLPAdapter:: IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { return tnlp_->intermediate_callback(mode, iter, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials, ip_data, ip_cq); } void TNLPAdapter:: GetQuasiNewtonApproximationSpaces(SmartPtr& approx_space, SmartPtr& P_approx) { Index num_nonlin_vars = tnlp_->get_number_of_nonlinear_variables(); if (num_nonlin_vars<0 && num_linear_variables_==0) { approx_space = NULL; P_approx = NULL; return; } Index* pos_nonlin_vars = NULL; if (num_nonlin_vars<0) { num_nonlin_vars = n_full_x_ - num_linear_variables_; pos_nonlin_vars = new Index[num_nonlin_vars]; Index ii=0; for (Index i=num_linear_variables_; i0) { pos_nonlin_vars = new Index[num_nonlin_vars]; bool retval = tnlp_->get_list_of_nonlinear_variables(num_nonlin_vars, pos_nonlin_vars); if (!retval) { delete [] pos_nonlin_vars; jnlst_->Printf(J_ERROR, J_INITIALIZATION, "TNLP's get_number_of_nonlinear_variables returns non-negative number, but get_list_of_nonlinear_variables returns false.\n"); THROW_EXCEPTION(INVALID_TNLP, "get_list_of_nonlinear_variables has not been overwritten"); } // Correct indices in case user starts counting variables at 1 // and not 0 if (index_style_ == TNLP::FORTRAN_STYLE) { for (Index i=0; i ex_sp = new ExpansionMatrixSpace(n_full_x_, num_nonlin_vars, pos_nonlin_vars); P_approx = ex_sp->MakeNew(); approx_space = new DenseVectorSpace(num_nonlin_vars); } } else { const Index* compr_pos = P_x_full_x_->CompressedPosIndices(); Index* nonfixed_pos_nonlin_vars = new Index[num_nonlin_vars]; Index nonfixed_nonlin_vars = 0; for (Index i=0; i=0) { nonfixed_pos_nonlin_vars[nonfixed_nonlin_vars] = nonfixed_pos; nonfixed_nonlin_vars++; } } const Index n_x_free = n_full_x_ - n_x_fixed_; if (nonfixed_nonlin_vars == n_x_free) { approx_space = NULL; P_approx = NULL; } else { SmartPtr ex_sp = new ExpansionMatrixSpace(n_x_free, nonfixed_nonlin_vars, nonfixed_pos_nonlin_vars); P_approx = ex_sp->MakeNew(); approx_space = new DenseVectorSpace(nonfixed_nonlin_vars); } delete [] nonfixed_pos_nonlin_vars; } delete [] pos_nonlin_vars; } void TNLPAdapter::ResortX(const Vector& x, Number* x_orig) { const DenseVector* dx = static_cast(&x); DBG_ASSERT(dynamic_cast(&x)); if (IsValid(P_x_full_x_)) { const Index* x_pos = P_x_full_x_->CompressedPosIndices(); if (dx->IsHomogeneous()) { const Number& scalar = dx->Scalar(); for (Index i=0; iValues(); for (Index i=0; iIsHomogeneous()) { const Number& scalar = dx->Scalar(); IpBlasDcopy(n_full_x_, &scalar, 0, x_orig, 1); } else { IpBlasDcopy(n_full_x_, dx->Values(), 1, x_orig, 1); } } } void TNLPAdapter::ResortG(const Vector& c, const Vector& d, Number* g_orig) { const DenseVector* dc = static_cast(&c); DBG_ASSERT(dynamic_cast(&c)); const Index* c_pos = P_c_g_->ExpandedPosIndices(); if (dc->IsHomogeneous()) { Number scalar = dc->Scalar(); for (Index i=0; iNCols(); i++) { g_orig[c_pos[i]] = scalar; } } else { const Number* c_values = dc->Values(); for (Index i=0; iNCols(); i++) { g_orig[c_pos[i]] = c_values[i]; } } const DenseVector* dd = static_cast(&d); DBG_ASSERT(dynamic_cast(&d)); const Index* d_pos = P_d_g_->ExpandedPosIndices(); if (dd->IsHomogeneous()) { Number scalar = dd->Scalar(); for (Index i=0; iValues(); for (Index i=0; i(&x_L); DBG_ASSERT(dynamic_cast(&x_L)); const Index* bnds_pos_not_fixed = P_x_x_L_->ExpandedPosIndices(); const Index& n_xL = x_L.Dim(); if (IsValid(P_x_full_x_)) { const Index* bnds_pos_full = P_x_full_x_->ExpandedPosIndices(); if (dx_L->IsHomogeneous()) { Number scalar = dx_L->Scalar(); for (Index i=0; iValues(); for (Index i=0; iIsHomogeneous()) { Number scalar = dx_L->Scalar(); for (Index i=0; iValues(); for (Index i=0; i(&x_U); DBG_ASSERT(dynamic_cast(&x_U)); const Index* bnds_pos_not_fixed = P_x_x_U_->ExpandedPosIndices(); if (IsValid(P_x_full_x_)) { const Index* bnds_pos_full = P_x_full_x_->ExpandedPosIndices(); if (dx_U->IsHomogeneous()) { Number scalar = dx_U->Scalar(); for (Index i=0; iValues(); for (Index i=0; iIsHomogeneous()) { Number scalar = dx_U->Scalar(); for (Index i=0; iValues(); for (Index i=0; ieval_g(n_full_x_, full_x_, new_x, n_full_g_, full_g_); if (!retval) { x_tag_for_jac_g_ = TaggedObject::Tag(); } return retval; } bool TNLPAdapter::internal_eval_jac_g(bool new_x) { if (x_tag_for_jac_g_ == x_tag_for_iterates_) { // already calculated! return true; } x_tag_for_jac_g_ = x_tag_for_iterates_; bool retval; if (jacobian_approximation_ == JAC_EXACT) { retval = tnlp_->eval_jac_g(n_full_x_, full_x_, new_x, n_full_g_, nz_full_jac_g_, NULL, NULL, jac_g_); } else { // make sure we have the value of the constraints at the point retval = internal_eval_g(new_x); if (retval) { Number* full_g_pert = new Number[n_full_g_]; Number* full_x_pert = new Number[n_full_x_]; IpBlasDcopy(n_full_x_, full_x_, 1, full_x_pert, 1); // Compute the finite difference Jacobian for (Index ivar = 0; ivar findiff_x_u_[ivar]) { full_x_pert[ivar] = xorig - this_perturbation; } retval = tnlp_->eval_g(n_full_x_, full_x_pert, true, n_full_g_, full_g_pert); if (!retval) break; for (Index i=findiff_jac_ia_[ivar]; i findiff_jac_converter = new TripletToCSRConverter(0); // construct structure of a sparse matrix with only Jacobian in it // TODO: This could be done more efficiently without detour via // symmetric matrix Index* airn = new Index[nz_full_jac_g_]; Index* ajcn = new Index[nz_full_jac_g_]; for (Index i=0; iInitializeConverter(n_full_g_+n_full_x_, nz_full_jac_g_, airn, ajcn); delete [] airn; delete [] ajcn; if (findiff_jac_nnz_ != nz_full_jac_g_) { THROW_EXCEPTION(INVALID_TNLP, "Sparsity structure of Jacobian has multiple occurances of the same position. This is not allowed for finite differences."); } // Finally, get the right numbers out of the converter object delete [] findiff_jac_ia_; delete [] findiff_jac_ja_; delete [] findiff_jac_postriplet_; findiff_jac_ia_ = NULL; findiff_jac_ja_ = NULL; findiff_jac_postriplet_ = NULL; findiff_jac_ia_ = new Index[n_full_x_+1]; findiff_jac_ja_ = new Index[findiff_jac_nnz_]; findiff_jac_postriplet_ = new Index[findiff_jac_nnz_]; const Index* ia = findiff_jac_converter->IA(); for (Index i=0; iJA(); for (Index i=0; iiPosFirst(); for (Index i=0; iget_nlp_info(nx, ng, nz_jac_g, nz_hess_lag, index_style); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_nlp_info returned false for derivative checker"); // Obtain starting point as reference point at which derivative // test should be performed Number* xref = new Number[nx]; tnlp_->get_starting_point(nx, true, xref, false, NULL, NULL, ng, false, NULL); // Perform a random perturbation. We need the bounds to make sure // they are not violated Number* x_l = new Number[nx]; Number* x_u = new Number[nx]; Number* g_l = new Number[ng]; Number* g_u = new Number[ng]; retval = tnlp_->get_bounds_info(nx, x_l, x_u, ng, g_l, g_u); ASSERT_EXCEPTION(retval, INVALID_TNLP, "get_bounds_info returned false in derivative checker"); IpResetRandom01(); for (Index i=0; i0) { gref = new Number[ng]; } retval = tnlp_->eval_f(nx, xref, new_x, fref); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: f could not be evaluated at reference point."); new_x = false; if (ng>0) { retval = tnlp_->eval_g(nx, xref, new_x, ng, gref); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: g could not be evaluated at reference point."); } // Obtain gradient of objective function at reference pont Number* grad_f = new Number[nx]; retval = tnlp_->eval_grad_f(nx, xref, true, grad_f); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: grad_f could not be evaluated at reference point."); Index* g_iRow = NULL; Index* g_jCol = NULL; Number* jac_g = NULL; if (ng>0) { // Obtain constraint Jacobian at reference point (including structure) g_iRow = new Index[nz_jac_g]; g_jCol = new Index[nz_jac_g]; retval = tnlp_->eval_jac_g(nx, NULL, false, ng, nz_jac_g, g_iRow, g_jCol, NULL); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: Jacobian structure could not be evaluated."); // Correct counting if required to C-style if (index_style == TNLP::FORTRAN_STYLE) { for (Index i=0; ieval_jac_g(nx, xref, new_x, ng, nz_jac_g, NULL, NULL, jac_g); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: Jacobian values could not be evaluated at reference point."); } // Space for the perturbed point Number* xpert = new Number[nx]; IpBlasDcopy(nx, xref, 1, xpert, 1); // Space for constraints at perturbed point Number* gpert = NULL; if (ng>0) { gpert = new Number[ng]; } Index index_correction = 0; if (index_style == TNLP::FORTRAN_STYLE) { index_correction = 1; } if (deriv_test == FIRST_ORDER_TEST || deriv_test == SECOND_ORDER_TEST) { jnlst_->Printf(J_SUMMARY, J_NLP, "Starting derivative checker for first derivatives.\n\n"); // Now go through all variables and check the partial derivatives const Index ivar_first = Max(0, deriv_test_start_index); for (Index ivar=ivar_first; ivareval_f(nx, xpert, new_x, fpert); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: f could not be evaluated at perturbed point."); new_x = false; Number deriv_approx = (fpert - fref)/this_perturbation; Number deriv_exact = grad_f[ivar]; Number rel_error = fabs(deriv_approx-deriv_exact)/Max(fabs(deriv_approx),1.); char cflag=' '; if (rel_error >= derivative_test_tol_) { cflag='*'; nerrors++; } if (cflag != ' ' || derivative_test_print_all_) { jnlst_->Printf(J_WARNING, J_NLP, "%c grad_f[ %5d] = %23.16e ~ %23.16e [%10.3e]\n", cflag, ivar+index_correction, deriv_exact, deriv_approx, rel_error); } if (ng>0) { retval = tnlp_->eval_g(nx, xpert, new_x, ng, gpert); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: g could not be evaluated at reference point."); for (Index icon=0; icon= derivative_test_tol_) { cflag='*'; nerrors++; } char sflag=' '; if (found) { sflag = 'v'; } if (cflag != ' ' || derivative_test_print_all_) { jnlst_->Printf(J_WARNING, J_NLP, "%c jac_g [%5d,%5d] = %23.16e %c ~ %23.16e [%10.3e]\n", cflag, icon+index_correction, ivar+index_correction, deriv_exact, sflag, deriv_approx, rel_error); } } } xpert[ivar] = xref[ivar]; } } const Number zero = 0.; if (deriv_test == SECOND_ORDER_TEST || deriv_test == ONLY_SECOND_ORDER_TEST) { jnlst_->Printf(J_SUMMARY, J_NLP, "Starting derivative checker for second derivatives.\n\n"); // Get sparsity structure of Hessian Index* h_iRow = new Index[nz_hess_lag]; Index* h_jCol = new Index[nz_hess_lag]; retval = tnlp_->eval_h(nx, NULL, false, 0., ng, NULL, false, nz_hess_lag, h_iRow, h_jCol, NULL); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: Hessian structure could not be evaluated."); if (index_style == TNLP::FORTRAN_STYLE) { for (Index i=0; i0) { lambda = new Number[ng]; IpBlasDcopy(ng, &zero, 0, lambda, 1); } Number* gradref = new Number[nx]; // gradient of objective or constraint at reference point Number* gradpert = new Number[nx]; // gradient of objective or constraint at perturbed point Number* jacpert = new Number[nz_jac_g]; // Check all Hessians const Index icon_first = Max(-1, deriv_test_start_index); for (Index icon=icon_first; iconeval_h(nx, xref, new_x, objfact, ng, lambda, new_y, nz_hess_lag, NULL, NULL, h_values); new_x = false; new_y = false; ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: Hessian could not be evaluated at reference point."); for (Index ivar=0; ivareval_grad_f(nx, xpert, new_x, gradpert); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: grad_f could not be evaluated at perturbed point."); } else { // this is the icon-th constraint retval = tnlp_->eval_jac_g(nx, xpert, new_x, ng, nz_jac_g, NULL, NULL, jacpert); ASSERT_EXCEPTION(retval, ERROR_IN_TNLP_DERIVATIVE_TEST, "In TNLP derivative test: Jacobian values could not be evaluated at reference point."); // ok, now we need to filter the gradient of the icon-th constraint IpBlasDcopy(nx, &zero, 0, gradpert, 1); IpBlasDcopy(nx, &zero, 0, gradref, 1); for (Index i=0; i= derivative_test_tol_) { cflag='*'; nerrors++; } char sflag = ' '; if (found) { sflag = 'v'; } if (cflag != ' ' || derivative_test_print_all_) { if (icon==-1) { jnlst_->Printf(J_WARNING, J_NLP, "%c obj_hess[%5d,%5d] = %23.16e %c ~ %23.16e [%10.3e]\n", cflag, ivar+index_correction, ivar2+index_correction, deriv_exact, sflag, deriv_approx, rel_error); } else { jnlst_->Printf(J_WARNING, J_NLP, "%c %5d-th constr_hess[%5d,%5d] = %23.16e %c ~ %23.16e [%10.3e]\n", cflag, icon+index_correction, ivar+index_correction, ivar2+index_correction, deriv_exact, sflag, deriv_approx, rel_error); } } } xpert[ivar] = xref[ivar]; } if (icon>=0) { lambda[icon] = 0.; } } delete [] h_iRow; delete [] h_jCol; delete [] h_values; delete [] lambda; delete [] gradref; delete [] gradpert; delete [] jacpert; } delete [] xref; delete [] gref; delete [] grad_f; delete [] xpert; delete [] g_iRow; delete [] g_jCol; delete [] jac_g; delete [] gpert; if (nerrors==0) { jnlst_->Printf(J_SUMMARY, J_NLP, "\nNo errors detected by derivative checker.\n\n"); } else { jnlst_->Printf(J_WARNING, J_NLP, "\nDerivative checker detected %d error(s).\n\n", nerrors); } return retval; } bool TNLPAdapter::DetermineDependentConstraints( Index n_x_var, const Index* x_not_fixed_map, const Number* x_l, const Number* x_u, const Number* g_l, const Number* g_u, Index n_c, const Index* c_map, std::list& c_deps) { // First get a temporary expansion matrix for getting the equality // constraints SmartPtr P_c_g_space = new ExpansionMatrixSpace(n_full_g_, n_c, c_map); SmartPtr P_c_g = P_c_g_space->MakeNewExpansionMatrix(); // Get the structure of the big Jacobian of g and get the map for // the equality constraints entries Index* g_iRow = new Index[nz_full_jac_g_]; Index* g_jCol = new Index[nz_full_jac_g_]; if (!tnlp_->eval_jac_g(n_full_x_, NULL, false, n_full_g_, nz_full_jac_g_, g_iRow, g_jCol, NULL)) { delete [] g_iRow; delete [] g_jCol; return false; } if (index_style_ == TNLP::FORTRAN_STYLE) { for (Index i=0; iCompressedPosIndices(); Index n_fixed = n_full_x_ - n_x_var; if (n_fixed>0) { // Get the reverse map for the fixed variables Index* c_col_pos = new Index[n_full_x_]; for (Index i=0; iget_starting_point(n_full_x_, true, full_x_, false, NULL, NULL, n_full_g_, false, NULL)) { delete [] jac_c_iRow; delete [] jac_c_jCol; delete [] jac_c_map; return false; } // Here we reset the random number generator IpResetRandom01(); for (Index i=0; ieval_g(n_full_x_, full_x_, true, n_full_g_, g_vals)) { delete [] jac_c_iRow; delete [] jac_c_jCol; delete [] jac_c_map; delete [] g_vals; return false; } } if (!tnlp_->eval_jac_g(n_full_x_, full_x_, !dependency_detection_with_rhs_, n_full_g_, nz_full_jac_g_, NULL, NULL, jac_g_)) { delete [] jac_c_iRow; delete [] jac_c_jCol; delete [] jac_c_map; delete [] g_vals; return false; } // Get the equality constraint Jacobian out double* jac_c_vals = new double[nz_jac_c + n_c]; for (Index i=0; iExpandedPosIndices(); for (Index i=0; iDetermineDependentRows( n_c, n_x_var, nz_jac_c, jac_c_vals, jac_c_iRow, jac_c_jCol, c_deps); // For now, we just get rid of the dependency_detector_ object, in // order to save memory. Maybe we need to add a clean method at // some point if we think that this is actually used more than // once... dependency_detector_ = NULL; delete [] jac_c_iRow; delete [] jac_c_jCol; delete [] jac_c_map; delete [] jac_c_vals; delete [] g_vals; return retval; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Interfaces/IpReturnCodes.h0000644000076600007660000000107511504216567020227 0ustar coincoin/*********************************************************************** // Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpReturnCodes.h 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 ************************************************************************/ #ifndef __IPRETURNCODES_H__ #define __IPRETURNCODES_H__ /* include from a common include file */ #include "IpReturnCodes_inc.h" #endif Ipopt-3.11.4/Ipopt/src/Interfaces/IpAlgTypes.hpp0000644000076600007660000000340711504216567020063 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgTypes.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-07-19 #ifndef __IPALGTYPES_HPP__ #define __IPALGTYPES_HPP__ #include "IpTypes.hpp" #include "IpException.hpp" namespace Ipopt { /**@name Enumerations */ //@{ /** enum for the return from the optimize algorithm * (obviously we need to add more) */ enum SolverReturn { SUCCESS, MAXITER_EXCEEDED, CPUTIME_EXCEEDED, STOP_AT_TINY_STEP, STOP_AT_ACCEPTABLE_POINT, LOCAL_INFEASIBILITY, USER_REQUESTED_STOP, FEASIBLE_POINT_FOUND, DIVERGING_ITERATES, RESTORATION_FAILURE, ERROR_IN_STEP_COMPUTATION, INVALID_NUMBER_DETECTED, TOO_FEW_DEGREES_OF_FREEDOM, INVALID_OPTION, OUT_OF_MEMORY, INTERNAL_ERROR, UNASSIGNED }; //@} /** @name Some exceptions used in multiple places */ //@{ DECLARE_STD_EXCEPTION(LOCALLY_INFEASIBLE); DECLARE_STD_EXCEPTION(TOO_FEW_DOF); DECLARE_STD_EXCEPTION(TINY_STEP_DETECTED); DECLARE_STD_EXCEPTION(ACCEPTABLE_POINT_REACHED); DECLARE_STD_EXCEPTION(FEASIBILITY_PROBLEM_SOLVED); DECLARE_STD_EXCEPTION(INVALID_WARMSTART); DECLARE_STD_EXCEPTION(INTERNAL_ABORT); DECLARE_STD_EXCEPTION(NO_FREE_VARIABLES_BUT_FEASIBLE); DECLARE_STD_EXCEPTION(NO_FREE_VARIABLES_AND_INFEASIBLE); /** Exception FAILED_INITIALIZATION for problem during * initialization of a strategy object (or other problems). This * is thrown by a strategy object, if a problem arises during * initialization, such as a value out of a feasible range. */ DECLARE_STD_EXCEPTION(FAILED_INITIALIZATION); //@} } #endif Ipopt-3.11.4/Ipopt/src/Algorithm/0000755000076600007660000000000012214537465015172 5ustar coincoinIpopt-3.11.4/Ipopt/src/Algorithm/IpUserScaling.cpp0000644000076600007660000000175011504216567020407 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpUserScaling.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-25 #include "IpUserScaling.hpp" namespace Ipopt { void UserScaling::DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd) { DBG_ASSERT(IsValid(nlp_)); nlp_->GetScalingParameters(x_space, c_space, d_space, df, dx, dc, dd); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpGenAugSystemSolver.hpp0000644000076600007660000001555111504216567021747 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGenAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-03-01 #ifndef __IP_STDAUGSYSTEMSOLVER_HPP__ #define __IP_STDAUGSYSTEMSOLVER_HPP__ #include "IpAugSystemSolver.hpp" #include "IpGenKKTSolverInterface.hpp" namespace Ipopt { /** Solver for the augmented system using GenKKTSolverInterfaces. * * This takes any Vector values out and provides Number*'s, but * Matrices are provided as given from the NLP. */ class GenAugSystemSolver : public AugSystemSolver { public: /**@name Constructors/Destructors */ //@{ /** Constructor using only a linear solver object */ GenAugSystemSolver(GenKKTSolverInterface& SolverInterface); /** Default destructor */ virtual ~GenAugSystemSolver(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Set up the augmented system and solve it for a set of given * right hand side - implementation for GenTMatrices and * SymTMatrices. */ virtual ESymSolverStatus MultiSolve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, std::vector >& rhs_xV, std::vector >& rhs_sV, std::vector >& rhs_cV, std::vector >& rhs_dV, std::vector >& sol_xV, std::vector >& sol_sV, std::vector >& sol_cV, std::vector >& sol_dV, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * solve. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const; /** Request to increase quality of solution for next solve. Ask * underlying linear solver to increase quality of solution for * the next solve (e.g. increase pivot tolerance). Returns * false, if this is not possible (e.g. maximal pivot tolerance * already used.) */ virtual bool IncreaseQuality(); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor. */ GenAugSystemSolver(); /** Copy Constructor */ GenAugSystemSolver(const GenAugSystemSolver&); /** Overloaded Equals Operator */ void operator=(const GenAugSystemSolver&); //@} /** Check the internal tags and decide if the passed variables are * different from what is in the augmented_system_ */ bool AugmentedSystemChanged(const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d); void UpdateTags(const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d); /** The linear solver object that is to be used to solve the * linear systems. */ SmartPtr solver_interface_; /**@name Tags and values to track in order to decide whether the matrix has to be updated compared to the most recent call of the Set method. */ //@{ /** Tag for W matrix. If W has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag w_tag_; /** Most recent value of W_factor */ double w_factor_; /** Tag for D_x vector, representing the diagonal matrix D_x. If * D_x has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_x_tag_; /** Most recent value of delta_x from Set method */ double delta_x_; /** Tag for D_s vector, representing the diagonal matrix D_s. If * D_s has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_s_tag_; /** Most recent value of delta_s from Set method */ double delta_s_; /** Tag for J_c matrix. If J_c has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_c_tag_; /** Tag for D_c vector, representing the diagonal matrix D_c. If * D_c has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_c_tag_; /** Most recent value of delta_c from Set method */ double delta_c_; /** Tag for J_d matrix. If J_d has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_d_tag_; /** Tag for D_d vector, representing the diagonal matrix D_d. If * D_d has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_d_tag_; /** Most recent value of delta_d from Set method */ double delta_d_; //@} /** @name Space for storing the diagonal matrices. If the matrix * hasn't changed, we can use it from the last call. */ //@{ Number* dx_vals_copy_; Number* ds_vals_copy_; Number* dc_vals_copy_; Number* dd_vals_copy_; //@} /** @name Algorithmic parameters */ //@{ /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpIterationOutput.hpp0000644000076600007660000000361311576465630021362 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterationOutput.hpp 2020 2011-06-16 20:46:16Z andreasw $ // // Authors: Andreas Waechter, Carl Laird IBM 2004-09-27 #ifndef __IPITERATIONOUTPUT_HPP__ #define __IPITERATIONOUTPUT_HPP__ #include "IpAlgStrategy.hpp" #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" namespace Ipopt { /** Base class for objects that do the output summary per iteration. */ class IterationOutput: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ IterationOutput() {} /** Default destructor */ virtual ~IterationOutput() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method to do all the summary output per iteration. This * include the one-line summary output as well as writing the * details about the iterates if desired */ virtual void WriteOutput() = 0; protected: /** enumeration for different inf_pr output options */ enum InfPrOutput { INTERNAL=0, ORIGINAL }; private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IterationOutput(const IterationOutput&); /** Overloaded Equals Operator */ void operator=(const IterationOutput&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpMonotoneMuUpdate.cpp0000644000076600007660000002004111504216567021425 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMonotoneMuUpdate.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpMonotoneMuUpdate.hpp" #include "IpJournalist.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif MonotoneMuUpdate::MonotoneMuUpdate(const SmartPtr& linesearch) : MuUpdate(), linesearch_(linesearch), initialized_(false) { DBG_START_METH("MonotoneMuUpdate::MonotoneMuUpdate", dbg_verbosity); DBG_ASSERT(IsValid(linesearch_)); } MonotoneMuUpdate::~MonotoneMuUpdate() { DBG_START_METH("MonotoneMuUpdate::~MonotoneMuUpdate", dbg_verbosity); } void MonotoneMuUpdate::RegisterOptions(const SmartPtr& roptions) { roptions->AddLowerBoundedNumberOption( "mu_init", "Initial value for the barrier parameter.", 0.0, true, 0.1, "This option determines the initial value for the barrier parameter " "(mu). It is only relevant in the monotone, Fiacco-McCormick " "version of the algorithm. (i.e., if \"mu_strategy\" is chosen " "as \"monotone\")"); roptions->AddLowerBoundedNumberOption( "barrier_tol_factor", "Factor for mu in barrier stop test.", 0.0, true, 10.0, "The convergence tolerance for each barrier problem in the monotone mode " "is the value of the barrier parameter times \"barrier_tol_factor\". " "This option is also used in the adaptive mu strategy during the " "monotone mode. (This is kappa_epsilon in implementation paper)."); roptions->AddBoundedNumberOption( "mu_linear_decrease_factor", "Determines linear decrease rate of barrier parameter.", 0.0, true, 1.0, true, 0.2, "For the Fiacco-McCormick update procedure the new barrier parameter mu " "is obtained by taking the minimum of mu*\"mu_linear_decrease_factor\" " "and mu^\"superlinear_decrease_power\". (This is kappa_mu in " "implementation paper.) This option is also used in the adaptive mu " "strategy during the monotone mode."); roptions->AddBoundedNumberOption( "mu_superlinear_decrease_power", "Determines superlinear decrease rate of barrier parameter.", 1.0, true, 2.0, true, 1.5, "For the Fiacco-McCormick update procedure the new barrier parameter mu " "is obtained by taking the minimum of mu*\"mu_linear_decrease_factor\" " "and mu^\"superlinear_decrease_power\". (This is theta_mu in " "implementation paper.) This option is also used in the adaptive mu " "strategy during the monotone mode."); roptions->AddStringOption2( "mu_allow_fast_monotone_decrease", "Allow skipping of barrier problem if barrier test is already met.", "yes", "no", "Take at least one iteration per barrier problem", "yes", "Allow fast decrease of mu if barrier test it met", "If set to \"no\", the algorithm enforces at least one iteration per " "barrier problem, even if the barrier test is already met for the " "updated barrier parameter."); roptions->AddBoundedNumberOption( "tau_min", "Lower bound on fraction-to-the-boundary parameter tau.", 0.0, true, 1.0, true, 0.99, "(This is tau_min in the implementation paper.) This option is also used " "in the adaptive mu strategy during the monotone mode."); } bool MonotoneMuUpdate::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("mu_init", mu_init_, prefix); options.GetNumericValue("barrier_tol_factor", barrier_tol_factor_, prefix); options.GetNumericValue("mu_linear_decrease_factor", mu_linear_decrease_factor_, prefix); options.GetNumericValue("mu_superlinear_decrease_power", mu_superlinear_decrease_power_, prefix); options.GetBoolValue("mu_allow_fast_monotone_decrease", mu_allow_fast_monotone_decrease_, prefix); options.GetNumericValue("tau_min", tau_min_, prefix); options.GetNumericValue("compl_inf_tol", compl_inf_tol_, prefix); options.GetNumericValue("mu_target", mu_target_, prefix); IpData().Set_mu(mu_init_); Number tau = Max(tau_min_, 1.0 - mu_init_); IpData().Set_tau(tau); initialized_ = false; //TODO we need to clean up the mu-update for the restoration phase if (prefix=="resto.") { first_iter_resto_ = true; } else { first_iter_resto_ = false; } return true; } bool MonotoneMuUpdate::UpdateBarrierParameter() { Number mu = IpData().curr_mu(); Number tau = IpData().curr_tau(); Number sub_problem_error = IpCq().curr_barrier_error(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Optimality Error for Barrier Sub-problem = %e\n", sub_problem_error); Number kappa_eps_mu = barrier_tol_factor_ * mu; bool done = false; bool tiny_step_flag = IpData().tiny_step_flag(); IpData().Set_tiny_step_flag(false); while ((sub_problem_error <= kappa_eps_mu || tiny_step_flag) && !done && !first_iter_resto_) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " sub_problem_error < kappa_eps * mu (%e)\n", kappa_eps_mu); // Compute the new values for mu and tau Number new_mu; Number new_tau; Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Updating mu=%25.16e and tau=%25.16e to ", mu, tau); CalcNewMuAndTau(new_mu, new_tau); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "new_mu=%25.16e and new_tau=%25.16e\n", new_mu, new_tau); bool mu_changed = (mu != new_mu); if (!mu_changed && tiny_step_flag) { THROW_EXCEPTION(TINY_STEP_DETECTED, "Problem solved to best possible numerical accuracy"); } #if 0 //DELETEME if (mu_changed) { SmartPtr iterates = IpData().curr()->MakeNewContainer(); SmartPtr z_L = iterates->z_L()->MakeNewCopy(); z_L->Scal(sqrt(new_mu/mu)); iterates->Set_z_L(*z_L); IpData().set_trial(iterates); IpData().AcceptTrialPoint(); } #endif // Set the new values for mu and tau IpData().Set_mu(new_mu); IpData().Set_tau(new_tau); mu = new_mu; tau = new_tau; // If this is the first iteration or if // mu_allow_fast_monotone_decrease_ is true, we want to check if // we can decrease mu even more if (initialized_ && !mu_allow_fast_monotone_decrease_) { done = true; } else if (!mu_changed) { done = true; } else { sub_problem_error = IpCq().curr_barrier_error(); kappa_eps_mu = barrier_tol_factor_ * mu; done = (sub_problem_error > kappa_eps_mu); } // Reset the line search if (done && mu_changed) { linesearch_->Reset(); } tiny_step_flag = false; } first_iter_resto_ = false; initialized_ = true; return true; } void MonotoneMuUpdate::CalcNewMuAndTau(Number &new_mu, Number &new_tau) { // update the barrier parameter Number mu = IpData().curr_mu(); Number tol = IpData().tol(); // Here we need the complementarity tolerance that is posed to the // scaled problem Number compl_inf_tol = IpNLP().NLP_scaling()->apply_obj_scaling(compl_inf_tol_); new_mu = Min( mu_linear_decrease_factor_*mu, pow(mu, mu_superlinear_decrease_power_) ); new_mu = Max(new_mu, mu_target_, Min(tol, compl_inf_tol)/(barrier_tol_factor_+1.)); // update the fraction to the boundary parameter new_tau = Max(tau_min_, 1.-new_mu); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpExactHessianUpdater.hpp0000644000076600007660000000315411504216567022101 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExactHessianUpdater.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-26 #ifndef __IPEXACTHESSIANUPDATER_HPP__ #define __IPEXACTHESSIANUPDATER_HPP__ #include "IpHessianUpdater.hpp" namespace Ipopt { /** Implementation of the HessianUpdater for the use of exact second * derivatives. */ class ExactHessianUpdater : public HessianUpdater { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ ExactHessianUpdater() {} /** Default destructor */ virtual ~ExactHessianUpdater() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Update the Hessian based on the current information in IpData. */ virtual void UpdateHessian(); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ ExactHessianUpdater(const ExactHessianUpdater&); /** Overloaded Equals Operator */ void operator=(const ExactHessianUpdater&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLoqoMuOracle.hpp0000644000076600007660000000323111504216567020533 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLoqoMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPLOQOMUORACLE_HPP__ #define __IPLOQOMUORACLE_HPP__ #include "IpMuOracle.hpp" namespace Ipopt { /** Implementation of the LOQO formula for computing the * barrier parameter. */ class LoqoMuOracle : public MuOracle { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ LoqoMuOracle(); /** Default destructor */ virtual ~LoqoMuOracle(); //@} /** Initialize method - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the value of the barrier parameter that * could be used in the current iteration (using the LOQO formula). */ virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ LoqoMuOracle(const LoqoMuOracle&); /** Overloaded Equals Operator */ void operator=(const LoqoMuOracle&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/0000755000076600007660000000000012214537465016565 5ustar coincoinIpopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactCq.cpp0000644000076600007660000002721611520574071021442 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactCq.cpp 1890 2011-01-28 17:09:13Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #include "IpInexactCq.hpp" #include "IpIpoptNLP.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactCq::InexactCq(IpoptNLP* ip_nlp, IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) : ip_nlp_(ip_nlp), ip_data_(ip_data), ip_cq_(ip_cq), curr_jac_cdT_times_curr_cdminuss_cache_(1), curr_scaling_slacks_cache_(1), curr_slack_scaled_d_minus_s_cache_(1), curr_scaled_Ac_norm_cache_(1), slack_scaled_norm_cache_(6), curr_W_times_vec_x_cache_(0), // ToDo: decide if we want this cached curr_W_times_vec_s_cache_(0), curr_Wu_x_cache_(1), curr_Wu_s_cache_(1), curr_uWu_cache_(1), curr_jac_times_normal_c_cache_(1), curr_jac_times_normal_d_cache_(1) { DBG_START_METH("InexactCq::InexactCq", dbg_verbosity); DBG_ASSERT(ip_nlp_); DBG_ASSERT(ip_data_); DBG_ASSERT(ip_cq_); } InexactCq::~InexactCq() {} void InexactCq::RegisterOptions(const SmartPtr& roptions) { roptions->AddLowerBoundedNumberOption( "slack_scale_max", "Upper bound on slack-based scaling parameters.", 0.0, true, 1., ""); } bool InexactCq::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { options.GetNumericValue("slack_scale_max", slack_scale_max_, prefix); return true; } SmartPtr InexactCq::curr_jac_cdT_times_curr_cdminuss() { SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); if (!curr_jac_cdT_times_curr_cdminuss_cache_.GetCachedResult2Dep(result, *x, *s)) { // c part SmartPtr curr_c = ip_cq_->curr_c(); SmartPtr curr_jac_cT_times_curr_c = ip_cq_->curr_jac_cT_times_vec(*curr_c); // d minus s part SmartPtr curr_d_minus_s = ip_cq_->curr_d_minus_s(); SmartPtr curr_jac_dT_times_curr_d_minus_s = ip_cq_->curr_jac_dT_times_vec(*curr_d_minus_s); // add them SmartPtr tmp = curr_jac_cT_times_curr_c->MakeNew(); tmp->AddTwoVectors(1., *curr_jac_cT_times_curr_c, 1., *curr_jac_dT_times_curr_d_minus_s, 0.); result = ConstPtr(tmp); curr_jac_cdT_times_curr_cdminuss_cache_.AddCachedResult2Dep(result, *x, *s); } return result; } SmartPtr InexactCq::curr_scaling_slacks() { DBG_START_METH("InexactCq::curr_scaling_slacks()", dbg_verbosity); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); if (!curr_scaling_slacks_cache_.GetCachedResult1Dep(result, *s)) { SmartPtr tmp = s->MakeNew(); // Lower bounds SmartPtr Pd_L = ip_nlp_->Pd_L(); SmartPtr curr_slack_s_L = ip_cq_->curr_slack_s_L(); DBG_PRINT_MATRIX(1, "Pd_L", *Pd_L); DBG_PRINT_VECTOR(1, "curr_slack_s_L", *curr_slack_s_L); Pd_L->MultVector(1., *curr_slack_s_L, 0., *tmp); // Upper bounds SmartPtr Pd_U = ip_nlp_->Pd_U(); SmartPtr curr_slack_s_U = ip_cq_->curr_slack_s_U(); DBG_PRINT_MATRIX(1, "Pd_U", *Pd_U); DBG_PRINT_VECTOR(1, "curr_slack_s_U", *curr_slack_s_U); Pd_U->MultVector(1., *curr_slack_s_U, 1., *tmp); SmartPtr tmp2 = tmp->MakeNew(); tmp2->Set(slack_scale_max_); tmp->ElementWiseMin(*tmp2); result = ConstPtr(tmp); curr_scaling_slacks_cache_.AddCachedResult1Dep(result, *s); } return result; } SmartPtr InexactCq::curr_slack_scaled_d_minus_s() { SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); if (!curr_slack_scaled_d_minus_s_cache_.GetCachedResult2Dep(result, *x, *s)) { SmartPtr d_minus_s = ip_cq_->curr_d_minus_s(); SmartPtr scaling_slacks = curr_scaling_slacks(); SmartPtr tmp = d_minus_s->MakeNewCopy(); tmp->ElementWiseMultiply(*scaling_slacks); result = ConstPtr(tmp); curr_slack_scaled_d_minus_s_cache_.AddCachedResult2Dep(result, *x, *s); } return result; } Number InexactCq::curr_scaled_Ac_norm() { DBG_START_METH("InexactCq::curr_scaled_Ac_norm", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); if (!curr_scaled_Ac_norm_cache_.GetCachedResult2Dep(result, *x, *s)) { SmartPtr jac_cdT_times_curr_cdminuss = curr_jac_cdT_times_curr_cdminuss(); DBG_PRINT_VECTOR(2, "jac_cdT_times_curr_cdminuss", *jac_cdT_times_curr_cdminuss); SmartPtr slack_scaled_d_minus_s = curr_slack_scaled_d_minus_s(); DBG_PRINT_VECTOR(2, "slack_scaled_d_minus_s", *slack_scaled_d_minus_s); result = ip_cq_->CalcNormOfType(NORM_2, *jac_cdT_times_curr_cdminuss, *slack_scaled_d_minus_s); curr_scaled_Ac_norm_cache_.AddCachedResult2Dep(result, *x, *s); } return result; } /** ||A||^2 */ Number InexactCq::curr_scaled_A_norm2() { DBG_START_METH("InexactCq::curr_scaled_A_norm", dbg_verbosity); Number result; //if (!curr_scaled_A_norm_cache_.GetCachedResult(...)) { result = 2; //curr_scaled_A_norm_cache_.AddCachedResult(...); //} return result; } Number InexactCq::slack_scaled_norm(const Vector& x, const Vector &s) { SmartPtr scaling_slacks = curr_scaling_slacks(); Number result; if (!slack_scaled_norm_cache_.GetCachedResult3Dep(result, *scaling_slacks, x, s)) { SmartPtr tmp = s.MakeNewCopy(); tmp->ElementWiseDivide(*scaling_slacks); result = ip_cq_->CalcNormOfType(NORM_2, x, *tmp); slack_scaled_norm_cache_.AddCachedResult3Dep(result, *scaling_slacks, x, s); } return result; } SmartPtr InexactCq::curr_W_times_vec_x(const Vector& vec_x) { DBG_START_METH("InexactCq::curr_W_times_vec_x", dbg_verbosity); SmartPtr result; SmartPtr W = ip_data_->W(); Number pd_pert_x; Number pd_pert_s; Number pd_pert_c; Number pd_pert_d; ip_data_->getPDPert(pd_pert_x, pd_pert_s, pd_pert_c, pd_pert_d); std::vector tdeps(2); tdeps[0] = &vec_x; tdeps[1] = GetRawPtr(W); std::vector sdeps(1); sdeps[0] = pd_pert_x; if (!curr_W_times_vec_x_cache_.GetCachedResult(result, tdeps, sdeps)) { DBG_PRINT_VECTOR(2, "vec_x", vec_x); DBG_PRINT_MATRIX(2, "W", *W); DBG_PRINT((2, "pd_pert_x = %e\n", pd_pert_x)); SmartPtr tmp = vec_x.MakeNewCopy(); W->MultVector(1., vec_x, pd_pert_x, *tmp); result = ConstPtr(tmp); curr_W_times_vec_x_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr InexactCq::curr_W_times_vec_s(const Vector& vec_s) { SmartPtr result; SmartPtr sigma_s = ip_cq_->curr_sigma_s(); Number pd_pert_x; Number pd_pert_s; Number pd_pert_c; Number pd_pert_d; ip_data_->getPDPert(pd_pert_x, pd_pert_s, pd_pert_c, pd_pert_d); std::vector tdeps(2); tdeps[0] = &vec_s; tdeps[1] = GetRawPtr(sigma_s); std::vector sdeps(1); sdeps[0] = pd_pert_s; if (!curr_W_times_vec_s_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp = vec_s.MakeNewCopy(); tmp->ElementWiseMultiply(*sigma_s); if (pd_pert_s>0.) { tmp->AddOneVector(pd_pert_s, vec_s, 1.); } result = ConstPtr(tmp); curr_W_times_vec_s_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr InexactCq::curr_Wu_x() { SmartPtr result; SmartPtr tangential_x = InexData().tangential_x(); SmartPtr W = ip_data_->W(); Number pd_pert_x; Number pd_pert_s; Number pd_pert_c; Number pd_pert_d; ip_data_->getPDPert(pd_pert_x, pd_pert_s, pd_pert_c, pd_pert_d); std::vector tdeps(2); tdeps[0] = GetRawPtr(tangential_x); tdeps[1] = GetRawPtr(W); std::vector sdeps(1); sdeps[0] = pd_pert_x; if (!curr_Wu_x_cache_.GetCachedResult(result, tdeps, sdeps)) { result = curr_W_times_vec_x(*tangential_x); curr_Wu_x_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr InexactCq::curr_Wu_s() { SmartPtr result; SmartPtr tangential_s = InexData().tangential_s(); SmartPtr sigma_s = ip_cq_->curr_sigma_s(); Number pd_pert_x; Number pd_pert_s; Number pd_pert_c; Number pd_pert_d; ip_data_->getPDPert(pd_pert_x, pd_pert_s, pd_pert_c, pd_pert_d); std::vector tdeps(2); tdeps[0] = GetRawPtr(tangential_s); tdeps[1] = GetRawPtr(sigma_s); std::vector sdeps(1); sdeps[0] = pd_pert_s; if (!curr_Wu_s_cache_.GetCachedResult(result, tdeps, sdeps)) { result = curr_W_times_vec_s(*tangential_s); curr_Wu_s_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number InexactCq::curr_uWu() { Number result; SmartPtr tangential_x = InexData().tangential_x(); SmartPtr tangential_s = InexData().tangential_s(); SmartPtr Wu_x = curr_Wu_x(); SmartPtr Wu_s = curr_Wu_s(); std::vector tdeps(4); tdeps[0] = GetRawPtr(tangential_x); tdeps[1] = GetRawPtr(tangential_s); tdeps[2] = GetRawPtr(Wu_x); tdeps[3] = GetRawPtr(Wu_s); if (!curr_uWu_cache_.GetCachedResult(result, tdeps)) { result = Wu_x->Dot(*tangential_x) + Wu_s->Dot(*tangential_s); curr_uWu_cache_.AddCachedResult(result, tdeps); } return result; } SmartPtr InexactCq::curr_jac_times_normal_c() { SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr normal_x = InexData().normal_x(); if (!curr_jac_times_normal_c_cache_.GetCachedResult2Dep(result, *x, *normal_x)) { result = ip_cq_->curr_jac_c_times_vec(*normal_x); curr_jac_times_normal_c_cache_.AddCachedResult2Dep(result, *x, *normal_x); } return result; } SmartPtr InexactCq::curr_jac_times_normal_d() { SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr normal_x = InexData().normal_x(); SmartPtr normal_s = InexData().normal_s(); if (!curr_jac_times_normal_d_cache_.GetCachedResult3Dep(result, *x, *normal_x, *normal_s)) { SmartPtr Ax = ip_cq_->curr_jac_d_times_vec(*normal_x); SmartPtr tmp = Ax->MakeNew(); tmp->AddTwoVectors(1., *Ax, -1., *normal_s, 0.); result = ConstPtr(tmp); curr_jac_times_normal_d_cache_.AddCachedResult3Dep(result, *x, *normal_x, *normal_s); } return result; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactNewtonNormal.cpp0000644000076600007660000000641111520375624023517 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactNewtonNormal.cpp 1886 2011-01-27 23:11:16Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #include "IpInexactNewtonNormal.hpp" #include "IpSymLinearSolver.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactNewtonNormalStep::InexactNewtonNormalStep(SmartPtr aug_solver) : aug_solver_(aug_solver) {} InexactNewtonNormalStep::~InexactNewtonNormalStep() {} void InexactNewtonNormalStep::RegisterOptions(SmartPtr reg_options) {} bool InexactNewtonNormalStep::InitializeImpl(const OptionsList& options, const std::string& prefix) { return aug_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool InexactNewtonNormalStep::ComputeNewtonNormalStep(Vector& newton_x, Vector& newton_s) { DBG_START_METH("InexactNewtonNormalStep::ComputeNormalNewtonStep", dbg_verbosity); // Get the entires for the augmented system matrix // TODO: Make it possible to provide no Hessian!!! SmartPtr zeroW = IpNLP().uninitialized_h(); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); // D_s is S^2 where S is the scaling factors from the slacks SmartPtr curr_scaling_slacks = InexCq().curr_scaling_slacks(); SmartPtr D_s = curr_scaling_slacks->MakeNewCopy(); D_s->ElementWiseMultiply(*curr_scaling_slacks); D_s->ElementWiseReciprocal(); // Get the entires for the right hand side SmartPtr curr_c = IpCq().curr_c(); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr rhs_x = IpData().curr()->x()->MakeNew(); rhs_x->Set(0.); SmartPtr rhs_s = IpData().curr()->s()->MakeNew(); rhs_s->Set(0.); // Get the space for the solution SmartPtr sol_c = curr_c->MakeNew(); SmartPtr sol_d = curr_d_minus_s->MakeNew(); ESymSolverStatus retval = aug_solver_->Solve(GetRawPtr(zeroW), 0., NULL, 1., GetRawPtr(D_s), 0., GetRawPtr(J_c), NULL, 0., GetRawPtr(J_d), NULL, 0., *rhs_x, *rhs_s, *curr_c, *curr_d_minus_s, newton_x, newton_s, *sol_c, *sol_d, false, 0); if (retval==SYMSOLVER_SINGULAR) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Resolving Newton step system with c-d perturbation.\n"); retval = aug_solver_->Solve(GetRawPtr(zeroW), 0., NULL, 1., GetRawPtr(D_s), 0., GetRawPtr(J_c), NULL, 1e-8, GetRawPtr(J_d), NULL, 1e-8, *rhs_x, *rhs_s, *curr_c, *curr_d_minus_s, newton_x, newton_s, *sol_c, *sol_d, false, 0); } if (retval!=SYMSOLVER_SUCCESS) return false; // return the step in the slack-scaled space newton_s.ElementWiseDivide(*curr_scaling_slacks); newton_x.Scal(-1.); newton_s.Scal(-1.); return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactAlgBuilder.hpp0000644000076600007660000000560411504216567023120 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactAlgBuilder.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-05 // based on IpAlgBuilder.hpp (rev 913) #ifndef __IPINEXACTALGBUILDER_HPP__ #define __IPINEXACTALGBUILDER_HPP__ #include "IpAlgBuilder.hpp" namespace Ipopt { /** Builder to create a complete IpoptAlg object for the inexact * step computation version. */ class InexactAlgorithmBuilder : public AlgorithmBuilder { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ InexactAlgorithmBuilder(); /** Destructor */ virtual ~InexactAlgorithmBuilder() {} //@} /** @name Methods to build parts of the algorithm */ //@{ virtual void BuildIpoptObjects(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, const SmartPtr& nlp, SmartPtr& ip_nlp, SmartPtr& ip_data, SmartPtr& ip_cq); virtual SmartPtr BuildBasicAlgorithm(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); //@} /** Methods for IpoptTypeInfo */ //@{ /** register the options used by the algorithm builder */ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //InexactAlgorithmBuilder(); /** Copy Constructor */ InexactAlgorithmBuilder(const InexactAlgorithmBuilder&); /** Overloaded Equals Operator */ void operator=(const InexactAlgorithmBuilder&); //@} /** Optional pointer to AugSystemSolver. If this is set in the * contructor, we will use this to solver the linear systems if * the option linear_solver=custerm is chosen. */ SmartPtr custom_solver_; }; /** Function for setting options whos default is different for the * inexact algorithm compared to the defaults for the regular Ipopt * algorithm. The options_list is augmented by the different * default values, but only if the corresponding option has not yet * been set. */ void AddInexactDefaultOptions(OptionsList& options_list); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpIterativeSolverTerminationTester.hpp0000644000076600007660000001021111504216567026310 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterativeSolverTerminationTester.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-19 #ifndef __IPITERATIVESOLVERTERMINATIONTESTER_HPP__ #define __IPITERATIVESOLVERTERMINATIONTESTER_HPP__ #include "IpAlgStrategy.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** This base class is for the termination tests for the iterative * linear solver in the inexact version of Ipopt. */ class IterativeSolverTerminationTester: public AlgorithmStrategyObject { public: /** Enum to report result of termination test */ enum ETerminationTest { /** The current solution is not yet good enough */ CONTINUE, /** Termination Test 1 is satisfied */ TEST_1_SATISFIED, /** Termination Test 2 is satisfied */ TEST_2_SATISFIED, /** Termination Test 3 is satisfied */ TEST_3_SATISFIED, /** Hessian matrix should be modified */ MODIFY_HESSIAN, /** Some other termination criterion satisfied */ OTHER_SATISFIED }; /** @name /Destructor */ //@{ /** Default constructor */ IterativeSolverTerminationTester() {} /** Default destructor */ virtual ~IterativeSolverTerminationTester() {} //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method for initializing for the next iterative solve. This * must be call before the test methods are called. */ virtual bool InitializeSolve() = 0; /** This method checks if the current soltion of the iterative * linear solver is good enough (by returning the corresponding * satisfied termination test), or if the Hessian should be * modified. The input is the dimension of the augmented system, * the current solution vector of the augmented system, the * current residual vector. */ virtual ETerminationTest TestTermination(Index ndim, const Number* sol, const Number* resid, Index iter, Number norm2_rhs) = 0; /** This method can be called after the Solve is over and we can * delete anything that has been allocated to free memory. */ virtual void Clear() = 0; /** An easy way to get the journalist if accessed from the outside */ const Journalist& GetJnlst() const { return Jnlst(); } /** Return the number of iterative solver iteration from the most * recent solve */ virtual Index GetSolverIterations() const = 0; protected: /** Method for copying a long augmented system array into Vectors * in Ipopt notation */ void GetVectors(Index ndim, const Number* array, SmartPtr& comp_x, SmartPtr& comp_s, SmartPtr& comp_c, SmartPtr& comp_d); /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Overloaded Equals Operator */ IterativeSolverTerminationTester& operator=(const IterativeSolverTerminationTester&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactTSymScalingMethod.hpp0000644000076600007660000000467712132274713024450 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactTSymScalingMethod.hpp 2206 2013-04-13 15:29:15Z stefan $ // // Authors: Andreas Waechter, Frank E. Curtis IBM 2009-06-12 // (based on IpMc19TSymScalingMethod.hpp rev 699) #ifndef __IPINEXACTTSYMSCALINGMETHOD_HPP__ #define __IPINEXACTTSYMSCALINGMETHOD_HPP__ #include "IpUtils.hpp" #include "IpTSymScalingMethod.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** Class for the method for computing scaling factors for symmetric * matrices in triplet format, specifically for the inexaxct algorithm. * The scaling is only considering the current slacks. */ class InexactTSymScalingMethod: public TSymScalingMethod { public: /** @name Constructor/Destructor */ //@{ InexactTSymScalingMethod() {} virtual ~InexactTSymScalingMethod() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the symmetric scaling factors, given the * symmtric matrix in triplet (MA27) format. */ virtual bool ComputeSymTScalingFactors(Index n, Index nnz, const ipfint* airn, const ipfint* ajcn, const double* a, double* scaling_factors); private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ InexactTSymScalingMethod(const InexactTSymScalingMethod&); /** Overloaded Equals Operator */ void operator=(const InexactTSymScalingMethod&); /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactNewtonNormal.hpp0000644000076600007660000000554111520375624023527 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactNewtonNormal.hpp 1886 2011-01-27 23:11:16Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-05 #ifndef __IPINEXACTNEWTONNORMAL_HPP__ #define __IPINEXACTNEWTONNORMAL_HPP__ #include "IpAlgStrategy.hpp" #include "IpAugSystemSolver.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** Compute the "Newton" normal step from the (slack-scaled) * augmented system. */ class InexactNewtonNormalStep : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default onstructor */ InexactNewtonNormalStep(SmartPtr aug_solver); /** Default destructor */ virtual ~InexactNewtonNormalStep(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the normal step. The computed step is * returned as normal_x and normal_s, for the x and s variables, * respectively. These quantities are not in the original space, * but in the space scaled by the slacks. If the step cannot be * computed, this method returns false. */ virtual bool ComputeNewtonNormalStep(Vector& newton_x, Vector& newton_s); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default onstructor */ InexactNewtonNormalStep(); /** Copy Constructor */ InexactNewtonNormalStep(const InexactNewtonNormalStep&); /** Overloaded Equals Operator */ void operator=(const InexactNewtonNormalStep&); //@} /** Object to be used to solve the augmented system */ SmartPtr aug_solver_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpIterativeSolverTerminationTester.cpp0000644000076600007660000000327011504216567026312 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterativeSolverTerminationTester.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-19 #include "IpIterativeSolverTerminationTester.hpp" #include "IpTripletHelper.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif void IterativeSolverTerminationTester::GetVectors(Index ndim, const Number* array, SmartPtr& comp_x, SmartPtr& comp_s, SmartPtr& comp_c, SmartPtr& comp_d) { DBG_ASSERT(ndim==IpData().curr()->x()->Dim()+IpData().curr()->s()->Dim()+ IpData().curr()->y_c()->Dim()+IpData().curr()->y_d()->Dim()); // x SmartPtr sol_x = IpData().curr()->x()->MakeNew(); Index dim = sol_x->Dim(); TripletHelper::PutValuesInVector(dim, array, *sol_x); array += dim; comp_x = ConstPtr(sol_x); // s SmartPtr sol_s = IpData().curr()->s()->MakeNew(); dim = sol_s->Dim(); TripletHelper::PutValuesInVector(dim, array, *sol_s); array += dim; comp_s = ConstPtr(sol_s); // c SmartPtr sol_c = IpData().curr()->y_c()->MakeNew(); dim = sol_c->Dim(); TripletHelper::PutValuesInVector(dim, array, *sol_c); array += dim; comp_c = ConstPtr(sol_c); // d SmartPtr sol_d = IpData().curr()->y_d()->MakeNew(); dim = sol_d->Dim(); TripletHelper::PutValuesInVector(dim, array, *sol_d); array += dim; comp_d = ConstPtr(sol_d); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactLSAcceptor.cpp0000644000076600007660000005406011504216567023100 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactLSAcceptor.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-11 // derived file from IpPenaltyLSAcceptor.cpp (rev 1121) #include "IpInexactLSAcceptor.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif // for sprintf #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactLSAcceptor::InexactLSAcceptor() { DBG_START_FUN("InexactLSAcceptor::InexactLSAcceptor", dbg_verbosity); } InexactLSAcceptor::~InexactLSAcceptor() { DBG_START_FUN("InexactLSAcceptor::~InexactLSAcceptor()", dbg_verbosity); } void InexactLSAcceptor::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "nu_update_inf_skip_tol", "Lower bound on infeasibility to perform penalty parameter update.", 0.0, true, 1e-9, "If the current infeasibility is less than this value, the penalty " "parameter update is skipped"); roptions->AddStringOption2( "flexible_penalty_function", "Switch to use Curtis/Nocedal flexible penalty function", "yes", "no", "do not use the flexible penalty function procedure", "yes", "use the flexible penalty function procedure", "This determines if the flexible penalty function procedure by " "Curtis/Nocedal should be used in the line search. For now, this only " "is implemented for the inexact algorithm."); roptions->AddLowerBoundedNumberOption( "nu_low_init", "Initial value for the lower penalty parameter.", 0.0, true, 1e-6, "This is the initial value for the lower penalty parameter in the " "Curtis/Nocedal flexible penalty function line search procedure. This " "must be smaller or equal to the intial value of the upper penalty " "parameter, see option \"nu_init\"."); roptions->AddLowerBoundedNumberOption( "nu_low_fact", "Factor in update rule for nu_low in flexible penalty function.", 0.0, true, 1e-4, ""); roptions->AddBoundedNumberOption( "inexact_decomposition_activate_tol", "Line search stepsize threshold for activating step decomposition.", 0.0, true, 1.0, false, 1e-3, ""); roptions->AddBoundedNumberOption( "inexact_decomposition_inactivate_tol", "Line search stepsize threshold for inactivating step decomposition.", 0.0, true, 1.0, false, 1e-3, ""); } bool InexactLSAcceptor::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("flexible_penalty_function", flexible_penalty_function_, prefix); if (!options.GetNumericValue("nu_init", nu_init_, prefix) && flexible_penalty_function_) { nu_init_ = 1.; } options.GetNumericValue("nu_inc", nu_inc_, prefix); options.GetNumericValue("eta_phi", eta_, prefix); options.GetNumericValue("rho", rho_, prefix); options.GetNumericValue("tcc_theta", tcc_theta_, prefix); options.GetNumericValue("nu_update_inf_skip_tol", nu_update_inf_skip_tol_, prefix); if (flexible_penalty_function_) { options.GetNumericValue("nu_low_init", nu_low_init_, prefix); ASSERT_EXCEPTION(nu_low_init_<=nu_init_, OPTION_INVALID, "Option \"nu_low_init\" must be smaller or equal to \"nu_init\""); options.GetNumericValue("nu_low_fact", nu_low_fact_, prefix); } options.GetNumericValue("inexact_decomposition_activate_tol", inexact_decomposition_activate_tol_, prefix); options.GetNumericValue("inexact_decomposition_inactivate_tol", inexact_decomposition_inactivate_tol_, prefix); // The following options have been declared in FilterLSAcceptor Index max_soc; options.GetIntegerValue("max_soc", max_soc, prefix); ASSERT_EXCEPTION(max_soc==0, OPTION_INVALID, "Option \"max_soc\" must be zero for inexact version."); Reset(); return true; } void InexactLSAcceptor::InitThisLineSearch(bool in_watchdog) { DBG_START_METH("InexactLSAcceptor::InitThisLineSearch", dbg_verbosity); InexData().set_full_step_accepted(false); // Set the values for the reference point if (!in_watchdog) { reference_theta_ = IpCq().curr_constraint_violation(); reference_barr_ = IpCq().curr_barrier_obj(); //////////////////// Update the penalty parameter const Number uWu = InexCq().curr_uWu(); SmartPtr tangential_x = InexData().tangential_x(); SmartPtr tangential_s = InexData().tangential_s(); const Number scaled_tangential_norm = InexCq().slack_scaled_norm(*tangential_x, *tangential_s); SmartPtr delta_x = IpData().delta()->x(); SmartPtr delta_s = IpData().delta()->s(); // Get the product of the steps with the Jacobian SmartPtr cplusAd_c = IpData().curr()->y_c()->MakeNew(); cplusAd_c->AddTwoVectors(1., *IpCq().curr_jac_c_times_vec(*delta_x), 1., *IpCq().curr_c(), 0.); SmartPtr cplusAd_d = delta_s->MakeNew(); cplusAd_d->AddTwoVectors(1., *IpCq().curr_jac_d_times_vec(*delta_x), -1., *delta_s, 0.); cplusAd_d->Axpy(1., *IpCq().curr_d_minus_s()); const Number norm_cplusAd = IpCq().CalcNormOfType(NORM_2, *cplusAd_c, *cplusAd_d); const Number gradBarrTDelta = IpCq().curr_gradBarrTDelta(); bool compute_normal = InexData().compute_normal(); Number Upsilon = -1.; Number Nu = -1.; if (!compute_normal) { #if 0 // Compute Nu = ||A*u||^2/||A||^2 SmartPtr curr_Au_c = IpCq().curr_jac_c_times_vec(*tangential_x); SmartPtr curr_Au_d = delta_s->MakeNew(); curr_Au_d->AddTwoVectors(1., *IpCq().curr_jac_d_times_vec(*tangential_x), -1., *tangential_s, 0.); Number Nu = IpCq().CalcNormOfType(NORM_2, *curr_Au_c, *curr_Au_d); Nu = pow(Nu,2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "nu update: ||A*u||^2 = %23.16e\n", Nu); Number A_norm2 = InexCq().curr_scaled_A_norm2(); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "nu update: ||A||^2 = %23.16e\n", A_norm2); #endif Nu = 0;//Nu/A_norm2; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "nu update: Nu = ||A*u||^2/||A||^2 = %23.16e\n", Nu); // Compute Upsilon = ||u||^2 - Nu Upsilon = scaled_tangential_norm - Nu; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "nu update: Upsilon = ||u||^2 - ||A*u||^2/||A||^2 = %23.16e\n", Upsilon); } DBG_PRINT((1,"gradBarrTDelta = %e norm_cplusAd = %e reference_theta_ = %e\n", gradBarrTDelta, norm_cplusAd, reference_theta_)); // update the upper penalty parameter Number nu_mid = nu_; Number norm_delta_xs = Max(delta_x->Amax(), delta_s->Amax()); last_nu_ = nu_; if (flexible_penalty_function_) { last_nu_low_ = nu_low_; } in_tt2_ = false; if (norm_delta_xs == 0.) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Zero step, skipping line search\n"); in_tt2_ = true; } // TODO: We need to find a proper cut-off value else if (reference_theta_ > nu_update_inf_skip_tol_) { // Different numerator for different algorithms Number numerator; Number denominator; if (!compute_normal) { numerator = (gradBarrTDelta + Max(0.5*uWu, tcc_theta_*Upsilon)); denominator = (1-rho_)*(reference_theta_-norm_cplusAd); } else { DBG_PRINT((1,"uWu=%e scaled_tangential_norm=%e\n",uWu ,scaled_tangential_norm )); numerator = (gradBarrTDelta + Max(0.5*uWu, tcc_theta_*pow(scaled_tangential_norm,2))); denominator = (1-rho_)*(reference_theta_-norm_cplusAd); } const Number nu_trial = numerator/denominator; // Different numerator for different algorithms if (!compute_normal) { Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "In penalty parameter update formula:\n gradBarrTDelta = %e 0.5*dWd = %e tcc_theta_*Upsilon = %e numerator = %e\n reference_theta_ = %e norm_cplusAd + %e denominator = %e nu_trial = %e\n", gradBarrTDelta, 0.5*uWu, tcc_theta_*Upsilon, numerator, reference_theta_, norm_cplusAd, denominator, nu_trial); } else { Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "In penalty parameter update formula:\n gradBarrTDelta = %e 0.5*uWu = %e tcc_theta_*pow(scaled_tangential_norm,2) = %e numerator = %e\n reference_theta_ = %e norm_cplusAd + %e denominator = %e nu_trial = %e\n", gradBarrTDelta, 0.5*uWu, tcc_theta_*pow(scaled_tangential_norm,2), numerator, reference_theta_, norm_cplusAd, denominator, nu_trial); } if (nu_ < nu_trial) { nu_ = nu_trial + nu_inc_; nu_mid = nu_; } if (flexible_penalty_function_) { nu_mid = Max(nu_low_, nu_trial); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, " nu_low = %8.2e\n", nu_low_); } } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Warning: Skipping nu update because current constraint violation (%e) less than nu_update_inf_skip_tol.\n", reference_theta_); IpData().Append_info_string("nS"); } InexData().set_curr_nu(nu_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " using nu = %23.16e (nu_mid = %23.16e)\n", nu_, nu_mid); // Compute the linear model reduction prediction DBG_PRINT((1,"gradBarrTDelta=%e reference_theta_=%e norm_cplusAd=%e\n", gradBarrTDelta, reference_theta_, norm_cplusAd)); reference_pred_ = - gradBarrTDelta + nu_mid*(reference_theta_ - norm_cplusAd); watchdog_pred_ = 1e300; } else { reference_theta_ = watchdog_theta_; reference_barr_ = watchdog_barr_; reference_pred_ = watchdog_pred_; } } Number InexactLSAcceptor::CalcPred(Number alpha) { DBG_START_METH("InexactLSAcceptor::CalcPred", dbg_verbosity); Number pred = alpha*reference_pred_; if (pred < 0.) { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, " pred = %23.16e is negative. Setting to zero.\n", pred); pred = 0.; } return pred; } bool InexactLSAcceptor::CheckAcceptabilityOfTrialPoint(Number alpha_primal_test) { DBG_START_METH("InexactLSAcceptor::CheckAcceptabilityOfTrialPoint", dbg_verbosity); // If we are in termiation test 2 iteration, we skip the line search if (in_tt2_) { return true; } // First compute the barrier function and constraint violation at the // current iterate and the trial point Number trial_theta = IpCq().trial_constraint_violation(); Number trial_barr = IpCq().trial_barrier_obj(); DBG_ASSERT(IsFiniteNumber(trial_barr)); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking acceptability for trial step size alpha_primal_test=%13.6e:\n", alpha_primal_test); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of barrier function = %23.16e (reference %23.16e):\n", trial_barr, reference_barr_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of constraint violation = %23.16e (reference %23.16e):\n", trial_theta, reference_theta_); Number pred = CalcPred(alpha_primal_test); resto_pred_ = pred; DBG_PRINT((1, "nu_ = %e reference_barr_ + nu_*(reference_theta_)=%e trial_barr + nu_*trial_theta=%e\n",nu_,reference_barr_ + nu_*(reference_theta_),trial_barr + nu_*trial_theta)); Number ared = reference_barr_ + nu_*(reference_theta_) - (trial_barr + nu_*trial_theta); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Checking Armijo Condition with pred = %23.16e and ared = %23.16e\n", pred, ared); bool accept = Compare_le(eta_*pred, ared, reference_barr_ + nu_*(reference_theta_)); bool accept_low = false; if (flexible_penalty_function_) { DBG_PRINT((1, "nu_low = %e reference_barr_ + nu_low*(reference_theta_)=%e trial_barr + nu_low*trial_theta=%e\n",nu_low_,reference_barr_ + nu_low_*(reference_theta_),trial_barr + nu_low_*trial_theta)); ared = reference_barr_ + nu_low_*(reference_theta_) - (trial_barr + nu_low_*trial_theta); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Checking nu_low Armijo Condition with pred = %23.16e and ared = %23.16e\n", pred, ared); accept_low = Compare_le(eta_*pred, ared, reference_barr_ + nu_low_*(reference_theta_)); } accepted_by_low_only_ = false; if (accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Success...\n"); } else if (flexible_penalty_function_ && accept_low) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Success with nu_low...\n"); accept = true; accepted_by_low_only_ = true; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Failed...\n"); } if (accept) { // HERE WE RESET THE SLACKS. MAYBE THIS SHOULD BE BEFORE THE // FUNCTION EVALUATIONS? ResetSlacks(); if (flexible_penalty_function_) { // update the lower penalty parameter if necessary if (!accept_low) { Number nu_real = -(trial_barr - reference_barr_)/(trial_theta - reference_theta_); nu_low_ = Min(nu_, nu_low_ + Max(nu_low_fact_*(nu_real-nu_low_), nu_inc_)); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Updating nu_low to %8.2e with nu_real = %8.2e\n", nu_low_, nu_real); } } } return accept; } void InexactLSAcceptor::ResetSlacks() { DBG_START_METH("InexactLSAcceptor::ResetSlacks", dbg_verbosity); DBG_PRINT_VECTOR(1, "sorig", *IpData().trial()->s()); DBG_PRINT_VECTOR(1, "dtrial", *IpCq().trial_d()); SmartPtr new_s = IpData().trial()->s()->MakeNew(); SmartPtr tmp_d = IpNLP().d_L()->MakeNew(); IpNLP().Pd_L()->TransMultVector(1., *IpCq().trial_d(), 0., *tmp_d); SmartPtr tmp_s = IpNLP().d_L()->MakeNew(); IpNLP().Pd_L()->TransMultVector(1., *IpData().trial()->s(), 0., *tmp_s); tmp_s->ElementWiseMax(*tmp_d); IpNLP().Pd_L()->MultVector(1., *tmp_s, 0., *new_s); tmp_d = IpNLP().d_U()->MakeNew(); IpNLP().Pd_U()->TransMultVector(1., *IpCq().trial_d(), 0., *tmp_d); tmp_s = IpNLP().d_U()->MakeNew(); IpNLP().Pd_U()->TransMultVector(1., *IpData().trial()->s(), 0., *tmp_s); tmp_s->ElementWiseMin(*tmp_d); IpNLP().Pd_U()->MultVector(1., *tmp_s, 1., *new_s); SmartPtr trial = IpData().trial()->MakeNewContainer(); trial->Set_s(*new_s); IpData().set_trial(trial); DBG_PRINT_VECTOR(1, "new_s", *IpData().trial()->s()); } Number InexactLSAcceptor::CalculateAlphaMin() { // ToDo: make better return 1e-16; } void InexactLSAcceptor::StartWatchDog() { DBG_START_FUN("InexactLSAcceptor::StartWatchDog", dbg_verbosity); watchdog_theta_ = reference_theta_; watchdog_barr_ = reference_barr_; watchdog_pred_ = reference_pred_; } void InexactLSAcceptor::StopWatchDog() { DBG_START_FUN("InexactLSAcceptor::StopWatchDog", dbg_verbosity); reference_theta_ = watchdog_theta_; reference_barr_ = watchdog_barr_; reference_pred_ = watchdog_pred_; } void InexactLSAcceptor::Reset() { DBG_START_FUN("InexactLSAcceptor::Reset", dbg_verbosity); nu_ = nu_init_; if (flexible_penalty_function_) { nu_low_ = nu_low_init_; } InexData().set_curr_nu(nu_); } bool InexactLSAcceptor::TrySecondOrderCorrection( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { DBG_START_METH("InexactLSAcceptor::TrySecondOrderCorrection", dbg_verbosity); return false; } bool InexactLSAcceptor::TryCorrector( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { return false; } char InexactLSAcceptor::UpdateForNextIteration(Number alpha_primal_test) { // If normal step has not been computed and alpha is too small, // set next_compute_normal to true.. bool compute_normal = InexData().compute_normal(); if (!compute_normal && alpha_primal_test < inexact_decomposition_activate_tol_) { Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Setting next_compute_normal to 1 since %8.2e < inexact_decomposition_activate_tol\n", alpha_primal_test); InexData().set_next_compute_normal(true); } // If normal step has been computed and acceptable alpha is large, // set next_compute_normal to false if (compute_normal && alpha_primal_test > inexact_decomposition_inactivate_tol_) { Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Setting next_compute_normal to 0 since %8.2e > inexact_decomposition_inactivate_tol\n", alpha_primal_test); InexData().set_next_compute_normal(false); } char info_alpha_primal_char = 'k'; // Augment the filter if required if (last_nu_ != nu_) { info_alpha_primal_char = 'n'; char snu[40]; sprintf(snu, " nu=%8.2e", nu_); IpData().Append_info_string(snu); } if (flexible_penalty_function_ && last_nu_low_ != nu_low_) { char snu[40]; sprintf(snu, " nl=%8.2e", nu_low_); IpData().Append_info_string(snu); if (info_alpha_primal_char == 'k' ) { info_alpha_primal_char = 'l'; } else { info_alpha_primal_char = 'b'; } } if (accepted_by_low_only_) { info_alpha_primal_char = (char)toupper(info_alpha_primal_char); } if (alpha_primal_test==1. && watchdog_pred_==1e300) { InexData().set_full_step_accepted(true); } return info_alpha_primal_char; } void InexactLSAcceptor::PrepareRestoPhaseStart() { //THROW_EXCEPTION(INTERNAL_ABORT, "Restoration phase called"); Jnlst().Printf(J_WARNING, J_LINE_SEARCH, " Restoration Phase Preparation method called for InexactLSAcceptor!\n"); } bool InexactLSAcceptor::IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration /*=false*/) const { DBG_START_METH("InexactLSAcceptor::IsAcceptableToCurrentIterate", dbg_verbosity); THROW_EXCEPTION(INTERNAL_ABORT, "InexactLSAcceptor::IsAcceptableToCurrentIterate called"); ASSERT_EXCEPTION(resto_pred_ <= 0., INTERNAL_ABORT, "resto_pred_ not set for check from restoration phase."); Number ared = reference_barr_ + nu_*(reference_theta_) - (trial_barr + nu_*trial_theta); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Checking Armijo Condition (for resto) with pred = %23.16e and ared = %23.16e\n", resto_pred_, ared); bool accept; if (Compare_le(eta_*resto_pred_, ared, reference_barr_ + nu_*(reference_theta_))) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Success...\n"); accept = true; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Failed...\n"); accept = false; } return accept; } Number InexactLSAcceptor::ComputeAlphaForY(Number alpha_primal, Number alpha_dual, SmartPtr& delta) { DBG_START_METH("InexactLSAcceptor::ComputeAlphaForY", dbg_verbosity); // Here, we choose as stepsize for y either alpha_primal, if the // conditions from the ineqaxt paper is satisfied for it, or we // compute the step size closest to alpha_primal but great than // it, that does give the same progress as the full step would // give. Number alpha_y = alpha_primal; SmartPtr gx = IpCq().curr_grad_barrier_obj_x()->MakeNewCopy(); gx->AddTwoVectors(1., *IpCq().curr_jac_cT_times_curr_y_c(), 1., *IpCq().curr_jac_dT_times_curr_y_d(), 1.); SmartPtr Jxy = gx->MakeNew(); IpCq().curr_jac_c()->TransMultVector(1., *delta->y_c(), 0., *Jxy); IpCq().curr_jac_d()->TransMultVector(1., *delta->y_d(), 1., *Jxy); SmartPtr curr_scaling_slacks = InexCq().curr_scaling_slacks(); SmartPtr gs = curr_scaling_slacks->MakeNew(); gs->AddTwoVectors(1., *IpCq().curr_grad_barrier_obj_s(), -1., *IpData().curr()->y_d(), 0.); gs->ElementWiseMultiply(*curr_scaling_slacks); SmartPtr Sdy = delta->y_d()->MakeNewCopy(); Sdy->ElementWiseMultiply(*curr_scaling_slacks); // using the magic formula in my notebook Number a = pow(Jxy->Nrm2(), 2) + pow(Sdy->Nrm2(), 2); Number b = 2*(gx->Dot(*Jxy) - gs->Dot(*Sdy)); Number c = pow(gx->Nrm2(), 2) + pow(gs->Nrm2(), 2); // First we check if the primal step size is good enough: Number val_ap = alpha_primal*alpha_primal*a + alpha_primal*b + c; Number val_1 = a + b + c; if (val_ap <= val_1) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Step size for y: using alpha_primal\n."); } else { Number alpha_2 = - b/a - 1.; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Step size for y candidate: %8.2e - ", alpha_2); if (alpha_2 > alpha_primal && alpha_2 < 1.) { alpha_y = alpha_2; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "using that one\n."); } else { alpha_y = 1.; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "using 1 instead\n"); } } return alpha_y; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpIterativePardisoSolverInterface.cpp0000644000076600007660000007223112151613040026041 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterativePardisoSolverInterface.cpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-19 // // based on IpPardisoSolverInterface.cpp rev 1219 #include "IpoptConfig.h" #include "IpIterativePardisoSolverInterface.hpp" #include "IpBlas.hpp" # include #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # else # error "don't have header file for stdlib" # endif #endif #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif Ipopt::IterativeSolverTerminationTester* global_tester_ptr_; Ipopt::IterativeSolverTerminationTester::ETerminationTest test_result_; extern "C" { int IpoptTerminationTest(int n, double* sol, double* resid, int iter, double norm2_rhs) { fflush(stdout); fflush(stderr); // only do the termination test for PD system test_result_ = global_tester_ptr_->TestTermination(n, sol, resid, iter, norm2_rhs); global_tester_ptr_->GetJnlst().Printf(Ipopt::J_DETAILED, Ipopt::J_LINEAR_ALGEBRA, "Termination Tester Result = %d.\n", test_result_); switch (test_result_) { case Ipopt::IterativeSolverTerminationTester::CONTINUE: return false; break; default: return true; break; } } // The following global function pointer is defined in the Pardiso library void SetIpoptCallbackFunction(int (*IpoptFunction)(int n, double* x, double* r, int k, double b)); } /** Prototypes for Pardiso's subroutines */ extern "C" { void F77_FUNC(pardisoinit,PARDISOINIT)(void* PT, const ipfint* MTYPE, const ipfint* SOLVER, ipfint* IPARM, double* DPARM, ipfint* ERROR); void F77_FUNC(pardiso,PARDISO)(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* ERROR, double* DPARM); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif IterativePardisoSolverInterface:: IterativePardisoSolverInterface(IterativeSolverTerminationTester& normal_tester, IterativeSolverTerminationTester& pd_tester) : a_(NULL), negevals_(-1), initialized_(false), MAXFCT_(1), MNUM_(1), MTYPE_(-2), MSGLVL_(0), debug_last_iter_(-1), normal_tester_(&normal_tester), pd_tester_(&pd_tester) { DBG_START_METH("IterativePardisoSolverInterface::IterativePardisoSolverInterface()",dbg_verbosity); PT_ = new void*[64]; IPARM_ = new ipfint[64]; DPARM_ = new double[64]; } IterativePardisoSolverInterface::~IterativePardisoSolverInterface() { DBG_START_METH("IterativePardisoSolverInterface::~IterativePardisoSolverInterface()", dbg_verbosity); // Tell Pardiso to release all memory if (initialized_) { ipfint PHASE = -1; ipfint N = dim_; ipfint NRHS = 0; ipfint ERROR; ipfint idmy; double ddmy; F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, &ddmy, &idmy, &idmy, &idmy, &NRHS, IPARM_, &MSGLVL_, &ddmy, &ddmy, &ERROR, DPARM_); DBG_ASSERT(ERROR==0); } delete[] PT_; delete[] IPARM_; delete[] DPARM_; delete[] a_; } void IterativePardisoSolverInterface::RegisterOptions(SmartPtr roptions) {} bool IterativePardisoSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { Index enum_int; options.GetEnumValue("pardiso_matching_strategy", enum_int, prefix); match_strat_ = PardisoMatchingStrategy(enum_int); options.GetBoolValue("pardiso_redo_symbolic_fact_only_if_inertia_wrong", pardiso_redo_symbolic_fact_only_if_inertia_wrong_, prefix); options.GetBoolValue("pardiso_repeated_perturbation_means_singular", pardiso_repeated_perturbation_means_singular_, prefix); Index pardiso_out_of_core_power; options.GetIntegerValue("pardiso_out_of_core_power", pardiso_out_of_core_power, prefix); options.GetBoolValue("pardiso_skip_inertia_check", skip_inertia_check_, prefix); // PD system options.GetIntegerValue("pardiso_max_iter", pardiso_max_iter_, prefix); options.GetNumericValue("pardiso_iter_relative_tol", pardiso_iter_relative_tol_, prefix); options.GetIntegerValue("pardiso_iter_coarse_size", pardiso_iter_coarse_size_, prefix); options.GetIntegerValue("pardiso_iter_max_levels", pardiso_iter_max_levels_, prefix); options.GetNumericValue("pardiso_iter_dropping_factor", pardiso_iter_dropping_factor_, prefix); options.GetNumericValue("pardiso_iter_dropping_schur", pardiso_iter_dropping_schur_, prefix); options.GetIntegerValue("pardiso_iter_max_row_fill", pardiso_iter_max_row_fill_, prefix); options.GetNumericValue("pardiso_iter_inverse_norm_factor", pardiso_iter_inverse_norm_factor_, prefix); // Normal system options.GetIntegerValue("pardiso_max_iter", normal_pardiso_max_iter_, prefix+"normal."); options.GetNumericValue("pardiso_iter_relative_tol", normal_pardiso_iter_relative_tol_, prefix+"normal."); options.GetIntegerValue("pardiso_iter_coarse_size", normal_pardiso_iter_coarse_size_, prefix+"normal."); options.GetIntegerValue("pardiso_iter_max_levels", normal_pardiso_iter_max_levels_, prefix+"normal."); options.GetNumericValue("pardiso_iter_dropping_factor", normal_pardiso_iter_dropping_factor_, prefix+"normal."); options.GetNumericValue("pardiso_iter_dropping_schur", normal_pardiso_iter_dropping_schur_, prefix+"normal."); options.GetIntegerValue("pardiso_iter_max_row_fill", normal_pardiso_iter_max_row_fill_, prefix+"normal."); options.GetNumericValue("pardiso_iter_inverse_norm_factor", normal_pardiso_iter_inverse_norm_factor_, prefix+"normal."); int pardiso_msglvl; options.GetIntegerValue("pardiso_msglvl", pardiso_msglvl, prefix); options.GetIntegerValue("pardiso_max_droptol_corrections", pardiso_max_droptol_corrections_, prefix); // Number value = 0.0; // Tell Pardiso to release all memory if it had been used before if (initialized_) { ipfint PHASE = -1; ipfint N = dim_; ipfint NRHS = 0; ipfint ERROR; ipfint idmy; double ddmy; F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, &ddmy, &idmy, &idmy, &idmy, &NRHS, IPARM_, &MSGLVL_, &ddmy, &ddmy, &ERROR, DPARM_) ; DBG_ASSERT(ERROR==0); } // Reset all private data dim_=0; nonzeros_=0; have_symbolic_factorization_=false; initialized_=false; delete[] a_; a_ = NULL; #ifdef HAVE_PARDISO_OLDINTERFACE THROW_EXCEPTION(OPTION_INVALID, "The inexact version works only with a new version of Pardiso (at least 4.0)"); #endif // Call Pardiso's initialization routine IPARM_[0] = 0; // Tell it to fill IPARM with default values(?) ipfint ERROR = 0; ipfint SOLVER = 1; // initialze only direct solver F77_FUNC(pardisoinit,PARDISOINIT)(PT_, &MTYPE_, &SOLVER, IPARM_, DPARM_, &ERROR); // Set some parameters for Pardiso IPARM_[0] = 1; // Don't use the default values #if defined(HAVE_PARDISO_PARALLEL) || ! defined(HAVE_PARDISO) // Obtain the numbers of processors from the value of OMP_NUM_THREADS char *var = getenv("OMP_NUM_THREADS"); int num_procs = 1; if (var != NULL) { sscanf( var, "%d", &num_procs ); if (num_procs < 1) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Invalid value for OMP_NUM_THREADS (\"%s\").\n", var); return false; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Using environment OMP_NUM_THREADS = %d as the number of processors.\n", num_procs); } #ifdef HAVE_PARDISO // If we run Pardiso through the linear solver loader, // we do not know whether it is the parallel version, so we do not report an error if OMP_NUM_THREADS is not set. else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "You need to set environment variable OMP_NUM_THREADS to the number of processors used in Pardiso (e.g., 1).\n\n"); return false; } #endif IPARM_[2] = num_procs; // Set the number of processors #else IPARM_[2] = 1; #endif IPARM_[1] = 5; IPARM_[5] = 1; // Overwrite right-hand side // ToDo: decide if we need iterative refinement in Pardiso. For // now, switch it off ? IPARM_[7] = 0; // Options suggested by Olaf Schenk IPARM_[9] = 12; IPARM_[10] = 2; // Results in better scaling // Matching information: IPARM_[12] = 1 seems ok, but results in a // large number of pivot perturbation // Matching information: IPARM_[12] = 2 robust, but more expensive method IPARM_[12] = (int)match_strat_; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Pardiso matching strategy (IPARM(13)): %d\n", IPARM_[12]); IPARM_[20] = 3; // Results in better accuracy IPARM_[23] = 1; // parallel fac IPARM_[24] = 1; // parallel solve IPARM_[28] = 0; // 32-bit factorization IPARM_[29] = 1; // we need this for IPOPT interface IPARM_[31] = 1 ; // iterative solver MSGLVL_ = pardiso_msglvl; pardiso_iter_dropping_factor_used_ = pardiso_iter_dropping_factor_; pardiso_iter_dropping_schur_used_ = pardiso_iter_dropping_schur_; normal_pardiso_iter_dropping_factor_used_ = normal_pardiso_iter_dropping_factor_; normal_pardiso_iter_dropping_schur_used_ = normal_pardiso_iter_dropping_schur_; // TODO Make option decr_factor_ = 1./3.; // Option for the out of core variant // IPARM_[49] = pardiso_out_of_core_power; SetIpoptCallbackFunction(&IpoptTerminationTest); bool retval = normal_tester_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); if (retval) { retval = pd_tester_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retval; } ESymSolverStatus IterativePardisoSolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("IterativePardisoSolverInterface::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); // check if a factorization has to be done if (new_matrix) { // perform the factorization ESymSolverStatus retval; retval = Factorization(ia, ja, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } } // do the solve return Solve(ia, ja, nrhs, rhs_vals); } double* IterativePardisoSolverInterface::GetValuesArrayPtr() { DBG_ASSERT(initialized_); DBG_ASSERT(a_); return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus IterativePardisoSolverInterface::InitializeStructure (Index dim, Index nonzeros, const Index* ia, const Index* ja) { DBG_START_METH("IterativePardisoSolverInterface::InitializeStructure",dbg_verbosity); dim_ = dim; nonzeros_ = nonzeros; // Make space for storing the matrix elements delete[] a_; a_ = NULL; a_ = new double[nonzeros_]; // Do the symbolic facotrization ESymSolverStatus retval = SymbolicFactorization(ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } initialized_ = true; return retval; } ESymSolverStatus IterativePardisoSolverInterface::SymbolicFactorization(const Index* ia, const Index* ja) { DBG_START_METH("IterativePardisoSolverInterface::SymbolicFactorization", dbg_verbosity); // Since Pardiso requires the values of the nonzeros of the matrix // for an efficient symbolic factorization, we postpone that task // until the first call of Factorize. All we do here is to reset // the flag (in case this interface is called for a matrix with a // new structure). have_symbolic_factorization_ = false; return SYMSOLVER_SUCCESS; } static void write_iajaa_matrix (int N, const Index* ia, const Index* ja, double* a_, double* rhs_vals, int iter_cnt, int sol_cnt) { if (getenv ("IPOPT_WRITE_MAT")) { /* Write header */ FILE *mat_file; char mat_name[128]; char mat_pref[32]; ipfint NNZ = ia[N]-1; ipfint i; if (getenv ("IPOPT_WRITE_PREFIX")) strcpy (mat_pref, getenv ("IPOPT_WRITE_PREFIX")); else strcpy (mat_pref, "mat-ipopt"); Snprintf (mat_name, 127, "%s_%03d-%02d.iajaa", mat_pref, iter_cnt, sol_cnt); // Open and write matrix file. mat_file = fopen (mat_name, "w"); fprintf (mat_file, "%d\n", N); fprintf (mat_file, "%d\n", NNZ); for (i = 0; i < N+1; i++) fprintf (mat_file, "%d\n", ia[i]); for (i = 0; i < NNZ; i++) fprintf (mat_file, "%d\n", ja[i]); for (i = 0; i < NNZ; i++) fprintf (mat_file, "%32.24e\n", a_[i]); /* Right hand side. */ if (rhs_vals) for (i = 0; i < N; i++) //FIXME: PUT BACK ORIGINAL: fprintf (mat_file, "%32.24e\n", rhs_vals[i]); fprintf (mat_file, "%32.24e\n", -rhs_vals[i]); fclose (mat_file); } } ESymSolverStatus IterativePardisoSolverInterface::Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("IterativePardisoSolverInterface::Factorization",dbg_verbosity); // Call Pardiso to do the factorization ipfint PHASE ; ipfint N = dim_; ipfint PERM; // This should not be accessed by Pardiso ipfint NRHS = 0; double B; // This should not be accessed by Pardiso in factorization // phase double X; // This should not be accessed by Pardiso in factorization // phase ipfint ERROR; bool done = false; bool just_performed_symbolic_factorization = false; while (!done) { bool is_normal = false; if (IsNull(InexData().normal_x()) && InexData().compute_normal()) { is_normal = true; } if (!have_symbolic_factorization_) { if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } PHASE = 11; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Calling Pardiso for symbolic factorization.\n"); if (is_normal) { DPARM_[ 0] = normal_pardiso_max_iter_; DPARM_[ 1] = normal_pardiso_iter_relative_tol_; DPARM_[ 2] = normal_pardiso_iter_coarse_size_; DPARM_[ 3] = normal_pardiso_iter_max_levels_; DPARM_[ 4] = normal_pardiso_iter_dropping_factor_used_; DPARM_[ 5] = normal_pardiso_iter_dropping_schur_used_; DPARM_[ 6] = normal_pardiso_iter_max_row_fill_; DPARM_[ 7] = normal_pardiso_iter_inverse_norm_factor_; } else { DPARM_[ 0] = pardiso_max_iter_; DPARM_[ 1] = pardiso_iter_relative_tol_; DPARM_[ 2] = pardiso_iter_coarse_size_; DPARM_[ 3] = pardiso_iter_max_levels_; DPARM_[ 4] = pardiso_iter_dropping_factor_used_; DPARM_[ 5] = pardiso_iter_dropping_schur_used_; DPARM_[ 6] = pardiso_iter_max_row_fill_; DPARM_[ 7] = pardiso_iter_inverse_norm_factor_; } DPARM_[ 8] = 25; // maximum number of non-improvement steps F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, a_, ia, ja, &PERM, &NRHS, IPARM_, &MSGLVL_, &B, &X, &ERROR, DPARM_); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } if (ERROR==-7) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Pardiso symbolic factorization returns ERROR = %d. Matrix is singular.\n", ERROR); return SYMSOLVER_SINGULAR; } else if (ERROR!=0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during symbolic factorization phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } have_symbolic_factorization_ = true; just_performed_symbolic_factorization = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Memory in KB required for the symbolic factorization = %d.\n", IPARM_[14]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Integer memory in KB required for the numerical factorization = %d.\n", IPARM_[15]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Double memory in KB required for the numerical factorization = %d.\n", IPARM_[16]); } PHASE = 22; if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().Start(); } Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling Pardiso for factorization.\n"); // Dump matrix to file, and count number of solution steps. if (HaveIpData()) { if (IpData().iter_count() != debug_last_iter_) debug_cnt_ = 0; debug_last_iter_ = IpData().iter_count(); debug_cnt_ ++; } else { debug_cnt_ = 0; debug_last_iter_ = 0; } if (is_normal) { DPARM_[ 0] = normal_pardiso_max_iter_; DPARM_[ 1] = normal_pardiso_iter_relative_tol_; DPARM_[ 2] = normal_pardiso_iter_coarse_size_; DPARM_[ 3] = normal_pardiso_iter_max_levels_; DPARM_[ 4] = normal_pardiso_iter_dropping_factor_used_; DPARM_[ 5] = normal_pardiso_iter_dropping_schur_used_; DPARM_[ 6] = normal_pardiso_iter_max_row_fill_; DPARM_[ 7] = normal_pardiso_iter_inverse_norm_factor_; } else { DPARM_[ 0] = pardiso_max_iter_; DPARM_[ 1] = pardiso_iter_relative_tol_; DPARM_[ 2] = pardiso_iter_coarse_size_; DPARM_[ 3] = pardiso_iter_max_levels_; DPARM_[ 4] = pardiso_iter_dropping_factor_used_; DPARM_[ 5] = pardiso_iter_dropping_schur_used_; DPARM_[ 6] = pardiso_iter_max_row_fill_; DPARM_[ 7] = pardiso_iter_inverse_norm_factor_; } DPARM_[ 8] = 25; // maximum number of non-improvement steps F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, a_, ia, ja, &PERM, &NRHS, IPARM_, &MSGLVL_, &B, &X, &ERROR, DPARM_); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } if (ERROR==-7) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Pardiso factorization returns ERROR = %d. Matrix is singular.\n", ERROR); return SYMSOLVER_SINGULAR; } else if (ERROR==-4) { // I think this means that the matrix is singular // OLAF said that this will never happen (ToDo) return SYMSOLVER_SINGULAR; } else if (ERROR!=0 ) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during factorization phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } negevals_ = Max(IPARM_[22], numberOfNegEVals); if (IPARM_[13] != 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of perturbed pivots in factorization phase = %d.\n", IPARM_[13]); if (HaveIpData()) { IpData().Append_info_string("Pp"); } done = true; } else { done = true; } } // DBG_ASSERT(IPARM_[21]+IPARM_[22] == dim_); // Check whether the number of negative eigenvalues matches the requested // count if (skip_inertia_check_) numberOfNegEVals=negevals_; if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Wrong inertia: required are %d, but we got %d.\n", numberOfNegEVals, negevals_); return SYMSOLVER_WRONG_INERTIA; } return SYMSOLVER_SUCCESS; } ESymSolverStatus IterativePardisoSolverInterface::Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals) { DBG_START_METH("IterativePardisoSolverInterface::Solve",dbg_verbosity); DBG_ASSERT(nrhs==1); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } // Call Pardiso to do the solve for the given right-hand sides ipfint PHASE = 33; ipfint N = dim_; ipfint PERM; // This should not be accessed by Pardiso ipfint NRHS = nrhs; double* X = new double[nrhs*dim_]; double* ORIG_RHS = new double[nrhs*dim_]; ipfint ERROR; // Initialize solution with zero and save right hand side for (int i = 0; i < N; i++) { X[i] = 0; ORIG_RHS[i] = rhs_vals[i]; } // Dump matrix to file if requested Index iter_count = 0; if (HaveIpData()) { iter_count = IpData().iter_count(); } write_iajaa_matrix (N, ia, ja, a_, rhs_vals, iter_count, debug_cnt_); IterativeSolverTerminationTester* tester; int attempts = 0; const int max_attempts = pardiso_max_droptol_corrections_+1; bool is_normal = false; if (IsNull(InexData().normal_x()) && InexData().compute_normal()) { tester = GetRawPtr(normal_tester_); is_normal = true; } else { tester = GetRawPtr(pd_tester_); } global_tester_ptr_ = tester; while (attemptsInitializeSolve(); ASSERT_EXCEPTION(retval, INTERNAL_ABORT, "tester->InitializeSolve(); returned false"); for (int i = 0; i < N; i++) { rhs_vals[i] = ORIG_RHS[i]; } DPARM_[ 8] = 25; // non_improvement in SQMR iteration F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, a_, ia, ja, &PERM, &NRHS, IPARM_, &MSGLVL_, rhs_vals, X, &ERROR, DPARM_); if (ERROR <= -100 && ERROR >= -110) { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "Iterative solver in Pardiso did not converge (ERROR = %d)\n", ERROR); Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, " Decreasing drop tolerances from DPARM_[ 4] = %e and DPARM_[ 5] = %e ", DPARM_[ 4], DPARM_[ 5]); if (is_normal) { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "(normal step)\n"); } else { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "(PD step)\n"); } PHASE = 23; DPARM_[ 4] *= decr_factor_; DPARM_[ 5] *= decr_factor_; Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, " to DPARM_[ 4] = %e and DPARM_[ 5] = %e\n", DPARM_[ 4], DPARM_[ 5]); // Copy solution back to y to get intial values for the next iteration attempts++; ERROR = 0; } else { attempts = max_attempts; Index iterations_used = tester->GetSolverIterations(); if (is_normal) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of iterations in Pardiso iterative solver for normal step = %d.\n", iterations_used); } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of iterations in Pardiso iterative solver for PD step = %d.\n", iterations_used); } } tester->Clear(); } if (is_normal) { if (DPARM_[4] < normal_pardiso_iter_dropping_factor_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing drop tolerances from DPARM_[ 4] = %e and DPARM_[ 5] = %e (normal step\n", DPARM_[ 4], DPARM_[ 5]); } normal_pardiso_iter_dropping_factor_used_ = Min(DPARM_[4]/decr_factor_, normal_pardiso_iter_dropping_factor_); normal_pardiso_iter_dropping_schur_used_ = Min(DPARM_[5]/decr_factor_, normal_pardiso_iter_dropping_schur_); if (DPARM_[4] < normal_pardiso_iter_dropping_factor_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " to DPARM_[ 4] = %e and DPARM_[ 5] = %e for next iteration.\n", normal_pardiso_iter_dropping_factor_used_, normal_pardiso_iter_dropping_schur_used_); } } else { if (DPARM_[4] < pardiso_iter_dropping_factor_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing drop tolerances from DPARM_[ 4] = %e and DPARM_[ 5] = %e (PD step\n", DPARM_[ 4], DPARM_[ 5]); } pardiso_iter_dropping_factor_used_ = Min(DPARM_[4]/decr_factor_, pardiso_iter_dropping_factor_); pardiso_iter_dropping_schur_used_ = Min(DPARM_[5]/decr_factor_, pardiso_iter_dropping_schur_); if (DPARM_[4] < pardiso_iter_dropping_factor_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " to DPARM_[ 4] = %e and DPARM_[ 5] = %e for next iteration.\n", pardiso_iter_dropping_factor_used_, pardiso_iter_dropping_schur_used_); } } delete [] X; delete [] ORIG_RHS; if (IPARM_[6] != 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of iterative refinement steps = %d.\n", IPARM_[6]); if (HaveIpData()) { IpData().Append_info_string("Pi"); } } if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } if (ERROR!=0 ) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during solve phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } if (test_result_ == IterativeSolverTerminationTester::MODIFY_HESSIAN) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination tester requests modification of Hessian\n"); return SYMSOLVER_WRONG_INERTIA; } #if 0 // FRANK: look at this: if (test_result_ == IterativeSolverTerminationTester::CONTINUE) { if (InexData().compute_normal()) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination tester not satisfied!!! Pretend singular\n"); return SYMSOLVER_SINGULAR; } } #endif if (test_result_ == IterativeSolverTerminationTester::TEST_2_SATISFIED) { // Termination Test 2 is satisfied, set the step for the primal // iterates to zero Index nvars = IpData().curr()->x()->Dim() + IpData().curr()->s()->Dim(); const Number zero = 0.; IpBlasDcopy(nvars, &zero, 0, rhs_vals, 1); } return SYMSOLVER_SUCCESS; } Index IterativePardisoSolverInterface::NumberOfNegEVals() const { DBG_START_METH("IterativePardisoSolverInterface::NumberOfNegEVals",dbg_verbosity); DBG_ASSERT(negevals_>=0); return negevals_; } bool IterativePardisoSolverInterface::IncreaseQuality() { // At the moment, I don't see how we could tell Pardiso to do better // (maybe switch from IPARM[20]=1 to IPARM[20]=2?) return false; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactNormalTerminationTester.hpp0000644000076600007660000000671012151613040025720 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactNormalTerminationTester.hpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-19 #ifndef __IPINEXACTNORMALTERMINATIONTESTER_HPP__ #define __IPINEXACTNORMALTERMINATIONTESTER_HPP__ #include "IpIterativeSolverTerminationTester.hpp" namespace Ipopt { /** This class implements the termination tests for the primal-dual * system. */ class InexactNormalTerminationTester: public IterativeSolverTerminationTester { public: /** @name /Destructor */ //@{ /** Default constructor */ InexactNormalTerminationTester(); /** Default destructor */ virtual ~InexactNormalTerminationTester(); //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Method for initializing for the next iterative solve. This * must be call before the test methods are called. */ virtual bool InitializeSolve(); /** This method checks if the current soltion of the iterative * linear solver is good enough (by returning the corresponding * satisfied termination test), or if the Hessian should be * modified. The input is the dimension of the augmented system, * the current solution vector of the augmented system, the * current residual vector. */ virtual ETerminationTest TestTermination(Index ndim, const Number* sol, const Number* resid, Index iter, Number norm2_rhs); /** This method can be called after the Solve is over and we can * delete anything that has been allocated to free memory. */ virtual void Clear(); /** Return the number of iterative solver iteration from the most * recent solve */ virtual Index GetSolverIterations() const { return last_iter_; } /** Method for setting the normal problem objective function value * at the Cauchy step. This must be called by the Dogleg * object. */ void Set_c_Avc_norm_cauchy(Number c_Avc_norm_cauchy) { c_Avc_norm_cauchy_ = c_Avc_norm_cauchy; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Overloaded Equals Operator */ InexactNormalTerminationTester& operator=(const InexactNormalTerminationTester&); //@} /** @name Algorithmic options */ //@{ /** Desired reduction of residual */ Number inexact_normal_tol_; /** Maximal number of iterative solve iterations */ Index inexact_normal_max_iter_; /** Is set to true if the linear system is scaled via slacks. */ bool requires_scaling_; //@} /** Value of normal problem objective function achived by the * Cauchy step. This must be set by the Dogleg step object. */ Number c_Avc_norm_cauchy_; /** Last iterative solver iteration counter */ Index last_iter_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactSearchDirCalc.cpp0000644000076600007660000001552211504216567023530 0ustar coincoin// Copyright (C) 2008, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactSearchDirCalc.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #include "IpInexactSearchDirCalc.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactSearchDirCalculator:: InexactSearchDirCalculator(SmartPtr normal_step_calculator, SmartPtr inexact_pd_solver) : normal_step_calculator_(normal_step_calculator), inexact_pd_solver_(inexact_pd_solver) {} InexactSearchDirCalculator::~InexactSearchDirCalculator() {} void InexactSearchDirCalculator::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "local_inf_Ac_tol", "Termination tolerance for local infeasibility (scaled ||Ac||).", 0.0, true, 1e-8, ""); roptions->AddStringOption3( "inexact_step_decomposition", "Determines if the steps should be decomposed into normal and tangential components.", "adaptive", "always", "always compute the step as two components", "adaptive", "try to use undecomposed steps if possible", "switch-once", "try to use undecomposed steps, but if decomposition is necessary, always keep it", "TO BE WRITTEN"); } bool InexactSearchDirCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("local_inf_Ac_tol", local_inf_Ac_tol_, prefix); Index enum_int; options.GetEnumValue("inexact_step_decomposition", enum_int, prefix); decomposition_type_ = DecompositionTypeEnum(enum_int); bool compute_normal = false; switch (decomposition_type_) { case ALWAYS: compute_normal = true; break; case ADAPTIVE: case SWITCH_ONCE: compute_normal = false; break; } InexData().set_compute_normal(compute_normal); InexData().set_next_compute_normal(compute_normal); bool retval = inexact_pd_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); if (!retval) return false; return normal_step_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool InexactSearchDirCalculator::ComputeSearchDirection() { DBG_START_METH("InexactSearchDirCalculator::ComputeSearchDirection", dbg_verbosity); // First check if the iterates have converged to a locally // infeasible point Number curr_scaled_Ac_norm = InexCq().curr_scaled_Ac_norm(); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "curr_scaled_Ac_norm = %e\n", curr_scaled_Ac_norm); Number curr_inf = IpCq().curr_primal_infeasibility(NORM_2); // ToDo work on termination criteria if (curr_scaled_Ac_norm <= local_inf_Ac_tol_ && curr_inf > 1e-4) { THROW_EXCEPTION(LOCALLY_INFEASIBLE, "The scaled norm of Ac is satisfying tolerance"); } bool compute_normal = false; switch (decomposition_type_) { case ALWAYS: compute_normal = true; break; case ADAPTIVE: compute_normal = InexData().next_compute_normal(); break; case SWITCH_ONCE: compute_normal = InexData().next_compute_normal() || InexData().compute_normal(); break; } SmartPtr normal_x; SmartPtr normal_s; bool retval; SmartPtr delta; SmartPtr curr = IpData().curr(); SmartPtr rhs; SmartPtr tmp; // Now we set up the primal-dual system for computing the // tangential step and the search direction for the multipliers. // This is taken from IpPDSearchDirCal.cpp (rev 549). // We do not need entries for the variable bound multipliers // Upper part of right-hand-side vector is same for both systems rhs = curr->MakeNewContainer(); tmp = curr->x()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_grad_lag_with_damping_x(), 0.); rhs->Set_x(*tmp); tmp = curr->s()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_grad_lag_with_damping_s(), 0.); rhs->Set_s(*tmp); tmp = curr->v_L()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_relaxed_compl_s_L(), 0.); rhs->Set_v_L(*tmp); tmp = curr->v_U()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_relaxed_compl_s_U(), 0.); rhs->Set_v_U(*tmp); // Loop through algorithms bool done = false; while (!done) { InexData().set_compute_normal(compute_normal); InexData().set_next_compute_normal(compute_normal); if (!compute_normal) { normal_x = NULL; normal_s = NULL; } else { retval = normal_step_calculator_->ComputeNormalStep(normal_x, normal_s); if (!retval) return false; // output if (Jnlst().ProduceOutput(J_VECTOR, J_SOLVE_PD_SYSTEM)) { Jnlst().Printf(J_VECTOR, J_SOLVE_PD_SYSTEM, "Normal step (without slack scaling):\n"); normal_x->Print(Jnlst(), J_VECTOR, J_SOLVE_PD_SYSTEM, "normal_x"); normal_s->Print(Jnlst(), J_VECTOR, J_SOLVE_PD_SYSTEM, "normal_s"); } } // Lower part of right-hand-side vector is different for each system if (!compute_normal) { tmp = curr->y_c()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_c(), 0.); rhs->Set_y_c(*tmp); tmp = curr->y_d()->MakeNew(); tmp->AddOneVector(-1., *IpCq().curr_d_minus_s(), 0.); rhs->Set_y_d(*tmp); } else { rhs->Set_y_c(*IpCq().curr_jac_c_times_vec(*normal_x)); tmp = normal_s->MakeNew(); tmp->AddTwoVectors(1., *IpCq().curr_jac_d_times_vec(*normal_x), -1., *normal_s, 0.); rhs->Set_y_d(*tmp); } InexData().set_normal_x(normal_x); InexData().set_normal_s(normal_s); delta = rhs->MakeNewIteratesVector(); retval = inexact_pd_solver_->Solve(*rhs, *delta); // Determine if acceptable step has been computed if (!compute_normal && (!retval || InexData().next_compute_normal())) { // If normal step has not been computed and step is not satisfactory, try computing normal step InexData().set_compute_normal(true); compute_normal = true; } else { // If normal step has been computed, stop anyway done = true; } } if (retval) { // Store the search directions in the IpData object IpData().set_delta(delta); if (InexData().compute_normal()) { IpData().Append_info_string("NT "); } else { IpData().Append_info_string("PD "); } } return retval; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactLSAcceptor.hpp0000644000076600007660000002112111504216567023075 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-11 // derived file from IpPenaltyLSAcceptor.hpp (rev 019) #ifndef __IPINEXACTLSACCEPTOR_HPP__ #define __IPINEXACTLSACCEPTOR_HPP__ #include "IpBacktrackingLSAcceptor.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** Penalty function line search for the inexact step algorithm * version. */ class InexactLSAcceptor : public BacktrackingLSAcceptor { public: /**@name Constructors/Destructors */ //@{ /** Constructor. The PDSystemSolver object only needs to be * provided (i.e. not NULL) if second order correction or * corrector steps are to be used. */ InexactLSAcceptor(); /** Default destructor */ virtual ~InexactLSAcceptor(); //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Reset the acceptor. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset(); /** Initialization for the next line search. The flag in_watchdog * indicates if we are currently in an active watchdog procedure. * Here is where the penalty parameter is updated. */ virtual void InitThisLineSearch(bool in_watchdog); /** Method that is called before the restoration phase is called. * For now, we just terminate if this is called. */ virtual void PrepareRestoPhaseStart(); /** Method returning the lower bound on the trial step sizes. */ virtual Number CalculateAlphaMin(); /** Method for checking if current trial point is acceptable. * It is assumed that the delta information in ip_data is the * search direction used in criteria. The primal trial point has * to be set before the call. */ virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal); /** Try a second order correction for the constraints. For the * inexact version, this always returns false because a second * order step is too expensive. */ virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ virtual bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Method for ending the current line search. When it is called, * the internal data should be updates. alpha_primal_test is the * value of alpha that has been used for in the acceptence test * ealier. */ virtual char UpdateForNextIteration(Number alpha_primal_test); /** Method for setting internal data if the watchdog procedure is * started. */ virtual void StartWatchDog(); /** Method for setting internal data if the watchdog procedure is * stopped. */ virtual void StopWatchDog(); /**@name Trial Point Accepting Methods. Used internally to check certain * acceptability criteria and used externally (by the restoration phase * convergence check object, for instance) */ //@{ /** Checks if a trial point is acceptable to the current iterate */ bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration=false) const; //@} /** Method for updating the equality constraint multipliers */ virtual Number ComputeAlphaForY(Number alpha_primal, Number alpha_dual, SmartPtr& delta); /** Method returning true of ComputeAlphaForY is implemented for * this acceptor */ virtual bool HasComputeAlphaForY() const { return true; } /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ InexactLSAcceptor(const InexactLSAcceptor&); /** Overloaded Equals Operator */ void operator=(const InexactLSAcceptor&); //@} /** Compute predicted reduction for given step size */ Number CalcPred(Number alpha); /** Method for resetting the slacks to be satisfying the slack equality constraints without increasing the barrier function */ void ResetSlacks(); /** @name Parameters for the penalty function algorithm. */ //@{ /** Initial value of penalty parameter */ Number nu_init_; /** Initial value of lower penalty parameter */ Number nu_low_init_; /** Factor in update rule for lower penalty parameter */ Number nu_low_fact_; /** Incrememt for penalty parameter */ Number nu_inc_; /** \f$ \eta_{\varphi} \f$ */ Number eta_; /** \f$ \rho \f$ */ Number rho_; /** theta factor in Tangential Component Condition */ Number tcc_theta_; /** Lower feasiblity bound to skip penalty parameter update */ Number nu_update_inf_skip_tol_; /** Flag indicating whether the Curtis/Nocedal flexible penalty * function should be used */ bool flexible_penalty_function_; //@} /** @name Information related to watchdog procedure */ //@{ /** Constraint violation at the point with respect to which * progress is to be made */ Number reference_theta_; /** Barrier objective function at the point with respect to which * progress is to be made */ Number reference_barr_; /** Reference predicted reduction. If positive, then it is used * in watch dog. */ Number reference_pred_; /** Constraint violation at reference point */ Number watchdog_theta_; /** Barrier objective function at reference point */ Number watchdog_barr_; /** Predicted reduction to be compared with in watch dog. */ Number watchdog_pred_; //@} /** @name Penalty parameter */ //@{ /** Current value of the penalty parameter */ Number nu_; /** Value of penalty parameter at beginning of the iteration. */ Number last_nu_; /** Current lower value of the penalty parameter */ Number nu_low_; /** Value of lower penalty parameter at beginning of the iteration */ Number last_nu_low_; /** Step size threshold for activating step decomposition */ Number inexact_decomposition_activate_tol_; /** Step size threshold for inactivating step decomposition */ Number inexact_decomposition_inactivate_tol_; //@} /** Flag indicating if this is a termination test 2 iteration in * which we just update the multipliers and skip the line * search */ bool in_tt2_; /** When called from the restoration phase, this is the required * predicted reduction */ Number resto_pred_; /** Flag indicating if the step was accepted only because of the lower * penalty parameter. This is for output only. */ bool accepted_by_low_only_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactRegOp.hpp0000644000076600007660000000101311504216567022110 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactRegOp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-05 #ifndef __IPINEXACTREGOP_HPP__ #define __IPINEXACTREGOP_HPP__ #include "IpSmartPtr.hpp" namespace Ipopt { class RegisteredOptions; void RegisterOptions_Inexact(const SmartPtr& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/Makefile.am0000644000076600007660000000567111573147064020631 0ustar coincoin# Copyright (C) 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2005 2011-06-06 12:55:16Z stefan $ # Authors: Andreas Waechter IBM 2008-08-31 AUTOMAKE_OPTIONS = foreign if BUILD_INEXACT noinst_LTLIBRARIES = libinexact.la endif libinexact_la_SOURCES = \ IpInexactAlgBuilder.cpp IpInexactAlgBuilder.hpp \ IpInexactCq.cpp IpInexactCq.hpp \ IpInexactData.cpp IpInexactData.hpp \ IpInexactDoglegNormal.cpp IpInexactDoglegNormal.hpp \ IpInexactLSAcceptor.cpp IpInexactLSAcceptor.hpp \ IpInexactNewtonNormal.cpp IpInexactNewtonNormal.hpp \ IpInexactNormalStepCalc.hpp \ IpInexactNormalTerminationTester.cpp IpInexactNormalTerminationTester.hpp \ IpInexactPDSolver.cpp IpInexactPDSolver.hpp \ IpInexactPDTerminationTester.cpp IpInexactPDTerminationTester.hpp \ IpInexactRegOp.cpp IpInexactRegOp.hpp \ IpInexactSearchDirCalc.cpp IpInexactSearchDirCalc.hpp \ IpInexactTSymScalingMethod.cpp IpInexactTSymScalingMethod.hpp \ IpIterativePardisoSolverInterface.cpp IpIterativePardisoSolverInterface.hpp \ IpIterativeSolverTerminationTester.cpp IpIterativeSolverTerminationTester.hpp libinexact_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../` \ -I`$(CYGPATH_W) $(srcdir)/../LinearSolvers` \ -I`$(CYGPATH_W) $(srcdir)/../../contrib/LinearSolverLoader` if COIN_HAS_HSL AM_CPPFLAGS += $(HSL_CFLAGS) endif # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpInexactAlgBuilder.cppbak IpInexactAlgBuilder.hppbak \ IpInexactCq.cppbak IpInexactCq.hppbak \ IpInexactData.cppbak IpInexactData.hppbak \ IpInexactDoglegNormal.cppbak IpInexactDoglegNormal.hppbak \ IpInexactLSAcceptor.cppbak IpInexactLSAcceptor.hppbak \ IpInexactNewtonNormal.cppbak IpInexactNewtonNormal.hppbak \ IpInexactNormalStepCalc.hppbak \ IpInexactNormalTerminationTester.cppbak IpInexactNormalTerminationTester.hppbak \ IpInexactPDSolver.cppbak IpInexactPDSolver.hppbak \ IpInexactPDTerminationTester.cppbak IpInexactPDTerminationTester.hppbak \ IpInexactRegOp.cppbak IpInexactRegOp.hppbak \ IpInexactSearchDirCalc.cppbak IpInexactSearchDirCalc.hppbak \ IpInexactTSymScalingMethod.cppbak IpInexactTSymScalingMethod.hppbak \ IpIterativePardisoSolverInterface.cppbak IpIterativePardisoSolverInterface.hppbak \ IpIterativeSolverTerminationTester.cppbak IpIterativeSolverTerminationTester.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactPDSolver.hpp0000644000076600007660000001117511504216567022604 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactPDSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-09 #ifndef __IPINEXACTPDSOLVER_HPP__ #define __IPINEXACTPDSOLVER_HPP__ #include "IpAlgStrategy.hpp" #include "IpAugSystemSolver.hpp" #include "IpPDPerturbationHandler.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** This is the implemetation of the Primal-Dual System, allowing * the usage of an inexact linear solver. The step computed is * usually for the tangential step. */ class InexactPDSolver: public AlgorithmStrategyObject { public: /** @name /Destructor */ //@{ /** Constructor that takes in the Augmented System solver that * is to be used inside */ InexactPDSolver(AugSystemSolver& augSysSolver, PDPerturbationHandler& perturbHandler); /** Default destructor */ virtual ~InexactPDSolver(); //@} /* overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Solve the primal dual system, given one right hand side. */ virtual bool Solve(const IteratesVector& rhs, IteratesVector& sol); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ InexactPDSolver(); /** Overloaded Equals Operator */ InexactPDSolver& operator=(const InexactPDSolver&); //@} /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } /** @name Strategy objects to hold on to. */ //@{ /** Pointer to the Solver for the augmented system */ SmartPtr augSysSolver_; /** Pointer to the Perturbation Handler. */ SmartPtr perturbHandler_; //@} /** Internal function for computing the residual (resid) given the * right hand side (rhs) and the solution of the system (res). */ void ComputeResiduals(const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& v_L, const Vector& v_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_s, const IteratesVector& rhs, const IteratesVector& res, IteratesVector& resid); /** Method for checking if the Hessian matrix has to be modified. * All required data is obtained from the Data objects, so those * values have to be set before this is called. */ bool HessianRequiresChange(); /** @name Algorithmic options */ //@{ /** Psi factor in the tangential component condition */ Number tcc_psi_; /** theta factor in the tangential component condition */ Number tcc_theta_; /** mu exponent when multiplied to theta in the tangential * component condition */ Number tcc_theta_mu_exponent_; /** flag indicating if the Hessian for the (s,s) part should be * modified with the slacks instead of the identity matrix */ bool modify_hessian_with_slacks_; /** Threshold on line search evaluation count to trigger Hessia * modification */ Index inexact_regularization_ls_count_trigger_; //@} /** flag indicating if we are dealing with the Pardiso solver * (temporary) */ bool is_pardiso_; Index last_info_ls_count_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactSearchDirCalc.hpp0000644000076600007660000000670311504216567023536 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #ifndef __IPINEXACTSEARCHDIRCALC_HPP__ #define __IPINEXACTSEARCHDIRCALC_HPP__ #include "IpSearchDirCalculator.hpp" #include "IpInexactCq.hpp" #include "IpInexactNormalStepCalc.hpp" #include "IpInexactPDSolver.hpp" namespace Ipopt { /** Implementation of the search direction calculator that computes * the search direction using iterative linear solvers. Those * steps do not necessarily satisfy the linearized KKT conditions * with high accuracy. */ class InexactSearchDirCalculator : public SearchDirectionCalculator { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ InexactSearchDirCalculator(SmartPtr normal_step_calculator, SmartPtr inexact_pd_solver); /** Default destructor */ virtual ~InexactSearchDirCalculator(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the search direction. In this version, * we compute a normal and a tangential component, which are * stored in the InexactData object. The overall step is still * stored in the IpoptData object. */ virtual bool ComputeSearchDirection(); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ InexactSearchDirCalculator(); /** Copy Constructor */ InexactSearchDirCalculator(const InexactSearchDirCalculator&); /** Overloaded Equals Operator */ void operator=(const InexactSearchDirCalculator&); //@} /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } /** @name Algorithmic options */ //@{ /** termination tolerance for local infeasibility */ Number local_inf_Ac_tol_; //@} /** @name Strategy objects */ //@{ SmartPtr normal_step_calculator_; SmartPtr inexact_pd_solver_; //@} /** enumeration for decomposition options */ enum DecompositionTypeEnum { ALWAYS=0, ADAPTIVE, SWITCH_ONCE }; /** Type of decomposition */ DecompositionTypeEnum decomposition_type_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactPDTerminationTester.cpp0000644000076600007660000006566012151613040024777 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactPDTerminationTester.cpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-19 #include "IpInexactPDTerminationTester.hpp" #include "IpBlas.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactPDTerminationTester::InexactPDTerminationTester() { DBG_START_METH("InexactPDTerminationTester::InexactPDTerminationTester",dbg_verbosity); } InexactPDTerminationTester::~InexactPDTerminationTester() { DBG_START_METH("InexactPDTerminationTester::~InexactPDTerminationTester()",dbg_verbosity); } void InexactPDTerminationTester::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "tcc_psi", "Psi factor in Tangential Component Condition.", 0.0, true, 1e-1, ""); roptions->AddLowerBoundedNumberOption( "tcc_theta", "theta factor in Tangential Component Condition.", 0.0, true, 1e-12, ""); roptions->AddLowerBoundedNumberOption( "tcc_theta_mu_exponent", "exponent for mu when multiplied with tcc_theta in Tangential Component Condition.", 0., false, 0., ""); roptions->AddLowerBoundedNumberOption( "tcc_zeta", "zeta factor in Tangential Component Condition.", 0.0, true, 1e-1, ""); roptions->AddLowerBoundedNumberOption( "tt_kappa1", "kappa1 factor in Termination Test 1 and 3.", 0.0, true, 1e-3, ""); roptions->AddLowerBoundedNumberOption( "tt_kappa2", "kappa2 factor in Termination Test 2.", 0.0, true, 1e-1, ""); roptions->AddLowerBoundedNumberOption( "tt_eps2", "eps2 factor in Termination Test 2.", 0.0, true, 1., ""); roptions->AddLowerBoundedNumberOption( "tt_eps3", "eps3 factor in Termination Test 3.", 0.0, true, 1.-1e-1, ""); roptions->AddLowerBoundedNumberOption( "inexact_desired_pd_residual", "Desired relative residual tolerance for iterative solver during primal-dual step computation.", 0.0, true, 1e-3, ""); roptions->AddLowerBoundedIntegerOption( "inexact_desired_pd_residual_iter", "Number of iterations willing to be spent in obtaining desired primal-dual ration.", 0, 1, ""); } bool InexactPDTerminationTester::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("tcc_psi", tcc_psi_, prefix); options.GetNumericValue("tcc_theta", tcc_theta_, prefix); options.GetNumericValue("tcc_theta_mu_exponent", tcc_theta_mu_exponent_, prefix); options.GetNumericValue("tcc_zeta", tcc_zeta_, prefix); options.GetNumericValue("tt_kappa1", tt_kappa1_, prefix); options.GetNumericValue("tt_kappa2", tt_kappa2_, prefix); options.GetNumericValue("tt_eps2", tt_eps2_, prefix); options.GetNumericValue("tt_eps3", tt_eps3_, prefix); options.GetNumericValue("rho", rho_, prefix); options.GetNumericValue("inexact_desired_pd_residual", inexact_desired_pd_residual_, prefix); options.GetIntegerValue("inexact_desired_pd_residual_iter", inexact_desired_pd_residual_iter_, prefix); std::string inexact_linear_system_scaling; options.GetStringValue("inexact_linear_system_scaling", inexact_linear_system_scaling, prefix); if (inexact_linear_system_scaling=="slack-based") { requires_scaling_ = true; } else { requires_scaling_ = false; } return true; } bool InexactPDTerminationTester::InitializeSolve() { DBG_START_METH("InexactPDTerminationTester::InitializeSolve", dbg_verbosity); bool compute_normal = InexData().compute_normal(); // compute the current infeasibility c_norm_ = IpCq().curr_primal_infeasibility(NORM_2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: c_norm = %23.16e\n", c_norm_); SmartPtr normal_x = InexData().normal_x(); SmartPtr normal_s = InexData().normal_s(); if (compute_normal) { // calculate Jacobian times normal step (no scaling relevant in this space) curr_Av_c_ = InexCq().curr_jac_times_normal_c(); curr_Av_d_ = InexCq().curr_jac_times_normal_d(); // compute the linearized infeasibility at the normal step SmartPtr curr_c = IpCq().curr_c(); SmartPtr tmp1 = curr_c->MakeNew(); tmp1->AddTwoVectors(1, *curr_c, 1., *curr_Av_c_, 0.); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr tmp2 = curr_d_minus_s->MakeNew(); tmp2->AddTwoVectors(1, *curr_d_minus_s, 1., *curr_Av_d_, 0.); c_plus_Av_norm_ = IpCq().CalcNormOfType(NORM_2, *tmp1, *tmp2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: c_plus_Av_norm_ = %23.16e\n", c_plus_Av_norm_); // compute norm of the normal step in the scaled space v_norm_scaled_ = InexCq().slack_scaled_norm(*normal_x, *normal_s); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: v_norm_scaled_ = %23.16e\n", v_norm_scaled_); // compute Wv (Hessian times normal step) in the unscaled space curr_Wv_x_ = InexCq().curr_W_times_vec_x(*normal_x); curr_Wv_s_ = InexCq().curr_W_times_vec_s(*normal_s); } else { curr_Av_c_ = NULL; curr_Av_d_ = NULL; c_plus_Av_norm_ = -1.; v_norm_scaled_ = -1.; curr_Wv_x_ = NULL; curr_Wv_s_ = NULL; } // store the previous gradient and Jacobian information SmartPtr last_grad_barrier_obj_x = curr_grad_barrier_obj_x_; SmartPtr last_grad_barrier_obj_s = curr_grad_barrier_obj_s_; SmartPtr last_jac_c = curr_jac_c_; SmartPtr last_jac_d = curr_jac_d_; SmartPtr last_scaling_slacks = curr_scaling_slacks_; last_Av_norm_ = curr_Av_norm_; // get the current gradient and Jacobian information curr_grad_barrier_obj_x_ = IpCq().curr_grad_barrier_obj_x(); curr_grad_barrier_obj_s_ = IpCq().curr_grad_barrier_obj_s(); // (unscaled) curr_jac_c_ = IpCq().curr_jac_c(); curr_jac_d_ = IpCq().curr_jac_d(); curr_scaling_slacks_ = InexCq().curr_scaling_slacks(); // calculate \nabla phi(x_{k}) + A_{k}^Ty_k (in scaled space) SmartPtr curr_jac_cT_times_curr_y_c = IpCq().curr_jac_cT_times_curr_y_c(); SmartPtr curr_jac_cT_times_curr_y_d = IpCq().curr_jac_dT_times_curr_y_d(); curr_nabla_phi_plus_ATy_x_ = curr_grad_barrier_obj_x_->MakeNewCopy(); curr_nabla_phi_plus_ATy_x_->AddTwoVectors(1., *curr_jac_cT_times_curr_y_c, 1., *curr_jac_cT_times_curr_y_d, 1.); curr_nabla_phi_plus_ATy_s_ = curr_grad_barrier_obj_s_->MakeNew(); curr_nabla_phi_plus_ATy_s_->AddTwoVectors(1., *curr_grad_barrier_obj_s_, -1., *IpData().curr()->y_d(), 0.); curr_nabla_phi_plus_ATy_s_->ElementWiseMultiply(*curr_scaling_slacks_); // calculate norms appearing in termination tests curr_tt2_norm_ = IpCq().CalcNormOfType(NORM_2, *curr_nabla_phi_plus_ATy_x_, *curr_nabla_phi_plus_ATy_s_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: curr_tt2_norm_ = %23.16e\n", curr_tt2_norm_); if (compute_normal) { curr_Av_norm_ = IpCq().CalcNormOfType(NORM_2, *curr_Av_c_, *curr_Av_d_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: curr_Av_norm_ = %23.16e\n", curr_Av_norm_); curr_tt1_norm_ = sqrt(pow(curr_tt2_norm_, 2) + pow(curr_Av_norm_, 2)); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: curr_tt1_norm_ = %23.16e\n", curr_tt1_norm_); } else { curr_Av_norm_ = -1.; curr_tt1_norm_ = sqrt(pow(curr_tt2_norm_, 2) + pow(c_norm_, 2)); } if (compute_normal && IsValid(last_grad_barrier_obj_x)) { // calculate \nabla phi(x_{k-1}) + A_{k-1}^Ty_k (in scaled space) SmartPtr last_nabla_phi_plus_ATy_x = last_grad_barrier_obj_x->MakeNewCopy(); last_jac_c->TransMultVector(1., *IpData().curr()->y_c(), 1., *last_nabla_phi_plus_ATy_x); last_jac_d->TransMultVector(1., *IpData().curr()->y_d(), 1., *last_nabla_phi_plus_ATy_x); SmartPtr last_nabla_phi_plus_ATy_s = last_grad_barrier_obj_s->MakeNew(); last_nabla_phi_plus_ATy_s->AddTwoVectors(1., *last_grad_barrier_obj_s, -1., *IpData().curr()->y_d(), 0.); last_nabla_phi_plus_ATy_s->ElementWiseMultiply(*last_scaling_slacks); last_tt1_norm_ = IpCq().CalcNormOfType(NORM_2, *last_nabla_phi_plus_ATy_x, *last_nabla_phi_plus_ATy_s); last_tt1_norm_ = sqrt(pow(last_tt1_norm_, 2) + pow(last_Av_norm_, 2)); } else { last_tt1_norm_= 1e100; } Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: last_tt1_norm_ = %23.16e\n", last_tt1_norm_); // check if we need to test termination test 2 Number ATc_norm = InexCq().curr_scaled_Ac_norm(); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: current ATc norm = %23.16e\n", ATc_norm); try_tt2_ = (ATc_norm <= tt_eps2_*curr_tt2_norm_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: will%s try termination test 2.\n", try_tt2_ ? "" : " not"); return true; } InexactPDTerminationTester::ETerminationTest InexactPDTerminationTester:: TestTermination(Index ndim, const Number* sol, const Number* resid, Index iter, Number norm2_rhs) { DBG_START_METH("InexactPDTerminationTester::TestTermination", dbg_verbosity); bool compute_normal = InexData().compute_normal(); last_iter_ = iter; ETerminationTest retval = CONTINUE; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Starting PD Termination Tester for iteration %d.\n", iter); /* if (iter%5 != 4) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: immediately leaving tester for iteration %d.\n", iter); return retval; } */ Number norm2_resid = IpBlasDnrm2(ndim, resid, 1); Number test_ratio = norm2_resid/norm2_rhs; // Min(norm2_resid/norm2_rhs, norm2_resid); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: test ratio %e (norm2_rhs = %e norm2_resid = %e).\n", test_ratio, norm2_rhs, norm2_resid); if (iter < inexact_desired_pd_residual_iter_ && test_ratio > inexact_desired_pd_residual_) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: immediately leaving tester with test ratio %e (norm2_rhs = %e norm2_resid = %e).\n", test_ratio, norm2_rhs, norm2_resid); return retval; } SmartPtr sol_x; SmartPtr sol_s; SmartPtr sol_c; SmartPtr sol_d; GetVectors(ndim, sol, sol_x, sol_s, sol_c, sol_d); DBG_PRINT_VECTOR(2, "sol_x", *sol_x); DBG_PRINT_VECTOR(2, "sol_s", *sol_s); DBG_PRINT_VECTOR(2, "sol_c", *sol_c); DBG_PRINT_VECTOR(2, "sol_d", *sol_d); SmartPtr resid_x; SmartPtr resid_s; SmartPtr resid_c; SmartPtr resid_d; GetVectors(ndim, resid, resid_x, resid_s, resid_c, resid_d); if (requires_scaling_) { SmartPtr scaling_vec = curr_scaling_slacks_; SmartPtr tmp = sol_s->MakeNewCopy(); tmp->ElementWiseMultiply(*scaling_vec); sol_s = ConstPtr(tmp); tmp = resid_s->MakeNewCopy(); tmp->ElementWiseDivide(*scaling_vec); resid_s = ConstPtr(tmp); } //// Set algorithm if (!compute_normal) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "RUNNING TERMINATION TESTS FOR INEXACT NEWTON (which means u=d)\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "RUNNING TERMINATION TESTS FOR INEXACT NEWTON - TRUST REGION\n"); } // Get the tangential step and its scaled norm SmartPtr tangential_x; SmartPtr tangential_s; if (compute_normal) { SmartPtr normal_x = InexData().normal_x(); SmartPtr tmp = sol_x->MakeNew(); tmp->AddTwoVectors(1., *sol_x, -1, *normal_x, 0.); tangential_x = ConstPtr(tmp); SmartPtr normal_s = InexData().normal_s(); tmp = sol_s->MakeNew(); tmp->AddTwoVectors(1., *sol_s, -1, *normal_s, 0.); tangential_s = ConstPtr(tmp); } else { tangential_x = sol_x; tangential_s = sol_s; } Number u_norm_scaled = InexCq().slack_scaled_norm(*tangential_x, *tangential_s); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: u_norm_scaled = %23.16e\n", u_norm_scaled); // Compute u^TWu DBG_PRINT_VECTOR(2, "tangential_x", *tangential_x); DBG_PRINT_VECTOR(2, "tangential_s", *tangential_s); SmartPtr Wu_x = InexCq().curr_W_times_vec_x(*tangential_x); SmartPtr Wu_s = InexCq().curr_W_times_vec_s(*tangential_s); DBG_PRINT_VECTOR(2, "Wu_x", *Wu_x); DBG_PRINT_VECTOR(2, "Wu_s", *Wu_s); Number uWu = Wu_x->Dot(*tangential_x) + Wu_s->Dot(*tangential_s); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: uWu = %23.16e\n", uWu); // Compute norm of c + Ad SmartPtr c_plus_Ad_c = IpCq().curr_c()->MakeNewCopy(); curr_jac_c_->MultVector(1., *sol_x, 1., *c_plus_Ad_c); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr c_plus_Ad_d = curr_d_minus_s->MakeNew(); c_plus_Ad_d->AddTwoVectors(1., *curr_d_minus_s, -1., *sol_s, 0.); curr_jac_d_->MultVector(1., *sol_x, 1., *c_plus_Ad_d); Number c_plus_Ad_norm = IpCq().CalcNormOfType(NORM_2, *c_plus_Ad_c, *c_plus_Ad_d); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: c_plus_Ad_norm = %23.16e\n", c_plus_Ad_norm); // Compute norm of scaled residual rho SmartPtr tmp = resid_s->MakeNewCopy(); tmp->ElementWiseMultiply(*curr_scaling_slacks_); Number rho_norm = IpCq().CalcNormOfType(NORM_2, *resid_x, *tmp); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: rho_norm = %23.16e\n", rho_norm); tmp = NULL; // TODO: AW wants to discuss with Frank Number Upsilon = -1.; Number Nu = -1.; if (!compute_normal) { #if 0 // Compute Nu = ||A*u||^2/||A||^2 SmartPtr curr_Au_c = IpCq().curr_jac_c_times_vec(*tangential_x); SmartPtr curr_Au_d = sol_s->MakeNew(); curr_Au_d->AddTwoVectors(1., *IpCq().curr_jac_d_times_vec(*tangential_x), -1., *tangential_s, 0.); Number Nu = IpCq().CalcNormOfType(NORM_2, *curr_Au_c, *curr_Au_d); Nu = pow(Nu,2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: ||A*u||^2 = %23.16e\n", Nu); Number A_norm2 = InexCq().curr_scaled_A_norm2(); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: ||A||^2 = %23.16e\n", A_norm2); #endif Nu = 0;//Nu/A_norm2; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: Nu = ||A*u||^2/||A||^2 = %23.16e\n", Nu); // Compute Upsilon = ||u||^2 - Nu Upsilon = u_norm_scaled*u_norm_scaled - Nu; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: Upsilon = ||u||^2 - ||A*u||^2/||A||^2 = %23.16e\n", Upsilon); } // Base value, something on the order of square root of machine epsilon; TODO: find a better base value Number BasVal = Max(IpData().curr()->x()->Amax(), IpData().curr()->s()->Amax()); // Check tangential component condition, part 1 Number lhs; Number rhs; if (!compute_normal) { lhs = Upsilon; rhs = pow(tcc_psi_,2)*Nu; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC1 testing Upsilon(=%23.16e) <= (tcc_psi_^2)*Nu(=%23.16e) --> ", lhs, rhs); } else { lhs = u_norm_scaled; rhs = tcc_psi_*v_norm_scaled_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC1 testing u_norm_scaled(=%23.16e) <= tcc_psi_*v_norm_scaled(=%23.16e) --> ", lhs, rhs); } bool tcc1 = Compare_le(lhs, rhs, BasVal); if (tcc1) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } // Check tangential component condition, part 2a const Number mu = IpData().curr_mu(); rhs = 0.5*uWu; if (!compute_normal) { lhs = tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*Upsilon; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC2a testing 0.5*uWu(=%23.16e) >= tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*Upsilon(=%23.16e) -->", rhs, lhs); } else { lhs = tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*pow(u_norm_scaled, 2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC2a testing 0.5*uWu(=%23.16e) >= tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*u_norm^2(=%23.16e) -->", rhs, lhs); } bool tcc2a = Compare_le(lhs, rhs, BasVal); if (tcc2a) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } // Check tangential component condition, part 2b (only in MIPS) bool tcc = tcc1; if (!tcc && tcc2a) { if (!compute_normal) { tcc = tcc2a; } else { lhs = 0.5*uWu + curr_grad_barrier_obj_x_->Dot(*tangential_x) + curr_grad_barrier_obj_s_->Dot(*tangential_s) + curr_Wv_x_->Dot(*tangential_x) + curr_Wv_s_->Dot(*tangential_s); rhs = tcc_zeta_*v_norm_scaled_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC2b testing (grad_barr^Tu + v^TWu + 0.5*uWu)(=%23.16e) <= tcc_zeta_*v_norm(=%23.16e) -->", lhs, rhs); tcc = Compare_le(lhs, rhs, BasVal); if (tcc) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } } } // Check tangential component condition if (tcc) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Tangential Component Condition satisfied\n"); } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Tangential Component Condition violated\n"); } // Check termination test 1, residual condition bool tt1 = tcc; bool tt1_kappa1 = tcc; if (!compute_normal) { // Compute scaled norm of entire residual in case there is no step // decomposition. In that case, c_plus_Ad_norm should indeed be // the same as what resid_c and resid_d woulod give (TODO: // check?!?) Number resid_norm = sqrt(pow(rho_norm, 2) + pow(c_plus_Ad_norm, 2)); lhs = resid_norm; rhs = tt_kappa1_*curr_tt1_norm_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT1 testing resid_norm(=%23.16e) <= tt_kappa1_*curr_tt1_norm_(=%23.16e) --> ", lhs, rhs); tt1 = Compare_le(lhs, rhs, BasVal); } else if (tt1) { lhs = rho_norm; rhs = tt_kappa1_*Min(curr_tt1_norm_, last_tt1_norm_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT1 testing rho_norm(=%23.16e) <= kappa1*min(curr_tt1_norm_, last_tt1_norm_)(=%23.16e) -->", lhs, rhs); tt1_kappa1 = Compare_le(lhs, rhs, BasVal); tt1 = tt1_kappa1; } if (tt1) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } // Check termination test 1, model reduction condition bool model_reduction = false; if (!compute_normal || tt1) { Number curr_nu = InexData().curr_nu(); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: curr_nu = %23.16e\n", curr_nu); Number delta_m = -(curr_grad_barrier_obj_x_->Dot(*sol_x) + curr_grad_barrier_obj_s_->Dot(*sol_s)); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: -grad_barr^Td = %23.16e\n", delta_m); delta_m += curr_nu*(c_norm_ - c_plus_Ad_norm); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: delta_m = %23.16e\n", delta_m); rhs = delta_m; Number sigma = rho_*tt_eps3_; if (!compute_normal) { lhs = Max(0.5*uWu, tcc_theta_*Upsilon) + sigma*curr_nu*Max(c_norm_, c_plus_Ad_norm - c_norm_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "MRC testing delta_m(=%23.16e) >= max(0.5*uWu,tcc_theta_*Upsilon) + sigma*nu*max(c_norm_, c_plus_Ad_norm - c_norm_)(=%23.16e) -->", rhs, lhs); model_reduction = Compare_le(lhs, rhs, BasVal); if (model_reduction) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } if (tt1) { tt1 = model_reduction; } } else { lhs = Max(0.5*uWu, tcc_theta_*pow(u_norm_scaled, 2)) + sigma*curr_nu*(c_norm_ - c_plus_Av_norm_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "MRC testing delta_m(=%23.16e) >= max(0.5*uWu,tcc_theta_*u_norm^2) + sigma*nu*(c_norm_ - c_plus_Av_norm_)(=%23.16e) -->", rhs, lhs); tt1 = Compare_le(lhs, rhs, BasVal); if (tt1) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } } } // Check termination test 1 if (tt1) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 1 satisfied.\n"); return TEST_1_SATISFIED; } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 1 not satisfied.\n"); } // Check termination test 3, residual condition bool tt3 = tcc; if (tt3) { if (!compute_normal) { lhs = rho_norm; rhs = tt_kappa1_*c_norm_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT3 testing rho_norm(=%23.16e) <= tt_kappa1_*c_norm_(=%23.16e) -->", lhs, rhs); tt3 = Compare_le(lhs, rhs, BasVal); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT3 with residual condition from TT1 -->"); tt3 = tt1_kappa1; } if (tt3) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } } // Check termination test 3, linearized feasibility condition if (tt3) { if (!compute_normal) { lhs = c_plus_Ad_norm; rhs = tt_kappa1_*c_norm_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT3 testing c_plus_Ad_norm(=%23.16e) <= tt_kappa1_*c_norm(=%23.16e) -->", lhs, rhs); tt3 = Compare_le(lhs, rhs, BasVal); } else { lhs = tt_eps3_*(c_norm_ - c_plus_Av_norm_); rhs = c_norm_ - c_plus_Ad_norm; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT3 testing (c_norm_-c_plus_Ad_norm)(=%23.16e) >= eps3*(c_norm_-c_plus_Av_norm_)(=%23.16e) -->", rhs, lhs); tt3 = Compare_le(lhs, rhs, BasVal); } if (tt3) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } } // Check termination test 3 if (tt3) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 3 satisfied.\n"); return TEST_3_SATISFIED; } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 3 not satisfied.\n"); } // Check termination test 2 bool tt2 = try_tt2_; if (tt2) { DBG_PRINT_VECTOR(2, "curr_nabla_phi_plus_ATy_x_", *curr_nabla_phi_plus_ATy_x_); DBG_PRINT_VECTOR(2, "curr_nabla_phi_plus_ATy_s_", *curr_nabla_phi_plus_ATy_s_); DBG_PRINT_VECTOR(2, "sol_c", *sol_c); DBG_PRINT_VECTOR(2, "sol_d", *sol_d); SmartPtr sol_d_scaled = sol_d->MakeNewCopy(); sol_d_scaled->ElementWiseMultiply(*curr_scaling_slacks_); DBG_PRINT_VECTOR(2, "sol_d_scaled", *sol_d_scaled); SmartPtr nabla_phi_plus_ATydelta_x = curr_nabla_phi_plus_ATy_x_->MakeNewCopy(); curr_jac_c_->TransMultVector(1., *sol_c, 1., *curr_nabla_phi_plus_ATy_x_); curr_jac_d_->TransMultVector(1., *sol_d, 1., *curr_nabla_phi_plus_ATy_x_); SmartPtr nabla_phi_plus_ATydelta_s = curr_nabla_phi_plus_ATy_s_->MakeNew(); nabla_phi_plus_ATydelta_s->AddTwoVectors(1., *curr_nabla_phi_plus_ATy_s_, -1., *sol_d_scaled, 0.); Number nabla_phi_plus_ATydelta_norm = IpCq().CalcNormOfType(NORM_2, *nabla_phi_plus_ATydelta_x, *nabla_phi_plus_ATydelta_s); lhs = nabla_phi_plus_ATydelta_norm; if (!compute_normal) { rhs = tt_kappa2_*curr_tt2_norm_; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT2 testing ||gamma+A^T(y+delta)||(=%23.16e) <= kappa2*curr_tt2_norm_(=%23.16e) -->", lhs, rhs); } else { rhs = tt_kappa2_*Min(curr_tt2_norm_, last_tt1_norm_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT2 testing ||gamma+A^T(y+delta)||(=%23.16e) <= kappa2*min(curr_tt2_norm_, last_tt1_norm_)(=%23.16e) -->", lhs, rhs); } tt2 = Compare_le(lhs, rhs, BasVal); if (tt2) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } } // Check termination test 2 if (tt2) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 2 satisfied.\n"); return TEST_2_SATISFIED; } else if (try_tt2_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination Test 2 not satisfied.\n"); } // Check if the Hessian should be modified if (tcc1 || tcc2a) {// || (!compute_normal && model_reduction)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Hessian Modification not requested.\n"); } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Hessian Modification requested.\n"); return MODIFY_HESSIAN; } return retval; } void InexactPDTerminationTester::Clear() { DBG_START_METH("InexactPDTerminationTester::Clear", dbg_verbosity); curr_Av_c_ = NULL; curr_Av_d_ = NULL; curr_Wv_x_ = NULL; curr_Wv_s_ = NULL; curr_nabla_phi_plus_ATy_x_ = NULL; curr_nabla_phi_plus_ATy_s_ = NULL; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactData.cpp0000644000076600007660000000145411504216567021751 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactData.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #include "IpInexactData.hpp" namespace Ipopt { InexactData::InexactData() {} InexactData::~InexactData() {} bool InexactData::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { full_step_accepted_ = false; return true; } bool InexactData::InitializeDataStructures() { return true; } void InexactData::AcceptTrialPoint() { // delete data normal_x_ = NULL; normal_s_ = NULL; } } Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactNormalTerminationTester.cpp0000644000076600007660000001140512151613040025710 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactNormalTerminationTester.cpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-19 #include "IpInexactNormalTerminationTester.hpp" #include "IpBlas.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactNormalTerminationTester::InexactNormalTerminationTester() { DBG_START_METH("InexactNormalTerminationTester::InexactNormalTerminationTester",dbg_verbosity); } InexactNormalTerminationTester::~InexactNormalTerminationTester() { DBG_START_METH("InexactNormalTerminationTester::~InexactNormalTerminationTester()",dbg_verbosity); } void InexactNormalTerminationTester::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "inexact_normal_tol", "Desired relative residual tolerance for iterative solver during normal step computation.", 0.0, true, 1e-3, ""); roptions->AddLowerBoundedIntegerOption( "inexact_normal_max_iter", "Maximal number of iterative solver iterations during normal step computation", 0, 200, ""); } bool InexactNormalTerminationTester::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("inexact_normal_tol", inexact_normal_tol_, prefix); options.GetIntegerValue("inexact_normal_max_iter", inexact_normal_max_iter_, prefix); std::string inexact_linear_system_scaling; options.GetStringValue("inexact_linear_system_scaling", inexact_linear_system_scaling, prefix); if (inexact_linear_system_scaling=="slack-based") { requires_scaling_ = true; } else { requires_scaling_ = false; } c_Avc_norm_cauchy_ = -1; return true; } bool InexactNormalTerminationTester::InitializeSolve() { DBG_START_METH("InexactNormalTerminationTester::InitializeSolve", dbg_verbosity); return true; } InexactNormalTerminationTester::ETerminationTest InexactNormalTerminationTester:: TestTermination(Index ndim, const Number* sol, const Number* resid, Index iter, Number norm2_rhs) { DBG_START_METH("InexactNormalTerminationTester::TestTermination", dbg_verbosity); last_iter_ = iter; DBG_ASSERT(c_Avc_norm_cauchy_ >= 0.); ETerminationTest retval = CONTINUE; double norm2_resid = IpBlasDnrm2(ndim, resid, 1); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "TTNormal: iter = %d ||resid|| = %23.16e ||rhs|| = %23.16e\n", iter, norm2_resid, norm2_rhs); if (iter > inexact_normal_max_iter_) { IpData().Append_info_string("N+"); retval = OTHER_SATISFIED; return retval; } //if (Min(norm2_resid/norm2_rhs,norm2_resid) > inexact_normal_tol_) { if (norm2_resid/norm2_rhs > inexact_normal_tol_ && norm2_resid > 1e-10) { return retval; } // compute ||c+Av|| for current iterative solution v // note that the sol_x and sol_s have the wrong sign SmartPtr sol_x; SmartPtr sol_s; SmartPtr sol_c; SmartPtr sol_d; GetVectors(ndim, sol, sol_x, sol_s, sol_c, sol_d); if (requires_scaling_) { SmartPtr scaling_vec = InexCq().curr_scaling_slacks(); SmartPtr tmp = sol_s->MakeNewCopy(); tmp->ElementWiseMultiply(*scaling_vec); sol_s = ConstPtr(tmp); } SmartPtr inf_c = IpCq().curr_c()->MakeNewCopy(); IpCq().curr_jac_c()->MultVector(-1., *sol_x, 1., *inf_c); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr inf_d = curr_d_minus_s->MakeNew(); inf_d->AddTwoVectors(1., *curr_d_minus_s, 1., *sol_s, 0.); IpCq().curr_jac_d()->MultVector(-1., *sol_x, 1., *inf_d); Number trial_c_Av_norm = IpCq().CalcNormOfType(NORM_2, *inf_c, *inf_d); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TTNormal: c_Avc_norm_cauchy = %23.16e trial_c_Av_norm = %23.16e\n", c_Avc_norm_cauchy_, trial_c_Av_norm); Number BasVal = Max(1., IpCq().curr_primal_infeasibility(NORM_2)); if (Compare_le(trial_c_Av_norm, c_Avc_norm_cauchy_, BasVal)) { retval = OTHER_SATISFIED; } return retval; } void InexactNormalTerminationTester::Clear() { DBG_START_METH("InexactNormalTerminationTester::Clear", dbg_verbosity); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactNormalStepCalc.hpp0000644000076600007660000000505311504216567023753 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactNormalStepCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #ifndef __IPINEXACTNORMALSTEPCALC_HPP__ #define __IPINEXACTNORMALSTEPCALC_HPP__ #include "IpAlgStrategy.hpp" #include "IpInexactCq.hpp" namespace Ipopt { /** Base class for computing the normal step for the inexact step * calculation algorithm. */ class InexactNormalStepCalculator : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default onstructor */ InexactNormalStepCalculator() {} /** Default destructor */ virtual ~InexactNormalStepCalculator() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method for computing the normal step. The computed step is * returned as normal_x and normal_s, for the x and s variables, * respectively. These quantities are not slack-scaled. If the * step cannot be computed, this method returns false. */ virtual bool ComputeNormalStep(SmartPtr& normal_x, SmartPtr& normal_s) = 0; protected: /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ InexactNormalStepCalculator(const InexactNormalStepCalculator&); /** Overloaded Equals Operator */ void operator=(const InexactNormalStepCalculator&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactPDSolver.cpp0000644000076600007660000005003711504216567022577 0ustar coincoin// Copyright (C) 2008, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactPDSolver.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-09 #include "IpInexactPDSolver.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include "IpIterativeSolverTerminationTester.hpp" extern Ipopt::IterativeSolverTerminationTester::ETerminationTest test_result_; namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactPDSolver::InexactPDSolver(AugSystemSolver& augSysSolver, PDPerturbationHandler& perturbHandler) : augSysSolver_(&augSysSolver), perturbHandler_(&perturbHandler) { DBG_START_METH("InexactPDSolver::InexactPDSolver",dbg_verbosity); } InexactPDSolver::~InexactPDSolver() { DBG_START_METH("InexactPDSolver::~InexactPDSolver()",dbg_verbosity); } void InexactPDSolver::RegisterOptions(SmartPtr roptions) { roptions->AddStringOption2( "modify_hessian_with_slacks", "Hessian modification strategy for slack part", "no", "no", "add multiple of identity", "yes", "add multiple of slacks squared inverse", ""); roptions->AddLowerBoundedIntegerOption( "inexact_regularization_ls_count_trigger", "Threshold on line search count in previous iteration to trigger " "Hessian regularization.", 1, 1, "If the ls count in the previous iteration is larger than this value, " "the Hessian will be regularized."); } bool InexactPDSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("tcc_psi", tcc_psi_, prefix); options.GetNumericValue("tcc_theta", tcc_theta_, prefix); options.GetNumericValue("tcc_theta_mu_exponent", tcc_theta_mu_exponent_, prefix); options.GetBoolValue("modify_hessian_with_slacks", modify_hessian_with_slacks_, prefix); options.GetIntegerValue("inexact_regularization_ls_count_trigger", inexact_regularization_ls_count_trigger_, prefix); std::string linear_solver; options.GetStringValue("linear_solver", linear_solver, prefix); is_pardiso_ = (linear_solver=="pardiso"); if (!augSysSolver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix)) { return false; } last_info_ls_count_ = 0; return perturbHandler_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool InexactPDSolver::Solve(const IteratesVector& rhs, IteratesVector& sol) { DBG_START_METH("InexactPDSolver::Solve",dbg_verbosity); // Timing of PDSystem solver starts here IpData().TimingStats().PDSystemSolverTotal().Start(); DBG_PRINT_VECTOR(2, "rhs_x", *rhs.x()); DBG_PRINT_VECTOR(2, "rhs_s", *rhs.s()); DBG_PRINT_VECTOR(2, "rhs_c", *rhs.y_c()); DBG_PRINT_VECTOR(2, "rhs_d", *rhs.y_d()); DBG_PRINT_VECTOR(2, "rhs_vL", *rhs.v_L()); DBG_PRINT_VECTOR(2, "rhs_vU", *rhs.v_U()); DBG_PRINT_VECTOR(2, "sol_x in", *sol.x()); DBG_PRINT_VECTOR(2, "sol_s in", *sol.s()); DBG_PRINT_VECTOR(2, "sol_c in", *sol.y_c()); DBG_PRINT_VECTOR(2, "sol_d in", *sol.y_d()); DBG_PRINT_VECTOR(2, "sol_vL in", *sol.v_L()); DBG_PRINT_VECTOR(2, "sol_vU in", *sol.v_U()); // Receive data about matrix SmartPtr x = IpData().curr()->x(); SmartPtr s = IpData().curr()->s(); SmartPtr W = IpData().W(); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); SmartPtr Pd_L = IpNLP().Pd_L(); SmartPtr Pd_U = IpNLP().Pd_U(); SmartPtr v_L = IpData().curr()->v_L(); SmartPtr v_U = IpData().curr()->v_U(); SmartPtr slack_s_L = IpCq().curr_slack_s_L(); SmartPtr slack_s_U = IpCq().curr_slack_s_U(); SmartPtr sigma_s = IpCq().curr_sigma_s(); DBG_PRINT_VECTOR(2, "Sigma_s", *sigma_s); // Compute the right hand side for the augmented system formulation SmartPtr augRhs_s = rhs.s()->MakeNewCopy(); Pd_L->AddMSinvZ(1.0, *slack_s_L, *rhs.v_L(), *augRhs_s); Pd_U->AddMSinvZ(-1.0, *slack_s_U, *rhs.v_U(), *augRhs_s); bool notDone = true; // Get the very first perturbation values from the perturbation // Handler Number delta_x; Number delta_s; Number delta_c; Number delta_d; perturbHandler_->ConsiderNewSystem(delta_x, delta_s, delta_c, delta_d); if (IpData().info_ls_count() > inexact_regularization_ls_count_trigger_) { perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); if (last_info_ls_count_ > inexact_regularization_ls_count_trigger_) { perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); } } last_info_ls_count_ = IpData().info_ls_count(); ESymSolverStatus retval; Index count = 0; SmartPtr normal_x = InexData().normal_x(); SmartPtr normal_s = InexData().normal_s(); while (notDone) { count++; // Set the perturbation values in the Data object IpData().setPDPert(delta_x, delta_s, delta_c, delta_d); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Doing solve with perturbation parameters: delta_x=%e delta_s=%e\n delta_c=%e delta_d=%e\n", delta_x, delta_s, delta_c, delta_d); if (delta_s>0. && modify_hessian_with_slacks_) { SmartPtr curr_scaling_slacks = InexCq().curr_scaling_slacks(); SmartPtr shifted_slacks = curr_scaling_slacks->MakeNewCopy(); shifted_slacks->ElementWiseMultiply(*curr_scaling_slacks); shifted_slacks->ElementWiseReciprocal(); const Number curr_mu = IpData().curr_mu(); shifted_slacks->AddOneVector(1., *sigma_s, curr_mu*delta_s); retval = augSysSolver_->Solve(GetRawPtr(W), 1.0, NULL, delta_x, GetRawPtr(shifted_slacks), 0., GetRawPtr(J_c), NULL, delta_c, GetRawPtr(J_d), NULL, delta_d, *rhs.x(), *augRhs_s, *rhs.y_c(), *rhs.y_d(), *sol.x_NonConst(), *sol.s_NonConst(), *sol.y_c_NonConst(), *sol.y_d_NonConst(), false, 0); } else { retval = augSysSolver_->Solve(GetRawPtr(W), 1.0, NULL, delta_x, GetRawPtr(sigma_s), delta_s, GetRawPtr(J_c), NULL, delta_c, GetRawPtr(J_d), NULL, delta_d, *rhs.x(), *augRhs_s, *rhs.y_c(), *rhs.y_d(), *sol.x_NonConst(), *sol.s_NonConst(), *sol.y_c_NonConst(), *sol.y_d_NonConst(), false, 0); } if (retval==SYMSOLVER_SINGULAR) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "System seems singular.\n"); if (InexData().compute_normal()) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " We are already using the decomposition, now perturb the system.\n"); bool pert_return = perturbHandler_->PerturbForSingularity(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for singular.\n"); IpData().TimingStats().PDSystemSolverTotal().End(); return false; } } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " Switch to using the decomposition.\n"); InexData().set_next_compute_normal(true); IpData().Append_info_string("@"); } } else if (retval==SYMSOLVER_WRONG_INERTIA) { bool pert_return = perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for Hessian modification.\n"); IpData().TimingStats().PDSystemSolverTotal().End(); return false; } } else if (retval==SYMSOLVER_SUCCESS) { SmartPtr tangential_x; SmartPtr tangential_s; if (InexData().compute_normal()) { // Compute the tangetial part of the step from the overall step SmartPtr tmp = normal_x->MakeNew(); tmp->AddTwoVectors(1., *sol.x(), -1., *normal_x, 0.); tangential_x = ConstPtr(tmp); tmp = normal_s->MakeNew(); tmp->AddTwoVectors(1., *sol.s(), -1., *normal_s, 0.); tangential_s = ConstPtr(tmp); // output if (Jnlst().ProduceOutput(J_MOREVECTOR, J_SOLVE_PD_SYSTEM)) { Jnlst().Printf(J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "Trial tangential step (without slack scaling):\n"); tangential_x->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "tangential_x"); tangential_s->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "tangential_s"); } } else { tangential_x = sol.x(); tangential_s = sol.s(); } InexData().set_tangential_x(tangential_x); InexData().set_tangential_s(tangential_s); if (!is_pardiso_) { // check if we need to modify the system bool modify_hessian = HessianRequiresChange(); if (modify_hessian) { bool pert_return = perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for Hessian modification.\n"); IpData().TimingStats().PDSystemSolverTotal().End(); return false; } retval = SYMSOLVER_WRONG_INERTIA; } } else { char buf[32]; Snprintf(buf, 31, " TT=%d ", test_result_); IpData().Append_info_string(buf); if (test_result_ == IterativeSolverTerminationTester::CONTINUE) { if (InexData().compute_normal()) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Termination tester not satisfied!!! Pretend singular\n"); bool pert_return = perturbHandler_->PerturbForSingularity(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for singular.\n"); IpData().TimingStats().PDSystemSolverTotal().End(); return false; } } else { InexData().set_next_compute_normal(true); IpData().Append_info_string("@"); } } } if (retval==SYMSOLVER_SUCCESS) { notDone = false; } } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Bad return code from augmented system solver = %d.\n", retval); IpData().TimingStats().PDSystemSolverTotal().End(); return false; } } // while (notDone) // Some output Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of trial factorizations performed: %d\n", count); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Final perturbation parameters: delta_x=%e delta_s=%e\n delta_c=%e delta_d=%e\n", delta_x, delta_s, delta_c, delta_d); // TODO: FRANK, how should we handle the multiplier updates for the slack duals?? #if 1 // Compute the remaining sol Vectors Pd_L->SinvBlrmZMTdBr(-1., *slack_s_L, *rhs.v_L(), *v_L, *sol.s(), *sol.v_L_NonConst()); Pd_U->SinvBlrmZMTdBr(1., *slack_s_U, *rhs.v_U(), *v_U, *sol.s(), *sol.v_U_NonConst()); #else // Compute the step for v_l and v_u simply from the y_d step. // This means that we are not really solving the linear system, // but those steps are consistent even if delta_s is positive Pd_L->TransMultVector(-1., *sol.y_d(), 0., *sol.v_L_NonConst()); Pd_U->TransMultVector(1., *sol.y_d(), 0., *sol.v_U_NonConst()); #endif // Get space for the residual SmartPtr resid = sol.MakeNewIteratesVector(true); ComputeResiduals(*W, *J_c, *J_d, *Pd_L, *Pd_U, *v_L, *v_U, *slack_s_L, *slack_s_U, *sigma_s, rhs, sol, *resid); DBG_PRINT_VECTOR(2, "sol", sol); IpData().TimingStats().PDSystemSolverTotal().End(); return true; } void InexactPDSolver::ComputeResiduals( const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& v_L, const Vector& v_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_s, const IteratesVector& rhs, const IteratesVector& res, IteratesVector& resid) { DBG_START_METH("InexactPDSolver::ComputeResiduals", dbg_verbosity); DBG_PRINT_VECTOR(2, "res", res); IpData().TimingStats().ComputeResiduals().Start(); // Get the current sizes of the perturbation factors Number delta_x; Number delta_s; Number delta_c; Number delta_d; perturbHandler_->CurrentPerturbation(delta_x, delta_s, delta_c, delta_d); SmartPtr tmp; // x W.MultVector(1., *res.x(), 0., *resid.x_NonConst()); J_c.TransMultVector(1., *res.y_c(), 1., *resid.x_NonConst()); J_d.TransMultVector(1., *res.y_d(), 1., *resid.x_NonConst()); resid.x_NonConst()->AddTwoVectors(delta_x, *res.x(), -1., *rhs.x(), 1.); // s Pd_U.MultVector(1., *res.v_U(), 0., *resid.s_NonConst()); Pd_L.MultVector(-1., *res.v_L(), 1., *resid.s_NonConst()); resid.s_NonConst()->AddTwoVectors(-1., *res.y_d(), -1., *rhs.s(), 1.); if (delta_s!=0.) { resid.s_NonConst()->Axpy(delta_s, *res.s()); } // c J_c.MultVector(1., *res.x(), 0., *resid.y_c_NonConst()); resid.y_c_NonConst()->AddTwoVectors(-delta_c, *res.y_c(), -1., *rhs.y_c(), 1.); // d J_d.MultVector(1., *res.x(), 0., *resid.y_d_NonConst()); resid.y_d_NonConst()->AddTwoVectors(-1., *res.s(), -1., *rhs.y_d(), 1.); if (delta_d!=0.) { resid.y_d_NonConst()->Axpy(-delta_d, *res.y_d()); } // vL resid.v_L_NonConst()->Copy(*res.v_L()); resid.v_L_NonConst()->ElementWiseMultiply(slack_s_L); tmp = v_L.MakeNew(); Pd_L.TransMultVector(1., *res.s(), 0., *tmp); tmp->ElementWiseMultiply(v_L); resid.v_L_NonConst()->AddTwoVectors(1., *tmp, -1., *rhs.v_L(), 1.); // vU resid.v_U_NonConst()->Copy(*res.v_U()); resid.v_U_NonConst()->ElementWiseMultiply(slack_s_U); tmp = v_U.MakeNew(); Pd_U.TransMultVector(1., *res.s(), 0., *tmp); tmp->ElementWiseMultiply(v_U); resid.v_U_NonConst()->AddTwoVectors(-1., *tmp, -1., *rhs.v_U(), 1.); DBG_PRINT_VECTOR(2, "resid", resid); if (Jnlst().ProduceOutput(J_MOREVECTOR, J_LINEAR_ALGEBRA)) { resid.Print(Jnlst(), J_MOREVECTOR, J_LINEAR_ALGEBRA, "resid"); } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_LINEAR_ALGEBRA)) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_x %e\n", resid.x()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_s %e\n", resid.s()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_c %e\n", resid.y_c()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_d %e\n", resid.y_d()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_vL %e\n", resid.v_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_vU %e\n", resid.v_U()->Amax()); } IpData().TimingStats().ComputeResiduals().End(); } bool InexactPDSolver::HessianRequiresChange() { // This code should be in sync with InexactPDTerminationTester bool compute_normal = InexData().compute_normal(); SmartPtr normal_x = InexData().normal_x(); SmartPtr normal_s = InexData().normal_s(); SmartPtr tangential_x = InexData().tangential_x(); SmartPtr tangential_s = InexData().tangential_s(); Number u_norm_scaled = InexCq().slack_scaled_norm(*tangential_x, *tangential_s); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: u_norm_scaled = %23.16e\n", u_norm_scaled); Number Upsilon; Number Nu; Number v_norm_scaled = -1.; if (compute_normal) { v_norm_scaled = InexCq().slack_scaled_norm(*normal_x, *normal_s); } else { Nu = 0;//Nu/A_norm2; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: Nu = ||A*u||^2/||A||^2 = %23.16e\n", Nu); // Compute Upsilon = ||u||^2 - Nu Upsilon = u_norm_scaled - Nu; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: Upsilon = ||u||^2 - ||A*u||^2/||A||^2 = %23.16e\n", Upsilon); } Number BasVal = Max(IpData().curr()->x()->Amax(), IpData().curr()->s()->Amax()); // Check tangential component condition, part 1 Number lhs; Number rhs; if (!compute_normal) { lhs = Upsilon; rhs = pow(tcc_psi_,2)*Nu; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC1 testing Upsilon(=%23.16e) <= (tcc_psi_^2)*Nu(=%23.16e) --> ", lhs, rhs); } else { lhs = u_norm_scaled; rhs = tcc_psi_*v_norm_scaled; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC1 testing u_norm_scaled(=%23.16e) <= tcc_psi_*v_norm_scaled(=%23.16e) --> ", lhs, rhs); } bool tcc1 = Compare_le(lhs, rhs, BasVal); if (tcc1) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); return false; } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } // Compute u^TWu SmartPtr Wu_x = InexCq().curr_W_times_vec_x(*tangential_x); SmartPtr Wu_s = InexCq().curr_W_times_vec_s(*tangential_s); Number uWu = Wu_x->Dot(*tangential_x) + Wu_s->Dot(*tangential_s); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TT: uWu = %23.16e\n", uWu); // Check tangential component condition, part 2a const Number mu = IpData().curr_mu(); rhs = 0.5*uWu; if (!compute_normal) { lhs = tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*Upsilon; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC2a testing 0.5*uWu(=%23.16e) >= tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*Upsilon(=%23.16e) -->", rhs, lhs); } else { lhs = tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*pow(u_norm_scaled, 2); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "TCC2a testing 0.5*uWu(=%23.16e) >= tcc_theta_*pow(mu,tcc_theta_mu_exponent_)*u_norm^2(=%23.16e) -->", rhs, lhs); } bool tcc2a = Compare_le(lhs, rhs, BasVal); if (tcc2a) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "satisfied\n"); return false; } else { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "violated\n"); } return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactCq.hpp0000644000076600007660000001237511504216567021454 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactCq.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 // derived from IpIpoptCalculatedQuantities.hpp #ifndef __IPINEXACTCQ_HPP__ #define __IPINEXACTCQ_HPP__ #include "IpIpoptCalculatedQuantities.hpp" #include "IpInexactData.hpp" namespace Ipopt { /** Class for all Chen-Goldfarb penalty method specific calculated * quantities. */ class InexactCq : public IpoptAdditionalCq { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ InexactCq(IpoptNLP* ip_nlp, IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); /** Default destructor */ virtual ~InexactCq(); //@} /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** Methods for IpoptType */ //@{ static void RegisterOptions(const SmartPtr& roptions); //@} /** Gradient of infeasibility w.r.t. x. Jacobian of equality * constraints transpose times the equality constraints plus * Jacobian of the inequality constraints transpose times the * inequality constraints (including slacks). */ SmartPtr curr_jac_cdT_times_curr_cdminuss(); /** Vector of all inequality slacks for doing the slack-based scaling */ SmartPtr curr_scaling_slacks(); /** Vector with the slack-scaled d minus s inequalities */ SmartPtr curr_slack_scaled_d_minus_s(); /** Scaled norm of Ac */ Number curr_scaled_Ac_norm(); /** Scaled, squared norm of A */ Number curr_scaled_A_norm2(); /** Compute the 2-norm of a slack-scaled vector with x and s * component */ Number slack_scaled_norm(const Vector& x, const Vector &s); /** Compute x component of the W*vec product for the current * Hessian and a vector */ SmartPtr curr_W_times_vec_x(const Vector& vec_x); /** Compute s component of the W*vec product for the current * Hessian and a vector */ SmartPtr curr_W_times_vec_s(const Vector& vec_s); /** Compute x component of the W*u product for the current values. * u here is the tangential step. */ SmartPtr curr_Wu_x(); /** Compute s component of the W*u product for the current values. * u here is the tangential step. */ SmartPtr curr_Wu_s(); /** Compute the u^T*W*u product for the current values. u here is the tangential step. */ Number curr_uWu(); /** Compute the c-component of the product of the current * constraint Jacobian with the current normal step */ SmartPtr curr_jac_times_normal_c(); /** Compute the d-component of the product of the current * constraint Jacobian with the current normal step */ SmartPtr curr_jac_times_normal_d(); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ InexactCq(); /** Copy Constructor */ InexactCq(const InexactCq&); /** Overloaded Equals Operator */ void operator=(const InexactCq&); //@} /** @name Pointers for easy access to data and NLP information. To * avoid circular references of Smart Pointers, we use a regular * pointer here. */ //@{ IpoptNLP* ip_nlp_; IpoptData* ip_data_; IpoptCalculatedQuantities* ip_cq_; //@} /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(ip_data_->AdditionalData()); DBG_ASSERT(dynamic_cast(&ip_data_->AdditionalData())); return inexact_data; } /** @name Caches */ //@{ CachedResults > curr_jac_cdT_times_curr_cdminuss_cache_; CachedResults > curr_scaling_slacks_cache_; CachedResults > curr_slack_scaled_d_minus_s_cache_; CachedResults curr_scaled_Ac_norm_cache_; CachedResults slack_scaled_norm_cache_; CachedResults > curr_W_times_vec_x_cache_; CachedResults > curr_W_times_vec_s_cache_; CachedResults > curr_Wu_x_cache_; CachedResults > curr_Wu_s_cache_; CachedResults curr_uWu_cache_; CachedResults > curr_jac_times_normal_c_cache_; CachedResults > curr_jac_times_normal_d_cache_; //@} /** Upper bound on slack-based scaling factors */ Number slack_scale_max_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/Makefile.in0000644000076600007660000005635712156624616020652 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Andreas Waechter IBM 2008-08-31 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @COIN_HAS_HSL_TRUE@am__append_1 = $(HSL_CFLAGS) subdir = src/Algorithm/Inexact DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libinexact_la_LIBADD = am_libinexact_la_OBJECTS = IpInexactAlgBuilder.lo IpInexactCq.lo \ IpInexactData.lo IpInexactDoglegNormal.lo \ IpInexactLSAcceptor.lo IpInexactNewtonNormal.lo \ IpInexactNormalTerminationTester.lo IpInexactPDSolver.lo \ IpInexactPDTerminationTester.lo IpInexactRegOp.lo \ IpInexactSearchDirCalc.lo IpInexactTSymScalingMethod.lo \ IpIterativePardisoSolverInterface.lo \ IpIterativeSolverTerminationTester.lo libinexact_la_OBJECTS = $(am_libinexact_la_OBJECTS) @BUILD_INEXACT_TRUE@am_libinexact_la_rpath = depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libinexact_la_SOURCES) DIST_SOURCES = $(libinexact_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign @BUILD_INEXACT_TRUE@noinst_LTLIBRARIES = libinexact.la libinexact_la_SOURCES = \ IpInexactAlgBuilder.cpp IpInexactAlgBuilder.hpp \ IpInexactCq.cpp IpInexactCq.hpp \ IpInexactData.cpp IpInexactData.hpp \ IpInexactDoglegNormal.cpp IpInexactDoglegNormal.hpp \ IpInexactLSAcceptor.cpp IpInexactLSAcceptor.hpp \ IpInexactNewtonNormal.cpp IpInexactNewtonNormal.hpp \ IpInexactNormalStepCalc.hpp \ IpInexactNormalTerminationTester.cpp IpInexactNormalTerminationTester.hpp \ IpInexactPDSolver.cpp IpInexactPDSolver.hpp \ IpInexactPDTerminationTester.cpp IpInexactPDTerminationTester.hpp \ IpInexactRegOp.cpp IpInexactRegOp.hpp \ IpInexactSearchDirCalc.cpp IpInexactSearchDirCalc.hpp \ IpInexactTSymScalingMethod.cpp IpInexactTSymScalingMethod.hpp \ IpIterativePardisoSolverInterface.cpp IpIterativePardisoSolverInterface.hpp \ IpIterativeSolverTerminationTester.cpp IpIterativeSolverTerminationTester.hpp libinexact_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` -I`$(CYGPATH_W) \ $(srcdir)/../../LinAlg` -I`$(CYGPATH_W) \ $(srcdir)/../../LinAlg/TMatrices` -I`$(CYGPATH_W) \ $(srcdir)/../../Interfaces` -I`$(CYGPATH_W) $(srcdir)/../` \ -I`$(CYGPATH_W) $(srcdir)/../LinearSolvers` -I`$(CYGPATH_W) \ $(srcdir)/../../contrib/LinearSolverLoader` $(am__append_1) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpInexactAlgBuilder.cppbak IpInexactAlgBuilder.hppbak \ IpInexactCq.cppbak IpInexactCq.hppbak \ IpInexactData.cppbak IpInexactData.hppbak \ IpInexactDoglegNormal.cppbak IpInexactDoglegNormal.hppbak \ IpInexactLSAcceptor.cppbak IpInexactLSAcceptor.hppbak \ IpInexactNewtonNormal.cppbak IpInexactNewtonNormal.hppbak \ IpInexactNormalStepCalc.hppbak \ IpInexactNormalTerminationTester.cppbak IpInexactNormalTerminationTester.hppbak \ IpInexactPDSolver.cppbak IpInexactPDSolver.hppbak \ IpInexactPDTerminationTester.cppbak IpInexactPDTerminationTester.hppbak \ IpInexactRegOp.cppbak IpInexactRegOp.hppbak \ IpInexactSearchDirCalc.cppbak IpInexactSearchDirCalc.hppbak \ IpInexactTSymScalingMethod.cppbak IpInexactTSymScalingMethod.hppbak \ IpIterativePardisoSolverInterface.cppbak IpIterativePardisoSolverInterface.hppbak \ IpIterativeSolverTerminationTester.cppbak IpIterativeSolverTerminationTester.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Algorithm/Inexact/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Algorithm/Inexact/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libinexact.la: $(libinexact_la_OBJECTS) $(libinexact_la_DEPENDENCIES) $(CXXLINK) $(am_libinexact_la_rpath) $(libinexact_la_LDFLAGS) $(libinexact_la_OBJECTS) $(libinexact_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactAlgBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactCq.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactDoglegNormal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactLSAcceptor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactNewtonNormal.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactNormalTerminationTester.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactPDSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactPDTerminationTester.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactSearchDirCalc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpInexactTSymScalingMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIterativePardisoSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIterativeSolverTerminationTester.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpIterativePardisoSolverInterface.hpp0000644000076600007660000002114712151613040026046 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterativePardisoSolverInterface.hpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-18 // based on IpPardisoSolverInterface.hpp rev 1119 #ifndef __IPITERATIVEPARDISOSOLVERINTERFACE_HPP__ #define __IPITERATIVEPARDISOSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" #include "IpInexactCq.hpp" #include "IpIterativeSolverTerminationTester.hpp" namespace Ipopt { /** Interface to the linear solver Pardiso, derived from * SparseSymLinearSolverInterface. For details, see description of * SparseSymLinearSolverInterface base class. */ class IterativePardisoSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ IterativePardisoSolverInterface(IterativeSolverTerminationTester& normal_tester, IterativeSolverTerminationTester& pd_tester); /** Destructor */ virtual ~IterativePardisoSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja); /** Method returing an internal array into which the nonzero * elements are to be stored. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Format_1_Offset; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IterativePardisoSolverInterface(); /** Copy Constructor */ IterativePardisoSolverInterface(const IterativePardisoSolverInterface&); /** Overloaded Equals Operator */ void operator=(const IterativePardisoSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix in triplet representation. */ Index nonzeros_; /** Array for storing the values of the matrix. */ double* a_; //@} /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Solver specific options */ //@{ /** Type for mathcing strategies */ enum PardisoMatchingStrategy { COMPLETE, COMPLETE2x2, CONSTRAINT }; /** Option that controls the matching strategy. */ PardisoMatchingStrategy match_strat_; /** Flag indicating if symbolic factorization has already been * performed. */ bool have_symbolic_factorization_; /** Flag indicating whether the symbolic factorization should only * be done after perturbed elements, if the inertia was wrong */ bool pardiso_redo_symbolic_fact_only_if_inertia_wrong_; /** Flag indicating whether repeated perturbed elements even after * a new symbolic factorization should be interpreted as a * singular matrix */ bool pardiso_repeated_perturbation_means_singular_; /** Flag indicating if the interia is always assumed to be * correct. */ bool skip_inertia_check_; /** Maximal number of decreases of drop tolerance during one solve. */ Index pardiso_max_droptol_corrections_; //@} /** Options for the preconditioner */ //@{ Index pardiso_max_iter_; Number pardiso_iter_relative_tol_; Index pardiso_iter_coarse_size_; Index pardiso_iter_max_levels_; Number pardiso_iter_dropping_factor_; Number pardiso_iter_dropping_schur_; Index pardiso_iter_max_row_fill_; Number pardiso_iter_inverse_norm_factor_; Index normal_pardiso_max_iter_; Number normal_pardiso_iter_relative_tol_; Index normal_pardiso_iter_coarse_size_; Index normal_pardiso_iter_max_levels_; Number normal_pardiso_iter_dropping_factor_; Number normal_pardiso_iter_dropping_schur_; Index normal_pardiso_iter_max_row_fill_; Number normal_pardiso_iter_inverse_norm_factor_; //@} /** Decrease factor for dropping tolerances */ Number decr_factor_; /** Actualy used dropping tolerances */ //@{ Number pardiso_iter_dropping_factor_used_; Number pardiso_iter_dropping_schur_used_; Number normal_pardiso_iter_dropping_factor_used_; Number normal_pardiso_iter_dropping_schur_used_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; //@} /** @name Solver specific information */ //@{ /** Internal data address pointers. */ void** PT_; /** Maximal number of factors with identical nonzero * structure. Here, we only store one factorization. Is always 1.*/ ipfint MAXFCT_; /** Actual matrix for the solution phase. Is always 1.*/ ipfint MNUM_; /** Matrix type; real and symmetric indefinite. Is always -2.*/ ipfint MTYPE_; /** Parameter and info array for Pardiso. */ ipfint* IPARM_; /** Parameter and info array for Pardiso. */ double* DPARM_; /** Message level. */ ipfint MSGLVL_; //@} /**@name Some counters for debugging */ //@{ Index debug_last_iter_; Index debug_cnt_; //@} /** @name Internal functions */ //@{ /** Call Pardiso to do the analysis phase. */ ESymSolverStatus SymbolicFactorization(const Index* ia, const Index* ja); /** Call Pardiso to factorize the Matrix. */ ESymSolverStatus Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals); /** Call Pardiso to do the Solve. */ ESymSolverStatus Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals); //@} /** Method to easily access Inexact data */ InexactData& InexData() { InexactData& inexact_data = static_cast(IpData().AdditionalData()); DBG_ASSERT(dynamic_cast(&IpData().AdditionalData())); return inexact_data; } /** Method to easily access Inexact calculated quantities */ InexactCq& InexCq() { InexactCq& inexact_cq = static_cast(IpCq().AdditionalCq()); DBG_ASSERT(dynamic_cast(&IpCq().AdditionalCq())); return inexact_cq; } /** Termination tester for normal step computation */ SmartPtr normal_tester_; /** Termination tester for primal-dual step computation */ SmartPtr pd_tester_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactPDTerminationTester.hpp0000644000076600007660000001137512151613040024776 0ustar coincoin// Copyright (C) 2008, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactPDTerminationTester.hpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-19 #ifndef __IPINEXACTPDTERMINATIONTESTER_HPP__ #define __IPINEXACTPDTERMINATIONTESTER_HPP__ #include "IpIterativeSolverTerminationTester.hpp" namespace Ipopt { /** This class implements the termination tests for the primal-dual * system. */ class InexactPDTerminationTester: public IterativeSolverTerminationTester { public: /** @name /Destructor */ //@{ /** Default constructor */ InexactPDTerminationTester(); /** Default destructor */ virtual ~InexactPDTerminationTester(); //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Method for initializing for the next iterative solve. This * must be call before the test methods are called. */ virtual bool InitializeSolve(); /** This method checks if the current soltion of the iterative * linear solver is good enough (by returning the corresponding * satisfied termination test), or if the Hessian should be * modified. The input is the dimension of the augmented system, * the current solution vector of the augmented system, the * current residual vector. */ virtual ETerminationTest TestTermination(Index ndim, const Number* sol, const Number* resid, Index iter, Number norm2_rhs); /** This method can be called after the Solve is over and we can * delete anything that has been allocated to free memory. */ virtual void Clear(); /** Return the number of iterative solver iteration from the most * recent solve */ virtual Index GetSolverIterations() const { return last_iter_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Overloaded Equals Operator */ InexactPDTerminationTester& operator=(const InexactPDTerminationTester&); //@} /** @name Algorithmic options */ //@{ /** Psi factor in the tangential component condition */ Number tcc_psi_; /** theta factor in the tangential component condition */ Number tcc_theta_; /** mu exponent when multiplied to theta in the tangential * component condition */ Number tcc_theta_mu_exponent_; /** zeta factor in the tangential component condition */ Number tcc_zeta_; /** kappa_1 factor in termination test 1 */ Number tt_kappa1_; /** kappa_2 factor in termination test 2 */ Number tt_kappa2_; /** eps_2 constant in termination test 2 */ Number tt_eps2_; /** eps_3 constant in termination test 3 */ Number tt_eps3_; /** rho constant from penalty parameter update. This is called * \f$\tau_{\pi}\f$ in MIPS paper */ Number rho_; /** Desired reduction of residual */ Number inexact_desired_pd_residual_; /** Number of iterations allowed for desired pd residual */ Index inexact_desired_pd_residual_iter_; /** Is set to true if the linear system is scaled via slacks. */ bool requires_scaling_; //@} /** @name Quantities that are identical for all tests and can be * precomputed */ //@{ SmartPtr curr_Av_c_; SmartPtr curr_Av_d_; Number c_norm_; Number c_plus_Av_norm_; Number v_norm_scaled_; SmartPtr curr_grad_barrier_obj_x_; SmartPtr curr_grad_barrier_obj_s_; // in original space SmartPtr curr_jac_c_; SmartPtr curr_jac_d_; SmartPtr curr_scaling_slacks_; SmartPtr curr_nabla_phi_plus_ATy_x_; SmartPtr curr_nabla_phi_plus_ATy_s_; // in scaled space Number curr_Av_norm_; Number curr_tt1_norm_; Number curr_tt2_norm_; SmartPtr curr_Wv_x_; SmartPtr curr_Wv_s_; // in original space bool try_tt2_; //@} /** @name Quantities from previous iteration required in the tests */ //@{ Number last_Av_norm_; Number last_tt1_norm_; //@} /** Last iterative solver iteration counter */ Index last_iter_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactDoglegNormal.cpp0000644000076600007660000003164511504216567023457 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactDoglegNormal.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #include "IpInexactDoglegNormal.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactDoglegNormalStep::InexactDoglegNormalStep(SmartPtr newton_step, SmartPtr normal_tester /* = NULL */) : InexactNormalStepCalculator(), newton_step_(newton_step), normal_tester_(normal_tester) {} InexactDoglegNormalStep::~InexactDoglegNormalStep() {} void InexactDoglegNormalStep::RegisterOptions(SmartPtr reg_options) { reg_options->AddLowerBoundedNumberOption( "omega_init", "Initial trust region factor for normal problem.", 0.0, true, 100.); reg_options->AddLowerBoundedNumberOption( "omega_max", "Maximal trust region factor for normal problem.", 0.0, true, 1e20); } bool InexactDoglegNormalStep::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("omega_init", curr_omega_, prefix); options.GetNumericValue("omega_max", omega_max_, prefix); // We do not want to trigger an increase of the trust region // factor in the first iteration, so we initialize this flag to // flase last_tr_inactive_ = true; return newton_step_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool InexactDoglegNormalStep::ComputeNormalStep(SmartPtr& normal_x, SmartPtr& normal_s) { DBG_START_METH("InexactDoglegNormalStep::ComputeNormalStep", dbg_verbosity); // test if we should increase the trust region factor if (!last_tr_inactive_ && InexData().full_step_accepted()) { if (curr_omega_ >= omega_max_) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Trust region radius factor would be increased, but it is already at its upper limit %e.\n", curr_omega_); IpData().Append_info_string("O"); } else { Number omega_old = curr_omega_; curr_omega_ = Min(omega_max_, 10.*curr_omega_); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Increasing trust region factor from %e to %e\n.", omega_old, curr_omega_); IpData().Append_info_string("o"); } } last_tr_inactive_ = false; // TODO if (IpCq().curr_primal_infeasibility(NORM_2) == 0.) { if (IpCq().curr_primal_infeasibility(NORM_2) <= 1e-12 ) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: We are at a feasible point, the normal step is set to zero.\n"); normal_x = IpData().curr()->x()->MakeNew(); normal_s = IpData().curr()->s()->MakeNew(); normal_x->Set(0.); normal_s->Set(0.); last_tr_inactive_ = true; return true; } /////////////////// Cauchy Step // Compute the negative of the steepest descent direction. // (scaled constraint Jacobian transpose times constraint values) SmartPtr curr_jac_cdT_times_curr_cdminuss = InexCq().curr_jac_cdT_times_curr_cdminuss(); SmartPtr curr_slack_scaled_d_minus_s = InexCq().curr_slack_scaled_d_minus_s(); DBG_PRINT_VECTOR(1, "curr_jac_cdT_times_curr_cdminuss", *curr_jac_cdT_times_curr_cdminuss); DBG_PRINT_VECTOR(1, "curr_slack_scaled_d_minus_s", *curr_slack_scaled_d_minus_s); // Compute the norm of the (scaled) gradient of the objective // function (A^T c) Number v_ATc_norm = InexCq().curr_scaled_Ac_norm(); // Compute A * A^T * c SmartPtr vec_AATc_c = IpCq().curr_jac_c_times_vec(*curr_jac_cdT_times_curr_cdminuss); SmartPtr vec_AATc_d = curr_slack_scaled_d_minus_s->MakeNewCopy(); vec_AATc_d->ElementWiseMultiply(*InexCq().curr_scaling_slacks()); DBG_PRINT_VECTOR(1, "curr_scaling_slacks", *InexCq().curr_scaling_slacks()); DBG_PRINT_VECTOR(1, "vec_AATc_d", *vec_AATc_d); vec_AATc_d->AddOneVector(1., *IpCq().curr_jac_d_times_vec(*curr_jac_cdT_times_curr_cdminuss) , 1.); DBG_PRINT_VECTOR(1, "IpCq().curr_jac_d_times_vec(*curr_jac_cdT_times_curr_cdminuss)", *IpCq().curr_jac_d_times_vec(*curr_jac_cdT_times_curr_cdminuss)); DBG_PRINT_VECTOR(1, "vec_AATc_c", *vec_AATc_c); DBG_PRINT_VECTOR(1, "vec_AATc_d", *vec_AATc_d); Number AATc_norm = IpCq().CalcNormOfType(NORM_2, *vec_AATc_c, *vec_AATc_d); // Compute the step size for the Cauchy step Number alpha_cs = Min(curr_omega_, v_ATc_norm*v_ATc_norm/(AATc_norm*AATc_norm)); Jnlst().Printf(J_MOREDETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Cauchy step size alpha_cs = %e\n", alpha_cs); DBG_PRINT((1, "alpha_cs = %e v_ATc_norm = %e AATc_norm = %e\n", alpha_cs, v_ATc_norm,AATc_norm)); // Finally get the Cauchy step SmartPtr v_cauchy_x = curr_jac_cdT_times_curr_cdminuss->MakeNewCopy(); SmartPtr v_cauchy_s = curr_slack_scaled_d_minus_s->MakeNewCopy(); v_cauchy_x->Scal(-alpha_cs); v_cauchy_s->Scal(alpha_cs); // output if (Jnlst().ProduceOutput(J_MOREVECTOR, J_SOLVE_PD_SYSTEM)) { Jnlst().Printf(J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "Dogleg step: Cauchy step:\n"); v_cauchy_x->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "v_cauchy_x"); v_cauchy_s->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "v_cauchy_s"); } // Compute the objective function reduction of the normal problem // for the Cauchy step SmartPtr curr_c = IpCq().curr_c(); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr inf_c = curr_c->MakeNew(); SmartPtr inf_d = curr_d_minus_s->MakeNew(); inf_c->AddTwoVectors(1., *curr_c, -alpha_cs, *vec_AATc_c, 0.); inf_d->AddTwoVectors(1., *curr_d_minus_s, -alpha_cs, *vec_AATc_d, 0.); Number c_Avc_norm_cauchy = IpCq().CalcNormOfType(NORM_2, *inf_c, *inf_d); if (IsValid(normal_tester_)) { normal_tester_->Set_c_Avc_norm_cauchy(c_Avc_norm_cauchy); } Number objred_normal_cs = 0.5*(IpCq().CalcNormOfType(NORM_2, *curr_c, *curr_d_minus_s)-c_Avc_norm_cauchy); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg: Reduction of normal problem objective function by Cauchy step = %23.16e\n", objred_normal_cs); // If the Cauchy step already hits the trust region, we are done if (alpha_cs == curr_omega_) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Cauchy step already hits trust region.\n"); normal_x = v_cauchy_x; normal_s = v_cauchy_s; // unscale the slack-based scaling normal_s->ElementWiseMultiply(*InexCq().curr_scaling_slacks()); IpData().Append_info_string("Nc "); return true; } // ToDo: We don't need this if we do a proper check for Newton step below SmartPtr v_cauchy_x_bak = v_cauchy_x->MakeNewCopy(); SmartPtr v_cauchy_s_bak = v_cauchy_s->MakeNewCopy(); ///////////////////// Newton Step SmartPtr v_newton_x = v_cauchy_x->MakeNew(); SmartPtr v_newton_s = v_cauchy_s->MakeNew(); bool retval = newton_step_->ComputeNewtonNormalStep(*v_newton_x, *v_newton_s); if (!retval) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Newton step could not be calculated, return Cauchy step.\n"); normal_x = v_cauchy_x_bak; normal_s = v_cauchy_s_bak; // unscale the slack-based scaling normal_s->ElementWiseMultiply(*InexCq().curr_scaling_slacks()); IpData().Append_info_string("NF "); return true; } // output if (Jnlst().ProduceOutput(J_MOREVECTOR, J_SOLVE_PD_SYSTEM)) { Jnlst().Printf(J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "Dogleg step: Newton step:\n"); v_newton_x->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "v_newton_x"); v_newton_s->Print(Jnlst(), J_MOREVECTOR, J_SOLVE_PD_SYSTEM, "v_newton_s"); } ///////////////////// Compute the dogleg step // Compute the trust region radius const Number tr_radius = curr_omega_ * v_ATc_norm; // norm of the Newton step Number v_newton_norm = IpCq().CalcNormOfType(NORM_2, *v_newton_x, *v_newton_s); Jnlst().Printf(J_MOREDETAILED, J_SOLVE_PD_SYSTEM, "Norm of Newton step = %e, trust region radius = %e\n", v_newton_norm, tr_radius); if (v_newton_norm <= tr_radius) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Newton step is within trust region.\n"); normal_x = v_newton_x; normal_s = v_newton_s; last_tr_inactive_ = true; IpData().Append_info_string("Nn "); } else { Number v_cauchy_norm = IpCq().CalcNormOfType(NORM_2, *v_cauchy_x, *v_cauchy_s); Number v_cs_dot_n = v_newton_x->Dot(*v_cauchy_x) + v_newton_s->Dot(*v_cauchy_s); Number a = v_newton_norm*v_newton_norm - 2*v_cs_dot_n + v_cauchy_norm*v_cauchy_norm; Number b = 2*(v_cs_dot_n - v_newton_norm*v_newton_norm); Number c = v_newton_norm*v_newton_norm - tr_radius*tr_radius; Number lambda = (-b-sqrt(b*b-4.*a*c))/(2.*a); DBG_PRINT((1, "v_cauchy_norm = %e v_cs_dot_n = %e v_newton_norm = %e\n",v_cauchy_norm,v_cs_dot_n,v_newton_norm)); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Using convex combination of Cauchy and Newton step with factor lambda = %e\n", lambda); v_cauchy_x->AddOneVector(1.-lambda, *v_newton_x, lambda); v_cauchy_s->AddOneVector(1.-lambda, *v_newton_s, lambda); normal_x = v_cauchy_x; normal_s = v_cauchy_s; IpData().Append_info_string("Nd "); DBG_PRINT((1, "v_normal^2 = %e\n",normal_x->Dot(*normal_x)+normal_s->Dot(*normal_s))); } DBG_PRINT_VECTOR(1, "normal_x scaled", *normal_x); DBG_PRINT_VECTOR(1, "normal_s scaled", *normal_s); // Compute the unscaled steps normal_s->ElementWiseMultiply(*InexCq().curr_scaling_slacks()); v_cauchy_s_bak->ElementWiseMultiply(*InexCq().curr_scaling_slacks()); // We now check if the Dogleg step, shorted by the // fraction-to-the-boundary rule, gives at least as much progress // as the Cauchy step, also shortened by the // fraction-to-the-boundary rule. If not, we throw away the // Newton step component. // TODO: Implement efficiently const Number tau = IpData().curr_tau(); Number ftb_cauchy = IpCq().primal_frac_to_the_bound(tau, *v_cauchy_x_bak, *v_cauchy_s_bak); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg: Fraction-to-the-bounary step size for Cauchy step = %23.16e\n", ftb_cauchy); inf_c = IpCq().curr_jac_c_times_vec(*v_cauchy_x_bak)->MakeNewCopy(); inf_c->AddOneVector(1., *curr_c, ftb_cauchy); inf_d = curr_d_minus_s->MakeNewCopy(); inf_d->AddTwoVectors(-ftb_cauchy, *v_cauchy_s_bak, ftb_cauchy, *IpCq().curr_jac_d_times_vec(*v_cauchy_x_bak) , 1.); Number objred_ftb_cauchy = 0.5*(IpCq().CalcNormOfType(NORM_2, *curr_c, *curr_d_minus_s)-IpCq().CalcNormOfType(NORM_2, *inf_c, *inf_d)); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg: Reduction of normal problem objective function by ftb cauchy step = %23.16e\n", objred_ftb_cauchy); Number ftb_dogleg = IpCq().primal_frac_to_the_bound(tau, *normal_x, *normal_s); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg: Fraction-to-the-bounary step size for Dogleg step = %23.16e\n", ftb_dogleg); inf_c = IpCq().curr_jac_c_times_vec(*normal_x)->MakeNewCopy(); inf_c->AddOneVector(1., *curr_c, ftb_dogleg); inf_d = curr_d_minus_s->MakeNewCopy(); inf_d->AddTwoVectors(-ftb_dogleg, *normal_s, ftb_dogleg, *IpCq().curr_jac_d_times_vec(*normal_x) , 1.); Number objred_ftb_dogleg = 0.5*(IpCq().CalcNormOfType(NORM_2, *curr_c, *curr_d_minus_s)-IpCq().CalcNormOfType(NORM_2, *inf_c, *inf_d)); Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg: Reduction of normal problem objective function by ftb dogleg step = %23.16e\n", objred_ftb_dogleg); Number rhs = 10.*objred_ftb_dogleg; Number lhs = objred_ftb_cauchy; Number BasVal = curr_c->Nrm2()+curr_d_minus_s->Nrm2(); bool ok = Compare_le(lhs, rhs, BasVal); if (!ok) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "Dogleg step: Dogleg step makes less progress than Cauchy step, resetting to Cauchy step.\n"); normal_x = v_cauchy_x_bak; normal_s = v_cauchy_s_bak; IpData().Append_info_string("NR "); } return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactData.hpp0000644000076600007660000001106311504216567021753 0ustar coincoin// Copyright (C) 2008, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactData.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-31 #ifndef __IPINEXACTDATA_HPP__ #define __IPINEXACTDATA_HPP__ #include "IpIpoptData.hpp" namespace Ipopt { /** Class to organize all the additional data required by the * Chen-Goldfarb penalty function algorithm. */ class InexactData : public IpoptAdditionalData { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ InexactData(); /** Default destructor */ ~InexactData(); //@} /** @name Methods overloaded from IpoptAdditionalData */ //@{ /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** Initialize Data Structures at the beginning. */ bool InitializeDataStructures(); /** Do whatever is necessary to accept a trial point as current * iterate. This is also used to finish an iteration, i.e., to * release memory, and to reset any flags for a new iteration. */ void AcceptTrialPoint(); //@} /** @name Normal step set and accessor methods */ //@{ void set_normal_x(SmartPtr& normal_x) { normal_x_ = ConstPtr(normal_x); normal_x = NULL; } void set_normal_s(SmartPtr& normal_s) { normal_s_ = ConstPtr(normal_s); normal_s = NULL; } SmartPtr normal_x() { return normal_x_; } SmartPtr normal_s() { return normal_s_; } //@} /** @name Tangential step set and accessor methods */ //@{ void set_tangential_x(SmartPtr& tangential_x) { tangential_x_ = tangential_x; tangential_x = NULL; } void set_tangential_s(SmartPtr& tangential_s) { tangential_s_ = tangential_s; tangential_s = NULL; } SmartPtr tangential_x() { return tangential_x_; } SmartPtr tangential_s() { return tangential_s_; } //@} /** @name Flag indicating if most recent step has been fully * accepted. This is used to determine if the trust region * radius should be increased. */ //@{ void set_full_step_accepted(bool full_step_accepted) { full_step_accepted_ = full_step_accepted; } bool full_step_accepted() { return full_step_accepted_; } //@} /** @name Current value of penalty parameter */ //@{ void set_curr_nu(Number nu) { curr_nu_ = nu; } Number curr_nu() { return curr_nu_; } //@} /** @name Current normal step computation flag */ //@{ void set_compute_normal(bool compute_normal) { compute_normal_ = compute_normal; } bool compute_normal() { return compute_normal_; } //@} /** @name Next iteration normal step computation flag */ //@{ void set_next_compute_normal(bool next_compute_normal) { next_compute_normal_ = next_compute_normal; } bool next_compute_normal() { return next_compute_normal_; } //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ InexactData(const InexactData&); /** Overloaded Equals Operator */ void operator=(const InexactData&); //@} /** @name Normal step */ //@{ SmartPtr normal_x_; SmartPtr normal_s_; //@} /** @name Tangential step */ //@{ SmartPtr tangential_x_; SmartPtr tangential_s_; //@} /** Flag indicating if most recent step has been fully accepted */ bool full_step_accepted_; /** current value of penalty parameter */ Number curr_nu_; /** current normal step computation flag */ bool compute_normal_; /** next iteration normal step computation flag */ bool next_compute_normal_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactTSymScalingMethod.cpp0000644000076600007660000000310311504216567024427 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactTSymScalingMethod.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter, Frank E. Curtis IBM 2009-06-12 // (based on IpMc19TSymScalingMethod.cpp rev 1204) #include "IpoptConfig.h" #include "IpInexactTSymScalingMethod.hpp" #include "IpTripletHelper.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif bool InexactTSymScalingMethod::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } bool InexactTSymScalingMethod::ComputeSymTScalingFactors(Index n, Index nnz, const ipfint* airn, const ipfint* ajcn, const double* a, double* scaling_factors) { DBG_START_METH("InexactTSymScalingMethod::ComputeTSymScalingFactors", dbg_verbosity); const Index nx = IpData().curr()->x()->Dim(); const Index ns = IpData().curr()->s()->Dim(); const Index nc = IpData().curr()->y_c()->Dim(); const Index nd = IpData().curr()->y_d()->Dim(); for (Index i=0; i scaling_vec = InexCq().curr_scaling_slacks(); TripletHelper::FillValuesFromVector(ns, *scaling_vec, scaling_factors); scaling_factors += ns; for (Index i=0; i newton_step, SmartPtr normal_tester = NULL); /** Default destructor */ virtual ~InexactDoglegNormalStep(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the normal step. The computed step is * returned as normal_x and normal_s, for the x and s variables, * respectively. These quantities are not slack-scaled. If the * step cannot be computed, this method returns false. */ virtual bool ComputeNormalStep(SmartPtr& normal_x, SmartPtr& normal_s); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default onstructor */ InexactDoglegNormalStep(); /** Copy Constructor */ InexactDoglegNormalStep(const InexactDoglegNormalStep&); /** Overloaded Equals Operator */ void operator=(const InexactDoglegNormalStep&); //@} /** Pointer to object for computing the "Newton" step in the dogleg * method */ SmartPtr newton_step_; /** Pointer to object that is used by the newton_step computation * object to determine if iterative solver is done. This is * needed here because this dogleg object is setting the value of * the linearlized constraint violation at the cauchy point if * normal_tester is not NULL. */ SmartPtr normal_tester_; /** @name Algorithmic options */ //@{ Number omega_max_; //@} /** Current value of the trust region factor */ Number curr_omega_; /** Flag indicating if trust region was active in last iteration */ bool last_tr_inactive_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactRegOp.cpp0000644000076600007660000000267311504216567022120 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactRegOp.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-09-05 #include "IpInexactRegOp.hpp" #include "IpRegOptions.hpp" #include "IpInexactAlgBuilder.hpp" #include "IpInexactSearchDirCalc.hpp" #include "IpInexactDoglegNormal.hpp" #include "IpInexactNewtonNormal.hpp" #include "IpInexactPDSolver.hpp" #include "IpInexactLSAcceptor.hpp" #include "IpInexactCq.hpp" #include "IpIterativePardisoSolverInterface.hpp" #include "IpInexactNormalTerminationTester.hpp" #include "IpInexactPDTerminationTester.hpp" namespace Ipopt { void RegisterOptions_Inexact(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Inexact Step Computation"); InexactAlgorithmBuilder::RegisterOptions(roptions); InexactSearchDirCalculator::RegisterOptions(roptions); InexactDoglegNormalStep::RegisterOptions(roptions); InexactNewtonNormalStep::RegisterOptions(roptions); InexactPDSolver::RegisterOptions(roptions); InexactLSAcceptor::RegisterOptions(roptions); InexactCq::RegisterOptions(roptions); IterativePardisoSolverInterface::RegisterOptions(roptions); InexactNormalTerminationTester::RegisterOptions(roptions); InexactPDTerminationTester::RegisterOptions(roptions); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/Inexact/IpInexactAlgBuilder.cpp0000644000076600007660000002562012164277047023116 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpInexactAlgBuilder.cpp 2346 2013-07-01 13:03:35Z stefan $ // // Authors: Andreas Waechter IBM 2008-09-05 // based on IpAlgBuilder.cpp (rev 1311) #include "IpoptConfig.h" #include "IpInexactAlgBuilder.hpp" #include "IpInexactData.hpp" #include "IpInexactCq.hpp" #include "IpNLPBoundsRemover.hpp" #include "IpOptErrorConvCheck.hpp" #include "IpStdAugSystemSolver.hpp" #include "IpTSymLinearSolver.hpp" #include "IpPDPerturbationHandler.hpp" #include "IpBacktrackingLineSearch.hpp" #include "IpInexactLSAcceptor.hpp" #include "IpMonotoneMuUpdate.hpp" #include "IpAdaptiveMuUpdate.hpp" #include "IpLoqoMuOracle.hpp" #include "IpDefaultIterateInitializer.hpp" #include "IpWarmStartIterateInitializer.hpp" #include "IpOrigIterationOutput.hpp" #include "IpUserScaling.hpp" #include "IpGradientScaling.hpp" #include "IpEquilibrationScaling.hpp" #include "IpExactHessianUpdater.hpp" #include "IpInexactDoglegNormal.hpp" #include "IpInexactSearchDirCalc.hpp" #include "IpInexactNewtonNormal.hpp" #include "IpInexactPDSolver.hpp" #include "IpMa27TSolverInterface.hpp" #include "IpMa57TSolverInterface.hpp" #include "IpMc19TSymScalingMethod.hpp" #include "IpInexactTSymScalingMethod.hpp" #include "IpIterativePardisoSolverInterface.hpp" #include "IpInexactNormalTerminationTester.hpp" #include "IpInexactPDTerminationTester.hpp" #ifdef COIN_HAS_HSL # include "CoinHslConfig.h" #endif #ifdef HAVE_WSMP # include "IpWsmpSolverInterface.hpp" #endif #ifdef COIN_HAS_MUMPS # include "IpMumpsSolverInterface.hpp" #endif #ifdef HAVE_LINEARSOLVERLOADER # include "HSLLoader.h" # include "PardisoLoader.h" #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif InexactAlgorithmBuilder::InexactAlgorithmBuilder() : AlgorithmBuilder() {} void InexactAlgorithmBuilder::BuildIpoptObjects(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, const SmartPtr& nlp, SmartPtr& ip_nlp, SmartPtr& ip_data, SmartPtr& ip_cq) { DBG_ASSERT(prefix == ""); DBG_ASSERT(dynamic_cast(GetRawPtr(nlp))); // use the original method to get the basic quantites AlgorithmBuilder::BuildIpoptObjects(jnlst, options, prefix, nlp, ip_nlp, ip_data, ip_cq); // Now add the objects specific for the inexact step version if (ip_data->HaveAddData()) { THROW_EXCEPTION(OPTION_INVALID, "The Inexact step computation of Ipopt has been chosen, but some option has been set that requires additional Ipopt data beside the one for the chosen inexact step computation"); } ip_data->SetAddData(new InexactData()); if (ip_cq->HaveAddCq()) { THROW_EXCEPTION(OPTION_INVALID, "The Inexact step computation of Ipopt has been chosen, but some option has been set that requires additional Ipopt calculated quantities beside the one for the chosen inexact step computation"); } ip_cq->SetAddCq(new InexactCq(GetRawPtr(ip_nlp), GetRawPtr(ip_data), GetRawPtr(ip_cq))); } void InexactAlgorithmBuilder::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("Linear Solver"); roptions->AddStringOption2( "inexact_linear_system_scaling", "Method for scaling the linear system for the inexact approach", "slack-based", "none", "no scaling will be performed", "slack-based", "scale the linear system as in paper", ""); } SmartPtr InexactAlgorithmBuilder::BuildBasicAlgorithm(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { DBG_START_FUN("InexactAlgorithmBuilder::BuildBasicAlgorithm", dbg_verbosity); // Create the convergence check SmartPtr convCheck = new OptimalityErrorConvergenceCheck(); SmartPtr NormalTester; SmartPtr SolverInterface; std::string linear_solver; options.GetStringValue("linear_solver", linear_solver, prefix); if (linear_solver=="ma27") { #ifndef COINHSL_HAS_MA27 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma27TSolverInterface(); char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver MA27 not available.\nTried to obtain MA27 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } # else THROW_EXCEPTION(OPTION_INVALID, "Support for MA27 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma27TSolverInterface(); #endif } else if (linear_solver=="ma57") { #ifndef COINHSL_HAS_MA57 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma57TSolverInterface(); char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver MA57 not available.\nTried to obtain MA57 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } # else THROW_EXCEPTION(OPTION_INVALID, "Support for MA57 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma57TSolverInterface(); #endif } else if (linear_solver=="pardiso") { NormalTester = new InexactNormalTerminationTester(); SmartPtr pd_tester = new InexactPDTerminationTester(); #ifndef HAVE_PARDISO # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new IterativePardisoSolverInterface(*NormalTester, *pd_tester); char buf[256]; int rc = LSL_loadPardisoLib(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver Pardiso not available.\nTried to obtain Pardiso from shared library \""; errmsg += LSL_PardisoLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } # else THROW_EXCEPTION(OPTION_INVALID, "Support for Pardiso has not been compiled into Ipopt."); # endif #else SolverInterface = new IterativePardisoSolverInterface(*NormalTester, *pd_tester); #endif } else if (linear_solver=="wsmp") { #ifdef HAVE_WSMP SolverInterface = new WsmpSolverInterface(); #else THROW_EXCEPTION(OPTION_INVALID, "Selected linear solver WSMP not available."); #endif } else if (linear_solver=="mumps") { #ifdef COIN_HAS_MUMPS SolverInterface = new MumpsSolverInterface(); #else THROW_EXCEPTION(OPTION_INVALID, "Selected linear solver MUMPS not available."); #endif } else { THROW_EXCEPTION(OPTION_INVALID, "Inexact version not available for this selection of linear solver."); } SmartPtr ScalingMethod; std::string inexact_linear_system_scaling; options.GetStringValue("inexact_linear_system_scaling", inexact_linear_system_scaling, prefix); if (inexact_linear_system_scaling=="slack-based") { ScalingMethod = new InexactTSymScalingMethod(); } SmartPtr ScaledSolver = new TSymLinearSolver(SolverInterface, ScalingMethod); SmartPtr AugSolver = new StdAugSystemSolver(*ScaledSolver); // Create the object for initializing the iterates Initialization // object. We include both the warm start and the defaut // initializer, so that the warm start options can be activated // without having to rebuild the algorithm SmartPtr WarmStartInitializer = new WarmStartIterateInitializer(); SmartPtr IterInitializer = new DefaultIterateInitializer(NULL, WarmStartInitializer, NULL); // Create the line search to be used by the main algorithm SmartPtr LSacceptor = new InexactLSAcceptor(); SmartPtr lineSearch = new BacktrackingLineSearch(LSacceptor, NULL, convCheck); // Create the mu update that will be used by the main algorithm SmartPtr MuUpdate; std::string smuupdate; options.GetStringValue("mu_strategy", smuupdate, prefix); if (smuupdate=="monotone" ) { MuUpdate = new MonotoneMuUpdate(GetRawPtr(lineSearch)); } else if (smuupdate=="adaptive") { // for now, we only allow Loqo oracle since it does not require // linear system solve SmartPtr muOracle = new LoqoMuOracle(); SmartPtr FixMuOracle= new LoqoMuOracle(); MuUpdate = new AdaptiveMuUpdate(GetRawPtr(lineSearch), muOracle, FixMuOracle); } // Create the object for the iteration output SmartPtr IterOutput = new OrigIterationOutput(); // Get the Hessian updater for the main algorithm SmartPtr HessUpdater = new ExactHessianUpdater(); SmartPtr NewtonNormalStep = new InexactNewtonNormalStep(AugSolver); SmartPtr normal_step_calculator = new InexactDoglegNormalStep(NewtonNormalStep, NormalTester); SmartPtr perturbHandler = new PDPerturbationHandler(); SmartPtr inexact_pd_solver = new InexactPDSolver(*AugSolver, *perturbHandler); SmartPtr SearchDirCalc = new InexactSearchDirCalculator(normal_step_calculator, inexact_pd_solver); // Create the main algorithm SmartPtr alg = new IpoptAlgorithm(SearchDirCalc, GetRawPtr(lineSearch), MuUpdate, convCheck, IterInitializer, IterOutput, HessUpdater); return alg; } void AddInexactDefaultOptions(OptionsList& options_list) { options_list.SetIntegerValueIfUnset("max_soc", 0); options_list.SetStringValueIfUnset("constraint_violation_norm_type", "2-norm"); options_list.SetNumericValueIfUnset("constr_mult_init_max", 0.); // TODO: Find out about the following: //options_list.SetNumericValueIfUnset("bound_relax_factor", 0.); options_list.SetNumericValueIfUnset("kappa_d", 0.); options_list.SetStringValueIfUnset("linear_solver", "pardiso"); options_list.SetStringValue("linear_scaling_on_demand", "no"); options_list.SetStringValue("replace_bounds", "yes"); } } // namespace Ipopt-3.11.4/Ipopt/src/Algorithm/IpUserScaling.hpp0000644000076600007660000000377411504216567020424 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpUserScaling.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-25 #ifndef __IPUSERSCALING_HPP__ #define __IPUSERSCALING_HPP__ #include "IpNLPScaling.hpp" #include "IpNLP.hpp" namespace Ipopt { /** This class does problem scaling by getting scaling parameters * from the user (through the NLP interface). */ class UserScaling : public StandardScalingBase { public: /**@name Constructors/Destructors */ //@{ UserScaling(const SmartPtr& nlp) : StandardScalingBase(), nlp_(nlp) {} /** Default destructor */ virtual ~UserScaling() {} //@} protected: virtual void DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ UserScaling(const UserScaling&); /** Overloaded Equals Operator */ void operator=(const UserScaling&); //@} /** pointer to the NLP to get scaling parameters */ SmartPtr nlp_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAugRestoSystemSolver.cpp0000644000076600007660000005034312214316142022310 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAugRestoSystemSolver.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpAugRestoSystemSolver.hpp" #include "IpCompoundMatrix.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpCompoundVector.hpp" #include "IpSumSymMatrix.hpp" #include "IpDiagMatrix.hpp" #include "IpLowRankUpdateSymMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif AugRestoSystemSolver::AugRestoSystemSolver(AugSystemSolver& orig_aug_solver, bool skip_orig_aug_solver_init) : AugSystemSolver(), neg_omega_c_plus_D_c_cache_(1), neg_omega_d_plus_D_d_cache_(1), sigma_tilde_n_c_inv_cache_(1), sigma_tilde_p_c_inv_cache_(1), sigma_tilde_n_d_inv_cache_(1), sigma_tilde_p_d_inv_cache_(1), d_x_plus_wr_d_cache_(1), rhs_cR_cache_(1), rhs_dR_cache_(1), orig_aug_solver_(&orig_aug_solver), skip_orig_aug_solver_init_(skip_orig_aug_solver_init) { DBG_START_METH("AugRestoSystemSolver::AugRestoSystemSolver()",dbg_verbosity); } AugRestoSystemSolver::~AugRestoSystemSolver() { DBG_START_METH("AugRestoSystemSolver::~AugRestoSystemSolver()",dbg_verbosity); } bool AugRestoSystemSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { bool retval = true; if (!skip_orig_aug_solver_init_) { retval = orig_aug_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retval; } ESymSolverStatus AugRestoSystemSolver::Solve(const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("AugRestoSystemSolver::Solve",dbg_verbosity); DBG_ASSERT(J_c && J_d); // should pass these by ref // I think the comment below is incorrect // Remember, W and the D's may be NULL! // ToDo: I don't think the W's can ever be NULL (we always need the structure) DBG_ASSERT(W); SmartPtr CW = static_cast(W); SmartPtr CD_x = static_cast(D_x); SmartPtr CJ_c = static_cast(J_c); DBG_ASSERT(IsValid(CJ_c)); SmartPtr CJ_d = static_cast(J_d); DBG_ASSERT(IsValid(CJ_d)); SmartPtr Crhs_x = static_cast(&rhs_x); DBG_ASSERT(IsValid(Crhs_x)); SmartPtr Csol_x = static_cast(&sol_x); DBG_ASSERT(IsValid(Csol_x)); // Get the Sigma inverses SmartPtr sigma_n_c; SmartPtr sigma_p_c; SmartPtr sigma_n_d; SmartPtr sigma_p_d; if (IsValid(CD_x)) { sigma_n_c = CD_x->GetComp(1); sigma_p_c = CD_x->GetComp(2); sigma_n_d = CD_x->GetComp(3); sigma_p_d = CD_x->GetComp(4); } SmartPtr sigma_tilde_n_c_inv = Sigma_tilde_n_c_inv(sigma_n_c, delta_x, *Crhs_x->GetComp(1)); SmartPtr sigma_tilde_p_c_inv = Sigma_tilde_p_c_inv(sigma_p_c, delta_x, *Crhs_x->GetComp(2)); SmartPtr sigma_tilde_n_d_inv = Sigma_tilde_n_d_inv(sigma_n_d, delta_x, *Crhs_x->GetComp(3)); SmartPtr sigma_tilde_p_d_inv = Sigma_tilde_p_d_inv(sigma_p_d, delta_x, *Crhs_x->GetComp(4)); // Pull out the expansion matrices for d SmartPtr pd_l = CJ_d->GetComp(0,3); SmartPtr neg_pd_u = CJ_d->GetComp(0,4); // Now map the correct entries into the Solve method // pull out the parts of the hessian h_orig + diag DBG_PRINT_MATRIX(2, "CW", *CW); SmartPtr h_orig; SmartPtr D_xR; SmartPtr WR_sum = dynamic_cast(GetRawPtr(CW->GetComp(0,0))); Number orig_W_factor = W_factor; if (IsValid(WR_sum)) { // We seem to be in the regular situation with exact second // derivatives double temp_factor; WR_sum->GetTerm(0, temp_factor, h_orig); DBG_ASSERT(temp_factor == 1. || temp_factor == 0.); orig_W_factor = temp_factor * W_factor; SmartPtr eta_DR; double factor; WR_sum->GetTerm(1, factor, eta_DR); SmartPtr wr_d = static_cast(GetRawPtr(eta_DR))->GetDiag(); if (IsValid(CD_x)) { D_xR = D_x_plus_wr_d(CD_x->GetComp(0), factor, *wr_d); } else { D_xR = D_x_plus_wr_d(NULL, factor, *wr_d); } } else { // Looks like limited memory quasi-Newton stuff const LowRankUpdateSymMatrix* LR_W = static_cast(GetRawPtr(CW->GetComp(0,0))); DBG_ASSERT(LR_W); h_orig = LR_W; if (IsValid(CD_x)) { D_xR = CD_x->GetComp(0); } else { D_xR = NULL; } } Number delta_xR = delta_x; SmartPtr D_sR = D_s; Number delta_sR = delta_s; SmartPtr J_cR = CJ_c->GetComp(0,0); SmartPtr D_cR = Neg_Omega_c_plus_D_c(sigma_tilde_n_c_inv, sigma_tilde_p_c_inv, D_c, rhs_c); DBG_PRINT((1,"D_cR tag = (%p,%d)\n", D_cR->GetTag().first, D_cR->GetTag().second)); Number delta_cR = delta_c; SmartPtr J_dR = CJ_d->GetComp(0,0); SmartPtr D_dR = Neg_Omega_d_plus_D_d(*pd_l, sigma_tilde_n_d_inv, *neg_pd_u, sigma_tilde_p_d_inv, D_d, rhs_d); Number delta_dR = delta_d; SmartPtr rhs_xR = Crhs_x->GetComp(0); SmartPtr rhs_sR = &rhs_s; SmartPtr rhs_cR = Rhs_cR(rhs_c, sigma_tilde_n_c_inv, *Crhs_x->GetComp(1), sigma_tilde_p_c_inv, *Crhs_x->GetComp(2)); SmartPtr rhs_dR = Rhs_dR(rhs_d, sigma_tilde_n_d_inv, *Crhs_x->GetComp(3), *pd_l, sigma_tilde_p_d_inv, *Crhs_x->GetComp(4), *neg_pd_u); SmartPtr sol_xR = Csol_x->GetCompNonConst(0); Vector& sol_sR = sol_s; Vector& sol_cR = sol_c; Vector& sol_dR = sol_d; ESymSolverStatus status = orig_aug_solver_->Solve(GetRawPtr(h_orig), orig_W_factor, GetRawPtr(D_xR), delta_xR, GetRawPtr(D_sR), delta_sR, GetRawPtr(J_cR), GetRawPtr(D_cR), delta_cR, GetRawPtr(J_dR), GetRawPtr(D_dR), delta_dR, *rhs_xR, *rhs_sR, *rhs_cR, *rhs_dR, *sol_xR, sol_sR, sol_cR, sol_dR, check_NegEVals, numberOfNegEVals); if (status == SYMSOLVER_SUCCESS) { // Now back out the solutions for the n and p variables SmartPtr sol_n_c = Csol_x->GetCompNonConst(1); sol_n_c->Set(0.0); if (IsValid(sigma_tilde_n_c_inv)) { sol_n_c->AddTwoVectors(1., *Crhs_x->GetComp(1), -1.0, sol_cR, 0.); sol_n_c->ElementWiseMultiply(*sigma_tilde_n_c_inv); } SmartPtr sol_p_c = Csol_x->GetCompNonConst(2); sol_p_c->Set(0.0); if (IsValid(sigma_tilde_p_c_inv)) { DBG_PRINT_VECTOR(2, "rhs_pc", *Crhs_x->GetComp(2)); DBG_PRINT_VECTOR(2, "delta_y_c", sol_cR); DBG_PRINT_VECTOR(2, "Sig~_{p_c}^{-1}", *sigma_tilde_p_c_inv); sol_p_c->AddTwoVectors(1., *Crhs_x->GetComp(2), 1.0, sol_cR, 0.); sol_p_c->ElementWiseMultiply(*sigma_tilde_p_c_inv); } SmartPtr sol_n_d = Csol_x->GetCompNonConst(3); sol_n_d->Set(0.0); if (IsValid(sigma_tilde_n_d_inv)) { pd_l->TransMultVector(-1.0, sol_dR, 0.0, *sol_n_d); sol_n_d->Axpy(1.0, *Crhs_x->GetComp(3)); sol_n_d->ElementWiseMultiply(*sigma_tilde_n_d_inv); } SmartPtr sol_p_d = Csol_x->GetCompNonConst(4); sol_p_d->Set(0.0); if (IsValid(sigma_tilde_p_d_inv)) { neg_pd_u->TransMultVector(-1.0, sol_dR, 0.0, *sol_p_d); sol_p_d->Axpy(1.0, *Crhs_x->GetComp(4)); sol_p_d->ElementWiseMultiply(*sigma_tilde_p_d_inv); } } return status; } SmartPtr AugRestoSystemSolver::Neg_Omega_c_plus_D_c( const SmartPtr& sigma_tilde_n_c_inv, const SmartPtr& sigma_tilde_p_c_inv, const Vector* D_c, const Vector& any_vec_in_c) { DBG_START_METH("AugRestoSystemSolver::Neg_Omega_c_plus_D_c",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_tilde_n_c_inv) || IsValid(sigma_tilde_p_c_inv) || D_c) { if (!neg_omega_c_plus_D_c_cache_. GetCachedResult3Dep(retVec, GetRawPtr(sigma_tilde_n_c_inv), GetRawPtr(sigma_tilde_p_c_inv), D_c)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_c.MakeNew(); Number fact1, fact2; SmartPtr v1; SmartPtr v2; if (IsValid(sigma_tilde_n_c_inv)) { v1 = sigma_tilde_n_c_inv; fact1 = -1.; } else { v1 = &any_vec_in_c; fact1 = 0.; } if (IsValid(sigma_tilde_p_c_inv)) { v2 = sigma_tilde_p_c_inv; fact2 = -1.; } else { v2 = &any_vec_in_c; fact2 = 0.; } retVec->AddTwoVectors(fact1, *v1, fact2, *v2, 0.); if (D_c) { retVec->Axpy(1.0, *D_c); } neg_omega_c_plus_D_c_cache_. AddCachedResult3Dep(retVec, GetRawPtr(sigma_tilde_n_c_inv), GetRawPtr(sigma_tilde_p_c_inv), D_c); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Neg_Omega_d_plus_D_d( const Matrix& Pd_L, const SmartPtr& sigma_tilde_n_d_inv, const Matrix& neg_Pd_U, const SmartPtr& sigma_tilde_p_d_inv, const Vector* D_d, const Vector& any_vec_in_d) { DBG_START_METH("AugRestoSystemSolver::Neg_Omega_d_plus_D_d",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_tilde_n_d_inv) || IsValid(sigma_tilde_p_d_inv) || D_d) { std::vector deps(5); std::vector scalar_deps; deps[0] = &Pd_L; deps[1] = GetRawPtr(sigma_tilde_n_d_inv); deps[2] = &neg_Pd_U; deps[3] = GetRawPtr(sigma_tilde_p_d_inv); deps[4] = D_d; if (!neg_omega_d_plus_D_d_cache_. GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_d.MakeNew(); retVec->Set(0.0); if (IsValid(sigma_tilde_n_d_inv)) { Pd_L.MultVector(-1.0, *sigma_tilde_n_d_inv, 1.0, *retVec); } if (IsValid(sigma_tilde_p_d_inv)) { neg_Pd_U.MultVector(1.0, *sigma_tilde_p_d_inv, 1.0, *retVec); } if (D_d) { retVec->Copy(*D_d); } neg_omega_d_plus_D_d_cache_. AddCachedResult(retVec, deps, scalar_deps); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Sigma_tilde_n_c_inv( const SmartPtr& sigma_n_c, Number delta_x, const Vector& any_vec_in_c) { DBG_START_METH("AugRestoSystemSolver::Sigma_tilde_n_c_inv",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_n_c) || delta_x != 0.0) { std::vector deps(1); std::vector scalar_deps(1); deps[0] = GetRawPtr(sigma_n_c); scalar_deps[0] = delta_x; if (!sigma_tilde_n_c_inv_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_c.MakeNew(); if (IsValid(sigma_n_c)) { if (delta_x != 0.) { retVec->Copy(*sigma_n_c); retVec->AddScalar(delta_x); retVec->ElementWiseReciprocal(); } else { // Given a "homogenous vector" implementation (such as in // DenseVector) the following should be more efficient retVec->Set(1.); retVec->ElementWiseDivide(*sigma_n_c); } } else { retVec->Set(1./delta_x); } sigma_tilde_n_c_inv_cache_.AddCachedResult(retVec, deps, scalar_deps); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Sigma_tilde_p_c_inv( const SmartPtr& sigma_p_c, Number delta_x, const Vector& any_vec_in_c) { DBG_START_METH("AugRestoSystemSolver::Sigma_tilde_p_c_inv",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_p_c) || delta_x != 0.0) { std::vector deps(1); std::vector scalar_deps(1); deps[0] = GetRawPtr(sigma_p_c); scalar_deps[0] = delta_x; if (!sigma_tilde_p_c_inv_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_c.MakeNew(); if (IsValid(sigma_p_c)) { if (delta_x != 0.) { retVec->Copy(*sigma_p_c); retVec->AddScalar(delta_x); retVec->ElementWiseReciprocal(); } else { retVec->Set(1.); retVec->ElementWiseDivide(*sigma_p_c); } } else { retVec->Set(1./delta_x); } sigma_tilde_p_c_inv_cache_.AddCachedResult(retVec, deps, scalar_deps); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Sigma_tilde_n_d_inv( const SmartPtr& sigma_n_d, Number delta_x, const Vector& any_vec_in_n_d) { DBG_START_METH("AugRestoSystemSolver::Sigma_tilde_n_d_inv",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_n_d) || delta_x != 0) { std::vector deps(1); std::vector scalar_deps(1); deps[0] = GetRawPtr(sigma_n_d); scalar_deps[0] = delta_x; if (!sigma_tilde_n_d_inv_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_n_d.MakeNew(); if (IsValid(sigma_n_d)) { if (delta_x != 0.) { retVec->Copy(*sigma_n_d); retVec->AddScalar(delta_x); retVec->ElementWiseReciprocal(); } else { retVec->Set(1.); retVec->ElementWiseDivide(*sigma_n_d); } } else { retVec->Set(1./delta_x); } sigma_tilde_n_d_inv_cache_.AddCachedResult(retVec, deps, scalar_deps); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Sigma_tilde_p_d_inv( const SmartPtr& sigma_p_d, Number delta_x, const Vector& any_vec_in_p_d) { DBG_START_METH("AugRestoSystemSolver::Sigma_tilde_p_d_inv",dbg_verbosity); SmartPtr retVec; if (IsValid(sigma_p_d) || delta_x != 0) { std::vector deps(1); std::vector scalar_deps(1); deps[0] = GetRawPtr(sigma_p_d); scalar_deps[0] = delta_x; if (!sigma_tilde_p_d_inv_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = any_vec_in_p_d.MakeNew(); if (IsValid(sigma_p_d)) { if (delta_x != 0.) { retVec->Copy(*sigma_p_d); retVec->AddScalar(delta_x); retVec->ElementWiseReciprocal(); } else { retVec->Set(1.); retVec->ElementWiseDivide(*sigma_p_d); } } else { retVec->Set(1./delta_x); } sigma_tilde_p_d_inv_cache_.AddCachedResult(retVec, deps, scalar_deps); } } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::D_x_plus_wr_d( const SmartPtr& CD_x0, Number factor, const Vector& wr_d) { DBG_START_METH("AugRestoSystemSolver::D_x_plus_wr_d",dbg_verbosity); SmartPtr retVec; std::vector deps(2); deps[0] = &wr_d; if (IsValid(CD_x0)) { deps[1] = GetRawPtr(CD_x0); } else { deps[1] = NULL; } std::vector scalar_deps(1); scalar_deps[0] = factor; if (!d_x_plus_wr_d_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = wr_d.MakeNew(); Number fact; SmartPtr v; if (IsValid(CD_x0)) { fact = 1.; v = CD_x0; } else { fact = 0.; v = &wr_d; } retVec->AddTwoVectors(factor, wr_d, fact, *v, 0.); d_x_plus_wr_d_cache_.AddCachedResult(retVec, deps, scalar_deps); } DBG_PRINT_VECTOR(2, "retVec", *retVec); return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Rhs_cR(const Vector& rhs_c, const SmartPtr& sigma_tilde_n_c_inv, const Vector& rhs_n_c, const SmartPtr& sigma_tilde_p_c_inv, const Vector& rhs_p_c) { DBG_START_METH("AugRestoSystemSolver::Rhs_cR",dbg_verbosity); SmartPtr retVec; std::vector deps(5); std::vector scalar_deps; deps[0] = &rhs_c; deps[1] = GetRawPtr(sigma_tilde_n_c_inv); deps[2] = &rhs_n_c; deps[3] = GetRawPtr(sigma_tilde_p_c_inv); deps[4] = &rhs_p_c; if (!rhs_cR_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = rhs_c.MakeNew(); retVec->Copy(rhs_c); SmartPtr tmp = retVec->MakeNew(); if (IsValid(sigma_tilde_n_c_inv)) { tmp->Copy(*sigma_tilde_n_c_inv); tmp->ElementWiseMultiply(rhs_n_c); retVec->Axpy(-1.0, *tmp); } if (IsValid(sigma_tilde_p_c_inv)) { tmp->Copy(*sigma_tilde_p_c_inv); tmp->ElementWiseMultiply(rhs_p_c); retVec->Axpy(1.0, *tmp); } rhs_cR_cache_.AddCachedResult(retVec, deps, scalar_deps); } return ConstPtr(retVec); } SmartPtr AugRestoSystemSolver::Rhs_dR(const Vector& rhs_d, const SmartPtr& sigma_tilde_n_d_inv, const Vector& rhs_n_d, const Matrix& pd_L, const SmartPtr& sigma_tilde_p_d_inv, const Vector& rhs_p_d, const Matrix& neg_pd_U) { DBG_START_METH("AugRestoSystemSolver::Rhs_dR",dbg_verbosity); SmartPtr retVec; std::vector deps(7); std::vector scalar_deps; deps[0] = &rhs_d; deps[1] = GetRawPtr(sigma_tilde_n_d_inv); deps[2] = &rhs_n_d; deps[3] = &pd_L; deps[4] = GetRawPtr(sigma_tilde_p_d_inv); deps[5] = &rhs_p_d; deps[6] = &neg_pd_U; if (!rhs_dR_cache_.GetCachedResult(retVec, deps, scalar_deps)) { DBG_PRINT((1,"Not found in cache\n")); retVec = rhs_d.MakeNew(); retVec->Copy(rhs_d); if (IsValid(sigma_tilde_n_d_inv)) { SmartPtr tmpn = sigma_tilde_n_d_inv->MakeNew(); tmpn->Copy(*sigma_tilde_n_d_inv); tmpn->ElementWiseMultiply(rhs_n_d); pd_L.MultVector(-1.0, *tmpn, 1.0, *retVec); } if (IsValid(sigma_tilde_p_d_inv)) { SmartPtr tmpp = sigma_tilde_p_d_inv->MakeNew(); tmpp->Copy(*sigma_tilde_p_d_inv); tmpp->ElementWiseMultiply(rhs_p_d); neg_pd_U.MultVector(-1.0, *tmpp, 1.0, *retVec); } rhs_dR_cache_.AddCachedResult(retVec, deps, scalar_deps); } return ConstPtr(retVec); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptNLP.hpp0000644000076600007660000002276211504216567017650 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIPOPTNLP_HPP__ #define __IPIPOPTNLP_HPP__ #include "IpNLP.hpp" #include "IpJournalist.hpp" #include "IpNLPScaling.hpp" namespace Ipopt { // forward declarations class IteratesVector; /** This is the abstract base class for classes that map * the traditional NLP into * something that is more useful by Ipopt. * This class takes care of storing the * calculated model results, handles cacheing, * and (some day) takes care of addition of slacks. */ class IpoptNLP : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ IpoptNLP(const SmartPtr nlp_scaling) : nlp_scaling_(nlp_scaling) {} /** Default destructor */ virtual ~IpoptNLP() {} //@} /** Initialization method. Set the internal options and * initialize internal data structures. */ virtual bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { bool ret = true; if (IsValid(nlp_scaling_)) { ret = nlp_scaling_->Initialize(jnlst, options, prefix); } return ret; } /**@name Possible Exceptions */ //@{ /** thrown if there is any error evaluating values from the nlp */ DECLARE_STD_EXCEPTION(Eval_Error); //@} /** Initialize (create) structures for * the iteration data */ virtual bool InitializeStructures(SmartPtr& x, bool init_x, SmartPtr& y_c, bool init_y_c, SmartPtr& y_d, bool init_y_d, SmartPtr& z_L, bool init_z_L, SmartPtr& z_U, bool init_z_U, SmartPtr& v_L, SmartPtr& v_U ) = 0; /** Method accessing the GetWarmStartIterate of the NLP */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate)=0; /** Accessor methods for model data */ //@{ /** Objective value */ virtual Number f(const Vector& x) = 0; /** Gradient of the objective */ virtual SmartPtr grad_f(const Vector& x) = 0; /** Equality constraint residual */ virtual SmartPtr c(const Vector& x) = 0; /** Jacobian Matrix for equality constraints */ virtual SmartPtr jac_c(const Vector& x) = 0; /** Inequality constraint residual (reformulated * as equalities with slacks */ virtual SmartPtr d(const Vector& x) = 0; /** Jacobian Matrix for inequality constraints */ virtual SmartPtr jac_d(const Vector& x) = 0; /** Hessian of the Lagrangian */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd ) = 0; /** Lower bounds on x */ virtual SmartPtr x_L() const = 0; /** Permutation matrix (x_L_ -> x) */ virtual SmartPtr Px_L() const = 0; /** Upper bounds on x */ virtual SmartPtr x_U() const = 0; /** Permutation matrix (x_U_ -> x */ virtual SmartPtr Px_U() const = 0; /** Lower bounds on d */ virtual SmartPtr d_L() const = 0; /** Permutation matrix (d_L_ -> d) */ virtual SmartPtr Pd_L() const = 0; /** Upper bounds on d */ virtual SmartPtr d_U() const = 0; /** Permutation matrix (d_U_ -> d */ virtual SmartPtr Pd_U() const = 0; /** Accessor method to obtain the MatrixSpace for the Hessian * matrix (or it's approximation) */ virtual SmartPtr HessianMatrixSpace() const = 0; //@} /** Accessor method for vector/matrix spaces pointers. */ virtual void GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space) = 0; /** Method for adapting the variable bounds. This is called if * slacks are becoming too small */ virtual void AdjustVariableBounds(const Vector& new_x_L, const Vector& new_x_U, const Vector& new_d_L, const Vector& new_d_U)=0; /** @name Counters for the number of function evaluations. */ //@{ virtual Index f_evals() const = 0; virtual Index grad_f_evals() const = 0; virtual Index c_evals() const = 0; virtual Index jac_c_evals() const = 0; virtual Index d_evals() const = 0; virtual Index jac_d_evals() const = 0; virtual Index h_evals() const = 0; //@} /** @name Special method for dealing with the fact that the * restoration phase objective function depends on the barrier * parameter */ //@{ /** Method for telling the IpoptCalculatedQuantities class whether * the objective function depends on the barrier function. This * is only used for the restoration phase NLP * formulation. Probably only RestoIpoptNLP should overwrite * this. */ virtual bool objective_depends_on_mu() const { return false; } /** Replacement for the default objective function method which * knows about the barrier parameter */ virtual Number f(const Vector& x, Number mu) = 0; /** Replacement for the default objective gradient method which * knows about the barrier parameter */ virtual SmartPtr grad_f(const Vector& x, Number mu) = 0; /** Replacement for the default Lagrangian Hessian method which * knows about the barrier parameter */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, Number mu) = 0; /** Provides a Hessian matrix from the correct matrix space with * uninitialized values. This can be used in LeastSquareMults to * obtain a "zero Hessian". */ virtual SmartPtr uninitialized_h() = 0; //@} /**@name solution routines */ //@{ virtual void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq)=0; virtual bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr ip_data, SmartPtr ip_cq)=0; //@} /** Returns the scaling strategy object */ SmartPtr NLP_scaling() const { DBG_ASSERT(IsValid(nlp_scaling_)); return nlp_scaling_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IpoptNLP(const IpoptNLP&); /** Overloaded Equals Operator */ void operator=(const IpoptNLP&); //@} SmartPtr nlp_scaling_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDPerturbationHandler.hpp0000644000076600007660000001632111504216567022375 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDPerturbationHandler.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-04 #ifndef __IPPDPERTURBATIONHANDLER_HPP__ #define __IPPDPERTURBATIONHANDLER_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Class for handling the perturbation factors delta_x, delta_s, * delta_c, and delta_d in the primal dual system. This class is * used by the PDFullSpaceSolver to handle the cases where the * primal-dual system is singular or has the wrong inertia. The * perturbation factors are obtained based on simple heuristics, * taking into account the size of previous perturbations. */ class PDPerturbationHandler: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ PDPerturbationHandler(); /** Default destructor */ virtual ~PDPerturbationHandler() {} //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** This method must be called for each new matrix, and before any * other method for generating perturbation factors. Usually, * the returned perturbation factors are zero, but if the system * is thought to be structurally singular, they might be * positive. If the return value is false, no suitable * perturbation could be found. */ virtual bool ConsiderNewSystem(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method returns pertubation factors for the case when the * most recent factorization resulted in a singular matrix. If * the return value is false, no suitable perturbation could be * found. */ virtual bool PerturbForSingularity(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method returns pertubation factors for the case when the * most recent factorization resulted in a matrix with an * incorrect number of negative eigenvalues. If the return value * is false, no suitable perturbation could be found. */ virtual bool PerturbForWrongInertia(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** Just return the perturbation values that have been determined * most recently */ virtual void CurrentPerturbation(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ PDPerturbationHandler(const PDPerturbationHandler&); /** Overloaded Equals Operator */ void operator=(const PDPerturbationHandler&); //@} /** @name Size of the most recent non-zero perturbation. */ //@{ /** The last nonzero value for delta_x */ Number delta_x_last_; /** The last nonzero value for delta_s */ Number delta_s_last_; /** The last nonzero value for delta_c */ Number delta_c_last_; /** The last nonzero value for delta_d */ Number delta_d_last_; //@} /** @name Size of the most recently suggested perturbation for the * current matrix. */ //@{ /** The current value for delta_x */ Number delta_x_curr_; /** The current value for delta_s */ Number delta_s_curr_; /** The current value for delta_c */ Number delta_c_curr_; /** The current value for delta_d */ Number delta_d_curr_; //@} /** Flag indicating if for the given matrix the perturb for wrong * inertia method has already been called. */ bool get_deltas_for_wrong_inertia_called_; /** @name Handling structural degeneracy */ //@{ /** Type for degeneracy flags */ enum DegenType { NOT_YET_DETERMINED, NOT_DEGENERATE, DEGENERATE }; /** Flag indicating whether the reduced Hessian matrix is thought * to be structurally singular. */ DegenType hess_degenerate_; /** Flag indicating whether the Jacobian of the constraints is * thought to be structurally rank-deficient. */ DegenType jac_degenerate_; /** Flag counting matrices in which degeneracy was observed in the * first successive iterations. -1 means that there was a * non-degenerate (unperturbed) matrix at some point. */ Index degen_iters_; /** Status of current trial configuration */ enum TrialStatus { NO_TEST, TEST_DELTA_C_EQ_0_DELTA_X_EQ_0, TEST_DELTA_C_GT_0_DELTA_X_EQ_0, TEST_DELTA_C_EQ_0_DELTA_X_GT_0, TEST_DELTA_C_GT_0_DELTA_X_GT_0 }; /** Current status */ TrialStatus test_status_; //@} /** @name Algorithmic parameters. */ //@{ /** Maximal perturbation for x and s. */ Number delta_xs_max_; /** Smallest possible perturbation for x and s. */ Number delta_xs_min_; /** Increase factor for delta_xs for first required perturbation. */ Number delta_xs_first_inc_fact_; /** Increase factor for delta_xs for later perturbations. */ Number delta_xs_inc_fact_; /** Decrease factor for delta_xs for later perturbations. */ Number delta_xs_dec_fact_; /** Very first trial value for delta_xs perturbation. */ Number delta_xs_init_; /** Size of perturbation for c and d blocks. */ Number delta_cd_val_; /** Exponent on mu in formula for of perturbation for c and d blocks. */ Number delta_cd_exp_; /** Flag indicating whether the new values are based on the * perturbations in the last iteration or in the more recent * iteration in which a perturbation was done. */ bool reset_last_; /** Required number of iterations for degeneracy conclusions. */ Index degen_iters_max_; /** Flag indicating that the delta_c, delta_d perturbation should * always be used */ bool perturb_always_cd_; //@} /** @name Auxilliary methods */ //@{ /** Internal version of PerturbForWrongInertia with the * difference, that finalize_test is not called. Returns false * if the delta_x and delta_s parameters become too large. */ bool get_deltas_for_wrong_inertia(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d); /** This method is call whenever a matrix had been factorization * and is not singular. In here, we can evaluate the outcome of * the deneracy test heuristics. */ void finalize_test(); /** Compute perturbation value for constraints */ Number delta_cd(); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpBacktrackingLineSearch.hpp0000644000076600007660000003550511504216567022523 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpBacktrackingLineSearch.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.hpp #ifndef __IPBACKTRACKINGLINESEARCH_HPP__ #define __IPBACKTRACKINGLINESEARCH_HPP__ #include "IpLineSearch.hpp" #include "IpBacktrackingLSAcceptor.hpp" #include "IpRestoPhase.hpp" #include "IpConvCheck.hpp" namespace Ipopt { /** General implementation of a backtracking line search. This * class can be used to perform the filter line search procedure or * other procedures. The BacktrackingLSAcceptor is used to * determine whether trial points are acceptable (e.g., based on a * filter or other methods). * * This backtracking line search knows of a restoration phase * (which is called when the trial step size becomes too small or * no search direction could be computed). It also has the notion * of a "soft restoration phase," which uses the regular steps but * decides on the acceptability based on other measures than the * regular ones (e.g., reduction of the PD error instead of * acceptability to a filter mechanism). */ class BacktrackingLineSearch : public LineSearch { public: /**@name Constructors/Destructors */ //@{ /** Constructor. The acceptor implements the acceptance test for * the line search. The ConvergenceCheck object is used to determine * whether the current iterate is acceptable (for example, the * restoration phase is not started if the acceptability level * has been reached). If conv_check is NULL, we assume that the * current iterate is not acceptable (in the sense of the * acceptable_tol option). */ BacktrackingLineSearch(const SmartPtr& acceptor, const SmartPtr& resto_phase, const SmartPtr& conv_check ); /** Default destructor */ virtual ~BacktrackingLineSearch(); //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Perform the line search. It is assumed that the search * direction is computed in the data object. */ virtual void FindAcceptableTrialPoint(); /** Reset the line search. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset(); /** Set flag indicating whether a very rigorous line search should * be performed. If this flag is set to true, the line search * algorithm might decide to abort the line search and not to * accept a new iterate. If the line search decided not to * accept a new iterate, the return value of * CheckSkippedLineSearch() is true at the next call. For * example, in the non-monotone barrier parameter update * procedure, the filter algorithm should not switch to the * restoration phase in the free mode; instead, the algorithm * should swtich to the fixed mode. */ virtual void SetRigorousLineSearch(bool rigorous) { rigorous_ = rigorous; } /** Check if the line search procedure didn't accept a new iterate * during the last call of FindAcceptableTrialPoint(). * */ virtual bool CheckSkippedLineSearch() { return skipped_line_search_; } /** Activate fallback mechanism. Return false, if that is not * possible. */ virtual bool ActivateFallbackMechanism(); /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ BacktrackingLineSearch(const BacktrackingLineSearch&); /** Overloaded Equals Operator */ void operator=(const BacktrackingLineSearch&); //@} /** Method performing the backtracking line search. The return * value indicates if the step acceptance criteria are met. If * the watchdog is active, only one trial step is performed (and * the trial values are set accordingly). */ bool DoBacktrackingLineSearch(bool skip_first_trial_point, Number& alpha_primal, bool& corr_taken, bool& soc_taken, Index& n_steps, bool& evaluation_error, SmartPtr& actual_delta); /** Method for starting the watch dog. Set all appropriate fields * accordingly */ void StartWatchDog(); /** Method for stopping the watch dog. Set all appropriate fields * accordingly. */ void StopWatchDog(SmartPtr& actual_delta); /** Method for checking if current trial point is acceptable. * It is assumed that the delta information in ip_data is the * search direction used in criteria. The primal trial point has * to be set before the call. */ bool CheckAcceptabilityOfTrialPoint(Number alpha_primal); /** Method for setting the dual variables in the trial fields in * IpData, given the search direction. The step size for the * bound multipliers is alpha_dual (the fraction-to-the-boundary * step size), and the step size for the equality constraint * multipliers depends on the choice of alpha_for_y. */ void PerformDualStep(Number alpha_primal, Number alpha_dual, SmartPtr& delta); /** Try a step for the soft restoration phase and check if it is * acceptable. The step size is identical for all variables. A * point is accepted if it is acceptable for the original * acceptability criterion (in which case * satisfies_original_criterion = true on return), or if the * primal-dual system error was decrease by at least the factor * soft_resto_pderror_reduction_factor_. The return value is * true, if the trial point was acceptable for the soft * restoration phase. */ bool TrySoftRestoStep(SmartPtr& actual_delta, bool &satisfies_original_criterion); /** Try a second order correction for the constraints. If the * first trial step (with incoming alpha_primal) has been reject, * this tries up to max_soc_ second order corrections for the * constraints. Here, alpha_primal_test is the step size that * has to be used in the filter acceptance tests. On output * actual_delta_... has been set to the steps including the * second order correction if it has been accepted, otherwise it * is unchanged. If the SOC step has been accepted, alpha_primal * has the fraction-to-the-boundary value for the SOC step on output. * The return value is true, if an SOC step has been accepted. */ bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Perform magic steps. Take the current values of the slacks in * trial and replace them by better ones that lead to smaller * values of the barrier function and less constraint * violation. */ void PerformMagicStep(); /** Detect if the search direction is too small. This should be * true if the search direction is so small that if makes * numerically no difference. */ bool DetectTinyStep(); /** Store current iterate as acceptable point */ void StoreAcceptablePoint(); /** Restore acceptable point into the current fields of IpData if * found. Returns true if such as point is available. */ bool RestoreAcceptablePoint(); /** Method for determining if the current iterate is acceptable * (in the sense of the acceptable_tol options). This is a * wrapper for same method from ConvergenceCheck, but returns * false, if no ConvergenceCheck object is provided. */ bool CurrentIsAcceptable(); /** @name Parameters for the filter algorithm. Names as in the paper */ //@{ /** factor by which search direction is to be shortened if trial * point is rejected. */ Number alpha_red_factor_; /** enumeration for the different alpha_for_y_ settings */ enum AlphaForYEnum { PRIMAL_ALPHA_FOR_Y=0, DUAL_ALPHA_FOR_Y, MIN_ALPHA_FOR_Y, MAX_ALPHA_FOR_Y, FULL_STEP_FOR_Y, MIN_DUAL_INFEAS_ALPHA_FOR_Y, SAFE_MIN_DUAL_INFEAS_ALPHA_FOR_Y, PRIMAL_AND_FULL_ALPHA_FOR_Y, DUAL_AND_FULL_ALPHA_FOR_Y, LSACCEPTOR_ALPHA_FOR_Y }; /** Flag indicating whether the dual step size is to be used for * the equality constraint multipliers. If 0, the primal step * size is used, if 1 the dual step size, and if 2, the minimum * of both. */ AlphaForYEnum alpha_for_y_; /** Tolerance for primal step to switch to full equality * constraint multiplier steps. */ Number alpha_for_y_tol_; /** Reduction factor for the restoration phase that accepts steps * reducing the optimality error ("soft restoration phase"). If * 0., then this restoration phase is not enabled. */ Number soft_resto_pderror_reduction_factor_; /** Maximal number of iterations that can be done in the soft * iteration phase before the algorithm reverts to the regular * restoration phase. */ Index max_soft_resto_iters_; /** Flag indicating whether magic steps should be used. */ bool magic_steps_; /** Flag indicating whether the line search should always accept * the full (fraction-to-the-boundary) step. */ bool accept_every_trial_step_; /** Maximal number of trial steps before we blindly accept trial * point. If set to value other than -1, we accept a trial point * even if it is not satisfying acceptance criteria. */ Index accept_after_max_steps_; /** Indicates whether problem can be expected to be infeasible. * This will trigger requesting a tighter reduction in * infeasibility the first time the restoration phase is * called. */ bool expect_infeasible_problem_; /** Tolerance on constraint violation for * expect_infeasible_problem heuristic. If the constraint * violation becomes that than this value, the heuristic is * disabled for the rest of the optimization run. */ Number expect_infeasible_problem_ctol_; /** Trigger tolerance on constraint multipliers. If * expect_infeasible_problem is chosen, and the multipliers * become larger in max-norm than this value, the restoration * phase is triggered. */ Number expect_infeasible_problem_ytol_; /** Tolerance for detecting tiny steps. */ Number tiny_step_tol_; /** Tolerance for y variables for the tiny step stopping * heuristic. If repeatedly a tiny step is detected and the step * in the y_c and y_d variables is less than this threshold, we * algorithm will stop. */ Number tiny_step_y_tol_; /** Number of watch dog trial steps. */ Index watchdog_trial_iter_max_; /** Number of shortened iterations that trigger the watchdog. */ Index watchdog_shortened_iter_trigger_; /** Indicates whether the algorithm should start directly with the * restoratin phase */ bool start_with_resto_; //@} /** @name Information related to watchdog procedure */ //@{ /** Flag indicating if the watchdog is active */ bool in_watchdog_; /** Counter for shortened iterations. */ Index watchdog_shortened_iter_; /** Counter for watch dog iterations */ Index watchdog_trial_iter_; /** Step size for Armijo test in watch dog */ Number watchdog_alpha_primal_test_; /** Watchdog reference iterate */ SmartPtr watchdog_iterate_; /** Watchdog search direction at reference point */ SmartPtr watchdog_delta_; /** Barrier parameter value during last line search */ Number last_mu_; //@} /** @name Storage for last iterate that satisfies the acceptable * level of optimality error. */ //@{ SmartPtr acceptable_iterate_; Index acceptable_iteration_number_; //@} /** Flag indicating whether the algorithm has asked to immediately * switch to the fallback mechanism (restoration phase) */ bool fallback_activated_; /** Flag indicating whether the line search is to be performed * robust (usually this is true, unless SetRigorousLineSearch is * called with false). */ bool rigorous_; /** Flag indicating whether no acceptable trial point was found * during last line search. */ bool skipped_line_search_; /** Flag indicating whether we are currently in the "soft" * restoration phase mode, in which steps are accepted if they * reduce the optimality error (see * soft_resto_pderror_reduction_factor) */ bool in_soft_resto_phase_; /** Counter for iteration performed in soft restoration phase in a * row */ Index soft_resto_counter_; /** Counter for the number of successive iterations in which the * full step was not accepted. */ Index count_successive_shortened_steps_; /** Flag indicating if a tiny step was detected in previous * iteration */ bool tiny_step_last_iteration_; /** @name Strategy objective that are used */ //@{ SmartPtr acceptor_; SmartPtr resto_phase_; SmartPtr conv_check_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptData.cpp0000644000076600007660000001756312141450650020055 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptData.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpIpoptData.hpp" #include "IpIpoptNLP.hpp" namespace Ipopt { IpoptData::IpoptData(SmartPtr add_data /*= NULL*/, Number cpu_time_start /*= -1.*/) : cpu_time_start_(cpu_time_start), add_data_(add_data) {} IpoptData::~IpoptData() {} void IpoptData::RegisterOptions(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Convergence"); roptions->AddLowerBoundedNumberOption( "tol", "Desired convergence tolerance (relative).", 0.0, true, 1e-8, "Determines the convergence tolerance for the algorithm. The " "algorithm terminates successfully, if the (scaled) NLP error " "becomes smaller than this value, and if the (absolute) criteria " "according to \"dual_inf_tol\", \"primal_inf_tol\", and " "\"compl_inf_tol\" are met. (This is epsilon_tol in Eqn. (6) in " "implementation paper). See also \"acceptable_tol\" as a second " "termination criterion. Note, some other algorithmic features also use " "this quantity to determine thresholds etc."); } bool IpoptData::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { #if 0 // I (AW) took the following heuristic out again, since it seemed // that the restoration phase tolerance became too tight by // default. I originally probably put it in to avoid that a claim // of infeasibility is made prematurely... let's see if someone // starts screaming... if (prefix=="resto.") { // The default for the restoration phase is 1e-2 time the value // for the regular algorithm if (!options.GetNumericValue("resto.tol", tol_, "")) { options.GetNumericValue("tol", tol_, prefix); tol_ *= 1e-2; } } else { options.GetNumericValue("tol", tol_, prefix); } #else options.GetNumericValue("tol", tol_, prefix); #endif iter_count_ = 0; curr_mu_ = -1.; mu_initialized_ = false; curr_tau_ = -1.; tau_initialized_ = false; have_prototypes_ = false; have_deltas_ = false; have_affine_deltas_ = false; free_mu_mode_ = false; tiny_step_flag_ = false; info_ls_count_ = 0; ResetInfo(); info_last_output_ = -1.; info_iters_since_header_ = 1000; // need to be larger 10 initialize_called_ = true; if (cpu_time_start_==-1.) { cpu_time_start_ = CpuTime(); } bool retval = true; if (IsValid(add_data_)) { retval = add_data_->Initialize(jnlst, options, prefix); } return retval; } bool IpoptData::InitializeDataStructures(IpoptNLP& ip_nlp, bool want_x, bool want_y_c, bool want_y_d, bool want_z_L, bool want_z_U) { DBG_ASSERT(initialize_called_); /* * Allocate space for all the required linear algebra * structures */ SmartPtr new_x; SmartPtr new_s; SmartPtr new_y_c; SmartPtr new_y_d; SmartPtr new_z_L; SmartPtr new_z_U; SmartPtr new_v_L; SmartPtr new_v_U; // Get the required linear algebra structures from the model bool retValue = ip_nlp.InitializeStructures(new_x, want_x, new_y_c, want_y_c, new_y_d, want_y_d, new_z_L, want_z_L, new_z_U, want_z_U, new_v_L, new_v_U); if (!retValue) { return false; } new_s = new_y_d->MakeNew(); // same dimension as d iterates_space_ = new IteratesVectorSpace(*(new_x->OwnerSpace()), *(new_s->OwnerSpace()), *(new_y_c->OwnerSpace()), *(new_y_d->OwnerSpace()), *(new_z_L->OwnerSpace()), *(new_z_U->OwnerSpace()), *(new_v_L->OwnerSpace()), *(new_v_U->OwnerSpace()) ); curr_ = iterates_space_->MakeNewIteratesVector(*new_x, *new_s, *new_y_c, *new_y_d, *new_z_L, *new_z_U, *new_v_L, *new_v_U); #if COIN_IPOPT_CHECKLEVEL > 0 debug_curr_tag_ = curr_->GetTag(); debug_curr_tag_sum_ = curr_->GetTagSum(); debug_trial_tag_ = TaggedObject::Tag(); debug_trial_tag_sum_ = TaggedObject::Tag(); debug_delta_tag_ = TaggedObject::Tag(); debug_delta_tag_sum_ = TaggedObject::Tag(); debug_delta_aff_tag_ = TaggedObject::Tag(); debug_delta_aff_tag_sum_ = TaggedObject::Tag(); #endif trial_ = NULL; // Set the pointers for storing steps to NULL delta_ = NULL; delta_aff_ = NULL; have_prototypes_ = true; have_deltas_ = false; have_affine_deltas_ = false; bool retval = true; if (IsValid(add_data_)) { retval = add_data_->InitializeDataStructures(); } return retval; } void IpoptData::SetTrialPrimalVariablesFromStep(Number alpha, const Vector& delta_x, const Vector& delta_s) { DBG_ASSERT(have_prototypes_); if (IsNull(trial_)) { trial_ = iterates_space_->MakeNewIteratesVector(false); } SmartPtr newvec = trial_->MakeNewContainer(); newvec->create_new_x(); newvec->x_NonConst()->AddTwoVectors(1., *curr_->x(), alpha, delta_x, 0.); newvec->create_new_s(); newvec->s_NonConst()->AddTwoVectors(1., *curr_->s(), alpha, delta_s, 0.); set_trial(newvec); } void IpoptData::SetTrialEqMultipliersFromStep(Number alpha, const Vector& delta_y_c, const Vector& delta_y_d) { DBG_ASSERT(have_prototypes_); SmartPtr newvec = trial()->MakeNewContainer(); newvec->create_new_y_c(); newvec->y_c_NonConst()->AddTwoVectors(1., *curr()->y_c(), alpha, delta_y_c, 0.); newvec->create_new_y_d(); newvec->y_d_NonConst()->AddTwoVectors(1., *curr()->y_d(), alpha, delta_y_d, 0.); set_trial(newvec); } void IpoptData::SetTrialBoundMultipliersFromStep(Number alpha, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U) { DBG_ASSERT(have_prototypes_); SmartPtr newvec = trial()->MakeNewContainer(); newvec->create_new_z_L(); newvec->z_L_NonConst()->AddTwoVectors(1., *curr()->z_L(), alpha, delta_z_L, 0.); newvec->create_new_z_U(); newvec->z_U_NonConst()->AddTwoVectors(1., *curr()->z_U(), alpha, delta_z_U, 0.); newvec->create_new_v_L(); newvec->v_L_NonConst()->AddTwoVectors(1., *curr()->v_L(), alpha, delta_v_L, 0.); newvec->create_new_v_U(); newvec->v_U_NonConst()->AddTwoVectors(1., *curr()->v_U(), alpha, delta_v_U, 0.); set_trial(newvec); } void IpoptData::AcceptTrialPoint() { DBG_ASSERT(IsValid(trial_)); DBG_ASSERT(IsValid(trial_->x())); DBG_ASSERT(IsValid(trial_->s())); DBG_ASSERT(IsValid(trial_->y_c())); DBG_ASSERT(IsValid(trial_->y_d())); DBG_ASSERT(IsValid(trial_->z_L())); DBG_ASSERT(IsValid(trial_->z_U())); DBG_ASSERT(IsValid(trial_->v_L())); DBG_ASSERT(IsValid(trial_->v_U())); CopyTrialToCurrent(); // Set trial pointers to Null (frees memory unless someone else is // still referring to it, and it makes sure that indeed all trial // values are set before a new trial point is accepted) trial_ = NULL; // Free the memory for the affine-scaling step delta_aff_ = NULL; have_deltas_ = false; have_affine_deltas_ = false; if (IsValid(add_data_)) { add_data_->AcceptTrialPoint(); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpLimMemQuasiNewtonUpdater.cpp0000644000076600007660000012535612141450650023073 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLimMemQuasiNewtonUpdater.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2005-12-26 #include "IpLimMemQuasiNewtonUpdater.hpp" #include "IpRestoIpoptNLP.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LimMemQuasiNewtonUpdater::LimMemQuasiNewtonUpdater( bool update_for_resto) : update_for_resto_(update_for_resto) {} void LimMemQuasiNewtonUpdater::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedIntegerOption( "limited_memory_max_history", "Maximum size of the history for the limited quasi-Newton Hessian approximation.", 0, 6, "This option determines the number of most recent iterations that are " "taken into account for the limited-memory quasi-Newton approximation."); roptions->AddStringOption2( "limited_memory_update_type", "Quasi-Newton update formula for the limited memory approximation.", "bfgs", "bfgs", "BFGS update (with skipping)", "sr1", "SR1 (not working well)", "Determines which update formula is to be used for the limited-memory " "quasi-Newton approximation."); roptions->AddStringOption5( "limited_memory_initialization", "Initialization strategy for the limited memory quasi-Newton approximation.", "scalar1", "scalar1", "sigma = s^Ty/s^Ts", "scalar2", "sigma = y^Ty/s^Ty", "scalar3", "arithmetic average of scalar1 and scalar2", "scalar4", "geometric average of scalar1 and scalar2", "constant", "sigma = limited_memory_init_val", "Determines how the diagonal Matrix B_0 as the first term in the " "limited memory approximation should be computed."); roptions->AddLowerBoundedNumberOption( "limited_memory_init_val", "Value for B0 in low-rank update.", 0, true, 1., "The starting matrix in the low rank update, B0, is chosen to be this " "multiple of the identity in the first iteration (when no updates have " "been performed yet), and is constantly chosen as this value, if " "\"limited_memory_initialization\" is \"constant\"."); roptions->AddLowerBoundedNumberOption( "limited_memory_init_val_max", "Upper bound on value for B0 in low-rank update.", 0, true, 1e8, "The starting matrix in the low rank update, B0, is chosen to be this " "multiple of the identity in the first iteration (when no updates have " "been performed yet), and is constantly chosen as this value, if " "\"limited_memory_initialization\" is \"constant\"."); roptions->AddLowerBoundedNumberOption( "limited_memory_init_val_min", "Lower bound on value for B0 in low-rank update.", 0, true, 1e-8, "The starting matrix in the low rank update, B0, is chosen to be this " "multiple of the identity in the first iteration (when no updates have " "been performed yet), and is constantly chosen as this value, if " "\"limited_memory_initialization\" is \"constant\"."); roptions->AddLowerBoundedIntegerOption( "limited_memory_max_skipping", "Threshold for successive iterations where update is skipped.", 1, 2, "If the update is skipped more than this number of successive " "iterations, we quasi-Newton approximation is reset."); roptions->AddStringOption2( "limited_memory_special_for_resto", "Determines if the quasi-Newton updates should be special during the restoration phase.", "no", "no", "use the same update as in regular iterations", "yes", "use the a special update during restoration phase", "Until Nov 2010, Ipopt used a special update during the restoration " "phase, but it turned out that this does not work well. The new " "default uses the regular update procedure and it improves results. If " "for some reason you want to get back to the original update, set this " "option to \"yes\"."); } bool LimMemQuasiNewtonUpdater::InitializeImpl( const OptionsList& options, const std::string& prefix) { options.GetIntegerValue("limited_memory_max_history", limited_memory_max_history_, prefix); Index enum_int; options.GetEnumValue("limited_memory_update_type", enum_int, prefix); limited_memory_update_type_ = LMUpdateType(enum_int); options.GetEnumValue("limited_memory_initialization", enum_int, prefix); limited_memory_initialization_ = LMInitialization(enum_int); options.GetNumericValue("limited_memory_init_val", limited_memory_init_val_, prefix); options.GetIntegerValue("limited_memory_max_skipping", limited_memory_max_skipping_, prefix); options.GetNumericValue("limited_memory_init_val_max", sigma_safe_max_, prefix); options.GetNumericValue("limited_memory_init_val_min", sigma_safe_min_, prefix); options.GetBoolValue("limited_memory_special_for_resto", limited_memory_special_for_resto_, prefix); h_space_ = NULL; curr_lm_memory_ = 0; S_ = NULL; Y_ = NULL; Ypart_ = NULL; D_ = NULL; L_ = NULL; sigma_ = -1; V_ = NULL; U_ = NULL; SdotS_ = NULL; SdotS_uptodate_ = false; STDRS_ = NULL; DRS_ = NULL; curr_DR_x_tag_ = TaggedObject::Tag(); last_x_ = NULL; last_grad_f_ = NULL; last_jac_c_ = NULL; last_jac_d_ = NULL; lm_skipped_iter_ = 0; last_eta_ = -1.; return true; } void LimMemQuasiNewtonUpdater::UpdateHessian() { DBG_START_METH("LimMemQuasiNewtonUpdater::UpdateHessian", dbg_verbosity); // First check if this is the first call - it is if the h_space_ // has not been set yet. if (IsNull(h_space_)) { if (update_for_resto_) { SmartPtr sp = IpNLP().HessianMatrixSpace(); const CompoundSymMatrixSpace* csp = static_cast (GetRawPtr(sp)); DBG_ASSERT(dynamic_cast (GetRawPtr(sp))); h_space_ = static_cast (GetRawPtr(csp->GetCompSpace(0,0))); } else { // ToDo don't need that?!? Can always get the space from the NLP? SmartPtr sp = IpNLP().HessianMatrixSpace(); h_space_ = static_cast(GetRawPtr(sp)); ASSERT_EXCEPTION(IsValid(h_space_), OPTION_INVALID, "Limited-memory quasi-Newton option chosen, but NLP doesn't provide LowRankUpdateSymMatrixSpace."); } DBG_ASSERT((h_space_->ReducedDiag() && !update_for_resto_) || (!h_space_->ReducedDiag() && update_for_resto_)); } SmartPtr P_LM = h_space_->P_LowRank(); SmartPtr LM_vecspace = h_space_->LowRankVectorSpace(); DBG_ASSERT(IsValid(LM_vecspace)); // If we are in the restoration phase, get some additional data // for the structured update if (update_for_resto_) { DBG_ASSERT(IpNLP().objective_depends_on_mu()); RestoIpoptNLP* resto_nlp = static_cast(&IpNLP()); DBG_ASSERT(dynamic_cast(&IpNLP())); curr_DR_x_ = resto_nlp->DR_x(); DBG_ASSERT(IsValid(curr_DR_x_)); DBG_ASSERT(curr_DR_x_tag_==TaggedObject::Tag() || curr_DR_x_tag_==curr_DR_x_->GetTag()); curr_DR_x_tag_ = curr_DR_x_->GetTag(); if (IsNull(P_LM)) { curr_red_DR_x_ = curr_DR_x_; } else { SmartPtr tmp = LM_vecspace->MakeNew(); P_LM->TransMultVector(1, *curr_DR_x_, 0., *tmp); curr_red_DR_x_ = ConstPtr(tmp); } curr_eta_ = resto_nlp->Eta(IpData().curr_mu()); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "curr_eta (for B0) is %e\n", curr_eta_); } // Get the current values SmartPtr curr_x; SmartPtr curr_grad_f; SmartPtr curr_jac_c; SmartPtr curr_jac_d; if (update_for_resto_) { const CompoundVector* cv = static_cast (GetRawPtr(IpData().curr()->x())); DBG_ASSERT(dynamic_cast (GetRawPtr(IpData().curr()->x()))); //DBG_PRINT_VECTOR(2, "cv", *cv); curr_x = cv->GetComp(0); const CompoundMatrix* cm = static_cast (GetRawPtr(IpCq().curr_jac_c())); curr_jac_c = cm->GetComp(0,0); cm = static_cast (GetRawPtr(IpCq().curr_jac_d())); curr_jac_d = cm->GetComp(0,0); } else { curr_x = IpData().curr()->x(); curr_grad_f = IpCq().curr_grad_f(); curr_jac_c = IpCq().curr_jac_c(); curr_jac_d = IpCq().curr_jac_d(); } //DBG_PRINT_VECTOR(2, "curr_x", *curr_x); // If this is the first iteration, we just gather information and // set W to be the identity matrix. if (IsNull(last_x_) || lm_skipped_iter_ >= limited_memory_max_skipping_) { if (IsNull(last_x_)) { DBG_ASSERT(IsNull(last_grad_f_)); DBG_ASSERT(IsNull(last_jac_c_)); DBG_ASSERT(IsNull(last_jac_d_)); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Limited-Memory approximation started; store data at current iterate.\n"); } else { Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Resetting Limited-Memory Update.\n"); IpData().Append_info_string("Wr"); } last_x_ = curr_x; last_grad_f_ = curr_grad_f; last_jac_c_ = curr_jac_c; last_jac_d_ = curr_jac_d; curr_lm_memory_ = 0; lm_skipped_iter_ = 0; S_ = NULL; Y_ = NULL; Ypart_ = NULL; D_ = NULL; L_ = NULL; V_ = NULL; U_ = NULL; SdotS_ = NULL; SdotS_uptodate_ = false; STDRS_ = NULL; DRS_ = NULL; last_eta_ = -1.; if (update_for_resto_ && limited_memory_special_for_resto_) { sigma_ = -1; } else { // Set up W to be multiple of I sigma_ = limited_memory_init_val_; } SetW(); return; } // Compute s and y for the current iteration // s = x_k - x_{k-1} SmartPtr s_full_new = curr_x->MakeNew(); DBG_PRINT_VECTOR(2, "last_x", *last_x_); DBG_PRINT_VECTOR(2, "curr_x", *curr_x); s_full_new->AddTwoVectors(1, *curr_x, -1, *last_x_, 0.); // y = grad_lag(x_k,y_k) - grad_lag(x_{k-1},y_k) SmartPtr y_full_new = curr_x->MakeNew(); if (update_for_resto_) { curr_jac_c->TransMultVector(1., *IpData().curr()->y_c(), 0., *y_full_new); curr_jac_d->TransMultVector(1., *IpData().curr()->y_d(), 1., *y_full_new); } else { y_full_new->AddTwoVectors(1., *IpCq().curr_grad_f(), -1, *last_grad_f_, 0.); y_full_new->AddTwoVectors(1., *IpCq().curr_jac_cT_times_curr_y_c(), 1., *IpCq().curr_jac_dT_times_curr_y_d(), 1.); } last_jac_c_->TransMultVector(-1., *IpData().curr()->y_c(), 1., *y_full_new); last_jac_d_->TransMultVector(-1., *IpData().curr()->y_d(), 1., *y_full_new); SmartPtr s_new; SmartPtr y_new; if (IsNull(P_LM)) { // Then the approximation is in the same space as x s_new = s_full_new; y_new = y_full_new; } else { s_new = LM_vecspace->MakeNew(); y_new = LM_vecspace->MakeNew(); P_LM->TransMultVector(1., *s_full_new, 0., *s_new); P_LM->TransMultVector(1., *y_full_new, 0., *y_new); } s_full_new = NULL; y_full_new = NULL; DBG_PRINT_VECTOR(2, "s_new", *s_new); DBG_PRINT_VECTOR(2, "ypart_new", *y_new); // In the restoration phase case, y_new is only the y without the // objective part, so now we add the explicitly known objective // part SmartPtr ypart_new; if (update_for_resto_) { ypart_new = y_new; y_new = ypart_new->MakeNew(); y_new->AddOneVector(curr_eta_, *s_new, 0.); y_new->ElementWiseMultiply(*curr_red_DR_x_); y_new->AddOneVector(1., *ypart_new, 1.); } bool skipping = false; bool retroactive_skip = false; // Sometimes the change in the primal variables is very small, and // we should then skip the update... // ToDo: Find good number or do relative test? Number s_new_max = s_new->Amax(); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "In limited-memory update, s_new_max is %e\n", s_new_max); if (s_new_max<100.*std::numeric_limits::epsilon()) { skipping = true; IpData().Append_info_string("WS"); } if (!skipping) { switch (limited_memory_update_type_) { case BFGS: { skipping = CheckSkippingBFGS(*s_new, *y_new); DBG_PRINT_VECTOR(2, "y_new", *y_new); if (skipping) { break; } if (update_for_resto_) { // In the restoration phase we don't know if the update has // to be skipped yet, since a change in curr_eta_ might // cause some of the s^Ty pairs to become negative. For // now, we then just skip the update and use what we had // before. // // ToDo: It would probably be better just to reset the // entire update. StoreInternalDataBackup(); } bool augment_memory = UpdateInternalData(*s_new, *y_new, ypart_new); if (update_for_resto_) { Number dmin = D_->Min(); if (dmin <= 0.) { Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Skipping BFGS update in restoration phase because Dmin is %e\n", dmin); // Check if any of the s^Ty pairs are non-positive. If so, skip IpData().Append_info_string("We"); skipping = true; RestoreInternalDataBackup(); break; } } Number sTy_new = s_new->Dot(*y_new); if (!update_for_resto_ || !limited_memory_special_for_resto_) { // Compute the initial matrix B_0 switch (limited_memory_initialization_) { case SCALAR1: sigma_ = sTy_new/pow(s_new->Nrm2(),2); break; case SCALAR2: sigma_ = pow(y_new->Nrm2(),2)/sTy_new; break; case SCALAR3: sigma_ = (sTy_new/pow(s_new->Nrm2(),2) + pow(y_new->Nrm2(),2)/sTy_new)/2.; break; case SCALAR4: sigma_ = sqrt(sTy_new/pow(s_new->Nrm2(),2) * pow(y_new->Nrm2(),2)/sTy_new); break; case CONSTANT: sigma_ = limited_memory_init_val_; break; } Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "sigma (for B0) is %e\n", sigma_); if (sigma_ < sigma_safe_min_ || sigma_ > sigma_safe_max_) { sigma_ = Max(Min(sigma_safe_max_, sigma_), sigma_safe_min_); IpData().Append_info_string("Wp"); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Projecting sigma into safeguards to be %e!\n", sigma_); } } if (limited_memory_max_history_ == 0 ) { break; } // First update V - here only the last column is updated DBG_ASSERT(sTy_new > 0.); SmartPtr v_new = y_new->MakeNewCopy(); v_new->Scal(1./sqrt(sTy_new)); if (augment_memory) { AugmentMultiVector(V_, *v_new); } else { ShiftMultiVector(V_, *v_new); } // Compute Ltilde = L * diag(D^{-1/2}); SmartPtr Dtilde = D_->MakeNewDenseVector(); Dtilde->Copy(*D_); Dtilde->ElementWiseSqrt(); Dtilde->ElementWiseReciprocal(); SmartPtr Ltilde = L_->MakeNewDenseGenMatrix(); DBG_PRINT_MATRIX(3, "D", *D_); DBG_PRINT_MATRIX(3, "L", *L_); Ltilde->Copy(*L_); Ltilde->ScaleColumns(*Dtilde); DBG_PRINT_MATRIX(3, "Ltilde", *Ltilde); // M = Ltilde * Ltilde^T SmartPtr Mspace = new DenseSymMatrixSpace(curr_lm_memory_); SmartPtr M = Mspace->MakeNewDenseSymMatrix(); M->HighRankUpdate(false, 1., *Ltilde, 0.); // M += S^T B_0 S if (!update_for_resto_ || !limited_memory_special_for_resto_) { // For now, we assume that B_0 is sigma*I DBG_ASSERT(SdotS_uptodate_); DBG_PRINT_MATRIX(3, "SdotS", *SdotS_); M->AddMatrix(sigma_, *SdotS_, 1.); } else { DBG_PRINT_MATRIX(3, "STDRS", *STDRS_); M->AddMatrix(curr_eta_, *STDRS_, 1.); } // Compute Cholesky factor J with M = J J^T DBG_PRINT_MATRIX(3, "M", *M); SmartPtr J = L_->MakeNewDenseGenMatrix(); bool cholesky_retval = J->ComputeCholeskyFactor(*M); DBG_PRINT_MATRIX(3, "J", *J); if (!cholesky_retval) { Jnlst().Printf(J_WARNING, J_HESSIAN_APPROXIMATION, "Cholesky factorization failed for LBFGS update! Skipping update.\n"); skipping = true; break; } // Compute C = J^{-T} SmartPtr C = J->MakeNewDenseGenMatrix(); C->FillIdentity(); J->CholeskyBackSolveMatrix(true, 1., *C); // Compute U = B_0 * S * C U_ = S_->MakeNewMultiVectorMatrix(); if (!update_for_resto_ || !limited_memory_special_for_resto_) { DBG_ASSERT(sigma_>0.); U_->AddRightMultMatrix(sigma_, *S_, *C, 0.); } else { DBG_ASSERT(sigma_<0.); U_->AddRightMultMatrix(curr_eta_, *DRS_, *C, 0.); } // Compute Lbar = Ltilde^T * C SmartPtr Lbar = Ltilde->MakeNewDenseGenMatrix(); Lbar->AddMatrixProduct(1., *Ltilde, true, *C, false, 0.); // Compute U += V * Lbar; U_->AddRightMultMatrix(1., *V_, *Lbar, 1.); break; } case SR1: // TODO IMPLEMENT WELL! if (IpData().info_regu_x()>0.) { RestoreInternalDataBackup(); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Undoing most recent SR1 update.\n"); IpData().Append_info_string("Wb"); retroactive_skip = true; } // We don't know if the update has to be skipped, so we store a // backup of all internal data that can be restored in case we // have to skip the update. StoreInternalDataBackup(); // Update the internal stuff UpdateInternalData(*s_new, *y_new, ypart_new); if (!update_for_resto_ || !limited_memory_special_for_resto_) { // Set B0 for now as we do for BFGS - except that we take the // abs value? // // It seems that it is not a good idea to use that update if // this is the first contribution to the limited-memory history, // since otherwise the update will be skipped (and then all // updates will be skipped) if (curr_lm_memory_==1) { sigma_ = limited_memory_init_val_; } else { // ToDo: What lower bound to use? Number sTy_new = Max(1e-8, fabs(s_new->Dot(*y_new))); DBG_ASSERT(sTy_new!=0.); switch (limited_memory_initialization_) { case SCALAR1: sigma_ = sTy_new/pow(s_new->Nrm2(),2); break; case SCALAR2: sigma_ = pow(y_new->Nrm2(),2)/sTy_new; break; case SCALAR3: sigma_ = (sTy_new/pow(s_new->Nrm2(),2) + pow(y_new->Nrm2(),2)/sTy_new)/2.; break; case SCALAR4: sigma_ = sqrt(sTy_new/pow(s_new->Nrm2(),2) * pow(y_new->Nrm2(),2)/sTy_new); break; case CONSTANT: sigma_ = limited_memory_init_val_; break; } } Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "sigma (for B0) is %e\n", sigma_); // ToDo Decide what to use for SR1 - or at least use different // skipping rule } if (limited_memory_max_history_ == 0 ) { break; } DBG_PRINT_VECTOR(2,"S",*S_); DBG_PRINT_VECTOR(2,"Y",*Y_); // Compute Z as D + L + L^T - S^TB_0S SmartPtr Z; if (!update_for_resto_ || !limited_memory_special_for_resto_) { Z = SdotS_->MakeNewDenseSymMatrix(); DBG_PRINT_MATRIX(3, "SdotS", *SdotS_); DBG_PRINT((1, "sigma_ = %e\n", sigma_)); Z->AddMatrix(-sigma_, *SdotS_, 0.); } else { Z = STDRS_->MakeNewDenseSymMatrix(); Z->AddMatrix(-curr_eta_, *STDRS_, 0.); } DBG_PRINT_MATRIX(3, "L", *L_); DBG_PRINT_VECTOR(3, "D", *D_); Z->SpecialAddForLMSR1(*D_, *L_); // Compute the eigenvectors Q and eignevalues E for Z SmartPtr Q = L_->MakeNewDenseGenMatrix(); SmartPtr E = D_->MakeNewDenseVector(); DBG_PRINT_MATRIX(3, "Z", *Z); bool retval = Q->ComputeEigenVectors(*Z, *E); ASSERT_EXCEPTION(retval, INTERNAL_ABORT, "Eigenvalue decomposition failed for limited-memory SR1 update."); DBG_PRINT_VECTOR(2, "E", *E); DBG_PRINT_MATRIX(3, "Q", *Q); SmartPtr Qminus; SmartPtr Qplus; // Split the eigenvectors and scale them skipping = SplitEigenvalues(*Q, *E, Qminus, Qplus); if (skipping) { RestoreInternalDataBackup(); break; } // Compute Vtilde = Y - B_0*S SmartPtr Vtilde = Y_->MakeNewMultiVectorMatrix(); Vtilde->AddOneMultiVectorMatrix(1., *Y_, 0.); if (!update_for_resto_ || !limited_memory_special_for_resto_) { Vtilde->AddOneMultiVectorMatrix(-sigma_, *S_, 1.); } else { DBG_ASSERT(sigma_<0.); Vtilde->AddOneMultiVectorMatrix(-curr_eta_, *DRS_, 1.); } // Now get U as the Vtilde * Qminus if (IsValid(Qminus)) { SmartPtr U_space = new MultiVectorMatrixSpace(Qminus->NCols(), *s_new->OwnerSpace()); U_ = U_space->MakeNewMultiVectorMatrix(); U_->AddRightMultMatrix(1., *Vtilde, *Qminus, 0.); DBG_PRINT_MATRIX(3, "U", *U_); } else { U_ = NULL; } // Now get V as the Vtilde * Qplus if (IsValid(Qplus)) { SmartPtr V_space = new MultiVectorMatrixSpace(Qplus->NCols(), *s_new->OwnerSpace()); V_ = V_space->MakeNewMultiVectorMatrix(); V_->AddRightMultMatrix(1., *Vtilde, *Qplus, 0.); DBG_PRINT_MATRIX(3, "V", *V_); } else { V_ = NULL; } break; } } if (!skipping) { // Put together W SetW(); if (retroactive_skip) { lm_skipped_iter_++; } else { lm_skipped_iter_ = 0; } } else { // if (!skipping) { IpData().Append_info_string("Ws"); lm_skipped_iter_++; } Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Number of successive iterations with skipping: %d\n", lm_skipped_iter_); // Keep stuff around in case we want to skip SR1 retroactively // because of negative curvature! // //ReleaseInternalDataBackup(); last_x_ = curr_x; last_grad_f_ = curr_grad_f; last_jac_c_ = curr_jac_c; last_jac_d_ = curr_jac_d; if (update_for_resto_) { last_eta_ = curr_eta_; curr_DR_x_ = NULL; } } void LimMemQuasiNewtonUpdater:: StoreInternalDataBackup() { DBG_START_METH("LimMemQuasiNewtonUpdater::StoreInternalDataBackup", dbg_verbosity); curr_lm_memory_old_ = curr_lm_memory_; S_old_ = S_; Y_old_ = Y_; Ypart_old_ = Ypart_; D_old_ = D_; L_old_ = L_; SdotS_old_ = SdotS_; SdotS_uptodate_old_ = SdotS_uptodate_; STDRS_old_ = STDRS_; DRS_old_ = DRS_; sigma_old_ = sigma_; V_old_ = V_; U_old_ = U_; } void LimMemQuasiNewtonUpdater:: RestoreInternalDataBackup() { DBG_START_METH("LimMemQuasiNewtonUpdater::RestoreInternalDataBackup", dbg_verbosity); curr_lm_memory_ = curr_lm_memory_old_; S_ = S_old_; Y_ = Y_old_; Ypart_ = Ypart_old_; D_ = D_old_; L_ = L_old_; SdotS_ = SdotS_old_; SdotS_uptodate_ = SdotS_uptodate_old_; STDRS_ = STDRS_old_; DRS_ = DRS_old_; sigma_ = sigma_old_; V_ = V_old_; U_ = U_old_; } void LimMemQuasiNewtonUpdater:: ReleaseInternalDataBackup() { DBG_START_METH("LimMemQuasiNewtonUpdater::ReleaseInternalDataBackup", dbg_verbosity); S_old_ = NULL; Y_old_ = NULL; Ypart_old_ = NULL; D_old_ = NULL; L_old_ = NULL; SdotS_old_ = NULL; SdotS_uptodate_old_ = false; STDRS_old_ = NULL; DRS_old_ = NULL; V_old_ = NULL; U_old_ = NULL; } bool LimMemQuasiNewtonUpdater:: UpdateInternalData(const Vector& s_new, const Vector& y_new, SmartPtr ypart_new) { DBG_START_METH("LimMemQuasiNewtonUpdater::UpdateInternalData", dbg_verbosity); if (limited_memory_max_history_==0) { return false; } bool augment_memory; if (curr_lm_memory_ < limited_memory_max_history_) { augment_memory = true; curr_lm_memory_++; } else { augment_memory = false; } if (!update_for_resto_) { // Update the internal information if (augment_memory) { // If the memory is still // growing, increase the vector spaces etc AugmentMultiVector(S_, s_new); AugmentMultiVector(Y_, y_new); AugmentDenseVector(D_, s_new.Dot(y_new)); AugmentLMatrix(L_, *S_, *Y_); DBG_ASSERT(SdotS_uptodate_ || S_->NCols()==1); AugmentSdotSMatrix(SdotS_, *S_); SdotS_uptodate_ = true; } else { // Otherwise, we shift the internal data ShiftMultiVector(S_, s_new); ShiftMultiVector(Y_, y_new); ShiftDenseVector(D_, s_new.Dot(y_new)); ShiftLMatrix(L_, *S_, *Y_); DBG_ASSERT(SdotS_uptodate_); ShiftSdotSMatrix(SdotS_, *S_); } } else { // Compute DR*s_new; if (limited_memory_special_for_resto_) { SmartPtr DRs_new = s_new.MakeNewCopy(); DRs_new->ElementWiseMultiply(*curr_red_DR_x_); if (augment_memory) { AugmentMultiVector(S_, s_new); AugmentMultiVector(DRS_, *DRs_new); AugmentMultiVector(Ypart_, *ypart_new); AugmentSTDRSMatrix(STDRS_, *S_, *DRS_); } else { ShiftMultiVector(S_, s_new); ShiftMultiVector(DRS_, *DRs_new); ShiftMultiVector(Ypart_, *ypart_new); ShiftSTDRSMatrix(STDRS_, *S_, *DRS_); } } else { if (augment_memory) { AugmentMultiVector(S_, s_new); AugmentMultiVector(Ypart_, *ypart_new); DBG_ASSERT(SdotS_uptodate_ || S_->NCols()==1); AugmentSdotSMatrix(SdotS_, *S_); SdotS_uptodate_ = true; } else { ShiftMultiVector(S_, s_new); ShiftMultiVector(Ypart_, *ypart_new); DBG_ASSERT(SdotS_uptodate_); ShiftSdotSMatrix(SdotS_, *S_); } } DBG_PRINT((1,"curr_eta = %e\n", curr_eta_)); DBG_PRINT_VECTOR(2,"curr_red_DR_x", *curr_red_DR_x_); DBG_PRINT_VECTOR(2,"S", *S_); DBG_PRINT_VECTOR(2,"Ypart", *Ypart_); RecalcY(curr_eta_, *curr_red_DR_x_, *S_, *Ypart_, Y_); DBG_PRINT_VECTOR(2,"Y", *Y_); RecalcD(*S_, *Y_, D_); RecalcL(*S_, *Y_, L_); } return augment_memory; } bool LimMemQuasiNewtonUpdater:: SplitEigenvalues(DenseGenMatrix& Q, const DenseVector& E, SmartPtr& Qminus, SmartPtr& Qplus) { DBG_START_METH("LimMemQuasiNewtonUpdater::SplitEigenvalues", dbg_verbosity); Index dim = E.Dim(); DBG_ASSERT(dim==Q.NCols()); DBG_ASSERT(dim==Q.NRows()); const Number* Evals = E.Values(); const Number* Qvals = Q.Values(); // Determine number of negative eigenvalues Index nneg=0; for (Index i=0; i=0.); // ToDo make the following an option? const Number tol = 1e-12; if (ratio tmp = E.MakeNewDenseVector(); tmp->Copy(E); tmp->ElementWiseSqrt(); tmp->ElementWiseReciprocal(); Q.ScaleColumns(*tmp); Qplus = &Q; Qminus = NULL; return false; } else if (nneg==E.Dim()) { SmartPtr tmp = E.MakeNewDenseVector(); tmp->AddOneVector(-1., E, 0.); tmp->ElementWiseSqrt(); tmp->ElementWiseReciprocal(); Q.ScaleColumns(*tmp); Qminus = &Q; Qplus = NULL; return false; } // Create Qminus SmartPtr Qminus_space = new DenseGenMatrixSpace(dim, nneg); Qminus = Qminus_space->MakeNewDenseGenMatrix(); Number* Qminus_vals = Qminus->Values(); for (Index j=0; j Qplus_space = new DenseGenMatrixSpace(dim, dim-nneg); Qplus = Qplus_space->MakeNewDenseGenMatrix(); Number* Qplus_vals = Qplus->Values(); for (Index j=0; j0.); Number esqrt = sqrt(Evals[j+nneg]); for (Index i=0; i::epsilon()); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, "Limited-Memory test for skipping:\n"); Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, " s^Ty = %e snrm = %e ynrm = %e\n", sTy, snrm, ynrm); bool skipping; DBG_ASSERT(limited_memory_update_type_==BFGS); skipping = (sTy <= tol*snrm*ynrm); if (skipping) { Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, " Skip the update.\n"); } else { Jnlst().Printf(J_DETAILED, J_HESSIAN_APPROXIMATION, " Perform the update.\n"); } return skipping; } void LimMemQuasiNewtonUpdater:: AugmentMultiVector(SmartPtr& V, const Vector& v_new) { Index ncols; if (IsValid(V)) { ncols = V->NCols(); } else { ncols = 0; } SmartPtr vec_space = v_new.OwnerSpace(); SmartPtr new_Vspace = new MultiVectorMatrixSpace(ncols+1, *vec_space); SmartPtr new_V = new_Vspace->MakeNewMultiVectorMatrix(); for (Index i=0; iSetVector(i, *V->GetVector(i)); } new_V->SetVector(ncols, v_new); V = new_V; } void LimMemQuasiNewtonUpdater:: AugmentDenseVector(SmartPtr& V, Number v_new) { Index ndim; if (IsValid(V)) { ndim = V->Dim(); } else { ndim = 0; } SmartPtr new_Vspace = new DenseVectorSpace(ndim+1); SmartPtr new_V = new_Vspace->MakeNewDenseVector(); Number* newVvalues = new_V->Values(); if (IsValid(V)) { DBG_ASSERT(!V->IsHomogeneous()); const Number* Vvalues = V->Values(); for (Index i=0; i& V, const MultiVectorMatrix& S, const MultiVectorMatrix& Y) { Index ndim; if (IsValid(V)) { ndim = V->NCols(); DBG_ASSERT(ndim==V->NRows()); } else { ndim = 0; } DBG_ASSERT(S.NCols()==ndim+1); DBG_ASSERT(Y.NCols()==ndim+1); SmartPtr new_Vspace = new DenseGenMatrixSpace(ndim+1, ndim+1); SmartPtr new_V = new_Vspace->MakeNewDenseGenMatrix(); Number* newVvalues = new_V->Values(); if (IsValid(V)) { const Number* Vvalues = V->Values(); for (Index j=0; jDot(*Y.GetVector(j)); } for (Index i=0; i& V, const MultiVectorMatrix& S) { Index ndim; if (IsValid(V)) { ndim = V->Dim(); } else { ndim = 0; } DBG_ASSERT(S.NCols()==ndim+1); SmartPtr new_Vspace = new DenseSymMatrixSpace(ndim+1); SmartPtr new_V = new_Vspace->MakeNewDenseSymMatrix(); Number* newVvalues = new_V->Values(); if (IsValid(V)) { const Number* Vvalues = V->Values(); for (Index j=0; jDot(*S.GetVector(j)); } V = new_V; } void LimMemQuasiNewtonUpdater:: AugmentSTDRSMatrix(SmartPtr& V, const MultiVectorMatrix& S, const MultiVectorMatrix& DRS) { Index ndim; if (IsValid(V)) { ndim = V->Dim(); } else { ndim = 0; } DBG_ASSERT(S.NCols()==ndim+1); SmartPtr new_Vspace = new DenseSymMatrixSpace(ndim+1); SmartPtr new_V = new_Vspace->MakeNewDenseSymMatrix(); Number* newVvalues = new_V->Values(); if (IsValid(V)) { const Number* Vvalues = V->Values(); for (Index j=0; jDot(*DRS.GetVector(j)); } V = new_V; } void LimMemQuasiNewtonUpdater:: ShiftMultiVector(SmartPtr& V, const Vector& v_new) { Index ncols = V->NCols(); SmartPtr new_V = V->MakeNewMultiVectorMatrix(); for (Index i=0; iSetVector(i, *V->GetVector(i+1)); } new_V->SetVector(ncols-1, v_new); V = new_V; } void LimMemQuasiNewtonUpdater:: ShiftDenseVector(SmartPtr& V, Number v_new) { Index ndim = V->Dim(); SmartPtr new_V = V->MakeNewDenseVector(); DBG_ASSERT(!V->IsHomogeneous()); Number* Vvalues = V->Values(); Number* new_Vvalues = new_V->Values(); for (Index i=0; i& V, const MultiVectorMatrix& S, const MultiVectorMatrix& Y) { Index ndim = V->NCols(); DBG_ASSERT(ndim==V->NRows()); DBG_ASSERT(S.NCols()==ndim); DBG_ASSERT(Y.NCols()==ndim); SmartPtr new_V = V->MakeNewDenseGenMatrix(); Number* Vvalues = V->Values(); Number* new_Vvalues = new_V->Values(); for (Index j=0; jDot(*Y.GetVector(j)); } for (Index i=0; i& V, const MultiVectorMatrix& S) { Index ndim = V->Dim(); DBG_ASSERT(S.NCols()==ndim); SmartPtr new_V = V->MakeNewDenseSymMatrix(); Number* Vvalues = V->Values(); Number* new_Vvalues = new_V->Values(); for (Index j=0; jDot(*S.GetVector(j)); } V = new_V; } void LimMemQuasiNewtonUpdater:: ShiftSTDRSMatrix(SmartPtr& V, const MultiVectorMatrix& S, const MultiVectorMatrix& DRS) { Index ndim = V->Dim(); DBG_ASSERT(S.NCols()==ndim); SmartPtr new_V = V->MakeNewDenseSymMatrix(); Number* Vvalues = V->Values(); Number* new_Vvalues = new_V->Values(); for (Index j=0; jDot(*DRS.GetVector(j)); } V = new_V; } void LimMemQuasiNewtonUpdater::SetW() { DBG_START_METH("LimMemQuasiNewtonUpdater::SetW", dbg_verbosity); SmartPtr B0; if (update_for_resto_ && limited_memory_special_for_resto_) { B0 = curr_DR_x_->MakeNew(); B0->AddOneVector(curr_eta_, *curr_DR_x_, 0.); } else { SmartPtr LM_vecspace = h_space_->LowRankVectorSpace(); DBG_ASSERT(IsValid(LM_vecspace)); B0 = LM_vecspace->MakeNew(); B0->Set(sigma_); } DBG_PRINT_VECTOR(2, "B0", *B0); SmartPtr W = h_space_->MakeNewLowRankUpdateSymMatrix(); W->SetDiag(*B0); if (IsValid(V_)) { W->SetV(*V_); } if (IsValid(U_)) { W->SetU(*U_); } if (update_for_resto_) { SmartPtr sp = IpNLP().HessianMatrixSpace(); const CompoundSymMatrixSpace* csp = static_cast (GetRawPtr(sp)); SmartPtr CW = csp->MakeNewCompoundSymMatrix(); CW->SetComp(0,0,*W); IpData().Set_W(GetRawPtr(CW)); } else { IpData().Set_W(GetRawPtr(W)); } #ifdef PRINT_W // DELETEME const DenseVector* dx = static_cast (GetRawPtr(IpData().curr()->x())); DBG_ASSERT(dynamic_cast(GetRawPtr(IpData().curr()->x()))); SmartPtr tmpx = dx->MakeNewDenseVector(); SmartPtr tmpy = dx->MakeNewDenseVector(); for (Index i=0; iDim(); i++) { Number* tmpx_vals = tmpx->Values(); for (Index j=0; jDim(); j++) { tmpx_vals[j] = 0.; } tmpx_vals[i] = 1.; W->MultVector(1., *tmpx, 0., *tmpy); tmpx->Print(Jnlst(), J_DETAILED, J_MAIN, "tmpx"); tmpy->Print(Jnlst(), J_DETAILED, J_MAIN, "tmpy"); } // ENDDELETEME #endif } void LimMemQuasiNewtonUpdater::RecalcY(Number eta, const Vector& DR_x, MultiVectorMatrix& DRS, MultiVectorMatrix& Ypart, SmartPtr& Y) { SmartPtr mvspace = Ypart.MultiVectorMatrixOwnerSpace(); Y = mvspace->MakeNewMultiVectorMatrix(); Y->AddOneMultiVectorMatrix(eta, DRS, 0.); Y->AddOneMultiVectorMatrix(1., Ypart, 1.); } void LimMemQuasiNewtonUpdater::RecalcD(MultiVectorMatrix& S, MultiVectorMatrix& Y, SmartPtr& D) { SmartPtr space = new DenseVectorSpace(S.NCols()); D = space->MakeNewDenseVector(); Number* Dvalues = D->Values(); for (Index i=0; iDot(*Y.GetVector(i)); } } void LimMemQuasiNewtonUpdater::RecalcL(MultiVectorMatrix& S, MultiVectorMatrix& Y, SmartPtr& L) { Index dim = S.NCols(); SmartPtr space = new DenseGenMatrixSpace(dim, dim); L = space->MakeNewDenseGenMatrix(); Number* Lvalues = L->Values(); for (Index j=0; jDot(*Y.GetVector(j)); ; } } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIterationOutput.cpp0000644000076600007660000003143612116344132022356 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIterationOutput.cpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #include "IpRestoIterationOutput.hpp" #include "IpRestoIpoptNLP.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { RestoIterationOutput::RestoIterationOutput(const SmartPtr& resto_orig_iteration_output) : resto_orig_iteration_output_(resto_orig_iteration_output) {} RestoIterationOutput::~RestoIterationOutput() {} bool RestoIterationOutput::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("print_info_string", print_info_string_, prefix); Index enum_int; options.GetEnumValue("inf_pr_output", enum_int, prefix); inf_pr_output_ = InfPrOutput(enum_int); options.GetIntegerValue("print_frequency_iter", print_frequency_iter_, prefix); options.GetNumericValue("print_frequency_time", print_frequency_time_, prefix); bool retval = true; if (IsValid(resto_orig_iteration_output_)) { retval = resto_orig_iteration_output_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retval; } void RestoIterationOutput::WriteOutput() { // Get pointers to the Original NLP objects const RestoIpoptNLP* resto_ipopt_nlp = static_cast(&IpNLP()); DBG_ASSERT(resto_ipopt_nlp); SmartPtr orig_ip_data = &resto_ipopt_nlp->OrigIpData(); SmartPtr orig_ip_nlp = &resto_ipopt_nlp->OrigIpNLP(); SmartPtr orig_ip_cq = &resto_ipopt_nlp->OrigIpCq(); // Set the iteration counter for the original NLP to the current value Index iter = IpData().iter_count(); orig_ip_data->Set_iter_count(iter); // If a resto_orig_iteration_output object was given, first do the // WriteOutput method with that one if (IsValid(resto_orig_iteration_output_)) { resto_orig_iteration_output_->WriteOutput(); } ////////////////////////////////////////////////////////////////////// // First print the summary line for the iteration // ////////////////////////////////////////////////////////////////////// std::string header = "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n"; Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Summary of Iteration %d for original NLP:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); if (IpData().info_iters_since_header() >= 10 && !IsValid(resto_orig_iteration_output_)) { // output the header Jnlst().Printf(J_ITERSUMMARY, J_MAIN, header.c_str()); IpData().Set_info_iters_since_header(0); } else { Jnlst().Printf(J_DETAILED, J_MAIN, header.c_str()); } // For now, just print the total NLP error for the restoration // phase problem in the dual infeasibility column Number inf_du = IpCq().curr_dual_infeasibility(NORM_MAX); Number mu = IpData().curr_mu(); Number dnrm = 0.; if (IsValid(IpData().delta()) && IsValid(IpData().delta()->x()) && IsValid(IpData().delta()->s())) { dnrm = Max(IpData().delta()->x()->Amax(), IpData().delta()->s()->Amax()); } // Set the trial values for the original Data object to the // current restoration phase values SmartPtr x = IpData().curr()->x(); const CompoundVector* cx = static_cast(GetRawPtr(x)); DBG_ASSERT(cx); SmartPtr trial = orig_ip_data->trial()->MakeNewContainer(); trial->Set_x(*cx->GetComp(0)); trial->Set_s(*IpData().curr()->s()); orig_ip_data->set_trial(trial); // Compute primal infeasibility Number inf_pr = 0.0; switch (inf_pr_output_) { case INTERNAL: inf_pr = orig_ip_cq->trial_primal_infeasibility(NORM_MAX); break; case ORIGINAL: inf_pr = orig_ip_cq->unscaled_trial_nlp_constraint_violation(NORM_MAX); break; } // Compute original objective function Number f = orig_ip_cq->unscaled_trial_f(); // Retrieve some information set in the different parts of the algorithm char info_iter='r'; Number alpha_primal = IpData().info_alpha_primal(); char alpha_primal_char = IpData().info_alpha_primal_char(); Number alpha_dual = IpData().info_alpha_dual(); Number regu_x = IpData().info_regu_x(); char regu_x_buf[8]; char dashes[]=" - "; char *regu_x_ptr; if (regu_x==.0) { regu_x_ptr = dashes; } else { Snprintf(regu_x_buf, 7, "%5.1f", log10(regu_x)); regu_x_ptr = regu_x_buf; } Index ls_count = IpData().info_ls_count(); const std::string info_string = IpData().info_string(); Number current_time = 0.0; Number last_output = IpData().info_last_output(); if ((iter % print_frequency_iter_) == 0 && (print_frequency_time_ == 0.0 || last_output < (current_time = WallclockTime()) - print_frequency_time_ || last_output < 0.0)) { Jnlst().Printf(J_ITERSUMMARY, J_MAIN, "%4d%c%14.7e %7.2e %7.2e %5.1f %7.2e %5s %7.2e %7.2e%c%3d", iter, info_iter, f, inf_pr, inf_du, log10(mu), dnrm, regu_x_ptr, alpha_dual, alpha_primal, alpha_primal_char, ls_count); if (print_info_string_) { Jnlst().Printf(J_ITERSUMMARY, J_MAIN, " %s", info_string.c_str()); } else { Jnlst().Printf(J_DETAILED, J_MAIN, " %s", info_string.c_str()); } Jnlst().Printf(J_ITERSUMMARY, J_MAIN, "\n"); IpData().Set_info_last_output(current_time); IpData().Inc_info_iters_since_header(); } ////////////////////////////////////////////////////////////////////// // Now if desired more detail on the iterates // ////////////////////////////////////////////////////////////////////// if (Jnlst().ProduceOutput(J_DETAILED, J_MAIN)) { Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Beginning Iteration %d from the following point:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "Primal infeasibility for restoration phase problem = %.16e\n", IpCq().curr_primal_infeasibility(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Dual infeasibility for restoration phase problem = %.16e\n", IpCq().curr_dual_infeasibility(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_x||_inf = %.16e\n", IpData().curr()->x()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_s||_inf = %.16e\n", IpData().curr()->s()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_y_c||_inf = %.16e\n", IpData().curr()->y_c()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_y_d||_inf = %.16e\n", IpData().curr()->y_d()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_z_L||_inf = %.16e\n", IpData().curr()->z_L()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_z_U||_inf = %.16e\n", IpData().curr()->z_U()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_v_L||_inf = %.16e\n", IpData().curr()->v_L()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_v_U||_inf = %.16e\n", IpData().curr()->v_U()->Amax()); } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_MAIN)) { if (IsValid(IpData().delta())) { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "\n||delta_x||_inf = %.16e\n", IpData().delta()->x()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_s||_inf = %.16e\n", IpData().delta()->s()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_y_c||_inf = %.16e\n", IpData().delta()->y_c()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_y_d||_inf = %.16e\n", IpData().delta()->y_d()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_z_L||_inf = %.16e\n", IpData().delta()->z_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_z_U||_inf = %.16e\n", IpData().delta()->z_U()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_v_L||_inf = %.16e\n", IpData().delta()->v_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_v_U||_inf = %.16e\n", IpData().delta()->v_U()->Amax()); } else { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "\nNo search direction has been computed yet.\n"); } } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpData().curr()->x()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_x"); IpData().curr()->s()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_s"); IpData().curr()->y_c()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_y_c"); IpData().curr()->y_d()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_y_d"); IpCq().curr_slack_x_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_x_L"); IpCq().curr_slack_x_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_x_U"); IpData().curr()->z_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_z_L"); IpData().curr()->z_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_z_U"); IpCq().curr_slack_s_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_s_L"); IpCq().curr_slack_s_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_s_U"); IpData().curr()->v_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_v_L"); IpData().curr()->v_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_v_U"); } if (Jnlst().ProduceOutput(J_MOREVECTOR, J_MAIN)) { IpCq().curr_grad_lag_x()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "curr_grad_lag_x"); IpCq().curr_grad_lag_s()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "curr_grad_lag_s"); if (IsValid(IpData().delta())) { IpData().delta()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "delta"); } } if (Jnlst().ProduceOutput(J_DETAILED, J_MAIN)) { Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n***Current NLP Values for Iteration (Restoration phase problem) %d:\n", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n (scaled) (unscaled)\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "Objective...............: %24.16e %24.16e\n", IpCq().curr_f(), IpCq().unscaled_curr_f()); Jnlst().Printf(J_DETAILED, J_MAIN, "Dual infeasibility......: %24.16e %24.16e\n", IpCq().curr_dual_infeasibility(NORM_MAX), IpCq().unscaled_curr_dual_infeasibility(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Constraint violation....: %24.16e %24.16e\n", IpCq().curr_nlp_constraint_violation(NORM_MAX), IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Complementarity.........: %24.16e %24.16e\n", IpCq().curr_complementarity(0., NORM_MAX), IpCq().unscaled_curr_complementarity(0., NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Overall NLP error.......: %24.16e %24.16e\n\n", IpCq().curr_nlp_error(), IpCq().unscaled_curr_nlp_error()); } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpCq().curr_grad_f()->Print(Jnlst(), J_VECTOR, J_MAIN, "grad_f"); IpCq().curr_c()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_c"); IpCq().curr_d()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_d"); IpCq().curr_d_minus_s()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_d - curr_s"); } if (Jnlst().ProduceOutput(J_MATRIX, J_MAIN)) { IpCq().curr_jac_c()->Print(Jnlst(), J_MATRIX, J_MAIN, "jac_c"); IpCq().curr_jac_d()->Print(Jnlst(), J_MATRIX, J_MAIN, "jac_d"); IpData().W()->Print(Jnlst(), J_MATRIX, J_MAIN, "W"); } Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n"); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpAugRestoSystemSolver.hpp0000644000076600007660000001455011504216567022330 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAugRestoSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IP_AUGRESTOSYSTEMSOLVER_HPP__ #define __IP_AUGRESTOSYSTEMSOLVER_HPP__ #include "IpAugSystemSolver.hpp" namespace Ipopt { /** Class that converts the an augmented system with compound restoration * pieces into a smaller "pivoted" system to be solved with an * existing AugSystemSolver. This is really a decorator that changes * the behavior of the AugSystemSolver to account for the known structure * of the restoration phase. */ class AugRestoSystemSolver: public AugSystemSolver { public: /**@name Constructors/Destructors */ //@{ /** Constructor. Here, orig_aug_solver is the object for solving * the original augmented system. The flag * skip_orig_aug_solver_init indicates, if the initialization * call (to Initialize) should be skipped; this flag will usually * be true, so that the symbolic factorization of the main * algorithm will be used. */ AugRestoSystemSolver(AugSystemSolver& orig_aug_solver, bool skip_orig_aug_solver_init=true); /** Default destructor */ virtual ~AugRestoSystemSolver(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Translate the augmented system (in the full space of the * restoration variables) into the smaller space of the original * variables */ virtual ESymSolverStatus Solve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals); /** Returns the number of negative eigenvalues from the original * augmented system call */ virtual Index NumberOfNegEVals() const { return orig_aug_solver_->NumberOfNegEVals(); } /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return orig_aug_solver_->ProvidesInertia(); } /** Request to increase quality of solution for next solve. Ask * underlying linear solver to increase quality of solution for * the next solve (e.g. increase pivot tolerance). Returns * false, if this is not possible (e.g. maximal pivot tolerance * already used.) */ virtual bool IncreaseQuality() { return orig_aug_solver_->IncreaseQuality(); } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ AugRestoSystemSolver(); /** Copy Constructor */ AugRestoSystemSolver(const AugRestoSystemSolver&); /** Overloaded Equals Operator */ void operator=(const AugRestoSystemSolver&); //@} /**@name Caches for some of the necessary calculated quantities */ //@{ CachedResults< SmartPtr > neg_omega_c_plus_D_c_cache_; CachedResults< SmartPtr > neg_omega_d_plus_D_d_cache_; CachedResults< SmartPtr > sigma_tilde_n_c_inv_cache_; CachedResults< SmartPtr > sigma_tilde_p_c_inv_cache_; CachedResults< SmartPtr > sigma_tilde_n_d_inv_cache_; CachedResults< SmartPtr > sigma_tilde_p_d_inv_cache_; CachedResults< SmartPtr > d_x_plus_wr_d_cache_; CachedResults< SmartPtr > rhs_cR_cache_; CachedResults< SmartPtr > rhs_dR_cache_; //@} /**@name Methods to calculate the cached quantities */ //@{ SmartPtr Neg_Omega_c_plus_D_c( const SmartPtr& sigma_tilde_n_c_inv, const SmartPtr& sigma_tilde_p_c_inv, const Vector* D_c, const Vector& any_vec_in_c); SmartPtr Neg_Omega_d_plus_D_d( const Matrix& Pd_L, const SmartPtr& sigma_tilde_n_d_inv, const Matrix& neg_Pd_U, const SmartPtr& sigma_tilde_p_d_inv, const Vector* D_d, const Vector& any_vec_in_d); /** Sigma tilde is the sum of Sigma and delta_x times the identity */ SmartPtr Sigma_tilde_n_c_inv( const SmartPtr& sigma_tilde_n_c, Number delta_x, const Vector& any_vec_in_n_c); SmartPtr Sigma_tilde_p_c_inv( const SmartPtr& sigma_tilde_p_c, Number delta_x, const Vector& any_vec_in_p_c); SmartPtr Sigma_tilde_n_d_inv( const SmartPtr& sigma_tilde_n_d, Number delta_x, const Vector& any_vec_in_n_d); SmartPtr Sigma_tilde_p_d_inv( const SmartPtr& sigma_tilde_p_d, Number delta_x, const Vector& any_vec_in_p_d); SmartPtr D_x_plus_wr_d( const SmartPtr& CD_x0, Number factor, const Vector& wr_d); SmartPtr Rhs_cR( const Vector& rhs_c, const SmartPtr& sigma_tilde_n_c_inv, const Vector& rhs_n_c, const SmartPtr& sigma_tilde_p_c_inv, const Vector& rhs_p_c); SmartPtr Rhs_dR( const Vector& rhs_d, const SmartPtr& sigma_tilde_n_d_inv, const Vector& rhs_n_d, const Matrix& pd_L, const SmartPtr& sigma_tilde_p_d_inv, const Vector& rhs_p_d, const Matrix& pd_U); //@} SmartPtr orig_aug_solver_; bool skip_orig_aug_solver_init_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpMuOracle.hpp0000644000076600007660000000405711504216567017707 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPMUORACLE_HPP__ #define __IPMUORACLE_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Abstract Base Class for classes that are able to compute a * suggested value of the barrier parameter that can be used * as an oracle in the NonmontoneMuUpdate class. */ class MuOracle : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ MuOracle() {} /** Default destructor */ virtual ~MuOracle() {} //@} /** Initialize method - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method for computing the value of the barrier parameter that * could be used in the current iteration. Here, mu_min and * mu_max are the lower and upper bounds on acceptable values for * the barrier parameter. The new value of mu is returned in * new_mu, and the method returns false if a new value could not * be determined (e.g., because the linear system could not be * solved for a predictor step). */ virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu) = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ MuOracle(const MuOracle&); /** Overloaded Equals Operator */ void operator=(const MuOracle&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpPenaltyLSAcceptor.hpp0000644000076600007660000001742011504216567021532 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPenaltyLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-04-04 // derived file from IpFilterLSAcceptor.hpp #ifndef __IPPENALTYLSACCEPTOR_HPP__ #define __IPPENALTYLSACCEPTOR_HPP__ #include "IpBacktrackingLSAcceptor.hpp" #include "IpPDSystemSolver.hpp" namespace Ipopt { /** Penalty function line search. This class implements the penalty * function line search procedure as proposed by Waltz, Morales, * Nocedal, Orban. */ class PenaltyLSAcceptor : public BacktrackingLSAcceptor { public: /**@name Constructors/Destructors */ //@{ /** Constructor. The PDSystemSolver object only needs to be * provided (i.e. not NULL) if second order correction or * corrector steps are to be used. */ PenaltyLSAcceptor(const SmartPtr& pd_solver); /** Default destructor */ virtual ~PenaltyLSAcceptor(); //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Reset the acceptor. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset(); /** Initialization for the next line search. The flag in_watchdog * indicates if we are currently in an active watchdog * procedure. */ virtual void InitThisLineSearch(bool in_watchdog); /** Method that is called before the restoration phase is called. * Here, we can set up things that are required in the * termination test for the restoration phase. */ virtual void PrepareRestoPhaseStart(); /** Method returning the lower bound on the trial step sizes. */ virtual Number CalculateAlphaMin(); /** Method for checking if current trial point is acceptable. * It is assumed that the delta information in ip_data is the * search direction used in criteria. The primal trial point has * to be set before the call. */ virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal); /** Try a second order correction for the constraints. If the * first trial step (with incoming alpha_primal) has been reject, * this tries up to max_soc_ second order corrections for the * constraints. Here, alpha_primal_test is the step size that * has to be used in the penalty function acceptance tests. On * output actual_delta_ has been set to the step including the * second order correction if it has been accepted, otherwise it * is unchanged. If the SOC step has been accepted, alpha_primal * has the fraction-to-the-boundary value for the SOC step on * output. The return value is true, if a SOC step has been * accepted. */ virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ virtual bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Method for ending the current line search. When it is called, * the internal data should be updates. alpha_primal_test is the * value of alpha that has been used for in the acceptence test * ealier. */ virtual char UpdateForNextIteration(Number alpha_primal_test); /** Method for setting internal data if the watchdog procedure is * started. */ virtual void StartWatchDog(); /** Method for setting internal data if the watchdog procedure is * stopped. */ virtual void StopWatchDog(); /**@name Trial Point Accepting Methods. Used internally to check certain * acceptability criteria and used externally (by the restoration phase * convergence check object, for instance) */ //@{ /** Checks if a trial point is acceptable to the current iterate */ bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration=false) const; //@} /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ PenaltyLSAcceptor(const PenaltyLSAcceptor&); /** Overloaded Equals Operator */ void operator=(const PenaltyLSAcceptor&); //@} /** Compute predicted reduction for given step size */ Number CalcPred(Number alpha); /** @name Parameters for the penalty function line search * algorithm. Names as in the filter paper */ //@{ /** Initial value of penalty parameter */ Number nu_init_; /** Incrememt for penalty parameter */ Number nu_inc_; /** \f$ \eta_{\varphi} \f$ */ Number eta_; /** \f$ \rho \f$ */ Number rho_; /** Maximal number of second order correction steps */ Index max_soc_; /** Required reduction in constraint violation before trying * multiple second order correction steps \f$ \kappa_{soc}\f$. */ Number kappa_soc_; //@} /** @name Information related to watchdog procedure */ //@{ /** Constraint violation at the point with respect to which * progress is to be made */ Number reference_theta_; /** Barrier objective function at the point with respect to which * progress is to be made */ Number reference_barr_; /** Barrier gradient transpose search direction at the point with * respect to which progress is to be made */ Number reference_gradBarrTDelta_; /** Two-sided product of search direction with complete Hessian */ Number reference_dWd_; /** Product of Jacobian of equality constraint with x direction */ SmartPtr reference_JacC_delta_; /** Product of Jacobian of (d-s) constraint with search direction */ SmartPtr reference_JacD_delta_; /** Reference predicted reduction. If positive, then it is used * in watch dog. */ Number reference_pred_; /** Constraint violation at reference point */ Number watchdog_theta_; /** Barrier objective function at reference point */ Number watchdog_barr_; /** Predicted reduction to be compared with in watch dog. */ Number watchdog_pred_; //@} /** @name Penalty parameter */ //@{ /** Current value of the penalty parameter */ Number nu_; /** Value of penalty parameter at beginning of the iteration. */ Number last_nu_; //@} /** When called from the restoration phase, this is the required * predicted reduction */ Number resto_pred_; /** @name Strategy objective that are used */ //@{ SmartPtr pd_solver_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/0000755000076600007660000000000012214537465017762 5ustar coincoinIpopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpPardisoSolverInterface.hpp0000644000076600007660000001536211504216567025406 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPardisoSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17 #ifndef __IPPARDISOSOLVERINTERFACE_HPP__ #define __IPPARDISOSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" //#define PARDISO_MATCHING_PREPROCESS namespace Ipopt { /** Interface to the linear solver Pardiso, derived from * SparseSymLinearSolverInterface. For details, see description of * SparseSymLinearSolverInterface base class. */ class PardisoSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ PardisoSolverInterface(); /** Destructor */ virtual ~PardisoSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja); /** Method returing an internal array into which the nonzero * elements are to be stored. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Format_1_Offset; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ PardisoSolverInterface(const PardisoSolverInterface&); /** Overloaded Equals Operator */ void operator=(const PardisoSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix in triplet representation. */ Index nonzeros_; /** Array for storing the values of the matrix. */ double* a_; //@} #ifdef PARDISO_MATCHING_PREPROCESS /** Array for storing the values of a second matrix that has been already reordered. */ ipfint* ia2; ipfint* ja2; double* a2_; ipfint* perm2; double* scale2; #endif /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Solver specific options */ //@{ /** Type for mathcing strategies */ enum PardisoMatchingStrategy { COMPLETE, COMPLETE2x2, CONSTRAINT }; /** Option that controls the matching strategy. */ PardisoMatchingStrategy match_strat_; /** Flag indicating if symbolic factorization has already been * performed. */ bool have_symbolic_factorization_; /** Flag indicating whether the symbolic factorization should only * be done after perturbed elements, if the inertia was wrong */ bool pardiso_redo_symbolic_fact_only_if_inertia_wrong_; /** Flag indicating whether repeated perturbed elements even after * a new symbolic factorization should be interpreted as a * singular matrix */ bool pardiso_repeated_perturbation_means_singular_; /** Flag indicating if the interia is always assumed to be * correct. */ bool skip_inertia_check_; /** Flag indicating whether we are using the iterative solver in * Pardiso. */ bool pardiso_iterative_; /** Maximal number of decreases of drop tolerance during one solve. */ Index pardiso_max_droptol_corrections_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; //@} /** @name Solver specific information */ //@{ /** Internal data address pointers. */ void** PT_; /** Maximal number of factors with identical nonzero * structure. Here, we only store one factorization. Is always 1.*/ ipfint MAXFCT_; /** Actual matrix for the solution phase. Is always 1.*/ ipfint MNUM_; /** Matrix type; real and symmetric indefinite. Is always -2.*/ ipfint MTYPE_; /** Parameter and info array for Pardiso. */ ipfint* IPARM_; /** Parameter and info array for Pardiso. */ double* DPARM_; /** Message level. */ ipfint MSGLVL_; //@} /**@name Some counters for debugging */ //@{ Index debug_last_iter_; Index debug_cnt_; //@} /** @name Internal functions */ //@{ /** Call Pardiso to do the analysis phase. */ ESymSolverStatus SymbolicFactorization(const Index* ia, const Index* ja); /** Call Pardiso to factorize the Matrix. */ ESymSolverStatus Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals); /** Call Pardiso to do the Solve. */ ESymSolverStatus Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMumpsSolverInterface.cpp0000644000076600007660000005167712173475653025120 0ustar coincoin// Copyright (C) 2006, 2012 Damien Hocking, KBC Advanced Technologies // All Rights Reserved. // This code is published under the Eclipse Public License. // // Authors: Damien Hocking KBC 2006-03-20 // (included his original contribution into Ipopt package on 2006-03-25) // Andreas Waechter IBM 2006-03-25 // (minor changes and corrections) // Scott Turnberg CMU 2006-05-12 // (major revision) // (incorporated by AW on 2006-11-11 into Ipopt package) // The following line is a fix for otherwise twice-defined global variable // (This would have to be taken out for a parallel MUMPS version!) #define MPI_COMM_WORLD IPOPT_MPI_COMM_WORLD // The first header to include is the one for MPI. #include "mpi.h" #include "IpMumpsSolverInterface.hpp" #include "dmumps_c.h" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # else # error "don't have header file for stdlib" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif #define USE_COMM_WORLD -987654 MumpsSolverInterface::MumpsSolverInterface() { DBG_START_METH("MumpsSolverInterface::MumpsSolverInterface()", dbg_verbosity); //initialize mumps DMUMPS_STRUC_C* mumps_ = new DMUMPS_STRUC_C; int argc=1; char ** argv = 0; int myid; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); mumps_->n = 0; mumps_->nz = 0; mumps_->a = NULL; mumps_->jcn = NULL; mumps_->irn = NULL; mumps_->job = -1;//initialize mumps mumps_->par = 1;//working host for sequential version mumps_->sym = 2;//general symetric matrix mumps_->comm_fortran = USE_COMM_WORLD; dmumps_c(mumps_); mumps_->icntl[1] = 0; mumps_->icntl[2] = 0;//QUIETLY! mumps_->icntl[3] = 0; mumps_ptr_ = (void*)mumps_; } MumpsSolverInterface::~MumpsSolverInterface() { DBG_START_METH("MumpsSolverInterface::~MumpsSolverInterface()", dbg_verbosity); DMUMPS_STRUC_C* mumps_ = (DMUMPS_STRUC_C*)mumps_ptr_; mumps_->job = -2; //terminate mumps dmumps_c(mumps_); MPI_Finalize(); delete [] mumps_->a; delete mumps_; } void MumpsSolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "mumps_pivtol", "Pivot tolerance for the linear solver MUMPS.", 0, false, 1, false, 1e-6, "A smaller number pivots for sparsity, a larger number pivots for " "stability. This option is only available if Ipopt has been compiled " "with MUMPS."); roptions->AddBoundedNumberOption( "mumps_pivtolmax", "Maximum pivot tolerance for the linear solver MUMPS.", 0, false, 1, false, 0.1, "Ipopt may increase pivtol as high as pivtolmax to get a more accurate " "solution to the linear system. This option is only available if " "Ipopt has been compiled with MUMPS."); roptions->AddLowerBoundedIntegerOption( "mumps_mem_percent", "Percentage increase in the estimated working space for MUMPS.", 0, 1000, "In MUMPS when significant extra fill-in is caused by numerical " "pivoting, larger values of mumps_mem_percent may help use the " "workspace more efficiently. On the other hand, if memory requirement " "are too large at the very beginning of the optimization, choosing a " "much smaller value for this option, such as 5, might reduce memory " "requirements."); roptions->AddBoundedIntegerOption( "mumps_permuting_scaling", "Controls permuting and scaling in MUMPS", 0, 7, 7, "This is ICNTL(6) in MUMPS."); roptions->AddBoundedIntegerOption( "mumps_pivot_order", "Controls pivot order in MUMPS", 0, 7, 7, "This is ICNTL(7) in MUMPS."); roptions->AddBoundedIntegerOption( "mumps_scaling", "Controls scaling in MUMPS", -2, 77, 77, "This is ICNTL(8) in MUMPS."); roptions->AddNumberOption( "mumps_dep_tol", "Pivot threshold for detection of linearly dependent constraints in MUMPS.", 0.0, "When MUMPS is used to determine linearly dependent constraints, this " "is determines the threshold for a pivot to be considered zero. This " "is CNTL(3) in MUMPS."); } bool MumpsSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("mumps_pivtol", pivtol_, prefix); if (options.GetNumericValue("mumps_pivtolmax", pivtolmax_, prefix)) { ASSERT_EXCEPTION(pivtolmax_>=pivtol_, OPTION_INVALID, "Option \"mumps_pivtolmax\": This value must be between " "mumps_pivtol and 1."); } else { pivtolmax_ = Max(pivtolmax_, pivtol_); } options.GetIntegerValue("mumps_mem_percent", mem_percent_, prefix); // The following option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); options.GetIntegerValue("mumps_permuting_scaling", mumps_permuting_scaling_, prefix); options.GetIntegerValue("mumps_pivot_order", mumps_pivot_order_, prefix); options.GetIntegerValue("mumps_scaling", mumps_scaling_, prefix); options.GetNumericValue("mumps_dep_tol", mumps_dep_tol_, prefix); // Reset all private data initialized_ = false; pivtol_changed_ = false; refactorize_ = false; have_symbolic_factorization_ = false; DMUMPS_STRUC_C* mumps_ = (DMUMPS_STRUC_C*)mumps_ptr_; if (!warm_start_same_structure_) { mumps_->n = 0; mumps_->nz = 0; } else { ASSERT_EXCEPTION(mumps_->n>0 && mumps_->nz>0, INVALID_WARMSTART, "MumpsSolverInterface called with warm_start_same_structure, but the problem is solved for the first time."); } return true; } ESymSolverStatus MumpsSolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("MumpsSolverInterface::MultiSolve", dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); DBG_ASSERT(((DMUMPS_STRUC_C*)mumps_ptr_)->irn == ia); DBG_ASSERT(((DMUMPS_STRUC_C*)mumps_ptr_)->jcn == ja); if (pivtol_changed_) { DBG_PRINT((1,"Pivot tolerance has changed.\n")); pivtol_changed_ = false; // If the pivot tolerance has been changed but the matrix is not // new, we have to request the values for the matrix again to do // the factorization again. if (!new_matrix) { DBG_PRINT((1,"Ask caller to call again.\n")); refactorize_ = true; return SYMSOLVER_CALL_AGAIN; } } // check if a factorization has to be done DBG_PRINT((1, "new_matrix = %d\n", new_matrix)); if (new_matrix || refactorize_) { ESymSolverStatus retval; // Do the symbolic facotrization if it hasn't been done yet if (!have_symbolic_factorization_) { retval = SymbolicFactorization(); if (retval != SYMSOLVER_SUCCESS ) { return retval; } have_symbolic_factorization_ = true; } // perform the factorization retval = Factorization(check_NegEVals, numberOfNegEVals); if (retval != SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } refactorize_ = false; } // do the solve return Solve(nrhs, rhs_vals); } double* MumpsSolverInterface::GetValuesArrayPtr() { DMUMPS_STRUC_C* mumps_ = (DMUMPS_STRUC_C*)mumps_ptr_; DBG_START_METH("MumpsSolverInterface::GetValuesArrayPtr",dbg_verbosity) DBG_ASSERT(initialized_); return mumps_->a; } void dump_matrix(DMUMPS_STRUC_C* mumps_data) { #ifdef write_matrices // Dump the matrix for (int i=0; i<40; i++) { printf("%d\n", mumps_data->icntl[i]); } for (int i=0; i<5; i++) { printf("%25.15e\n", mumps_data->cntl[i]); } printf("%-15d :N\n",mumps_data->n); printf("%-15d :NZ", mumps_data->nz); for (int i=0; inz; i++) { printf("\n%d %d %25.15e", mumps_data->irn[i], mumps_data->jcn[i], mumps_data->a[i]); } printf(" :values"); // Dummy RHS for now for (int i=0; in; i++) { printf("\n%25.15e", 0.); } printf(" :RHS\n"); #endif } /* Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus MumpsSolverInterface::InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja) { DMUMPS_STRUC_C* mumps_ = (DMUMPS_STRUC_C*)mumps_ptr_; DBG_START_METH("MumpsSolverInterface::InitializeStructure", dbg_verbosity); ESymSolverStatus retval = SYMSOLVER_SUCCESS; if (!warm_start_same_structure_) { mumps_->n = dim; mumps_->nz = nonzeros; delete [] mumps_->a; mumps_->a = NULL; mumps_->a = new double[nonzeros]; mumps_->irn = const_cast(ia); mumps_->jcn = const_cast(ja); // make sure we do the symbolic factorization before a real // factorization have_symbolic_factorization_ = false; } else { ASSERT_EXCEPTION(mumps_->n==dim && mumps_->nz==nonzeros, INVALID_WARMSTART,"MumpsSolverInterface called with warm_start_same_structure, but the problem size has changed."); } initialized_ = true; return retval; } ESymSolverStatus MumpsSolverInterface::SymbolicFactorization() { DBG_START_METH("MumpsSolverInterface::SymbolicFactorization", dbg_verbosity); DMUMPS_STRUC_C* mumps_data = (DMUMPS_STRUC_C*)mumps_ptr_; if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } mumps_data->job = 1;//symbolic ordering pass //mumps_data->icntl[1] = 6; //mumps_data->icntl[2] = 6;//QUIETLY! //mumps_data->icntl[3] = 4; mumps_data->icntl[5] = mumps_permuting_scaling_; mumps_data->icntl[6] = mumps_pivot_order_; mumps_data->icntl[7] = mumps_scaling_; mumps_data->icntl[9] = 0;//no iterative refinement iterations mumps_data->icntl[12] = 1;//avoid lapack bug, ensures proper inertia mumps_data->icntl[13] = mem_percent_; //% memory to allocate over expected mumps_data->cntl[0] = pivtol_; // Set pivot tolerance dump_matrix(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling MUMPS-1 for symbolic factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); dmumps_c(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with MUMPS-1 for symbolic factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); int error = mumps_data->info[0]; const int& mumps_permuting_scaling_used = mumps_data->infog[22]; const int& mumps_pivot_order_used = mumps_data->infog[6]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MUMPS used permuting_scaling %d and pivot_order %d.\n", mumps_permuting_scaling_used, mumps_pivot_order_used); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " scaling will be %d.\n", mumps_data->icntl[7]); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } //return appropriat value if (error == -6) {//system is singular Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MUMPS returned INFO(1) = %d matrix is singular.\n",error); return SYMSOLVER_SINGULAR; } if (error < 0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error=%d returned from MUMPS in Factorization.\n", error); return SYMSOLVER_FATAL_ERROR; } return SYMSOLVER_SUCCESS; } ESymSolverStatus MumpsSolverInterface::Factorization( bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("MumpsSolverInterface::Factorization", dbg_verbosity); DMUMPS_STRUC_C* mumps_data = (DMUMPS_STRUC_C*)mumps_ptr_; mumps_data->job = 2;//numerical factorization dump_matrix(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling MUMPS-2 for numerical factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); dmumps_c(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with MUMPS-2 for numerical factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); int error = mumps_data->info[0]; //Check for errors if (error == -8 || error == -9) {//not enough memory const Index trycount_max = 20; for (int trycount=0; trycounticntl[13]); double mem_percent = mumps_data->icntl[13]; mumps_data->icntl[13] = (Index)(2.0 * mem_percent); Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "%d.\n", mumps_data->icntl[13]); dump_matrix(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling MUMPS-2 (repeated) for numerical factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); dmumps_c(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with MUMPS-2 (repeated) for numerical factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); error = mumps_data->info[0]; if (error != -8 && error != -9) break; } if (error == -8 || error == -9) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "MUMPS was not able to obtain enough memory.\n"); return SYMSOLVER_FATAL_ERROR; } } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of doubles for MUMPS to hold factorization (INFO(9)) = %d\n", mumps_data->info[8]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of integers for MUMPS to hold factorization (INFO(10)) = %d\n", mumps_data->info[9]); if (error == -10) {//system is singular Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MUMPS returned INFO(1) = %d matrix is singular.\n",error); return SYMSOLVER_SINGULAR; } negevals_ = mumps_data->infog[11]; if (error == -13) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "MUMPS returned INFO(1) =%d - out of memory when trying to allocate %d %s.\nIn some cases it helps to decrease the value of the option \"mumps_mem_percent\".\n", error, mumps_data->info[1] < 0 ? -mumps_data->info[1] : mumps_data->info[1], mumps_data->info[1] < 0 ? "MB" : "bytes"); return SYMSOLVER_FATAL_ERROR; } if (error < 0) {//some other error Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "MUMPS returned INFO(1) =%d MUMPS failure.\n", error); return SYMSOLVER_FATAL_ERROR; } if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In MumpsSolverInterface::Factorization: negevals_ = %d, but numberOfNegEVals = %d\n", negevals_, numberOfNegEVals); return SYMSOLVER_WRONG_INERTIA; } return SYMSOLVER_SUCCESS; } ESymSolverStatus MumpsSolverInterface::Solve(Index nrhs, double *rhs_vals) { DBG_START_METH("MumpsSolverInterface::Solve", dbg_verbosity); DMUMPS_STRUC_C* mumps_data = (DMUMPS_STRUC_C*)mumps_ptr_; ESymSolverStatus retval = SYMSOLVER_SUCCESS; if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } for (Index i = 0; i < nrhs; i++) { Index offset = i * mumps_data->n; mumps_data->rhs = &(rhs_vals[offset]); mumps_data->job = 3;//solve Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling MUMPS-3 for solve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); dmumps_c(mumps_data); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with MUMPS-3 for solve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); int error = mumps_data->info[0]; if (error < 0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error=%d returned from MUMPS in Solve.\n", error); retval = SYMSOLVER_FATAL_ERROR; } } if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } return retval; } Index MumpsSolverInterface::NumberOfNegEVals() const { DBG_START_METH("MumpsSolverInterface::NumberOfNegEVals", dbg_verbosity); DBG_ASSERT(negevals_ >= 0); return negevals_; } bool MumpsSolverInterface::IncreaseQuality() { DBG_START_METH("MumpsTSolverInterface::IncreaseQuality",dbg_verbosity); if (pivtol_ == pivtolmax_) { return false; } pivtol_changed_ = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing pivot tolerance for MUMPS from %7.2e ", pivtol_); //this is a more aggresive update then MA27 //this should be tuned pivtol_ = Min(pivtolmax_, pow(pivtol_,0.5)); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e.\n", pivtol_); return true; } bool MumpsSolverInterface::ProvidesDegeneracyDetection() const { return true; } ESymSolverStatus MumpsSolverInterface:: DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { DBG_START_METH("MumpsSolverInterface::DetermineDependentRows", dbg_verbosity); DMUMPS_STRUC_C* mumps_data = (DMUMPS_STRUC_C*)mumps_ptr_; c_deps.clear(); ESymSolverStatus retval; // Do the symbolic facotrization if it hasn't been done yet if (!have_symbolic_factorization_) { const Index mumps_permuting_scaling_orig = mumps_permuting_scaling_; const Index mumps_scaling_orig = mumps_scaling_; mumps_permuting_scaling_ = 0; mumps_scaling_ = 6; retval = SymbolicFactorization(); mumps_permuting_scaling_ = mumps_permuting_scaling_orig; mumps_scaling_ = mumps_scaling_orig; if (retval != SYMSOLVER_SUCCESS ) { return retval; } have_symbolic_factorization_ = true; } // perform the factorization, in order to find dependent rows/columns //Set flags to ask MUMPS for checking linearly dependent rows mumps_data->icntl[23] = 1; mumps_data->cntl[2] = mumps_dep_tol_; mumps_data->job = 2;//numerical factorization dump_matrix(mumps_data); dmumps_c(mumps_data); int error = mumps_data->info[0]; //Check for errors if (error == -8 || error == -9) {//not enough memory const Index trycount_max = 20; for (int trycount=0; trycounticntl[13]); double mem_percent = mumps_data->icntl[13]; mumps_data->icntl[13] = (Index)(2.0 * mem_percent); Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "%d.\n", mumps_data->icntl[13]); dump_matrix(mumps_data); dmumps_c(mumps_data); error = mumps_data->info[0]; if (error != -8 && error != -9) break; } if (error == -8 || error == -9) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "MUMPS was not able to obtain enough memory.\n"); // Reset flags mumps_data->icntl[23] = 0; return SYMSOLVER_FATAL_ERROR; } } // Reset flags mumps_data->icntl[23] = 0; if (error < 0) {//some other error Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "MUMPS returned INFO(1) =%d MUMPS failure.\n", error); return SYMSOLVER_FATAL_ERROR; } const Index n_deps = mumps_data->infog[27]; for (Index i=0; ipivnul_list[i]-1); } return SYMSOLVER_SUCCESS; } }//end Ipopt namespace Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.hpp0000644000076600007660000001567212057446772024655 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa57TSolverInterface.hpp 2158 2012-12-04 19:24:42Z stefan $ // // Authors: Michael Hagemann Univ of Basel 2005-10-28 // original version (based on MA27TSolverInterface.hpp) #ifndef __IPMA57TSOLVERINTERFACE_HPP__ #define __IPMA57TSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" #ifdef FUNNY_MA57_FINT #include typedef ptrdiff_t ma57int; #else typedef ipfint ma57int; #endif namespace Ipopt { /** Interface to the symmetric linear solver MA57, derived from * SparseSymLinearSolverInterface. */ class Ma57TSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ Ma57TSolverInterface(); /** Destructor */ virtual ~Ma57TSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and airn and acjn give the * positions of the nonzero elements. */ virtual ESymSolverStatus InitializeStructure( Index dim, Index nonzeros, const Index *airn, const Index *ajcn); /** Method returing an internal array into which the nonzero * elements (in the same order as airn and ajcn) are to be stored * by the calling routine before a call to MultiSolve with a * new_matrix=true. The returned array must have space for at least * nonzero elements. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. Overloaded * from SparseSymLinearSolverInterface. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* airn, const Index* ajcn, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. * Ask linear solver to increase quality of solution for the next * solve (e.g. increase pivot tolerance). Returns false, if this * is not possible (e.g. maximal pivot tolerance already used.) */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return Triplet_Format; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Ma57TSolverInterface(const Ma57TSolverInterface&); /** Overloaded Equals Operator */ void operator=(const Ma57TSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix */ Index nonzeros_; //@} /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; /** Flag indicating if the matrix has to be refactorized because * the pivot tolerance has been changed. */ bool pivtol_changed_; /** Flag that is true if we just requested the values of the * matrix again (SYMSOLVER_CALL_AGAIN) and have to factorize * again. */ bool refactorize_; //@} /** @name Solver specific data/options */ //@{ /** Pivol tolerance */ Number pivtol_; /** Maximal pivot tolerance */ Number pivtolmax_; /** Factor for estimating initial size of work arrays */ Number ma57_pre_alloc_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; //@} /** @name Data for the linear solver. * Storing factorization and other solver specific data structure. */ //@{ double wd_cntl_[5]; ma57int wd_icntl_[20]; ma57int wd_info_[40]; double wd_rinfo_[20]; ma57int wd_lkeep_; /* LKEEP >= 5*N + NE + max(N,NE) + 42. */ ma57int *wd_keep_; ma57int *wd_iwork_; /* 5 * N. */ double *wd_fact_; ma57int wd_lfact_; ma57int *wd_ifact_; ma57int wd_lifact_; /** factor A of matrix */ double* a_; //@} /** @name Internal functions */ //@{ /** Call MA57AD and reserve memory for MA57 data. * Reserve memory for iw_ and ikeep_, call MA57AD to perform * symbolic manipulations, and reserve all the remaining data memory */ ESymSolverStatus SymbolicFactorization(const Index* airn, const Index* ajcn); /** Call MA57BD to factorize the Matrix. * It is assumed that the first nonzeros_ element of a_ contain the values * of the matrix to be factorized. */ ESymSolverStatus Factorization(const Index* airn, const Index* ajcn, bool check_NegEVals, Index numberOfNegEVals); /** Call MA57CD to do the backsolve. */ ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.cpp0000644000076600007660000005273712156621430024632 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa27TSolverInterface.cpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17 #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif // if we do not have MA27 in HSL or the linear solver loader, then we want to build the MA27 interface #if defined(COINHSL_HAS_MA27) || defined(HAVE_LINEARSOLVERLOADER) #include "IpMa27TSolverInterface.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif /** Prototypes for MA27's Fortran subroutines */ extern "C" { void F77_FUNC(ma27id,MA27ID)(ipfint* ICNTL, double* CNTL); void F77_FUNC(ma27ad,MA27AD)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, ipfint *IW, ipfint* LIW, ipfint* IKEEP, ipfint *IW1, ipfint* NSTEPS, ipfint* IFLAG, ipfint* ICNTL, double* CNTL, ipfint *INFO, double* OPS); void F77_FUNC(ma27bd,MA27BD)(ipfint *N, ipfint *NZ, const ipfint *IRN, const ipfint* ICN, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, ipfint* IKEEP, ipfint* NSTEPS, ipfint* MAXFRT, ipfint* IW1, ipfint* ICNTL, double* CNTL, ipfint* INFO); void F77_FUNC(ma27cd,MA27CD)(ipfint *N, double* A, ipfint* LA, ipfint* IW, ipfint* LIW, double* W, ipfint* MAXFRT, double* RHS, ipfint* IW1, ipfint* NSTEPS, ipfint* ICNTL, double* CNTL); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif Ma27TSolverInterface::Ma27TSolverInterface() : dim_(0), nonzeros_(0), initialized_(false), pivtol_changed_(false), refactorize_(false), liw_(0), iw_(NULL), ikeep_(NULL), la_(0), a_(NULL), la_increase_(false), liw_increase_(false) { DBG_START_METH("Ma27TSolverInterface::Ma27TSolverInterface()",dbg_verbosity); } Ma27TSolverInterface::~Ma27TSolverInterface() { DBG_START_METH("Ma27TSolverInterface::~Ma27TSolverInterface()", dbg_verbosity); delete [] iw_; delete [] ikeep_; delete [] a_; } void Ma27TSolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "ma27_pivtol", "Pivot tolerance for the linear solver MA27.", 0.0, true, 1.0, true, 1e-8, "A smaller number pivots for sparsity, a larger number pivots for " "stability. This option is only available if Ipopt has been compiled " "with MA27."); roptions->AddBoundedNumberOption( "ma27_pivtolmax", "Maximum pivot tolerance for the linear solver MA27.", 0.0, true, 1.0, true, 1e-4, "Ipopt may increase pivtol as high as pivtolmax to get a more accurate " "solution to the linear system. This option is only available if " "Ipopt has been compiled with MA27."); roptions->AddLowerBoundedNumberOption( "ma27_liw_init_factor", "Integer workspace memory for MA27.", 1.0, false, 5.0, "The initial integer workspace memory = liw_init_factor * memory " "required by unfactored system. Ipopt will increase the workspace " "size by meminc_factor if required. This option is only available if " "Ipopt has been compiled with MA27."); roptions->AddLowerBoundedNumberOption( "ma27_la_init_factor", "Real workspace memory for MA27.", 1.0, false, 5.0, "The initial real workspace memory = la_init_factor * memory " "required by unfactored system. Ipopt will increase the workspace" " size by meminc_factor if required. This option is only available if " " Ipopt has been compiled with MA27."); roptions->AddLowerBoundedNumberOption( "ma27_meminc_factor", "Increment factor for workspace size for MA27.", 1.0, false, 2.0, "If the integer or real workspace is not large enough, " "Ipopt will increase its size by this factor. This option is only " "available if Ipopt has been compiled with MA27."); roptions->AddStringOption2( "ma27_skip_inertia_check", "Always pretend inertia is correct.", "no", "no", "check inertia", "yes", "skip inertia check", "Setting this option to \"yes\" essentially disables inertia check. " "This option makes the algorithm non-robust and easily fail, but it " "might give some insight into the necessity of inertia control."); roptions->AddStringOption2( "ma27_ignore_singularity", "Enables MA27's ability to solve a linear system even if the matrix is singular.", "no", "no", "Don't have MA27 solve singular systems", "yes", "Have MA27 solve singular systems", "Setting this option to \"yes\" means that Ipopt will call MA27 to " "compute solutions for right hand sides, even if MA27 has detected that " "the matrix is singular (but is still able to solve the linear system). " "In some cases this might be better than using Ipopt's heuristic of " "small perturbation of the lower diagonal of the KKT matrix."); } bool Ma27TSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("ma27_pivtol", pivtol_, prefix); if (options.GetNumericValue("ma27_pivtolmax", pivtolmax_, prefix)) { ASSERT_EXCEPTION(pivtolmax_>=pivtol_, OPTION_INVALID, "Option \"ma27_pivtolmax\": This value must be between " "ma27_pivtol and 1."); } else { pivtolmax_ = Max(pivtolmax_, pivtol_); } options.GetNumericValue("ma27_liw_init_factor", liw_init_factor_, prefix); options.GetNumericValue("ma27_la_init_factor", la_init_factor_, prefix); options.GetNumericValue("ma27_meminc_factor", meminc_factor_, prefix); options.GetBoolValue("ma27_skip_inertia_check", skip_inertia_check_, prefix); options.GetBoolValue("ma27_ignore_singularity", ignore_singularity_, prefix); // The following option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); /* Set the default options for MA27 */ F77_FUNC(ma27id,MA27ID)(icntl_, cntl_); #if COIN_IPOPT_VERBOSITY == 0 icntl_[0] = 0; // Suppress error messages icntl_[1] = 0; // Suppress diagnostic messages #endif // Reset all private data initialized_=false; pivtol_changed_ = false; refactorize_ = false; la_increase_=false; liw_increase_=false; if (!warm_start_same_structure_) { dim_=0; nonzeros_=0; } else { ASSERT_EXCEPTION(dim_>0 && nonzeros_>0, INVALID_WARMSTART, "Ma27TSolverInterface called with warm_start_same_structure, but the problem is solved for the first time."); } return true; } ESymSolverStatus Ma27TSolverInterface::MultiSolve(bool new_matrix, const Index* airn, const Index* ajcn, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("Ma27TSolverInterface::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); DBG_ASSERT(la_!=0); if (pivtol_changed_) { DBG_PRINT((1,"Pivot tolerance has changed.\n")); pivtol_changed_ = false; // If the pivot tolerance has been changed but the matrix is not // new, we have to request the values for the matrix again to do // the factorization again. if (!new_matrix) { DBG_PRINT((1,"Ask caller to call again.\n")); refactorize_ = true; return SYMSOLVER_CALL_AGAIN; } } // check if a factorization has to be done DBG_PRINT((1, "new_matrix = %d\n", new_matrix)); if (new_matrix || refactorize_) { // perform the factorization ESymSolverStatus retval; retval = Factorization(airn, ajcn, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } refactorize_ = false; } // do the backsolve return Backsolve(nrhs, rhs_vals); } double* Ma27TSolverInterface::GetValuesArrayPtr() { DBG_START_METH("Ma27TSolverInterface::GetValuesArrayPtr",dbg_verbosity); DBG_ASSERT(initialized_); // If the size of a is to be increase for the next factorization // anyway, delete the current large array and just return enough // to store the values if (la_increase_) { delete [] a_; a_ = NULL; a_ = new double [nonzeros_]; } return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus Ma27TSolverInterface::InitializeStructure(Index dim, Index nonzeros, const Index* airn, const Index* ajcn) { DBG_START_METH("Ma27TSolverInterface::InitializeStructure",dbg_verbosity); ESymSolverStatus retval = SYMSOLVER_SUCCESS; if (!warm_start_same_structure_) { dim_ = dim; nonzeros_ = nonzeros; // Do the symbolic facotrization retval = SymbolicFactorization(airn, ajcn); if (retval != SYMSOLVER_SUCCESS ) { return retval; } } else { ASSERT_EXCEPTION(dim_==dim && nonzeros_==nonzeros, INVALID_WARMSTART, "Ma27TSolverInterface called with warm_start_same_structure, but the problem size has changed."); } initialized_ = true; return retval; } ESymSolverStatus Ma27TSolverInterface::SymbolicFactorization(const Index* airn, const Index* ajcn) { DBG_START_METH("Ma27TSolverInterface::SymbolicFactorization",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // Get memory for the IW workspace delete [] iw_; iw_ = NULL; // Overestimation factor for LIW (20% recommended in MA27 documentation) const double LiwFact = 2.0; // This is 100% overestimation Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma27TSolverInterface::InitializeStructure: Using overestimation factor LiwFact = %e\n", LiwFact); liw_ = (ipfint)(LiwFact*(double(2*nonzeros_+3*dim_+1))); iw_ = new ipfint[liw_]; // Get memory for IKEEP delete [] ikeep_; ikeep_ = NULL; ikeep_ = new ipfint[3*dim_]; if (Jnlst().ProduceOutput(J_MOREMATRIX, J_LINEAR_ALGEBRA)) { Jnlst().Printf(J_MOREMATRIX, J_LINEAR_ALGEBRA, "\nMatrix structure given to MA27 with dimension %d and %d nonzero entries:\n", dim_, nonzeros_); for (Index i=0; i=10) { la_increase_ = true; Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "MA27BD returned ncmpbr=%d. Increase la before the next factorization.\n", ncmpbr); } if (ncmpbi>=10) { liw_increase_ = true; Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "MA27BD returned ncmpbi=%d. Increase liw before the next factorization.\n", ncmpbr); } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of doubles for MA27 to hold factorization (INFO(9)) = %d\n", INFO[8]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of integers for MA27 to hold factorization (INFO(10)) = %d\n", INFO[9]); // Check whether the number of negative eigenvalues matches the requested // count if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } if (!skip_inertia_check_ && check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma27TSolverInterface::Factorization: negevals_ = %d, but numberOfNegEVals = %d\n", negevals_, numberOfNegEVals); return SYMSOLVER_WRONG_INERTIA; } return SYMSOLVER_SUCCESS; } ESymSolverStatus Ma27TSolverInterface::Backsolve(Index nrhs, double *rhs_vals) { DBG_START_METH("Ma27TSolverInterface::Backsolve",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ipfint N=dim_; double* W = new double[maxfrt_]; ipfint* IW1 = new ipfint[nsteps_]; // For each right hand side, call MA27CD for (Index irhs=0; irhs=2) { for (Index i=0; i=2) { for (Index i=0; i roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IterativeWsmpSolverInterface(const IterativeWsmpSolverInterface&); /** Overloaded Equals Operator */ void operator=(const IterativeWsmpSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Array for storing the values of the matrix. */ double* a_; //@} /** @name Solver specific options */ //@{ /** Option that controls the matching strategy. */ Index wsmp_num_threads_; /** Pivol tolerance */ Number wsmp_pivtol_; /** Maximal pivot tolerance */ Number wsmp_pivtolmax_; /** Indicating which of WSMP's scaling methods should be used. */ Index wsmp_scaling_; /** iteration number in which matrices are to be written out */ Index wsmp_write_matrix_iteration_; Number wsmp_inexact_droptol_; Number wsmp_inexact_fillin_limit_; //@} /** Counter for matrix file numbers */ Index matrix_file_number_; /** @name Information about most recent factorization/solve */ //@{ #if 0 /** Number of negative eigenvalues */ Index negevals_; #endif //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; /** Flag indicating if the matrix has to be refactorized because * the pivot tolerance has been changed. */ bool pivtol_changed_; /** Flag indicating whether symbolic factorization and order has * already been performed. */ bool have_symbolic_factorization_; //@} /** @name Solver specific information */ //@{ /** Integer parameter array for WISMP. */ ipfint* IPARM_; /** Double precision parameter array for WISMP. */ double* DPARM_; //@} /** @name Internal functions */ //@{ /** Call Wsmp to do the analysis phase. */ ESymSolverStatus SymbolicFactorization(const Index* ia, const Index* ja); /** Call Wsmp to really do the analysis phase. */ ESymSolverStatus InternalSymFact(const Index* ia, const Index* ja); /** Call Wsmp to factorize the Matrix. */ ESymSolverStatus Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals); /** Call Wsmpx to do the Solve. */ ESymSolverStatus Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/hsl_ma97d.h0000644000076600007660000001603112066060130021704 0ustar coincoin/* * COPYRIGHT (c) 2012 The Science and Technology Facilities Council (STFC) * All Rights Reserved. * This code is published under the Eclipse Public License. * * Authors: Jonathan Hogg STFC 2012-12-21 */ #ifndef HSL_MA97D_H #define HSL_MA97D_H #ifndef ma97_default_control #define ma97_control ma97_control_d #define ma97_info ma97_info_d #define ma97_default_control ma97_default_control_d #define ma97_analyse ma97_analyse_d #define ma97_analyse_coord ma97_analyse_coord_d #define ma97_factor ma97_factor_d #define ma97_factor_solve ma97_factor_solve_d #define ma97_solve ma97_solve_d #define ma97_free_akeep ma97_free_akeep_d #define ma97_free_fkeep ma97_free_fkeep_d #define ma97_finalise ma97_finalise_d #define ma97_enquire_posdef ma97_enquire_posdef_d #define ma97_enquire_indef ma97_enquire_indef_d #define ma97_alter ma97_alter_d #define ma97_solve_fredholm ma97_solve_fredholm_d #define ma97_lmultiply ma97_lmultiply_d #define ma97_sparse_fwd_solve ma97_sparse_fwd_solve_d #endif typedef double ma97pkgtype_d_; typedef double ma97realtype_d_; struct ma97_control_d { int f_arrays; /* Use C or Fortran numbering */ int action; /* Continue on singularity if !=0 (true), otherwise abort */ int nemin; /* Supernode amalgamation if parent and child have fewer than nemin eliminations */ ma97realtype_d_ multiplier;/* Amount of extra memory to allow for delays */ int ordering; /* Control scaling algorithm used: 0 - user supplied order (order absent=identity) 1 - AMD 2 - MD (as in MA27) 3 - METIS nested dissection 4 - MA47 5 - Automatic choice between 1 and 3 */ int print_level; /* <0 for no printing, 0 for basic, >1 for most */ int scaling; /* 0 user/none, 1 mc64, 2 mc77 */ ma97realtype_d_ small; /* Minimum value to count as non-zero */ ma97realtype_d_ u; /* Pivoting parameter */ int unit_diagnostics; /* Fortran unit for diagnostics (<0 disables) */ int unit_error; /* Fortran unit for error msgs (<0 disables) */ int unit_warning; /* Fortran unit for warning msgs (<0 disables) */ long factor_min; /* Min number of flops for parallel execution */ int solve_blas3; /* Use BLAS3 in solve in true, else BLAS2 */ long solve_min; /* Min number of entries for parallel exection */ int solve_mf; /* If true use m/f solve, else use s/n */ ma97realtype_d_ consist_tol; /* Consistent equation tolerance */ /* Reserve space for future interface changes */ int ispare[5]; ma97realtype_d_ rspare[10]; }; struct ma97_info { int flag; /* <0 on error */ int flag68; int flag77; int matrix_dup; /* number duplicate entries in A */ int matrix_rank; /* matrix rank */ int matrix_outrange; /* number of out of range entries in A */ int matrix_missing_diag; /* number of zero diagonal entries in A */ int maxdepth; /* height of assembly tree */ int maxfront; /* maximum dimension of frontal matrix */ int num_delay; /* number of times a pivot was delayed */ long num_factor; /* number of entries in L */ long num_flops; /* number of floating point operations */ int num_neg; /* number of negative pivots */ int num_sup; /* number of supernodes in assembly tree */ int num_two; /* number of 2x2 pivots */ int ordering; /* ordering used (as per control.ordering) */ int stat; /* error code from failed memory allocation */ /* Reserve space for future interface changes */ int ispare[5]; ma97realtype_d_ rspare[10]; }; /* Set default values of control */ void ma97_default_control_d(struct ma97_control_d *control); /* Perform symbolic analysis of matrix (sparse column entry) */ void ma97_analyse_d(int check, int n, const int ptr[], const int row[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control_d *control, struct ma97_info_d *info, int order[]); /* Perform symbolic analysis of matrix (coordinate entry) */ void ma97_analyse_coord_d(int n, int ne, const int row[], const int col[], ma97pkgtype_d_ val[], void **akeep, const struct ma97_control_d *control, struct ma97_info_d *info, int order[]); /* Perform numerical factorization, following call to ma97_analyse */ void ma97_factor_d(int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info, ma97realtype_d_ scale[]); /* Perform numerical factorization and solve, following call to ma97_analyse */ void ma97_factor_solve_d(int matrix_type, const int ptr[], const int row[], const ma97pkgtype_d_ val[], int nrhs, ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info, ma97realtype_d_ scale[]); /* Perform forward and back substitutions, following call to ma97_factor */ void ma97_solve_d(int job, int nrhs, ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info); /* Free memory in akeep */ void ma97_free_akeep_d(void **akeep); /* Free memory in fkeep */ void ma97_free_fkeep_d(void **fkeep); /* Free memory in akeep and fkeep */ void ma97_finalise_d(void **akeep, void **fkeep); /* Return diagonal entries of L */ void ma97_enquire_posdef_d(void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, ma97realtype_d_ d[]); /* Return diagonal, subdiagonal and/or pivot order of D */ void ma97_enquire_indef_d(void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info, int *piv_order, ma97pkgtype_d_ *d); /* Alter diagonal and subdiagonal of D */ void ma97_alter_d(const ma97pkgtype_d_ d[], void **akeep, void **fkeep, const struct ma97_control *control, struct ma97_info *info); /* Fredholm alternative for singular systems */ void ma97_solve_fredholm_d(int nrhs, int flag_out[], ma97pkgtype_d_ x[], int ldx, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info); /* Form (S^{-1}PL) X or (S^{-1}PL)^T X */ void ma97_lmultiply_d(int trans, int k, const ma97pkgtype_d_ x[], int ldx, ma97pkgtype_d_ y[], int ldy, void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info); /* Perform a sparse forward solve */ void ma97_sparse_fwd_solve_d(int nbi, const int bindex[], const ma97pkgtype_d_ b[], const int order[], int *nxi, int xindex[], ma97pkgtype_d_ x[], void **akeep, void **fkeep, const struct ma97_control_d *control, struct ma97_info_d *info); #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpTSymLinearSolver.hpp0000644000076600007660000001741012132274713024202 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTSymLinearSolver.hpp 2206 2013-04-13 15:29:15Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-03-17 #ifndef __IPTSYMLINEARSOLVER_HPP__ #define __IPTSYMLINEARSOLVER_HPP__ #include "IpSymLinearSolver.hpp" #include "IpSparseSymLinearSolverInterface.hpp" #include "IpTSymScalingMethod.hpp" #include "IpSymMatrix.hpp" #include "IpTripletToCSRConverter.hpp" #include #include namespace Ipopt { /** General driver for linear solvers for sparse indefinite * symmetric matrices. This interface includes a call to a method * for scaling of the matrix (if given). This class takes in the * contructor a pointer to the interface to an actual linear * solver, and possibly a pointer to a method for computing scaling * factors. It translates the SymMatrix into the format required * by the linear solver and calls the solver via the * TSymLinearSolverInterface. If a scaling method has been given, * the matrix, the right hand side, and the solution are scaled. */ class TSymLinearSolver: public SymLinearSolver { public: /** @name Constructor/Destructor */ //@{ /** Constructor. The solver_interface is a pointer to a linear * solver for symmetric matrices in triplet format. If * scaling_method not NULL, it must be a pointer to a class for * computing scaling factors for the matrix. */ TSymLinearSolver(SmartPtr solver_interface, SmartPtr scaling_method); /** Destructor */ virtual ~TSymLinearSolver(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Solve operation for multiple right hand sides. For details * see the description in the base class SymLinearSolver. */ virtual ESymSolverStatus MultiSolve(const SymMatrix &A, std::vector >& rhsV, std::vector >& solV, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. * Ask linear solver to increase quality of solution for the next * solve (e.g. increase pivot tolerance). Returns false, if this * is not possible (e.g. maximal pivot tolerance already used.) */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const; //@} /** @name Methods related to the detection of linearly dependent * rows in a matrix */ //@{ /** Returns true if the underlying linear solver can detect the * linearly dependent rows in a matrix */ bool ProvidesDegeneracyDetection() const; /** Given the entries of a matrix in Triplet format, this method * determines the list of row indices of the linearly dependent * rows. This is a specific implementation for Triplet * matrices. */ ESymSolverStatus DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps); //@} /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ TSymLinearSolver(); /** Copy Constructor */ TSymLinearSolver(const TSymLinearSolver&); /** Overloaded Equals Operator */ void operator=(const TSymLinearSolver&); //@} /** @name Information about the matrix */ //@{ /** Tag for the incoming matrix */ TaggedObject::Tag atag_; /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix in triplet format. Note that * some elements might appear multiple times in which case the * values are added. */ Index nonzeros_triplet_; /** Number of nonzeros in compressed format. This is only * computed if the sparse linear solver works with the CSR * format. */ Index nonzeros_compressed_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if the internal structures are initialized. * For initialization, this object needs to have seen a matrix */ bool have_structure_; /** Flag indicating whether the scaling objected is to be switched * on when increased quality is requested */ bool linear_scaling_on_demand_; /** Flag indicating if the InitializeStructure method has been * called for the linear solver. */ bool initialized_; //@} /** Strategy Object for an interface to a linear solver. */ SmartPtr solver_interface_; /** @name Stuff for scaling of the linear system. */ //@{ /** Strategy Object for a method that computes scaling factors for * the matrices. If NULL, no scaling is performed. */ SmartPtr scaling_method_; /** Array storing the scaling factors */ double* scaling_factors_; /** Flag indicating whether scaling should be performed */ bool use_scaling_; /** Flag indicating whether we just switched on the scaling */ bool just_switched_on_scaling_; //@} /** @name information about the matrix. */ //@{ /** row indices of matrix in triplet (MA27) format. */ Index* airn_; /** column indices of matrix in triplet (MA27) format. */ Index* ajcn_; /** Pointer to object for conversion from triplet to compressed * format. This is only required if the linear solver works with * the compressed representation. */ SmartPtr triplet_to_csr_converter_; /** Flag indicating what matrix data format the solver requires. */ SparseSymLinearSolverInterface::EMatrixFormat matrix_format_; //@} /** @name Algorithmic parameters */ //@{ /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; //@} /** @name Internal functions */ //@{ /** Initialize nonzero structure. * Set dim_ and nonzeros_, and copy the nonzero structure of symT_A * into airn_ and ajcn_ */ ESymSolverStatus InitializeStructure(const SymMatrix& symT_A); /** Copy the elements of the matrix in the required format into * the array that is provided by the solver interface. */ void GiveMatrixToSolver(bool new_matrix, const SymMatrix& sym_A); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa86SolverInterface.hpp0000644000076600007660000002446612156621430024516 0ustar coincoin// Copyright (C) 2011, Science and Technology Facilities Council // Copyright (C) 2009, Jonathan Hogg // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa86SolverInterface.hpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Jonathan Hogg STFC 2011-03-14 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #ifndef __IPMA86SOLVERINTERFACE_HPP__ #define __IPMA86SOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" extern "C" { #include "hsl_ma86d.h" } namespace Ipopt { /** Base class for interfaces to symmetric indefinite linear solvers * for sparse matrices. * * This defines the general interface to linear solvers for sparse * symmetric indefinite matrices. The matrices can be provided * either in "triplet format" (like for Harwell's MA27 solver), or * in compressed sparse row (CSR) format for the lower triangular * part of the symmetric matrix. * * The solver should be able to compute the interia of the matrix, * or more specifically, the number of negative eigenvalues in the * factorized matrix. * * This interface is used by the calling objective in the following * way: * * 1. The InitializeImpl method is called at the very beginning * (for every optimization run), which allows the linear solver * object to retrieve options given in the OptionsList (such as * pivot tolerances etc). At this point, some internal data can * also be initialized. * * 2. The calling class calls MatrixFormat to find out which matrix * representation the linear solver requires. The possible options * are Triplet_Format, as well as CSR_Format_0_Offset and * CSR_Format_1_Offset. The difference between the last two is * that for CSR_Format_0_Offset the couning of the element position * in the ia and ja arrays starts are 0 (C-style numbering), * whereas for the other one it starts at 1 (Fortran-style * numbering). * * 3. After this, the InitializeStructure method is called (once). * Here, the structure of the matrix is provided. If the linear * solver requires a symbolic preprocessing phase that can be done * without knowledge of the matrix element values, it can be done * here. * * 4. The calling class will request an array for storing the * actual values for a matrix using the GetValuesArrayPtr method. * This array must be at least as large as the number of nonzeros * in the matrix (as given to this class by the InitializeStructure * method call). After a call of this method, the calling class * will fill this array with the actual values of the matrix. * * 5. Every time lateron, when actual solves of a linear system is * requested, the calling class will call the MultiSolve to request * the solve, possibly for mulitple right-hand sides. The flag * new_matrix then indicates if the values of the matrix have * changed and if a factorization is required, or if an old * factorization can be used to do the solve. * * Note that the GetValuesArrayPtr method will be called before * every call of MultiSolve with new_matrix=true, or before a * renewed call of MultiSolve if the most previous return value was * SYMSOLV_CALL_AGAIN. * * 6. The calling class might request with NumberOfNegEVals the * number of the negative eigenvalues for the original matrix that * were detected during the most recently performed factorization. * * 7. The calling class might ask the linear solver to increase the * quality of the solution. For example, if the linear solver uses * a pivot tolerance, a larger value should be used for the next * solve (which might require a refactorization). * * 8. Finally, when the destructor is called, the internal storage, * also in the linear solver, should be released. * * Note, if the matrix is given in triplet format, entries might be * listed multiple times, in which case the corresponsing elements * have to be added. * * A note for warm starts: If the option * "warm_start_same_structure" is specified with "yes", the * algorithm assumes that a problem with the same sparsity * structure is solved for a repeated time. In that case, the * linear solver might reuse information from the previous * optimization. See Ma27TSolverInterface for an example. */ class Ma86SolverInterface: public SparseSymLinearSolverInterface { private: enum order_opts { ORDER_AUTO, ORDER_AMD, ORDER_METIS }; int ndim_; // Number of dimensions double *val_; // Storage for variables int numneg_; // Number of negative pivots in last factorization Index *order_; // Fill reducing permutation void *keep_; // Stores pointer to factors (only understood by Fortran code!) bool pivtol_changed_; // indicates if pivtol has been changed /* Options */ struct ma86_control control_; double umax_; int ordering_; public: Ma86SolverInterface() : val_(NULL), keep_(NULL), pivtol_changed_(false) {} ~Ma86SolverInterface(); static void RegisterOptions(SmartPtr roptions); bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja); /** Method returning an internal array into which the nonzero * elements (in the same order as ja) will be stored by the * calling routine before a call to MultiSolve with a * new_matrix=true (or after a return of MultiSolve with * SYMSOLV_CALL_AGAIN). The returned array must have space for at * least nonzero elements. */ double* GetValuesArrayPtr() { return val_; } /** Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ Index NumberOfNegEVals() const { return numneg_; } //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. The * calling class asks linear solver to increase quality of * solution for the next solve (e.g. increase pivot tolerance). * Returns false, if this is not possible (e.g. maximal pivot * tolerance already used.) */ bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. Returns * true, if linear solver provides inertia. */ bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Format_1_Offset; } //@} /** @name Methods related to the detection of linearly dependent * rows in a matrix */ //@{ /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ bool ProvidesDegeneracyDetection() const { return false; } /** This method determines the list of row indices of the linearly * dependent rows. */ ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { return SYMSOLVER_FATAL_ERROR; } }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/hsl_ma86d.h0000644000076600007660000001174711642105452021721 0ustar coincoin/* * COPYRIGHT (c) 2011 Science and Technology Facilities Council (STFC) * All Rights Reserved. * This code is published under the Eclipse Public License. * * Authors: Jonathan Hogg STFC 2011-02-25 */ #ifndef HSL_MA86D_H #define HSL_MA86D_H #ifndef ma86_default_control #define ma86_control ma86_control_d #define ma86_info ma86_info_d #define ma86_default_control ma86_default_control_d #define ma86_analyse ma86_analyse_d #define ma86_factor ma86_factor_d #define ma86_factor_solve ma86_factor_solve_d #define ma86_solve ma86_solve_d #define ma86_finalise ma86_finalise_d #endif typedef double ma86pkgtype_d_; typedef double ma86realtype_d_; /* Data type for user controls */ struct ma86_control_d { /* Note: 0 is false, non-zero is true */ /* C/Fortran interface related controls */ int f_arrays; /* Treat arrays as 1-based (Fortran) if true or 0-based (C) if false. */ /* Printing controls */ int diagnostics_level; /* Controls diagnostic printing.*/ /* Possible values are: < 0: no printing. 0: error and warning messages only. 1: as 0 plus basic diagnostic printing. 2: as 1 plus some more detailed diagnostic messages. 3: as 2 plus all entries of user-supplied arrays. */ int unit_diagnostics; /* unit for diagnostic messages Printing is suppressed if unit_diagnostics < 0. */ int unit_error; /* unit for error messages Printing is suppressed if unit_error < 0. */ int unit_warning; /* unit for warning messages Printing is suppressed if unit_warning < 0. */ /* Controls used by ma86_analyse */ int nemin; /* Node amalgamation parameter. A child node is merged with its parent if they both involve fewer than nemin eliminations.*/ int nb; /* Controls the size of the blocks used within each node (used to set nb within node_type)*/ /* Controls used by ma86_factor and ma86_factor_solve */ int action; /* Keep going even if matrix is singular if true, or abort if false */ int nbi; /* Inner block size for use with ma64*/ int pool_size; /* Size of task pool arrays*/ ma86realtype_d_ small_; /* Pivots less than small are treated as zero*/ ma86realtype_d_ static_;/* Control static pivoting*/ ma86realtype_d_ u; /* Pivot tolerance*/ ma86realtype_d_ umin; /* Minimum pivot tolerance*/ int scaling; /* Scaling algorithm to use */ }; /***************************************************/ /* data type for returning information to user.*/ struct ma86_info_d { ma86realtype_d_ detlog; /* Holds logarithm of abs det A (or 0) */ int detsign; /* Holds sign of determinant (+/-1 or 0) */ int flag; /* Error return flag (0 on success) */ int matrix_rank; /* Rank of matrix */ int maxdepth; /* Maximum depth of the tree. */ int num_delay; /* Number of delayed pivots */ long num_factor; /* Number of entries in the factor. */ long num_flops; /* Number of flops for factor. */ int num_neg; /* Number of negative pivots */ int num_nodes; /* Number of nodes */ int num_nothresh; /* Number of pivots not satisfying u */ int num_perturbed; /* Number of perturbed pivots */ int num_two; /* Number of 2x2 pivots */ int pool_size; /* Maximum size of task pool used */ int stat; /* STAT value on error return -1. */ ma86realtype_d_ usmall; /* smallest threshold parameter used */ }; /* Initialise control with default values */ void ma86_default_control_d(struct ma86_control_d *control); /* Analyse the sparsity pattern and prepare for factorization */ void ma86_analyse_d(const int n, const int ptr[], const int row[], int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info); /* To factorize the matrix */ void ma86_factor_d(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const ma86realtype_d_ scale[]); /* To factorize the matrix AND solve AX = B */ void ma86_factor_solve_d(const int n, const int ptr[], const int row[], const ma86pkgtype_d_ val[], const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const int nrhs, const int ldx, ma86pkgtype_d_ x[], const ma86realtype_d_ scale[]); /* To solve AX = B using the computed factors */ void ma86_solve_d(const int job, const int nrhs, const int ldx, ma86pkgtype_d_ *x, const int order[], void **keep, const struct ma86_control_d *control, struct ma86_info_d *info, const ma86realtype_d_ scale[]); /* To clean up memory in keep */ void ma86_finalise_d(void **keep, const struct ma86_control_d *control); #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpWsmpSolverInterface.cpp0000644000076600007660000006525311504216567024732 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpWsmpSolverInterface.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2006-01-04 // #include "IpoptConfig.h" #include "IpWsmpSolverInterface.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif /** Prototypes for WSMP's subroutines */ extern "C" { void F77_FUNC(wsetmaxthrds,WSETMAXTHRDS)(const ipfint* NTHREADS); void F77_FUNC(wssmp,WSSMP)(const ipfint* N, const ipfint* IA, const ipfint* JA, const double* AVALS, double* DIAG, ipfint* PERM, ipfint* INVP, double* B, const ipfint* LDB, const ipfint* NRHS, double* AUX, const ipfint* NAUX, ipfint* MRP, ipfint* IPARM, double* DPARM); void F77_FUNC_(wsmp_clear,WSMP_CLEAR)(void); #ifdef PARDISO_MATCHING_PREPROCESS void smat_reordering_pardiso_wsmp_(const ipfint* N, const ipfint* ia, const ipfint* ja, const double* a_, ipfint* a2, ipfint* ja2, double* a2_, ipfint* perm2, double* scale2, ipfint* tmp2_, ipfint preprocess ); #endif } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 3; #endif WsmpSolverInterface::WsmpSolverInterface() : a_(NULL), #ifdef PARDISO_MATCHING_PREPROCESS ia2(NULL), ja2(NULL), a2_(NULL), perm2(NULL), scale2(NULL), #endif negevals_(-1), initialized_(false), PERM_(NULL), INVP_(NULL), MRP_(NULL) { DBG_START_METH("WsmpSolverInterface::WsmpSolverInterface()",dbg_verbosity); IPARM_ = new ipfint[64]; DPARM_ = new double[64]; } WsmpSolverInterface::~WsmpSolverInterface() { DBG_START_METH("WsmpSolverInterface::~WsmpSolverInterface()", dbg_verbosity); // Clear WSMP's memory F77_FUNC_(wsmp_clear,WSMP_CLEAR)(); #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; delete[] ja2; delete[] a2_; delete[] perm2; delete[] scale2; #endif delete[] PERM_; delete[] INVP_; delete[] MRP_; delete[] IPARM_; delete[] DPARM_; delete[] a_; } void WsmpSolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddIntegerOption( "wsmp_num_threads", "Number of threads to be used in WSMP", 1, "This determines on how many processors WSMP is running on. This option " "is only available if Ipopt has been compiled with WSMP."); roptions->AddBoundedIntegerOption( "wsmp_ordering_option", "Determines how ordering is done in WSMP (IPARM(16)", -2, 3, 1, "This corresponds to the value of WSSMP's IPARM(16). This option is " "only available if Ipopt has been compiled with WSMP."); roptions->AddBoundedIntegerOption( "wsmp_ordering_option2", "Determines how ordering is done in WSMP (IPARM(20)", 0, 3, 1, "This corresponds to the value of WSSMP's IPARM(20). This option is " "only available if Ipopt has been compiled with WSMP."); roptions->AddBoundedNumberOption( "wsmp_pivtol", "Pivot tolerance for the linear solver WSMP.", 0.0, true, 1.0, true, 1e-4, "A smaller number pivots for sparsity, a larger number pivots for " "stability. This option is only available if Ipopt has been compiled " "with WSMP."); roptions->AddBoundedNumberOption( "wsmp_pivtolmax", "Maximum pivot tolerance for the linear solver WSMP.", 0.0, true, 1.0, true, 1e-1, "Ipopt may increase pivtol as high as pivtolmax to get a more accurate " "solution to the linear system. This option is only available if Ipopt " "has been compiled with WSMP."); roptions->AddBoundedIntegerOption( "wsmp_scaling", "Determines how the matrix is scaled by WSMP.", 0, 3, 0, "This corresponds to the value of WSSMP's IPARM(10). " "This option is only available if Ipopt has been compiled " "with WSMP."); roptions->AddBoundedNumberOption( "wsmp_singularity_threshold", "WSMP's singularity threshold.", 0.0, true, 1.0, true, 1e-18, "WSMP's DPARM(10) parameter. The smaller this value the less likely " "a matrix is declared singular. This option is only available if Ipopt " "has been compiled with WSMP."); roptions->SetRegisteringCategory("Uncategorized"); roptions->AddLowerBoundedIntegerOption( "wsmp_write_matrix_iteration", "Iteration in which the matrices are written to files.", -1, -1, "If non-negative, this option determines the iteration in which all " "matrices given to WSMP are written to files. This option is only " "available if Ipopt has been compiled with WSMP."); roptions->AddStringOption2( "wsmp_skip_inertia_check", "Always pretent inertia is correct.", "no", "no", "check inertia", "yes", "skip inertia check", "Setting this option to \"yes\" essentially disables inertia check. " "This option makes the algorithm non-robust and easily fail, but it " "might give some insight into the necessity of inertia control."); roptions->AddStringOption2( "wsmp_no_pivoting", "Use the static pivoting option of WSMP.", "no", "no", "use the regular version", "yes", "use static pivoting", "Setting this option to \"yes\" means that WSMP instructed not to do " "pivoting. This works only in certain situations (when the Hessian " "block is known to be positive definite or when we are using L-BFGS). " "It can also lead to a lot of fill-in."); } bool WsmpSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetIntegerValue("wsmp_num_threads", wsmp_num_threads_, prefix); Index wsmp_ordering_option; options.GetIntegerValue("wsmp_ordering_option", wsmp_ordering_option, prefix); Index wsmp_ordering_option2; options.GetIntegerValue("wsmp_ordering_option2", wsmp_ordering_option2, prefix); options.GetNumericValue("wsmp_pivtol", wsmp_pivtol_, prefix); if (options.GetNumericValue("wsmp_pivtolmax", wsmp_pivtolmax_, prefix)) { ASSERT_EXCEPTION(wsmp_pivtolmax_>=wsmp_pivtol_, OPTION_INVALID, "Option \"wsmp_pivtolmax\": This value must be between " "wsmp_pivtol and 1."); } else { wsmp_pivtolmax_ = Max(wsmp_pivtolmax_, wsmp_pivtol_); } options.GetNumericValue("wsmp_singularity_threshold", wsmp_singularity_threshold_, prefix); options.GetIntegerValue("wsmp_scaling", wsmp_scaling_, prefix); options.GetIntegerValue("wsmp_write_matrix_iteration", wsmp_write_matrix_iteration_, prefix); options.GetBoolValue("wsmp_skip_inertia_check", skip_inertia_check_, prefix); options.GetBoolValue("wsmp_no_pivoting", wsmp_no_pivoting_, prefix); // Reset all private data dim_=0; initialized_=false; printed_num_threads_ = false; pivtol_changed_ = false; have_symbolic_factorization_ = false; factorizations_since_recomputed_ordering_ = -1; delete[] a_; a_ = NULL; delete[] PERM_; PERM_ = NULL; delete[] INVP_; INVP_ = NULL; delete[] MRP_; MRP_ = NULL; #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; ia2 = NULL; delete[] ja2; ja2 = NULL; delete[] a2_; a2_ = NULL; delete[] perm2; perm2 = NULL; delete[] scale2; scale2 = NULL; #endif // Set the number of threads ipfint NTHREADS = wsmp_num_threads_; F77_FUNC(wsetmaxthrds,WSETMAXTHRDS)(&NTHREADS); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "WSMP will use %d threads.\n", wsmp_num_threads_); // Get WSMP's default parameters and set the ones we want differently IPARM_[0] = 0; IPARM_[1] = 0; IPARM_[2] = 0; ipfint idmy; double ddmy; F77_FUNC(wssmp,WSSMP)(&idmy, &idmy, &idmy, &ddmy, &ddmy, &idmy, &idmy, &ddmy, &idmy, &idmy, &ddmy, &idmy, &idmy, IPARM_, DPARM_); IPARM_[15] = wsmp_ordering_option; // ordering option IPARM_[17] = 0; // use local minimum fill-in ordering IPARM_[19] = wsmp_ordering_option2; // for ordering in IP methods? if (wsmp_no_pivoting_) { IPARM_[30] = 1; // want L D L^T factorization with diagonal no pivoting IPARM_[26] = 1; } else { IPARM_[30] = 2; // want L D L^T factorization with diagonal with pivoting } // pivoting (Bunch/Kaufman) //IPARM_[31] = 1; // need D to see where first negative eigenvalue occurs // if we change this, we need DIAG arguments below! IPARM_[10] = 2; // Mark bad pivots // Set WSMP's scaling option IPARM_[9] = wsmp_scaling_; DPARM_[9] = wsmp_singularity_threshold_; matrix_file_number_ = 0; // Check for SPINLOOPTIME and YIELDLOOPTIME? return true; } ESymSolverStatus WsmpSolverInterface::MultiSolve( bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("WsmpSolverInterface::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); if (!printed_num_threads_) { Jnlst().Printf(J_ITERSUMMARY, J_LINEAR_ALGEBRA, " -- WSMP is working with %d thread%s.\n", IPARM_[32], IPARM_[32]==1 ? "" : "s"); printed_num_threads_ = true; } // check if a factorization has to be done if (new_matrix || pivtol_changed_) { pivtol_changed_ = false; // perform the factorization ESymSolverStatus retval; retval = Factorization(ia, ja, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } } // do the solve return Solve(ia, ja, nrhs, rhs_vals); } double* WsmpSolverInterface::GetValuesArrayPtr() { DBG_ASSERT(initialized_); DBG_ASSERT(a_); return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus WsmpSolverInterface::InitializeStructure (Index dim, Index nonzeros, const Index* ia, const Index* ja) { DBG_START_METH("WsmpSolverInterface::InitializeStructure",dbg_verbosity); dim_ = dim; nonzeros_ = nonzeros; // Make space for storing the matrix elements delete[] a_; a_ = NULL; a_ = new double[nonzeros]; // Do the symbolic facotrization ESymSolverStatus retval = SymbolicFactorization(ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } initialized_ = true; return retval; } ESymSolverStatus WsmpSolverInterface::SymbolicFactorization( const Index* ia, const Index* ja) { DBG_START_METH("WsmpSolverInterface::SymbolicFactorization", dbg_verbosity); // This is postponed until the first factorization call, since // then the values in the matrix are known return SYMSOLVER_SUCCESS; } ESymSolverStatus WsmpSolverInterface::InternalSymFact( const Index* ia, const Index* ja, Index numberOfNegEVals) { if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // Create space for the permutations delete [] PERM_; PERM_ = NULL; delete [] INVP_; INVP_ = NULL; delete [] MRP_; MRP_ = NULL; PERM_ = new ipfint[dim_]; INVP_ = new ipfint[dim_]; MRP_ = new ipfint[dim_]; ipfint N = dim_; #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; ia2 = NULL; delete[] ja2; ja2 = NULL; delete[] a2_; a2_ = NULL; delete[] perm2; perm2 = NULL; delete[] scale2; scale2 = NULL; ia2 = new ipfint[N+1]; ja2 = new ipfint[nonzeros_]; a2_ = new double[nonzeros_]; perm2 = new ipfint[N]; scale2 = new double[N]; ipfint* tmp2_ = new ipfint[N]; smat_reordering_pardiso_wsmp_(&N, ia, ja, a_, ia2, ja2, a2_, perm2, scale2, tmp2_, 0); delete[] tmp2_; #endif // Call WSSMP for ordering and symbolic factorization ipfint NAUX = 0; IPARM_[1] = 1; // ordering IPARM_[2] = 2; // symbolic factorization #ifdef PARDISO_MATCHING_PREPROCESS IPARM_[9] = 2; // switch off WSMP's ordering and scaling IPARM_[15] = -1; // switch off WSMP's ordering and scaling IPARM_[30] = 6; // next step supernode pivoting , since not implemented // =2 regular Bunch/Kaufman // =1 no pivots // =6 limited pivots DPARM_[21] = 2e-8; // set pivot perturbation #endif ipfint idmy; double ddmy; if (wsmp_no_pivoting_) { IPARM_[14] = dim_ - numberOfNegEVals; // CHECK Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Restricting WSMP static pivot sequence with IPARM(15) = %d\n", IPARM_[14]); } Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling WSSMP-1-2 for ordering and symbolic factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); #ifdef PARDISO_MATCHING_PREPROCESS F77_FUNC(wssmp,WSSMP)(&N, ia2, ja2, a2_, &ddmy, PERM_, INVP_, #else F77_FUNC(wssmp,WSSMP)(&N, ia, ja, a_, &ddmy, PERM_, INVP_, #endif &ddmy, &idmy, &idmy, &ddmy, &NAUX, MRP_, IPARM_, DPARM_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with WSSMP-1-2 for ordering and symbolic factorization at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); Index ierror = IPARM_[63]; if (ierror!=0) { if (ierror==-102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WSMP is not able to allocate sufficient amount of memory during ordering/symbolic factorization.\n"); } else if (ierror>0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Matrix appears to be singular (with ierror = %d).\n", ierror); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_SINGULAR; } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WSMP during ordering/symbolic factorization phase.\n Error code is %d.\n", ierror); } if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Predicted memory usage for WSSMP after symbolic factorization IPARM(23)= %d.\n", IPARM_[22]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Predicted number of nonzeros in factor for WSSMP after symbolic factorization IPARM(23)= %d.\n", IPARM_[23]); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_SUCCESS; } ESymSolverStatus WsmpSolverInterface::Factorization( const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("WsmpSolverInterface::Factorization",dbg_verbosity); // If desired, write out the matrix Index iter_count = -1; if (HaveIpData()) { iter_count = IpData().iter_count(); } if (iter_count == wsmp_write_matrix_iteration_) { matrix_file_number_++; char buf[256]; Snprintf(buf, 255, "wsmp_matrix_%d_%d.dat", iter_count, matrix_file_number_); Jnlst().Printf(J_SUMMARY, J_LINEAR_ALGEBRA, "Writing WSMP matrix into file %s.\n", buf); FILE* fp = fopen(buf, "w"); fprintf(fp, "%d\n", dim_); // N for (Index icol=0; icol 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "WSMP detected that the matrix is singular and encountered %d zero pivots.\n", dim_+1-ierror); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_SINGULAR; } else if (ierror != 0) { if (ierror == -102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WSMP is not able to allocate sufficient amount of memory during factorization.\n"); } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WSMP during factorization phase.\n Error code is %d.\n", ierror); } if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Memory usage for WSSMP after factorization IPARM(23) = %d\n", IPARM_[22]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of nonzeros in WSSMP after factorization IPARM(24) = %d\n", IPARM_[23]); if (factorizations_since_recomputed_ordering_ != -1) { factorizations_since_recomputed_ordering_++; } negevals_ = IPARM_[21]; // Number of negative eigenvalues determined during factorization // Check whether the number of negative eigenvalues matches the requested // count if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Wrong inertia: required are %d, but we got %d.\n", numberOfNegEVals, negevals_); if (skip_inertia_check_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " But wsmp_skip_inertia_check is set. Ignore inertia.\n"); IpData().Append_info_string("IC "); negevals_ = numberOfNegEVals; } else { if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_WRONG_INERTIA; } } if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_SUCCESS; } ESymSolverStatus WsmpSolverInterface::Solve( const Index* ia, const Index* ja, Index nrhs, double *rhs_vals) { DBG_START_METH("WsmpSolverInterface::Solve",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } // Call WSMP to solve for some right hand sides (including // iterative refinement) // ToDo: Make iterative refinement an option? ipfint N = dim_; ipfint LDB = dim_; ipfint NRHS = nrhs; ipfint NAUX = 0; IPARM_[1] = 4; // Forward and Backward Elimintation IPARM_[2] = 5; // Iterative refinement IPARM_[5] = 1; DPARM_[5] = 1e-12; double ddmy; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling WSSMP-4-5 for backsolve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); #ifdef PARDISO_MATCHING_PREPROCESS double* X = new double[nrhs*N]; // Initialize solution with zero and save right hand side for (int i = 0; i < nrhs*N; i++) { X[perm2[i]] = scale2[i] * rhs_vals[i]; } F77_FUNC(wssmp,WSSMP)(&N, ia, ja, a_, &ddmy, PERM_, INVP_, X, &LDB, &NRHS, &ddmy, &NAUX, MRP_, IPARM_, DPARM_); for (int i = 0; i < N; i++) { rhs_vals[i] = scale2[i]*X[perm2[i]]; } #else F77_FUNC(wssmp,WSSMP)(&N, ia, ja, a_, &ddmy, PERM_, INVP_, rhs_vals, &LDB, &NRHS, &ddmy, &NAUX, MRP_, IPARM_, DPARM_); #endif Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with WSSMP-4-5 for backsolve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } Index ierror = IPARM_[63]; if (ierror!=0) { if (ierror==-102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WSMP is not able to allocate sufficient amount of memory during ordering/symbolic factorization.\n"); } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WSMP during ordering/symbolic factorization phase.\n Error code is %d.\n", ierror); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of iterative refinement steps in WSSMP: %d\n", IPARM_[5]); #ifdef PARDISO_MATCHING_PREPROCESS delete [] X; #endif return SYMSOLVER_SUCCESS; } Index WsmpSolverInterface::NumberOfNegEVals() const { DBG_START_METH("WsmpSolverInterface::NumberOfNegEVals",dbg_verbosity); DBG_ASSERT(negevals_>=0); return negevals_; } bool WsmpSolverInterface::IncreaseQuality() { DBG_START_METH("WsmpSolverInterface::IncreaseQuality",dbg_verbosity); if (factorizations_since_recomputed_ordering_ == -1 || factorizations_since_recomputed_ordering_ > 2) { DPARM_[14] = 1.0; pivtol_changed_ = true; IpData().Append_info_string("RO "); factorizations_since_recomputed_ordering_ = 0; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Triggering WSMP's recomputation of the ordering for next factorization.\n"); return true; } if (wsmp_pivtol_ == wsmp_pivtolmax_) { return false; } pivtol_changed_ = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing pivot tolerance for WSMP from %7.2e ", wsmp_pivtol_); wsmp_pivtol_ = Min(wsmp_pivtolmax_, pow(wsmp_pivtol_,0.75)); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e.\n", wsmp_pivtol_); return true; } bool WsmpSolverInterface::ProvidesDegeneracyDetection() const { return true; } ESymSolverStatus WsmpSolverInterface:: DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { DBG_START_METH("WsmpSolverInterface::DetermineDependentRows", dbg_verbosity); c_deps.clear(); ASSERT_EXCEPTION(!wsmp_no_pivoting_, OPTION_INVALID, "WSMP dependency detection does not work without pivoting."); if (!have_symbolic_factorization_) { ESymSolverStatus retval = InternalSymFact(ia, ja, 0); if (retval != SYMSOLVER_SUCCESS) { return retval; } have_symbolic_factorization_ = true; } // Call WSSMP for numerical factorization to detect degenerate // rows/columns ipfint N = dim_; ipfint NAUX = 0; IPARM_[1] = 3; // numerical factorization IPARM_[2] = 3; // numerical factorization DPARM_[10] = wsmp_pivtol_; // set current pivot tolerance ipfint idmy; double ddmy; #ifdef PARDISO_MATCHING_PREPROCESS F77_FUNC(wssmp,WSSMP)(&N, ia2, ja2, a2_, &ddmy, PERM_, INVP_, &ddmy, &idmy, &idmy, &ddmy, &NAUX, MRP_, IPARM_, DPARM_); #else F77_FUNC(wssmp,WSSMP)(&N, ia, ja, a_, &ddmy, PERM_, INVP_, &ddmy, &idmy, &idmy, &ddmy, &NAUX, MRP_, IPARM_, DPARM_); #endif const Index ierror = IPARM_[63]; if (ierror == 0) { int ii = 0; for (int i=0; i 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "WSMP detected that the matrix is singular and encountered %d zero pivots.\n", dim_+1-ierror); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_SINGULAR; } else if (ierror != 0) { if (ierror == -102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WSMP is not able to allocate sufficient amount of memory during factorization.\n"); } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WSMP during factorization phase.\n Error code is %d.\n", ierror); } if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_FATAL_ERROR; } return SYMSOLVER_SUCCESS; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpTDependencyDetector.hpp0000644000076600007660000000447711504216567024672 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTDependencyDetector.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-04-17 #ifndef __IPTDEPENDENCYDETECTOR_HPP__ #define __IPTDEPENDENCYDETECTOR_HPP__ #include "IpAlgStrategy.hpp" #include namespace Ipopt { /** Base class for all derived algorithms for detecting linearly * dependent rows in the constraint Jacobian. */ class TDependencyDetector: public AlgorithmStrategyObject { public: /** @name Constructor/Destructor */ //@{ TDependencyDetector() {} virtual ~TDependencyDetector() {} //@} /** Has to be called to initialize and reset these objects. */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method determining the number of linearly dependent rows in * the matrix and the indices of those rows. We assume that the * matrix is available in "Triplet" format (MA28 format), and * that the arrays given to this method can be modified * internally, i.e., they are not used by the calling program * anymore after this call. This method returns false if there * was a problem with the underlying linear solver. */ virtual bool DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps) = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ TDependencyDetector(const TDependencyDetector&); /** Overloaded Equals Operator */ void operator=(const TDependencyDetector&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa27TSolverInterface.hpp0000644000076600007660000001655011504216567024637 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa27TSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17 #ifndef __IPMA27TSOLVERINTERFACE_HPP__ #define __IPMA27TSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" namespace Ipopt { /** Interface to the symmetric linear solver MA27, derived from * SparseSymLinearSolverInterface. */ class Ma27TSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ Ma27TSolverInterface(); /** Destructor */ virtual ~Ma27TSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and airn and acjn give the * positions of the nonzero elements. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn); /** Method returing an internal array into which the nonzero * elements (in the same order as airn and ajcn) are to be stored * by the calling routine before a call to MultiSolve with a * new_matrix=true. The returned array must have space for at least * nonzero elements. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. Overloaded * from SparseSymLinearSolverInterface. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* airn, const Index* ajcn, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. * Ask linear solver to increase quality of solution for the next * solve (e.g. increase pivot tolerance). Returns false, if this * is not possible (e.g. maximal pivot tolerance already used.) */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return Triplet_Format; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Ma27TSolverInterface(const Ma27TSolverInterface&); /** Overloaded Equals Operator */ void operator=(const Ma27TSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix */ Index nonzeros_; //@} /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; /** Flag indicating if the matrix has to be refactorized because * the pivot tolerance has been changed. */ bool pivtol_changed_; /** Flag that is true if we just requested the values of the * matrix again (SYMSOLVER_CALL_AGAIN) and have to factorize * again. */ bool refactorize_; //@} /** @name Solver specific data/options */ //@{ /** Pivol tolerance */ Number pivtol_; /** Maximal pivot tolerance */ Number pivtolmax_; /** Factor for estimating initial value of liw */ Number liw_init_factor_; /** Factor for estimating initial value of la */ Number la_init_factor_; /** Factor for increaseing memory */ Number meminc_factor_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; /** Flag indicating if the interia is always assumed to be * correct. */ bool skip_inertia_check_; /** Flag indicating if MA27 should continue if a singular matrix is detected, but right hands sides are still accepted. */ bool ignore_singularity_; //@} /** @name Data for the linear solver. * Storing factorization and other solver specific data structure. */ //@{ /** integer control values */ ipfint icntl_[30]; /** real control values */ double cntl_[5]; /** length of integer work space */ ipfint liw_; /** integer work space */ ipfint* iw_; /** MA27's IKEEP */ ipfint* ikeep_; /** MA27's NSTEPS */ ipfint nsteps_; /** MA27's MAXFRT */ ipfint maxfrt_; /** length LA of A */ ipfint la_; /** factor A of matrix */ double* a_; /** flag indicating that la should be increased before next factorization */ bool la_increase_; /** flag indicating that liw should be increased before next factorization */ bool liw_increase_; //@} /** @name Internal functions */ //@{ /** Call MA27AD and reserve memory for MA27 data. * Reserve memory for iw_ and ikeep_, call MA27AD to perform * symbolic manipulations, and reserve all the remaining data memory */ ESymSolverStatus SymbolicFactorization(const Index* airn, const Index* ajcn); /** Call MA27BD to factorize the Matrix. * It is assumed that the first nonzeros_ element of a_ contain the values * of the matrix to be factorized. */ ESymSolverStatus Factorization(const Index* airn, const Index* ajcn, bool check_NegEVals, Index numberOfNegEVals); /** Call MA27CD to do the backsolve. */ ESymSolverStatus Backsolve(Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpIterativeWsmpSolverInterface.cpp0000644000076600007660000004536011504216567026604 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterativeWsmpSolverInterface.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2009-09-18 // based on IpWsmpSolverInterface.cpp (rev 1521) #include "IpoptConfig.h" #include "IpIterativeWsmpSolverInterface.hpp" #include "IpBlas.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif /** Prototypes for WISMP's subroutines */ extern "C" { void F77_FUNC(wsetmaxthrds,WSETMAXTHRDS)(const ipfint* NTHREADS); void F77_FUNC(wismp,WISMP)(const ipfint* N, const ipfint* IA, const ipfint* JA, const double* AVALS, double* B, const ipfint* LDB, double* X, const ipfint* LDX, const ipfint* NRHS, double* RMISC, double* CVGH, ipfint* IPARM, double* DPARM); void F77_FUNC_(wsmp_clear,WSMP_CLEAR)(void); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 3; #endif IterativeWsmpSolverInterface::IterativeWsmpSolverInterface() : a_(NULL), initialized_(false) { DBG_START_METH("IterativeWsmpSolverInterface::IterativeWsmpSolverInterface()",dbg_verbosity); IPARM_ = new ipfint[64]; DPARM_ = new double[64]; } IterativeWsmpSolverInterface::~IterativeWsmpSolverInterface() { DBG_START_METH("IterativeWsmpSolverInterface::~IterativeWsmpSolverInterface()", dbg_verbosity); // Clear WSMP's memory F77_FUNC_(wsmp_clear,WSMP_CLEAR)(); delete[] IPARM_; delete[] DPARM_; delete[] a_; } void IterativeWsmpSolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedIntegerOption( "wsmp_max_iter", "Maximal number of iterations in iterative WISMP", 1, 1000, ""); roptions->AddLowerBoundedNumberOption( "wsmp_inexact_droptol", "Drop tolerance for inexact factorization preconditioner in WISMP.", 0.0, false, 0.0, "DPARM(14) in WISMP"); roptions->AddLowerBoundedNumberOption( "wsmp_inexact_fillin_limit", "Fill-in limit for inexact factorization preconditioner in WISMP.", 0.0, false, 0.0, "DPARM(15) in WISMP"); } bool IterativeWsmpSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetIntegerValue("wsmp_num_threads", wsmp_num_threads_, prefix); Index wsmp_ordering_option; if (!options.GetIntegerValue("wsmp_ordering_option", wsmp_ordering_option, prefix)) { wsmp_ordering_option = 1; } Index wsmp_ordering_option2; if (!options.GetIntegerValue("wsmp_ordering_option2", wsmp_ordering_option2, prefix)) { wsmp_ordering_option2 = 0; } if (!options.GetNumericValue("wsmp_pivtol", wsmp_pivtol_, prefix)) { wsmp_pivtol_ = 1e-3; } if (options.GetNumericValue("wsmp_pivtolmax", wsmp_pivtolmax_, prefix)) { ASSERT_EXCEPTION(wsmp_pivtolmax_>=wsmp_pivtol_, OPTION_INVALID, "Option \"wsmp_pivtolmax\": This value must be between " "wsmp_pivtol and 1."); } else { wsmp_pivtolmax_ = Max(wsmp_pivtolmax_, wsmp_pivtol_); } if (!options.GetIntegerValue("wsmp_scaling", wsmp_scaling_, prefix)) { wsmp_scaling_ = 1; } options.GetIntegerValue("wsmp_write_matrix_iteration", wsmp_write_matrix_iteration_, prefix); Index wsmp_max_iter; options.GetIntegerValue("wsmp_max_iter", wsmp_max_iter, prefix); options.GetNumericValue("wsmp_inexact_droptol", wsmp_inexact_droptol_, prefix); options.GetNumericValue("wsmp_inexact_fillin_limit", wsmp_inexact_fillin_limit_, prefix); // Reset all private data dim_=0; initialized_=false; pivtol_changed_ = false; have_symbolic_factorization_ = false; delete[] a_; a_ = NULL; #if 1 // Set the number of threads ipfint NTHREADS = wsmp_num_threads_; F77_FUNC(wsetmaxthrds,WSETMAXTHRDS)(&NTHREADS); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "WSMP will use %d threads.\n", wsmp_num_threads_); #else Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "Not setting WISMP threads at the moment.\n"); #endif // Get WSMP's default parameters and set the ones we want differently IPARM_[0] = 0; IPARM_[1] = 0; IPARM_[2] = 0; ipfint idmy; double ddmy; F77_FUNC(wismp,WISMP)(&idmy, &idmy, &idmy, &ddmy, &ddmy, &idmy, &ddmy, &idmy, &idmy, &ddmy, &ddmy, IPARM_, DPARM_); IPARM_[3] = 3; // Upper trianguar portion of matrix in CSR format // (same as for WSSMP) IPARM_[6] = 3; IPARM_[13] = 0; // do not overwrite avals IPARM_[27] = 0; // to make runs repeatable #if 1 IPARM_[5] = wsmp_max_iter; // maximal number of iterations IPARM_[15] = wsmp_ordering_option; // ordering option IPARM_[16] = wsmp_ordering_option2; // for ordering in IP methods? #endif DPARM_[13] = wsmp_inexact_droptol_; DPARM_[14] = wsmp_inexact_fillin_limit_; // DELETE IPARM_[33] = 0; matrix_file_number_ = 0; // Check for SPINLOOPTIME and YIELDLOOPTIME? return true; } ESymSolverStatus IterativeWsmpSolverInterface::MultiSolve( bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("IterativeWsmpSolverInterface::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); // check if a factorization has to be done if (new_matrix || pivtol_changed_) { pivtol_changed_ = false; // perform the factorization ESymSolverStatus retval; retval = Factorization(ia, ja, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } } // do the solve return Solve(ia, ja, nrhs, rhs_vals); } double* IterativeWsmpSolverInterface::GetValuesArrayPtr() { DBG_ASSERT(initialized_); DBG_ASSERT(a_); return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus IterativeWsmpSolverInterface::InitializeStructure (Index dim, Index nonzeros, const Index* ia, const Index* ja) { DBG_START_METH("IterativeWsmpSolverInterface::InitializeStructure",dbg_verbosity); dim_ = dim; // Make space for storing the matrix elements delete[] a_; a_ = NULL; a_ = new double[nonzeros]; // Do the symbolic facotrization ESymSolverStatus retval = SymbolicFactorization(ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } initialized_ = true; return retval; } ESymSolverStatus IterativeWsmpSolverInterface::SymbolicFactorization( const Index* ia, const Index* ja) { DBG_START_METH("IterativeWsmpSolverInterface::SymbolicFactorization", dbg_verbosity); // This is postponed until the first factorization call, since // then the values in the matrix are known return SYMSOLVER_SUCCESS; } ESymSolverStatus IterativeWsmpSolverInterface::InternalSymFact( const Index* ia, const Index* ja) { if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // Call WISMP for ordering and symbolic factorization ipfint N = dim_; IPARM_[1] = 1; // ordering IPARM_[2] = 1; // symbolic factorization ipfint idmy; double ddmy; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling WISMP-1-1 for symbolic analysis at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); F77_FUNC(wismp,WISMP)(&N, ia, ja, a_, &ddmy, &idmy, &ddmy, &idmy, &idmy, &ddmy, &ddmy, IPARM_, DPARM_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with WISMP-1-1 for symbolic analysis at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); Index ierror = IPARM_[63]; if (ierror!=0) { if (ierror==-102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WISMP is not able to allocate sufficient amount of memory during ordering/symbolic factorization.\n"); } else if (ierror>0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Matrix appears to be singular (with ierror = %d).\n", ierror); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_SINGULAR; } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WISMP during ordering/symbolic factorization phase.\n Error code is %d.\n", ierror); } if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Predicted memory usage for WISMP after symbolic factorization IPARM(23)= %d.\n", IPARM_[22]); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_SUCCESS; } ESymSolverStatus IterativeWsmpSolverInterface::Factorization( const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("IterativeWsmpSolverInterface::Factorization",dbg_verbosity); // If desired, write out the matrix Index iter_count = -1; if (HaveIpData()) { iter_count = IpData().iter_count(); } if (iter_count == wsmp_write_matrix_iteration_) { matrix_file_number_++; char buf[256]; Snprintf(buf, 255, "wsmp_matrix_%d_%d.dat", iter_count, matrix_file_number_); Jnlst().Printf(J_SUMMARY, J_LINEAR_ALGEBRA, "Writing WSMP matrix into file %s.\n", buf); FILE* fp = fopen(buf, "w"); fprintf(fp, "%d\n", dim_); // N for (Index icol=0; icol 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "WISMP detected that the matrix is singular and encountered %d zero pivots.\n", dim_+1-ierror); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_SINGULAR; } else if (ierror != 0) { if (ierror == -102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WISMP is not able to allocate sufficient amount of memory during factorization.\n"); } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WSMP during factorization phase.\n Error code is %d.\n", ierror); } if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Memory usage for WISMP after factorization IPARM(23) = %d\n", IPARM_[22]); #if 0 // Check whether the number of negative eigenvalues matches the requested // count if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Wrong inertia: required are %d, but we got %d.\n", numberOfNegEVals, negevals_); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_WRONG_INERTIA; } #endif if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } return SYMSOLVER_SUCCESS; } ESymSolverStatus IterativeWsmpSolverInterface::Solve( const Index* ia, const Index* ja, Index nrhs, double *rhs_vals) { DBG_START_METH("IterativeWsmpSolverInterface::Solve",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } // Call WISMP to solve for some right hand sides. The solution // will be stored in rhs_vals, and we need to make a copy of the // original right hand side before the call. ipfint N = dim_; ipfint LDB = dim_; double* RHS = new double[dim_*nrhs]; IpBlasDcopy(dim_*nrhs, rhs_vals, 1, RHS, 1); ipfint LDX = dim_; // Q: Do we have to zero out solution? ipfint NRHS = nrhs; IPARM_[1] = 4; // Iterative solver solution IPARM_[2] = 4; double* CVGH = NULL; if (Jnlst().ProduceOutput(J_MOREDETAILED, J_LINEAR_ALGEBRA)) { IPARM_[26] = 1; // Record convergence history CVGH = new double[IPARM_[5]+1]; } else { IPARM_[26] = 0; } double ddmy; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling WISMP-4-4 for backsolve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); F77_FUNC(wismp,WISMP)(&N, ia, ja, a_, RHS, &LDB, rhs_vals, &LDX, &NRHS, &ddmy, CVGH, IPARM_, DPARM_); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Done with WISMP-4-4 for backsolve at cpu time %10.3f (wall %10.3f).\n", CpuTime(), WallclockTime()); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } Index ierror = IPARM_[63]; if (ierror!=0) { if (ierror==-102) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error: WISMP is not able to allocate sufficient amount of memory during ordering/symbolic factorization.\n"); } else { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in WISMP during ordering/symbolic factorization phase.\n Error code is %d.\n", ierror); } return SYMSOLVER_FATAL_ERROR; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of itertive solver steps in WISMP: %d\n", IPARM_[25]); if (Jnlst().ProduceOutput(J_MOREDETAILED, J_LINEAR_ALGEBRA)) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "WISMP congergence history:\n"); for (Index i=0; i<=IPARM_[25]; ++i) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, " Resid[%3d] = %13.6e\n", i, CVGH[i]); } delete [] CVGH; } return SYMSOLVER_SUCCESS; } Index IterativeWsmpSolverInterface::NumberOfNegEVals() const { DBG_START_METH("IterativeWsmpSolverInterface::NumberOfNegEVals",dbg_verbosity); DBG_ASSERT(false); return -1; } bool IterativeWsmpSolverInterface::IncreaseQuality() { // TODO!!!! return false; DBG_START_METH("IterativeWsmpSolverInterface::IncreaseQuality",dbg_verbosity); if (wsmp_pivtol_ == wsmp_pivtolmax_) { return false; } pivtol_changed_ = true; if (wsmp_inexact_droptol_ != 0.) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing dropotol for WISMP from %7.2e ", wsmp_inexact_droptol_); wsmp_inexact_droptol_ = DPARM_[13]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e (suggested value).\n", wsmp_inexact_droptol_); } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Not increasing dropotol for WISMP, it is just reusing new value"); } if (wsmp_inexact_fillin_limit_ != 0.) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing fillin limit for WISMP from %7.2e ", wsmp_inexact_fillin_limit_); wsmp_inexact_fillin_limit_ = DPARM_[14]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e (suggested value).\n", wsmp_inexact_fillin_limit_); } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Not increasing fillin limit for WISMP, it is just reusing new value"); } return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa86SolverInterface.cpp0000644000076600007660000002620112156621430024476 0ustar coincoin// Copyright (C) 2011, Science and Technology Facilities Council. // Copyright (C) 2009, Jonathan Hogg . // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa86SolverInterface.cpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Jonathan Hogg STFC 2011-03-15 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif // if we do not have MA86 in HSL or the linear solver loader, then we want to build the MA86 interface #if defined(COINHSL_HAS_MA86) || defined(HAVE_LINEARSOLVERLOADER) #include "IpMa86SolverInterface.hpp" #include #include using namespace std; extern "C" { #include "hsl_mc68i.h" } namespace Ipopt { Ma86SolverInterface::~Ma86SolverInterface() { delete [] val_; if(keep_) ma86_finalise(&keep_, &control_); } void Ma86SolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddIntegerOption( "ma86_print_level", "Debug printing level for the linear solver MA86", -1, ""); /* "<0 no printing.\n" "0 Error and warning messages only.\n" "=1 Limited diagnostic printing.\n" ">1 Additional diagnostic printing."); */ roptions->AddLowerBoundedIntegerOption( "ma86_nemin", "Node Amalgamation parameter", 1, 32, "Two nodes in elimination tree are merged if result has fewer than " "ma86_nemin variables."); roptions->AddLowerBoundedNumberOption( "ma86_small", "Zero Pivot Threshold", 0.0, false, 1e-20, "Any pivot less than ma86_small is treated as zero."); roptions->AddLowerBoundedNumberOption( "ma86_static", "Static Pivoting Threshold", 0.0, false, 0.0, "See MA86 documentation. Either ma86_static=0.0 or " "ma86_static>ma86_small. ma86_static=0.0 disables static pivoting."); roptions->AddBoundedNumberOption( "ma86_u", "Pivoting Threshold", 0.0, false, 0.5, false, 1e-8, "See MA86 documentation."); roptions->AddBoundedNumberOption( "ma86_umax", "Maximum Pivoting Threshold", 0.0, false, 0.5, false, 1e-4, "Maximum value to which u will be increased to improve quality."); roptions->AddStringOption3( "ma86_scaling", "Controls scaling of matrix", "mc64", "none", "Do not scale the linear system matrix", "mc64", "Scale linear system matrix using MC64", "mc77", "Scale linear system matrix using MC77 [1,3,0]", "This option controls scaling for the solver HSL_MA86."); roptions->AddStringOption3( "ma86_order", "Controls type of ordering used by HSL_MA86", #ifdef COINHSL_HAS_METIS "auto", #else "amd", #endif "auto", "Try both AMD and MeTiS, pick best", "amd", "Use the HSL_MC68 approximate minimum degree algorithm", "metis", "Use the MeTiS nested dissection algorithm (if available)", "This option controls ordering for the solver HSL_MA86."); } bool Ma86SolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { ma86_default_control(&control_); control_.f_arrays = 1; // Use Fortran numbering (faster) /* Note: we can't set control_.action = false as we need to know the * intertia. (Otherwise we just enter the restoration phase and fail) */ options.GetIntegerValue("ma86_print_level", control_.diagnostics_level, prefix); options.GetIntegerValue("ma86_nemin", control_.nemin, prefix); options.GetNumericValue("ma86_small", control_.small_, prefix); options.GetNumericValue("ma86_static", control_.static_, prefix); options.GetNumericValue("ma86_u", control_.u, prefix); options.GetNumericValue("ma86_umax", umax_, prefix); std::string order_method, scaling_method; options.GetStringValue("ma86_order", order_method, prefix); if(order_method == "metis") { ordering_ = ORDER_METIS; } else if(order_method == "amd") { ordering_ = ORDER_AMD; } else { ordering_ = ORDER_AUTO; } options.GetStringValue("ma86_scaling", scaling_method, prefix); if(scaling_method == "mc64") { control_.scaling = 1; } else if(scaling_method == "mc77") { control_.scaling = 2; } else { control_.scaling = 0; } return true; // All is well } /* Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus Ma86SolverInterface::InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja) { struct ma86_info info, info2; struct mc68_control control68; struct mc68_info info68; Index *order_amd, *order_metis; void *keep_amd, *keep_metis; // Store size for later use ndim_ = dim; // Determine an ordering mc68_default_control(&control68); control68.f_array_in = 1; // Use Fortran numbering (faster) control68.f_array_out = 1; // Use Fortran numbering (faster) order_amd = NULL; order_metis = NULL; if(ordering_ == ORDER_METIS || ordering_ == ORDER_AUTO) { order_metis = new Index[dim]; mc68_order(3, dim, ia, ja, order_metis, &control68, &info68); /* MeTiS */ if(info68.flag == -5) { // MeTiS not available ordering_ = ORDER_AMD; delete[] order_metis; } else if(info68.flag<0) { return SYMSOLVER_FATAL_ERROR; } } if(ordering_ == ORDER_AMD || ordering_ == ORDER_AUTO) { order_amd = new Index[dim]; mc68_order(1, dim, ia, ja, order_amd, &control68, &info68); /* AMD */ } if(info68.flag<0) return SYMSOLVER_FATAL_ERROR; if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // perform analyse if(ordering_ == ORDER_AUTO) { ma86_analyse(dim, ia, ja, order_amd, &keep_amd, &control_, &info2); if (info2.flag<0) return SYMSOLVER_FATAL_ERROR; ma86_analyse(dim, ia, ja, order_metis, &keep_metis, &control_, &info); if (info.flag<0) return SYMSOLVER_FATAL_ERROR; if(info.num_flops > info2.num_flops) { // Use AMD //cout << "Choose AMD\n"; order_ = order_amd; keep_ = keep_amd; delete[] order_metis; ma86_finalise(&keep_metis, &control_); } else { // Use MeTiS //cout << "Choose MeTiS\n"; order_ = order_metis; keep_ = keep_metis; delete[] order_amd; ma86_finalise(&keep_amd, &control_); } } else { if(ordering_ == ORDER_AMD) order_ = order_amd; if(ordering_ == ORDER_METIS) order_ = order_metis; ma86_analyse(dim, ia, ja, order_, &keep_, &control_, &info); } if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } // Setup memory for values if (val_!=NULL) delete[] val_; val_ = new double[nonzeros]; if (info.flag>=0) { return SYMSOLVER_SUCCESS; } else { return SYMSOLVER_FATAL_ERROR; } } /* Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus Ma86SolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { struct ma86_info info; if (new_matrix || pivtol_changed_) { if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().Start(); } //ma86_factor(ndim_, ia, ja, val_, order_, &keep_, &control_, &info); ma86_factor_solve(ndim_, ia, ja, val_, order_, &keep_, &control_, &info, nrhs, ndim_, rhs_vals, NULL); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } if (info.flag<0) return SYMSOLVER_FATAL_ERROR; if (info.flag==2 || info.flag==-3) return SYMSOLVER_SINGULAR; if (check_NegEVals && info.num_neg!=numberOfNegEVals) return SYMSOLVER_WRONG_INERTIA; /*if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ma86_solve(0, 1, ndim_, rhs_vals, order_, &keep_, &control_, &info); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); }*/ numneg_ = info.num_neg; pivtol_changed_ = false; } else { if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ma86_solve(0, nrhs, ndim_, rhs_vals, order_, &keep_, &control_, &info, NULL); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } } return SYMSOLVER_SUCCESS; } bool Ma86SolverInterface::IncreaseQuality() { if (control_.u >= umax_) { return false; } pivtol_changed_ = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing pivot tolerance for HSL_MA86 from %7.2e ", control_.u); control_.u = Min(umax_, pow(control_.u,0.75)); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e.\n", control_.u); return true; } } // namespace Ipopt #endif /* COINHSL_HAS_MA86 or HAVE_LINEARSOLVERLOADER */ Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpPardisoSolverInterface.cpp0000644000076600007660000007514712214316142025375 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPardisoSolverInterface.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17 // // Olaf Schenk Univ of Basel 2005-09-20 // - changed options, added PHASE_ flag #include "IpoptConfig.h" #include "IpPardisoSolverInterface.hpp" # include #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # else # error "don't have header file for stdlib" # endif #endif #ifdef HAVE_CSTRING # include #else # ifdef HAVE_STRING_H # include # else # error "don't have header file for string" # endif #endif // determine the correct name of the Pardiso function #if defined(_MSC_VER) && defined(HAVE_PARDISO) # define PARDISOINIT_FUNC PARDISOINIT # define PARDISO_FUNC PARDISO #else # define PARDISOINIT_FUNC F77_FUNC(pardisoinit,PARDISOINIT) # define PARDISO_FUNC F77_FUNC(pardiso,PARDISO) #endif /* Prototypes for Pardiso's subroutines */ extern "C" { #ifdef HAVE_PARDISO_OLDINTERFACE void PARDISOINIT_FUNC(void* PT, const ipfint* MTYPE, ipfint* IPARM); #else // The following is a fix to allow linking with Pardiso library under Windows void PARDISOINIT_FUNC(void* PT, const ipfint* MTYPE, const ipfint* SOLVER, ipfint* IPARM, double* DPARM, ipfint* ERROR); #endif void PARDISO_FUNC(void** PT, const ipfint* MAXFCT, const ipfint* MNUM, const ipfint* MTYPE, const ipfint* PHASE, const ipfint* N, const double* A, const ipfint* IA, const ipfint* JA, const ipfint* PERM, const ipfint* NRHS, ipfint* IPARM, const ipfint* MSGLVL, double* B, double* X, ipfint* ERROR, double* DPARM); #ifdef PARDISO_MATCHING_PREPROCESS void smat_reordering_pardiso_wsmp_(const ipfint* N, const ipfint* ia, const ipfint* ja, const double* a_, ipfint* a2, ipfint* ja2, double* a2_, ipfint* perm2, double* scale2, ipfint* tmp2_, ipfint preprocess ); #endif } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PardisoSolverInterface::PardisoSolverInterface() : a_(NULL), #ifdef PARDISO_MATCHING_PREPROCESS ia2(NULL), ja2(NULL), a2_(NULL), perm2(NULL), scale2(NULL), #endif negevals_(-1), initialized_(false), MAXFCT_(1), MNUM_(1), MTYPE_(-2), MSGLVL_(0), debug_last_iter_(-1) { DBG_START_METH("PardisoSolverInterface::PardisoSolverInterface()",dbg_verbosity); PT_ = new void*[64]; IPARM_ = new ipfint[64]; DPARM_ = new double[64]; } PardisoSolverInterface::~PardisoSolverInterface() { DBG_START_METH("PardisoSolverInterface::~PardisoSolverInterface()", dbg_verbosity); // Tell Pardiso to release all memory if (initialized_) { ipfint PHASE = -1; ipfint N = dim_; ipfint NRHS = 0; ipfint ERROR; ipfint idmy; double ddmy; PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, &ddmy, &idmy, &idmy, &idmy, &NRHS, IPARM_, &MSGLVL_, &ddmy, &ddmy, &ERROR, DPARM_); DBG_ASSERT(ERROR==0); } delete[] PT_; delete[] IPARM_; delete[] DPARM_; delete[] a_; #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; delete[] ja2; delete[] a2_; delete[] perm2; delete[] scale2; #endif } void PardisoSolverInterface::RegisterOptions(SmartPtr roptions) { // Todo Use keywords instead of integer numbers roptions->AddStringOption3( "pardiso_matching_strategy", "Matching strategy to be used by Pardiso", "complete+2x2", "complete", "Match complete (IPAR(13)=1)", "complete+2x2", "Match complete+2x2 (IPAR(13)=2)", "constraints", "Match constraints (IPAR(13)=3)", "This is IPAR(13) in Pardiso manual. This option is only available if " "Ipopt has been compiled with Pardiso."); roptions->AddStringOption2( "pardiso_redo_symbolic_fact_only_if_inertia_wrong", "Toggle for handling case when elements were perturbed by Pardiso.", "no", "no", "Always redo symbolic factorization when elements were perturbed", "yes", "Only redo symbolic factorization when elements were perturbed if also the inertia was wrong", "This option is only available if Ipopt has been compiled with Pardiso."); roptions->AddStringOption2( "pardiso_repeated_perturbation_means_singular", "Interpretation of perturbed elements.", "no", "no", "Don't assume that matrix is singular if elements were perturbed after recent symbolic factorization", "yes", "Assume that matrix is singular if elements were perturbed after recent symbolic factorization", "This option is only available if Ipopt has been compiled with Pardiso."); roptions->AddLowerBoundedIntegerOption( "pardiso_out_of_core_power", "Enables out-of-core variant of Pardiso", 0, 0, "Setting this option to a positive integer k makes Pardiso work in the " "out-of-core variant where the factor is split in 2^k subdomains. This " "is IPARM(50) in the Pardiso manual. This option is only available if " "Ipopt has been compiled with Pardiso."); roptions->AddLowerBoundedIntegerOption( "pardiso_msglvl", "Pardiso message level", 0, 0, "This determines the amount of analysis output from the Pardiso solver. " "This is MSGLVL in the Pardiso manual."); roptions->AddStringOption2( "pardiso_skip_inertia_check", "Always pretend inertia is correct.", "no", "no", "check inertia", "yes", "skip inertia check", "Setting this option to \"yes\" essentially disables inertia check. " "This option makes the algorithm non-robust and easily fail, but it " "might give some insight into the necessity of inertia control."); roptions->AddLowerBoundedIntegerOption( "pardiso_max_iter", "Maximum number of Krylov-Subspace Iteration", 1, 500, "DPARM(1)"); roptions->AddBoundedNumberOption( "pardiso_iter_relative_tol", "Relative Residual Convergence", 0.0, true, 1.0, true, 1e-6, "DPARM(2)"); roptions->AddLowerBoundedIntegerOption( "pardiso_iter_coarse_size", "Maximum Size of Coarse Grid Matrix", 1, 5000, "DPARM(3)"); roptions->AddLowerBoundedIntegerOption( "pardiso_iter_max_levels", "Maximum Size of Grid Levels", 1, 10, "DPARM(4)"); roptions->AddBoundedNumberOption( "pardiso_iter_dropping_factor", "dropping value for incomplete factor", 0.0, true, 1.0, true, 0.5, "DPARM(5)"); roptions->AddBoundedNumberOption( "pardiso_iter_dropping_schur", "dropping value for sparsify schur complement factor", 0.0, true, 1.0, true, 1e-1, "DPARM(6)"); roptions->AddLowerBoundedIntegerOption( "pardiso_iter_max_row_fill", "max fill for each row", 1,10000000, "DPARM(7)"); roptions->AddLowerBoundedNumberOption( "pardiso_iter_inverse_norm_factor", "", 1, true, 5000000, "DPARM(8)"); roptions->AddStringOption2( "pardiso_iterative", "Switch on iterative solver in Pardiso library", "no", "no", "", "yes", "", ""); roptions->AddLowerBoundedIntegerOption( "pardiso_max_droptol_corrections", "Maximal number of decreases of drop tolerance during one solve.", 1, 4, "This is relevant only for iterative Pardiso options."); } bool PardisoSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { Index enum_int; options.GetEnumValue("pardiso_matching_strategy", enum_int, prefix); match_strat_ = PardisoMatchingStrategy(enum_int); options.GetBoolValue("pardiso_redo_symbolic_fact_only_if_inertia_wrong", pardiso_redo_symbolic_fact_only_if_inertia_wrong_, prefix); options.GetBoolValue("pardiso_repeated_perturbation_means_singular", pardiso_repeated_perturbation_means_singular_, prefix); Index pardiso_out_of_core_power; options.GetIntegerValue("pardiso_out_of_core_power", pardiso_out_of_core_power, prefix); options.GetBoolValue("pardiso_skip_inertia_check", skip_inertia_check_, prefix); options.GetBoolValue("pardiso_iterative", pardiso_iterative_, prefix); int pardiso_max_iter; options.GetIntegerValue("pardiso_max_iter", pardiso_max_iter, prefix); Number pardiso_iter_relative_tol; options.GetNumericValue("pardiso_iter_relative_tol", pardiso_iter_relative_tol, prefix); Index pardiso_iter_coarse_size; options.GetIntegerValue("pardiso_iter_coarse_size", pardiso_iter_coarse_size, prefix); Index pardiso_iter_max_levels; options.GetIntegerValue("pardiso_iter_max_levels", pardiso_iter_max_levels, prefix); Number pardiso_iter_dropping_factor; options.GetNumericValue("pardiso_iter_dropping_factor", pardiso_iter_dropping_factor, prefix); Number pardiso_iter_dropping_schur; options.GetNumericValue("pardiso_iter_dropping_schur", pardiso_iter_dropping_schur, prefix); Index pardiso_iter_max_row_fill; options.GetIntegerValue("pardiso_iter_max_row_fill", pardiso_iter_max_row_fill, prefix); Number pardiso_iter_inverse_norm_factor; options.GetNumericValue("pardiso_iter_inverse_norm_factor", pardiso_iter_inverse_norm_factor, prefix); int pardiso_msglvl; options.GetIntegerValue("pardiso_msglvl", pardiso_msglvl, prefix); options.GetIntegerValue("pardiso_max_droptol_corrections", pardiso_max_droptol_corrections_, prefix); // Number value = 0.0; // Tell Pardiso to release all memory if it had been used before if (initialized_) { ipfint PHASE = -1; ipfint N = dim_; ipfint NRHS = 0; ipfint ERROR; ipfint idmy; double ddmy; PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, &ddmy, &idmy, &idmy, &idmy, &NRHS, IPARM_, &MSGLVL_, &ddmy, &ddmy, &ERROR, DPARM_); DBG_ASSERT(ERROR==0); } // Reset all private data dim_=0; nonzeros_=0; have_symbolic_factorization_=false; initialized_=false; delete[] a_; a_ = NULL; #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; ia2 = NULL; delete[] ja2; ja2 = NULL; delete[] a2_; a2_ = NULL; delete[] perm2; perm2 = NULL; delete[] scale2; scale2 = NULL; #endif // Call Pardiso's initialization routine IPARM_[0] = 0; // Tell it to fill IPARM with default values(?) #ifndef HAVE_PARDISO_OLDINTERFACE ipfint ERROR = 0; ipfint SOLVER = 0; // initialize only direct solver PARDISOINIT_FUNC(PT_, &MTYPE_, &SOLVER, IPARM_, DPARM_, &ERROR); #else PARDISOINIT_FUNC(PT_, &MTYPE_, IPARM_); #endif // Set some parameters for Pardiso IPARM_[0] = 1; // Don't use the default values int num_procs = 1; #if defined(HAVE_PARDISO_PARALLEL) || ! defined(HAVE_PARDISO) // Obtain the numbers of processors from the value of OMP_NUM_THREADS char* var = getenv("OMP_NUM_THREADS"); if (var != NULL) { sscanf( var, "%d", &num_procs ); if (num_procs < 1) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Invalid value for OMP_NUM_THREADS (\"%s\").\n", var); return false; } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Using environment OMP_NUM_THREADS = %d as the number of processors for PARDISO.\n", num_procs); } #if defined(HAVE_PARDISO) && not defined(HAVE_PARDISO_MKL) // If we run Pardiso through the linear solver loader, // we do not know whether it is the parallel version, so we do not report a warning if OMP_NUM_THREADS is not set. // If we run Pardiso from MKL, then OMP_NUM_THREADS does not need to be set, so no warning. else { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "You should set the environment variable OMP_NUM_THREADS to the number of processors used in Pardiso (e.g., 1).\n\n"); } #endif #endif #ifdef HAVE_PARDISO_MKL IPARM_[5] = 1; // Overwrite right-hand side // For MKL PARDSIO, the documentation says, "iparm(3) Reserved. Set to zero.", so we don't set IPARM_[2] IPARM_[10] = 1; // enable scaling (recommended for interior-point indefinite matrices) IPARM_[12] = 1; // enable matching (recommended, as above) IPARM_[20] = 1; // bunch-kaufman pivoting IPARM_[23] = 1; // parallel fac IPARM_[24] = 1; // parallel solve #else IPARM_[1] = 5; IPARM_[2] = num_procs; // Set the number of processors IPARM_[5] = 1; // Overwrite right-hand side // ToDo: decide if we need iterative refinement in Pardiso. For // now, switch it off ? IPARM_[7] = 0; // Options suggested by Olaf Schenk IPARM_[9] = 12; IPARM_[10] = 2; // Results in better scaling // Matching information: IPARM_[12] = 1 seems ok, but results in a // large number of pivot perturbation // Matching information: IPARM_[12] = 2 robust, but more expensive method IPARM_[12] = (int)match_strat_; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Pardiso matching strategy (IPARM(13)): %d\n", IPARM_[12]); IPARM_[20] = 3; // Results in better accuracy IPARM_[23] = 1; // parallel fac IPARM_[24] = 1; // parallel solve IPARM_[28] = 0; // 32-bit factorization IPARM_[29] = 1; //we need this for IPOPT interface //IPARM_[33] = 1; // bit-by-bit identical results in parallel run #endif if (pardiso_iterative_) { #ifdef HAVE_PARDISO_OLDINTERFACE THROW_EXCEPTION(OPTION_INVALID, "You chose to use the iterative version of Pardiso, but you need to use a Pardiso version of at least 4.0."); #elif ! defined HAVE_PARDISO_MKL IPARM_[31] = 1 ; // active direct solver #endif DPARM_[ 0] = pardiso_max_iter; // maximum number of Krylov-Subspace Iteration // Default is 300 // 1 <= value <= e.g. 1000 DPARM_[ 1] = pardiso_iter_relative_tol; // Relative Residual Convergence // e.g. pardiso_iter_tol // Default is 1e-6 // 1e-16 <= value < 1 DPARM_[ 2] = pardiso_iter_coarse_size; // Maximum Size of Coarse Grid Matrix // e.g. pardiso_coarse_grid // Default is 5000 // 1 <= value < number of equations DPARM_[ 3] = pardiso_iter_max_levels; // Maximum Number of Grid Levels // e.g. pardiso_max_grid // Default is 10000 // 1 <= value < number of equations DPARM_[ 4] = pardiso_iter_dropping_factor; // dropping value for incomplete factor // e.g. pardiso_dropping_factor // Default is 0.5 // 1e-16 <= value < 1 DPARM_[ 5] = pardiso_iter_dropping_schur; // dropping value for sparsify schur complementfactor // e.g. pardiso_dropping_schur // Default is 0.1 // 1e-16 <= value < 1 DPARM_[ 6] = pardiso_iter_max_row_fill; // max fill for each row // e.g. pardiso_max_fill // Default is 1000 // 1 <= value < 100000 DPARM_[ 7] = pardiso_iter_inverse_norm_factor; // dropping value for sparsify schur complementfactor // e.g. pardiso_inverse_norm_factor // Default is 500 // 2 <= value < 50000 DPARM_[ 8] = 25; // maximum number of non-improvement steps } MSGLVL_ = pardiso_msglvl; // Option for the out of core variant //IPARM_[49] = pardiso_out_of_core_power; return true; } ESymSolverStatus PardisoSolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("PardisoSolverInterface::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); DBG_ASSERT(initialized_); // check if a factorization has to be done if (new_matrix) { // perform the factorization ESymSolverStatus retval; retval = Factorization(ia, ja, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } } // do the solve return Solve(ia, ja, nrhs, rhs_vals); } double* PardisoSolverInterface::GetValuesArrayPtr() { DBG_ASSERT(initialized_); DBG_ASSERT(a_); return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus PardisoSolverInterface::InitializeStructure (Index dim, Index nonzeros, const Index* ia, const Index* ja) { DBG_START_METH("PardisoSolverInterface::InitializeStructure",dbg_verbosity); dim_ = dim; nonzeros_ = nonzeros; // Make space for storing the matrix elements delete[] a_; a_ = NULL; a_ = new double[nonzeros_]; // Do the symbolic facotrization ESymSolverStatus retval = SymbolicFactorization(ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } initialized_ = true; return retval; } ESymSolverStatus PardisoSolverInterface::SymbolicFactorization(const Index* ia, const Index* ja) { DBG_START_METH("PardisoSolverInterface::SymbolicFactorization", dbg_verbosity); // Since Pardiso requires the values of the nonzeros of the matrix // for an efficient symbolic factorization, we postpone that task // until the first call of Factorize. All we do here is to reset // the flag (in case this interface is called for a matrix with a // new structure). have_symbolic_factorization_ = false; return SYMSOLVER_SUCCESS; } static void write_iajaa_matrix (int N, const Index* ia, const Index* ja, double* a_, double* rhs_vals, int iter_cnt, int sol_cnt) { if (getenv ("IPOPT_WRITE_MAT")) { /* Write header */ FILE *mat_file; char mat_name[128]; char mat_pref[32]; ipfint NNZ = ia[N]-1; ipfint i; if (getenv ("IPOPT_WRITE_PREFIX")) strcpy (mat_pref, getenv ("IPOPT_WRITE_PREFIX")); else strcpy (mat_pref, "mat-ipopt"); Snprintf (mat_name, 127, "%s_%03d-%02d.iajaa", mat_pref, iter_cnt, sol_cnt); // Open and write matrix file. mat_file = fopen (mat_name, "w"); fprintf (mat_file, "%d\n", N); fprintf (mat_file, "%d\n", NNZ); for (i = 0; i < N+1; i++) fprintf (mat_file, "%d\n", ia[i]); for (i = 0; i < NNZ; i++) fprintf (mat_file, "%d\n", ja[i]); for (i = 0; i < NNZ; i++) fprintf (mat_file, "%32.24e\n", a_[i]); /* Right hand side. */ if (rhs_vals) for (i = 0; i < N; i++) fprintf (mat_file, "%32.24e\n", rhs_vals[i]); fclose (mat_file); } /* addtional matrix format */ if (getenv ("IPOPT_WRITE_MAT_MTX")) { /* Write header */ FILE *mat_file; char mat_name[128]; char mat_pref[32]; ipfint i; ipfint j; if (getenv ("IPOPT_WRITE_PREFIX")) strcpy (mat_pref, getenv ("IPOPT_WRITE_PREFIX")); else strcpy (mat_pref, "mat-ipopt"); Snprintf (mat_name, 127, "%s_%03d-%02d.mtx", mat_pref, iter_cnt, sol_cnt); // Open and write matrix file. mat_file = fopen (mat_name, "w"); for (i = 0; i < N; i++) for (j = ia[i]; j < ia[i+1]-1; j++) fprintf (mat_file, " %d %d %32.24e \n", i+1, ja[j-1], a_[j-1]); fclose (mat_file); } } ESymSolverStatus PardisoSolverInterface::Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("PardisoSolverInterface::Factorization",dbg_verbosity); // Call Pardiso to do the factorization ipfint PHASE ; ipfint N = dim_; ipfint PERM; // This should not be accessed by Pardiso ipfint NRHS = 0; double B; // This should not be accessed by Pardiso in factorization // phase double X; // This should not be accessed by Pardiso in factorization // phase ipfint ERROR; bool done = false; bool just_performed_symbolic_factorization = false; while (!done) { if (!have_symbolic_factorization_) { if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } PHASE = 11; #ifdef PARDISO_MATCHING_PREPROCESS delete[] ia2; ia2 = NULL; delete[] ja2; ja2 = NULL; delete[] a2_; a2_ = NULL; delete[] perm2; perm2 = NULL; delete[] scale2; scale2 = NULL; ia2 = new ipfint[N+1]; ja2 = new ipfint[nonzeros_]; a2_ = new double[nonzeros_]; perm2 = new ipfint[N]; scale2 = new double[N]; ipfint* tmp2_ = new ipfint[N]; smat_reordering_pardiso_wsmp_(&N, ia, ja, a_, ia2, ja2, a2_, perm2, scale2, tmp2_, 0); delete[] tmp2_; #endif Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Calling Pardiso for symbolic factorization.\n"); PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, #ifdef PARDISO_MATCHING_PREPROCESS &PHASE, &N, a2_, ia2, ja2, &PERM, #else &PHASE, &N, a_, ia, ja, &PERM, #endif &NRHS, IPARM_, &MSGLVL_, &B, &X, &ERROR, DPARM_); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } if (ERROR==-7) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Pardiso symbolic factorization returns ERROR = %d. Matrix is singular.\n", ERROR); return SYMSOLVER_SINGULAR; } else if (ERROR!=0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during symbolic factorization phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } have_symbolic_factorization_ = true; just_performed_symbolic_factorization = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Memory in KB required for the symbolic factorization = %d.\n", IPARM_[14]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Integer memory in KB required for the numerical factorization = %d.\n", IPARM_[15]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Double memory in KB required for the numerical factorization = %d.\n", IPARM_[16]); } PHASE = 22; if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().Start(); } Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Calling Pardiso for factorization.\n"); // Dump matrix to file, and count number of solution steps. if (HaveIpData()) { if (IpData().iter_count() != debug_last_iter_) debug_cnt_ = 0; debug_last_iter_ = IpData().iter_count(); debug_cnt_ ++; } else { debug_cnt_ = 0; debug_last_iter_ = 0; } #ifdef PARDISO_MATCHING_PREPROCESS ipfint* tmp3_ = new ipfint[N]; smat_reordering_pardiso_wsmp_ (&N, ia, ja, a_, ia2, ja2, a2_, perm2, scale2, tmp3_, 1); delete[] tmp3_; #endif PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, #ifdef PARDISO_MATCHING_PREPROCESS &PHASE, &N, a2_, ia2, ja2, &PERM, #else &PHASE, &N, a_, ia, ja, &PERM, #endif &NRHS, IPARM_, &MSGLVL_, &B, &X, &ERROR, DPARM_); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } if (ERROR==-7) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Pardiso factorization returns ERROR = %d. Matrix is singular.\n", ERROR); return SYMSOLVER_SINGULAR; } else if (ERROR==-4) { // I think this means that the matrix is singular // OLAF said that this will never happen (ToDo) return SYMSOLVER_SINGULAR; } else if (ERROR!=0 ) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during factorization phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } negevals_ = Max(IPARM_[22], numberOfNegEVals); if (IPARM_[13] != 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of perturbed pivots in factorization phase = %d.\n", IPARM_[13]); if ( !pardiso_redo_symbolic_fact_only_if_inertia_wrong_ || (negevals_ != numberOfNegEVals) ) { if (HaveIpData()) { IpData().Append_info_string("Pn"); } have_symbolic_factorization_ = false; // We assume now that if there was just a symbolic // factorization and we still have perturbed pivots, that // the system is actually singular, if // pardiso_repeated_perturbation_means_singular_ is true if (just_performed_symbolic_factorization) { if (pardiso_repeated_perturbation_means_singular_) { if (HaveIpData()) { IpData().Append_info_string("Ps"); } return SYMSOLVER_SINGULAR; } else { done = true; } } else { done = false; } } else { if (HaveIpData()) { IpData().Append_info_string("Pp"); } done = true; } } else { done = true; } } DBG_ASSERT(IPARM_[21]+IPARM_[22] == dim_); // Check whether the number of negative eigenvalues matches the requested // count if (skip_inertia_check_) numberOfNegEVals=negevals_; if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Wrong inertia: required are %d, but we got %d.\n", numberOfNegEVals, negevals_); return SYMSOLVER_WRONG_INERTIA; } return SYMSOLVER_SUCCESS; } ESymSolverStatus PardisoSolverInterface::Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals) { DBG_START_METH("PardisoSolverInterface::Solve",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } // Call Pardiso to do the solve for the given right-hand sides ipfint PHASE = 33; ipfint N = dim_; ipfint PERM; // This should not be accessed by Pardiso ipfint NRHS = nrhs; double* X = new double[nrhs*dim_]; double* ORIG_RHS = new double[nrhs*dim_]; ipfint ERROR; // Initialize solution with zero and save right hand side for (int i = 0; i < N; i++) { X[i] = 0.; ORIG_RHS[i] = rhs_vals[i]; } // Dump matrix to file if requested Index iter_count = 0; if (HaveIpData()) { iter_count = IpData().iter_count(); } #ifdef PARDISO_MATCHING_PREPROCESS write_iajaa_matrix (N, ia2, ja2, a2_, rhs_vals, iter_count, debug_cnt_); #else write_iajaa_matrix (N, ia, ja, a_, rhs_vals, iter_count, debug_cnt_); #endif int attempts = 0; const int max_attempts = pardiso_iterative_ ? pardiso_max_droptol_corrections_+1: 1; while (attempts < max_attempts) { #ifdef PARDISO_MATCHING_PREPROCESS for (int i = 0; i < N; i++) { rhs_vals[perm2[i]] = scale2[i] * ORIG_RHS[ i ]; } PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, a2_, ia2, ja2, &PERM, &NRHS, IPARM_, &MSGLVL_, rhs_vals, X, &ERROR, DPARM_); for (int i = 0; i < N; i++) { X[i] = rhs_vals[ perm2[i]]; } for (int i = 0; i < N; i++) { rhs_vals[i] = scale2[i]*X[i]; } #else for (int i = 0; i < N; i++) { rhs_vals[i] = ORIG_RHS[i]; } PARDISO_FUNC(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N, a_, ia, ja, &PERM, &NRHS, IPARM_, &MSGLVL_, rhs_vals, X, &ERROR, DPARM_); #endif if (ERROR <= -100 && ERROR >= -102) { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "Iterative solver in Pardiso did not converge (ERROR = %d)\n", ERROR); Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, " Decreasing drop tolerances from DPARM_[41] = %e and DPARM_[44] = %e\n", DPARM_[41], DPARM_[44]); PHASE = 23; DPARM_[4] /= 2.0 ; DPARM_[5] /= 2.0 ; Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, " to DPARM_[41] = %e and DPARM_[44] = %e\n", DPARM_[41], DPARM_[44]); attempts++; ERROR = 0; } else { attempts = max_attempts; } } delete [] X; delete [] ORIG_RHS; if (IPARM_[6] != 0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of iterative refinement steps = %d.\n", IPARM_[6]); if (HaveIpData()) { IpData().Append_info_string("Pi"); } } if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } if (ERROR!=0 ) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in Pardiso during solve phase. ERROR = %d.\n", ERROR); return SYMSOLVER_FATAL_ERROR; } return SYMSOLVER_SUCCESS; } Index PardisoSolverInterface::NumberOfNegEVals() const { DBG_START_METH("PardisoSolverInterface::NumberOfNegEVals",dbg_verbosity); DBG_ASSERT(negevals_>=0); return negevals_; } bool PardisoSolverInterface::IncreaseQuality() { // At the moment, I don't see how we could tell Pardiso to do better // (maybe switch from IPARM[20]=1 to IPARM[20]=2?) return false; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpTSymDependencyDetector.hpp0000644000076600007660000000527011504216567025353 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTSymDependencyDetector.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-04-18 #ifndef __IPTSYMDEPENDENCYDETECTOR_HPP__ #define __IPTSYMDEPENDENCYDETECTOR_HPP__ #include "IpTDependencyDetector.hpp" #include "IpTSymLinearSolver.hpp" namespace Ipopt { /** Base class for all derived algorithms for detecting linearly * dependent rows in the constraint Jacobian. */ class TSymDependencyDetector: public TDependencyDetector { public: /** @name Constructor/Destructor */ //@{ TSymDependencyDetector(TSymLinearSolver& tsym_linear_solver); virtual ~TSymDependencyDetector() {} //@} /** Has to be called to initialize and reset these objects. */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method determining the number of linearly dependent rows in * the matrix and the indices of those rows. We assume that the * matrix is available in "Triplet" format (MA28 format), and * that the arrays given to this method can be modified * internally, i.e., they are not used by the calling program * anymore after this call. This method returns false if there * was a problem with the underlying linear solver. */ virtual bool DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps); /** This must be called to make the options for this class * known */ static void RegisterOptions(SmartPtr roptions); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ TSymDependencyDetector(); /** Copy Constructor */ TSymDependencyDetector(const TSymDependencyDetector&); /** Overloaded Equals Operator */ void operator=(const TSymDependencyDetector&); //@} SmartPtr jnlst_; SmartPtr tsym_linear_solver_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpWsmpSolverInterface.hpp0000644000076600007660000001651011504216567024727 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpWsmpSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-17 #ifndef __IPWSMPSOLVERINTERFACE_HPP__ #define __IPWSMPSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" //#define PARDISO_MATCHING_PREPROCESS namespace Ipopt { /** Interface to the linear solver Wsmp, derived from * SparseSymLinearSolverInterface. For details, see description of * SparseSymLinearSolverInterface base class. */ class WsmpSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ WsmpSolverInterface(); /** Destructor */ virtual ~WsmpSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *ia, const Index *ja); /** Method returing an internal array into which the nonzero * elements are to be stored. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Format_1_Offset; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ virtual bool ProvidesDegeneracyDetection() const; /** This method determines the list of row indices of the linearly * dependent rows. */ virtual ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ WsmpSolverInterface(const WsmpSolverInterface&); /** Overloaded Equals Operator */ void operator=(const WsmpSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Number of rows and columns of the matrix */ Index dim_; /** Number of nonzeros of the matrix in triplet representation. */ Index nonzeros_; /** Array for storing the values of the matrix. */ double* a_; #ifdef PARDISO_MATCHING_PREPROCESS /** @name Arrays for storing the values of a second matrix that has been already reordered. */ //@{ ipfint* ia2; ipfint* ja2; double* a2_; ipfint* perm2; double* scale2; //@} #endif //@} /** @name Solver specific options */ //@{ /** Option that controls the matching strategy. */ Index wsmp_num_threads_; /** Pivol tolerance */ Number wsmp_pivtol_; /** Maximal pivot tolerance */ Number wsmp_pivtolmax_; /** Indicating which of WSMP's scaling methods should be used. */ Index wsmp_scaling_; /** WSMP's singularity threshold. The smaller this value the less * likely a matrix is declared singular. */ Number wsmp_singularity_threshold_; /** iteration number in which matrices are to be written out */ Index wsmp_write_matrix_iteration_; /** Flag indicating if the interia is always assumed to be * correct. */ bool skip_inertia_check_; /** Flag indicating whether the positive definite version of WSMP * should be used */ bool wsmp_no_pivoting_; //@} /** Counter for matrix file numbers */ Index matrix_file_number_; /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; /** Flag indicating if we already printed how many threads are * used by WSMP. */ bool printed_num_threads_; /** Flag indicating if the matrix has to be refactorized because * the pivot tolerance has been changed, or the computation of * the ordering has been triggered with DPARNM[14]. */ bool pivtol_changed_; /** Flag indicating whether symbolic factorization and order has * already been performed. */ bool have_symbolic_factorization_; /** Counter indicating how many factorizations have been done sine * the last recomputation of the ordering. */ Index factorizations_since_recomputed_ordering_; //@} /** @name Solver specific information */ //@{ /** Integer parameter array for WSSMP. */ ipfint* IPARM_; /** Double precision parameter array for WSSMP. */ double* DPARM_; /** WSSMP's permutation vector */ ipfint* PERM_; /** WSSMP's inverse permutation vector */ ipfint* INVP_; /** WSSMP's internal MRP array */ ipfint* MRP_; //@} /** @name Internal functions */ //@{ /** Call Wsmp to do the analysis phase. */ ESymSolverStatus SymbolicFactorization(const Index* ia, const Index* ja); /** Call Wsmp to really do the analysis phase. */ ESymSolverStatus InternalSymFact(const Index* ia, const Index* ja, Index numberOfNegEVals); /** Call Wsmp to factorize the Matrix. */ ESymSolverStatus Factorization(const Index* ia, const Index* ja, bool check_NegEVals, Index numberOfNegEVals); /** Call Wsmpx to do the Solve. */ ESymSolverStatus Solve(const Index* ia, const Index* ja, Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpSparseSymLinearSolverInterface.hpp0000644000076600007660000002414411504216567027064 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSparseSymLinearSolverInterface.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-03-17 #ifndef __IPSPARSESYMLINEARSOLVERINTERFACE_HPP__ #define __IPSPARSESYMLINEARSOLVERINTERFACE_HPP__ #include "IpUtils.hpp" #include "IpAlgStrategy.hpp" #include "IpSymLinearSolver.hpp" namespace Ipopt { /** Base class for interfaces to symmetric indefinite linear solvers * for sparse matrices. * * This defines the general interface to linear solvers for sparse * symmetric indefinite matrices. The matrices can be provided * either in "triplet format" (like for Harwell's MA27 solver), or * in compressed sparse row (CSR) format for the lower triangular * part of the symmetric matrix. * * The solver should be able to compute the interia of the matrix, * or more specifically, the number of negative eigenvalues in the * factorized matrix. * * This interface is used by the calling objective in the following * way: * * 1. The InitializeImpl method is called at the very beginning * (for every optimization run), which allows the linear solver * object to retrieve options given in the OptionsList (such as * pivot tolerances etc). At this point, some internal data can * also be initialized. * * 2. The calling class calls MatrixFormat to find out which matrix * representation the linear solver requires. The possible options * are Triplet_Format, as well as CSR_Format_0_Offset and * CSR_Format_1_Offset. The difference between the last two is * that for CSR_Format_0_Offset the couning of the element position * in the ia and ja arrays starts are 0 (C-style numbering), * whereas for the other one it starts at 1 (Fortran-style * numbering). * * 3. After this, the InitializeStructure method is called (once). * Here, the structure of the matrix is provided. If the linear * solver requires a symbolic preprocessing phase that can be done * without knowledge of the matrix element values, it can be done * here. * * 4. The calling class will request an array for storing the * actual values for a matrix using the GetValuesArrayPtr method. * This array must be at least as large as the number of nonzeros * in the matrix (as given to this class by the InitializeStructure * method call). After a call of this method, the calling class * will fill this array with the actual values of the matrix. * * 5. Every time lateron, when actual solves of a linear system is * requested, the calling class will call the MultiSolve to request * the solve, possibly for mulitple right-hand sides. The flag * new_matrix then indicates if the values of the matrix have * changed and if a factorization is required, or if an old * factorization can be used to do the solve. * * Note that the GetValuesArrayPtr method will be called before * every call of MultiSolve with new_matrix=true, or before a * renewed call of MultiSolve if the most previous return value was * SYMSOLV_CALL_AGAIN. * * 6. The calling class might request with NumberOfNegEVals the * number of the negative eigenvalues for the original matrix that * were detected during the most recently performed factorization. * * 7. The calling class might ask the linear solver to increase the * quality of the solution. For example, if the linear solver uses * a pivot tolerance, a larger value should be used for the next * solve (which might require a refactorization). * * 8. Finally, when the destructor is called, the internal storage, * also in the linear solver, should be released. * * Note, if the matrix is given in triplet format, entries might be * listed multiple times, in which case the corresponsing elements * have to be added. * * A note for warm starts: If the option * "warm_start_same_structure" is specified with "yes", the * algorithm assumes that a problem with the same sparsity * structure is solved for a repeated time. In that case, the * linear solver might reuse information from the previous * optimization. See Ma27TSolverInterface for an example. */ class SparseSymLinearSolverInterface: public AlgorithmStrategyObject { public: /** Enum to specify sparse matrix format. */ enum EMatrixFormat { /** Triplet (MA27) format. */ Triplet_Format, /** Compressed sparse row format for lower triangular part, with * 0 offset. */ CSR_Format_0_Offset, /** Compressed sparse row format for lower triangular part, with * 1 offset. */ CSR_Format_1_Offset, /** Compressed sparse row format for both lwr and upr parts, with * 0 offset. */ CSR_Full_Format_0_Offset, /** Compressed sparse row format for both lwr and upr parts, with * 1 offset. */ CSR_Full_Format_1_Offset }; /** @name Constructor/Destructor */ //@{ SparseSymLinearSolverInterface() {} virtual ~SparseSymLinearSolverInterface() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja) = 0; /** Method returing an internal array into which the nonzero * elements (in the same order as ja) will be stored by the * calling routine before a call to MultiSolve with a * new_matrix=true (or after a return of MultiSolve with * SYMSOLV_CALL_AGAIN). The returned array must have space for at * least nonzero elements. */ virtual double* GetValuesArrayPtr() = 0; /** Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals)=0; /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const =0; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. The * calling class asks linear solver to increase quality of * solution for the next solve (e.g. increase pivot tolerance). * Returns false, if this is not possible (e.g. maximal pivot * tolerance already used.) */ virtual bool IncreaseQuality() =0; /** Query whether inertia is computed by linear solver. Returns * true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const =0; /** Query of requested matrix type that the linear solver * understands. */ virtual EMatrixFormat MatrixFormat() const =0; //@} /** @name Methods related to the detection of linearly dependent * rows in a matrix */ //@{ /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ virtual bool ProvidesDegeneracyDetection() const { return false; } /** This method determines the list of row indices of the linearly * dependent rows. */ virtual ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { return SYMSOLVER_FATAL_ERROR; } }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa77SolverInterface.cpp0000644000076600007660000002761212156621430024505 0ustar coincoin// Copyright (C) 2013, Science and Technology Facilities Council. // Copyright (C) 2009, Jonathan Hogg // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa77SolverInterface.cpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Jonathan Hogg STFC 2012-02-14 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif // if we do not have HSL_MA77 in HSL or the linear solver loader, then we want to build the MA77 interface #if defined(COINHSL_HAS_MA77) || defined(HAVE_LINEARSOLVERLOADER) #include "IpMa77SolverInterface.hpp" #include #include using namespace std; extern "C" { #include "hsl_mc68i.h" } namespace Ipopt { Ma77SolverInterface::~Ma77SolverInterface() { delete [] val_; struct ma77_info info; if (keep_) ma77_finalise(&keep_, &control_, &info); } void Ma77SolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddIntegerOption( "ma77_print_level", "Debug printing level for the linear solver MA77", -1, ""); /* "<0 no printing.\n" "0 Error and warning messages only.\n" "=1 Limited diagnostic printing.\n" ">1 Additional diagnostic printing."); */ roptions->AddLowerBoundedIntegerOption( "ma77_buffer_lpage", "Number of scalars per MA77 buffer page", 1, 4096, "Number of scalars per an in-core buffer in the out-of-core solver " "MA77. Must be at most ma77_file_size."); roptions->AddLowerBoundedIntegerOption( "ma77_buffer_npage", "Number of pages that make up MA77 buffer", 1, 1600, "Number of pages of size buffer_lpage that exist in-core for the " "out-of-core solver MA77."); roptions->AddLowerBoundedIntegerOption( "ma77_file_size", "Target size of each temporary file for MA77, scalars per type", 1, 2097152, "MA77 uses many temporary files, this option controls the size of " "each one. It is measured in the number of entries (int or double), " "NOT bytes."); roptions->AddLowerBoundedIntegerOption( "ma77_maxstore", "Maximum storage size for MA77 in-core mode", 0, 0, "If greater than zero, the maximum size of factors stored in core " "before out-of-core mode is invoked."); roptions->AddLowerBoundedIntegerOption( "ma77_nemin", "Node Amalgamation parameter", 1, 8, "Two nodes in elimination tree are merged if result has fewer than " "ma77_nemin variables."); roptions->AddLowerBoundedNumberOption( "ma77_small", "Zero Pivot Threshold", 0.0, false, 1e-20, "Any pivot less than ma77_small is treated as zero."); roptions->AddLowerBoundedNumberOption( "ma77_static", "Static Pivoting Threshold", 0.0, false, 0.0, "See MA77 documentation. Either ma77_static=0.0 or " "ma77_static>ma77_small. ma77_static=0.0 disables static pivoting."); roptions->AddBoundedNumberOption( "ma77_u", "Pivoting Threshold", 0.0, false, 0.5, false, 1e-8, "See MA77 documentation."); roptions->AddBoundedNumberOption( "ma77_umax", "Maximum Pivoting Threshold", 0.0, false, 0.5, false, 1e-4, "Maximum value to which u will be increased to improve quality."); roptions->AddStringOption2( "ma77_order", "Controls type of ordering used by HSL_MA77", #ifdef COINHSL_HAS_METIS "metis", #else "amd", #endif "amd", "Use the HSL_MC68 approximate minimum degree algorithm", "metis", "Use the MeTiS nested dissection algorithm (if available)", "This option controls ordering for the solver HSL_MA77."); } bool Ma77SolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { ma77_default_control(&control_); control_.f_arrays = 1; // Use Fortran numbering (faster) control_.bits=32; // FIXME: HSL_MA77 should be updated to allow a matrix with new // values to be refactorized after a -11 (singular) error. //control_.action = 0; // false, should exit with error on singularity options.GetIntegerValue("ma77_print_level", control_.print_level, prefix); options.GetIntegerValue("ma77_buffer_lpage", control_.buffer_lpage[0], prefix); options.GetIntegerValue("ma77_buffer_lpage", control_.buffer_lpage[1], prefix); options.GetIntegerValue("ma77_buffer_npage", control_.buffer_npage[0], prefix); options.GetIntegerValue("ma77_buffer_npage", control_.buffer_npage[1], prefix); int temp; options.GetIntegerValue("ma77_file_size", temp, prefix); control_.file_size = temp; options.GetIntegerValue("ma77_maxstore", temp, prefix); control_.maxstore = temp; options.GetIntegerValue("ma77_nemin", control_.nemin, prefix); options.GetNumericValue("ma77_small", control_.small, prefix); options.GetNumericValue("ma77_static", control_.static_, prefix); options.GetNumericValue("ma77_u", control_.u, prefix); options.GetNumericValue("ma77_umax", umax_, prefix); std::string order_method; options.GetStringValue("ma77_order", order_method, prefix); if (order_method == "metis") { ordering_ = ORDER_METIS; } else { ordering_ = ORDER_AMD; } return true; // All is well } /* Method for initializing internal structures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus Ma77SolverInterface::InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja) { struct ma77_info info; struct mc68_control control68; struct mc68_info info68; // Store size for later use ndim_ = dim; if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // mc68 requires a half matrix. A future version will support full // matrix entry, and this code should be removed when it is available. Index *ia_half = new Index[dim+1]; Index *ja_half = new Index[ia[dim]-1]; { int k = 0; for(int i=0; i= i) ja_half[k++] = ja[j]; } ia_half[dim] = k+1; } // Determine an ordering mc68_default_control(&control68); control68.f_array_in = 1; // Use Fortran numbering (faster) control68.f_array_out = 1; // Use Fortran numbering (faster) Index *perm = new Index[dim]; if(ordering_ == ORDER_METIS) { mc68_order(3, dim, ia_half, ja_half, perm, &control68, &info68); /* MeTiS */ if(info68.flag == -5) { // MeTiS not available ordering_ = ORDER_AMD; } else if(info68.flag<0) { delete[] ia_half; delete[] ja_half; return SYMSOLVER_FATAL_ERROR; } } if(ordering_ == ORDER_AMD) { mc68_order(1, dim, ia_half, ja_half, perm, &control68, &info68); /* AMD */ if(info68.flag<0) { delete[] ia_half; delete[] ja_half; return SYMSOLVER_FATAL_ERROR; } } delete[] ia_half; delete[] ja_half; // Open files ma77_open(ndim_, "ma77_int", "ma77_real", "ma77_work", "ma77_delay", &keep_, &control_, &info); if (info.flag < 0) return SYMSOLVER_FATAL_ERROR; // Store data into files for(int i=0; i=0) { return SYMSOLVER_SUCCESS; } else { return SYMSOLVER_FATAL_ERROR; } } /* Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus Ma77SolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { struct ma77_info info; if (new_matrix || pivtol_changed_) { for(int i=0; i= umax_) { return false; } pivtol_changed_ = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Increasing pivot tolerance for HSL_MA77 from %7.2e ", control_.u); control_.u = Min(umax_, pow(control_.u,0.75)); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e.\n", control_.u); return true; } } // namespace Ipopt #endif /* COINHSL_HAS_MA77 or HAVE_LINEARSOLVERLOADER */ Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa97SolverInterface.cpp0000644000076600007660000006367612156621430024521 0ustar coincoin// Copyright (C) 2012, The Science and Technology Facilities Council. // Copyright (C) 2009, Jonathan Hogg . // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa97SolverInterface.cpp 2003 2011-06-03 03:53:44Z andreasw $ // // Authors: Jonathan Hogg STFC 2012-12-21 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif // if we have MA97 in HSL or the linear solver loader, then we want to build the MA97 interface #if defined(COINHSL_HAS_MA97) || defined(HAVE_LINEARSOLVERLOADER) #include "IpMa97SolverInterface.hpp" #include #include #include using namespace std; /* Uncomment the following line to enable the ma97_dump_matrix option. * This option requires a version of the coinhsl that supports this function. */ //#define MA97_DUMP_MATRIX #ifdef MA97_DUMP_MATRIX extern "C" { extern void F77_FUNC (dump_mat_csc, DUMP_MAT_CSC) ( const ipfint *factidx, const ipfint *n, const ipfint *ptr, const ipfint *row, const double *a); } #endif namespace Ipopt { Ma97SolverInterface::~Ma97SolverInterface() { delete [] val_; if(scaling_) delete [] scaling_; ma97_finalise(&akeep_, &fkeep_); } void Ma97SolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddIntegerOption( "ma97_print_level", "Debug printing level for the linear solver MA97", 0, "" /* "<0 no printing.\n" "0 Error and warning messages only.\n" "=1 Limited diagnostic printing.\n" ">1 Additional diagnostic printing."*/); roptions->AddLowerBoundedIntegerOption( "ma97_nemin", "Node Amalgamation parameter", 1, 8, "Two nodes in elimination tree are merged if result has fewer than " "ma97_nemin variables."); roptions->AddLowerBoundedNumberOption( "ma97_small", "Zero Pivot Threshold", 0.0, false, 1e-20, "Any pivot less than ma97_small is treated as zero."); roptions->AddBoundedNumberOption( "ma97_u", "Pivoting Threshold", 0.0, false, 0.5, false, 1e-8, "See MA97 documentation."); roptions->AddBoundedNumberOption( "ma97_umax", "Maximum Pivoting Threshold", 0.0, false, 0.5, false, 1e-4, "See MA97 documentation."); roptions->AddStringOption5( "ma97_scaling", "Specifies strategy for scaling in HSL_MA97 linear solver", "dynamic", "none", "Do not scale the linear system matrix", "mc30", "Scale all linear system matrices using MC30", "mc64", "Scale all linear system matrices using MC64", "mc77", "Scale all linear system matrices using MC77 [1,3,0]", "dynamic", "Dynamically select scaling according to rules specified by ma97_scalingX and ma97_switchX options.", ""); roptions->AddStringOption4( "ma97_scaling1", "First scaling.", "mc64", "none", "No scaling", "mc30", "Scale linear system matrix using MC30", "mc64", "Scale linear system matrix using MC64", "mc77", "Scale linear system matrix using MC77 [1,3,0]", "If ma97_scaling=dynamic, this scaling is used according to the trigger " "ma97_switch1. If ma97_switch2 is triggered it is disabled."); roptions->AddStringOption9( "ma97_switch1", "First switch, determine when ma97_scaling1 is enabled.", "od_hd_reuse", "never", "Scaling is never enabled.", "at_start", "Scaling to be used from the very start.", "at_start_reuse", "Scaling to be used on first iteration, then reused thereafter.", "on_demand", "Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).", "on_demand_reuse", "As on_demand, but reuse scaling from previous itr", "high_delay", "Scaling to be used after more than 0.05*n delays are present", "high_delay_reuse", "Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr", "od_hd", "Combination of on_demand and high_delay", "od_hd_reuse", "Combination of on_demand_reuse and high_delay_reuse", "If ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If ma97_switch2 occurs this option is henceforth ignored."); roptions->AddStringOption4( "ma97_scaling2", "Second scaling.", "mc64", "none", "No scaling", "mc30", "Scale linear system matrix using MC30", "mc64", "Scale linear system matrix using MC64", "mc77", "Scale linear system matrix using MC77 [1,3,0]", "If ma97_scaling=dynamic, this scaling is used according to the trigger " "ma97_switch2. If ma97_switch3 is triggered it is disabled."); roptions->AddStringOption9( "ma97_switch2", "Second switch, determine when ma97_scaling2 is enabled.", "never", "never", "Scaling is never enabled.", "at_start", "Scaling to be used from the very start.", "at_start_reuse", "Scaling to be used on first iteration, then reused thereafter.", "on_demand", "Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).", "on_demand_reuse", "As on_demand, but reuse scaling from previous itr", "high_delay", "Scaling to be used after more than 0.05*n delays are present", "high_delay_reuse", "Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr", "od_hd", "Combination of on_demand and high_delay", "od_hd_reuse", "Combination of on_demand_reuse and high_delay_reuse", "If ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If ma97_switch3 occurs this option is henceforth ignored."); roptions->AddStringOption4( "ma97_scaling3", "Third scaling.", "mc64", "none", "No scaling", "mc30", "Scale linear system matrix using MC30", "mc64", "Scale linear system matrix using MC64", "mc77", "Scale linear system matrix using MC77 [1,3,0]", "If ma97_scaling=dynamic, this scaling is used according to the trigger " "ma97_switch3."); roptions->AddStringOption9( "ma97_switch3", "Third switch, determine when ma97_scaling3 is enabled.", "never", "never", "Scaling is never enabled.", "at_start", "Scaling to be used from the very start.", "at_start_reuse", "Scaling to be used on first iteration, then reused thereafter.", "on_demand", "Scaling to be used after Ipopt request improved solution (i.e. iterative refinement has failed).", "on_demand_reuse", "As on_demand, but reuse scaling from previous itr", "high_delay", "Scaling to be used after more than 0.05*n delays are present", "high_delay_reuse", "Scaling to be used only when previous itr created more that 0.05*n additional delays, otherwise reuse scaling from previous itr", "od_hd", "Combination of on_demand and high_delay", "od_hd_reuse", "Combination of on_demand_reuse and high_delay_reuse", "If ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition."); roptions->AddStringOption7( "ma97_order", "Controls type of ordering used by HSL_MA97", "auto", "auto", "Use HSL_MA97 heuristic to guess best of AMD and METIS", "best", "Try both AMD and MeTiS, pick best", "amd", "Use the HSL_MC68 approximate minimum degree algorithm", "metis", "Use the MeTiS nested dissection algorithm", "matched-auto", "Use the HSL_MC80 matching with heuristic choice of AMD or METIS", "matched-metis", "Use the HSL_MC80 matching based ordering with METIS", "matched-amd", "Use the HSL_MC80 matching based ordering with AMD", ""); #ifdef MA97_DUMP_MATRIX roptions->AddStringOption2( "ma97_dump_matrix", "Controls whether HSL_MA97 dumps each matrix to a file", "no", "no", "Do not dump matrix", "yes", "Do dump matrix", ""); #endif roptions->AddStringOption2( "ma97_solve_blas3", "Controls if blas2 or blas3 routines are used for solve", "no", "no", "Use BLAS2 (faster, some implementations bit incompatible)", "yes", "Use BLAS3 (slower)", ""); } int Ma97SolverInterface::ScaleNameToNum(const std::string& name) { if(name=="none") return 0; if(name=="mc64") return 1; if(name=="mc77") return 2; if(name=="mc30") return 4; assert(0); return -1; } bool Ma97SolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { ma97_default_control(&control_); control_.f_arrays = 1; // Use Fortran numbering (faster) control_.action = 0; // false, shuold exit with error on singularity options.GetIntegerValue("ma97_print_level", control_.print_level, prefix); options.GetIntegerValue("ma97_nemin", control_.nemin, prefix); options.GetNumericValue("ma97_small", control_.small, prefix); options.GetNumericValue("ma97_u", control_.u, prefix); options.GetNumericValue("ma97_umax", umax_, prefix); std::string order_method, scaling_method, rescale_strategy; options.GetStringValue("ma97_order", order_method, prefix); if(order_method == "metis") { ordering_ = ORDER_METIS; } else if(order_method == "amd") { ordering_ = ORDER_AMD; } else if(order_method == "best") { ordering_ = ORDER_BEST; } else if(order_method == "matched-metis") { ordering_ = ORDER_MATCHED_METIS; } else if(order_method == "matched-amd") { ordering_ = ORDER_MATCHED_AMD; } else if(order_method == "matched-auto") { ordering_ = ORDER_MATCHED_AUTO; } else { ordering_ = ORDER_AUTO; } options.GetStringValue("ma97_scaling", scaling_method, prefix); current_level_ = 0; if(scaling_method == "dynamic") { scaling_type_ = 0; string switch_val[3], scale_val[3]; options.GetStringValue("ma97_switch1", switch_val[0], prefix); options.GetStringValue("ma97_scaling1", scale_val[0], prefix); options.GetStringValue("ma97_switch2", switch_val[1], prefix); options.GetStringValue("ma97_scaling2", scale_val[1], prefix); options.GetStringValue("ma97_switch3", switch_val[2], prefix); options.GetStringValue("ma97_scaling3", scale_val[2], prefix); for(int i=0; i<3; i++) { scaling_val_[i] = ScaleNameToNum(scale_val[i]); if(switch_val[i]=="never") switch_[i] = SWITCH_NEVER; else if(switch_val[i]=="at_start") { switch_[i] = SWITCH_AT_START; scaling_type_ = scaling_val_[i]; current_level_ = i; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Enabled scaling level %d on initialization\n", current_level_); } else if(switch_val[i]=="at_start_reuse") { switch_[i] = SWITCH_AT_START_REUSE; scaling_type_ = scaling_val_[i]; current_level_ = i; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Enabled scaling level %d on initialization\n", current_level_); } else if(switch_val[i]=="on_demand") switch_[i] = SWITCH_ON_DEMAND; else if(switch_val[i]=="on_demand_reuse") switch_[i] = SWITCH_ON_DEMAND_REUSE; else if(switch_val[i]=="high_delay") switch_[i] = SWITCH_NDELAY; else if(switch_val[i]=="high_delay_reuse") switch_[i] = SWITCH_NDELAY_REUSE; else if(switch_val[i]=="od_hd") switch_[i] = SWITCH_OD_ND; else if(switch_val[i]=="od_hd_reuse") switch_[i] = SWITCH_OD_ND_REUSE; } } else { switch_[0] = SWITCH_AT_START; switch_[1] = SWITCH_NEVER; switch_[2] = SWITCH_NEVER; scaling_type_ = ScaleNameToNum(scaling_method); } #ifdef MA97_DUMP_MATRIX options.GetBoolValue("ma97_dump_matrix", dump_, prefix); #endif bool solve_blas3; options.GetBoolValue("ma97_solve_blas3", solve_blas3, prefix); control_.solve_blas3 = solve_blas3 ? 1 : 0; // Set whether we scale on first iteration or not switch(switch_[current_level_]) { case SWITCH_NEVER: case SWITCH_ON_DEMAND: case SWITCH_ON_DEMAND_REUSE: case SWITCH_NDELAY: case SWITCH_NDELAY_REUSE: case SWITCH_OD_ND: case SWITCH_OD_ND_REUSE: rescale_ = false; break; case SWITCH_AT_START: case SWITCH_AT_START_REUSE: rescale_ = true; break; } // Set scaling control_.scaling = scaling_type_; return true; // All is well } /* Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus Ma97SolverInterface::InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja) { struct ma97_info info, info2; void *akeep_amd, *akeep_metis; // Store size for later use ndim_ = dim; // Setup memory for values if (val_!=NULL) delete[] val_; val_ = new double[nonzeros]; // Check if analyse needs to be postponed if(ordering_ == ORDER_MATCHED_AMD || ordering_ == ORDER_MATCHED_METIS) { // Ordering requires values. Just signal success and return Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Delaying analyse until values are available\n"); switch(ordering_) { case ORDER_MATCHED_AMD: control_.ordering = 7; // HSL_MC80 with AMD break; case ORDER_MATCHED_METIS: control_.ordering = 8; // HSL_MC80 with METIS break; } return SYMSOLVER_SUCCESS; } if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } // perform analyse if(ordering_ == ORDER_BEST) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Use best of AMD or MeTiS:\n"); control_.ordering = 1; // AMD ma97_analyse(0, dim, ia, ja, NULL, &akeep_amd, &control_, &info2, NULL); if (info2.flag<0) return SYMSOLVER_FATAL_ERROR; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "AMD nfactor = %d, nflops = %d:\n", info2.num_factor, info2.num_flops); control_.ordering = 3; // METIS ma97_analyse(0, dim, ia, ja, NULL, &akeep_metis, &control_, &info, NULL); if (info.flag<0) return SYMSOLVER_FATAL_ERROR; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MeTiS nfactor = %d, nflops = %d:\n", info.num_factor, info.num_flops); if(info.num_flops > info2.num_flops) { // Use AMD Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Choose AMD\n"); akeep_ = akeep_amd; ma97_free_akeep(&akeep_metis); info = info2; } else { // Use MeTiS Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Choose MeTiS\n"); akeep_ = akeep_metis; ma97_free_akeep(&akeep_amd); } } else { switch(ordering_) { case ORDER_AMD: case ORDER_MATCHED_AMD: control_.ordering = 1; // AMD break; case ORDER_METIS: case ORDER_MATCHED_METIS: control_.ordering = 3; // METIS break; case ORDER_AUTO: case ORDER_MATCHED_AUTO: Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Make heuristic choice of AMD or MeTiS\n"); control_.ordering = 5; // Use heuristic to pick which to use } ma97_analyse(0, dim, ia, ja, NULL, &akeep_, &control_, &info, NULL); switch(info.ordering) { case 1: Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Used AMD\n"); if(ordering_ == ORDER_MATCHED_AUTO) ordering_ = ORDER_MATCHED_AMD; break; case 3: Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Used MeTiS\n"); if(ordering_ == ORDER_MATCHED_AUTO) ordering_ = ORDER_MATCHED_METIS; break; default: Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Used ordering %d\n", info.ordering); break; } } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: PREDICTED nfactor %d, maxfront %d\n", info.num_factor, info.maxfront); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } if (info.flag>=0) { return SYMSOLVER_SUCCESS; } else { return SYMSOLVER_FATAL_ERROR; } } /* Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus Ma97SolverInterface::MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { struct ma97_info info; Number t1=0,t2; if (new_matrix || pivtol_changed_) { #ifdef MA97_DUMP_MATRIX if(dump_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Dumping matrix %d\n", fctidx_); F77_FUNC (dump_mat_csc, DUMP_MAT_CSC) (&fctidx_, &ndim_, ia, ja, val_); fctidx_++; } #endif // Set scaling option if(rescale_) { control_.scaling = scaling_type_; if(scaling_type_!=0 && scaling_==NULL) scaling_ = new double[ndim_]; // alloc if not already } else { control_.scaling = 0; // None or user (depends if scaling_ is alloc'd) } if((ordering_ == ORDER_MATCHED_AMD || ordering_ == ORDER_MATCHED_METIS) && rescale_) { /* * Perform delayed analyse */ if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } switch(ordering_) { case ORDER_MATCHED_AMD: control_.ordering = 7; // HSL_MC80 with AMD break; case ORDER_MATCHED_METIS: control_.ordering = 8; // HSL_MC80 with METIS break; } ma97_analyse(0, ndim_, ia, ja, val_, &akeep_, &control_, &info, NULL); if(scaling_type_ == 1) control_.scaling = 3; // use mc64 from ordering Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: PREDICTED nfactor %d, maxfront %d\n", info.num_factor, info.maxfront); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } if (info.flag==6 || info.flag==-7) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma97SolverInterface::Factorization: " "Singular system, estimated rank %d of %d\n", info.matrix_rank, ndim_); return SYMSOLVER_SINGULAR; } if (info.flag<0) return SYMSOLVER_FATAL_ERROR; } if (HaveIpData()) { t1 = IpData().TimingStats().LinearSystemFactorization().TotalWallclockTime(); IpData().TimingStats().LinearSystemFactorization().Start(); } ma97_factor(4, ia, ja, val_, &akeep_, &fkeep_, &control_, &info, scaling_); //ma97_factor_solve(4, ia, ja, val_, 1, rhs_vals, ndim_, &akeep_, &fkeep_, // &control_, &info, scaling_); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: delays %d, nfactor %d, nflops %ld, maxfront %d\n", info.num_delay, info.num_factor, info.num_flops, info.maxfront); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); t2 = IpData().TimingStats().LinearSystemFactorization().TotalWallclockTime(); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Ma97SolverInterface::Factorization: " "ma97_factor_solve took %10.3f\n", t2-t1); } if (info.flag==7 || info.flag==-7) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma97SolverInterface::Factorization: " "Singular system, estimated rank %d of %d\n", info.matrix_rank, ndim_); return SYMSOLVER_SINGULAR; } for(int i=current_level_; i<3; i++) { switch(switch_[i]) { case SWITCH_NEVER: case SWITCH_AT_START: case SWITCH_ON_DEMAND: // Nothing to do here break; case SWITCH_AT_START_REUSE: rescale_ = false; // Scaled exactly once, never changed again break; case SWITCH_ON_DEMAND_REUSE: if(i==current_level_ && rescale_) rescale_ = false; break; case SWITCH_NDELAY_REUSE: case SWITCH_OD_ND_REUSE: if(rescale_) numdelay_ = info.num_delay; // Need to do this before we reset rescale_ if(i==current_level_ && rescale_) rescale_ = false; // Falls through to: case SWITCH_NDELAY: case SWITCH_OD_ND: if(rescale_) numdelay_ = info.num_delay; if(info.num_delay - numdelay_ > 0.05*ndim_) { // number of delays has signficantly increased, so trigger current_level_ = i; scaling_type_ = scaling_val_[i]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Enabling scaling %d due to excess delays\n", i); rescale_ = true; } break; } } if (info.flag<0) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma97SolverInterface::Factorization: " "Unhandled error. info.flag = %d\n", info.flag); return SYMSOLVER_FATAL_ERROR; } if (check_NegEVals && info.num_neg!=numberOfNegEVals) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma97SolverInterface::Factorization: " "info.num_neg = %d, but numberOfNegEVals = %d\n", info.num_neg, numberOfNegEVals); return SYMSOLVER_WRONG_INERTIA; } if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ma97_solve(0, 1, rhs_vals, ndim_, &akeep_, &fkeep_, &control_, &info); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } numneg_ = info.num_neg; pivtol_changed_ = false; } else { if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ma97_solve(0, 1, rhs_vals, ndim_, &akeep_, &fkeep_, &control_, &info); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().End(); } } return SYMSOLVER_SUCCESS; } bool Ma97SolverInterface::IncreaseQuality() { for(int i=current_level_; i<3; i++) { switch(switch_[i]) { case SWITCH_ON_DEMAND: case SWITCH_ON_DEMAND_REUSE: case SWITCH_OD_ND: case SWITCH_OD_ND_REUSE: rescale_ = true; current_level_ = i; scaling_type_ = scaling_val_[i]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "HSL_MA97: Enabling scaling %d due to failure of iterative refinement\n", current_level_); break; default: ; } } if (control_.u >= umax_) { return false; } pivtol_changed_ = true; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Indreasing pivot tolerance for HSL_MA97 from %7.2e ", control_.u); control_.u = Min(umax_, pow(control_.u,0.75)); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "to %7.2e.\n", control_.u); return true; } } // namespace Ipopt #endif /* COINHSL_HAS_MA97 or HAVE_LINEARSOLVERLOADER */ Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/Makefile.am0000644000076600007660000001106612066060130022003 0ustar coincoin# Copyright (C) 2004, 2011 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2159 2012-12-24 14:02:00Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign noinst_LTLIBRARIES = liblinsolvers.la liblinsolvers_la_SOURCES = \ IpGenKKTSolverInterface.hpp \ IpLinearSolversRegOp.cpp IpLinearSolversRegOp.hpp \ IpSlackBasedTSymScalingMethod.cpp IpSlackBasedTSymScalingMethod.hpp \ IpSparseSymLinearSolverInterface.hpp \ IpSymLinearSolver.hpp \ IpTDependencyDetector.hpp \ IpTripletToCSRConverter.cpp IpTripletToCSRConverter.hpp \ IpTSymDependencyDetector.cpp IpTSymDependencyDetector.hpp \ IpTSymLinearSolver.cpp IpTSymLinearSolver.hpp \ IpTSymScalingMethod.hpp liblinsolvers_la_SOURCES += \ IpMa27TSolverInterface.cpp IpMa27TSolverInterface.hpp \ IpMa57TSolverInterface.cpp IpMa57TSolverInterface.hpp \ IpMa86SolverInterface.cpp IpMa86SolverInterface.hpp \ IpMa97SolverInterface.cpp IpMa97SolverInterface.hpp \ IpMc19TSymScalingMethod.cpp IpMc19TSymScalingMethod.hpp \ IpMa28TDependencyDetector.cpp IpMa28TDependencyDetector.hpp \ IpMa77SolverInterface.cpp IpMa77SolverInterface.hpp if BUILD_LINEARSOLVERLOADER liblinsolvers_la_SOURCES += \ IpPardisoSolverInterface.cpp IpPardisoSolverInterface.hpp \ IpMa28Partition.F else if HAVE_PARDISO liblinsolvers_la_SOURCES += \ IpPardisoSolverInterface.cpp IpPardisoSolverInterface.hpp endif if HAVE_MA28 liblinsolvers_la_SOURCES += IpMa28Partition.F endif endif # BUILD_LINEARSOLVERLOADER if HAVE_WSMP liblinsolvers_la_SOURCES += \ IpWsmpSolverInterface.cpp IpWsmpSolverInterface.hpp \ IpIterativeWsmpSolverInterface.cpp IpIterativeWsmpSolverInterface.hpp endif if COIN_HAS_MUMPS liblinsolvers_la_SOURCES += IpMumpsSolverInterface.cpp IpMumpsSolverInterface.hpp endif liblinsolvers_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/..` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../contrib/CGPenalty` \ $(MUMPS_CFLAGS) $(HSL_CFLAGS) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Workaround a bug in the AIX C++ compiler if AIX_FIX_COMPILER_BUG IpTSymLinearSolver.lo: IpTSymLinearSolver.cpp @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -qnooptimize -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -qnooptimize -c -o $@ $< endif # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) AM_FCFLAGS = $(HSL_F90_INCFLAGS) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) # Astyle stuff ASTYLE_FILES = \ IpGenKKTSolverInterface.hppbak \ IpIterativeWsmpSolverInterface.cppbak \ IpIterativeWsmpSolverInterface.hppbak \ IpLinearSolversRegOp.cppbak IpLinearSolversRegOp.hppbak \ IpMa27TSolverInterface.cppbak IpMa27TSolverInterface.hppbak \ IpMa28TDependencyDetector.cppbak IpMa28TDependencyDetector.hppbak \ IpMa57TSolverInterface.cppbak IpMa57TSolverInterface.hppbak \ IpMa86SolverInterface.cppbak IpMa86SolverInterface.hppbak \ IpMa97SolverInterface.cppbak IpMa97SolverInterface.hppbak \ IpMc19TSymScalingMethod.cppbak IpMc19TSymScalingMethod.hppbak \ IpMumpsSolverInterface.cppbak IpMumpsSolverInterface.hppbak \ IpSlackBasedTSymScalingMethod.cppbak IpSlackBasedTSymScalingMethod.hppbak \ IpSparseSymLinearSolverInterface.hppbak \ IpSymLinearSolver.hppbak \ IpTDependencyDetector.hppbak \ IpTripletToCSRConverter.cppbak IpTripletToCSRConverter.hppbak \ IpTSymDependencyDetector.cppbak IpTSymDependencyDetector.hppbak \ IpTSymLinearSolver.cppbak IpTSymLinearSolver.hppbak \ IpTSymScalingMethod.hppbak \ IpPardisoSolverInterface.cppbak IpPardisoSolverInterface.hppbak \ IpWsmpSolverInterface.cppbak IpWsmpSolverInterface.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpSymLinearSolver.hpp0000644000076600007660000001113412156621430024051 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSymLinearSolver.hpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPSYMLINEARSOLVER_HPP__ #define __IPSYMLINEARSOLVER_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" #include "IpAlgStrategy.hpp" #include namespace Ipopt { /** Enum to report outcome of a linear solve */ enum ESymSolverStatus { /** Successful solve */ SYMSOLVER_SUCCESS, /** Matrix seems to be singular; solve was aborted */ SYMSOLVER_SINGULAR, /** The number of negative eigenvalues is not correct */ SYMSOLVER_WRONG_INERTIA, /** Call the solver interface again after the matrix values have * been restored */ SYMSOLVER_CALL_AGAIN, /** Unrecoverable error in linear solver occurred. The * optimization will be aborted. */ SYMSOLVER_FATAL_ERROR }; /** Base class for all derived symmetric linear * solvers. In the full space version of Ipopt a large linear * system has to be solved for the augmented system. This case is * meant to be the base class for all derived linear solvers for * symmetric matrices (of type SymMatrix). * * A linear solver can be used repeatedly for matrices with * identical structure of nonzero elements. The nonzero structure * of those matrices must not be changed between calls. * * The called might ask the solver to only solve the linear system * if the system is nonsingular, and if the number of negative * eigenvalues matches a given number. */ class SymLinearSolver: public AlgorithmStrategyObject { public: /** @name Constructor/Destructor */ //@{ SymLinearSolver() {} virtual ~SymLinearSolver() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** @name Methods for requesting solution of the linear system. */ //@{ /** Solve operation for multiple right hand sides. Solves the * linear system A * Sol = Rhs with multiple right hand sides. If * necessary, A is factorized. Correct solutions are only * guaranteed if the return values is SYMSOLVER_SUCCESS. The * solver will return SYMSOLVER_SINGULAR if the linear system is * singular, and it will return SYMSOLVER_WRONG_INERTIA if * check_NegEVals is true and the number of negative eigenvalues * in the matrix does not match numberOfNegEVals. * * check_NegEVals cannot be chosen true, if ProvidesInertia() * returns false. */ virtual ESymSolverStatus MultiSolve(const SymMatrix &A, std::vector >& rhsV, std::vector >& solV, bool check_NegEVals, Index numberOfNegEVals)=0; /** Solve operation for a single right hand side. Solves the * linear system A * Sol = Rhs. See MultiSolve for more * details. */ ESymSolverStatus Solve(const SymMatrix &A, const Vector& rhs, Vector& sol, bool check_NegEVals, Index numberOfNegEVals) { std::vector > rhsV(1); rhsV[0] = &rhs; std::vector > solV(1); solV[0] = / return MultiSolve(A, rhsV, solV, check_NegEVals, numberOfNegEVals); } /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const =0; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. * Ask linear solver to increase quality of solution for the next * solve (e.g. increase pivot tolerance). Returns false, if this * is not possible (e.g. maximal pivot tolerance already used.) */ virtual bool IncreaseQuality() =0; /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const =0; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpSlackBasedTSymScalingMethod.cpp0000644000076600007660000000442311504216567026233 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSlackBasedTSymScalingMethod.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2009-11-13 // (based on IpInexactTSymScalingMethod.cpp) #include "IpoptConfig.h" #include "IpSlackBasedTSymScalingMethod.hpp" #include "IpTripletHelper.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif bool SlackBasedTSymScalingMethod::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } bool SlackBasedTSymScalingMethod::ComputeSymTScalingFactors(Index n, Index nnz, const ipfint* airn, const ipfint* ajcn, const double* a, double* scaling_factors) { DBG_START_METH("SlackBasedTSymScalingMethod::ComputeTSymScalingFactors", dbg_verbosity); const Index nx = IpData().curr()->x()->Dim(); const Index ns = IpData().curr()->s()->Dim(); const Index nc = IpData().curr()->y_c()->Dim(); const Index nd = IpData().curr()->y_d()->Dim(); for (Index i=0; i tmp = IpData().curr()->s()->MakeNew(); // Lower bounds SmartPtr Pd_L = IpNLP().Pd_L(); SmartPtr curr_slack_s_L = IpCq().curr_slack_s_L(); DBG_PRINT_MATRIX(1, "Pd_L", *Pd_L); DBG_PRINT_VECTOR(1, "curr_slack_s_L", *curr_slack_s_L); Pd_L->MultVector(1., *curr_slack_s_L, 0., *tmp); // Upper bounds SmartPtr Pd_U = IpNLP().Pd_U(); SmartPtr curr_slack_s_U = IpCq().curr_slack_s_U(); DBG_PRINT_MATRIX(1, "Pd_U", *Pd_U); DBG_PRINT_VECTOR(1, "curr_slack_s_U", *curr_slack_s_U); Pd_U->MultVector(1., *curr_slack_s_U, 1., *tmp); SmartPtr tmp2 = tmp->MakeNew(); const Number slack_scale_max = 1.; tmp2->Set(slack_scale_max); tmp->ElementWiseMin(*tmp2); TripletHelper::FillValuesFromVector(ns, *tmp, scaling_factors); scaling_factors += ns; for (Index i=0; i #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif /** Prototypes for MC19's Fortran subroutines */ extern "C" { // here we assume that float corresponds to Fortran's single // precision void F77_FUNC(mc19ad,MC19AD)(ipfint *N, ipfint *NZ, double* A, ipfint *IRN, ipfint* ICN, float* R, float* C, float* W); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif bool Mc19TSymScalingMethod::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } bool Mc19TSymScalingMethod::ComputeSymTScalingFactors(Index n, Index nnz, const ipfint* airn, const ipfint* ajcn, const double* a, double* scaling_factors) { DBG_START_METH("Mc19TSymScalingMethod::ComputeSymTScalingFactors", dbg_verbosity); if (DBG_VERBOSITY()>=2) { for (Index i=0; i=3) { for (Index i=0; i=3) { for (Index i=0; i 1e40) { Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "Scaling factors are invalid - setting them all to 1.\n"); for (Index i=0; i=2) { for (Index i=0; i 0 static const Index dbg_verbosity = 0; #endif Ma28TDependencyDetector::Ma28TDependencyDetector() {} void Ma28TDependencyDetector:: RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "ma28_pivtol", "Pivot tolerance for linear solver MA28.", 0.0, true, 1., false, 0.01, "This is used when MA28 tries to find the dependent constraints."); } bool Ma28TDependencyDetector::InitializeImpl( const OptionsList& options, const std::string& prefix) { options.GetNumericValue("ma28_pivtol", ma28_pivtol_, prefix); return true; } bool Ma28TDependencyDetector::DetermineDependentRows( Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps) { DBG_START_METH("Ma28TDependencyDetector::DetermineDependentRows", dbg_verbosity); DBG_ASSERT(sizeof(ipfint) == sizeof(Index)); c_deps.clear(); // Now comes the interesting part: // Call Ma28 to get the dependencies ipfint TASK = 0; ipfint N = n_cols; ipfint M = n_rows; ipfint NZ = n_jac_nz; double PIVTOL = ma28_pivtol_; ipfint FILLFACT = 40; ipfint* IVAR; ipfint NDEGEN; ipfint* IDEGEN; ipfint LRW; ipfint LIW; double ddummy; ipfint idummy; ipfint IERR; // First determine how much work space we need to allocate IVAR = new ipfint[N]; IDEGEN = new ipfint[M]; F77_FUNC(ma28part,MA28PART)(&TASK, &N, &M, &NZ, &ddummy, jac_c_iRow, jac_c_jCol, &PIVTOL, &FILLFACT, IVAR, &NDEGEN, IDEGEN, &LIW, &idummy, &LRW, &ddummy, &IERR); ipfint* IW = new ipfint[LIW]; double* RW = new double[LRW]; // Now do the actual factorization and determine dependent constraints TASK = 1; F77_FUNC(ma28part,MA28PART)(&TASK, &N, &M, &NZ, jac_c_vals, jac_c_iRow, jac_c_jCol, &PIVTOL, &FILLFACT, IVAR, &NDEGEN, IDEGEN, &LIW, IW, &LRW, RW, &IERR); delete [] IVAR; delete [] IW; delete [] RW; if (IERR != 0) { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "MA28 returns IERR = %d when trying to determine dependent constraints\n", IERR); delete [] IDEGEN; return false; } for (Index i=0; i 0 static const Index dbg_verbosity = 0; #endif TSymDependencyDetector:: TSymDependencyDetector(TSymLinearSolver& tsym_linear_solver) : tsym_linear_solver_(&tsym_linear_solver) {} void TSymDependencyDetector:: RegisterOptions(SmartPtr roptions) { // Nothing so far } bool TSymDependencyDetector::InitializeImpl( const OptionsList& options, const std::string& prefix) { ASSERT_EXCEPTION(tsym_linear_solver_->ProvidesDegeneracyDetection(), OPTION_INVALID, "Selected linear solver does not support dependency detection"); return tsym_linear_solver_->ReducedInitialize(Jnlst(), options, prefix); } bool TSymDependencyDetector::DetermineDependentRows( Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps) { DBG_START_METH("TSymDependencyDetector::DetermineDependentRows", dbg_verbosity); ESymSolverStatus retval = tsym_linear_solver_->DetermineDependentRows(n_rows, n_cols, n_jac_nz, jac_c_vals, jac_c_iRow, jac_c_jCol, c_deps); return (retval == SYMSOLVER_SUCCESS); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpTripletToCSRConverter.cpp0000644000076600007660000002340711717162232025144 0ustar coincoin// Copyright (C) 2005, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTripletToCSRConverter.cpp 2087 2012-02-16 11:12:26Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-03-13 #include "IpTripletToCSRConverter.hpp" #include #ifdef HAVE_CSTDDEF # include #else # ifdef HAVE_STDDEF_H # include # else # error "don't have header file for stddef" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif TripletToCSRConverter:: TripletToCSRConverter(Index offset, ETriFull hf /*= Triangular_Format*/) : offset_(offset), hf_(hf), ia_(NULL), ja_(NULL), dim_(0), nonzeros_triplet_(0), nonzeros_compressed_(0), initialized_(false), ipos_first_(NULL), ipos_double_triplet_(NULL), ipos_double_compressed_(NULL) { DBG_ASSERT(offset==0|| offset==1); } TripletToCSRConverter::~TripletToCSRConverter() { delete[] ia_; delete[] ja_; delete[] ipos_first_; delete[] ipos_double_triplet_; delete[] ipos_double_compressed_; } Index TripletToCSRConverter::InitializeConverter(Index dim, Index nonzeros, const Index* airn, const Index* ajcn) { DBG_START_METH("TSymLinearSolver::InitializeStructure", dbg_verbosity); DBG_ASSERT(dim>0); DBG_ASSERT(nonzeros>0); delete[] ia_; delete[] ja_; delete[] ipos_first_; delete[] ipos_double_triplet_; delete[] ipos_double_compressed_; dim_ = dim; nonzeros_triplet_ = nonzeros; // Create a list with all triplet entries std::list entry_list(nonzeros); std::list::iterator list_iterator = entry_list.begin(); for (Index i=0; iSet(airn[i], ajcn[i], i); list_iterator++; } DBG_ASSERT(list_iterator == entry_list.end()); if (DBG_VERBOSITY()>=2) { for (Index i=0; iIRow()) { ia_[cur_row-1] = 0; cur_row++; } ia_[cur_row-1] = 0; ja_tmp[0] = list_iterator->JCol(); ipos_first_tmp[0] = list_iterator->PosTriplet(); if (hf_ == Full_Format) { // Count in both lower and upper triangles. Count diagonal only once. nonzeros_compressed_full++; rc_tmp[cur_row-1]++; if (cur_row!=list_iterator->JCol()) { nonzeros_compressed_full++; rc_tmp[list_iterator->JCol()-1]++; } } list_iterator++; Index idouble = 0; Index idouble_full = 0; while (list_iterator != entry_list.end()) { Index irow = list_iterator->IRow(); Index jcol = list_iterator->JCol(); if (cur_row == irow && ja_tmp[nonzeros_compressed_] == jcol) { // This element appears repeatedly, add to the double list ipos_double_triplet_tmp[idouble] = list_iterator->PosTriplet(); ipos_double_compressed_tmp[idouble] = nonzeros_compressed_; idouble++; idouble_full++; if (hf_==Full_Format && irow!=jcol) { idouble_full++; } } else { // This is a new element if (hf_==Full_Format) { // Count in both lower and upper triangles. Count diagonal only once. nonzeros_compressed_full++; rc_tmp[jcol-1]++; if (irow!=jcol) { nonzeros_compressed_full++; rc_tmp[irow-1]++; } } nonzeros_compressed_++; ja_tmp[nonzeros_compressed_] = jcol; ipos_first_tmp[nonzeros_compressed_] = list_iterator->PosTriplet(); if (cur_row != irow) { // this is in a new row ia_[cur_row] = nonzeros_compressed_; cur_row++; } } list_iterator++; } nonzeros_compressed_++; for (Index i=cur_row; i<=dim_; i++) { ia_[i] = nonzeros_compressed_; } DBG_ASSERT(idouble == nonzeros_triplet_-nonzeros_compressed_); // Now copy the ja_tmp array to the (shorter) final one and make // sure that the correct offset is used if (hf_==Triangular_Format) { ja_ = new Index[nonzeros_compressed_]; if (offset_==0) { for (Index i=0; i=2) { for (Index i=0; i<=dim_; i++) { DBG_PRINT((2, "ia[%5d] = %5d\n", i, ia_[i])); } for (Index i=0; i=2) { for (Index i=0; i // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa97SolverInterface.hpp 2001 2011-06-02 17:43:07Z andreasw $ // // Authors: Jonathan Hogg STFC 2012-12-21 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #ifndef __IPMA97SOLVERINTERFACE_HPP__ #define __IPMA97SOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" extern "C" { #include "hsl_ma97d.h" } namespace Ipopt { /** Base class for interfaces to symmetric indefinite linear solvers * for sparse matrices. * * This defines the general interface to linear solvers for sparse * symmetric indefinite matrices. The matrices can be provided * either in "triplet format" (like for Harwell's MA27 solver), or * in compressed sparse row (CSR) format for the lower triangular * part of the symmetric matrix. * * The solver should be able to compute the interia of the matrix, * or more specifically, the number of negative eigenvalues in the * factorized matrix. * * This interface is used by the calling objective in the following * way: * * 1. The InitializeImpl method is called at the very beginning * (for every optimization run), which allows the linear solver * object to retrieve options given in the OptionsList (such as * pivot tolerances etc). At this point, some internal data can * also be initialized. * * 2. The calling class calls MatrixFormat to find out which matrix * representation the linear solver requires. The possible options * are Triplet_Format, as well as CSR_Format_0_Offset and * CSR_Format_1_Offset. The difference between the last two is * that for CSR_Format_0_Offset the couning of the element position * in the ia and ja arrays starts are 0 (C-style numbering), * whereas for the other one it starts at 1 (Fortran-style * numbering). * * 3. After this, the InitializeStructure method is called (once). * Here, the structure of the matrix is provided. If the linear * solver requires a symbolic preprocessing phase that can be done * without knowledge of the matrix element values, it can be done * here. * * 4. The calling class will request an array for storing the * actual values for a matrix using the GetValuesArrayPtr method. * This array must be at least as large as the number of nonzeros * in the matrix (as given to this class by the InitializeStructure * method call). After a call of this method, the calling class * will fill this array with the actual values of the matrix. * * 5. Every time lateron, when actual solves of a linear system is * requested, the calling class will call the MultiSolve to request * the solve, possibly for mulitple right-hand sides. The flag * new_matrix then indicates if the values of the matrix have * changed and if a factorization is required, or if an old * factorization can be used to do the solve. * * Note that the GetValuesArrayPtr method will be called before * every call of MultiSolve with new_matrix=true, or before a * renewed call of MultiSolve if the most previous return value was * SYMSOLV_CALL_AGAIN. * * 6. The calling class might request with NumberOfNegEVals the * number of the negative eigenvalues for the original matrix that * were detected during the most recently performed factorization. * * 7. The calling class might ask the linear solver to increase the * quality of the solution. For example, if the linear solver uses * a pivot tolerance, a larger value should be used for the next * solve (which might require a refactorization). * * 8. Finally, when the destructor is called, the internal storage, * also in the linear solver, should be released. * * Note, if the matrix is given in triplet format, entries might be * listed multiple times, in which case the corresponsing elements * have to be added. * * A note for warm starts: If the option * "warm_start_same_structure" is specified with "yes", the * algorithm assumes that a problem with the same sparsity * structure is solved for a repeated time. In that case, the * linear solver might reuse information from the previous * optimization. See Ma27TSolverInterface for an example. */ class Ma97SolverInterface: public SparseSymLinearSolverInterface { private: enum order_opts { ORDER_AUTO, ORDER_BEST, ORDER_AMD, ORDER_METIS, ORDER_MATCHED_AUTO, ORDER_MATCHED_AMD, ORDER_MATCHED_METIS }; enum scale_opts { SWITCH_NEVER, SWITCH_AT_START, SWITCH_AT_START_REUSE, SWITCH_ON_DEMAND, SWITCH_ON_DEMAND_REUSE, SWITCH_NDELAY, SWITCH_NDELAY_REUSE, SWITCH_OD_ND, SWITCH_OD_ND_REUSE }; int ndim_; // Number of dimensions double *val_; // Storage for variables int numneg_; // Number of negative pivots in last factorization int numdelay_; // Number of delayed pivots last time we scaled void *akeep_; // Stores pointer to factors (only understood Fortran code!) void *fkeep_; // Stores pointer to factors (only understood Fortran code!) bool pivtol_changed_; // indicates if pivtol has been changed bool rescale_; // Indicates if we shuold rescale next factorization double *scaling_; // Store scaling for reuse if doing dynamic scaling int fctidx_; // Current factorization number to dump to /* Options */ struct ma97_control control_; double umax_; int ordering_; int scaling_type_; enum scale_opts switch_[3]; int scaling_val_[3]; int current_level_; bool dump_; public: Ma97SolverInterface() : val_(NULL), numdelay_(0), akeep_(NULL), fkeep_(NULL), pivtol_changed_(false), rescale_(false), scaling_(NULL), fctidx_(0), scaling_type_(0), dump_(false) {} ~Ma97SolverInterface(); static void RegisterOptions(SmartPtr roptions); bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja); /** Method returing an internal array into which the nonzero * elements (in the same order as ja) will be stored by the * calling routine before a call to MultiSolve with a * new_matrix=true (or after a return of MultiSolve with * SYMSOLV_CALL_AGAIN). The returned array must have space for at * least nonzero elements. */ double* GetValuesArrayPtr() { return val_; } /** Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ Index NumberOfNegEVals() const { return numneg_; } //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. The * calling class asks linear solver to increase quality of * solution for the next solve (e.g. increase pivot tolerance). * Returns false, if this is not possible (e.g. maximal pivot * tolerance already used.) */ bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. Returns * true, if linear solver provides inertia. */ bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Format_1_Offset; } //@} /** @name Methods related to the detection of linearly dependent * rows in a matrix */ //@{ /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ bool ProvidesDegeneracyDetection() const { return false; } /** This method determines the list of row indices of the linearly * dependent rows. */ ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { return SYMSOLVER_FATAL_ERROR; } /** converts a scalign optoin name to its ma97 option number */ static int ScaleNameToNum(const std::string& name); }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpSlackBasedTSymScalingMethod.hpp0000644000076600007660000000423112132274713026230 0ustar coincoin// Copyright (C) 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSlackBasedTSymScalingMethod.hpp 2206 2013-04-13 15:29:15Z stefan $ // // Authors: Andreas Waechter IBM 2009-11-13 // (based on IpInexactTSymScalingMethod.hpp) #ifndef __IPSLACKBASEDTSYMSCALINGMETHOD_HPP__ #define __IPSLACKBASEDTSYMSCALINGMETHOD_HPP__ #include "IpUtils.hpp" #include "IpTSymScalingMethod.hpp" namespace Ipopt { /** Class for the method for computing scaling factors for symmetric * matrices in triplet format, specifically for the inexaxct algorithm. * The scaling is only considering the current slacks. */ class SlackBasedTSymScalingMethod: public TSymScalingMethod { public: /** @name Constructor/Destructor */ //@{ SlackBasedTSymScalingMethod() {} virtual ~SlackBasedTSymScalingMethod() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the symmetric scaling factors, given the * symmtric matrix in triplet (MA27) format. */ virtual bool ComputeSymTScalingFactors(Index n, Index nnz, const ipfint* airn, const ipfint* ajcn, const double* a, double* scaling_factors); private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ SlackBasedTSymScalingMethod(const SlackBasedTSymScalingMethod&); /** Overloaded Equals Operator */ void operator=(const SlackBasedTSymScalingMethod&); }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpTSymLinearSolver.cpp0000644000076600007660000005421512214316142024173 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTSymLinearSolver.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-03-17 #include "IpTSymLinearSolver.hpp" #include "IpTripletHelper.hpp" #include "IpBlas.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif TSymLinearSolver::TSymLinearSolver (SmartPtr solver_interface, SmartPtr scaling_method) : SymLinearSolver(), dim_(0), nonzeros_triplet_(0), nonzeros_compressed_(0), have_structure_(false), initialized_(false), solver_interface_(solver_interface), scaling_method_(scaling_method), scaling_factors_(NULL), airn_(NULL), ajcn_(NULL) { DBG_START_METH("TSymLinearSolver::TSymLinearSolver()",dbg_verbosity); DBG_ASSERT(IsValid(solver_interface)); } TSymLinearSolver::~TSymLinearSolver() { DBG_START_METH("TSymLinearSolver::~TSymLinearSolver()", dbg_verbosity); delete [] airn_; delete [] ajcn_; delete [] scaling_factors_; } void TSymLinearSolver::RegisterOptions(SmartPtr roptions) { roptions->AddStringOption2( "linear_scaling_on_demand", "Flag indicating that linear scaling is only done if it seems required.", "yes", "no", "Always scale the linear system.", "yes", "Start using linear system scaling if solutions seem not good.", "This option is only important if a linear scaling method (e.g., mc19) " "is used. If you choose \"no\", then the scaling factors are computed " "for every linear system from the start. This can be quite expensive. " "Choosing \"yes\" means that the algorithm will start the scaling " "method only when the solutions to the linear system seem not good, and " "then use it until the end."); } bool TSymLinearSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { if (IsValid(scaling_method_)) { options.GetBoolValue("linear_scaling_on_demand", linear_scaling_on_demand_, prefix); } else { linear_scaling_on_demand_ = false; } // This option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); bool retval; if (HaveIpData()) { retval = solver_interface_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } else { retval = solver_interface_->ReducedInitialize(Jnlst(), options, prefix); } if (!retval) { return false; } if (!warm_start_same_structure_) { // Reset all private data atag_=TaggedObject::Tag(); dim_=0; nonzeros_triplet_=0; nonzeros_compressed_=0; have_structure_=false; matrix_format_ = solver_interface_->MatrixFormat(); switch (matrix_format_) { case SparseSymLinearSolverInterface::CSR_Format_0_Offset: triplet_to_csr_converter_ = new TripletToCSRConverter(0); break; case SparseSymLinearSolverInterface::CSR_Format_1_Offset: triplet_to_csr_converter_ = new TripletToCSRConverter(1); break; case SparseSymLinearSolverInterface::CSR_Full_Format_0_Offset: triplet_to_csr_converter_ = new TripletToCSRConverter(0, TripletToCSRConverter::Full_Format); break; case SparseSymLinearSolverInterface::CSR_Full_Format_1_Offset: triplet_to_csr_converter_ = new TripletToCSRConverter(1, TripletToCSRConverter::Full_Format); break; case SparseSymLinearSolverInterface::Triplet_Format: triplet_to_csr_converter_ = NULL; break; default: DBG_ASSERT(false && "Invalid MatrixFormat returned from solver interface."); return false; } } else { ASSERT_EXCEPTION(have_structure_, INVALID_WARMSTART, "TSymLinearSolver called with warm_start_same_structure, but the internal structures are not initialized."); } // reset the initialize flag to make sure that InitializeStructure // is called for the linear solver initialized_=false; if (IsValid(scaling_method_) && !linear_scaling_on_demand_) { use_scaling_ = true; } else { use_scaling_ = false; } just_switched_on_scaling_ = false; if (IsValid(scaling_method_)) { if (HaveIpData()) { IpData().TimingStats().LinearSystemScaling().Start(); retval = scaling_method_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); IpData().TimingStats().LinearSystemScaling().End(); } else { retval = scaling_method_->ReducedInitialize(Jnlst(), options, prefix); } } return retval; } ESymSolverStatus TSymLinearSolver::MultiSolve(const SymMatrix& sym_A, std::vector >& rhsV, std::vector >& solV, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("TSymLinearSolver::MultiSolve",dbg_verbosity); DBG_ASSERT(!check_NegEVals || ProvidesInertia()); // Check if this object has ever seen a matrix If not, // allocate memory of the matrix structure and copy the nonzeros // structure (it is assumed that this will never change). if (!initialized_) { ESymSolverStatus retval = InitializeStructure(sym_A); if (retval != SYMSOLVER_SUCCESS) { return retval; } } DBG_ASSERT(nonzeros_triplet_== TripletHelper::GetNumberEntries(sym_A)); // Check if the matrix has been changed DBG_PRINT((1, "atag_ = (%p,%d) sym_A->GetTag() = (%p,%d)\n", atag_.first, atag_.second, sym_A.GetTag().first, sym_A.GetTag().second)); bool new_matrix = sym_A.HasChanged(atag_); atag_ = sym_A.GetTag(); // If a new matrix is encountered, get the array for storing the // entries from the linear solver interface, fill in the new // values, compute the new scaling factors (if required), and // scale the matrix if (new_matrix || just_switched_on_scaling_) { GiveMatrixToSolver(true, sym_A); new_matrix = true; } // Retrieve the right hand sides and scale if required Index nrhs = (Index)rhsV.size(); double* rhs_vals = new double[dim_*nrhs]; for (Index irhs=0; irhsIA(); ja = triplet_to_csr_converter_->JA(); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverter().End(); } } retval = solver_interface_->MultiSolve(new_matrix, ia, ja, nrhs, rhs_vals, check_NegEVals, numberOfNegEVals); if (retval==SYMSOLVER_CALL_AGAIN) { DBG_PRINT((1, "Solver interface asks to be called again.\n")); GiveMatrixToSolver(false, sym_A); } else { done = true; } } // If the solve was successful, unscale the solution (if required) // and transfer the result into the Vectors if (retval==SYMSOLVER_SUCCESS) { for (Index irhs=0; irhsInitializeConverter(dim_, nonzeros_triplet_, airn_, ajcn_); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverterInit().End(); } ia = triplet_to_csr_converter_->IA(); ja = triplet_to_csr_converter_->JA(); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverter().End(); } nonzeros = nonzeros_compressed_; } retval = solver_interface_->InitializeStructure(dim_, nonzeros, ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } // Get space for the scaling factors delete [] scaling_factors_; if (IsValid(scaling_method_)) { if (HaveIpData()) { IpData().TimingStats().LinearSystemScaling().Start(); } scaling_factors_ = new double[dim_]; if (HaveIpData()) { IpData().TimingStats().LinearSystemScaling().End(); } } have_structure_ = true; } else { ASSERT_EXCEPTION(dim_==sym_A.Dim(), INVALID_WARMSTART, "TSymLinearSolver called with warm_start_same_structure, but the problem is solved for the first time."); // This is a warm start for identical structure, so we don't need to // recompute the nonzeros location arrays const Index *ia; const Index *ja; Index nonzeros; if (matrix_format_ == SparseSymLinearSolverInterface::Triplet_Format) { ia = airn_; ja = ajcn_; nonzeros = nonzeros_triplet_; } else { IpData().TimingStats().LinearSystemStructureConverter().Start(); ia = triplet_to_csr_converter_->IA(); ja = triplet_to_csr_converter_->JA(); IpData().TimingStats().LinearSystemStructureConverter().End(); nonzeros = nonzeros_compressed_; } retval = solver_interface_->InitializeStructure(dim_, nonzeros, ia, ja); } initialized_=true; return retval; } Index TSymLinearSolver::NumberOfNegEVals() const { DBG_START_METH("TSymLinearSolver::NumberOfNegEVals",dbg_verbosity); return solver_interface_->NumberOfNegEVals(); } bool TSymLinearSolver::IncreaseQuality() { DBG_START_METH("TSymLinearSolver::IncreaseQuality",dbg_verbosity); if (IsValid(scaling_method_) && !use_scaling_ && linear_scaling_on_demand_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Switching on scaling of the linear system (on demand).\n"); IpData().Append_info_string("Mc"); use_scaling_ = true; just_switched_on_scaling_ = true; return true; } return solver_interface_->IncreaseQuality(); } bool TSymLinearSolver::ProvidesInertia() const { DBG_START_METH("TSymLinearSolver::ProvidesInertia",dbg_verbosity); return solver_interface_->ProvidesInertia(); } void TSymLinearSolver::GiveMatrixToSolver(bool new_matrix, const SymMatrix& sym_A) { DBG_START_METH("TSymLinearSolver::GiveMatrixToSolver",dbg_verbosity); DBG_PRINT((1,"new_matrix = %d\n",new_matrix)); double* pa = solver_interface_->GetValuesArrayPtr(); double* atriplet; if (matrix_format_!=SparseSymLinearSolverInterface::Triplet_Format) { atriplet = new double[nonzeros_triplet_]; } else { atriplet = pa; } //DBG_PRINT_MATRIX(3, "Aunscaled", sym_A); TripletHelper::FillValues(nonzeros_triplet_, sym_A, atriplet); if (DBG_VERBOSITY()>=3) { for (Index i=0; iComputeSymTScalingFactors(dim_, nonzeros_triplet_, airn_, ajcn_, atriplet, scaling_factors_); if (!retval) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error during computation of scaling factors.\n"); THROW_EXCEPTION(ERROR_IN_LINEAR_SCALING_METHOD, "scaling_method_->ComputeSymTScalingFactors returned false.") } // complain if not in debug mode if (Jnlst().ProduceOutput(J_MOREVECTOR, J_LINEAR_ALGEBRA)) { for (Index i=0; i=3) { for (Index i=0; iConvertValues(nonzeros_triplet_, atriplet, nonzeros_compressed_, pa); IpData().TimingStats().LinearSystemStructureConverter().End(); delete[] atriplet; } } bool TSymLinearSolver::ProvidesDegeneracyDetection() const { return solver_interface_->ProvidesDegeneracyDetection(); } ESymSolverStatus TSymLinearSolver:: DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps) { DBG_START_METH("TSymLinearSolver::DetermineDependentRows",dbg_verbosity); // Convert the input data into what this class expects. We here // give ALL diagonal elements, so that the linear solver will not // quite because of structural singularity dim_ = n_rows + n_cols; nonzeros_triplet_ = n_jac_nz + dim_; delete [] airn_; delete [] ajcn_; airn_ = new Index[nonzeros_triplet_]; ajcn_ = new Index[nonzeros_triplet_]; for (int i=0; iInitializeConverter(dim_, nonzeros_triplet_, airn_, ajcn_); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverterInit().End(); } ia = triplet_to_csr_converter_->IA(); ja = triplet_to_csr_converter_->JA(); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverter().End(); } nonzeros = nonzeros_compressed_; } ESymSolverStatus retval = solver_interface_->InitializeStructure(dim_, nonzeros, ia, ja); if (retval != SYMSOLVER_SUCCESS) { return retval; } // Get space for the scaling factors delete [] scaling_factors_; if (IsValid(scaling_method_)) { if (HaveIpData()) { IpData().TimingStats().LinearSystemScaling().Start(); } scaling_factors_ = new double[dim_]; if (HaveIpData()) { IpData().TimingStats().LinearSystemScaling().End(); } } double* pa = solver_interface_->GetValuesArrayPtr(); double* atriplet; if (matrix_format_!=SparseSymLinearSolverInterface::Triplet_Format) { atriplet = new double[nonzeros_triplet_]; } else { atriplet = pa; } IpBlasDcopy(n_jac_nz, jac_c_vals, 1, atriplet, 1); const Number one = 1.; IpBlasDcopy(n_cols, &one, 0, atriplet+n_jac_nz, 1); const Number zero = 0.; IpBlasDcopy(n_rows, &zero, 0, atriplet+n_jac_nz+n_cols, 1); if (DBG_VERBOSITY()>=3) { for (Index i=0; iComputeSymTScalingFactors(dim_, nonzeros_triplet_, airn_, ajcn_, atriplet, scaling_factors_); if (!retval2) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error during computation of scaling factors.\n"); THROW_EXCEPTION(ERROR_IN_LINEAR_SCALING_METHOD, "scaling_method_->ComputeSymTScalingFactors returned false.") } // complain if not in debug mode if (Jnlst().ProduceOutput(J_MOREVECTOR, J_LINEAR_ALGEBRA)) { for (Index i=0; i=3) { for (Index i=0; iConvertValues(nonzeros_triplet_, atriplet, nonzeros_compressed_, pa); if (HaveIpData()) { IpData().TimingStats().LinearSystemStructureConverter().End(); } delete[] atriplet; } retval = solver_interface_->DetermineDependentRows(ia, ja, c_deps); // We need to correct the indices if (retval == SYMSOLVER_SUCCESS) { for (std::list::iterator i = c_deps.begin(); i != c_deps.end(); i++) { *i -= n_cols; } } return retval; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa77SolverInterface.hpp0000644000076600007660000002426712156621430024515 0ustar coincoin// Copyright (C) 2009, Jonathan Hogg // Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa77SolverInterface.hpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Jonathan Hogg STFC 2013-30-05 // Jonathan Hogg 2009-07-29 // Carl Laird, Andreas Waechter IBM 2004-03-17 #ifndef __IPMA77SOLVERINTERFACE_HPP__ #define __IPMA77SOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" extern "C" { #include "hsl_ma77d.h" } namespace Ipopt { /** Base class for interfaces to symmetric indefinite linear solvers * for sparse matrices. * * This defines the general interface to linear solvers for sparse * symmetric indefinite matrices. The matrices can be provided * either in "triplet format" (like for Harwell's MA27 solver), or * in compressed sparse row (CSR) format for the lower triangular * part of the symmetric matrix. * * The solver should be able to compute the interia of the matrix, * or more specifically, the number of negative eigenvalues in the * factorized matrix. * * This interface is used by the calling objective in the following * way: * * 1. The InitializeImpl method is called at the very beginning * (for every optimization run), which allows the linear solver * object to retrieve options given in the OptionsList (such as * pivot tolerances etc). At this point, some internal data can * also be initialized. * * 2. The calling class calls MatrixFormat to find out which matrix * representation the linear solver requires. The possible options * are Triplet_Format, as well as CSR_Format_0_Offset and * CSR_Format_1_Offset. The difference between the last two is * that for CSR_Format_0_Offset the couning of the element position * in the ia and ja arrays starts are 0 (C-style numbering), * whereas for the other one it starts at 1 (Fortran-style * numbering). * * 3. After this, the InitializeStructure method is called (once). * Here, the structure of the matrix is provided. If the linear * solver requires a symbolic preprocessing phase that can be done * without knowledge of the matrix element values, it can be done * here. * * 4. The calling class will request an array for storing the * actual values for a matrix using the GetValuesArrayPtr method. * This array must be at least as large as the number of nonzeros * in the matrix (as given to this class by the InitializeStructure * method call). After a call of this method, the calling class * will fill this array with the actual values of the matrix. * * 5. Every time lateron, when actual solves of a linear system is * requested, the calling class will call the MultiSolve to request * the solve, possibly for mulitple right-hand sides. The flag * new_matrix then indicates if the values of the matrix have * changed and if a factorization is required, or if an old * factorization can be used to do the solve. * * Note that the GetValuesArrayPtr method will be called before * every call of MultiSolve with new_matrix=true, or before a * renewed call of MultiSolve if the most previous return value was * SYMSOLV_CALL_AGAIN. * * 6. The calling class might request with NumberOfNegEVals the * number of the negative eigenvalues for the original matrix that * were detected during the most recently performed factorization. * * 7. The calling class might ask the linear solver to increase the * quality of the solution. For example, if the linear solver uses * a pivot tolerance, a larger value should be used for the next * solve (which might require a refactorization). * * 8. Finally, when the destructor is called, the internal storage, * also in the linear solver, should be released. * * Note, if the matrix is given in triplet format, entries might be * listed multiple times, in which case the corresponsing elements * have to be added. * * A note for warm starts: If the option * "warm_start_same_structure" is specified with "yes", the * algorithm assumes that a problem with the same sparsity * structure is solved for a repeated time. In that case, the * linear solver might reuse information from the previous * optimization. See Ma27TSolverInterface for an example. */ class Ma77SolverInterface: public SparseSymLinearSolverInterface { private: enum order_opts { ORDER_AMD, ORDER_METIS }; int ndim_; // Number of dimensions double *val_; // Storage for variables int numneg_; // Number of negative pivots in last factorization void *keep_; // Stores pointer to factors (only understood by Fortran code!) bool pivtol_changed_; // indicates if pivtol has been changed /* Options */ struct ma77_control control_; double umax_; int ordering_; public: Ma77SolverInterface() : val_(NULL), keep_(NULL), pivtol_changed_(false) {} ~Ma77SolverInterface(); static void RegisterOptions(SmartPtr roptions); bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and ia and ja give the * positions of the nonzero elements, given in the matrix format * determined by MatrixFormat. */ ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index* ia, const Index* ja); /** Method returing an internal array into which the nonzero * elements (in the same order as ja) will be stored by the * calling routine before a call to MultiSolve with a * new_matrix=true (or after a return of MultiSolve with * SYMSOLV_CALL_AGAIN). The returned array must have space for at * least nonzero elements. */ double* GetValuesArrayPtr() { return val_; } /** Solve operation for multiple right hand sides. Solves the * linear system A * x = b with multiple right hand sides, where * A is the symmtric indefinite matrix. Here, ia and ja give the * positions of the values (in the required matrix data format). * The actual values of the matrix will have been given to this * object by copying them into the array provided by * GetValuesArrayPtr. ia and ja are identical to the ones given * to InitializeStructure. The flag new_matrix is set to true, * if the values of the matrix has changed, and a refactorzation * is required. * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ ESymSolverStatus MultiSolve(bool new_matrix, const Index* ia, const Index* ja, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ Index NumberOfNegEVals() const { return numneg_; } //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. The * calling class asks linear solver to increase quality of * solution for the next solve (e.g. increase pivot tolerance). * Returns false, if this is not possible (e.g. maximal pivot * tolerance already used.) */ bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. Returns * true, if linear solver provides inertia. */ bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return CSR_Full_Format_1_Offset; } //@} /** @name Methods related to the detection of linearly dependent * rows in a matrix */ //@{ /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ bool ProvidesDegeneracyDetection() const { return false; } /** This method determines the list of row indices of the linearly * dependent rows. */ ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps) { return SYMSOLVER_FATAL_ERROR; } }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/Makefile.in0000644000076600007660000006676512156624616022053 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2011 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_LINEARSOLVERLOADER_TRUE@am__append_1 = \ @BUILD_LINEARSOLVERLOADER_TRUE@ IpPardisoSolverInterface.cpp IpPardisoSolverInterface.hpp \ @BUILD_LINEARSOLVERLOADER_TRUE@ IpMa28Partition.F @BUILD_LINEARSOLVERLOADER_FALSE@@HAVE_PARDISO_TRUE@am__append_2 = \ @BUILD_LINEARSOLVERLOADER_FALSE@@HAVE_PARDISO_TRUE@ IpPardisoSolverInterface.cpp IpPardisoSolverInterface.hpp @BUILD_LINEARSOLVERLOADER_FALSE@@HAVE_MA28_TRUE@am__append_3 = IpMa28Partition.F @HAVE_WSMP_TRUE@am__append_4 = \ @HAVE_WSMP_TRUE@ IpWsmpSolverInterface.cpp IpWsmpSolverInterface.hpp \ @HAVE_WSMP_TRUE@ IpIterativeWsmpSolverInterface.cpp IpIterativeWsmpSolverInterface.hpp @COIN_HAS_MUMPS_TRUE@am__append_5 = IpMumpsSolverInterface.cpp IpMumpsSolverInterface.hpp subdir = src/Algorithm/LinearSolvers DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) liblinsolvers_la_LIBADD = am__liblinsolvers_la_SOURCES_DIST = IpGenKKTSolverInterface.hpp \ IpLinearSolversRegOp.cpp IpLinearSolversRegOp.hpp \ IpSlackBasedTSymScalingMethod.cpp \ IpSlackBasedTSymScalingMethod.hpp \ IpSparseSymLinearSolverInterface.hpp IpSymLinearSolver.hpp \ IpTDependencyDetector.hpp IpTripletToCSRConverter.cpp \ IpTripletToCSRConverter.hpp IpTSymDependencyDetector.cpp \ IpTSymDependencyDetector.hpp IpTSymLinearSolver.cpp \ IpTSymLinearSolver.hpp IpTSymScalingMethod.hpp \ IpMa27TSolverInterface.cpp IpMa27TSolverInterface.hpp \ IpMa57TSolverInterface.cpp IpMa57TSolverInterface.hpp \ IpMa86SolverInterface.cpp IpMa86SolverInterface.hpp \ IpMa97SolverInterface.cpp IpMa97SolverInterface.hpp \ IpMc19TSymScalingMethod.cpp IpMc19TSymScalingMethod.hpp \ IpMa28TDependencyDetector.cpp IpMa28TDependencyDetector.hpp \ IpMa77SolverInterface.cpp IpMa77SolverInterface.hpp \ IpPardisoSolverInterface.cpp IpPardisoSolverInterface.hpp \ IpMa28Partition.F IpWsmpSolverInterface.cpp \ IpWsmpSolverInterface.hpp IpIterativeWsmpSolverInterface.cpp \ IpIterativeWsmpSolverInterface.hpp IpMumpsSolverInterface.cpp \ IpMumpsSolverInterface.hpp @BUILD_LINEARSOLVERLOADER_TRUE@am__objects_1 = \ @BUILD_LINEARSOLVERLOADER_TRUE@ IpPardisoSolverInterface.lo \ @BUILD_LINEARSOLVERLOADER_TRUE@ IpMa28Partition.lo @BUILD_LINEARSOLVERLOADER_FALSE@@HAVE_PARDISO_TRUE@am__objects_2 = IpPardisoSolverInterface.lo @BUILD_LINEARSOLVERLOADER_FALSE@@HAVE_MA28_TRUE@am__objects_3 = IpMa28Partition.lo @HAVE_WSMP_TRUE@am__objects_4 = IpWsmpSolverInterface.lo \ @HAVE_WSMP_TRUE@ IpIterativeWsmpSolverInterface.lo @COIN_HAS_MUMPS_TRUE@am__objects_5 = IpMumpsSolverInterface.lo am_liblinsolvers_la_OBJECTS = IpLinearSolversRegOp.lo \ IpSlackBasedTSymScalingMethod.lo IpTripletToCSRConverter.lo \ IpTSymDependencyDetector.lo IpTSymLinearSolver.lo \ IpMa27TSolverInterface.lo IpMa57TSolverInterface.lo \ IpMa86SolverInterface.lo IpMa97SolverInterface.lo \ IpMc19TSymScalingMethod.lo IpMa28TDependencyDetector.lo \ IpMa77SolverInterface.lo $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) liblinsolvers_la_OBJECTS = $(am_liblinsolvers_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles PPF77COMPILE = $(F77) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FFLAGS) $(FFLAGS) LTPPF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_FFLAGS) $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(liblinsolvers_la_SOURCES) DIST_SOURCES = $(am__liblinsolvers_la_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign noinst_LTLIBRARIES = liblinsolvers.la liblinsolvers_la_SOURCES = IpGenKKTSolverInterface.hpp \ IpLinearSolversRegOp.cpp IpLinearSolversRegOp.hpp \ IpSlackBasedTSymScalingMethod.cpp \ IpSlackBasedTSymScalingMethod.hpp \ IpSparseSymLinearSolverInterface.hpp IpSymLinearSolver.hpp \ IpTDependencyDetector.hpp IpTripletToCSRConverter.cpp \ IpTripletToCSRConverter.hpp IpTSymDependencyDetector.cpp \ IpTSymDependencyDetector.hpp IpTSymLinearSolver.cpp \ IpTSymLinearSolver.hpp IpTSymScalingMethod.hpp \ IpMa27TSolverInterface.cpp IpMa27TSolverInterface.hpp \ IpMa57TSolverInterface.cpp IpMa57TSolverInterface.hpp \ IpMa86SolverInterface.cpp IpMa86SolverInterface.hpp \ IpMa97SolverInterface.cpp IpMa97SolverInterface.hpp \ IpMc19TSymScalingMethod.cpp IpMc19TSymScalingMethod.hpp \ IpMa28TDependencyDetector.cpp IpMa28TDependencyDetector.hpp \ IpMa77SolverInterface.cpp IpMa77SolverInterface.hpp \ $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) liblinsolvers_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../../Common` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/..` \ -I`$(CYGPATH_W) $(srcdir)/../../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../contrib/CGPenalty` \ $(MUMPS_CFLAGS) $(HSL_CFLAGS) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Need to overwrite automake definition since otherwise libtool does not # understand the fortran file (need to add --tag=F77) AM_FCFLAGS = $(HSL_F90_INCFLAGS) LTFCCOMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(FC) $(AM_FCFLAGS) $(FCFLAGS) # Astyle stuff ASTYLE_FILES = \ IpGenKKTSolverInterface.hppbak \ IpIterativeWsmpSolverInterface.cppbak \ IpIterativeWsmpSolverInterface.hppbak \ IpLinearSolversRegOp.cppbak IpLinearSolversRegOp.hppbak \ IpMa27TSolverInterface.cppbak IpMa27TSolverInterface.hppbak \ IpMa28TDependencyDetector.cppbak IpMa28TDependencyDetector.hppbak \ IpMa57TSolverInterface.cppbak IpMa57TSolverInterface.hppbak \ IpMa86SolverInterface.cppbak IpMa86SolverInterface.hppbak \ IpMa97SolverInterface.cppbak IpMa97SolverInterface.hppbak \ IpMc19TSymScalingMethod.cppbak IpMc19TSymScalingMethod.hppbak \ IpMumpsSolverInterface.cppbak IpMumpsSolverInterface.hppbak \ IpSlackBasedTSymScalingMethod.cppbak IpSlackBasedTSymScalingMethod.hppbak \ IpSparseSymLinearSolverInterface.hppbak \ IpSymLinearSolver.hppbak \ IpTDependencyDetector.hppbak \ IpTripletToCSRConverter.cppbak IpTripletToCSRConverter.hppbak \ IpTSymDependencyDetector.cppbak IpTSymDependencyDetector.hppbak \ IpTSymLinearSolver.cppbak IpTSymLinearSolver.hppbak \ IpTSymScalingMethod.hppbak \ IpPardisoSolverInterface.cppbak IpPardisoSolverInterface.hppbak \ IpWsmpSolverInterface.cppbak IpWsmpSolverInterface.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .F .cpp .f .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Algorithm/LinearSolvers/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Algorithm/LinearSolvers/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liblinsolvers.la: $(liblinsolvers_la_OBJECTS) $(liblinsolvers_la_DEPENDENCIES) $(CXXLINK) $(liblinsolvers_la_LDFLAGS) $(liblinsolvers_la_OBJECTS) $(liblinsolvers_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIterativeWsmpSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLinearSolversRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa27TSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa28TDependencyDetector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa57TSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa77SolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa86SolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMa97SolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMc19TSymScalingMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMumpsSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPardisoSolverInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpSlackBasedTSymScalingMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTSymDependencyDetector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTSymLinearSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTripletToCSRConverter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpWsmpSolverInterface.Plo@am__quote@ .F.o: $(PPF77COMPILE) -c -o $@ $< .F.obj: $(PPF77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .F.lo: $(LTPPF77COMPILE) -c -o $@ $< .F.f: $(F77COMPILE) -F $< .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am # Workaround a bug in the AIX C++ compiler @AIX_FIX_COMPILER_BUG_TRUE@IpTSymLinearSolver.lo: IpTSymLinearSolver.cpp @AIX_FIX_COMPILER_BUG_TRUE@@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -qnooptimize -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @AIX_FIX_COMPILER_BUG_TRUE@@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AIX_FIX_COMPILER_BUG_TRUE@@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AIX_FIX_COMPILER_BUG_TRUE@@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AIX_FIX_COMPILER_BUG_TRUE@@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -qnooptimize -c -o $@ $< astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa57TSolverInterface.cpp0000644000076600007660000006750712156621430024636 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa57TSolverInterface.cpp 2332 2013-06-14 14:05:12Z stefan $ // // Authors: Michael Hagemann Univ of Basel 2005-10-28 // original version (based on MA27TSolverInterface.cpp) #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif // if we do not have MA57 in HSL or the linear solver loader, then we want to build the MA57 interface #if defined(COINHSL_HAS_MA57) || defined(HAVE_LINEARSOLVERLOADER) #include "IpMa57TSolverInterface.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include /** Prototypes for MA57's Fortran subroutines */ extern "C" { /* * MA57ID -- Initialize solver. */ extern void F77_FUNC (ma57id, MA57ID) ( double *cntl, ma57int *icntl); /* * MA57AD -- Symbolic Factorization. */ extern void F77_FUNC (ma57ad, MA57AD) ( ma57int *n, /* Order of matrix. */ ma57int *ne, /* Number of entries. */ const ma57int *irn, /* Matrix nonzero row structure */ const ma57int *jcn, /* Matrix nonzero column structure */ ma57int *lkeep, /* Workspace for the pivot order of lenght 3*n */ ma57int *keep, /* Workspace for the pivot order of lenght 3*n */ /* Automatically iflag = 0; ikeep pivot order iflag = 1 */ ma57int *iwork, /* Integer work space. */ ma57int *icntl, /* Integer Control parameter of length 30*/ ma57int *info, /* Statistical Information; Integer array of length 20 */ double *rinfo); /* Double Control parameter of length 5 */ /* * MA57BD -- Numerical Factorization. */ extern void F77_FUNC (ma57bd, MA57BD) ( ma57int *n, /* Order of matrix. */ ma57int *ne, /* Number of entries. */ double *a, /* Numerical values. */ double *fact, /* Entries of factors. */ ma57int *lfact, /* Length of array `fact'. */ ma57int *ifact, /* Indexing info for factors. */ ma57int *lifact, /* Length of array `ifact'. */ ma57int *lkeep, /* Length of array `keep'. */ ma57int *keep, /* Integer array. */ ma57int *iwork, /* Workspace of length `n'. */ ma57int *icntl, /* Integer Control parameter of length 20. */ double *cntl, /* Double Control parameter of length 5. */ ma57int *info, /* Statistical Information; Integer array of length 40. */ double *rinfo); /* Statistical Information; Real array of length 20. */ /* * MA57CD -- Solution. */ extern void F77_FUNC (ma57cd, MA57CD) ( ma57int *job, /* Solution job. Solve for... */ /* JOB <= 1: A */ /* JOB == 2: PLP^t */ /* JOB == 3: PDP^t */ /* JOB >= 4: PL^t P^t */ ma57int *n, /* Order of matrix. */ double *fact, /* Entries of factors. */ ma57int *lfact, /* Length of array `fact'. */ ma57int *ifact, /* Indexing info for factors. */ ma57int *lifact, /* Length of array `ifact'. */ ma57int *nrhs, /* Number of right hand sides. */ double *rhs, /* Numerical Values. */ ma57int *lrhs, /* Leading dimensions of `rhs'. */ double *work, /* Real workspace. */ ma57int *lwork, /* Length of `work', >= N*NRHS. */ ma57int *iwork, /* Integer array of length `n'. */ ma57int *icntl, /* Integer Control parameter array of length 20. */ ma57int *info); /* Statistical Information; Integer array of length 40. */ /* * MC57ED -- Copy arrays. */ extern void F77_FUNC (ma57ed, MA57ED) ( ma57int *n, ma57int *ic, /* 0: copy real array. >=1: copy integer array. */ ma57int *keep, double *fact, ma57int *lfact, double *newfac, ma57int *lnew, ma57int *ifact, ma57int *lifact, ma57int *newifc, ma57int *linew, ma57int *info); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif const char* ma57_err_msg[] = { "Operation successful.\n", "Value of N is out of range on a call to MA57A/AD, MA57B/BD, MA57C/CD, or\n" "MA57D/DD. Value given is held in INFO(2).\n", "Value of NE is out of range on a call to MA57A/AD, MA57B/BD, or\n" "MA57D/DD. Value given is held in INFO(2).\n", "Failure due to insufficient REAL space on a call to MA57B/BD. INFO(17)\n" "is set to a value that may suffice. INFO(2) is set to value of\n" "LFACT. The user can allocate a larger array and copy the contents of\n" "FACT into it using MA57E/ED, and recall MA57B/BD.\n", "Failure due to insufficient INTEGER space on a call to\n" "MA57B/BD. INFO(18) is set to a value that may suffice. INFO(2) is set to\n" "value of LIFACT. The user can allocate a larger array and copy the\n" "contents of IFACT into it using MA57E/ED, and recall MA57B/BD.\n", "A pivot with magnitude less than or equal to CNTL(2) was found at pivot\n" "step INFO(2) when calling MA57B/BD with ICNTL(7) = 2 or 3, or the\n" "correction obtained when using matrix modification does not give a pivot\n" "greater than CNTL(2) when ICNTL(7) = 4.\n", "A change of sign of pivots has been detected when ICNTL(7) = 2. INFO(2)\n" "is set to the pivot step at which the change was detected on a call to\n" "MA57B/BD.\n", "Either LNEW < LFACT or LINEW < LIFACT on a call to MA57E/ED. INFO(2) is\n" "set to LNEW or LINEW as appropriate.\n", "Iterative refinement fails to converge in specified number of iterations\n" "on a call to MA57D/DD.\n", "Error in permutation array when ICNTL(6)=1 on a call to\n" "MA57A/AD. INFO(2) holds first component at which error was detected.\n", "Value of ICNTL(7) out of range on a call to MA57B/BD. Value given held\n" "in INFO(2).\n", "LRHS < N on a call to MA57C/CD. INFO(2) holds value of LRHS.\n", "Invalid value for JOB on a call to MA57D/DD. Value given held in\n" "INFO(2).\n", "Invalid value of ICNTL(9) on a call to MA57D/DD. Value given held in\n" "INFO(2).\n", "Failure of MC71A/AD on a call to MA57D/DD with ICNTL(10)> 0.\n", "LKEEP less than 5*N+NE+MAX(N,NE) +42 on a call to MA57A/AD or\n" "MA57B/BD. INFO(2) holds value of LKEEP.\n", "NRHS less than 1 on call to MA57C/CD. INFO(2) holds value of NRHS.\n", "LWORK too small on entry to MA57C/CD. INFO(2) holds minimum length\n" "required. A positive value of INFO(1) is associated with a warning\n" "message that will be output on unit ICNTL(2).\n" }; const char* ma57_wrn_msg[] = { "Operation successful.\n", "Index (in IRN or JCN) out of range on call to MA57A/AD or\n" "MA57D/DD. Action taken by subroutine is to ignore any such entries and\n" "continue. INFO(3) is set to the number of faulty entries. Details of the\n" "first ten are printed on unit ICNTL(2).\n", "Duplicate indices on call to MA57A/AD or MA57D/DD. Action taken by\n" "subroutine is to keep the duplicates and then to sum corresponding reals\n" "when MA57B/BD is called. INFO(4) is set to the number of faulty\n" "entries. Details of the first ten are printed on unit ICNTL(2).\n", "Both out-of-range indices and duplicates exist.\n", "Matrix is rank deficient on exit from MA57B/BD. In this case, a\n" "decomposition will still have been produced that will enable the\n" "subsequent solution of consistent equations. INFO(25) will be set to the\n" "rank of the factorized matrix.\n", "Pivots have different signs when factorizing a supposedly definite\n" "matrix (ICNTL(7) = 3) on call to MA57B/BD. INFO(26) is set to the number\n" "of sign changes.\n", "-", "-", "During error analysis the infinity norm of the computed solution was\n" "found to be zero.\n", "Insufficient real space to complete factorization when MA57B/BD called\n" "with ICNTL(8) != 0. User can copy real values to a longer array using\n" "MA57E/ED and recall MA57B/BD using this longer array to continue the\n" "factorization.\n", "Insufficient integer space to complete factorization when MA57B/BD\n" "called with ICNTL(8) != 0. User can copy integer values to a longer\n" "array using MA57E/ED and recall MA57B/BD using this longer array to\n" "continue the factorization.\n" }; Ma57TSolverInterface::Ma57TSolverInterface() : dim_(0), nonzeros_(0), initialized_(false), pivtol_changed_(false), refactorize_(false), wd_keep_(NULL), wd_iwork_(NULL), wd_fact_(NULL), wd_ifact_(NULL), a_(NULL) { DBG_START_METH("Ma57TSolverInterface::Ma57TSolverInterface()", dbg_verbosity); } Ma57TSolverInterface::~Ma57TSolverInterface() { DBG_START_METH("Ma57TSolverInterface::~Ma57TSolverInterface()", dbg_verbosity); delete [] a_; delete [] wd_fact_; delete [] wd_ifact_; delete [] wd_iwork_; delete [] wd_keep_; } void Ma57TSolverInterface::RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "ma57_pivtol", "Pivot tolerance for the linear solver MA57.", 0.0, true, 1.0, true, 1e-8, "A smaller number pivots for sparsity, a larger number pivots for " "stability. This option is only available if Ipopt has been compiled " "with MA57."); roptions->AddBoundedNumberOption( "ma57_pivtolmax", "Maximum pivot tolerance for the linear solver MA57.", 0.0, true, 1.0, true, 1e-4, "Ipopt may increase pivtol as high as ma57_pivtolmax to get a more " "accurate solution to the linear system. This option is only available " "if Ipopt has been compiled with MA57."); roptions->AddLowerBoundedNumberOption( "ma57_pre_alloc", "Safety factor for work space memory allocation for the linear solver MA57.", 1., false, 1.05, "If 1 is chosen, the suggested amount of work space is used. However, " "choosing a larger number might avoid reallocation if the suggest values " "do not suffice. This option is only available if Ipopt has been " "compiled with MA57."); roptions->AddBoundedIntegerOption( "ma57_pivot_order", "Controls pivot order in MA57", #ifdef FUNNY_MA57_FINT 0, 5, 2, // Matlab's MA57 can crash if you try to use Metis #else 0, 5, 5, #endif "This is ICNTL(6) in MA57."); roptions->AddStringOption2( "ma57_automatic_scaling", "Controls MA57 automatic scaling", "no", "no", "Do not scale the linear system matrix", "yes", "Scale the linear system matrix", "This option controls the internal scaling option of MA57. " "For higher reliability of the MA57 solver, you may want to set this option to yes. " "This is ICNTL(15) in MA57."); // CET: 04-29-2010 roptions->AddLowerBoundedIntegerOption( "ma57_block_size", "Controls block size used by Level 3 BLAS in MA57BD", 1, 16, "This is ICNTL(11) in MA57."); roptions->AddLowerBoundedIntegerOption( "ma57_node_amalgamation", "Node amalgamation parameter", 1, 16, "This is ICNTL(12) in MA57."); roptions->AddBoundedIntegerOption( "ma57_small_pivot_flag", "If set to 1, then when small entries defined by CNTL(2) are detected " "they are removed and the corresponding pivots placed at the end of the " "factorization. This can be particularly efficient if the matrix is " "highly rank deficient.", 0, 1, 0, "This is ICNTL(16) in MA57."); // CET 04-29-2010 } bool Ma57TSolverInterface::InitializeImpl(const OptionsList& options, const std::string& prefix) { // Obtain the options settings options.GetNumericValue("ma57_pivtol", pivtol_, prefix); if (options.GetNumericValue("ma57_pivtolmax", pivtolmax_, prefix)) { ASSERT_EXCEPTION(pivtolmax_>=pivtol_, OPTION_INVALID, "Option \"pivtolmax\": This value must be between " "pivtol and 1."); } else if (pivtol_ > pivtolmax_) { pivtolmax_ = pivtol_; } options.GetNumericValue("ma57_pre_alloc", ma57_pre_alloc_, prefix); Index ma57_pivot_order; options.GetIntegerValue("ma57_pivot_order", ma57_pivot_order, prefix); // The following option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); DBG_ASSERT(!warm_start_same_structure_ && "warm_start_same_structure not yet implemented"); bool ma57_automatic_scaling; options.GetBoolValue("ma57_automatic_scaling", ma57_automatic_scaling, prefix); // CET 04-29-2010 Index ma57_block_size; options.GetIntegerValue("ma57_block_size", ma57_block_size, prefix); Index ma57_node_amalgamation; options.GetIntegerValue("ma57_node_amalgamation", ma57_node_amalgamation, prefix); Index ma57_small_pivot_flag; options.GetIntegerValue("ma57_small_pivot_flag", ma57_small_pivot_flag, prefix); // CET 04-29-2010 /* Initialize. */ F77_FUNC (ma57id, MA57ID) (wd_cntl_, wd_icntl_); /* Custom settings for MA57. */ wd_icntl_[1-1] = 0; /* Error stream */ wd_icntl_[2-1] = 0; /* Warning stream. */ wd_icntl_[4-1] = 1; /* Print statistics. NOT Used. */ wd_icntl_[5-1] = 0; /* Print error. */ wd_icntl_[6-1] = ma57_pivot_order; /* Pivoting order. */ wd_cntl_[1-1] = pivtol_; /* Pivot threshold. */ wd_icntl_[7-1] = 1; /* Pivoting strategy. */ // CET: Added 04-29-2010 at suggestion of Jonathan Hogg of HSL wd_icntl_[11-1] = ma57_block_size; /* Block size used by Level 3 BLAS in MA57BD - should be a multiple of 8. Default is 16. */ wd_icntl_[12-1] = ma57_node_amalgamation; /* Two nodes of the assembly tree are merged only if both involve less than ICNTL(12) eliminations. Default is 16. */ // CET: 04-29-2010 if (ma57_automatic_scaling) { wd_icntl_[15-1] = 1; } else { wd_icntl_[15-1] = 0; } // CET: Added 04-29-2010 at suggestion of Jonathan Hogg of HSL wd_icntl_[16-1] = ma57_small_pivot_flag; /* If set to 1, small entries are removed and corresponding pivots are placed at the end of factorization. May be useful for highly rank deficient matrices. Default is 0. */ // CET: 04-29-2010 // wd_icntl[8-1] = 0; /* Retry factorization. */ if (!warm_start_same_structure_) { dim_=0; nonzeros_=0; delete [] a_; a_ = NULL; delete [] wd_fact_; wd_fact_ = NULL; delete [] wd_ifact_; wd_ifact_ = NULL; delete [] wd_iwork_; wd_iwork_ = NULL; delete [] wd_keep_; wd_keep_ = NULL; } else { ASSERT_EXCEPTION(dim_>0 && nonzeros_>0, INVALID_WARMSTART, "Ma57TSolverInterface called with warm_start_same_structure, " "but the problem is solved for the first time."); } return true; } ESymSolverStatus Ma57TSolverInterface::MultiSolve(bool new_matrix, const Index* airn, const Index* ajcn, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("Ma57TSolverInterface::MultiSolve",dbg_verbosity); // DBG_ASSERT(!check_NegEVals || ProvidesInertia()); // DBG_ASSERT(initialized_); // DBG_ASSERT(la_!=0); if (pivtol_changed_) { DBG_PRINT((1,"Pivot tolerance has changed.\n")); pivtol_changed_ = false; // If the pivot tolerance has been changed but the matrix is not // new, we have to request the values for the matrix again to do // the factorization again. if (!new_matrix) { DBG_PRINT((1,"Ask caller to call again.\n")); refactorize_ = true; return SYMSOLVER_CALL_AGAIN; } } // check if a factorization has to be done DBG_PRINT((1, "new_matrix = %d\n", new_matrix)); if (new_matrix || refactorize_) { // perform the factorization ESymSolverStatus retval; retval = Factorization(airn, ajcn, check_NegEVals, numberOfNegEVals); if (retval!=SYMSOLVER_SUCCESS) { DBG_PRINT((1, "FACTORIZATION FAILED!\n")); return retval; // Matrix singular or error occurred } refactorize_ = false; } // do the backsolve return Backsolve(nrhs, rhs_vals); } double* Ma57TSolverInterface::GetValuesArrayPtr() { DBG_START_METH("Ma57TSolverInterface::GetValuesArrayPtr",dbg_verbosity); DBG_ASSERT(initialized_); return a_; } /** Initialize the local copy of the positions of the nonzero elements */ ESymSolverStatus Ma57TSolverInterface::InitializeStructure( Index dim, Index nonzeros, const Index* airn, const Index* ajcn) { DBG_START_METH("Ma57TSolverInterface::InitializeStructure",dbg_verbosity); ESymSolverStatus retval = SYMSOLVER_SUCCESS; if (!warm_start_same_structure_) { dim_ = dim; nonzeros_ = nonzeros; // for MA57, a_ only has to be as long as the number of nonzero // elements delete [] a_; a_ = NULL; a_ = new double [nonzeros_]; // Do the symbolic factorization retval = SymbolicFactorization(airn, ajcn); if (retval != SYMSOLVER_SUCCESS ) { return retval; } } else { ASSERT_EXCEPTION(dim_==dim && nonzeros_==nonzeros, INVALID_WARMSTART, "Ma57TSolverInterface called with warm_start_same_structure, " "but the problem size has changed."); } initialized_ = true; return retval; } ESymSolverStatus Ma57TSolverInterface::SymbolicFactorization(const Index* airn, const Index* ajcn) { DBG_START_METH("Ma57TSolverInterface::SymbolicFactorization",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().Start(); } ma57int n = dim_; ma57int ne = nonzeros_; wd_lkeep_ = 5*n + ne + (n > ne ? n : ne) + 42; wd_cntl_[1-1] = pivtol_; /* Pivot threshold. */ wd_iwork_ = new ma57int[5*n]; wd_keep_ = new ma57int[wd_lkeep_]; // Initialize to 0 as otherwise MA57ED can sometimes fail for (int k=0; k(airn); ajcn_ma57int = (ma57int*)(void*)const_cast(ajcn); } F77_FUNC (ma57ad, MA57AD) (&n, &ne, airn_ma57int, ajcn_ma57int, &wd_lkeep_, wd_keep_, wd_iwork_, wd_icntl_, wd_info_, wd_rinfo_); // free copy-casted ma57int arrays, no longer needed if (sizeof(ma57int) != sizeof(Index)) { delete [] airn_ma57int; delete [] ajcn_ma57int; } if (wd_info_[0] < 0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "*** Error from MA57AD *** INFO(0) = %d\n", wd_info_[0]); } wd_lfact_ = (ma57int)((Number)wd_info_[8] * ma57_pre_alloc_); wd_lifact_ = (ma57int)((Number)wd_info_[9] * ma57_pre_alloc_); // XXX MH: Why is this necessary? Is `::Factorization' called more // than once per object lifetime? Where should allocation take // place, then? // AW: I moved this here now - my understanding is that wd_info[8] // and wd_info[9] are computed here, so we can just allocate the // amount of memory here. I don't think there is any need to // reallocate it later for every factorization delete [] wd_fact_; wd_fact_ = NULL; delete [] wd_ifact_; wd_ifact_ = NULL; wd_fact_ = new double[wd_lfact_]; wd_ifact_ = new ma57int[wd_lifact_]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Suggested lfact (*%e): %d\n", ma57_pre_alloc_, wd_lfact_); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Suggested lifact (*%e): %d\n", ma57_pre_alloc_, wd_lifact_); if (HaveIpData()) { IpData().TimingStats().LinearSystemSymbolicFactorization().End(); } return SYMSOLVER_SUCCESS; } ESymSolverStatus Ma57TSolverInterface::Factorization(const Index* airn, const Index* ajcn, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("Ma57TSolverInterface::Factorization",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().Start(); } int fact_error = 1; wd_cntl_[1-1] = pivtol_; /* Pivot threshold. */ ma57int n = dim_; ma57int ne = nonzeros_; while (fact_error > 0) { F77_FUNC (ma57bd, MA57BD) (&n, &ne, a_, wd_fact_, &wd_lfact_, wd_ifact_, &wd_lifact_, &wd_lkeep_, wd_keep_, wd_iwork_, wd_icntl_, wd_cntl_, wd_info_, wd_rinfo_); negevals_ = (Index)wd_info_[24-1]; // Number of negative eigenvalues if (wd_info_[0] == 0) { fact_error = 0; } else if (wd_info_[0] == -3) { /* Failure due to insufficient REAL space on a call to MA57B/BD. * INFO(17) is set to a value that may suffice. INFO(2) is set * to value of LFACT. The user can allocate a larger array and * copy the contents of FACT into it using MA57E/ED, and recall * MA57B/BD. */ double *temp; ma57int ic = 0; wd_lfact_ = (ma57int)((Number)wd_info_[16] * ma57_pre_alloc_); temp = new double[wd_lfact_]; Jnlst().Printf(J_WARNING, J_LINEAR_ALGEBRA, "Reallocating memory for MA57: lfact (%d)\n", wd_lfact_); ma57int idmy; F77_FUNC (ma57ed, MA57ED) (&n, &ic, wd_keep_, wd_fact_, &wd_info_[1], temp, &wd_lfact_, wd_ifact_, &wd_info_[1], &idmy, &wd_lfact_, wd_info_); delete [] wd_fact_; wd_fact_ = temp; } else if (wd_info_[0] == -4) { /* Failure due to insufficient INTEGER space on a call to * MA57B/BD. INFO(18) is set to a value that may suffice. * INFO(2) is set to value of LIFACT. The user can allocate a * larger array and copy the contents of IFACT into it using * MA57E/ED, and recall MA57B/BD. */ ma57int *temp; ma57int ic = 1; wd_lifact_ = (ma57int)((Number)wd_info_[17] * ma57_pre_alloc_); temp = new ma57int[wd_lifact_]; Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Reallocating lifact (%d)\n", wd_lifact_); double ddmy; F77_FUNC (ma57ed, MA57ED) (&n, &ic, wd_keep_, wd_fact_, &wd_info_[1], &ddmy, &wd_lifact_, wd_ifact_, &wd_info_[1], temp, &wd_lifact_, wd_info_); delete [] wd_ifact_; wd_ifact_ = temp; } else if (wd_info_[0] < 0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Error in MA57BD: %d\n", wd_info_[0]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MA57 Error message: %s\n", ma57_err_msg[-wd_info_[1-1]]); return SYMSOLVER_FATAL_ERROR; } // Check if the system is singular. else if (wd_info_[0] == 4) { if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "System singular, rank = %d\n", wd_info_[25-1]); return SYMSOLVER_SINGULAR; } else if (wd_info_[0] > 0) { Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA, "Warning in MA57BD: %d\n", wd_info_[0]); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MA57 Warning message: %s\n", ma57_wrn_msg[wd_info_[1-1]]); // For now, abort the process so that we don't miss any problems return SYMSOLVER_FATAL_ERROR; } } double peak_mem = 1.0e-3 * ((double)wd_lfact_*8.0 + (double)wd_lifact_*4.0 + (double)wd_lkeep_*4.0); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "MA57 peak memory use: %dKB\n", (ma57int)(peak_mem)); // Check whether the number of negative eigenvalues matches the // requested count. if (HaveIpData()) { IpData().TimingStats().LinearSystemFactorization().End(); } if (check_NegEVals && (numberOfNegEVals!=negevals_)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In Ma57TSolverInterface::Factorization: " "negevals_ = %d, but numberOfNegEVals = %d\n", negevals_, numberOfNegEVals); return SYMSOLVER_WRONG_INERTIA; } return SYMSOLVER_SUCCESS; } ESymSolverStatus Ma57TSolverInterface::Backsolve( Index nrhs, double *rhs_vals) { DBG_START_METH("Ma27TSolverInterface::Backsolve",dbg_verbosity); if (HaveIpData()) { IpData().TimingStats().LinearSystemBackSolve().Start(); } ma57int n = dim_; ma57int job = 1; ma57int nrhs_X = nrhs; ma57int lrhs = n; ma57int lwork; double* work; lwork = n * nrhs; work = new double[lwork]; // For each right hand side, call MA57CD // XXX MH: MA57 can do several RHSs; just do one solve... // AW: Ok is the following correct? if (DBG_VERBOSITY()>=2) { for (Index irhs=0; irhs=2) { for (Index irhs=0; irhsj_col) { i_row_ = j_col; j_col_ = i_row; } else { i_row_ = i_row; j_col_ = j_col; } i_pos_triplet_ = i_pos_triplet; } /** @name Accessor methods. */ //@{ /** Row position. */ Index IRow() const { return i_row_; } /** Column position. */ Index JCol() const { return j_col_; } /** Index in original triplet matrix. */ Index PosTriplet() const { return i_pos_triplet_; } //@} /** Comparison operator. This is required for the sort function. */ bool operator< (const TripletEntry& Tentry) const { return ((i_row_ < Tentry.i_row_) || (i_row_==Tentry.i_row_ && j_col_& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMumpsSolverInterface.hpp0000644000076600007660000001561311504216567025105 0ustar coincoin// Copyright (C) 2006, 2007 Damien Hocking, KBC Advanced Technologies // All Rights Reserved. // This code is published under the Eclipse Public License. // // Authors: Damien Hocking KBC 2006-03-20 // (included his original contribution into Ipopt package on 2006-03-25) // Andreas Waechter IBM 2006-03-25 // (minor changes and corrections) // Scott Turnberg CMU 2006-05-12 // (major revision) // (incorporated by AW on 2006-11-11 into Ipopt package) #ifndef __IPMUMPSSOLVERINTERFACE_HPP__ #define __IPMUMPSSOLVERINTERFACE_HPP__ #include "IpSparseSymLinearSolverInterface.hpp" namespace Ipopt { /** Interface to the linear solver Mumps, derived from * SparseSymLinearSolverInterface. For details, see description of * SparseSymLinearSolverInterface base class. */ class MumpsSolverInterface: public SparseSymLinearSolverInterface { public: /** @name Constructor/Destructor */ //@{ /** Constructor */ MumpsSolverInterface(); /** Destructor */ virtual ~MumpsSolverInterface(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** @name Methods for requesting solution of the linear system. */ //@{ /** Method for initializing internal stuctures. Here, ndim gives * the number of rows and columns of the matrix, nonzeros give * the number of nonzero elements, and airn and acjn give the * positions of the nonzero elements. */ virtual ESymSolverStatus InitializeStructure(Index dim, Index nonzeros, const Index *airn, const Index *ajcn); /** Method returing an internal array into which the nonzero * elements (in the same order as airn and ajcn) are to be stored * by the calling routine before a call to MultiSolve with a * new_matrix=true. The returned array must have space for at least * nonzero elements. */ virtual double* GetValuesArrayPtr(); /** Solve operation for multiple right hand sides. Overloaded * from SparseSymLinearSolverInterface. */ virtual ESymSolverStatus MultiSolve(bool new_matrix, const Index* airn, const Index* ajcn, Index nrhs, double* rhs_vals, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. * Ask linear solver to increase quality of solution for the next * solve (e.g. increase pivot tolerance). Returns false, if this * is not possible (e.g. maximal pivot tolerance already used.) */ virtual bool IncreaseQuality(); /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const { return true; } /** Query of requested matrix type that the linear solver * understands. */ EMatrixFormat MatrixFormat() const { return Triplet_Format; } //@} /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** Query whether the indices of linearly dependent rows/columns * can be determined by this linear solver. */ virtual bool ProvidesDegeneracyDetection() const; /** This method determines the list of row indices of the linearly * dependent rows. */ virtual ESymSolverStatus DetermineDependentRows(const Index* ia, const Index* ja, std::list& c_deps); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ MumpsSolverInterface(const MumpsSolverInterface&); /** Overloaded Equals Operator */ void operator=(const MumpsSolverInterface&); //@} /** @name Information about the matrix */ //@{ /** Primary MUMP data structure */ void* mumps_ptr_; //@} /** @name Information about most recent factorization/solve */ //@{ /** Number of negative eigenvalues */ Index negevals_; //@} /** @name Initialization flags */ //@{ /** Flag indicating if internal data is initialized. * For initialization, this object needs to have seen a matrix */ bool initialized_; /** Flag indicating if the matrix has to be refactorized because * the pivot tolerance has been changed. */ bool pivtol_changed_; /** Flag that is true if we just requested the values of the * matrix again (SYMSOLVER_CALL_AGAIN) and have to factorize * again. */ bool refactorize_; //@} /** @name Solver specific data/options */ //@{ /** Pivol tolerance */ Number pivtol_; /** Maximal pivot tolerance */ Number pivtolmax_; /** Percent increase in memory */ Index mem_percent_; /** Permution and scaling method in MUMPS */ Index mumps_permuting_scaling_; /** Pivot order in MUMPS. */ Index mumps_pivot_order_; /** Scaling in MUMPS */ Index mumps_scaling_; /** Threshold in MUMPS to stay that a constraint is linearly * dependent */ Number mumps_dep_tol_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; //@} /** Flag indicating if symbolic factorization has already been * called */ bool have_symbolic_factorization_; /** @name Internal functions */ //@{ /** Call MUMPS (job=1) to perform symbolic manipulations, and reserve * memory. */ ESymSolverStatus SymbolicFactorization(); /** Call MUMPS (job=2) to factorize the Matrix. * It is assumed that the first nonzeros_ element of a_ contain the values * of the matrix to be factorized. */ ESymSolverStatus Factorization(bool check_NegEVals, Index numberOfNegEVals); /** Call MUMPS (job=3) to do the solve. */ ESymSolverStatus Solve(Index nrhs, double *rhs_vals); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/hsl_mc68i.h0000644000076600007660000000551112156621430021720 0ustar coincoin/* * COPYRIGHT (c) 2011, 2013 Science and Technology Facilities Council (STFC) * All Rights Reserved. * This code is published under the Eclipse Public License. * * Authors: Jonathan Hogg STFC 2011-02-25 */ #ifndef HSL_MC68I_H #define HSL_MC68I_H #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif /* if we do not have MC68, we assume its is loaded via the linear solver loader, for which we assume HSL 2013 */ #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68) #ifndef mc68_default_control #define mc68_control mc68_control_i #define mc68_info mc68_info_i #define mc68_default_control mc68_default_control_i #define mc68_order mc68_order_i #endif #endif struct mc68_control { /* Extra options for C version */ int f_array_in; /* 0 for C array indexing, 1 for Fortran indexing */ int f_array_out; /* 0 for C array indexing, 1 for Fortran indexing * NOTE: 2x2 pivot information discarded if C indexing * is used for output! */ #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68) long min_l_workspace; /* Initial size of workspace, as argument in Fortran */ #else int min_l_workspace; /* Initial size of workspace, as argument in Fortran */ #endif /* Options from Fortran version */ int lp; /* stream number for error messages */ int wp; /* stream number for warning messages */ int mp; /* stream number for diagnostic messages */ int nemin; /* stream number for diagnostic messages */ int print_level; /* amount of informational output required */ int row_full_thresh; /* percentage threshold for full row */ int row_search; /* Number of rows searched for pivot with ord=6 */ }; struct mc68_info { int flag; /* error/warning flag */ int iostat; /* holds Fortran iostat parameter */ int stat; /* holds Fortran stat parameter */ int out_range; /* holds number of out of range entries ignored */ int duplicate; /* holds number of duplicate entries */ int n_compressions; /* holds number of compressions in order */ int n_zero_eigs; /* holds the number of zero eigs from ma47 */ #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MC68) long l_workspace; /* holds length of workspace iw used in order */ #else int l_workspace; /* holds length of workspace iw used in order */ #endif int zb01_info; /* holds flag from zb01_expand1 call */ int n_dense_rows; /* holds number of dense rows from amdd */ }; /* Set default values for control struct */ void mc68_default_control(struct mc68_control *control); /* Perform ordering */ void mc68_order(int ord, int n, const int ptr[], const int row[], int perm[], const struct mc68_control *control, struct mc68_info *info); #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpGenKKTSolverInterface.hpp0000644000076600007660000001233612132244172025055 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGenKKTSolverInterface.hpp 2201 2013-04-13 11:58:50Z stefan $ // // Authors: Andreas Waechter IBM 2007-03-01 #ifndef __IPGENKKTSOLVERINTERFACE_HPP__ #define __IPGENKKTSOLVERINTERFACE_HPP__ #include "IpUtils.hpp" #include "IpAlgStrategy.hpp" #include "IpSymLinearSolver.hpp" namespace Ipopt { /** Base class for interfaces to symmetric indefinite linear solvers * for generic matrices */ class GenKKTSolverInterface: public AlgorithmStrategyObject { public: /** @name Constructor/Destructor */ //@{ GenKKTSolverInterface() {} virtual ~GenKKTSolverInterface() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** @name Methods for requesting solution of the linear system. */ //@{ /** Solve operation for multiple right hand sides. The linear * system is of the form * * \f$\left[\begin{array}{cccc} * W + D_x + \delta_xI & 0 & J_c^T & J_d^T\\ * 0 & D_s + \delta_sI & 0 & -I \\ * J_c & 0 & D_c - \delta_cI & 0\\ * J_d & -I & 0 & D_d - \delta_dI * \end{array}\right] * \left(\begin{array}{c}sol_x\\sol_s\\sol_c\\sol_d\end{array}\right)= * \left(\begin{array}{c}rhs_x\\rhs_s\\rhs_c\\rhs_d\end{array}\right)\f$ * * (see also AugSystemSolver). * * The return code is SYMSOLV_SUCCESS if the factorization and * solves were successful, SYMSOLV_SINGULAR if the linear system * is singular, and SYMSOLV_WRONG_INERTIA if check_NegEVals is * true and the number of negative eigenvalues in the matrix does * not match numberOfNegEVals. If SYMSOLV_CALL_AGAIN is * returned, then the calling function will request the pointer * for the array for storing a again (with GetValuesPtr), write * the values of the nonzero elements into it, and call this * MultiSolve method again with the same right-hand sides. (This * can be done, for example, if the linear solver realized it * does not have sufficient memory and needs to redo the * factorization; e.g., for MA27.) * * The number of right-hand sides is given by nrhs, the values of * the right-hand sides are given in rhs_vals (one full right-hand * side stored immediately after the other), and solutions are * to be returned in the same array. * * check_NegEVals will not be chosen true, if ProvidesInertia() * returns false. */ virtual ESymSolverStatus MultiSolve( bool new_matrix /** If this flag is false, the same matrix as in the most recent call is given to the solver again */ , Index n_x /** Dimension of D_x */ , Index n_c /** Dimension of D_s and D_c */ , Index n_d /** Dimension of D_d */ , SmartPtr W /** Hessian of Lagrangian (as given by NLP) */ , SmartPtr Jac_c /** Jacobian of equality constraints (as given by NLP) */ , SmartPtr Jac_d /** Jacobian of inequality constraints (as given by NLP) */ , const Number* D_x /** Array with the elements D_x (if NULL, assume all zero) */ , const Number* D_s /** Array with the elements D_s (if NULL, assume all zero) */ , const Number* D_c /** Array with the elements D_c (if NULL, assume all zero) */ , const Number* D_d /** Array with the elements D_d (if NULL, assume all zero) */ , Number delta_x /** \f$ \delta_x\f$ */ , Number delta_s /** \f$ \delta_s\f$ */ , Number delta_c /** \f$ \delta_c\f$ */ , Number delta_d /** \f$ \delta_d\f$ */ , Index n_rhs /** Number of right hand sides */ , Number* rhssol /** On input, this containts the right hand sides, and on successful termination of the solver, the solutions are expected in there on return. At the moment, the order is x,d,c,s, but this can be made flexible and chosen according to an option. */ , bool check_NegEVals /** if true, we want to ensure that the inertia is correct */ , Index numberOfNegEVals /** Required number of negative eigenvalues if check_NegEVals is true */ )=0; /** Number of negative eigenvalues detected during last * factorization. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const =0; //@} //* @name Options of Linear solver */ //@{ /** Request to increase quality of solution for next solve. The * calling class asks linear solver to increase quality of * solution for the next solve (e.g. increase pivot tolerance). * Returns false, if this is not possible (e.g. maximal pivot * tolerance already used.) */ virtual bool IncreaseQuality() =0; /** Query whether inertia is computed by linear solver. Returns * true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const =0; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa28TDependencyDetector.hpp0000644000076600007660000000520011504216567025303 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMa28TDependencyDetector.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-04-17 #ifndef __IPMA28TDEPENDENCYDETECTOR_HPP__ #define __IPMA28TDEPENDENCYDETECTOR_HPP__ #include "IpTDependencyDetector.hpp" namespace Ipopt { /** Base class for all derived algorithms for detecting linearly * dependent rows in the constraint Jacobian. */ class Ma28TDependencyDetector: public TDependencyDetector { public: /** @name Constructor/Destructor */ //@{ Ma28TDependencyDetector(); virtual ~Ma28TDependencyDetector() {} //@} /** Has to be called to initialize and reset these objects. */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method determining the number of linearly dependent rows in * the matrix and the indices of those rows. We assume that the * matrix is available in "Triplet" format (MA28 format), and * that the arrays given to this method can be modified * internally, i.e., they are not used by the calling program * anymore after this call. This method returns false if there * was a problem with the underlying linear solver. */ virtual bool DetermineDependentRows(Index n_rows, Index n_cols, Index n_jac_nz, Number* jac_c_vals, Index* jac_c_iRow, Index* jac_c_jCol, std::list& c_deps); /** This must be called to make the options for this class * known */ static void RegisterOptions(SmartPtr roptions); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ Ma28TDependencyDetector(const Ma28TDependencyDetector&); /** Overloaded Equals Operator */ void operator=(const Ma28TDependencyDetector&); //@} SmartPtr jnlst_; /** @name Algorithmic parameters */ //@{ /** Pivot tolerance for MA28 */ Number ma28_pivtol_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpLinearSolversRegOp.cpp0000644000076600007660000000545112066060130024472 0ustar coincoin// Copyright (C) 2005, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLinearSolversRegOp.cpp 2159 2012-12-24 14:02:00Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #include "IpoptConfig.h" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #include "IpLinearSolversRegOp.hpp" #include "IpRegOptions.hpp" #include "IpTSymLinearSolver.hpp" #include "IpMa27TSolverInterface.hpp" #include "IpMa57TSolverInterface.hpp" #include "IpMa77SolverInterface.hpp" #include "IpMa86SolverInterface.hpp" #include "IpMa97SolverInterface.hpp" #include "IpMa28TDependencyDetector.hpp" #include "IpPardisoSolverInterface.hpp" #ifdef COIN_HAS_MUMPS # include "IpMumpsSolverInterface.hpp" #endif #ifdef HAVE_WSMP # include "IpWsmpSolverInterface.hpp" # include "IpIterativeWsmpSolverInterface.hpp" #endif namespace Ipopt { void RegisterOptions_LinearSolvers(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Linear Solver"); TSymLinearSolver::RegisterOptions(roptions); #if defined(COINHSL_HAS_MA27) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA27 Linear Solver"); Ma27TSolverInterface::RegisterOptions(roptions); #endif #if defined(COINHSL_HAS_MA57) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA57 Linear Solver"); Ma57TSolverInterface::RegisterOptions(roptions); #endif #if defined(COINHSL_HAS_MA77) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA77 Linear Solver"); Ma77SolverInterface::RegisterOptions(roptions); #endif #if defined(COINHSL_HAS_MA86) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA86 Linear Solver"); Ma86SolverInterface::RegisterOptions(roptions); #endif #if defined(COINHSL_HAS_MA97) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA97 Linear Solver"); Ma97SolverInterface::RegisterOptions(roptions); #endif #ifdef COIN_HAS_MUMPS roptions->SetRegisteringCategory("Mumps Linear Solver"); MumpsSolverInterface::RegisterOptions(roptions); #endif #if defined(HAVE_PARDISO) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("Pardiso Linear Solver"); PardisoSolverInterface::RegisterOptions(roptions); #endif #ifdef HAVE_WSMP roptions->SetRegisteringCategory("WSMP Linear Solver"); WsmpSolverInterface::RegisterOptions(roptions); IterativeWsmpSolverInterface::RegisterOptions(roptions); #endif #if defined(COINHSL_HAS_MA28) || defined(HAVE_LINEARSOLVERLOADER) roptions->SetRegisteringCategory("MA28 Linear Solver"); Ma28TDependencyDetector::RegisterOptions(roptions); #endif roptions->SetRegisteringCategory("Uncategorized"); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/hsl_ma77d.h0000644000076600007660000001640112156621430021711 0ustar coincoin/* * COPYRIGHT (c) 2011, 2013 The Science and Technology Facilities Council (STFC) * All Rights Reserved. * This code is published under the Eclipse Public License. * * Authors: Jonathan Hogg STFC 2011-05-18 */ #ifndef HSL_MA77D_H #define HSL_MA77D_H #ifndef ma77_default_control #define ma77_control ma77_control_d #define ma77_info ma77_info_d #define ma77_default_control ma77_default_control_d #define ma77_open_nelt ma77_open_nelt_d #define ma77_open ma77_open_d #define ma77_input_vars ma77_input_vars_d #define ma77_input_reals ma77_input_reals_d #define ma77_analyse ma77_analyse_d #define ma77_factor ma77_factor_d #define ma77_factor_solve ma77_factor_solve_d #define ma77_solve ma77_solve_d #define ma77_resid ma77_resid_d #define ma77_scale ma77_scale_d #define ma77_enquire_posdef ma77_enquire_posdef_d #define ma77_enquire_indef ma77_enquire_indef_d #define ma77_alter ma77_alter_d #define ma77_restart ma77_restart_d #define ma77_finalise ma77_finalise_d #define ma77_solve_fredholm ma77_solve_fredholm_d #define ma77_lmultiply ma77_lmultiply_d #endif typedef double ma77pkgtype_d_; /* Data type for user controls */ struct ma77_control_d { /* Note: 0 is false, non-zero is true */ /* C/Fortran interface related controls */ int f_arrays; /* Treat arrays as 1-based (Fortran) if true or 0-based (C) if false. */ /* Printing controls */ int print_level; int unit_diagnostics; /* unit for diagnostic messages Printing is suppressed if unit_diagnostics < 0. */ int unit_error; /* unit for error messages Printing is suppressed if unit_error < 0. */ int unit_warning; /* unit for warning messages Printing is suppressed if unit_warning < 0. */ /* Controls used by MA77_open */ int bits; int buffer_lpage[2]; int buffer_npage[2]; long int file_size; long int maxstore; long int storage[3]; /* Controls used by MA77_analyse */ int nemin; /* Node amalgamation parameter. A child node is merged with its parent if they both involve fewer than nemin eliminations.*/ /* Controls used by MA77_scale */ int maxit; int infnorm; ma77pkgtype_d_ thresh; /* Controls used by MA77_factor with posdef true */ int nb54; /* Controls used by MA77_factor with posdef false */ int action; /* Keep going even if matrix is singular if true, or abort if false */ ma77pkgtype_d_ multiplier; int nb64; int nbi; ma77pkgtype_d_ small; ma77pkgtype_d_ static_; long int storage_indef; ma77pkgtype_d_ u; /* Pivot tolerance*/ ma77pkgtype_d_ umin; /* Minimum pivot tolerance*/ #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MA77) /* Controls used by ma77_solve_fredholm */ ma77pkgtype_d_ consist_tol; /* Tolerance for consistent singular system */ /* Pad data structure to allow for future growth */ int ispare[5]; long int lspare[5]; ma77pkgtype_d_ rspare[5]; #endif }; /***************************************************/ /* data type for returning information to user.*/ struct ma77_info_d { ma77pkgtype_d_ detlog; int detsign; int flag; int iostat; int matrix_dup; int matrix_rank; int matrix_outrange; int maxdepth; int maxfront; long int minstore; int ndelay; long int nfactor; long int nflops; int niter; int nsup; int num_neg; int num_nothresh; int num_perturbed; int ntwo; int stat; int index[4]; long int nio_read[2]; long int nio_write[2]; long int nwd_read[2]; long int nwd_write[2]; int num_file[4]; long int storage[4]; int tree_nodes; int unit_restart; int unused; ma77pkgtype_d_ usmall; /* if we do not have MA77, we assume its is loaded via the linear solver loader, for which we assume HSL 2013 */ #if defined(COINHSL_HSL2013) || !defined(COINHSL_HAS_MA77) /* Pad data structure to allow for future growth */ int ispare[5]; long int lspare[5]; ma77pkgtype_d_ rspare[5]; #endif }; /* Initialise control with default values */ void ma77_default_control_d(struct ma77_control_d *control); void ma77_open_nelt(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const int nelt); void ma77_open_d(const int n, const char* fname1, const char* fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); void ma77_input_vars(const int idx, const int nvar, const int list[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); void ma77_input_reals_d(const int idx, const int length, const ma77pkgtype_d_ reals[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); /* Analyse the sparsity pattern and prepare for factorization */ void ma77_analyse(const int order[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); /* To factorize the matrix */ void ma77_factor_d(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale); /* To factorize the matrix AND solve AX = B */ void ma77_factor_solve_d(const int posdef, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale, const int nrhs, const int lx, ma77pkgtype_d_ rhs[]); /* To solve AX = B using the computed factors */ void ma77_solve_d(const int job, const int nrhs, const int lx, ma77pkgtype_d_ x[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale); void ma77_resid_d(const int nrhs, const int lx, const ma77pkgtype_d_ x[], const int lresid, ma77pkgtype_d_ resid[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, ma77pkgtype_d_ *anorm_bnd); void ma77_scale_d(ma77pkgtype_d_ scale[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, ma77pkgtype_d_ *anorm); void ma77_enquire_posdef_d(ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); void ma77_enquire_indef_d(int piv_order[], ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); void ma77_alter_d(const ma77pkgtype_d_ d[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); void ma77_restart_d(const char *restart_file, const char *fname1, const char *fname2, const char *fname3, const char *fname4, void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); /* exists only for HSL 2013 */ void ma77_solve_fredholm_d(int nrhs, int flag_out[], int lx, ma77pkgtype_d_ x[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale); /* exists only for HSL 2013 */ void ma77_lmultiply_d(int trans, int k, int lx, ma77pkgtype_d_ x[], int ly, ma77pkgtype_d_ y[], void **keep, const struct ma77_control_d *control, struct ma77_info_d *info, const ma77pkgtype_d_ *scale); /* To clean up memory in keep */ void ma77_finalise_d(void **keep, const struct ma77_control_d *control, struct ma77_info_d *info); #endif Ipopt-3.11.4/Ipopt/src/Algorithm/LinearSolvers/IpMa28Partition.F0000644000076600007660000002127211601106722022752 0ustar coincoinC Copyright (C) 2002, 2007 Carnegie Mellon University and others. C All Rights Reserved. C This code is published under the Eclipse Public License. C C This code is based on the file Ipopt/IPOPT/ipopt/ma28_call.F in the C Ipopt 2.2.1e distribution. C C This code provides an interface to MA28. Since Fortran COMMON blocks C might be difficult to access from C++, we write this interface in Fortran C and not C. C subroutine MA28PART(TASK, N, M, NZ, A, IROW, ICOL, PIVTOL, 1 FILLFACT, IVAR, NDEGEN, IDEGEN, LIW, IW, LRW, RW, IERR) C C******************************************************************************* C C $Id: IpMa28Partition.F 2026 2011-06-24 13:14:58Z stefan $ C C------------------------------------------------------------------------------- C Title C------------------------------------------------------------------------------- C CT Interface to MA28 for detecting degenerate constraints C C------------------------------------------------------------------------------- C Programm description C------------------------------------------------------------------------------- C CB C C------------------------------------------------------------------------------- C Author, date C------------------------------------------------------------------------------- C CA Andreas Waechter 30/01/07 Based on Ipopt/IPOPT/ipopt/ma28_call.F CA in the Ipopt 2.2.1e distribution. C C------------------------------------------------------------------------------- C Documentation C------------------------------------------------------------------------------- C CD C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C C Name I/O Type Meaning C CP TASK I INT information about what to do: CP =0: initialize, tell LIW, LRW CP =1: factorize nonsquare matrix in order to CP get partition into dependent and independent CP variables and find dependent constraints CP N I INT total number of variables (only TASK = 0,1) CP M I INT number of constraints = number of depentent vars CP NZ I INT number of nonzero elements in A CP A I DP TASK =1,2: nonzero elements of matrix CP (unchanged on exit) CP (note: NZ is different for TASK=1 and others) CP IROW I INT TASK =1,2: row indices for A (unchanged on exit) CP ICOL I INT TASK =1,2: col indices for A (unchanged on exit) CP PIVTOL I DP pivot tolerance (e.g., 1.d-4 ?) CP FILLFACT I INT estimated fillin factor (e.g. 40) CP IVAR O INT TASK = 1: IVAR( 1,..,M) containts the indices of CP a set of linear independent columns of A CP IVAR(M+1,..,N) containts the indices of the CP remaining column indices CP NDEGEN O INT Number of linearly dependent constraints CP IDEGEN O INT List of linearly dependent constraints CP LIW I INT length of IW (Output for TASK = 0) CP IW W INT integer work space CP LRW I INT length of RW (Output for TASK = 0) CP RW W DP double precision work space CP IERR O INT =0: everything OK CP >0: Error occured; abort optimization CP <0: Warning; message to user C C******************************************************************************* C C Declarations C C******************************************************************************* C IMPLICIT NONE C C------------------------------------------------------------------------------- C Parameter list C------------------------------------------------------------------------------- C integer TASK integer N integer M integer NZ double precision A(NZ) integer IROW(NZ) integer ICOL(NZ) double precision PIVTOL integer FILLFACT integer IVAR(N) integer NDEGEN integer IDEGEN(*) integer LRW double precision RW(LRW) integer LIW integer IW(LIW) integer IERR C C------------------------------------------------------------------------------- C COMMON blocks C------------------------------------------------------------------------------- C integer LP, MP, IRNCP, ICNCP, MINIRN, MINICN, IRANK logical LBLOCK, GROW, ABORT1, ABORT2 double precision EPS, RMIN, RESID COMMON/MA28ED/LP, MP, LBLOCK, GROW COMMON/MA28FD/EPS, RMIN, RESID, IRNCP, ICNCP, MINIRN, MINICN, * IRANK, ABORT1, ABORT2 C C------------------------------------------------------------------------------- C Local varibales C------------------------------------------------------------------------------- C integer LIRN, LICN, p_a, p_icn, p_ikeep integer i, k, ii, l, j, iflag, nind, nsize integer p_iwend, p_rwend, p_irn, p_iw, p_w C C******************************************************************************* C C Executable Statements C C******************************************************************************* C LICN = FILLFACT*NZ LIRN = FILLFACT*NZ p_iwend = 0 p_rwend = 0 IERR = 0 C C Set MA28 COMMON block parameters C LBLOCK = .false. ABORT1 = .true. ABORT2 = .true. C Allow for more constraints than variables nsize = MAX(N, M) goto (10, 100) TASK+1 C Wrong argument for TASK IERR = -1 return C------------------------------------------------------------------------------- C Start: Compute work space requirement C------------------------------------------------------------------------------- 10 continue C Determine storage space LRW = LICN LIW = LICN + 5*nsize C TASK = 1 LIW = LIW + LIRN + 8*nsize LRW = LRW + nsize C------------------------------------------------------------------------------- C End: Compute work space requirement C------------------------------------------------------------------------------- goto 9999 C------------------------------------------------------------------------------- C Start: Partitioning C------------------------------------------------------------------------------- 100 continue C C Get work space pointers C p_icn = p_iwend p_ikeep = p_icn + LICN p_irn = p_ikeep + 5*nsize p_iw = p_irn + LIRN p_iwend = p_iw + 8*nsize p_a = p_rwend p_w = p_a + LICN p_rwend = p_w + nsize if( p_rwend.gt.LRW ) then IERR = 98 goto 9999 elseif( p_iwend.gt.LIW ) then IERR = 99 goto 9999 endif C C Copy A, IROW, ICOL into work space (delete old factorization!) C call DCOPY(NZ, A, 1, RW(p_a+1) , 1) do i = 1, NZ IW(p_irn+i) = IROW(i) IW(p_icn+i) = ICOL(i) enddo C C Do the factorization C ABORT1 = .false. ABORT2 = .false. call MA28AD(nsize, NZ, RW(p_a+1), LICN, IW(p_irn+1), LIRN, 1 IW(p_icn+1), PIVTOL, IW(p_ikeep+1), IW(p_iw+1), 1 RW(p_w+1), iflag) if( iflag.lt.0 ) then IERR = 514 goto 9999 endif C C Get the partitioning out of IKEEP C k = 0 do i = 1, N ii = IW(p_ikeep+2*N+i) if( ii.lt.0 ) then C indepentent variable k = k + 1 IW(p_ikeep+k) = -ii endif enddo nind = N - M if( k.gt.nind ) then C get the dependent constraints NDEGEN = k-nind do i = 1, NDEGEN IDEGEN(i) = IW(p_ikeep+N+M-NDEGEN+i) enddo else NDEGEN = 0 endif k = M l = 0 do i = 1, N do j = 1, nind if( i.eq.IW(p_ikeep+j) ) then k = k + 1 IVAR(k) = i goto 110 endif enddo l = l + 1 IVAR(l) = i 110 continue enddo C------------------------------------------------------------------------------- C End: Partitioning C------------------------------------------------------------------------------- goto 9999 9999 continue return end Ipopt-3.11.4/Ipopt/src/Algorithm/IpStdAugSystemSolver.hpp0000644000076600007660000002252011504216567021762 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpStdAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IP_STDAUGSYSTEMSOLVER_HPP__ #define __IP_STDAUGSYSTEMSOLVER_HPP__ #include "IpAugSystemSolver.hpp" #include "IpCompoundMatrix.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpCompoundVector.hpp" #include "IpSumSymMatrix.hpp" #include "IpDiagMatrix.hpp" #include "IpIdentityMatrix.hpp" namespace Ipopt { /** Solver for the augmented system for triple type matrices. * * The current implemetation assumes that all matrices are of the * type SymTMatrix, and all vectors are of the type DenseVector. */ class StdAugSystemSolver : public AugSystemSolver { public: /**@name Constructors/Destructors */ //@{ /** Constructor using only a linear solver object */ StdAugSystemSolver(SymLinearSolver& LinSolver); /** Default destructor */ virtual ~StdAugSystemSolver(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Set up the augmented system and solve it for a set of given * right hand side - implementation for GenTMatrices and * SymTMatrices. */ virtual ESymSolverStatus MultiSolve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, std::vector >& rhs_xV, std::vector >& rhs_sV, std::vector >& rhs_cV, std::vector >& rhs_dV, std::vector >& sol_xV, std::vector >& sol_sV, std::vector >& sol_cV, std::vector >& sol_dV, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * solve. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const; /** Request to increase quality of solution for next solve. Ask * underlying linear solver to increase quality of solution for * the next solve (e.g. increase pivot tolerance). Returns * false, if this is not possible (e.g. maximal pivot tolerance * already used.) */ virtual bool IncreaseQuality(); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor. */ StdAugSystemSolver(); /** Copy Constructor */ StdAugSystemSolver(const StdAugSystemSolver&); /** Overloaded Equals Operator */ void operator=(const StdAugSystemSolver&); //@} /** Create the matrix space for the Compound Sym Matrix that * represents the augmented system. This signifies the "first" * time through and requires all structural knowledge */ void CreateAugmentedSpace(const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Vector& proto_x, const Vector& proto_s, const Vector& proto_c, const Vector& proto_d); /** Create the new compound sym matrix that represents the * augmented system. This is done EVERY time Solve is called * with ANY different information */ void CreateAugmentedSystem(const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_x, const Vector& proto_s, const Vector& proto_c, const Vector& proto_d); /** Check the internal tags and decide if the passed variables are * different from what is in the augmented_system_ */ bool AugmentedSystemRequiresChange(const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d); /** The linear solver object that is to be used to solve the * linear systems. */ SmartPtr linsolver_; /** Spaces for piecing together the augmented system */ SmartPtr augmented_system_space_; SmartPtr sumsym_space_x_; SmartPtr diag_space_x_; SmartPtr diag_space_s_; SmartPtr diag_space_c_; SmartPtr ident_space_ds_; SmartPtr diag_space_d_; SmartPtr augmented_vector_space_; /**@name Tags and values to track in order to decide whether the matrix has to be updated compared to the most recent call of the Set method. */ //@{ /** Tag for W matrix. If W has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag w_tag_; /** Most recent value of W_factor */ double w_factor_; /** Tag for D_x vector, representing the diagonal matrix D_x. If * D_x has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_x_tag_; /** Most recent value of delta_x from Set method */ double delta_x_; /** Tag for D_s vector, representing the diagonal matrix D_s. If * D_s has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_s_tag_; /** Most recent value of delta_s from Set method */ double delta_s_; /** Tag for J_c matrix. If J_c has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_c_tag_; /** Tag for D_c vector, representing the diagonal matrix D_c. If * D_c has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_c_tag_; /** Most recent value of delta_c from Set method */ double delta_c_; /** Tag for J_d matrix. If J_d has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_d_tag_; /** Tag for D_d vector, representing the diagonal matrix D_d. If * D_d has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_d_tag_; /** Most recent value of delta_d from Set method */ double delta_d_; /** This is the tag of the matrix storing the augmented system. Since * this object owns this matrix, no changes should happen outside. * However, since it is given away as a smart pointer, someone outside * might change it. For debugging purposes, we now track its tag as * well. */ TaggedObject::Tag augsys_tag_; //@} /** The resulting augmented matrix. * This matrix is stored as follows: First we have the diagonal elements * for the upper left block (for D_W and delta_W), then the elements for * the Hessian W, then the Jacobian A, and finally the diagonal elements * for the lower right block (for D_C and delta_C). */ SmartPtr augmented_system_; /** A copy of a previous W used in the augmented_system_. Since Solve can * be called with a NULL W, we keep a copy of the last W passed to keep * the nonzero structure of the augmented_system_ consistent */ SmartPtr old_w_; /** @name Algorithmic parameters */ //@{ /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpTimingStatistics.hpp0000644000076600007660000001165511573147064021505 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTimingStatistics.hpp 2005 2011-06-06 12:55:16Z stefan $ // // Authors: Andreas Waechter IBM 2005-09-19 #ifndef __IPTIMINGSTATISTICS_HPP__ #define __IPTIMINGSTATISTICS_HPP__ #include "IpReferenced.hpp" #include "IpJournalist.hpp" #include "IpTimedTask.hpp" namespace Ipopt { /** This class collects all timing statistics for Ipopt. */ class TimingStatistics : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Default constructor. */ TimingStatistics() {} /** Default destructor */ virtual ~TimingStatistics() {} //@} /** Method for resetting all times. */ void ResetTimes(); /** Method for printing all timing information */ void PrintAllTimingStatistics(Journalist& jnlst, EJournalLevel level, EJournalCategory category) const; /**@name Accessor methods to all timed tasks. */ //@{ TimedTask& OverallAlgorithm() { return OverallAlgorithm_; } TimedTask& PrintProblemStatistics() { return PrintProblemStatistics_; } TimedTask& InitializeIterates() { return InitializeIterates_; } TimedTask& UpdateHessian() { return UpdateHessian_; } TimedTask& OutputIteration() { return OutputIteration_; } TimedTask& UpdateBarrierParameter() { return UpdateBarrierParameter_; } TimedTask& ComputeSearchDirection() { return ComputeSearchDirection_; } TimedTask& ComputeAcceptableTrialPoint() { return ComputeAcceptableTrialPoint_; } TimedTask& AcceptTrialPoint() { return AcceptTrialPoint_; } TimedTask& CheckConvergence() { return CheckConvergence_; } TimedTask& PDSystemSolverTotal() { return PDSystemSolverTotal_; } TimedTask& PDSystemSolverSolveOnce() { return PDSystemSolverSolveOnce_; } TimedTask& ComputeResiduals() { return ComputeResiduals_; } TimedTask& StdAugSystemSolverMultiSolve() { return StdAugSystemSolverMultiSolve_; } TimedTask& LinearSystemScaling() { return LinearSystemScaling_; } TimedTask& LinearSystemSymbolicFactorization() { return LinearSystemSymbolicFactorization_; } TimedTask& LinearSystemFactorization() { return LinearSystemFactorization_; } TimedTask& LinearSystemBackSolve() { return LinearSystemBackSolve_; } TimedTask& LinearSystemStructureConverter() { return LinearSystemStructureConverter_; } TimedTask& LinearSystemStructureConverterInit() { return LinearSystemStructureConverterInit_; } TimedTask& QualityFunctionSearch() { return QualityFunctionSearch_; } TimedTask& TryCorrector() { return TryCorrector_; } TimedTask& Task1() { return Task1_; } TimedTask& Task2() { return Task2_; } TimedTask& Task3() { return Task3_; } TimedTask& Task4() { return Task4_; } TimedTask& Task5() { return Task5_; } TimedTask& Task6() { return Task6_; } //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ TimingStatistics(const TimingStatistics&); /** Overloaded Equals Operator */ void operator=(const TimingStatistics&); //@} /**@name All timed tasks. */ //@{ TimedTask OverallAlgorithm_; TimedTask PrintProblemStatistics_; TimedTask InitializeIterates_; TimedTask UpdateHessian_; TimedTask OutputIteration_; TimedTask UpdateBarrierParameter_; TimedTask ComputeSearchDirection_; TimedTask ComputeAcceptableTrialPoint_; TimedTask AcceptTrialPoint_; TimedTask CheckConvergence_; TimedTask PDSystemSolverTotal_; TimedTask PDSystemSolverSolveOnce_; TimedTask ComputeResiduals_; TimedTask StdAugSystemSolverMultiSolve_; TimedTask LinearSystemScaling_; TimedTask LinearSystemSymbolicFactorization_; TimedTask LinearSystemFactorization_; TimedTask LinearSystemBackSolve_; TimedTask LinearSystemStructureConverter_; TimedTask LinearSystemStructureConverterInit_; TimedTask QualityFunctionSearch_; TimedTask TryCorrector_; TimedTask Task1_; TimedTask Task2_; TimedTask Task3_; TimedTask Task4_; TimedTask Task5_; TimedTask Task6_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoFilterConvCheck.hpp0000644000076600007660000000545211504216567022226 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoFilterConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // // A Waechter: moved most code to IpRestoConvCheck.cpp 2008-06-24 #ifndef __IPRESTOFILTERCONVCHECK_HPP__ #define __IPRESTOFILTERCONVCHECK_HPP__ #include "IpRestoConvCheck.hpp" #include "IpFilterLSAcceptor.hpp" namespace Ipopt { /** This is the implementation of the restoration convergence check * is the original algorithm used the filter globalization * mechanism. */ class RestoFilterConvergenceCheck : public RestoConvergenceCheck { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ RestoFilterConvergenceCheck(); /** Default destructor */ virtual ~RestoFilterConvergenceCheck(); //@} /** Set the object for the original filter line search. Here, * orig_filter_ls_acceptor must be the same strategy object to * which the restoration phase object with this object is given. * This method must be called to finish the definition of the * algorithm, before Initialize is called. */ void SetOrigLSAcceptor(const BacktrackingLSAcceptor& orig_ls_acceptor); /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Methods used by IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ RestoFilterConvergenceCheck(const RestoFilterConvergenceCheck&); /** Overloaded Equals Operator */ void operator=(const RestoFilterConvergenceCheck&); //@} /** Method for checking progress with original filter * globalization mechanism. Overloaded from * RestoConvergenceCheck. */ virtual ConvergenceStatus TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta); /** Strategy object for the filter line search method for the * original NLP. CAREFUL: We must not hold on to this object * with a SmartPtr, because have otherwise circular references * that prevent the destructor of the line search object to be * called! */ const FilterLSAcceptor* orig_filter_ls_acceptor_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpWarmStartIterateInitializer.hpp0000644000076600007660000000677211504216567023654 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpWarmStartIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-04-01 #ifndef __IPWARMSTARTITERATEINITIALIZER_HPP__ #define __IPWARMSTARTITERATEINITIALIZER_HPP__ #include "IpIterateInitializer.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** Class implementing an initialization procedure for warm starts. */ class WarmStartIterateInitializer: public IterateInitializer { public: /**@name Constructors/Destructors */ //@{ /** Constructor. */ WarmStartIterateInitializer(); /** Default destructor */ virtual ~WarmStartIterateInitializer() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Compute the initial iterates and set the into the curr field * of the ip_data object. */ virtual bool SetInitialIterates(); /** Methods used by IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ WarmStartIterateInitializer(const WarmStartIterateInitializer&); /** Overloaded Equals Operator */ void operator=(const WarmStartIterateInitializer&); //@} /**@name Algorithmic Parameters */ //@{ /** Abolsute parameters for bumping x0 in warm start mode */ Number warm_start_bound_push_; /** Relateive parameters for bumping x0 in warm start mode */ Number warm_start_bound_frac_; /** Abolsute parameters for bumping s0 in warm start mode */ Number warm_start_slack_bound_push_; /** Relateive parameters for bumping s0 in warm start mode */ Number warm_start_slack_bound_frac_; /** Parameters for bumping initial bound multipliers */ Number warm_start_mult_bound_push_; /** Maximal size of entries in bound and equality constraint * multipliers in magnitute. If chosen less of equal to zero, no * upper limit is imposed. Otherwise, the entries exceeding the * given limit are set to the value closest to the limit. */ Number warm_start_mult_init_max_; /** Target values for the barrier parameter in warm start option. */ Number warm_start_target_mu_; /** Indicator for which method in the NLP should be used to get * the warm start */ bool warm_start_entire_iterate_; //@} /** @name Auxilliary functions */ //@{ void process_target_mu(Number factor, const Vector& curr_vars, const Vector& curr_slacks, const Vector& curr_mults, const Matrix& P, SmartPtr& ret_vars, SmartPtr& ret_mults); void adapt_to_target_mu(Vector& new_s, Vector& new_z, Number target_mu); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAugSystemSolver.hpp0000644000076600007660000001523012132244172021276 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAugSystemSolver.hpp 2201 2013-04-13 11:58:50Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IP_AUGSYSTEMSOLVER_HPP__ #define __IP_AUGSYSTEMSOLVER_HPP__ #include "IpSymMatrix.hpp" #include "IpSymLinearSolver.hpp" #include "IpAlgStrategy.hpp" namespace Ipopt { DECLARE_STD_EXCEPTION(FATAL_ERROR_IN_LINEAR_SOLVER); /** Base class for Solver for the augmented system. This is the * base class for linear solvers that solve the augmented system, * which is defined as * * \f$\left[\begin{array}{cccc} * W + D_x + \delta_xI & 0 & J_c^T & J_d^T\\ * 0 & D_s + \delta_sI & 0 & -I \\ * J_c & 0 & D_c - \delta_cI & 0\\ * J_d & -I & 0 & D_d - \delta_dI * \end{array}\right] * \left(\begin{array}{c}sol_x\\sol_s\\sol_c\\sol_d\end{array}\right)= * \left(\begin{array}{c}rhs_x\\rhs_s\\rhs_c\\rhs_d\end{array}\right)\f$ * * Since this system might be solved repeatedly for different right * hand sides, it is desirable to step the factorization of a * direct linear solver if possible. */ class AugSystemSolver: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default constructor. */ AugSystemSolver() {} /** Default destructor */ virtual ~AugSystemSolver() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Set up the augmented system and solve it for a given right hand * side. If desired (i.e. if check_NegEVals is true), then the * solution is only computed if the number of negative eigenvalues * matches numberOfNegEVals. * * The return value is the return value of the linear solver object. */ virtual ESymSolverStatus Solve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals) { std::vector > rhs_xV(1); rhs_xV[0] = &rhs_x; std::vector > rhs_sV(1); rhs_sV[0] = &rhs_s; std::vector > rhs_cV(1); rhs_cV[0] = &rhs_c; std::vector > rhs_dV(1); rhs_dV[0] = &rhs_d; std::vector > sol_xV(1); sol_xV[0] = &sol_x; std::vector > sol_sV(1); sol_sV[0] = &sol_s; std::vector > sol_cV(1); sol_cV[0] = &sol_c; std::vector > sol_dV(1); sol_dV[0] = &sol_d; return MultiSolve(W, W_factor, D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, rhs_xV, rhs_sV, rhs_cV, rhs_dV, sol_xV, sol_sV, sol_cV, sol_dV, check_NegEVals, numberOfNegEVals); } /** Like Solve, but for multiple right hand sides. The inheriting * class has to be overload at least one of Solve and * MultiSolve. */ virtual ESymSolverStatus MultiSolve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, std::vector >& rhs_xV, std::vector >& rhs_sV, std::vector >& rhs_cV, std::vector >& rhs_dV, std::vector >& sol_xV, std::vector >& sol_sV, std::vector >& sol_cV, std::vector >& sol_dV, bool check_NegEVals, Index numberOfNegEVals) { // Solve for one right hand side after the other Index nrhs = (Index)rhs_xV.size(); DBG_ASSERT(nrhs>0); DBG_ASSERT(nrhs==(Index)rhs_sV.size()); DBG_ASSERT(nrhs==(Index)rhs_cV.size()); DBG_ASSERT(nrhs==(Index)rhs_dV.size()); DBG_ASSERT(nrhs==(Index)sol_xV.size()); DBG_ASSERT(nrhs==(Index)sol_sV.size()); DBG_ASSERT(nrhs==(Index)sol_cV.size()); DBG_ASSERT(nrhs==(Index)sol_dV.size()); ESymSolverStatus retval=SYMSOLVER_SUCCESS; for (Index i=0; i aug_system_solver_; /** Maximal rank of low rank Hessian update */ Index max_rank_; /**@name Tags and values to track in order to decide whether the matrix has to be updated compared to the most recent call of the Set method. */ //@{ /** Tag for W matrix. If W has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag w_tag_; /** Most recent value of W_factor */ double w_factor_; /** Tag for D_x vector, representing the diagonal matrix D_x. If * D_x has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_x_tag_; /** Most recent value of delta_x from Set method */ double delta_x_; /** Tag for D_s vector, representing the diagonal matrix D_s. If * D_s has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_s_tag_; /** Most recent value of delta_s from Set method */ double delta_s_; /** Tag for J_c matrix. If J_c has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_c_tag_; /** Tag for D_c vector, representing the diagonal matrix D_c. If * D_c has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_c_tag_; /** Most recent value of delta_c from Set method */ double delta_c_; /** Tag for J_d matrix. If J_d has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_d_tag_; /** Tag for D_d vector, representing the diagonal matrix D_d. If * D_d has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_d_tag_; /** Most recent value of delta_d from Set method */ double delta_d_; //@} /** Flag indicating if this is the first call */ bool first_call_; /** @name Information to be stored in order to resolve for the * same matrix with a different right hand side. */ //@{ /** Hessian Matrix passed to the augmented system solver solving * the matrix without the low-rank update. */ SmartPtr Wdiag_; /** Artifical rows for Jac_c part for low rank data */ SmartPtr expanded_vu_; /** Extended Jac_c to include expanded_vu_ */ SmartPtr J_c_ext_; /** Extended D_c diagonal */ SmartPtr D_c_ext_; /** Extended vector space for y_c */ SmartPtr y_c_ext_space_; /** Number of components in V, so that it can be used to correct * the inertia */ Index negEvalsCorrection_; //@} /** Stores the number of negative eigenvalues detected during most * recent factorization. This is what is returned by * NumberOfNegEVals() of this class. It usually is the number of * negative eigenvalues retured from the aug_system_solver solve, * but if a Cholesky factorization could not be performed, the * returned value is one more than this what the * aug_system_solver returned. */ Index num_neg_evals_; /** @name Internal functions */ //@{ /** Method for updating the factorization, including J1_, J2_, * Vtilde1_, Utilde2, Wdiag_, compound_sol_vecspace_ */ ESymSolverStatus UpdateExtendedData( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d); /** Method that compares the tags of the data for the matrix with * those from the previous call. Returns true, if there was a * change and the factorization has to be updated. */ bool AugmentedSystemRequiresChange( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpOrigIterationOutput.hpp0000644000076600007660000000440712116344132022165 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOrigIterationOutput.hpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Andreas Waechter, Carl Laird IBM 2004-09-27 #ifndef __IPORIGITERATIONOUTPUT_HPP__ #define __IPORIGITERATIONOUTPUT_HPP__ #include "IpIterationOutput.hpp" namespace Ipopt { /** Class for the iteration summary output for the original NLP. */ class OrigIterationOutput: public IterationOutput { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ OrigIterationOutput(); /** Default destructor */ virtual ~OrigIterationOutput(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method to do all the summary output per iteration. This * include the one-line summary output as well as writing the * details about the iterates if desired */ virtual void WriteOutput(); /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ OrigIterationOutput(const OrigIterationOutput&); /** Overloaded Equals Operator */ void operator=(const OrigIterationOutput&); //@} /** Flag indicating weather info string should be printed at end * of iteration summary line. */ bool print_info_string_; /** Option indication what should be printed in inf_pr column */ InfPrOutput inf_pr_output_; /** Option indicating at which iteration frequency the summary line should be printed */ int print_frequency_iter_; /** Option indicating at which time frequency the summary line should be printed */ Number print_frequency_time_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAlgBuilder.cpp0000644000076600007660000007366012164277047020216 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgBuilder.cpp 2346 2013-07-01 13:03:35Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-29 #include "IpoptConfig.h" #include "IpAlgBuilder.hpp" #include "IpOrigIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpCGPenaltyData.hpp" #include "IpCGPenaltyCq.hpp" #include "IpStdAugSystemSolver.hpp" #include "IpAugRestoSystemSolver.hpp" #include "IpPDFullSpaceSolver.hpp" #include "IpPDPerturbationHandler.hpp" #include "IpCGPerturbationHandler.hpp" #include "IpOptErrorConvCheck.hpp" #include "IpBacktrackingLineSearch.hpp" #include "IpFilterLSAcceptor.hpp" #include "IpCGPenaltyLSAcceptor.hpp" #include "IpPenaltyLSAcceptor.hpp" #include "IpPDSearchDirCalc.hpp" #include "IpCGSearchDirCalc.hpp" #include "IpMonotoneMuUpdate.hpp" #include "IpAdaptiveMuUpdate.hpp" #include "IpLoqoMuOracle.hpp" #include "IpProbingMuOracle.hpp" #include "IpQualityFunctionMuOracle.hpp" #include "IpRestoMinC_1Nrm.hpp" #include "IpLeastSquareMults.hpp" #include "IpDefaultIterateInitializer.hpp" #include "IpWarmStartIterateInitializer.hpp" #include "IpOrigIterationOutput.hpp" #include "IpLimMemQuasiNewtonUpdater.hpp" #include "IpOrigIpoptNLP.hpp" #include "IpLowRankAugSystemSolver.hpp" #include "IpLowRankSSAugSystemSolver.hpp" #include "IpRestoIterationOutput.hpp" #include "IpRestoFilterConvCheck.hpp" #include "IpRestoIterateInitializer.hpp" #include "IpRestoPenaltyConvCheck.hpp" #include "IpRestoRestoPhase.hpp" #include "IpTSymLinearSolver.hpp" #include "IpUserScaling.hpp" #include "IpGradientScaling.hpp" #include "IpEquilibrationScaling.hpp" #include "IpExactHessianUpdater.hpp" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #include "IpMa27TSolverInterface.hpp" #include "IpMa57TSolverInterface.hpp" #include "IpMa77SolverInterface.hpp" #include "IpMa86SolverInterface.hpp" #include "IpMa97SolverInterface.hpp" #include "IpMc19TSymScalingMethod.hpp" #include "IpPardisoSolverInterface.hpp" #include "IpSlackBasedTSymScalingMethod.hpp" #ifdef HAVE_WSMP # include "IpWsmpSolverInterface.hpp" # include "IpIterativeWsmpSolverInterface.hpp" #endif #ifdef COIN_HAS_MUMPS # include "IpMumpsSolverInterface.hpp" #endif #ifdef HAVE_LINEARSOLVERLOADER # include "HSLLoader.h" # include "PardisoLoader.h" #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif AlgorithmBuilder::AlgorithmBuilder(SmartPtr custom_solver /*=NULL*/) : custom_solver_(custom_solver) {} void AlgorithmBuilder::BuildIpoptObjects(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, const SmartPtr& nlp, SmartPtr& ip_nlp, SmartPtr& ip_data, SmartPtr& ip_cq) { DBG_ASSERT(prefix == ""); SmartPtr nlp_scaling ; std::string nlp_scaling_method; options.GetStringValue("nlp_scaling_method", nlp_scaling_method, ""); if (nlp_scaling_method == "user-scaling") { nlp_scaling = new UserScaling(ConstPtr(nlp)); } else if (nlp_scaling_method == "gradient-based") { nlp_scaling = new GradientScaling(nlp); } else if (nlp_scaling_method == "equilibration-based") { nlp_scaling = new EquilibrationScaling(nlp); } else { nlp_scaling = new NoNLPScalingObject(); } ip_nlp = new OrigIpoptNLP(&jnlst, GetRawPtr(nlp), nlp_scaling); // Create the IpoptData. Check if there is additional data that // is needed std::string lsmethod; SmartPtr add_data; options.GetStringValue("line_search_method", lsmethod, prefix); if (lsmethod=="cg-penalty") { add_data = new CGPenaltyData(); } ip_data = new IpoptData(add_data); // Create the IpoptCalculators. Check if there are additional // calcluated quantities that are needed ip_cq = new IpoptCalculatedQuantities(ip_nlp, ip_data); if (lsmethod=="cg-penalty") { SmartPtr add_cq = new CGPenaltyCq(GetRawPtr(ip_nlp), GetRawPtr(ip_data), GetRawPtr(ip_cq)); ip_cq->SetAddCq(add_cq); } } void AlgorithmBuilder::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("Linear Solver"); roptions->AddStringOption9( "linear_solver", "Linear solver used for step computations.", #ifdef COINHSL_HAS_MA27 "ma27", #else # ifdef COINHSL_HAS_MA57 "ma57", # else # ifdef COINHSL_HAS_MA97 "ma97", #else # ifdef COINHSL_HAS_MA86 "ma86", # else # ifdef HAVE_PARDISO "pardiso", # else # ifdef HAVE_WSMP "wsmp", # else # ifdef COIN_HAS_MUMPS "mumps", # else # ifdef COINHSL_HAS_MA77 "ma77", # else "ma27", # endif # endif # endif # endif # endif # endif # endif #endif "ma27", "use the Harwell routine MA27", "ma57", "use the Harwell routine MA57", "ma77", "use the Harwell routine HSL_MA77", "ma86", "use the Harwell routine HSL_MA86", "ma97", "use the Harwell routine HSL_MA97", "pardiso", "use the Pardiso package", "wsmp", "use WSMP package", "mumps", "use MUMPS package", "custom", "use custom linear solver", "Determines which linear algebra package is to be used for the " "solution of the augmented linear system (for obtaining the search " "directions). " "Note, the code must have been compiled with the linear solver you want " "to choose. Depending on your Ipopt installation, not all options are " "available."); roptions->SetRegisteringCategory("Linear Solver"); roptions->AddStringOption3( "linear_system_scaling", "Method for scaling the linear system.", #ifdef COINHSL_HAS_MC19 "mc19", #else "none", #endif "none", "no scaling will be performed", "mc19", "use the Harwell routine MC19", "slack-based", "use the slack values", "Determines the method used to compute symmetric scaling " "factors for the augmented system (see also the " "\"linear_scaling_on_demand\" option). This scaling is independent " "of the NLP problem scaling. By default, MC19 is only used if MA27 or " "MA57 are selected as linear solvers. This value is only available if " "Ipopt has been compiled with MC19."); roptions->SetRegisteringCategory("NLP Scaling"); roptions->AddStringOption4( "nlp_scaling_method", "Select the technique used for scaling the NLP.", "gradient-based", "none", "no problem scaling will be performed", "user-scaling", "scaling parameters will come from the user", "gradient-based", "scale the problem so the maximum gradient at the starting point is scaling_max_gradient", "equilibration-based", "scale the problem so that first derivatives are of order 1 at random points (only available with MC19)", "Selects the technique used for scaling the problem internally before it is solved." " For user-scaling, the parameters come from the NLP. If you are using " "AMPL, they can be specified through suffixes (\"scaling_factor\")"); roptions->SetRegisteringCategory("Barrier Parameter Update"); roptions->AddStringOption2( "mu_strategy", "Update strategy for barrier parameter.", "monotone", "monotone", "use the monotone (Fiacco-McCormick) strategy", "adaptive", "use the adaptive update strategy", "Determines which barrier parameter update strategy is to be used."); roptions->AddStringOption3( "mu_oracle", "Oracle for a new barrier parameter in the adaptive strategy.", "quality-function", "probing", "Mehrotra's probing heuristic", "loqo", "LOQO's centrality rule", "quality-function", "minimize a quality function", "Determines how a new barrier parameter is computed in each " "\"free-mode\" iteration of the adaptive barrier parameter " "strategy. (Only considered if \"adaptive\" is selected for " "option \"mu_strategy\")."); roptions->AddStringOption4( "fixed_mu_oracle", "Oracle for the barrier parameter when switching to fixed mode.", "average_compl", "probing", "Mehrotra's probing heuristic", "loqo", "LOQO's centrality rule", "quality-function", "minimize a quality function", "average_compl", "base on current average complementarity", "Determines how the first value of the barrier parameter should be " "computed when switching to the \"monotone mode\" in the adaptive " "strategy. (Only considered if \"adaptive\" is selected for option " "\"mu_strategy\".)"); roptions->SetRegisteringCategory("Hessian Approximation"); roptions->AddStringOption2( "limited_memory_aug_solver", "Strategy for solving the augmented system for low-rank Hessian.", "sherman-morrison", "sherman-morrison", "use Sherman-Morrison formula", "extended", "use an extended augmented system", ""); roptions->SetRegisteringCategory("Line Search"); roptions->AddStringOption3( "line_search_method", "Globalization method used in backtracking line search", "filter", "filter", "Filter method", "cg-penalty", "Chen-Goldfarb penalty function", "penalty", "Standard penalty function", "Only the \"filter\" choice is officially supported. But sometimes, " "good results might be obtained with the other choices."); roptions->SetRegisteringCategory("Undocumented"); roptions->AddStringOption2( "wsmp_iterative", "Switches to iterative solver in WSMP.", "no", "no", "use direct solver", "yes", "use iterative solver", "EXPERIMENTAL!"); } SmartPtr AlgorithmBuilder::BuildBasicAlgorithm(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { DBG_START_FUN("AlgorithmBuilder::BuildBasicAlgorithm", dbg_verbosity); bool mehrotra_algorithm; options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm, prefix); // Create the convergence check SmartPtr convCheck = new OptimalityErrorConvergenceCheck(); // Create the solvers that will be used by the main algorithm SmartPtr SolverInterface; std::string linear_solver; options.GetStringValue("linear_solver", linear_solver, prefix); bool use_custom_solver = false; if (linear_solver=="ma27") { #ifndef COINHSL_HAS_MA27 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma27TSolverInterface(); if (!LSL_isMA27available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver MA27 not available.\nTried to obtain MA27 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for MA27 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma27TSolverInterface(); #endif } else if (linear_solver=="ma57") { #ifndef COINHSL_HAS_MA57 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma57TSolverInterface(); if (!LSL_isMA57available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver MA57 not available.\nTried to obtain MA57 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for MA57 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma57TSolverInterface(); #endif } else if (linear_solver=="ma77") { #ifndef COINHSL_HAS_MA77 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma77SolverInterface(); if (!LSL_isMA77available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver HSL_MA77 not available.\nTried to obtain HSL_MA77 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for HSL_MA77 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma77SolverInterface(); #endif } else if (linear_solver=="ma86") { #ifndef COINHSL_HAS_MA86 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma86SolverInterface(); if (!LSL_isMA86available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver HSL_MA86 not available.\nTried to obtain HSL_MA86 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for HSL_MA86 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma86SolverInterface(); #endif } else if (linear_solver=="pardiso") { #ifndef HAVE_PARDISO # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new PardisoSolverInterface(); char buf[256]; int rc = LSL_loadPardisoLib(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver Pardiso not available.\nTried to obtain Pardiso from shared library \""; errmsg += LSL_PardisoLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } # else THROW_EXCEPTION(OPTION_INVALID, "Support for Pardiso has not been compiled into Ipopt."); # endif #else SolverInterface = new PardisoSolverInterface(); #endif } else if (linear_solver=="ma97") { #ifndef COINHSL_HAS_MA97 # ifdef HAVE_LINEARSOLVERLOADER SolverInterface = new Ma97SolverInterface(); if (!LSL_isMA97available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear solver HSL_MA97 not available.\nTried to obtain HSL_MA97 from shared library \""; errmsg += LSL_HSLLibraryName(); errmsg += "\", but the following error occured:\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for HSL_MA97 has not been compiled into Ipopt."); # endif #else SolverInterface = new Ma97SolverInterface(); #endif } else if (linear_solver=="wsmp") { #ifdef HAVE_WSMP bool wsmp_iterative; options.GetBoolValue("wsmp_iterative", wsmp_iterative, prefix); if (wsmp_iterative) { SolverInterface = new IterativeWsmpSolverInterface(); } else { SolverInterface = new WsmpSolverInterface(); } #else THROW_EXCEPTION(OPTION_INVALID, "Selected linear solver WSMP not available."); #endif } else if (linear_solver=="mumps") { #ifdef COIN_HAS_MUMPS SolverInterface = new MumpsSolverInterface(); #else THROW_EXCEPTION(OPTION_INVALID, "Selected linear solver MUMPS not available."); #endif } else if (linear_solver=="custom") { ASSERT_EXCEPTION(IsValid(custom_solver_), OPTION_INVALID, "Selected linear solver CUSTOM not available."); use_custom_solver = true; } SmartPtr AugSolver; if (use_custom_solver) { AugSolver = custom_solver_; } else { SmartPtr ScalingMethod; std::string linear_system_scaling; if (!options.GetStringValue("linear_system_scaling", linear_system_scaling, prefix)) { // By default, don't use mc19 for non-HSL solvers, or HSL_MA97 if (linear_solver!="ma27" && linear_solver!="ma57" && linear_solver!="ma77" && linear_solver!="ma86") { linear_system_scaling="none"; } } if (linear_system_scaling=="mc19") { #ifndef COINHSL_HAS_MC19 # ifdef HAVE_LINEARSOLVERLOADER ScalingMethod = new Mc19TSymScalingMethod(); if (!LSL_isMC19available()) { char buf[256]; int rc = LSL_loadHSL(NULL, buf, 255); if (rc) { std::string errmsg; errmsg = "Selected linear system scaling method MC19 not available.\n"; errmsg += buf; THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str()); } } # else THROW_EXCEPTION(OPTION_INVALID, "Support for MC19 has not been compiled into Ipopt."); # endif #else ScalingMethod = new Mc19TSymScalingMethod(); #endif } else if (linear_system_scaling=="slack-based") { ScalingMethod = new SlackBasedTSymScalingMethod(); } SmartPtr ScaledSolver = new TSymLinearSolver(SolverInterface, ScalingMethod); AugSolver = new StdAugSystemSolver(*ScaledSolver); } Index enum_int; options.GetEnumValue("hessian_approximation", enum_int, prefix); HessianApproximationType hessian_approximation = HessianApproximationType(enum_int); if (hessian_approximation==LIMITED_MEMORY) { std::string lm_aug_solver; options.GetStringValue("limited_memory_aug_solver", lm_aug_solver, prefix); if (lm_aug_solver == "sherman-morrison") { AugSolver = new LowRankAugSystemSolver(*AugSolver); } else if (lm_aug_solver == "extended") { Index lm_history; options.GetIntegerValue("limited_memory_max_history", lm_history, prefix); Index max_rank; std::string lm_type; options.GetStringValue("limited_memory_update_type", lm_type, prefix); if (lm_type == "bfgs") { max_rank = 2*lm_history; } else if (lm_type == "sr1") { max_rank = lm_history; } else { THROW_EXCEPTION(OPTION_INVALID, "Unknown value for option \"limited_memory_update_type\"."); } AugSolver = new LowRankSSAugSystemSolver(*AugSolver, max_rank); } else { THROW_EXCEPTION(OPTION_INVALID, "Unknown value for option \"limited_memory_aug_solver\"."); } } SmartPtr pertHandler; std::string lsmethod; options.GetStringValue("line_search_method", lsmethod, prefix); if (lsmethod=="cg-penalty") { pertHandler = new CGPerturbationHandler(); } else { pertHandler = new PDPerturbationHandler(); } SmartPtr PDSolver = new PDFullSpaceSolver(*AugSolver, *pertHandler); // Create the object for initializing the iterates Initialization // object. We include both the warm start and the defaut // initializer, so that the warm start options can be activated // without having to rebuild the algorithm SmartPtr EqMultCalculator = new LeastSquareMultipliers(*AugSolver); SmartPtr WarmStartInitializer = new WarmStartIterateInitializer(); SmartPtr IterInitializer = new DefaultIterateInitializer(EqMultCalculator, WarmStartInitializer, AugSolver); SmartPtr resto_phase; SmartPtr resto_convCheck; // We only need a restoration phase object if we use the filter // line search if (lsmethod=="filter" || lsmethod=="penalty") { // Solver for the restoration phase SmartPtr resto_AugSolver = new AugRestoSystemSolver(*AugSolver); SmartPtr resto_pertHandler = new PDPerturbationHandler(); SmartPtr resto_PDSolver = new PDFullSpaceSolver(*resto_AugSolver, *resto_pertHandler); // Convergence check in the restoration phase if (lsmethod=="filter") { resto_convCheck = new RestoFilterConvergenceCheck(); } else if (lsmethod=="penalty") { resto_convCheck = new RestoPenaltyConvergenceCheck(); } // Line search method for the restoration phase SmartPtr resto_resto = new RestoRestorationPhase(); SmartPtr resto_LSacceptor; std::string resto_lsacceptor; options.GetStringValue("line_search_method", resto_lsacceptor, "resto."+prefix); if (resto_lsacceptor=="filter") { resto_LSacceptor = new FilterLSAcceptor(GetRawPtr(resto_PDSolver)); } else if (resto_lsacceptor=="cg-penalty") { resto_LSacceptor = new CGPenaltyLSAcceptor(GetRawPtr(resto_PDSolver)); } else if (resto_lsacceptor=="penalty") { resto_LSacceptor = new PenaltyLSAcceptor(GetRawPtr(resto_PDSolver)); } SmartPtr resto_LineSearch = new BacktrackingLineSearch(resto_LSacceptor, GetRawPtr(resto_resto), GetRawPtr(resto_convCheck)); // Create the mu update that will be used by the restoration phase // algorithm SmartPtr resto_MuUpdate; std::string resto_smuupdate; if (!options.GetStringValue("mu_strategy", resto_smuupdate, "resto."+prefix)) { // Change default for quasi-Newton option (then we use adaptive) Index enum_int; if (options.GetEnumValue("hessian_approximation", enum_int, prefix)) { HessianApproximationType hessian_approximation = HessianApproximationType(enum_int); if (hessian_approximation==LIMITED_MEMORY) { resto_smuupdate = "adaptive"; } } } std::string resto_smuoracle; std::string resto_sfixmuoracle; if (resto_smuupdate=="adaptive" ) { options.GetStringValue("mu_oracle", resto_smuoracle, "resto."+prefix); options.GetStringValue("fixed_mu_oracle", resto_sfixmuoracle, "resto."+prefix); } if (resto_smuupdate=="monotone" ) { resto_MuUpdate = new MonotoneMuUpdate(GetRawPtr(resto_LineSearch)); } else if (resto_smuupdate=="adaptive") { SmartPtr resto_MuOracle; if (resto_smuoracle=="loqo") { resto_MuOracle = new LoqoMuOracle(); } else if (resto_smuoracle=="probing") { resto_MuOracle = new ProbingMuOracle(resto_PDSolver); } else if (resto_smuoracle=="quality-function") { resto_MuOracle = new QualityFunctionMuOracle(resto_PDSolver); } SmartPtr resto_FixMuOracle; if (resto_sfixmuoracle=="loqo") { resto_FixMuOracle = new LoqoMuOracle(); } else if (resto_sfixmuoracle=="probing") { resto_FixMuOracle = new ProbingMuOracle(resto_PDSolver); } else if (resto_sfixmuoracle=="quality-function") { resto_FixMuOracle = new QualityFunctionMuOracle(resto_PDSolver); } else { resto_FixMuOracle = NULL; } resto_MuUpdate = new AdaptiveMuUpdate(GetRawPtr(resto_LineSearch), resto_MuOracle, resto_FixMuOracle); } // Initialization of the iterates for the restoration phase SmartPtr resto_EqMultCalculator = new LeastSquareMultipliers(*resto_AugSolver); SmartPtr resto_IterInitializer = new RestoIterateInitializer(resto_EqMultCalculator); // Create the object for the iteration output during restoration SmartPtr resto_OrigIterOutput = NULL; // new OrigIterationOutput(); SmartPtr resto_IterOutput = new RestoIterationOutput(resto_OrigIterOutput); // Get the Hessian updater for the restoration phase SmartPtr resto_HessUpdater; switch (hessian_approximation) { case EXACT: resto_HessUpdater = new ExactHessianUpdater(); break; case LIMITED_MEMORY: // ToDo This needs to be replaced! resto_HessUpdater = new LimMemQuasiNewtonUpdater(true); break; } // Put together the overall restoration phase IP algorithm SmartPtr resto_SearchDirCalc; if (resto_lsacceptor=="cg-penalty") { resto_SearchDirCalc = new CGSearchDirCalculator(GetRawPtr(resto_PDSolver)); } else { resto_SearchDirCalc = new PDSearchDirCalculator(GetRawPtr(resto_PDSolver)); } SmartPtr resto_alg = new IpoptAlgorithm(resto_SearchDirCalc, GetRawPtr(resto_LineSearch), GetRawPtr(resto_MuUpdate), GetRawPtr(resto_convCheck), resto_IterInitializer, resto_IterOutput, resto_HessUpdater, resto_EqMultCalculator); // Set the restoration phase resto_phase = new MinC_1NrmRestorationPhase(*resto_alg, EqMultCalculator); } // Create the line search to be used by the main algorithm SmartPtr LSacceptor; if (lsmethod=="filter") { LSacceptor = new FilterLSAcceptor(GetRawPtr(PDSolver)); } else if (lsmethod=="cg-penalty") { LSacceptor = new CGPenaltyLSAcceptor(GetRawPtr(PDSolver)); } else if (lsmethod=="penalty") { LSacceptor = new PenaltyLSAcceptor(GetRawPtr(PDSolver)); } SmartPtr lineSearch = new BacktrackingLineSearch(LSacceptor, GetRawPtr(resto_phase), convCheck); // The following cross reference is not good: We have to store a // pointer to the lineSearch object in resto_convCheck as a // non-SmartPtr to make sure that things are properly deleted when // the IpoptAlgorithm return by the Builder is destructed. if (IsValid(resto_convCheck)) { resto_convCheck->SetOrigLSAcceptor(*LSacceptor); } // Create the mu update that will be used by the main algorithm SmartPtr MuUpdate; std::string smuupdate; if (!options.GetStringValue("mu_strategy", smuupdate, prefix)) { // Change default for quasi-Newton option (then we use adaptive) Index enum_int; if (options.GetEnumValue("hessian_approximation", enum_int, prefix)) { HessianApproximationType hessian_approximation = HessianApproximationType(enum_int); if (hessian_approximation==LIMITED_MEMORY) { smuupdate = "adaptive"; } } if (mehrotra_algorithm) smuupdate = "adaptive"; } ASSERT_EXCEPTION(!mehrotra_algorithm || smuupdate=="adaptive", OPTION_INVALID, "If mehrotra_algorithm=yes, mu_strategy must be \"adaptive\"."); std::string smuoracle; std::string sfixmuoracle; if (smuupdate=="adaptive" ) { if (!options.GetStringValue("mu_oracle", smuoracle, prefix)) { if (mehrotra_algorithm) smuoracle = "probing"; } options.GetStringValue("fixed_mu_oracle", sfixmuoracle, prefix); ASSERT_EXCEPTION(!mehrotra_algorithm || smuoracle=="probing", OPTION_INVALID, "If mehrotra_algorithm=yes, mu_oracle must be \"probing\"."); } if (smuupdate=="monotone" ) { MuUpdate = new MonotoneMuUpdate(GetRawPtr(lineSearch)); } else if (smuupdate=="adaptive") { SmartPtr muOracle; if (smuoracle=="loqo") { muOracle = new LoqoMuOracle(); } else if (smuoracle=="probing") { muOracle = new ProbingMuOracle(PDSolver); } else if (smuoracle=="quality-function") { muOracle = new QualityFunctionMuOracle(PDSolver); } SmartPtr FixMuOracle; if (sfixmuoracle=="loqo") { FixMuOracle = new LoqoMuOracle(); } else if (sfixmuoracle=="probing") { FixMuOracle = new ProbingMuOracle(PDSolver); } else if (sfixmuoracle=="quality-function") { FixMuOracle = new QualityFunctionMuOracle(PDSolver); } else { FixMuOracle = NULL; } MuUpdate = new AdaptiveMuUpdate(GetRawPtr(lineSearch), muOracle, FixMuOracle); } // Create the object for the iteration output SmartPtr IterOutput = new OrigIterationOutput(); // Get the Hessian updater for the main algorithm SmartPtr HessUpdater; switch (hessian_approximation) { case EXACT: HessUpdater = new ExactHessianUpdater(); break; case LIMITED_MEMORY: // ToDo This needs to be replaced! HessUpdater = new LimMemQuasiNewtonUpdater(false); break; } // Create the main algorithm SmartPtr SearchDirCalc; if (lsmethod=="cg-penalty") { SearchDirCalc = new CGSearchDirCalculator(GetRawPtr(PDSolver)); } else { SearchDirCalc = new PDSearchDirCalculator(GetRawPtr(PDSolver)); } SmartPtr alg = new IpoptAlgorithm(SearchDirCalc, GetRawPtr(lineSearch), MuUpdate, convCheck, IterInitializer, IterOutput, HessUpdater, EqMultCalculator); return alg; } } // namespace Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIterateInitializer.hpp0000644000076600007660000000552411504216567023016 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-24 #ifndef __IPRESTOITERATEINITIALIZER_HPP__ #define __IPRESTOITERATEINITIALIZER_HPP__ #include "IpIterateInitializer.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** Class implementing the default initialization procedure (based * on user options) for the iterates. It is used at the very * beginning of the optimization for determine the starting point * for all variables. */ class RestoIterateInitializer: public IterateInitializer { public: /**@name Constructors/Destructors */ //@{ /** Constructor. If eq_mult_calculator is not NULL, it will be * used to compute the initial values for equality constraint * multipliers. */ RestoIterateInitializer (const SmartPtr& eq_mult_calculator); /** Default destructor */ virtual ~RestoIterateInitializer() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Compute the initial iterates and set the into the curr field * of the ip_data object. */ virtual bool SetInitialIterates(); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ RestoIterateInitializer(); /** Copy Constructor */ RestoIterateInitializer(const RestoIterateInitializer&); /** Overloaded Equals Operator */ void operator=(const RestoIterateInitializer&); //@} /**@name Parameters for bumping x0 */ //@{ /** If max-norm of the initial equality constraint multiplier * estimate is larger than this, the initial y_* variables are * set to zero. */ Number constr_mult_init_max_; //@} /** object to be used for the initialization of the equality * constraint multipliers. */ SmartPtr resto_eq_mult_calculator_; /** @name Auxilliary functions */ //@{ /** Method for solving the quadratic vector equation v^2 + 2a*v - b = 0 */ void solve_quadratic(const Vector& a, const Vector& b, Vector& v); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpGenAugSystemSolver.cpp0000644000076600007660000003052412141450650021726 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGenAugSystemSolver.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2007-03-01 #include "IpGenAugSystemSolver.hpp" #include "IpTripletHelper.hpp" #include "IpDenseVector.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif GenAugSystemSolver::GenAugSystemSolver(GenKKTSolverInterface& SolverInterface) : AugSystemSolver(), solver_interface_(&SolverInterface), delta_x_(0.), delta_s_(0.), delta_c_(0.), delta_d_(0.), dx_vals_copy_(NULL), ds_vals_copy_(NULL), dc_vals_copy_(NULL), dd_vals_copy_(NULL) { DBG_START_METH("GenAugSystemSolver::GenAugSystemSolver()",dbg_verbosity); DBG_ASSERT(IsValid(solver_interface_)); } GenAugSystemSolver::~GenAugSystemSolver() { DBG_START_METH("GenAugSystemSolver::~GenAugSystemSolver()",dbg_verbosity); delete [] dx_vals_copy_; delete [] ds_vals_copy_; delete [] dc_vals_copy_; delete [] dd_vals_copy_; } bool GenAugSystemSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { // This option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); if (!warm_start_same_structure_) { delete [] dx_vals_copy_; delete [] ds_vals_copy_; delete [] dc_vals_copy_; delete [] dd_vals_copy_; } return solver_interface_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } ESymSolverStatus GenAugSystemSolver::MultiSolve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, std::vector >& rhs_xV, std::vector >& rhs_sV, std::vector >& rhs_cV, std::vector >& rhs_dV, std::vector >& sol_xV, std::vector >& sol_sV, std::vector >& sol_cV, std::vector >& sol_dV, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("GenAugSystemSolver::MultiSolve",dbg_verbosity); DBG_ASSERT(J_c && J_d && "Currently, you MUST specify J_c and J_d in the augmented system"); DBG_ASSERT(W_factor == 0.0 || W_factor == 1.0); const Index nrhs = (Index)rhs_xV.size(); DBG_ASSERT(nrhs>0); DBG_ASSERT(nrhs==(Index)rhs_sV.size()); DBG_ASSERT(nrhs==(Index)rhs_cV.size()); DBG_ASSERT(nrhs==(Index)rhs_dV.size()); DBG_ASSERT(nrhs==(Index)sol_xV.size()); DBG_ASSERT(nrhs==(Index)sol_sV.size()); DBG_ASSERT(nrhs==(Index)sol_cV.size()); DBG_ASSERT(nrhs==(Index)sol_dV.size()); // Check if the input data has changed: bool new_matrix = AugmentedSystemChanged(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d); // Get the individual arrays to be given to the // GenKKTSolverInterface const Index n_x = rhs_xV[0]->Dim(); const Index n_c = rhs_cV[0]->Dim(); const Index n_d = rhs_dV[0]->Dim(); const Number* dx_vals=NULL; if (D_x) { const DenseVector* dD_x = dynamic_cast (D_x); if (dD_x && !dD_x->IsHomogeneous()) { dx_vals = dD_x->Values(); } else if (D_x->GetTag() != d_x_tag_) { delete [] dx_vals_copy_; dx_vals_copy_ = new Number[n_x]; TripletHelper::FillValuesFromVector(n_x, *D_x, dx_vals_copy_); dx_vals = dx_vals_copy_; } } const Number* ds_vals=NULL; if (D_s) { const DenseVector* dD_s = dynamic_cast (D_s); if (dD_s && !dD_s->IsHomogeneous()) { ds_vals = dD_s->Values(); } else if (D_s->GetTag() != d_s_tag_) { delete [] ds_vals_copy_; ds_vals_copy_ = new Number[n_d]; TripletHelper::FillValuesFromVector(n_d, *D_s, ds_vals_copy_); ds_vals = ds_vals_copy_; } } const Number* dc_vals=NULL; if (D_c) { const DenseVector* dD_c = dynamic_cast (D_c); if (dD_c && !dD_c->IsHomogeneous()) { dc_vals = dD_c->Values(); } else if (D_c->GetTag() != d_c_tag_) { delete [] dc_vals_copy_; dc_vals_copy_ = new Number[n_c]; TripletHelper::FillValuesFromVector(n_c, *D_c, dc_vals_copy_); dc_vals = dc_vals_copy_; } } const Number* dd_vals=NULL; if (D_d) { const DenseVector* dD_d = dynamic_cast (D_d); if (dD_d && !dD_d->IsHomogeneous()) { dd_vals = dD_d->Values(); } else if (D_d->GetTag() != d_d_tag_) { delete [] dd_vals_copy_; dd_vals_copy_ = new Number[n_d]; TripletHelper::FillValuesFromVector(n_d, *D_d, dd_vals_copy_); dd_vals = dd_vals_copy_; } } const Index dim = n_x+n_d+n_c+n_d; Number* rhssol = new Number[nrhs*dim]; for (Index irhs=0; irhsMultiSolve(new_matrix, n_x, n_c, n_d, Wgive, J_c, J_d, dx_vals, ds_vals, dc_vals, dd_vals, delta_x, delta_s, delta_c, delta_d, nrhs, rhssol, check_NegEVals, numberOfNegEVals); if (retval==SYMSOLVER_CALL_AGAIN) { DBG_PRINT((1, "Solver interface asks to be called again. Don't really se why...?\n")); } else { done = true; } } // Copy the values back into the vectors if (retval==SYMSOLVER_SUCCESS) { for (Index irhs=0; irhsGetTag(); } else { w_tag_ = TaggedObject::Tag(); } w_factor_ = W_factor; if (D_x) { d_x_tag_ = D_x->GetTag(); } else { d_x_tag_ = TaggedObject::Tag(); } delta_x_ = delta_x; if (D_s) { d_s_tag_ = D_s->GetTag(); } else { d_s_tag_ = TaggedObject::Tag(); } delta_s_ = delta_s; if (D_c) { d_c_tag_ = D_c->GetTag(); } else { d_c_tag_ = TaggedObject::Tag(); } delta_c_ = delta_c; if (D_d) { d_d_tag_ = D_d->GetTag(); } else { d_d_tag_ = TaggedObject::Tag(); } delta_d_ = delta_d; j_c_tag_ = J_c.GetTag(); j_d_tag_ = J_d.GetTag(); } bool GenAugSystemSolver::AugmentedSystemChanged( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d) { DBG_START_METH("GenAugSystemSolver::AugmentedSystemRequiresChange",dbg_verbosity); #if COIN_IPOPT_VERBOSITY > 0 bool Wtest = (W && W->GetTag() != w_tag_); bool iWtest = (!W && w_tag_ != TaggedObject::Tag()); bool wfactor_test = (W_factor != w_factor_); bool D_xtest = (D_x && D_x->GetTag() != d_x_tag_); bool iD_xtest = (!D_x && d_x_tag_ != TaggedObject::Tag()); bool delta_xtest = (delta_x != delta_x_); bool D_stest = (D_s && D_s->GetTag() != d_s_tag_); bool iD_stest = (!D_s && d_s_tag_ != TaggedObject::Tag()); bool delta_stest = (delta_s != delta_s_); bool J_ctest = (J_c.GetTag() != j_c_tag_); bool D_ctest = (D_c && D_c->GetTag() != d_c_tag_); bool iD_ctest = (!D_c && d_c_tag_ != TaggedObject::Tag()); bool delta_ctest = (delta_c != delta_c_); bool J_dtest = (J_d.GetTag() != j_d_tag_); bool D_dtest = (D_d && D_d->GetTag() != d_d_tag_); bool iD_dtest = (!D_d && d_d_tag_ != TaggedObject::Tag()); bool delta_dtest = (delta_d != delta_d_); #endif DBG_PRINT((2,"Wtest = %d\n", Wtest)); DBG_PRINT((2,"iWtest = %d\n", iWtest)); DBG_PRINT((2,"wfactor_test = %d\n", wfactor_test)); DBG_PRINT((2,"D_xtest = %d\n", D_xtest)); DBG_PRINT((2,"iD_xtest = %d\n", iD_xtest)); DBG_PRINT((2,"delta_xtest = %d\n", delta_xtest)); DBG_PRINT((2,"D_stest = %d\n", D_stest)); DBG_PRINT((2,"iD_stest = %d\n", iD_stest)); DBG_PRINT((2,"delta_stest = %d\n", delta_stest)); DBG_PRINT((2,"J_ctest = %d\n", J_ctest)); DBG_PRINT((2,"D_ctest = %d\n", D_ctest)); DBG_PRINT((2,"iD_ctest = %d\n", iD_ctest)); DBG_PRINT((2,"delta_ctest = %d\n", delta_ctest)); DBG_PRINT((2,"J_dtest = %d\n", J_dtest)); DBG_PRINT((2,"D_dtest = %d\n", D_dtest)); DBG_PRINT((2,"iD_dtest = %d\n", iD_dtest)); DBG_PRINT((2,"delta_dtest = %d\n", delta_dtest)); if ( (W && W->GetTag() != w_tag_) || (!W && w_tag_ != TaggedObject::Tag()) || (W_factor != w_factor_) || (D_x && D_x->GetTag() != d_x_tag_) || (!D_x && d_x_tag_ != TaggedObject::Tag()) || (delta_x != delta_x_) || (D_s && D_s->GetTag() != d_s_tag_) || (!D_s && d_s_tag_ != TaggedObject::Tag()) || (delta_s != delta_s_) || (J_c.GetTag() != j_c_tag_) || (D_c && D_c->GetTag() != d_c_tag_) || (!D_c && d_c_tag_ != TaggedObject::Tag()) || (delta_c != delta_c_) || (J_d.GetTag() != j_d_tag_) || (D_d && D_d->GetTag() != d_d_tag_) || (!D_d && d_d_tag_ != TaggedObject::Tag()) || (delta_d != delta_d_) ) { return true; } return false; } Index GenAugSystemSolver::NumberOfNegEVals() const { return solver_interface_->NumberOfNegEVals(); } bool GenAugSystemSolver::ProvidesInertia() const { return solver_interface_->ProvidesInertia(); } bool GenAugSystemSolver::IncreaseQuality() { return solver_interface_->IncreaseQuality(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDSystemSolver.hpp0000644000076600007660000001166411504216567021105 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPPDSYSTEMSOLVER_HPP__ #define __IPPDSYSTEMSOLVER_HPP__ #include "IpUtils.hpp" #include "IpSymMatrix.hpp" #include "IpAlgStrategy.hpp" #include "IpIteratesVector.hpp" namespace Ipopt { /** Pure Primal Dual System Solver Base Class. * This is the base class for all derived Primal-Dual System Solver Types. * * Here, we understand the primal-dual system as the following linear * system: * * \f$ * \left[\begin{array}{cccccccc} * W & 0 & J_c^T & J_d^T & -P^x_L & P^x_U & 0 & 0 \\ * 0 & 0 & 0 & -I & 0 & 0 & -P_L^d & P_U^d \\ * J_c & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ * J_d & -I & 0 & 0 & 0 & 0 & 0 & 0\\ * Z_L(P_L^x)^T & 0 & 0 & 0 & Sl^x_L & 0 & 0 & 0\\ * -Z_U(P_U^x)^T & 0 & 0 & 0 & 0 & Sl^x_U & 0 & 0\\ * 0 & V_L(P_L^d)^T & 0 & 0 & 0 & 0 & Sl^s_L & 0 \\ * 0 & -V_U(P_U^d)^T & 0 & 0 & 0 & 0 & 0 & Sl^s_U \\ * \end{array}\right] * \left(\begin{array}{c} * sol_x\\ sol_s\\ sol_c\\ sol_d\\ sol^z_L\\ sol^z_U\\ sol^v_L\\ * sol^v_U * \end{array}\right) = * \left(\begin{array}{c} * rhs_x\\ rhs_s\\ rhs_c\\ rhs_d\\ rhs^z_L\\ rhs^z_U\\ rhs^v_L\\ * rhs^v_U * \end{array}\right) * \f$ * * Here, \f$Sl^x_L = (P^x_L)^T x - x_L\f$, * \f$Sl^x_U = x_U - (P^x_U)^T x\f$, \f$Sl^d_L = (P^d_L)^T d(x) - d_L\f$, * \f$Sl^d_U = d_U - (P^d_U)^T d(x)\f$. The results returned to the * caller is \f$res = \alpha * sol + \beta * res\f$. * * The solution of this linear system (in order to compute the search * direction of the algorthim) usually requires a considerable amount of * computation time. Therefore, it is important to tailor the solution * of this system to the characteristics of the problem. The purpose of * this base class is to provide a generic interface to the algorithm * that it can use whenever it requires a solution of the above system. * Particular implementation can then be written to provide the methods * defined here. * * It is implicitly assumed here, that the upper left 2 by 2 block * is possibly modified (implicitly or explicitly) so that its * projection onto the null space of the overall constraint * Jacobian \f$\left[\begin{array}{cc}J_c & 0\\J_d & * -I\end{array}\right]\f$ is positive definite. This is necessary * to guarantee certain descent properties of the resulting search * direction. For example, in the full space implementation, a * multiple of the identity might be added to the upper left 2 by 2 * block. * * Note that the Solve method might be called several times for different * right hand sides, but with identical data. Therefore, if possible, * an implemetation of PDSystem should check whether the incoming data has * changed, and not redo factorization etc. unless necessary. */ class PDSystemSolver: public AlgorithmStrategyObject { public: /** @name /Destructor */ //@{ /** Default Constructor */ PDSystemSolver() {} /** Default destructor */ virtual ~PDSystemSolver() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Solve the primal dual system, given one right hand side. If * the flag allow_inexact is set to true, it is not necessary to * solve the system to best accuracy; for example, we don't want * iterative refinement during the computation of the second * order correction. On the other hand, if improve_solution is * true, the solution given in res should be improved (here beta * has to be zero, and res is assume to be the solution for the * system using rhs, without the factor alpha...). THe return * value is false, if a solution could not be computed (for * example, when the Hessian regularization parameter becomes too * large.) */ virtual bool Solve(Number alpha, Number beta, const IteratesVector& rhs, IteratesVector& res, bool allow_inexact=false, bool improve_solution=false) =0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Overloaded Equals Operator */ PDSystemSolver& operator=(const PDSystemSolver&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptAlg.cpp0000644000076600007660000011226712132236022017677 0ustar coincoin// Copyright (C) 2004, 2012 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptAlg.cpp 2199 2013-04-13 11:05:54Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpoptConfig.h" #include "IpIpoptAlg.hpp" #include "IpJournalist.hpp" #include "IpRestoPhase.hpp" #include "IpOrigIpoptNLP.hpp" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif IpoptAlgorithm::IpoptAlgorithm(const SmartPtr& search_dir_calculator, const SmartPtr& line_search, const SmartPtr& mu_update, const SmartPtr& conv_check, const SmartPtr& iterate_initializer, const SmartPtr& iter_output, const SmartPtr& hessian_updater, const SmartPtr& eq_multiplier_calculator /* = NULL*/) : search_dir_calculator_(search_dir_calculator), line_search_(line_search), mu_update_(mu_update), conv_check_(conv_check), iterate_initializer_(iterate_initializer), iter_output_(iter_output), hessian_updater_(hessian_updater), eq_multiplier_calculator_(eq_multiplier_calculator) { DBG_START_METH("IpoptAlgorithm::IpoptAlgorithm", dbg_verbosity); DBG_ASSERT(IsValid(search_dir_calculator_)); DBG_ASSERT(IsValid(line_search_)); DBG_ASSERT(IsValid(mu_update_)); DBG_ASSERT(IsValid(conv_check_)); DBG_ASSERT(IsValid(iterate_initializer_)); DBG_ASSERT(IsValid(iter_output_)); DBG_ASSERT(IsValid(hessian_updater_)); } IpoptAlgorithm::~IpoptAlgorithm() { DBG_START_METH("IpoptAlgorithm::~IpoptAlgorithm()", dbg_verbosity); } void IpoptAlgorithm::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("Line Search"); roptions->AddLowerBoundedNumberOption( "kappa_sigma", "Factor limiting the deviation of dual variables from primal estimates.", 0, true, 1e10, "If the dual variables deviate from their primal estimates, a correction " "is performed. (See Eqn. (16) in the implementation paper.) " "Setting the value to less than 1 disables the correction."); roptions->AddStringOption2( "recalc_y", "Tells the algorithm to recalculate the equality and inequality multipliers as least square estimates.", "no", "no", "use the Newton step to update the multipliers", "yes", "use least-square multiplier estimates", "This asks the algorithm to recompute the multipliers, whenever the " "current infeasibility is less than recalc_y_feas_tol. " "Choosing yes might be helpful in the quasi-Newton option. However, " "each recalculation requires an extra factorization of the linear " "system. If a limited memory quasi-Newton option is chosen, this is " "used by default."); roptions->AddLowerBoundedNumberOption( "recalc_y_feas_tol", "Feasibility threshold for recomputation of multipliers.", 0, true, 1e-6, "If recalc_y is chosen and the current infeasibility is less than this " "value, then the multipliers are recomputed."); roptions->SetRegisteringCategory("Step Calculation"); roptions->AddStringOption2( "mehrotra_algorithm", "Indicates if we want to do Mehrotra's algorithm.", "no", "no", "Do the usual Ipopt algorithm.", "yes", "Do Mehrotra's predictor-corrector algorithm.", "If set to yes, Ipopt runs as Mehrotra's predictor-corrector algorithm. " "This works usually very well for LPs and convex QPs. This " "automatically disables the line search, and chooses the (unglobalized) " "adaptive mu strategy with the \"probing\" oracle, and uses " "\"corrector_type=affine\" without any safeguards; you should not set " "any of those options explicitly in addition. Also, unless " "otherwise specified, the values of \"bound_push\", \"bound_frac\", and " "\"bound_mult_init_val\" are set more aggressive, and sets " "\"alpha_for_y=bound_mult\"."); roptions->SetRegisteringCategory(""); roptions->AddStringOption2( "sb", "", "no", "no", "", "yes", ""); } static bool copyright_message_printed = false; bool IpoptAlgorithm::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_START_METH("IpoptAlgorithm::InitializeImpl", dbg_verbosity); SmartPtr my_options; options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm_, prefix); if (mehrotra_algorithm_) { // Verify a few options and set a few new ones. But we better // make a copy of the incoming options. SmartPtr new_options = new OptionsList(options); // Check required options are set correctly std::string string_option; if (new_options->GetStringValue("adaptive_mu_globalization", string_option, prefix)) { ASSERT_EXCEPTION(string_option=="never-monotone-mode", OPTION_INVALID, "If mehrotra_algorithm=yes, adaptive_mu_globalization must be \"never-monotone-mode\"."); } else { new_options->SetStringValue("adaptive_mu_globalization", "never-monotone-mode", false); } // The corrector step is already taken case of in // ComputeSearchDirection below if (new_options->GetStringValue("corrector_type", string_option, prefix)) { ASSERT_EXCEPTION(string_option=="none", OPTION_INVALID, "If mehrotra_algorithm=yes, corrector_type must be \"none\"."); } else { new_options->SetStringValue("corrector_type", "none", false); } if (new_options->GetStringValue("accept_every_trial_step", string_option, prefix)) { ASSERT_EXCEPTION(string_option=="yes", OPTION_INVALID, "If mehrotra_algorithm=yes, accept_every_trial_step must be \"yes\"."); } else { new_options->SetStringValue("accept_every_trial_step", "yes", false); } // Change some default options new_options->SetNumericValueIfUnset("bound_push", 10.); new_options->SetNumericValueIfUnset("bound_frac", 0.2); new_options->SetNumericValueIfUnset("bound_mult_init_val", 10.); new_options->SetNumericValueIfUnset("constr_mult_init_max", 0.); new_options->SetStringValueIfUnset("alpha_for_y", "bound_mult"); new_options->SetStringValueIfUnset("least_square_init_primal", "yes"); my_options = ConstPtr(new_options); } else { my_options = &options; } bool bval; options.GetBoolValue("sb", bval, prefix); if (bval) { copyright_message_printed = true; } // Store which linear solver is chosen for later output options.GetStringValue("linear_solver", linear_solver_, prefix); // Read the IpoptAlgorithm options // Initialize the Data object bool retvalue = IpData().Initialize(Jnlst(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the IpIpoptData object failed to initialize."); // Initialize the CQ object retvalue = IpCq().Initialize(Jnlst(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the IpIpoptCalculatedQuantities object failed to initialize."); // Initialize the NLP object retvalue = IpNLP().Initialize(Jnlst(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the IpIpoptNLP object failed to initialize."); // Initialize all the strategies retvalue = iterate_initializer_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the iterate_initializer strategy failed to initialize."); retvalue = mu_update_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the mu_update strategy failed to initialize."); retvalue = search_dir_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options,prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the search_direction_calculator strategy failed to initialize."); retvalue = line_search_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options,prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the line_search strategy failed to initialize."); retvalue = conv_check_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the conv_check strategy failed to initialize."); retvalue = iter_output_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the iter_output strategy failed to initialize."); retvalue = hessian_updater_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), *my_options, prefix); ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION, "the hessian_updater strategy failed to initialize."); my_options->GetNumericValue("kappa_sigma", kappa_sigma_, prefix); if (!my_options->GetBoolValue("recalc_y", recalc_y_, prefix)) { Index enum_int; if (my_options->GetEnumValue("hessian_approximation", enum_int, prefix)) { HessianApproximationType hessian_approximation = HessianApproximationType(enum_int); if (hessian_approximation==LIMITED_MEMORY) { recalc_y_ = true; } } } if (recalc_y_) { my_options->GetNumericValue("recalc_y_feas_tol", recalc_y_feas_tol_, prefix); } if (prefix=="resto.") { skip_print_problem_stats_ = true; } else { skip_print_problem_stats_ = false; } return true; } SolverReturn IpoptAlgorithm::Optimize(bool isResto /*= false */) { DBG_START_METH("IpoptAlgorithm::Optimize", dbg_verbosity); // Start measuring CPU time IpData().TimingStats().OverallAlgorithm().Start(); if (!copyright_message_printed) { print_copyright_message(Jnlst()); } if (!isResto) { Jnlst().Printf(J_ITERSUMMARY, J_MAIN, "This is Ipopt version "IPOPT_VERSION", running with linear solver %s.\n\n", linear_solver_.c_str()); } SolverReturn retval = UNASSIGNED; try { IpData().TimingStats().InitializeIterates().Start(); // Initialize the iterates InitializeIterates(); IpData().TimingStats().InitializeIterates().End(); if (!skip_print_problem_stats_) { IpData().TimingStats().PrintProblemStatistics().Start(); PrintProblemStatistics(); IpData().TimingStats().PrintProblemStatistics().End(); } IpData().TimingStats().CheckConvergence().Start(); ConvergenceCheck::ConvergenceStatus conv_status = conv_check_->CheckConvergence(); IpData().TimingStats().CheckConvergence().End(); // main loop while (conv_status == ConvergenceCheck::CONTINUE) { // Set the Hessian Matrix IpData().TimingStats().UpdateHessian().Start(); UpdateHessian(); IpData().TimingStats().UpdateHessian().End(); // do all the output for this iteration IpData().TimingStats().OutputIteration().Start(); OutputIteration(); IpData().ResetInfo(); IpData().TimingStats().OutputIteration().End(); // initialize the flag that is set to true if the algorithm // has to continue with an emergency fallback mode. For // example, when no search direction can be computed, continue // with the restoration phase bool emergency_mode = false; // update the barrier parameter IpData().TimingStats().UpdateBarrierParameter().Start(); emergency_mode = !UpdateBarrierParameter(); IpData().TimingStats().UpdateBarrierParameter().End(); if (!emergency_mode) { // solve the primal-dual system to get the full step IpData().TimingStats().ComputeSearchDirection().Start(); emergency_mode = !ComputeSearchDirection(); IpData().TimingStats().ComputeSearchDirection().End(); } // If we are in the emergency mode, ask to line search object // to go to the fallback options. If that isn't possible, // issue error message if (emergency_mode) { bool retval = line_search_->ActivateFallbackMechanism(); if (retval) { Jnlst().Printf(J_WARNING, J_MAIN, "WARNING: Problem in step computation; switching to emergency mode.\n"); } else { Jnlst().Printf(J_ERROR, J_MAIN, "ERROR: Problem in step computation, but emergency mode cannot be activated.\n"); THROW_EXCEPTION(STEP_COMPUTATION_FAILED, "Step computation failed."); } } // Compute the new iterate IpData().TimingStats().ComputeAcceptableTrialPoint().Start(); ComputeAcceptableTrialPoint(); IpData().TimingStats().ComputeAcceptableTrialPoint().End(); // Accept the new iterate IpData().TimingStats().AcceptTrialPoint().Start(); AcceptTrialPoint(); IpData().TimingStats().AcceptTrialPoint().End(); IpData().Set_iter_count(IpData().iter_count()+1); IpData().TimingStats().CheckConvergence().Start(); conv_status = conv_check_->CheckConvergence(); IpData().TimingStats().CheckConvergence().End(); } IpData().TimingStats().OutputIteration().Start(); OutputIteration(); IpData().TimingStats().OutputIteration().End(); if (conv_status == ConvergenceCheck::CONVERGED || conv_status == ConvergenceCheck::CONVERGED_TO_ACCEPTABLE_POINT) { if (IpCq().IsSquareProblem()) { // make the sure multipliers are computed properly ComputeFeasibilityMultipliers(); } } switch (conv_status) { case ConvergenceCheck::CONVERGED: retval = SUCCESS; break; case ConvergenceCheck::CONVERGED_TO_ACCEPTABLE_POINT: retval = STOP_AT_ACCEPTABLE_POINT; break; case ConvergenceCheck::MAXITER_EXCEEDED: retval = MAXITER_EXCEEDED; break; case ConvergenceCheck::CPUTIME_EXCEEDED: retval = CPUTIME_EXCEEDED; break; case ConvergenceCheck::DIVERGING: retval = DIVERGING_ITERATES; break; case ConvergenceCheck::USER_STOP: retval = USER_REQUESTED_STOP; break; default: retval = INTERNAL_ERROR; break; } } catch (TINY_STEP_DETECTED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().UpdateBarrierParameter().EndIfStarted(); retval = STOP_AT_TINY_STEP; } catch (ACCEPTABLE_POINT_REACHED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); if (IpCq().IsSquareProblem()) { // make the sure multipliers are computed properly ComputeFeasibilityMultipliers(); } retval = STOP_AT_ACCEPTABLE_POINT; } catch (LOCALLY_INFEASIBLE& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); IpData().TimingStats().CheckConvergence().EndIfStarted(); retval = LOCAL_INFEASIBILITY; } catch (RESTORATION_CONVERGED_TO_FEASIBLE_POINT& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = RESTORATION_FAILURE; } catch (RESTORATION_FAILED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = RESTORATION_FAILURE; } catch (RESTORATION_MAXITER_EXCEEDED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = MAXITER_EXCEEDED; } catch (RESTORATION_CPUTIME_EXCEEDED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = CPUTIME_EXCEEDED; } catch (RESTORATION_USER_STOP& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = USER_REQUESTED_STOP; } catch (STEP_COMPUTATION_FAILED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = ERROR_IN_STEP_COMPUTATION; } catch (IpoptNLP::Eval_Error& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = INVALID_NUMBER_DETECTED; } catch (FEASIBILITY_PROBLEM_SOLVED& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); if (IpCq().IsSquareProblem()) { // make the sure multipliers are computed properly ComputeFeasibilityMultipliers(); } retval = FEASIBLE_POINT_FOUND; } catch (TOO_FEW_DOF& exc) { exc.ReportException(Jnlst(), J_MOREDETAILED); IpData().TimingStats().ComputeAcceptableTrialPoint().EndIfStarted(); retval = TOO_FEW_DEGREES_OF_FREEDOM; } catch (INTERNAL_ABORT& exc) { exc.ReportException(Jnlst()); retval = INTERNAL_ERROR; } DBG_ASSERT(retval != UNASSIGNED && "Unknown return code in the algorithm"); IpData().TimingStats().OverallAlgorithm().End(); return retval; } void IpoptAlgorithm::UpdateHessian() { Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Update HessianMatrix for Iteration %d:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); hessian_updater_->UpdateHessian(); } bool IpoptAlgorithm::UpdateBarrierParameter() { Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Update Barrier Parameter for Iteration %d:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); bool retval = mu_update_->UpdateBarrierParameter(); if (retval) { Jnlst().Printf(J_DETAILED, J_MAIN, "Barrier Parameter: %e\n", IpData().curr_mu()); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "Barrier parameter could not be updated!\n"); } return retval; } bool IpoptAlgorithm::ComputeSearchDirection() { DBG_START_METH("IpoptAlgorithm::ComputeSearchDirection", dbg_verbosity); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Solving the Primal Dual System for Iteration %d:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); bool retval = search_dir_calculator_->ComputeSearchDirection(); if (retval) { Jnlst().Printf(J_MOREVECTOR, J_MAIN, "*** Step Calculated for Iteration: %d\n", IpData().iter_count()); IpData().delta()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "delta"); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "*** Step could not be computed in iteration %d!\n", IpData().iter_count()); } return retval; } void IpoptAlgorithm::ComputeAcceptableTrialPoint() { Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Finding Acceptable Trial Point for Iteration %d:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); line_search_->FindAcceptableTrialPoint(); } void IpoptAlgorithm::OutputIteration() { iter_output_->WriteOutput(); } void IpoptAlgorithm::InitializeIterates() { DBG_START_METH("IpoptAlgorithm::InitializeIterates", dbg_verbosity); bool retval = iterate_initializer_->SetInitialIterates(); ASSERT_EXCEPTION(retval, FAILED_INITIALIZATION, "Error while obtaining initial iterates."); } void IpoptAlgorithm::AcceptTrialPoint() { DBG_START_METH("IpoptAlgorithm::AcceptTrialPoint", dbg_verbosity); // If the line search didn't determine a new acceptable trial // point, do not accept a new iterate if (line_search_->CheckSkippedLineSearch()) { Jnlst().Printf(J_SUMMARY, J_MAIN, "Line search didn't find acceptable trial point.\n"); return; } // Adjust the bounds if necessary Index adjusted_slacks = IpCq().AdjustedTrialSlacks(); DBG_PRINT((1, "adjusted_slacks = %d\n", adjusted_slacks)); if (adjusted_slacks>0) { IpCq().ResetAdjustedTrialSlacks(); if (adjusted_slacks==1) { Jnlst().Printf(J_WARNING, J_MAIN, "In iteration %d, %d Slack too small, adjusting variable bound\n", IpData().iter_count(), adjusted_slacks); } else { Jnlst().Printf(J_WARNING, J_MAIN, "In iteration %d, %d Slacks too small, adjusting variable bounds\n", IpData().iter_count(), adjusted_slacks); } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpNLP().x_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "old_x_L"); IpNLP().x_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "old_x_U"); IpNLP().d_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "old_d_L"); IpNLP().d_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "old_d_U"); } SmartPtr new_x_l = IpNLP().x_L()->MakeNew(); IpNLP().Px_L()->TransMultVector(1.0, *IpData().trial()->x(), 0.0, *new_x_l); new_x_l->Axpy(-1.0, *IpCq().trial_slack_x_L()); SmartPtr new_x_u = IpNLP().x_U()->MakeNew(); IpNLP().Px_U()->TransMultVector(1.0, *IpData().trial()->x(), 0.0, *new_x_u); new_x_u->Axpy(1.0, *IpCq().trial_slack_x_U()); SmartPtr new_d_l = IpNLP().d_L()->MakeNew(); IpNLP().Pd_L()->TransMultVector(1.0, *IpData().trial()->s(), 0.0, *new_d_l); new_d_l->Axpy(-1.0, *IpCq().trial_slack_s_L()); SmartPtr new_d_u = IpNLP().d_U()->MakeNew(); IpNLP().Pd_U()->TransMultVector(1.0, *IpData().trial()->s(), 0.0, *new_d_u); new_d_u->Axpy(1.0, *IpCq().trial_slack_s_U()); IpNLP().AdjustVariableBounds(*new_x_l, *new_x_u, *new_d_l, *new_d_u); if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpNLP().x_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "new_x_L"); IpNLP().x_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "new_x_U"); IpNLP().d_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "new_d_L"); IpNLP().d_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "new_d_U"); } } // Make sure that bound multipliers are not too far from \mu * S^{-1} // (see kappa_sigma in paper) bool corrected = false; Number max_correction; SmartPtr new_z_L; max_correction = correct_bound_multiplier( *IpData().trial()->z_L(), *IpCq().trial_slack_x_L(), *IpCq().trial_compl_x_L(), new_z_L); if (max_correction>0.) { Jnlst().Printf(J_DETAILED, J_MAIN, "Some value in z_L becomes too large - maximal correction = %8.2e\n", max_correction); corrected = true; } SmartPtr new_z_U; max_correction = correct_bound_multiplier( *IpData().trial()->z_U(), *IpCq().trial_slack_x_U(), *IpCq().trial_compl_x_U(), new_z_U); if (max_correction>0.) { Jnlst().Printf(J_DETAILED, J_MAIN, "Some value in z_U becomes too large - maximal correction = %8.2e\n", max_correction); corrected = true; } SmartPtr new_v_L; max_correction = correct_bound_multiplier( *IpData().trial()->v_L(), *IpCq().trial_slack_s_L(), *IpCq().trial_compl_s_L(), new_v_L); if (max_correction>0.) { Jnlst().Printf(J_DETAILED, J_MAIN, "Some value in v_L becomes too large - maximal correction = %8.2e\n", max_correction); corrected = true; } SmartPtr new_v_U; max_correction = correct_bound_multiplier( *IpData().trial()->v_U(), *IpCq().trial_slack_s_U(), *IpCq().trial_compl_s_U(), new_v_U); if (max_correction>0.) { Jnlst().Printf(J_DETAILED, J_MAIN, "Some value in v_U becomes too large - maximal correction = %8.2e\n", max_correction); corrected = true; } SmartPtr trial = IpData().trial()->MakeNewContainer(); trial->Set_bound_mult(*new_z_L, *new_z_U, *new_v_L, *new_v_U); IpData().set_trial(trial); if (corrected) { IpData().Append_info_string("z"); } // Accept the step IpData().AcceptTrialPoint(); // If we want to recalculate the multipliers (e.g., as least // square estimates), call the calculator for that if (recalc_y_) { // There is no point in doing this if there are no constraints if (IpData().curr()->y_c()->Dim()+IpData().curr()->y_d()->Dim()==0) { recalc_y_ = false; } } if (recalc_y_ && IpCq().curr_constraint_violation()y_c()->Dim()+IpData().curr()->y_d()->Dim()>0) { SmartPtr y_c = IpData().curr()->y_c()->MakeNew(); SmartPtr y_d = IpData().curr()->y_d()->MakeNew(); bool retval = eq_multiplier_calculator_->CalculateMultipliers(*y_c, *y_d); if (retval) { SmartPtr curr = IpData().curr(); SmartPtr iterates = curr->MakeNewContainer(); iterates->Set_x(*curr->x()); iterates->Set_s(*curr->s()); iterates->Set_z_L(*curr->z_L()); iterates->Set_z_U(*curr->z_U()); iterates->Set_v_L(*curr->v_L()); iterates->Set_v_U(*curr->v_U()); iterates->Set_y_c(*y_c); iterates->Set_y_d(*y_d); IpData().set_trial(iterates); IpData().AcceptTrialPoint(); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "Recalculation of y multipliers skipped because eq_mult_calc returned false.\n"); } } } } void IpoptAlgorithm::PrintProblemStatistics() { if (!Jnlst().ProduceOutput(J_SUMMARY, J_STATISTICS)) { // nothing to print return; } SmartPtr x = IpData().curr()->x(); SmartPtr x_L = IpNLP().x_L(); SmartPtr x_U = IpNLP().x_U(); SmartPtr Px_L = IpNLP().Px_L(); SmartPtr Px_U = IpNLP().Px_U(); Index nx_tot, nx_only_lower, nx_both, nx_only_upper; calc_number_of_bounds(*IpData().curr()->x(), *IpNLP().x_L(), *IpNLP().x_U(), *IpNLP().Px_L(), *IpNLP().Px_U(), nx_tot, nx_only_lower, nx_both, nx_only_upper); Index ns_tot, ns_only_lower, ns_both, ns_only_upper; calc_number_of_bounds(*IpData().curr()->s(), *IpNLP().d_L(), *IpNLP().d_U(), *IpNLP().Pd_L(), *IpNLP().Pd_U(), ns_tot, ns_only_lower, ns_both, ns_only_upper); Jnlst().Printf(J_SUMMARY, J_STATISTICS, "Total number of variables............................: %8d\n",nx_tot); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " variables with only lower bounds: %8d\n", nx_only_lower); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " variables with lower and upper bounds: %8d\n",nx_both); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " variables with only upper bounds: %8d\n", nx_only_upper); Jnlst().Printf(J_SUMMARY, J_STATISTICS, "Total number of equality constraints.................: %8d\n", IpData().curr()->y_c()->Dim()); Jnlst().Printf(J_SUMMARY, J_STATISTICS, "Total number of inequality constraints...............: %8d\n",ns_tot); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " inequality constraints with only lower bounds: %8d\n", ns_only_lower); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " inequality constraints with lower and upper bounds: %8d\n",ns_both); Jnlst().Printf(J_SUMMARY, J_STATISTICS, " inequality constraints with only upper bounds: %8d\n\n", ns_only_upper); } void IpoptAlgorithm::ComputeFeasibilityMultipliers() { DBG_START_METH("IpoptAlgorithm::ComputeFeasibilityMultipliers", dbg_verbosity); DBG_ASSERT(IpCq().IsSquareProblem()); // if we don't have an object for computing least square // multipliers we don't compute them if (IsNull(eq_multiplier_calculator_)) { Jnlst().Printf(J_WARNING, J_SOLUTION, "This is a square problem, but multipliers cannot be recomputed at solution, since no eq_mult_calculator object is available in IpoptAlgorithm\n"); return; } SmartPtr iterates = IpData().curr()->MakeNewContainer(); SmartPtr tmp = iterates->z_L()->MakeNew(); tmp->Set(0.); iterates->Set_z_L(*tmp); tmp = iterates->z_U()->MakeNew(); tmp->Set(0.); iterates->Set_z_U(*tmp); tmp = iterates->v_L()->MakeNew(); tmp->Set(0.); iterates->Set_v_L(*tmp); tmp = iterates->v_U()->MakeNew(); tmp->Set(0.); iterates->Set_v_U(*tmp); SmartPtr y_c = iterates->y_c()->MakeNew(); SmartPtr y_d = iterates->y_d()->MakeNew(); IpData().set_trial(iterates); IpData().AcceptTrialPoint(); bool retval = eq_multiplier_calculator_->CalculateMultipliers(*y_c, *y_d); if (retval) { //Check if following line is really necessary iterates = IpData().curr()->MakeNewContainer(); iterates->Set_y_c(*y_c); iterates->Set_y_d(*y_d); IpData().set_trial(iterates); IpData().AcceptTrialPoint(); } else { Jnlst().Printf(J_WARNING, J_SOLUTION, "Cannot recompute multipliers for feasibility problem. Error in eq_mult_calculator\n"); } } void IpoptAlgorithm::calc_number_of_bounds( const Vector& x, const Vector& x_L, const Vector& x_U, const Matrix& Px_L, const Matrix& Px_U, Index& n_tot, Index& n_only_lower, Index& n_both, Index& n_only_upper) { DBG_START_METH("IpoptAlgorithm::calc_number_of_bounds", dbg_verbosity); n_tot = x.Dim(); SmartPtr tmpx = x.MakeNew(); SmartPtr tmpxL = x_L.MakeNew(); SmartPtr tmpxU = x_U.MakeNew(); tmpxL->Set(-1.); tmpxU->Set(2.); Px_L.MultVector(1.0, *tmpxL, 0.0, *tmpx); Px_U.MultVector(1.0, *tmpxU, 1.0, *tmpx); // Now, x has elements // -1 : if component has only lower bound // 0 : if component has no bound // 1 : if component has both lower and upper bound // 2 : if component has only upper bound DBG_PRINT_VECTOR(2, "x-indicator", *tmpx); SmartPtr tmpx0 = x.MakeNew(); tmpx0->Set(0.); SmartPtr tmpx2 = x.MakeNew(); tmpx2->Set(-1.0); tmpx2->Axpy(1.0, *tmpx); tmpx2->ElementWiseMax(*tmpx0); // tmpx2 is now 1 in those // components with only upper bounds n_only_upper = (Index)tmpx2->Asum(); tmpx->Axpy(-2., *tmpx2); // now make all those entries for // only upper bounds zero in tmpx tmpx2->Copy(*tmpx); tmpx2->ElementWiseMax(*tmpx0); // tmpx2 is now 1 in those // components with both bounds n_both = (Index)tmpx2->Asum(); tmpx->Axpy(-1., *tmpx2); tmpx->ElementWiseMin(*tmpx); // tmpx is now -1 in those with only // lower bounds n_only_lower = (Index)tmpx->Asum(); } Number IpoptAlgorithm::correct_bound_multiplier( const Vector& trial_z, const Vector& trial_slack, const Vector& trial_compl, SmartPtr& new_trial_z) { DBG_START_METH("IpoptAlgorithm::CorrectBoundMultiplier", dbg_verbosity); if (kappa_sigma_<1. || trial_z.Dim()==0) { new_trial_z = &trial_z; return 0.; } // We choose as barrier parameter to be used either the current // algorithmic barrier parameter (if we are not in the free mode), // or the average complementarity (at the trial point) Number mu; if (IpData().FreeMuMode()) { mu = IpCq().trial_avrg_compl(); mu = Min(mu, 1e3); } else { mu = IpData().curr_mu(); } DBG_PRINT((1,"mu = %8.2e\n", mu)); DBG_PRINT_VECTOR(2, "trial_z", trial_z); // First check quickly if anything need to be corrected, using the // trial complementarity directly. Here, Amax is the same as Max // (and we use Amax because that can be used later) if (trial_compl.Amax() <= kappa_sigma_*mu && trial_compl.Min() >= 1./kappa_sigma_*mu) { new_trial_z = &trial_z; return 0.; } SmartPtr one_over_s = trial_z.MakeNew(); one_over_s->Copy(trial_slack); one_over_s->ElementWiseReciprocal(); SmartPtr step_z = trial_z.MakeNew(); step_z->AddTwoVectors(kappa_sigma_*mu, *one_over_s, -1., trial_z, 0.); DBG_PRINT_VECTOR(2, "step_z", *step_z); Number max_correction_up = Max(0., -step_z->Min()); if (max_correction_up>0.) { SmartPtr tmp = trial_z.MakeNew(); tmp->Set(0.); step_z->ElementWiseMin(*tmp); tmp->AddTwoVectors(1., trial_z, 1., *step_z, 0.); new_trial_z = GetRawPtr(tmp); } else { new_trial_z = &trial_z; } step_z->AddTwoVectors(1./kappa_sigma_*mu, *one_over_s, -1., *new_trial_z, 0.); Number max_correction_low = Max(0., step_z->Max()); if (max_correction_low>0.) { SmartPtr tmp = trial_z.MakeNew(); tmp->Set(0.); step_z->ElementWiseMax(*tmp); tmp->AddTwoVectors(1., *new_trial_z, 1., *step_z, 0.); new_trial_z = GetRawPtr(tmp); } DBG_PRINT_VECTOR(2, "new_trial_z", *new_trial_z); return Max(max_correction_up, max_correction_low); } void IpoptAlgorithm::print_copyright_message(const Journalist& jnlst) { jnlst.Printf(J_INSUPPRESSIBLE, J_MAIN, "\n******************************************************************************\n" "This program contains Ipopt, a library for large-scale nonlinear optimization.\n" " Ipopt is released as open source code under the Eclipse Public License (EPL).\n" " For more information visit http://projects.coin-or.org/Ipopt\n" "******************************************************************************\n\n"); #ifdef COIN_HAS_MUMPS # ifndef COINHSL_HAS_MA27 # ifndef COINHSL_HAS_MA57 # ifndef COINHSL_HAS_MA86 # ifndef HAVE_PARDISO # ifndef HAVE_WSMP # ifndef IPOPT_NOMUMPSNOTE jnlst.Printf(J_INSUPPRESSIBLE, J_MAIN, "NOTE: You are using Ipopt by default with the MUMPS linear solver.\n" " Other linear solvers might be more efficient (see Ipopt documentation).\n\n\n"); # endif # endif # endif # endif # endif # endif #endif copyright_message_printed = true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpOrigIpoptNLP.hpp0000644000076600007660000003602512066646242020467 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOrigIpoptNLP.hpp 2160 2012-12-26 19:14:42Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPORIGIPOPTNLP_HPP__ #define __IPORIGIPOPTNLP_HPP__ #include "IpIpoptNLP.hpp" #include "IpException.hpp" #include "IpTimingStatistics.hpp" namespace Ipopt { /** enumeration for the Hessian information type. */ enum HessianApproximationType { EXACT=0, LIMITED_MEMORY }; /** enumeration for the Hessian approximation space. */ enum HessianApproximationSpace { NONLINEAR_VARS=0, ALL_VARS }; /** This class maps the traditional NLP into * something that is more useful by Ipopt. * This class takes care of storing the * calculated model results, handles caching, * and (some day) takes care of addition of slacks. */ class OrigIpoptNLP : public IpoptNLP { public: /**@name Constructors/Destructors */ //@{ OrigIpoptNLP(const SmartPtr& jnlst, const SmartPtr& nlp, const SmartPtr& nlp_scaling); /** Default destructor */ virtual ~OrigIpoptNLP(); //@} /** Initialize - overloaded from IpoptNLP */ virtual bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** Initialize (create) structures for * the iteration data */ virtual bool InitializeStructures(SmartPtr& x, bool init_x, SmartPtr& y_c, bool init_y_c, SmartPtr& y_d, bool init_y_d, SmartPtr& z_L, bool init_z_L, SmartPtr& z_U, bool init_z_U, SmartPtr& v_L, SmartPtr& v_U ); /** Method accessing the GetWarmStartIterate of the NLP */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate) { return nlp_->GetWarmStartIterate(warm_start_iterate); } /** Accessor methods for model data */ //@{ /** Objective value */ virtual Number f(const Vector& x); /** Objective value (depending in mu) - incorrect version for * OrigIpoptNLP */ virtual Number f(const Vector& x, Number mu); /** Gradient of the objective */ virtual SmartPtr grad_f(const Vector& x); /** Gradient of the objective (depending in mu) - incorrect * version for OrigIpoptNLP */ virtual SmartPtr grad_f(const Vector& x, Number mu); /** Equality constraint residual */ virtual SmartPtr c(const Vector& x); /** Jacobian Matrix for equality constraints */ virtual SmartPtr jac_c(const Vector& x); /** Inequality constraint residual (reformulated * as equalities with slacks */ virtual SmartPtr d(const Vector& x); /** Jacobian Matrix for inequality constraints*/ virtual SmartPtr jac_d(const Vector& x); /** Hessian of the Lagrangian */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd ); /** Hessian of the Lagrangian (depending in mu) - incorrect * version for OrigIpoptNLP */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, Number mu); /** Provides a Hessian matrix from the correct matrix space with * uninitialized values. This can be used in LeastSquareMults to * obtain a "zero Hessian". */ virtual SmartPtr uninitialized_h(); /** Lower bounds on x */ virtual SmartPtr x_L() const { return x_L_; } /** Permutation matrix (x_L_ -> x) */ virtual SmartPtr Px_L() const { return Px_L_; } /** Upper bounds on x */ virtual SmartPtr x_U() const { return x_U_; } /** Permutation matrix (x_U_ -> x */ virtual SmartPtr Px_U() const { return Px_U_; } /** Lower bounds on d */ virtual SmartPtr d_L() const { return d_L_; } /** Permutation matrix (d_L_ -> d) */ virtual SmartPtr Pd_L() const { return Pd_L_; } /** Upper bounds on d */ virtual SmartPtr d_U() const { return d_U_; } /** Permutation matrix (d_U_ -> d */ virtual SmartPtr Pd_U() const { return Pd_U_; } virtual SmartPtr HessianMatrixSpace() const { return h_space_; } //@} /** Accessor method for vector/matrix spaces pointers */ virtual void GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space); /** Method for adapting the variable bounds. This is called if * slacks are becoming too small */ virtual void AdjustVariableBounds(const Vector& new_x_L, const Vector& new_x_U, const Vector& new_d_L, const Vector& new_d_U); /** @name Counters for the number of function evaluations. */ //@{ virtual Index f_evals() const { return f_evals_; } virtual Index grad_f_evals() const { return grad_f_evals_; } virtual Index c_evals() const { return c_evals_; } virtual Index jac_c_evals() const { return jac_c_evals_; } virtual Index d_evals() const { return d_evals_; } virtual Index jac_d_evals() const { return jac_d_evals_; } virtual Index h_evals() const { return h_evals_; } //@} /** Solution Routines - overloaded from IpoptNLP*/ //@{ void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr ip_data, SmartPtr ip_cq); //@} /** @name Methods for IpoptType */ //@{ /** Called by IpoptType to register the options */ static void RegisterOptions(SmartPtr roptions); //@} /** Accessor method to the underlying NLP */ SmartPtr nlp() { return nlp_; } /**@name Methods related to function evaluation timing. */ //@{ /** Reset the timing statistics */ void ResetTimes(); void PrintTimingStatistics(Journalist& jnlst, EJournalLevel level, EJournalCategory category) const; const TimedTask& f_eval_time() const { return f_eval_time_; } const TimedTask& grad_f_eval_time() const { return grad_f_eval_time_; } const TimedTask& c_eval_time() const { return c_eval_time_; } const TimedTask& jac_c_eval_time() const { return jac_c_eval_time_; } const TimedTask& d_eval_time() const { return d_eval_time_; } const TimedTask& jac_d_eval_time() const { return jac_d_eval_time_; } const TimedTask& h_eval_time() const { return h_eval_time_; } Number TotalFunctionEvaluationCpuTime() const; Number TotalFunctionEvaluationSysTime() const; Number TotalFunctionEvaluationWallclockTime() const; //@} private: /** journalist */ SmartPtr jnlst_; /** Pointer to the NLP */ SmartPtr nlp_; /** Necessary Vector/Matrix spaces */ //@{ SmartPtr x_space_; SmartPtr c_space_; SmartPtr d_space_; SmartPtr x_l_space_; SmartPtr px_l_space_; SmartPtr x_u_space_; SmartPtr px_u_space_; SmartPtr d_l_space_; SmartPtr pd_l_space_; SmartPtr d_u_space_; SmartPtr pd_u_space_; SmartPtr jac_c_space_; SmartPtr jac_d_space_; SmartPtr h_space_; SmartPtr scaled_jac_c_space_; SmartPtr scaled_jac_d_space_; SmartPtr scaled_h_space_; //@} /**@name Storage for Model Quantities */ //@{ /** Objective function */ CachedResults f_cache_; /** Gradient of the objective function */ CachedResults > grad_f_cache_; /** Equality constraint residuals */ CachedResults > c_cache_; /** Jacobian Matrix for equality constraints * (current iteration) */ CachedResults > jac_c_cache_; /** Inequality constraint residual (reformulated * as equalities with slacks */ CachedResults > d_cache_; /** Jacobian Matrix for inequality constraints * (current iteration) */ CachedResults > jac_d_cache_; /** Hessian of the lagrangian * (current iteration) */ CachedResults > h_cache_; /** Unscaled version of x vector */ CachedResults > unscaled_x_cache_; /** Lower bounds on x */ SmartPtr x_L_; /** Permutation matrix (x_L_ -> x) */ SmartPtr Px_L_; /** Upper bounds on x */ SmartPtr x_U_; /** Permutation matrix (x_U_ -> x */ SmartPtr Px_U_; /** Lower bounds on d */ SmartPtr d_L_; /** Permutation matrix (d_L_ -> d) */ SmartPtr Pd_L_; /** Upper bounds on d */ SmartPtr d_U_; /** Permutation matrix (d_U_ -> d */ SmartPtr Pd_U_; /** Original unmodified lower bounds on x */ SmartPtr orig_x_L_; /** Original unmodified upper bounds on x */ SmartPtr orig_x_U_; //@} /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ OrigIpoptNLP(); /** Copy Constructor */ OrigIpoptNLP(const OrigIpoptNLP&); /** Overloaded Equals Operator */ void operator=(const OrigIpoptNLP&); //@} /** @name auxilliary functions */ //@{ /** relax the bounds by a relative move of relax_bound_factor. * Here, relax_bound_factor should be negative (or zero) for * lower bounds, and positive (or zero) for upper bounds. */ void relax_bounds(Number bound_relax_factor, Vector& bounds); /** Method for getting the unscaled version of the x vector */ SmartPtr get_unscaled_x(const Vector& x); //@} /** @name Algorithmic parameters */ //@{ /** relaxation factor for the bounds */ Number bound_relax_factor_; /** Flag indicating whether the primal variables should be * projected back into original bounds are optimization. */ bool honor_original_bounds_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; /** Flag indicating what Hessian information is to be used. */ HessianApproximationType hessian_approximation_; /** Flag indicating in which space Hessian is to be approximated. */ HessianApproximationSpace hessian_approximation_space_; /** Flag indicating whether it is desired to check if there are * Nan or Inf entries in first and second derivative matrices. */ bool check_derivatives_for_naninf_; /** Flag indicating if we need to ask for equality constraint * Jacobians only once */ bool jac_c_constant_; /** Flag indicating if we need to ask for inequality constraint * Jacobians only once */ bool jac_d_constant_; /** Flag indicating if we need to ask for Hessian only once */ bool hessian_constant_; //@} /** @name Counters for the function evaluations */ //@{ Index f_evals_; Index grad_f_evals_; Index c_evals_; Index jac_c_evals_; Index d_evals_; Index jac_d_evals_; Index h_evals_; //@} /** Flag indicating if initialization method has been called */ bool initialized_; /**@name Timing statistics for the function evaluations. */ //@{ TimedTask f_eval_time_; TimedTask grad_f_eval_time_; TimedTask c_eval_time_; TimedTask jac_c_eval_time_; TimedTask d_eval_time_; TimedTask jac_d_eval_time_; TimedTask h_eval_time_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLineSearch.hpp0000644000076600007660000000623411504216567020214 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLineSearch.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPLINESEARCH_HPP__ #define __IPLINESEARCH_HPP__ #include "IpAlgStrategy.hpp" #include "IpIpoptCalculatedQuantities.hpp" namespace Ipopt { /** Base class for line search objects. */ class LineSearch : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ LineSearch() {} /** Default destructor */ virtual ~LineSearch() {} //@} /** Perform the line search. As search direction the delta * in the data object is used */ virtual void FindAcceptableTrialPoint() = 0; /** Reset the line search. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called after * the barrier parameter is changed. */ virtual void Reset() = 0; /** Set flag indicating whether a very rigorous line search should * be performed. If this flag is set to true, the line search * algorithm might decide to abort the line search and not to * accept a new iterate. If the line search decided not to * accept a new iterate, the return value of * CheckSkippedLineSearch() is true at the next call. For * example, in the non-monotone barrier parameter update * procedure, the filter algorithm should not switch to the * restoration phase in the free mode; instead, the algorithm * should swtich to the fixed mode. */ virtual void SetRigorousLineSearch(bool rigorous) = 0; /** Check if the line search procedure didn't accept a new iterate * during the last call of FindAcceptableTrialPoint(). * */ virtual bool CheckSkippedLineSearch() = 0; /** This method should be called if the optimization process * requires the line search object to switch to some fallback * mechanism (like the restoration phase), when the regular * optimization procedure cannot be continued (for example, * because the search direction could not be computed). This * will cause the line search object to immediately proceed with * this mechanism when FindAcceptableTrialPoint() is call. This * method returns false if no fallback mechanism is available. */ virtual bool ActivateFallbackMechanism() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ LineSearch(const LineSearch&); /** Overloaded Equals Operator */ void operator=(const LineSearch&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpIteratesVector.hpp0000644000076600007660000004616412141450650021137 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIteratesVector.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-06-06 #ifndef __IPITERATESVECTOR_HPP__ #define __IPITERATESVECTOR_HPP__ #include "IpCompoundVector.hpp" namespace Ipopt { /* forward declarations */ class IteratesVectorSpace; /** Specialized CompoundVector class specifically for the algorithm * iterates. This class inherits from CompoundVector and is a * specialized class for handling the iterates of the Ipopt * Algorithm, that is, x, s, y_c, y_d, z_L, z_U, v_L, and v_U. It * inherits from CompoundVector so it can behave like a CV in most * calculations, but it has fixed dimensions and cannot be * customized */ class IteratesVector : public CompoundVector { public: /** Constructors / Destructors */ //@{ IteratesVector(const IteratesVectorSpace* owner_space, bool create_new); virtual ~IteratesVector(); //@} /** Make New methods */ //@{ /** Use this method to create a new iterates vector. The MakeNew * method on the Vector class also works, but it does not give * the create_new option. */ SmartPtr MakeNewIteratesVector(bool create_new = true) const; /** Use this method to create a new iterates vector with a copy of * all the data. */ SmartPtr MakeNewIteratesVectorCopy() const { SmartPtr ret = MakeNewIteratesVector(true); ret->Copy(*this); return ret; } /** Use this method to create a new iterates vector * container. This creates a new NonConst container, but the * elements inside the iterates vector may be const. Therefore, * the container can be modified to point to new entries, but the * existing entries may or may not be modifiable. */ SmartPtr MakeNewContainer() const; //@} /** Iterates Set/Get Methods */ //@{ /** Get the x iterate (const) */ SmartPtr x() const { return GetIterateFromComp(0); } /** Get the x iterate (non-const) - this can only be called if the * vector was created intenally, or the Set_x_NonConst method was * used. */ SmartPtr x_NonConst() { return GetNonConstIterateFromComp(0); } /** Create a new vector in the x entry */ inline SmartPtr create_new_x(); /** Create a new vector in the x entry and copy the current values * into it. */ SmartPtr create_new_x_copy() { SmartPtr curr_x = GetComp(0); Set_x_NonConst(*curr_x->MakeNew()); x_NonConst()->Copy(*curr_x); return x_NonConst(); } /** Set the x iterate (const). Sets the pointer, does NOT copy * data. */ void Set_x(const Vector& vec) { SetComp(0, vec); } /** Set the x iterate (non-const). Sets the pointer, does NOT copy * data. */ void Set_x_NonConst(Vector& vec) { SetCompNonConst(0, vec); } /** Get the s iterate (const) */ SmartPtr s() const { return GetIterateFromComp(1); } /** Get the s iterate (non-const) - this can only be called if the * vector was created intenally, or the Set_s_NonConst method was * used. */ SmartPtr s_NonConst() { return GetNonConstIterateFromComp(1); } /** Create a new vector in the s entry */ inline SmartPtr create_new_s(); /** Create a new vector in the s entry and copy the current values * into it. */ SmartPtr create_new_s_copy() { SmartPtr curr_s = GetComp(1); Set_s_NonConst(*curr_s->MakeNew()); s_NonConst()->Copy(*curr_s); return s_NonConst(); } /** Set the s iterate (const). Sets the pointer, does NOT copy * data. */ void Set_s(const Vector& vec) { SetComp(1, vec); } /** Set the s iterate (non-const). Sets the pointer, does NOT copy * data. */ void Set_s_NonConst(Vector& vec) { SetCompNonConst(1, vec); } /** Get the y_c iterate (const) */ SmartPtr y_c() const { return GetIterateFromComp(2); } /** Get the y_c iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_y_c_NonConst * method was used. */ SmartPtr y_c_NonConst() { return GetNonConstIterateFromComp(2); } /** Create a new vector in the y_c entry */ inline SmartPtr create_new_y_c(); /** Create a new vector in the y_c entry and copy the current * values into it. */ SmartPtr create_new_y_c_copy() { SmartPtr curr_y_c = GetComp(2); Set_y_c_NonConst(*curr_y_c->MakeNew()); y_c_NonConst()->Copy(*curr_y_c); return y_c_NonConst(); } /** Set the y_c iterate (const). Sets the pointer, does NOT copy * data. */ void Set_y_c(const Vector& vec) { SetComp(2, vec); } /** Set the y_c iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_y_c_NonConst(Vector& vec) { SetCompNonConst(2, vec); } /** Get the y_d iterate (const) */ SmartPtr y_d() const { return GetIterateFromComp(3); } /** Get the y_d iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_y_d_NonConst * method was used. */ SmartPtr y_d_NonConst() { return GetNonConstIterateFromComp(3); } /** Create a new vector in the y_d entry */ inline SmartPtr create_new_y_d(); /** Create a new vector in the y_d entry and copy the current * values into it. */ SmartPtr create_new_y_d_copy() { SmartPtr curr_y_d = GetComp(3); Set_y_d_NonConst(*curr_y_d->MakeNew()); y_d_NonConst()->Copy(*curr_y_d); return y_d_NonConst(); } /** Set the y_d iterate (const). Sets the pointer, does NOT copy * data. */ void Set_y_d(const Vector& vec) { SetComp(3, vec); } /** Set the y_d iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_y_d_NonConst(Vector& vec) { SetCompNonConst(3, vec); } /** Get the z_L iterate (const) */ SmartPtr z_L() const { return GetIterateFromComp(4); } /** Get the z_L iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_z_L_NonConst * method was used. */ SmartPtr z_L_NonConst() { return GetNonConstIterateFromComp(4); } /** Create a new vector in the z_L entry */ inline SmartPtr create_new_z_L(); /** Create a new vector in the z_L entry and copy the current * values into it. */ SmartPtr create_new_z_L_copy() { SmartPtr curr_z_L = GetComp(4); Set_z_L_NonConst(*curr_z_L->MakeNew()); z_L_NonConst()->Copy(*curr_z_L); return z_L_NonConst(); } /** Set the z_L iterate (const). Sets the pointer, does NOT copy * data. */ void Set_z_L(const Vector& vec) { SetComp(4, vec); } /** Set the z_L iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_z_L_NonConst(Vector& vec) { SetCompNonConst(4, vec); } /** Get the z_U iterate (const) */ SmartPtr z_U() const { return GetIterateFromComp(5); } /** Get the z_U iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_z_U_NonConst * method was used. */ SmartPtr z_U_NonConst() { return GetNonConstIterateFromComp(5); } /** Create a new vector in the z_U entry */ inline SmartPtr create_new_z_U(); /** Create a new vector in the z_U entry and copy the current * values into it. */ SmartPtr create_new_z_U_copy() { SmartPtr curr_z_U = GetComp(5); Set_z_U_NonConst(*curr_z_U->MakeNew()); z_U_NonConst()->Copy(*curr_z_U); return z_U_NonConst(); } /** Set the z_U iterate (const). Sets the pointer, does NOT copy * data. */ void Set_z_U(const Vector& vec) { SetComp(5, vec); } /** Set the z_U iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_z_U_NonConst(Vector& vec) { SetCompNonConst(5, vec); } /** Get the v_L iterate (const) */ SmartPtr v_L() const { return GetIterateFromComp(6); } /** Get the v_L iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_v_L_NonConst * method was used. */ SmartPtr v_L_NonConst() { return GetNonConstIterateFromComp(6); } /** Create a new vector in the v_L entry */ inline SmartPtr create_new_v_L(); /** Create a new vector in the v_L entry and copy the current * values into it. */ SmartPtr create_new_v_L_copy() { SmartPtr curr_v_L = GetComp(6); Set_v_L_NonConst(*curr_v_L->MakeNew()); v_L_NonConst()->Copy(*curr_v_L); return v_L_NonConst(); } /** Set the v_L iterate (const). Sets the pointer, does NOT copy * data. */ void Set_v_L(const Vector& vec) { SetComp(6, vec); } /** Set the v_L iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_v_L_NonConst(Vector& vec) { SetCompNonConst(6, vec); } /** Get the v_U iterate (const) */ SmartPtr v_U() const { return GetIterateFromComp(7); } /** Get the v_U iterate (non-const) - this can only be called if * the vector was created intenally, or the Set_v_U_NonConst * method was used. */ SmartPtr v_U_NonConst() { return GetNonConstIterateFromComp(7); } /** Create a new vector in the v_U entry */ inline SmartPtr create_new_v_U(); /** Create a new vector in the v_U entry and copy the current * values into it. */ SmartPtr create_new_v_U_copy() { SmartPtr curr_v_U = GetComp(7); Set_v_U_NonConst(*curr_v_U->MakeNew()); v_U_NonConst()->Copy(*curr_v_U); return v_U_NonConst(); } /** Set the v_U iterate (const). Sets the pointer, does NOT copy * data. */ void Set_v_U(const Vector& vec) { SetComp(7, vec); } /** Set the v_U iterate (non-const). Sets the pointer, does NOT * copy data. */ void Set_v_U_NonConst(Vector& vec) { SetCompNonConst(7, vec); } /** Set the primal variables all in one shot. Sets the pointers, * does NOT copy data */ void Set_primal(const Vector& x, const Vector& s) { SetComp(0, x); SetComp(1, s); } void Set_primal_NonConst(Vector& x, Vector& s) { SetCompNonConst(0, x); SetCompNonConst(1, s); } /** Set the eq multipliers all in one shot. Sets the pointers, * does not copy data. */ void Set_eq_mult(const Vector& y_c, const Vector& y_d) { SetComp(2, y_c); SetComp(3, y_d); } void Set_eq_mult_NonConst(Vector& y_c, Vector& y_d) { SetCompNonConst(2, y_c); SetCompNonConst(3, y_d); } /** Set the bound multipliers all in one shot. Sets the pointers, * does not copy data. */ void Set_bound_mult(const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U) { SetComp(4, z_L); SetComp(5, z_U); SetComp(6, v_L); SetComp(7, v_U); } void Set_bound_mult_NonConst(Vector& z_L, Vector& z_U, Vector& v_L, Vector& v_U) { SetCompNonConst(4, z_L); SetCompNonConst(5, z_U); SetCompNonConst(6, v_L); SetCompNonConst(7, v_U); } /** Get a sum of the tags of the contained items. There is no * guarantee that this is unique, but there is a high chance it * is unique and it can be used for debug checks relatively * reliably. */ TaggedObject::Tag GetTagSum() const { TaggedObject::Tag tag; if (IsValid(x())) tag = x()->GetTag() + tag; if (IsValid(s())) tag = s()->GetTag() + tag; if (IsValid(y_c())) tag = y_c()->GetTag() + tag; if (IsValid(y_d())) tag = y_d()->GetTag() + tag; if (IsValid(z_L())) tag = z_L()->GetTag() + tag; if (IsValid(z_U())) tag = z_U()->GetTag() + tag; if (IsValid(v_L())) tag = v_L()->GetTag() + tag; if (IsValid(v_U())) tag = v_U()->GetTag() + tag; return tag; } //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IteratesVector(); /** Copy Constructor */ IteratesVector(const IteratesVector&); /** Overloaded Equals Operator */ void operator=(const IteratesVector&); //@} const IteratesVectorSpace* owner_space_; /** private method to return the const element from the compound * vector. This method will return NULL if none is currently * set. */ SmartPtr GetIterateFromComp(Index i) const { if (IsCompNull(i)) { return NULL; } return GetComp(i); } /** private method to return the non-const element from the * compound vector. This method will return NULL if none is * currently set. */ SmartPtr GetNonConstIterateFromComp(Index i) { if (IsCompNull(i)) { return NULL; } return GetCompNonConst(i); } }; /** Vector Space for the IteratesVector class. This is a * specialized vector space for the IteratesVector class. */ class IteratesVectorSpace : public CompoundVectorSpace { public: /** @name Constructors/Destructors. */ //@{ /** Constructor that takes the spaces for each of the iterates. * Warning! None of these can be NULL ! */ IteratesVectorSpace(const VectorSpace& x_space, const VectorSpace& s_space, const VectorSpace& y_c_space, const VectorSpace& y_d_space, const VectorSpace& z_L_space, const VectorSpace& z_U_space, const VectorSpace& v_L_space, const VectorSpace& v_U_space ); virtual ~IteratesVectorSpace(); //@} /** Method for creating vectors . */ //@{ /** Use this to create a new IteratesVector. You can pass-in * create_new = false if you only want a container and do not * want vectors allocated. */ virtual IteratesVector* MakeNewIteratesVector(bool create_new = true) const { return new IteratesVector(this, create_new); } /** Use this method to create a new const IteratesVector. You must pass in * valid pointers for all of the entries. */ const SmartPtr MakeNewIteratesVector(const Vector& x, const Vector& s, const Vector& y_c, const Vector& y_d, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U) { SmartPtr newvec = MakeNewIteratesVector(false); newvec->Set_x(x); newvec->Set_s(s); newvec->Set_y_c(y_c); newvec->Set_y_d(y_d); newvec->Set_z_L(z_L); newvec->Set_z_U(z_U); newvec->Set_v_L(v_L); newvec->Set_v_U(v_U); return ConstPtr(newvec); } /** This method overloads * ComooundVectorSpace::MakeNewCompoundVector to make sure that * we get a vector of the correct type */ virtual CompoundVector* MakeNewCompoundVector(bool create_new = true) const { return MakeNewIteratesVector(create_new); } /** This method creates a new vector (and allocates space in all * the contained vectors. This is really only used for code that * does not know what type of vector it is dealing with - for * example, this method is called from Vector::MakeNew() */ virtual Vector* MakeNew() const { return MakeNewIteratesVector(); } //@} /** This method hides the CompoundVectorSpace::SetCompSpace method * since the components of the Iterates are fixed at * construction. */ virtual void SetCompSpace(Index icomp, const VectorSpace& vec_space) { DBG_ASSERT(false && "This is an IteratesVectorSpace - a special compound vector for Ipopt iterates. The contained spaces should not be modified."); } private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor */ IteratesVectorSpace(); /** Copy Constructor */ IteratesVectorSpace(const IteratesVectorSpace&); /** Overloaded Equals Operator */ IteratesVectorSpace& operator=(const IteratesVectorSpace&); //@} /** Contained Spaces */ SmartPtr x_space_; SmartPtr s_space_; SmartPtr y_c_space_; SmartPtr y_d_space_; SmartPtr z_L_space_; SmartPtr z_U_space_; SmartPtr v_L_space_; SmartPtr v_U_space_; }; inline SmartPtr IteratesVector::create_new_x() { Set_x_NonConst(*owner_space_->GetCompSpace(0)->MakeNew()); return x_NonConst(); } inline SmartPtr IteratesVector::create_new_s() { Set_s_NonConst(*owner_space_->GetCompSpace(1)->MakeNew()); return s_NonConst(); } inline SmartPtr IteratesVector::create_new_y_c() { Set_y_c_NonConst(*owner_space_->GetCompSpace(2)->MakeNew()); return y_c_NonConst(); } inline SmartPtr IteratesVector::create_new_y_d() { Set_y_d_NonConst(*owner_space_->GetCompSpace(3)->MakeNew()); return y_d_NonConst(); } inline SmartPtr IteratesVector::create_new_z_L() { Set_z_L_NonConst(*owner_space_->GetCompSpace(4)->MakeNew()); return z_L_NonConst(); } inline SmartPtr IteratesVector::create_new_z_U() { Set_z_U_NonConst(*owner_space_->GetCompSpace(5)->MakeNew()); return z_U_NonConst(); } inline SmartPtr IteratesVector::create_new_v_L() { Set_v_L_NonConst(*owner_space_->GetCompSpace(6)->MakeNew()); return v_L_NonConst(); } inline SmartPtr IteratesVector::create_new_v_U() { Set_v_U_NonConst(*owner_space_->GetCompSpace(7)->MakeNew()); return v_U_NonConst(); } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDSearchDirCalc.hpp0000644000076600007660000000522511504216567021051 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 #ifndef __IPPDSEARCHDIRCALC_HPP__ #define __IPPDSEARCHDIRCALC_HPP__ #include "IpSearchDirCalculator.hpp" #include "IpPDSystemSolver.hpp" namespace Ipopt { /** Implementation of the search direction calculator that computes * the pure primal dual step for the current barrier parameter. */ class PDSearchDirCalculator : public SearchDirectionCalculator { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ PDSearchDirCalculator(const SmartPtr& pd_solver); /** Default destructor */ virtual ~PDSearchDirCalculator(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the search direction. The computed * direction is stored in IpData().delta(). */ virtual bool ComputeSearchDirection(); /** Methods for IpoptType */ //@{ static void RegisterOptions(const SmartPtr& roptions); //@} /** Method to return the pd_solver for additional processing */ SmartPtr PDSolver() { return pd_solver_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ PDSearchDirCalculator(); /** Copy Constructor */ PDSearchDirCalculator(const PDSearchDirCalculator&); /** Overloaded Equals Operator */ void operator=(const PDSearchDirCalculator&); //@} /** @name Strategy objects */ //@{ SmartPtr pd_solver_; //@} /** @name Algorithmic parameters */ //@{ /** Flag indicating that we trust that the steps from the linear * solver are very good and that we don't need any residual * checks */ bool fast_step_computation_; /** Flag indicating if we want to do Mehrotras's algorithm. This * means that a number of options are ignored, or have to be set * (or are automatically set) to certain values. */ bool mehrotra_algorithm_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIpoptNLP.hpp0000644000076600007660000003207311504216567020661 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIpoptNLP.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPRESTOIPOPTNLP_HPP__ #define __IPRESTOIPOPTNLP_HPP__ #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpCompoundMatrix.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpCompoundVector.hpp" #include "IpIdentityMatrix.hpp" #include "IpDiagMatrix.hpp" #include "IpZeroMatrix.hpp" #include "IpOrigIpoptNLP.hpp" namespace Ipopt { /** This class maps the traditional NLP into * something that is more useful by Ipopt. * This class takes care of storing the * calculated model results, handles cacheing, * and (some day) takes care of addition of slacks. */ class RestoIpoptNLP : public IpoptNLP { public: /**@name Constructors/Destructors */ //@{ RestoIpoptNLP(IpoptNLP& orig_ip_nlp, IpoptData& orig_ip_data, IpoptCalculatedQuantities& orig_ip_cq); /** Default destructor */ ~RestoIpoptNLP(); //@} /** Initialize - overloaded from IpoptNLP */ virtual bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** Initialize (create) structures for * the iteration data */ virtual bool InitializeStructures(SmartPtr& x, bool init_x, SmartPtr& y_c, bool init_y_c, SmartPtr& y_d, bool init_y_d, SmartPtr& z_L, bool init_z_L, SmartPtr& z_U, bool init_z_U, SmartPtr& v_L, SmartPtr& v_U ); /** Method accessing the GetWarmStartIterate of the NLP */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate) { return false; } /** Solution Routines - overloaded from IpoptNLP*/ //@{ void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) {} //@} /** Accessor methods for model data */ //@{ /** Method for telling IpoptCalculatedQuantities that the * restoration phase objective function depends on the barrier * parameter */ virtual bool objective_depends_on_mu() const { return true; } /** Objective value (incorrect version for restoration phase) */ virtual Number f(const Vector& x); /** Objective value */ virtual Number f(const Vector& x, Number mu); /** Gradient of the objective (incorrect version for restoration phase) */ virtual SmartPtr grad_f(const Vector& x); /** Gradient of the objective */ virtual SmartPtr grad_f(const Vector& x, Number mu); /** Equality constraint residual */ virtual SmartPtr c(const Vector& x); /** Jacobian Matrix for equality constraints */ virtual SmartPtr jac_c(const Vector& x); /** Inequality constraint residual (reformulated * as equalities with slacks */ virtual SmartPtr d(const Vector& x); /** Jacobian Matrix for inequality constraints */ virtual SmartPtr jac_d(const Vector& x); /** Hessian of the Lagrangian (incorrect version for restoration * phase) */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd ); /** Hessian of the Lagrangian */ virtual SmartPtr h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, Number mu); /** Provides a Hessian matrix from the correct matrix space with * uninitialized values. This can be used in LeastSquareMults to * obtain a "zero Hessian". */ virtual SmartPtr uninitialized_h(); /** Lower bounds on x */ virtual SmartPtr x_L() const { return GetRawPtr(x_L_); } /** Permutation matrix (x_L_ -> x) */ virtual SmartPtr Px_L() const { return GetRawPtr(Px_L_); } /** Upper bounds on x */ virtual SmartPtr x_U() const { return GetRawPtr(x_U_); } /** Permutation matrix (x_U_ -> x */ virtual SmartPtr Px_U() const { return GetRawPtr(Px_U_); } /** Lower bounds on d */ virtual SmartPtr d_L() const { return GetRawPtr(d_L_); } /** Permutation matrix (d_L_ -> d) */ virtual SmartPtr Pd_L() const { return GetRawPtr(Pd_L_); } /** Upper bounds on d */ virtual SmartPtr d_U() const { return GetRawPtr(d_U_); } /** Permutation matrix (d_U_ -> d */ virtual SmartPtr Pd_U() const { return GetRawPtr(Pd_U_); } virtual SmartPtr HessianMatrixSpace() const { return GetRawPtr(h_space_); } //@} /** Accessor method for vector/matrix spaces pointers */ virtual void GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space); /** Method for adapting the variable bounds. This is called if * slacks are becoming too small */ virtual void AdjustVariableBounds(const Vector& new_x_L, const Vector& new_x_U, const Vector& new_d_L, const Vector& new_d_U); /** User callback method */ bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr ip_data, SmartPtr ip_cq); /** @name Accessor method for the information of the original NLP. * These methods are not overloaded from IpoptNLP */ //@{ IpoptNLP& OrigIpNLP() const { return *orig_ip_nlp_; } IpoptData& OrigIpData() const { return *orig_ip_data_; } IpoptCalculatedQuantities& OrigIpCq() const { return *orig_ip_cq_; } //@} /** Accessor Method for obtaining the Rho penalization factor for * the ell_1 norm */ Number Rho() const { return rho_; } /** @name Counters for the number of function evaluations. */ //@{ virtual Index f_evals() const { return f_evals_; } virtual Index grad_f_evals() const { return grad_f_evals_; } virtual Index c_evals() const { return c_evals_; } virtual Index jac_c_evals() const { return jac_c_evals_; } virtual Index d_evals() const { return d_evals_; } virtual Index jac_d_evals() const { return jac_d_evals_; } virtual Index h_evals() const { return h_evals_; } //@} /** Method to calculate eta, the factor for the regularization term */ Number Eta(Number mu) const; /** Method returning the scaling factors for the 2-norm * penalization term. */ SmartPtr DR_x() const { return ConstPtr(dr_x_); } /** Methods for IpoptType */ //@{ /** Called by IpoptType to register the options */ static void RegisterOptions(SmartPtr roptions); //@} private: /** @name Pointers for the original NLP information. */ //@{ /** Pointer to the original IpoptNLP */ SmartPtr orig_ip_nlp_; /** Pointer to the original IpoptData */ SmartPtr orig_ip_data_; /** Pointer to the original IpoptCalculatedQuantities */ SmartPtr orig_ip_cq_; //@} /** Necessary Vector/Matrix spaces */ //@{ SmartPtr x_space_; SmartPtr c_space_; SmartPtr d_space_; SmartPtr x_l_space_; SmartPtr px_l_space_; SmartPtr x_u_space_; SmartPtr px_u_space_; SmartPtr d_l_space_; SmartPtr pd_l_space_; SmartPtr d_u_space_; SmartPtr pd_u_space_; SmartPtr jac_c_space_; SmartPtr jac_d_space_; SmartPtr h_space_; //@} /**@name Storage for Model Quantities */ //@{ /** Lower bounds on x */ SmartPtr x_L_; /** Permutation matrix (x_L_ -> x) */ SmartPtr Px_L_; /** Upper bounds on x */ SmartPtr x_U_; /** Permutation matrix (x_U_ -> x) */ SmartPtr Px_U_; /** Lower bounds on d */ SmartPtr d_L_; /** Permutation matrix (d_L_ -> d) */ SmartPtr Pd_L_; /** Upper bounds on d */ SmartPtr d_U_; /** Permutation matrix (d_U_ -> d */ SmartPtr Pd_U_; //@} /** @name Values particular to the restoration phase problem statement */ //@{ /** Penalty parameter for the \$l_1\$ norm */ /* ToDo make this parameter? */ Number rho_; /** scaling factor for eta calculation */ Number eta_factor_; /** exponent for mu in eta calculation */ Number eta_mu_exponent_; // TODO in the following we should use pointers to CONST values /** Scaling factors for the \$x\$ part of the regularization term */ SmartPtr dr_x_; SmartPtr DR_x_; //TODO We can get rid of one of the dr DR /** \$x\$ part of the reference point in the regularization term */ SmartPtr x_ref_; //@} /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ RestoIpoptNLP(); /** Copy Constructor */ RestoIpoptNLP(const RestoIpoptNLP&); /** Overloaded Equals Operator */ void operator=(const RestoIpoptNLP&); //@} /** @name Algorithmic parameter */ //@{ /** Flag indicating if evalution of the objective should be * performed for every restoration phase objective function * evaluation. */ bool evaluate_orig_obj_at_resto_trial_; /** Flag indicating how hessian information is obtained */ HessianApproximationType hessian_approximation_; //@} /** Flag indicating if initialization method has been called */ bool initialized_; /** @name Counters for the function evaluations */ //@{ Index f_evals_; Index grad_f_evals_; Index c_evals_; Index jac_c_evals_; Index d_evals_; Index jac_d_evals_; Index h_evals_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLoqoMuOracle.cpp0000644000076600007660000000420611504216567020531 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLoqoMuOracle.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpLoqoMuOracle.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LoqoMuOracle::LoqoMuOracle() : MuOracle() {} LoqoMuOracle::~LoqoMuOracle() {} bool LoqoMuOracle::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } bool LoqoMuOracle::CalculateMu(Number mu_min, Number mu_max, Number& new_mu) { DBG_START_METH("LoqoMuOracle::CalculateMu", dbg_verbosity); Number avrg_compl = IpCq().curr_avrg_compl(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " Average complemantarity is %lf\n", avrg_compl); Number xi = IpCq().curr_centrality_measure(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " Xi (distance from uniformity) is %lf\n", xi); //Number factor = 1.-tau_min_; //This is the original values Number factor = 0.05; //This is the value I used otherwise Number sigma = 0.1*pow(Min(factor*(1.-xi)/xi,2.),3.); Number mu = sigma*avrg_compl; Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " Barrier parameter proposed by LOQO rule is %lf\n", mu); // DELETEME char ssigma[40]; sprintf(ssigma, " sigma=%8.2e", sigma); IpData().Append_info_string(ssigma); sprintf(ssigma, " xi=%8.2e ", IpCq().curr_centrality_measure()); IpData().Append_info_string(ssigma); new_mu = Max(Min(mu_max, mu), mu_min); return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoPenaltyConvCheck.cpp0000644000076600007660000000441211504216567022403 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoPenaltyConvCheck.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-06-24 // based on IpRestoFilterConvCheck.cpp #include "IpRestoPenaltyConvCheck.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoPenaltyConvergenceCheck::RestoPenaltyConvergenceCheck() : orig_penalty_ls_acceptor_(NULL) { DBG_START_FUN("RestoPenaltyConvergenceCheck::RestoPenaltyConvergenceCheck()", dbg_verbosity); } RestoPenaltyConvergenceCheck::~RestoPenaltyConvergenceCheck() { DBG_START_FUN("~RestoPenaltyConvergenceCheck::RestoPenaltyConvergenceCheck()", dbg_verbosity); } void RestoPenaltyConvergenceCheck::SetOrigLSAcceptor (const BacktrackingLSAcceptor& orig_ls_acceptor) { orig_penalty_ls_acceptor_ = dynamic_cast(&orig_ls_acceptor); DBG_ASSERT(orig_penalty_ls_acceptor_); } void RestoPenaltyConvergenceCheck::RegisterOptions(SmartPtr roptions) {} bool RestoPenaltyConvergenceCheck::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_ASSERT(orig_penalty_ls_acceptor_ && "Need to call RestoPenaltyConvergenceCheck::SetOrigPenaltyLineSearch before Initialize"); return RestoConvergenceCheck::InitializeImpl(options, prefix); } ConvergenceCheck::ConvergenceStatus RestoPenaltyConvergenceCheck::TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta) { ConvergenceStatus status; if (!orig_penalty_ls_acceptor_->IsAcceptableToCurrentIterate(orig_trial_barr, orig_trial_theta, true) ) { Jnlst().Printf(J_DETAILED, J_MAIN, "Point is not acceptable to the original current point.\n"); status = CONTINUE; } else { Jnlst().Printf(J_DETAILED, J_MAIN, "Restoration found a point that provides sufficient reduction in" " theta and is acceptable to the current penalty function.\n"); status = CONVERGED; } return status; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpAdaptiveMuUpdate.cpp0000644000076600007660000006601712214316142021366 0ustar coincoin// Copyright (C) 2004, 2012 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAdaptiveMuUpdate.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpAdaptiveMuUpdate.hpp" #include "IpJournalist.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif AdaptiveMuUpdate::AdaptiveMuUpdate (const SmartPtr& line_search, const SmartPtr& free_mu_oracle, const SmartPtr& fix_mu_oracle) : MuUpdate(), linesearch_(line_search), free_mu_oracle_(free_mu_oracle), fix_mu_oracle_(fix_mu_oracle), filter_(2) { DBG_ASSERT(IsValid(linesearch_)); DBG_ASSERT(IsValid(free_mu_oracle_)); // fix_mu_oracle may be NULL } AdaptiveMuUpdate::~AdaptiveMuUpdate() {} void AdaptiveMuUpdate::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "mu_max_fact", "Factor for initialization of maximum value for barrier parameter.", 0.0, true, 1e3, "This option determines the upper bound on the barrier parameter. This " "upper bound is computed as the average complementarity at the initial " "point times the value of this option. (Only used if option " "\"mu_strategy\" is chosen as \"adaptive\".)"); roptions->AddLowerBoundedNumberOption( "mu_max", "Maximum value for barrier parameter.", 0.0, true, 1e5, "This option specifies an upper bound on the barrier parameter in the " "adaptive mu selection mode. If this option is set, it overwrites the " "effect of mu_max_fact. (Only used if option " "\"mu_strategy\" is chosen as \"adaptive\".)"); roptions->AddLowerBoundedNumberOption( "mu_min", "Minimum value for barrier parameter.", 0.0, true, 1e-11, "This option specifies the lower bound on the barrier parameter in the " "adaptive mu selection mode. By default, it is set to the minimum of 1e-11 and " "min(\"tol\",\"compl_inf_tol\")/(\"barrier_tol_factor\"+1), which " "should be a reasonable value. (Only used if option " "\"mu_strategy\" is chosen as \"adaptive\".)"); std::string prev_cat = roptions->RegisteringCategory(); roptions->SetRegisteringCategory("Undocumented"); roptions->AddLowerBoundedNumberOption( "adaptive_mu_safeguard_factor", "", 0.0, false, 0.0); roptions->SetRegisteringCategory(prev_cat); roptions->AddStringOption3( "adaptive_mu_globalization", "Globalization strategy for the adaptive mu selection mode.", "obj-constr-filter", "kkt-error", "nonmonotone decrease of kkt-error", "obj-constr-filter", "2-dim filter for objective and constraint violation", "never-monotone-mode", "disables globalization", "To achieve global convergence of the adaptive version, the algorithm " "has to switch to the monotone mode (Fiacco-McCormick approach) when " "convergence does not seem to appear. This option sets the " "criterion used to decide when to do this switch. (Only used if option " "\"mu_strategy\" is chosen as \"adaptive\".)"); roptions->AddLowerBoundedIntegerOption( "adaptive_mu_kkterror_red_iters", "Maximum number of iterations requiring sufficient progress.", 0, 4, "For the \"kkt-error\" based globalization strategy, sufficient " "progress must be made for \"adaptive_mu_kkterror_red_iters\" " "iterations. If this number of iterations is exceeded, the " "globalization strategy switches to the monotone mode."); roptions->AddBoundedNumberOption( "adaptive_mu_kkterror_red_fact", "Sufficient decrease factor for \"kkt-error\" globalization strategy.", 0.0, true, 1.0, true, 0.9999, "For the \"kkt-error\" based globalization strategy, the error " "must decrease by this factor to be deemed sufficient decrease."); roptions->AddBoundedNumberOption( "filter_margin_fact", "Factor determining width of margin for obj-constr-filter adaptive globalization strategy.", 0.0, true, 1.0, true, 1e-5, "When using the adaptive globalization strategy, \"obj-constr-filter\", " "sufficient progress for a filter entry is defined as " "follows: (new obj) < (filter obj) - filter_margin_fact*(new " "constr-viol) OR (new constr-viol) < (filter constr-viol) - " "filter_margin_fact*(new constr-viol). For the description of " "the \"kkt-error-filter\" option see \"filter_max_margin\"."); roptions->AddLowerBoundedNumberOption( "filter_max_margin", "Maximum width of margin in obj-constr-filter adaptive globalization strategy.", 0.0, true, 1.0, // ToDo Detailed description later ""); roptions->AddStringOption2( "adaptive_mu_restore_previous_iterate", "Indicates if the previous iterate should be restored if the monotone mode is entered.", "no", "no", "don't restore accepted iterate", "yes", "restore accepted iterate", "When the globalization strategy for the adaptive barrier algorithm " "switches to the monotone mode, it can either start " "from the most recent iterate (no), or from the last " "iterate that was accepted (yes)."); roptions->AddLowerBoundedNumberOption( "adaptive_mu_monotone_init_factor", "Determines the initial value of the barrier parameter when switching to the monotone mode.", 0.0, true, 0.8, "When the globalization strategy for the adaptive barrier algorithm " "switches to the monotone mode and fixed_mu_oracle is chosen as " "\"average_compl\", the barrier parameter is set to the " "current average complementarity times the value of " "\"adaptive_mu_monotone_init_factor\"."); roptions->AddStringOption4( "adaptive_mu_kkt_norm_type", "Norm used for the KKT error in the adaptive mu globalization strategies.", "2-norm-squared", "1-norm", "use the 1-norm (abs sum)", "2-norm-squared", "use the 2-norm squared (sum of squares)", "max-norm", "use the infinity norm (max)", "2-norm", "use 2-norm", "When computing the KKT error for the globalization strategies, the " "norm to be used is specified with this option. Note, this options is also used " "in the QualityFunctionMuOracle."); } bool AdaptiveMuUpdate::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("mu_max_fact", mu_max_fact_, prefix); if (!options.GetNumericValue("mu_max", mu_max_, prefix)) { // Set to a negative value as a hint that this value still has // to be computed mu_max_ = -1.; } options.GetNumericValue("tau_min", tau_min_, prefix); options.GetNumericValue("adaptive_mu_safeguard_factor", adaptive_mu_safeguard_factor_, prefix); options.GetNumericValue("adaptive_mu_kkterror_red_fact", refs_red_fact_, prefix); options.GetIntegerValue("adaptive_mu_kkterror_red_iters", num_refs_max_, prefix); Index enum_int; options.GetEnumValue("adaptive_mu_globalization", enum_int, prefix); adaptive_mu_globalization_ = AdaptiveMuGlobalizationEnum(enum_int); options.GetNumericValue("filter_max_margin", filter_max_margin_, prefix); options.GetNumericValue("filter_margin_fact", filter_margin_fact_, prefix); options.GetBoolValue("adaptive_mu_restore_previous_iterate", restore_accepted_iterate_, prefix); bool retvalue = free_mu_oracle_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); if (!retvalue) { return retvalue; } if (IsValid(fix_mu_oracle_)) { retvalue = fix_mu_oracle_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); if (!retvalue) { return retvalue; } } options.GetNumericValue("adaptive_mu_monotone_init_factor", adaptive_mu_monotone_init_factor_, prefix); options.GetNumericValue("barrier_tol_factor", barrier_tol_factor_, prefix); options.GetNumericValue("mu_linear_decrease_factor", mu_linear_decrease_factor_, prefix); options.GetNumericValue("mu_superlinear_decrease_power", mu_superlinear_decrease_power_, prefix); options.GetEnumValue("quality_function_norm_type", enum_int, prefix); adaptive_mu_kkt_norm_ = QualityFunctionMuOracle::NormEnum(enum_int); options.GetEnumValue("quality_function_centrality", enum_int, prefix); adaptive_mu_kkt_centrality_ = QualityFunctionMuOracle::CentralityEnum(enum_int); options.GetEnumValue("quality_function_balancing_term", enum_int, prefix); adaptive_mu_kkt_balancing_term_ = QualityFunctionMuOracle::BalancingTermEnum(enum_int); options.GetNumericValue("compl_inf_tol", compl_inf_tol_, prefix); if (prefix == "resto.") { if (!options.GetNumericValue("mu_min", mu_min_, prefix)) { // For restoration phase, we choose a more conservative mu_min mu_min_ = 1e2*mu_min_; // Compute mu_min based on tolerance (once the NLP scaling is known) mu_min_default_ = true; } else { mu_min_default_ = false; } } else { if (!options.GetNumericValue("mu_min", mu_min_, prefix)) { // Compute mu_min based on tolerance (once the NLP scaling is known) mu_min_default_ = true; } else { mu_min_default_ = false; } } options.GetNumericValue("mu_target", mu_target_, prefix); init_dual_inf_ = -1.; init_primal_inf_ = -1.; refs_vals_.clear(); check_if_no_bounds_ = false; no_bounds_ = false; filter_.Clear(); IpData().SetFreeMuMode(true); accepted_point_ = NULL; // The following lines are only here so that // IpoptCalculatedQuantities::CalculateSafeSlack and the first // output line have something to work with IpData().Set_mu(1.); IpData().Set_tau(0.); return retvalue; } bool AdaptiveMuUpdate::UpdateBarrierParameter() { DBG_START_METH("AdaptiveMuUpdate::UpdateBarrierParameter", dbg_verbosity); // if min_mu_ has not been given, we now set the default (can't do // that earlier, because during call of InitializeImpl, the // scaling in the NLP is not yet determined). We compute this // here in every iteration, since the tolerance might be changed // (e.g. in the restoration phase) if (mu_min_default_) { mu_min_ = Min(mu_min_, 0.5*Min(IpData().tol(), IpNLP().NLP_scaling()->apply_obj_scaling(compl_inf_tol_))); } // if mu_max has not yet been computed, do so now, based on the // current average complementarity if (mu_max_<0.) { mu_max_ = mu_max_fact_*IpCq().curr_avrg_compl(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Setting mu_max to %e.\n", mu_max_); } // if there are not bounds, we always return the minimum MU value if (!check_if_no_bounds_) { Index n_bounds = IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim(); if (n_bounds==0) { no_bounds_ = true; IpData().Set_mu(mu_min_); IpData().Set_tau(tau_min_); } check_if_no_bounds_ = true; } if (no_bounds_) return true; bool tiny_step_flag = IpData().tiny_step_flag(); IpData().Set_tiny_step_flag(false); if (!IpData().FreeMuMode()) { // if we are in the fixed mu mode, we need to check if the // current iterate is good enough to continue with the free mode bool sufficient_progress = CheckSufficientProgress(); if (sufficient_progress && !tiny_step_flag) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Switching back to free mu mode.\n"); IpData().SetFreeMuMode(true); // Skipping Restoration phase? RememberCurrentPointAsAccepted(); } else { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Remaining in fixed mu mode.\n"); // ToDo decide whether we want this for all options Number sub_problem_error = IpCq().curr_barrier_error(); Number mu = IpData().curr_mu(); if (sub_problem_error <= barrier_tol_factor_ * mu || tiny_step_flag) { // If the current barrier problem has been solved sufficiently // well, decrease mu // ToDo combine this code with MonotoneMuUpdate Number tol = IpData().tol(); Number compl_inf_tol = IpNLP().NLP_scaling()->apply_obj_scaling(compl_inf_tol_); Number new_mu = Min( mu_linear_decrease_factor_*mu, pow(mu, mu_superlinear_decrease_power_) ); DBG_PRINT((1,"new_mu = %e, compl_inf_tol = %e tol = %e\n", new_mu, compl_inf_tol, tol)); new_mu = Max(new_mu, Min(compl_inf_tol, tol)/(barrier_tol_factor_+1.)); if (tiny_step_flag && new_mu == mu) { THROW_EXCEPTION(TINY_STEP_DETECTED, "Problem solved to best possible numerical accuracy"); } Number new_tau = Compute_tau_monotone(mu); IpData().Set_mu(new_mu); IpData().Set_tau(new_tau); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Reducing mu to %24.16e in fixed mu mode. Tau becomes %24.16e\n", new_mu, new_tau); linesearch_->Reset(); } } } else { // Here we are in the free mu mode. bool sufficient_progress = CheckSufficientProgress(); if (adaptive_mu_globalization_!=NEVER_MONOTONE_MODE && (linesearch_->CheckSkippedLineSearch() || tiny_step_flag) ) { sufficient_progress = false; } if (sufficient_progress) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Staying in free mu mode.\n"); RememberCurrentPointAsAccepted(); } else { IpData().SetFreeMuMode(false); if (restore_accepted_iterate_) { // Restore most recent accepted iterate to start fixed mode from Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Restoring most recent accepted point.\n"); SmartPtr prev_iter = accepted_point_->MakeNewContainer(); IpData().set_trial(prev_iter); IpData().AcceptTrialPoint(); } // Set the new values for mu and tau and tell the linesearch // to reset its memory Number mu = NewFixedMu(); Number tau = Compute_tau_monotone(mu); if (tiny_step_flag && mu==IpData().curr_mu()) { THROW_EXCEPTION(TINY_STEP_DETECTED, "Problem solved to best possible numerical accuracy"); } IpData().Set_mu(mu); IpData().Set_tau(tau); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Switching to fixed mu mode with mu = %24.16e and tau = %24.16e.\n", mu, tau); linesearch_->Reset(); // Skipping Restoration phase? } } if (IpData().FreeMuMode()) { // Choose the fraction-to-the-boundary parameter for the current // iteration // ToDo: Is curr_nlp_error really what we should use here? Number tau = Max(tau_min_, 1.-IpCq().curr_nlp_error()); IpData().Set_tau(tau); // Compute the new barrier parameter via the oracle Number mu; bool retval = free_mu_oracle_->CalculateMu(Max(mu_min_, mu_target_), mu_max_, mu); if (!retval) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "The mu oracle could not compute a new value of the barrier parameter.\n"); return false; } mu = Max(mu, mu_min_); Number mu_lower_safe = lower_mu_safeguard(); if (mu < mu_lower_safe) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "mu = %e smaller than safeguard = %e. Increasing mu.\n", mu, mu_lower_safe); mu = mu_lower_safe; IpData().Append_info_string("m"); } Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Barrier parameter mu computed by oracle is %e\n", mu); // Apply safeguards if appropriate mu = Min(mu, mu_max_); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Barrier parameter mu after safeguards is %e\n", mu); // Set the new values IpData().Set_mu(mu); linesearch_->Reset(); // Uncomment the next line if the line search should not switch to // the restoration phase in the free mode // linesearch_->SetRigorousLineSearch(false); } else { IpData().Append_info_string("F"); linesearch_->SetRigorousLineSearch(true); } return true; } bool AdaptiveMuUpdate::CheckSufficientProgress() { bool retval = true; switch (adaptive_mu_globalization_) { case KKT_ERROR : { Index num_refs = (Index)refs_vals_.size(); if (num_refs >= num_refs_max_) { retval = false; Number curr_error = quality_function_pd_system(); std::list::iterator iter; for (iter = refs_vals_.begin(); iter != refs_vals_.end(); iter++) { if ( curr_error <= refs_red_fact_*(*iter) ) { retval = true; } } } } break; case FILTER_OBJ_CONSTR : { /* retval = filter_.Acceptable(IpCq().curr_f(), IpCq().curr_constraint_violation()); */ // ToDo: Is curr_nlp_error really what we should use here? Number curr_error = IpCq().curr_nlp_error(); Number margin = filter_margin_fact_*Min(filter_max_margin_, curr_error); retval = filter_.Acceptable(IpCq().curr_f() + margin, IpCq().curr_constraint_violation() + margin); } break; case NEVER_MONOTONE_MODE : retval = true; break; default: DBG_ASSERT(false && "Unknown adaptive_mu_globalization value."); } return retval; } void AdaptiveMuUpdate::RememberCurrentPointAsAccepted() { switch (adaptive_mu_globalization_) { case KKT_ERROR : { Number curr_error = quality_function_pd_system(); Index num_refs = (Index)refs_vals_.size(); if (num_refs >= num_refs_max_) { refs_vals_.pop_front(); } refs_vals_.push_back(curr_error); if (Jnlst().ProduceOutput(J_MOREDETAILED, J_BARRIER_UPDATE)) { Index num_refs = 0; std::list::iterator iter; for (iter = refs_vals_.begin(); iter != refs_vals_.end(); iter++) { num_refs++; Jnlst().Printf(J_MOREDETAILED, J_BARRIER_UPDATE, "pd system reference[%2d] = %.6e\n", num_refs, *iter); } } } break; case FILTER_OBJ_CONSTR : { /* Number theta = IpCq().curr_constraint_violation(); filter_.AddEntry(IpCq().curr_f() - filter_margin_fact_*theta, IpCq().curr_constraint_violation() - filter_margin_fact_*theta, IpData().iter_count()); filter_.Print(Jnlst()); */ filter_.AddEntry(IpCq().curr_f(), IpCq().curr_constraint_violation(), IpData().iter_count()); filter_.Print(Jnlst()); } break; case NEVER_MONOTONE_MODE : { // Nothing to be done } break; default: DBG_ASSERT(false && "Unknown corrector_type value."); } if (restore_accepted_iterate_) { // Keep pointers to this iterate so that it could be restored accepted_point_ = IpData().curr(); } } Number AdaptiveMuUpdate::Compute_tau_monotone(Number mu) { return Max(tau_min_, 1.-mu); } Number AdaptiveMuUpdate::min_ref_val() { DBG_ASSERT(adaptive_mu_globalization_==KKT_ERROR); Number min_ref; DBG_ASSERT(refs_vals_.size()>0); std::list::iterator iter = refs_vals_.begin(); min_ref = *iter; iter++; while (iter != refs_vals_.end()) { min_ref = Min(min_ref, *iter); iter++; } return min_ref; } Number AdaptiveMuUpdate::max_ref_val() { DBG_ASSERT(adaptive_mu_globalization_==KKT_ERROR); Number max_ref; DBG_ASSERT(refs_vals_.size()>0); std::list::iterator iter = refs_vals_.begin(); max_ref = *iter; iter++; while (iter != refs_vals_.end()) { max_ref = Max(max_ref, *iter); iter++; } return max_ref; } Number AdaptiveMuUpdate::NewFixedMu() { Number max_ref; // ToDo: Decide whether we should impose an upper bound on // mu based on the smallest reference value. For now, don't // impose one. max_ref = 1e20; /* switch (adaptive_mu_globalization_) { case 1 : max_ref = max_ref_val(); break; case 2 : { max_ref = 1e20; } break; default: DBG_ASSERT("Unknown corrector_type value."); } */ Number new_mu; bool have_mu = false; ; if (IsValid(fix_mu_oracle_)) { have_mu = fix_mu_oracle_->CalculateMu(Max(mu_min_, mu_target_), mu_max_, new_mu); if (!have_mu) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "New fixed value for mu could not be computed from the mu_oracle.\n"); } } if (!have_mu) { new_mu = adaptive_mu_monotone_init_factor_*IpCq().curr_avrg_compl(); } new_mu = Max(new_mu, lower_mu_safeguard()); new_mu = Min(new_mu, 0.1 * max_ref); new_mu = Max(new_mu, mu_min_); new_mu = Min(new_mu, mu_max_); return new_mu; } Number AdaptiveMuUpdate::quality_function_pd_system() { Index n_dual = IpData().curr()->x()->Dim() + IpData().curr()->s()->Dim(); Index n_pri = IpData().curr()->y_c()->Dim() + IpData().curr()->y_d()->Dim(); Index n_comp = IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim(); Number dual_inf=0.; Number primal_inf=0.; Number complty=0.; switch (adaptive_mu_kkt_norm_) { case QualityFunctionMuOracle::NM_NORM_1: dual_inf = IpCq().curr_dual_infeasibility(NORM_1); primal_inf = IpCq().curr_primal_infeasibility(NORM_1); complty = IpCq().curr_complementarity(0., NORM_1); dual_inf /= (Number)n_dual; DBG_ASSERT(n_pri>0 || primal_inf==0.); if (n_pri>0) { primal_inf /= (Number)n_pri; } DBG_ASSERT(n_comp>0 || complty==0.); if (n_comp>0) { complty /= (Number)n_comp; } break; case QualityFunctionMuOracle::NM_NORM_2_SQUARED: dual_inf = IpCq().curr_dual_infeasibility(NORM_2); dual_inf *= dual_inf; primal_inf = IpCq().curr_primal_infeasibility(NORM_2); primal_inf *= primal_inf; complty = IpCq().curr_complementarity(0., NORM_2); complty *= complty; dual_inf /= (Number)n_dual; DBG_ASSERT(n_pri>0 || primal_inf==0.); if (n_pri>0) { primal_inf /= (Number)n_pri; } DBG_ASSERT(n_comp>0 || complty==0.); if (n_comp>0) { complty /= (Number)n_comp; } break; case QualityFunctionMuOracle::NM_NORM_MAX: dual_inf = IpCq().curr_dual_infeasibility(NORM_MAX); primal_inf = IpCq().curr_primal_infeasibility(NORM_MAX); complty = IpCq().curr_complementarity(0., NORM_MAX); break; case QualityFunctionMuOracle::NM_NORM_2: dual_inf = IpCq().curr_dual_infeasibility(NORM_2); primal_inf = IpCq().curr_primal_infeasibility(NORM_2); complty = IpCq().curr_complementarity(0., NORM_2); dual_inf /= sqrt((Number)n_dual); DBG_ASSERT(n_pri>0 || primal_inf==0.); if (n_pri>0) { primal_inf /= sqrt((Number)n_pri); } DBG_ASSERT(n_comp>0 || complty==0.); if (n_comp>0) { complty /= sqrt((Number)n_comp); } break; } Number centrality = 0.; if (adaptive_mu_kkt_centrality_!=0) { Number xi = IpCq().curr_centrality_measure(); switch (adaptive_mu_kkt_centrality_) { case 1: centrality = -complty*log(xi); break; case 2: centrality = complty/xi; break; case 3: centrality = complty/pow(xi,3); break; default: DBG_ASSERT(false && "Unknown value for adaptive_mu_kkt_centrality_"); } } Number balancing_term=0.; switch (adaptive_mu_kkt_balancing_term_) { case 0: //Nothing break; case 1: balancing_term = pow(Max(0., Max(dual_inf,primal_inf)-complty),3); break; default: DBG_ASSERT(false && "Unknown value for adaptive_mu_kkt_balancing_term"); } DBG_ASSERT(centrality>=0.); DBG_ASSERT(balancing_term>=0); Number kkt_error = primal_inf + dual_inf + complty + centrality + balancing_term; Jnlst().Printf(J_MOREDETAILED, J_BARRIER_UPDATE, "KKT error in barrier update check:\n" " primal infeasibility: %15.6e\n" " dual infeasibility: %15.6e\n" " complementarity: %15.6e\n" " centrality: %15.6e\n" " kkt error: %15.6e\n", primal_inf, dual_inf, complty, centrality, kkt_error); return kkt_error; } Number AdaptiveMuUpdate::lower_mu_safeguard() { DBG_START_METH("AdaptiveMuUpdate::lower_mu_safeguard", dbg_verbosity); if (adaptive_mu_safeguard_factor_ == 0.) return 0.; Number dual_inf = IpCq().curr_dual_infeasibility(NORM_1); Number primal_inf = IpCq().curr_primal_infeasibility(NORM_1); Index n_dual = IpData().curr()->x()->Dim() + IpData().curr()->s()->Dim(); dual_inf /= (Number)n_dual; Index n_pri = IpData().curr()->y_c()->Dim() + IpData().curr()->y_d()->Dim(); DBG_ASSERT(n_pri>0 || primal_inf==0.); if (n_pri>0) { primal_inf /= (Number)n_pri; } if (init_dual_inf_ < 0.) { init_dual_inf_ = Max(1., dual_inf); } if (init_primal_inf_ < 0.) { init_primal_inf_ = Max(1., primal_inf); } Number lower_mu_safeguard = Max(adaptive_mu_safeguard_factor_ * (dual_inf/init_dual_inf_), adaptive_mu_safeguard_factor_ * (primal_inf/init_primal_inf_)); DBG_PRINT((1,"dual_inf=%e init_dual_inf_=%e primal_inf=%e init_primal_inf_=%e\n", dual_inf, init_dual_inf_, primal_inf, init_primal_inf_)); if (adaptive_mu_globalization_==KKT_ERROR) { lower_mu_safeguard = Min(lower_mu_safeguard, min_ref_val()); } return lower_mu_safeguard; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpAlgorithmRegOp.cpp0000644000076600007660000001066711504216567021062 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgorithmRegOp.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #include "IpAlgorithmRegOp.hpp" #include "IpRegOptions.hpp" #include "IpAdaptiveMuUpdate.hpp" #include "IpAlgBuilder.hpp" #include "IpDefaultIterateInitializer.hpp" #include "IpBacktrackingLineSearch.hpp" #include "IpFilterLSAcceptor.hpp" #include "IpGradientScaling.hpp" #include "IpEquilibrationScaling.hpp" #include "IpIpoptAlg.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpIpoptData.hpp" #include "IpMonotoneMuUpdate.hpp" #include "IpNLPScaling.hpp" #include "IpOptErrorConvCheck.hpp" #include "IpOrigIpoptNLP.hpp" #include "IpOrigIterationOutput.hpp" #include "IpLimMemQuasiNewtonUpdater.hpp" #include "IpPDFullSpaceSolver.hpp" #include "IpPDPerturbationHandler.hpp" #include "IpPDSearchDirCalc.hpp" #include "IpPenaltyLSAcceptor.hpp" #include "IpProbingMuOracle.hpp" #include "IpQualityFunctionMuOracle.hpp" #include "IpRestoConvCheck.hpp" #include "IpRestoFilterConvCheck.hpp" #include "IpRestoIpoptNLP.hpp" #include "IpRestoMinC_1Nrm.hpp" #include "IpRestoPenaltyConvCheck.hpp" #include "IpWarmStartIterateInitializer.hpp" namespace Ipopt { void RegisterOptions_Algorithm(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Barrier Parameter Update"); AdaptiveMuUpdate::RegisterOptions(roptions); roptions->SetRegisteringCategory("Initialization"); DefaultIterateInitializer::RegisterOptions(roptions); roptions->SetRegisteringCategory("Main Algorithm"); AlgorithmBuilder::RegisterOptions(roptions); roptions->SetRegisteringCategory("Line Search"); BacktrackingLineSearch::RegisterOptions(roptions); roptions->SetRegisteringCategory("Line Search"); FilterLSAcceptor::RegisterOptions(roptions); roptions->SetRegisteringCategory("Line Search"); PenaltyLSAcceptor::RegisterOptions(roptions); roptions->SetRegisteringCategory("NLP Scaling"); StandardScalingBase::RegisterOptions(roptions); roptions->SetRegisteringCategory("NLP Scaling"); GradientScaling::RegisterOptions(roptions); roptions->SetRegisteringCategory("NLP Scaling"); EquilibrationScaling::RegisterOptions(roptions); roptions->SetRegisteringCategory("Uncategorized"); IpoptAlgorithm::RegisterOptions(roptions); roptions->SetRegisteringCategory("Uncategorized"); IpoptData::RegisterOptions(roptions); roptions->SetRegisteringCategory("Uncategorized"); IpoptCalculatedQuantities::RegisterOptions(roptions); roptions->SetRegisteringCategory("Hessian Approximation"); LimMemQuasiNewtonUpdater::RegisterOptions(roptions); roptions->SetRegisteringCategory("Barrier Parameter Update"); MonotoneMuUpdate::RegisterOptions(roptions); roptions->SetRegisteringCategory("Convergence"); OptimalityErrorConvergenceCheck::RegisterOptions(roptions); roptions->SetRegisteringCategory("NLP"); OrigIpoptNLP::RegisterOptions(roptions); roptions->SetRegisteringCategory("Output"); OrigIterationOutput::RegisterOptions(roptions); roptions->SetRegisteringCategory("Step Calculation"); PDSearchDirCalculator::RegisterOptions(roptions); roptions->SetRegisteringCategory("Step Calculation"); PDFullSpaceSolver::RegisterOptions(roptions); roptions->SetRegisteringCategory("Step Calculation"); PDPerturbationHandler::RegisterOptions(roptions); roptions->SetRegisteringCategory("Barrier Parameter Update"); ProbingMuOracle::RegisterOptions(roptions); roptions->SetRegisteringCategory("Barrier Parameter Update"); QualityFunctionMuOracle::RegisterOptions(roptions); roptions->SetRegisteringCategory("Restoration Phase"); RestoConvergenceCheck::RegisterOptions(roptions); roptions->SetRegisteringCategory("Restoration Phase"); RestoFilterConvergenceCheck::RegisterOptions(roptions); roptions->SetRegisteringCategory("Restoration Phase"); RestoIpoptNLP::RegisterOptions(roptions); roptions->SetRegisteringCategory("Restoration Phase"); RestoPenaltyConvergenceCheck::RegisterOptions(roptions); roptions->SetRegisteringCategory("Restoration Phase"); MinC_1NrmRestorationPhase::RegisterOptions(roptions); roptions->SetRegisteringCategory("Warm Start"); WarmStartIterateInitializer::RegisterOptions(roptions); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpOptErrorConvCheck.hpp0000644000076600007660000000741211504216567021536 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOptErrorConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPOPTERRORCONVCHECK_HPP__ #define __IPOPTERRORCONVCHECK_HPP__ #include "IpConvCheck.hpp" namespace Ipopt { /** Brief Class Description. * Detailed Class Description. */ class OptimalityErrorConvergenceCheck : public ConvergenceCheck { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ OptimalityErrorConvergenceCheck(); /** Default destructor */ virtual ~OptimalityErrorConvergenceCheck(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Overloaded convergence check */ virtual ConvergenceStatus CheckConvergence(bool call_intermediate_callback = true); /** Auxilliary function for testing whether current iterate * satisfies the acceptable level of optimality */ virtual bool CurrentIsAcceptable(); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /** @name Algorithmic parameters */ //@{ /** Maximal number of iterations */ Index max_iterations_; /** Tolerance on unscaled dual infeasibility */ Number dual_inf_tol_; /** Tolerance on unscaled constraint violation */ Number constr_viol_tol_; /** Tolerance on unscaled complementarity */ Number compl_inf_tol_; /** Number of iterations with acceptable level of accuracy, after * which the algorithm terminates. If 0, this heuristic is * disabled. */ Index acceptable_iter_; /** Acceptable tolerance for the problem to terminate earlier if * algorithm seems stuck or cycling */ Number acceptable_tol_; /** Acceptable tolerance on unscaled dual infeasibility */ Number acceptable_dual_inf_tol_; /** Acceptable tolerance on unscaled constraint violation */ Number acceptable_constr_viol_tol_; /** Acceptable tolerance on unscaled complementarity */ Number acceptable_compl_inf_tol_; /** Acceptable tolerance for relative objective function change * from iteratoin to iteration. */ Number acceptable_obj_change_tol_; /** Threshold for primal iterates for divergence test */ Number diverging_iterates_tol_; /** Desired value of the barrier parameter */ Number mu_target_; /** Upper bound on CPU time */ Number max_cpu_time_; //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ OptimalityErrorConvergenceCheck(const OptimalityErrorConvergenceCheck&); /** Overloaded Equals Operator */ void operator=(const OptimalityErrorConvergenceCheck&); //@} /** Counter for successive iterations in which acceptability * criteria are met. */ Index acceptable_counter_; /** Value of the objective function from last iteration. This is for accpetable_obj_change_tol. */ Number last_obj_val_; /** Value of the objective function from current iteration. This is for accpetable_obj_change_tol. */ Number curr_obj_val_; /** Iteration counter for which last_obj_val most recently updated. */ Index last_obj_val_iter_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpFilter.hpp0000644000076600007660000001125011504216567017416 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpFilter.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPFILTER_HPP__ #define __IPFILTER_HPP__ #include "IpJournalist.hpp" #include "IpDebug.hpp" #include #include namespace Ipopt { /** Class for one filter entry. */ class FilterEntry { public: /**@name Constructors/Destructors */ //@{ /** Constructor with the two components and the current iteration count */ FilterEntry(std::vector vals, Index iter); /** Default Destructor */ ~FilterEntry(); //@} /** Check acceptability of pair (phi,theta) with respect * to this filter entry. Returns true, if pair is acceptable. */ bool Acceptable(std::vector vals) const { Index ncoor = (Index)vals_.size(); DBG_ASSERT((Index)vals.size() == ncoor); // ToDo decide if we need Compare_le bool retval = false; for (Index i=0; i vals) const { Index ncoor = (Index)vals_.size(); DBG_ASSERT((Index)vals.size() == ncoor); bool retval = true; for (Index i=0; i vals_[i]) { retval = false; break; } } return retval; } /** @name Accessor functions */ //@{ Number val(Index i) const { return vals_[i]; } Index iter() const { return iter_; } //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ FilterEntry(); /** Copy Constructor */ FilterEntry(const FilterEntry&); /** Overloaded Equals Operator */ void operator=(const FilterEntry&); //@} /** values defining the coordinates of the entry */ std::vector vals_; /** iteration number in which this entry was added to filter */ const Index iter_; }; /** Class for the filter. This class contains all filter entries. * The entries are stored as the corner point, including the * margin. */ class Filter { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ Filter(Index dim); /** Default Destructor */ ~Filter() { //ToDo figure out if that here is necessary Clear(); } //@} /** Check acceptability of given coordinates with respect * to the filter. Returns true, if pair is acceptable */ bool Acceptable(std::vector vals) const; /** Add filter entry for given coordinates. This will also * delete all dominated entries in the current filter. */ void AddEntry(std::vector vals, Index iteration); /** @name Wrappers for 2-dimensional filter. */ //@{ bool Acceptable(Number val1, Number val2) const { std::vector vals(2); vals[0] = val1; vals[1] = val2; return Acceptable(vals); } void AddEntry(Number val1, Number val2, Index iteration) { std::vector vals(2); vals[0] = val1; vals[1] = val2; AddEntry(vals, iteration); } //@} /** Delete all filter entries */ void Clear(); /** Print current filter entries */ void Print(const Journalist& jnlst); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ Filter(); /** Copy Constructor */ Filter(const Filter&); /** Overloaded Equals Operator */ void operator=(const Filter&); //@} /** Dimension of the filter (number of coordinates per entry) */ Index dim_; /** List storing the filter entries */ mutable std::list filter_list_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpNLPScaling.hpp0000644000076600007660000004226411603651604020127 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpNLPScaling.hpp 2036 2011-07-02 17:21:08Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPNLPSCALING_HPP__ #define __IPNLPSCALING_HPP__ #include "IpOptionsList.hpp" #include "IpRegOptions.hpp" namespace Ipopt { // forward declarations class Vector; class VectorSpace; class Matrix; class MatrixSpace; class SymMatrix; class SymMatrixSpace; class ScaledMatrixSpace; class SymScaledMatrixSpace; /** This is the abstract base class for problem scaling. * It is repsonsible for determining the scaling factors * and mapping quantities in and out of scaled and unscaled * versions */ class NLPScalingObject : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ NLPScalingObject(); /** Default destructor */ virtual ~NLPScalingObject(); //@} /** Method to initialize the options */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { jnlst_ = &jnlst; return InitializeImpl(options, prefix); } /** Methods to map scaled and unscaled matrices */ //@{ /** Returns an obj-scaled version of the given scalar */ virtual Number apply_obj_scaling(const Number& f)=0; /** Returns an obj-unscaled version of the given scalar */ virtual Number unapply_obj_scaling(const Number& f)=0; /** Returns an x-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_x_NonConst(const SmartPtr& v)=0; /** Returns an x-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_x(const SmartPtr& v)=0; /** Returns an x-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_x_NonConst(const SmartPtr& v)=0; /** Returns an x-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_x(const SmartPtr& v)=0; /** Returns an c-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_c(const SmartPtr& v)=0; /** Returns an c-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_c(const SmartPtr& v)=0; /** Returns an c-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_c_NonConst(const SmartPtr& v)=0; /** Returns an c-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_c_NonConst(const SmartPtr& v)=0; /** Returns an d-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_d(const SmartPtr& v)=0; /** Returns an d-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_d(const SmartPtr& v)=0; /** Returns an d-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_d_NonConst(const SmartPtr& v)=0; /** Returns an d-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_d_NonConst(const SmartPtr& v)=0; /** Returns a scaled version of the jacobian for c. If the * overloaded method does not make a new matrix, make sure to set * the matrix ptr passed in to NULL. */ virtual SmartPtr apply_jac_c_scaling(SmartPtr matrix)=0; /** Returns a scaled version of the jacobian for d If the * overloaded method does not create a new matrix, make sure to * set the matrix ptr passed in to NULL. */ virtual SmartPtr apply_jac_d_scaling(SmartPtr matrix)=0; /** Returns a scaled version of the hessian of the lagrangian If * the overloaded method does not create a new matrix, make sure * to set the matrix ptr passed in to NULL. */ virtual SmartPtr apply_hessian_scaling(SmartPtr matrix)=0; //@} /** Methods for scaling bounds - these wrap those above */ //@{ /** Returns an x-scaled vector in the x_L or x_U space */ SmartPtr apply_vector_scaling_x_LU_NonConst( const Matrix& Px_LU, const SmartPtr& lu, const VectorSpace& x_space); /** Returns an x-scaled vector in the x_L or x_U space */ SmartPtr apply_vector_scaling_x_LU( const Matrix& Px_LU, const SmartPtr& lu, const VectorSpace& x_space); /** Returns an d-scaled vector in the d_L or d_U space */ SmartPtr apply_vector_scaling_d_LU_NonConst( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space); /** Returns an d-scaled vector in the d_L or d_U space */ SmartPtr apply_vector_scaling_d_LU( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space); /** Returns an d-unscaled vector in the d_L or d_U space */ SmartPtr unapply_vector_scaling_d_LU_NonConst( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space); /** Returns an d-unscaled vector in the d_L or d_U space */ SmartPtr unapply_vector_scaling_d_LU( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space); //@} /** Methods for scaling the gradient of the objective - wraps the * virtual methods above */ //@{ /** Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector */ virtual SmartPtr apply_grad_obj_scaling_NonConst(const SmartPtr& v); /** Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector */ virtual SmartPtr apply_grad_obj_scaling(const SmartPtr& v); /** Returns a grad_f unscaled version (d_f * D_x^{-1}) of the * given vector */ virtual SmartPtr unapply_grad_obj_scaling_NonConst(const SmartPtr& v); /** Returns a grad_f unscaled version (d_f * D_x^{-1}) of the * given vector */ virtual SmartPtr unapply_grad_obj_scaling(const SmartPtr& v); //@} /** @name Methods for determining whether scaling for entities is * done */ //@{ /** Returns true if the primal x variables are scaled. */ virtual bool have_x_scaling()=0; /** Returns true if the equality constraints are scaled. */ virtual bool have_c_scaling()=0; /** Returns true if the inequality constraints are scaled. */ virtual bool have_d_scaling()=0; //@} /** This method is called by the IpoptNLP's at a convenient time to * compute and/or read scaling factors */ virtual void DetermineScaling(const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, SmartPtr& new_jac_c_space, SmartPtr& new_jac_d_space, SmartPtr& new_h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U)=0; protected: /** Implementation of the initialization method that has to be * overloaded by for each derived class. */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix)=0; /** Accessor method for the journalist */ const Journalist& Jnlst() const { return *jnlst_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ NLPScalingObject(const NLPScalingObject&); /** Overloaded Equals Operator */ void operator=(const NLPScalingObject&); //@} SmartPtr jnlst_; }; /** This is a base class for many standard scaling * techniques. The overloaded classes only need to * provide the scaling parameters */ class StandardScalingBase : public NLPScalingObject { public: /**@name Constructors/Destructors */ //@{ StandardScalingBase(); /** Default destructor */ virtual ~StandardScalingBase(); //@} /** Methods to map scaled and unscaled matrices */ //@{ /** Returns an obj-scaled version of the given scalar */ virtual Number apply_obj_scaling(const Number& f); /** Returns an obj-unscaled version of the given scalar */ virtual Number unapply_obj_scaling(const Number& f); /** Returns an x-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_x_NonConst(const SmartPtr& v); /** Returns an x-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_x(const SmartPtr& v); /** Returns an x-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_x_NonConst(const SmartPtr& v); /** Returns an x-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_x(const SmartPtr& v); /** Returns an c-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_c(const SmartPtr& v); /** Returns an c-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_c(const SmartPtr& v); /** Returns an c-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_c_NonConst(const SmartPtr& v); /** Returns an c-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_c_NonConst(const SmartPtr& v); /** Returns an d-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_d(const SmartPtr& v); /** Returns an d-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_d(const SmartPtr& v); /** Returns an d-scaled version of the given vector */ virtual SmartPtr apply_vector_scaling_d_NonConst(const SmartPtr& v); /** Returns an d-unscaled version of the given vector */ virtual SmartPtr unapply_vector_scaling_d_NonConst(const SmartPtr& v); /** Returns a scaled version of the jacobian for c. If the * overloaded method does not make a new matrix, make sure to set * the matrix ptr passed in to NULL. */ virtual SmartPtr apply_jac_c_scaling(SmartPtr matrix); /** Returns a scaled version of the jacobian for d If the * overloaded method does not create a new matrix, make sure to * set the matrix ptr passed in to NULL. */ virtual SmartPtr apply_jac_d_scaling(SmartPtr matrix); /** Returns a scaled version of the hessian of the lagrangian If * the overloaded method does not create a new matrix, make sure * to set the matrix ptr passed in to NULL. */ virtual SmartPtr apply_hessian_scaling(SmartPtr matrix); //@} /** @name Methods for determining whether scaling for entities is * done */ //@{ virtual bool have_x_scaling(); virtual bool have_c_scaling(); virtual bool have_d_scaling(); //@} /** This method is called by the IpoptNLP's at a convenient time to * compute and/or read scaling factors */ virtual void DetermineScaling(const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, SmartPtr& new_jac_c_space, SmartPtr& new_jac_d_space, SmartPtr& new_h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /** Overloaded initialization method */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** This is the method that has to be overloaded by a particular * scaling method that somehow computes the scaling vectors dx, * dc, and dd. The pointers to those vectors can be NULL, in * which case no scaling for that item will be done later. */ virtual void DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd)=0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ StandardScalingBase(const StandardScalingBase&); /** Overloaded Equals Operator */ void operator=(const StandardScalingBase&); //@} /** Scaling parameters - we only need to keep copies of * the objective scaling and the x scaling - the others we can * get from the scaled matrix spaces. */ //@{ /** objective scaling parameter */ Number df_; /** x scaling */ SmartPtr dx_; //@} /** Scaled Matrix Spaces */ //@{ /** Scaled jacobian of c space */ SmartPtr scaled_jac_c_space_; /** Scaled jacobian of d space */ SmartPtr scaled_jac_d_space_; /** Scaled hessian of lagrangian spacea */ SmartPtr scaled_h_space_; //@} /** @name Algorithmic parameters */ //@{ /** Additional scaling value for the objective function */ Number obj_scaling_factor_; //@} }; /** Class implementing the scaling object that doesn't to any scaling */ class NoNLPScalingObject : public StandardScalingBase { public: /**@name Constructors/Destructors */ //@{ NoNLPScalingObject() {} /** Default destructor */ virtual ~NoNLPScalingObject() {} //@} protected: /** Overloaded from StandardScalingBase */ virtual void DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ NoNLPScalingObject(const NoNLPScalingObject&); /** Overloaded Equals Operator */ void operator=(const NoNLPScalingObject&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLeastSquareMults.cpp0000644000076600007660000000645511504216567021455 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLeastSquareMults.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #include "IpLeastSquareMults.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LeastSquareMultipliers::LeastSquareMultipliers(AugSystemSolver& augSysSolver) : EqMultiplierCalculator(), augsyssolver_(&augSysSolver) {} bool LeastSquareMultipliers::InitializeImpl(const OptionsList& options, const std::string& prefix) { return augsyssolver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool LeastSquareMultipliers::CalculateMultipliers (Vector& y_c, Vector& y_d) { DBG_START_METH("LeastSquareMultipliers::CalculateMultipliers", dbg_verbosity); SmartPtr zeroW = IpNLP().uninitialized_h(); DBG_PRINT_MATRIX(2, "zeroW", *zeroW); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); SmartPtr grad_f = IpCq().curr_grad_f(); SmartPtr Px_L = IpNLP().Px_L(); SmartPtr Px_U = IpNLP().Px_U(); SmartPtr Pd_L = IpNLP().Pd_L(); SmartPtr Pd_U = IpNLP().Pd_U(); SmartPtr z_L = IpData().curr()->z_L(); SmartPtr z_U = IpData().curr()->z_U(); SmartPtr v_L = IpData().curr()->v_L(); SmartPtr v_U = IpData().curr()->v_U(); // Compute the right hand side SmartPtr rhs_x = grad_f->MakeNew(); rhs_x->Copy(*grad_f); DBG_PRINT_VECTOR(2, "rhs_x grad_f", *rhs_x); Px_L->MultVector(1., *z_L, -1., *rhs_x); Px_U->MultVector(-1., *z_U, 1., *rhs_x); SmartPtr rhs_s = IpData().curr()->s()->MakeNew(); Pd_L->MultVector(1., *v_L, 0., *rhs_s); Pd_U->MultVector(-1., *v_U, 1., *rhs_s); SmartPtr rhs_c = y_c.MakeNew(); rhs_c->Set(0.); SmartPtr rhs_d = y_d.MakeNew(); rhs_d->Set(0.); SmartPtr sol_x = rhs_x->MakeNew(); SmartPtr sol_s = rhs_s->MakeNew(); DBG_PRINT_VECTOR(2, "rhs_x", *rhs_x); DBG_PRINT_VECTOR(2, "rhs_s", *rhs_s); DBG_PRINT_VECTOR(2, "rhs_c", *rhs_c); DBG_PRINT_VECTOR(2, "rhs_d", *rhs_d); enum ESymSolverStatus retval; Index numberOfEVals=rhs_c->Dim()+rhs_d->Dim(); // Only ask to check the inertia if the solver can actually provide it bool check_NegEVals = augsyssolver_->ProvidesInertia(); retval = augsyssolver_->Solve(GetRawPtr(zeroW), 0.0, NULL, 1.0, NULL, 1.0, GetRawPtr(J_c), NULL, 0., GetRawPtr(J_d), NULL, 0., *rhs_x, *rhs_s, *rhs_c, *rhs_d, *sol_x, *sol_s, y_c, y_d, check_NegEVals, numberOfEVals); if (retval!=SYMSOLVER_SUCCESS) { return false; } DBG_PRINT_VECTOR(2, "sol_x", *sol_x); DBG_PRINT_VECTOR(2, "sol_s", *sol_s); DBG_PRINT_VECTOR(2, "sol_c", y_c); DBG_PRINT_VECTOR(2, "sol_d", y_d); return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpProbingMuOracle.cpp0000644000076600007660000001713711504216567021226 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpProbingMuOracle.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpProbingMuOracle.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif ProbingMuOracle::ProbingMuOracle(const SmartPtr& pd_solver) : MuOracle(), pd_solver_(pd_solver) { DBG_ASSERT(IsValid(pd_solver_)); } ProbingMuOracle::~ProbingMuOracle() {} void ProbingMuOracle::RegisterOptions(SmartPtr roptions) { // None to register... } bool ProbingMuOracle::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("sigma_max", sigma_max_, prefix); return true; } bool ProbingMuOracle::CalculateMu(Number mu_min, Number mu_max, Number& new_mu) { DBG_START_METH("ProbingMuOracle::CalculateMu", dbg_verbosity); ///////////////////////////////////// // Compute the affine scaling step // ///////////////////////////////////// Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Solving the Primal Dual System for the affine step\n"); // First get the right hand side SmartPtr rhs = IpData().curr()->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_x()); rhs->Set_s(*IpCq().curr_grad_lag_s()); rhs->Set_y_c(*IpCq().curr_c()); rhs->Set_y_d(*IpCq().curr_d_minus_s()); rhs->Set_z_L(*IpCq().curr_compl_x_L()); rhs->Set_z_U(*IpCq().curr_compl_x_U()); rhs->Set_v_L(*IpCq().curr_compl_s_L()); rhs->Set_v_U(*IpCq().curr_compl_s_U()); // Get space for the affine scaling step SmartPtr step = rhs->MakeNewIteratesVector(true); // Now solve the primal-dual system to get the affine step. We // allow a somewhat inexact solution here bool allow_inexact = true; bool retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *step, allow_inexact ); if (!retval) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "The linear system could not be solved for the affine step!\n"); return false; } DBG_PRINT_VECTOR(2, "step", *step); ///////////////////////////////////////////////////////////// // Use Mehrotra's formula to compute the barrier parameter // ///////////////////////////////////////////////////////////// // First compute the fraction-to-the-boundary step sizes Number alpha_primal_aff = IpCq().primal_frac_to_the_bound(1.0, *step->x(), *step->s()); Number alpha_dual_aff = IpCq().dual_frac_to_the_bound(1.0, *step->z_L(), *step->z_U(), *step->v_L(), *step->v_U()); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " The affine maximal step sizes are\n" " alpha_primal_aff = %23.16e\n" " alpha_dual_aff = %23.16e\n", alpha_primal_aff, alpha_dual_aff); // now compute the average complementarity at the affine step // ToDo shoot for mu_min instead of 0? Number mu_aff = CalculateAffineMu(alpha_primal_aff, alpha_dual_aff, *step); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " The average complementariy at the affine step is %23.16e\n", mu_aff); // get the current average complementarity Number mu_curr = IpCq().curr_avrg_compl(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, " The average complementariy at the current point is %23.16e\n", mu_curr); DBG_ASSERT(mu_curr>0.); // Apply Mehrotra's rule Number sigma = pow((mu_aff/mu_curr),3); // Make sure, sigma is not too large sigma = Min(sigma, sigma_max_); Number mu = sigma*mu_curr; // Store the affine search direction (in case it is needed in the // line search for a corrector step) IpData().set_delta_aff(step); IpData().SetHaveAffineDeltas(true); char ssigma[40]; sprintf(ssigma, " sigma=%8.2e", sigma); IpData().Append_info_string(ssigma); //sprintf(ssigma, " xi=%8.2e ", IpCq().curr_centrality_measure()); //IpData().Append_info_string(ssigma); new_mu = Max(Min(mu, mu_max), mu_min); return true; } Number ProbingMuOracle::CalculateAffineMu ( Number alpha_primal, Number alpha_dual, const IteratesVector& step) { // Get the current values of the slack variables and bound multipliers SmartPtr slack_x_L = IpCq().curr_slack_x_L(); SmartPtr slack_x_U = IpCq().curr_slack_x_U(); SmartPtr slack_s_L = IpCq().curr_slack_s_L(); SmartPtr slack_s_U = IpCq().curr_slack_s_U(); SmartPtr z_L = IpData().curr()->z_L(); SmartPtr z_U = IpData().curr()->z_U(); SmartPtr v_L = IpData().curr()->v_L(); SmartPtr v_U = IpData().curr()->v_U(); SmartPtr tmp_slack; SmartPtr tmp_mult; SmartPtr P; Index ncomp = 0; Number sum =0.; // For each combination of slack and multiplier, compute the new // values and their dot products. // slack_x_L if (slack_x_L->Dim()>0) { ncomp += slack_x_L->Dim(); P = IpNLP().Px_L(); tmp_slack = slack_x_L->MakeNew(); tmp_slack->Copy(*slack_x_L); P->TransMultVector(alpha_primal, *step.x(), 1.0, *tmp_slack); tmp_mult = z_L->MakeNew(); tmp_mult->Copy(*z_L); tmp_mult->Axpy(alpha_dual, *step.z_L()); sum += tmp_slack->Dot(*tmp_mult); } // slack_x_U if (slack_x_U->Dim()>0) { ncomp += slack_x_U->Dim(); P = IpNLP().Px_U(); tmp_slack = slack_x_U->MakeNew(); tmp_slack->Copy(*slack_x_U); P->TransMultVector(-alpha_primal, *step.x(), 1.0, *tmp_slack); tmp_mult = z_U->MakeNew(); tmp_mult->Copy(*z_U); tmp_mult->Axpy(alpha_dual, *step.z_U()); sum += tmp_slack->Dot(*tmp_mult); } // slack_s_L if (slack_s_L->Dim()>0) { ncomp += slack_s_L->Dim(); P = IpNLP().Pd_L(); tmp_slack = slack_s_L->MakeNew(); tmp_slack->Copy(*slack_s_L); P->TransMultVector(alpha_primal, *step.s(), 1.0, *tmp_slack); tmp_mult = v_L->MakeNew(); tmp_mult->Copy(*v_L); tmp_mult->Axpy(alpha_dual, *step.v_L()); sum += tmp_slack->Dot(*tmp_mult); } // slack_s_U if (slack_s_U->Dim()>0) { ncomp += slack_s_U->Dim(); P = IpNLP().Pd_U(); tmp_slack = slack_s_U->MakeNew(); tmp_slack->Copy(*slack_s_U); P->TransMultVector(-alpha_primal, *step.s(), 1.0, *tmp_slack); tmp_mult = v_U->MakeNew(); tmp_mult->Copy(*v_U); tmp_mult->Axpy(alpha_dual, *step.v_U()); sum += tmp_slack->Dot(*tmp_mult); } DBG_ASSERT(ncomp>0); return sum/((Number)ncomp); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIteratesVector.cpp0000644000076600007660000001011411504216567021125 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIteratesVector.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-06 #include "IpIteratesVector.hpp" namespace Ipopt { IteratesVector::IteratesVector(const IteratesVectorSpace* owner_space, bool create_new) : CompoundVector(owner_space, create_new), owner_space_(owner_space) { DBG_ASSERT(owner_space_); } IteratesVector::~IteratesVector() {} SmartPtr IteratesVector::MakeNewIteratesVector(bool create_new) const { return owner_space_->MakeNewIteratesVector(create_new); } SmartPtr IteratesVector::MakeNewContainer() const { SmartPtr ret = MakeNewIteratesVector(false); if (IsValid(x())) { ret->Set_x(*x()); } if (IsValid(s())) { ret->Set_s(*s()); } if (IsValid(y_c())) { ret->Set_y_c(*y_c()); } if (IsValid(y_d())) { ret->Set_y_d(*y_d()); } if (IsValid(z_L())) { ret->Set_z_L(*z_L()); } if (IsValid(z_U())) { ret->Set_z_U(*z_U()); } if (IsValid(v_L())) { ret->Set_v_L(*v_L()); } if (IsValid(v_U())) { ret->Set_v_U(*v_U()); } return ret; // We may need a non const version // if (IsCompConst(0)) { // ret->Set_x(*x()); // } // else { // ret->Set_x_NonConst(*x_NonConst()); // } // if (IsCompConst(1)) { // ret->Set_s(*s()); // } // else { // ret->Set_s_NonConst(*s_NonConst()); // } // if (IsCompConst(2)) { // ret->Set_y_c(*y_c()); // } // else { // ret->Set_y_c_NonConst(*y_c_NonConst()); // } // if (IsCompConst(3)) { // ret->Set_y_d(*y_d()); // } // else { // ret->Set_y_d_NonConst(*y_d_NonConst()); // } // if (IsCompConst(4)) { // ret->Set_z_L(*z_L()); // } // else { // ret->Set_z_L_NonConst(*z_L_NonConst()); // } // if (IsCompConst(5)) { // ret->Set_z_U(*z_U()); // } // else { // ret->Set_z_U_NonConst(*z_U_NonConst()); // } // if (IsCompConst(6)) { // ret->Set_v_L(*v_L()); // } // else { // ret->Set_v_L_NonConst(*v_L_NonConst()); // } // if (IsCompConst(7)) { // ret->Set_v_U(*v_U()); // } // else { // ret->Set_v_U_NonConst(*v_U_NonConst()); // } // return ret; } IteratesVectorSpace::IteratesVectorSpace(const VectorSpace& x_space, const VectorSpace& s_space, const VectorSpace& y_c_space, const VectorSpace& y_d_space, const VectorSpace& z_L_space, const VectorSpace& z_U_space, const VectorSpace& v_L_space, const VectorSpace& v_U_space ) : CompoundVectorSpace(8, x_space.Dim() + s_space.Dim() + y_c_space.Dim() + y_d_space.Dim() + z_L_space.Dim() + z_U_space.Dim() + v_L_space.Dim() + v_U_space.Dim() ) { x_space_ = &x_space; s_space_ = &s_space; y_c_space_ = &y_c_space; y_d_space_ = &y_d_space; z_L_space_ = &z_L_space; z_U_space_ = &z_U_space; v_L_space_ = &v_L_space; v_U_space_ = &v_U_space; this->CompoundVectorSpace::SetCompSpace(0, *x_space_); this->CompoundVectorSpace::SetCompSpace(1, *s_space_); this->CompoundVectorSpace::SetCompSpace(2, *y_c_space_); this->CompoundVectorSpace::SetCompSpace(3, *y_d_space_); this->CompoundVectorSpace::SetCompSpace(4, *z_L_space_); this->CompoundVectorSpace::SetCompSpace(5, *z_U_space_); this->CompoundVectorSpace::SetCompSpace(6, *v_L_space_); this->CompoundVectorSpace::SetCompSpace(7, *v_U_space_); } IteratesVectorSpace::~IteratesVectorSpace() {} } // namespae Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIterationOutput.hpp0000644000076600007660000000536412116344132022364 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIterationOutput.hpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-27 #ifndef __IPRESTOITERATIONOUTPUT_HPP__ #define __IPRESTOITERATIONOUTPUT_HPP__ #include "IpIterationOutput.hpp" #include "IpOrigIterationOutput.hpp" namespace Ipopt { /** Class for the iteration summary output for the restoration * phase. This prints information for the ORIGINAL NLP (and * possibly for the restoration phase NLP. */ class RestoIterationOutput: public IterationOutput { public: /**@name Constructors/Destructors */ //@{ /** Constructor. If resto_orig_iteration_output is not NULL, the * output will be done twice per iteration, first for the * restoration phase problem, and secondyl using the functions * for the original NLP. */ RestoIterationOutput(const SmartPtr& resto_orig_iteration_output); /** Default destructor */ virtual ~RestoIterationOutput(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method to do all the summary output per iteration. This * include the one-line summary output as well as writing the * details about the iterates if desired */ virtual void WriteOutput(); private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ RestoIterationOutput(); /** Copy Constructor */ RestoIterationOutput(const RestoIterationOutput&); /** Overloaded Equals Operator */ void operator=(const RestoIterationOutput&); //@} /** Pointer to output strategy object during regular iterations. */ SmartPtr resto_orig_iteration_output_; /** Flag indicating weather info string should be printed at end * of iteration summary line. */ bool print_info_string_; /** Option indication what should be printed in inf_pr column */ InfPrOutput inf_pr_output_; /** Option indicating at which iteration frequency the summary line should be printed */ int print_frequency_iter_; /** Option indicating at which time frequency the summary line should be printed */ Number print_frequency_time_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpOptErrorConvCheck.cpp0000644000076600007660000003543311504216567021535 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOptErrorConvCheck.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpOptErrorConvCheck.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif OptimalityErrorConvergenceCheck::OptimalityErrorConvergenceCheck() {} OptimalityErrorConvergenceCheck::~OptimalityErrorConvergenceCheck() {} void OptimalityErrorConvergenceCheck::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedIntegerOption( "max_iter", "Maximum number of iterations.", 0, 3000, "The algorithm terminates with an error message if the number of " "iterations exceeded this number."); roptions->AddLowerBoundedNumberOption( "max_cpu_time", "Maximum number of CPU seconds.", 0.0, true, 1e6, "A limit on CPU seconds that Ipopt can use to solve one problem. If " "during the convergence check this limit is exceeded, Ipopt will " "terminate with a corresponding error message."); roptions->AddLowerBoundedNumberOption( "dual_inf_tol", "Desired threshold for the dual infeasibility.", 0.0, true, 1., "Absolute tolerance on the dual infeasibility. Successful termination " "requires that the max-norm of the (unscaled) dual infeasibility is less than this " "threshold."); roptions->AddLowerBoundedNumberOption( "constr_viol_tol", "Desired threshold for the constraint violation.", 0.0, true, 1e-4, "Absolute tolerance on the constraint violation. Successful termination " "requires that the max-norm of the (unscaled) constraint violation is less than this " "threshold."); roptions->AddLowerBoundedNumberOption( "compl_inf_tol", "Desired threshold for the complementarity conditions.", 0.0, true, 1e-4, "Absolute tolerance on the complementarity. Successful termination " "requires that the max-norm of the (unscaled) complementarity is less than this " "threshold."); roptions->AddLowerBoundedNumberOption( "acceptable_tol", "\"Acceptable\" convergence tolerance (relative).", 0.0, true, 1e-6, "Determines which (scaled) overall optimality error is considered to be" " \"acceptable.\" There are two levels of termination criteria. If the " "usual \"desired\" tolerances (see tol, dual_inf_tol etc) are satisfied " "at an iteration, the algorithm immediately terminates with a success " "message. On the other hand, if the algorithm encounters " "\"acceptable_iter\" many iterations in a row that are considered " "\"acceptable\", it will terminate before the desired convergence " "tolerance is met. This is useful in cases where the algorithm might " "not be able to achieve the \"desired\" level of accuracy."); roptions->AddLowerBoundedIntegerOption( "acceptable_iter", "Number of \"acceptable\" iterates before triggering termination.", 0, 15, "If the algorithm encounters this many successive \"acceptable\" iterates " "(see \"acceptable_tol\"), it terminates, assuming that the problem " "has been solved to best possible accuracy given round-off. If it is " "set to zero, this heuristic is disabled."); roptions->AddLowerBoundedNumberOption( "acceptable_dual_inf_tol", "\"Acceptance\" threshold for the dual infeasibility.", 0.0, true, 1e10, "Absolute tolerance on the dual infeasibility. \"Acceptable\" termination " "requires that the (max-norm of the unscaled) dual infeasibility is less than this " "threshold; see also acceptable_tol."); roptions->AddLowerBoundedNumberOption( "acceptable_constr_viol_tol", "\"Acceptance\" threshold for the constraint violation.", 0.0, true, 1e-2, "Absolute tolerance on the constraint violation. \"Acceptable\" termination " "requires that the max-norm of the (unscaled) constraint violation is less than this " "threshold; see also acceptable_tol."); roptions->AddLowerBoundedNumberOption( "acceptable_compl_inf_tol", "\"Acceptance\" threshold for the complementarity conditions.", 0.0, true, 1e-2, "Absolute tolerance on the complementarity. \"Acceptable\" termination " "requires that the max-norm of the (unscaled) complementarity is less than this " "threshold; see also acceptable_tol."); roptions->AddLowerBoundedNumberOption( "acceptable_obj_change_tol", "\"Acceptance\" stopping criterion based on objective function change.", 0.0, false, 1e20, "If the relative change of the objective function (scaled by " "Max(1,|f(x)|)) is less than this value, this part of the acceptable " "tolerance termination is satisfied; see also acceptable_tol. This is " "useful for the quasi-Newton option, which has trouble to bring down " "the dual infeasibility."); roptions->AddLowerBoundedNumberOption( "diverging_iterates_tol", "Threshold for maximal value of primal iterates.", 0.0, true, 1e20, "If any component of the primal iterates exceeded this value (in " "absolute terms), the optimization is aborted with the exit message " "that the iterates seem to be diverging."); roptions->AddLowerBoundedNumberOption( "mu_target", "Desired value of complementarity.", 0.0, false, 0.0, "Usually, the barrier parameter is driven to zero and the termination " "test for complementarity is measured with respect to zero " "complementarity. However, in some cases it might be desired to have " "Ipopt solve barrier problem for strictly positive value of the barrier " "parameter. In this case, the value of \"mu_target\" specifies the " "final value of the barrier parameter, and the termination tests are " "then defined with respect to the barrier problem for this value of the " "barrier parameter."); } bool OptimalityErrorConvergenceCheck::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetIntegerValue("max_iter", max_iterations_, prefix); options.GetNumericValue("max_cpu_time", max_cpu_time_, prefix); options.GetNumericValue("dual_inf_tol", dual_inf_tol_, prefix); options.GetNumericValue("constr_viol_tol", constr_viol_tol_, prefix); options.GetNumericValue("compl_inf_tol", compl_inf_tol_, prefix); options.GetIntegerValue("acceptable_iter", acceptable_iter_, prefix); options.GetNumericValue("acceptable_tol", acceptable_tol_, prefix); options.GetNumericValue("acceptable_dual_inf_tol", acceptable_dual_inf_tol_, prefix); options.GetNumericValue("acceptable_constr_viol_tol", acceptable_constr_viol_tol_, prefix); options.GetNumericValue("acceptable_compl_inf_tol", acceptable_compl_inf_tol_, prefix); options.GetNumericValue("acceptable_obj_change_tol", acceptable_obj_change_tol_, prefix); options.GetNumericValue("diverging_iterates_tol", diverging_iterates_tol_, prefix); options.GetNumericValue("mu_target", mu_target_, prefix); acceptable_counter_ = 0; curr_obj_val_ = -1e50; last_obj_val_iter_ = -1; return true; } ConvergenceCheck::ConvergenceStatus OptimalityErrorConvergenceCheck::CheckConvergence(bool call_intermediate_callback /*= true*/) { DBG_START_METH("OptimalityErrorConvergenceCheck::CheckConvergence", dbg_verbosity); if (call_intermediate_callback) { // Check if user requested termination by calling the intermediate // user callback function AlgorithmMode mode = RegularMode; // Gather the information also used in the iteration output Index iter = IpData().iter_count(); Number inf_pr = IpCq().curr_primal_infeasibility(NORM_MAX); Number inf_du = IpCq().curr_dual_infeasibility(NORM_MAX); Number mu = IpData().curr_mu(); Number dnrm; if (IsValid(IpData().delta()) && IsValid(IpData().delta()->x()) && IsValid(IpData().delta()->s())) { dnrm = Max(IpData().delta()->x()->Amax(), IpData().delta()->s()->Amax()); } else { // This is the first iteration - no search direction has been // computed yet. dnrm = 0.; } Number alpha_primal = IpData().info_alpha_primal(); Number alpha_dual = IpData().info_alpha_dual(); Number regu_x = IpData().info_regu_x(); Number unscaled_f = IpCq().unscaled_curr_f(); Index ls_count = IpData().info_ls_count(); bool request_stop = !IpNLP().IntermediateCallBack(mode, iter, unscaled_f, inf_pr, inf_du, mu, dnrm, regu_x, alpha_dual, alpha_primal, ls_count, &IpData(), &IpCq()); if (request_stop) { return ConvergenceCheck::USER_STOP; } } Number overall_error = IpCq().curr_nlp_error(); Number dual_inf = IpCq().unscaled_curr_dual_infeasibility(NORM_MAX); Number constr_viol = IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX); Number compl_inf = IpCq().unscaled_curr_complementarity(mu_target_, NORM_MAX); if (IpData().curr()->x()->Dim()==IpData().curr()->y_c()->Dim()) { // the problem is square, there is no point in looking at dual // infeasibility and complementarity as termination criterion dual_inf_tol_ = 1e300; compl_inf_tol_ = 1e300; } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_MAIN)) { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "Convergence Check:\n"); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " overall_error = %23.16e IpData().tol() = %23.16e\n", overall_error, IpData().tol()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " dual_inf = %23.16e dual_inf_tol_ = %23.16e\n", dual_inf, dual_inf_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " constr_viol = %23.16e constr_viol_tol_ = %23.16e\n", constr_viol, constr_viol_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " compl_inf = %23.16e compl_inf_tol_ = %23.16e\n", compl_inf, compl_inf_tol_); } if (overall_error <= IpData().tol() && dual_inf <= dual_inf_tol_ && constr_viol <= constr_viol_tol_ && compl_inf <= compl_inf_tol_) { return ConvergenceCheck::CONVERGED; } if (acceptable_iter_>0 && CurrentIsAcceptable()) { IpData().Append_info_string("A"); acceptable_counter_++; if (acceptable_counter_ >= acceptable_iter_) { return ConvergenceCheck::CONVERGED_TO_ACCEPTABLE_POINT; } } else { acceptable_counter_ = 0; } if (IpData().curr()->x()->Amax() > diverging_iterates_tol_) { return ConvergenceCheck::DIVERGING; } if (IpData().iter_count() >= max_iterations_) { return ConvergenceCheck::MAXITER_EXCEEDED; } Number curr_cpu_time = CpuTime(); if (max_cpu_time_ < 999999. && curr_cpu_time - IpData().cpu_time_start() > max_cpu_time_) { return ConvergenceCheck::CPUTIME_EXCEEDED; } return ConvergenceCheck::CONTINUE; } bool OptimalityErrorConvergenceCheck::CurrentIsAcceptable() { DBG_START_METH("OptimalityErrorConvergenceCheck::CurrentIsAcceptable", dbg_verbosity); Number overall_error = IpCq().curr_nlp_error(); Number dual_inf = IpCq().unscaled_curr_dual_infeasibility(NORM_MAX); Number constr_viol = IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX); Number compl_inf = IpCq().unscaled_curr_complementarity(mu_target_, NORM_MAX); if (IpData().iter_count()!=last_obj_val_iter_) { // DELETEME Jnlst().Printf(J_MOREDETAILED, J_MAIN, "obj val update iter = %d\n",IpData().iter_count()); last_obj_val_ = curr_obj_val_; curr_obj_val_ = IpCq().curr_f(); last_obj_val_iter_ = IpData().iter_count(); } DBG_PRINT((1, "overall_error = %e\n", overall_error)); DBG_PRINT((1, "dual_inf = %e\n", dual_inf)); DBG_PRINT((1, "constr_viol = %e\n", constr_viol)); DBG_PRINT((1, "compl_inf = %e\n", compl_inf)); DBG_PRINT((1, "acceptable_tol_ = %e\n", acceptable_tol_)); DBG_PRINT((1, "acceptable_dual_inf_tol_ = %e\n", acceptable_dual_inf_tol_)); DBG_PRINT((1, "acceptable_constr_viol_tol_ = %e\n", acceptable_constr_viol_tol_)); DBG_PRINT((1, "acceptable_compl_inf_tol_ = %e\n", acceptable_compl_inf_tol_)); if (IpData().curr()->x()->Dim()==IpData().curr()->y_c()->Dim()) { // the problem is square, there is no point in looking at dual // infeasibility and complementarity as termination criterion acceptable_dual_inf_tol_ = 1e300; acceptable_compl_inf_tol_ = 1e300; } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_MAIN)) { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "Acceptable Check:\n"); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " overall_error = %23.16e acceptable_tol_ = %23.16e\n", overall_error, acceptable_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " dual_inf = %23.16e acceptable_dual_inf_tol_ = %23.16e\n", dual_inf, acceptable_dual_inf_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " constr_viol = %23.16e acceptable_constr_viol_tol_ = %23.16e\n", constr_viol, acceptable_constr_viol_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " compl_inf = %23.16e acceptable_compl_inf_tol_ = %23.16e\n", compl_inf, acceptable_compl_inf_tol_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " curr_obj_val_ = %23.16e last_obj_val = %23.16e\n", curr_obj_val_, last_obj_val_); Jnlst().Printf(J_MOREDETAILED, J_MAIN, " fabs(curr_obj_val_-last_obj_val_)/Max(1., fabs(curr_obj_val_)) = %23.16e acceptable_obj_change_tol_ = %23.16e\n", fabs(curr_obj_val_-last_obj_val_)/Max(1., fabs(curr_obj_val_)), acceptable_obj_change_tol_); // DELETEME Jnlst().Printf(J_MOREDETAILED, J_MAIN, "test iter = %d\n",IpData().iter_count()); } return (overall_error <= acceptable_tol_ && dual_inf <= acceptable_dual_inf_tol_ && constr_viol <= acceptable_constr_viol_tol_ && compl_inf <= acceptable_compl_inf_tol_ && fabs(curr_obj_val_-last_obj_val_)/Max(1., fabs(curr_obj_val_)) <= acceptable_obj_change_tol_); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpQualityFunctionMuOracle.hpp0000644000076600007660000002437011504216567022766 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpQualityFunctionMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2004-11-12 #ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__ #define __IPQUALITYFUNCTIONMUORACLE_HPP__ #include "IpMuOracle.hpp" #include "IpPDSystemSolver.hpp" #include "IpIpoptCalculatedQuantities.hpp" namespace Ipopt { /** Implementation of the probing strategy for computing the * barrier parameter. */ class QualityFunctionMuOracle : public MuOracle { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ QualityFunctionMuOracle(const SmartPtr& pd_solver); /** Default destructor */ virtual ~QualityFunctionMuOracle(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the value of the barrier parameter that * could be used in the current iteration (using the LOQO formula). */ virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /** @name Public enums. Some of those are also used for the * quality function */ //@{ /** enum for norm type */ enum NormEnum { NM_NORM_1=0, NM_NORM_2_SQUARED, NM_NORM_MAX, NM_NORM_2 }; /** enum for centrality type */ enum CentralityEnum { CEN_NONE=0, CEN_LOG, CEN_RECIPROCAL, CEN_CUBED_RECIPROCAL }; /** enum for the quality function balancing term type */ enum BalancingTermEnum { BT_NONE=0, BT_CUBIC }; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ QualityFunctionMuOracle(); /** Copy Constructor */ QualityFunctionMuOracle(const QualityFunctionMuOracle&); /** Overloaded Equals Operator */ void operator=(const QualityFunctionMuOracle&); //@} /** Pointer to the object that should be used to solve the * primal-dual system. */ SmartPtr pd_solver_; /** Auxilliary function for computing the average complementarity * at a point, given step sizes and step */ // ToDo Replace pointers by references Number CalculateQualityFunction(Number sigma, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U); /** Auxilliary function performing the golden section */ Number PerformGoldenSection(Number sigma_up, Number q_up, Number sigma_lo, Number q_lo, Number sigma_tol, Number qf_tol, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U); /** Auxilliary functions for scaling the sigma axis in the golden * section procedure */ //@{ Number ScaleSigma(Number sigma); Number UnscaleSigma(Number scaled_sigma); //@} /** Auxilliary function performing the golden section in the * logarithmic scale */ /* This doesn't seem to work well, so I took it out for now (AW) Number PerformGoldenSectionLog(Number sigma_up, Number sigma_lo, Number tol, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U); */ /** @name Algorithmic parameters */ //@{ /** Upper bound on centering parameter sigma */ Number sigma_max_; /** Lower bound on centering parameter sigma */ Number sigma_min_; /** Norm to be used for the quality function. */ NormEnum quality_function_norm_; /** Flag indicating how centrality should be involved in the * quality function */ CentralityEnum quality_function_centrality_; /** Flag indicating whether we use a balancing term in the quality * function. */ BalancingTermEnum quality_function_balancing_term_; /** Relative tolerance for golden bi-section algorithm in sigma * space. */ Number quality_function_section_sigma_tol_; /** Relative tolerance for golden bi-section algorithm in function * value space. */ Number quality_function_section_qf_tol_; /** Maximal number of bi-section steps in the golden section * search for sigma. */ Index quality_function_max_section_steps_; //@} /** @name Temporary work space vectors. We use those to avoid * repeated reallocation in CalculateQualityFunction. */ //@{ SmartPtr tmp_step_x_L_; SmartPtr tmp_step_x_U_; SmartPtr tmp_step_s_L_; SmartPtr tmp_step_s_U_; SmartPtr tmp_step_z_L_; SmartPtr tmp_step_z_U_; SmartPtr tmp_step_v_L_; SmartPtr tmp_step_v_U_; SmartPtr tmp_slack_x_L_; SmartPtr tmp_slack_x_U_; SmartPtr tmp_slack_s_L_; SmartPtr tmp_slack_s_U_; SmartPtr tmp_z_L_; SmartPtr tmp_z_U_; SmartPtr tmp_v_L_; SmartPtr tmp_v_U_; //@} /* Counter for the qualify function evaluations */ Index count_qf_evals_; /**@name Quantities used many times in CalculateQualityFunction, * which we store here instead of retrieving them from cache every * time. I (AW) don't know if that really makes a difference, but * some of those things showed up in gprof. */ //@{ bool initialized_; Index n_dual_; Index n_pri_; Index n_comp_; SmartPtr curr_slack_x_L_; SmartPtr curr_slack_x_U_; SmartPtr curr_slack_s_L_; SmartPtr curr_slack_s_U_; SmartPtr curr_z_L_; SmartPtr curr_z_U_; SmartPtr curr_v_L_; SmartPtr curr_v_U_; Number curr_grad_lag_x_asum_; Number curr_grad_lag_s_asum_; Number curr_c_asum_; Number curr_d_minus_s_asum_; Number curr_grad_lag_x_nrm2_; Number curr_grad_lag_s_nrm2_; Number curr_c_nrm2_; Number curr_d_minus_s_nrm2_; Number curr_grad_lag_x_amax_; Number curr_grad_lag_s_amax_; Number curr_c_amax_; Number curr_d_minus_s_amax_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpFilterLSAcceptor.hpp0000644000076600007660000002337611504216567021352 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpFilterLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.hpp #ifndef __IPFILTERLSACCEPTOR_HPP__ #define __IPFILTERLSACCEPTOR_HPP__ #include "IpFilter.hpp" #include "IpBacktrackingLSAcceptor.hpp" #include "IpPDSystemSolver.hpp" namespace Ipopt { /** Filter line search. This class implements the filter line * search procedure. */ class FilterLSAcceptor : public BacktrackingLSAcceptor { public: /**@name Constructors/Destructors */ //@{ /** Constructor. The PDSystemSolver object only needs to be * provided (i.e. not NULL) if second order correction or * corrector steps are to be used. */ FilterLSAcceptor(const SmartPtr& pd_solver); /** Default destructor */ virtual ~FilterLSAcceptor(); //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Reset the acceptor. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset(); /** Initialization for the next line search. The flag in_watchdog * indicates if we are currently in an active watchdog * procedure. */ virtual void InitThisLineSearch(bool in_watchdog); /** Method that is called before the restoration phase is called. * Here, we can set up things that are required in the * termination test for the restoration phase, such as augmenting * a filter. */ virtual void PrepareRestoPhaseStart(); /** Method returning the lower bound on the trial step sizes. */ virtual Number CalculateAlphaMin(); /** Method for checking if current trial point is acceptable. * It is assumed that the delta information in ip_data is the * search direction used in criteria. The primal trial point has * to be set before the call. */ virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal); /** Try a second order correction for the constraints. If the * first trial step (with incoming alpha_primal) has been reject, * this tries up to max_soc_ second order corrections for the * constraints. Here, alpha_primal_test is the step size that * has to be used in the filter acceptance tests. On output * actual_delta_ has been set to the step including the * second order correction if it has been accepted, otherwise it * is unchanged. If the SOC step has been accepted, alpha_primal * has the fraction-to-the-boundary value for the SOC step on output. * The return value is true, if a SOC step has been accepted. */ virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ virtual bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta); /** Method for ending the current line search. When it is called, * the internal data should be updates, e.g., the filter might be * augmented. alpha_primal_test is the value of alpha that has * been used for in the acceptence test ealier. */ virtual char UpdateForNextIteration(Number alpha_primal_test); /** Method for setting internal data if the watchdog procedure is * started. */ virtual void StartWatchDog(); /** Method for setting internal data if the watchdog procedure is * stopped. */ virtual void StopWatchDog(); /**@name Trial Point Accepting Methods. Used internally to check certain * acceptability criteria and used externally (by the restoration phase * convergence check object, for instance) */ //@{ /** Checks if a trial point is acceptable to the current iterate */ bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration=false) const; /** Checks if a trial point is acceptable to the current filter */ bool IsAcceptableToCurrentFilter(Number trial_barr, Number trial_theta) const; //@} /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ FilterLSAcceptor(const FilterLSAcceptor&); /** Overloaded Equals Operator */ void operator=(const FilterLSAcceptor&); //@} /** @name Filter information */ //@{ /** Upper bound on infeasibility */ Number theta_max_; Number theta_max_fact_; /** Infeasibility switching bound */ Number theta_min_; Number theta_min_fact_; //@} /** Method for checking if the current step size satisfies the * f-type switching condition. Here, we use the search direction * stored in ip_data */ bool IsFtype(Number alpha_primal_test); /** Method for checking the Armijo condition, given a trial step * size. The test uses the search direction stored in ip_data, * and the values of the functions at the trial point in ip_data. */ bool ArmijoHolds(Number alpha_primal_test); /** Augment the filter used on the current values of the barrier * objective function and the contraint violation */ void AugmentFilter(); /** @name Parameters for the filter algorithm. Names as in the paper */ //@{ /** \f$ \eta_{\varphi} \f$ */ Number eta_phi_; /** \f$ \delta \f$ */ Number delta_; /** \f$ s_{\varphi} \f$ */ Number s_phi_; /** \f$ s_{\Theta} \f$ */ Number s_theta_; /** \f$ \gamma_{\varphi} \f$ */ Number gamma_phi_; /** \f$ \gamma_{\Theta} \f$ */ Number gamma_theta_; /** \f$ \gamma_{\alpha} \f$ */ Number alpha_min_frac_; /** Maximal number of second order correction steps */ Index max_soc_; /** Required reduction in constraint violation before trying * multiple second order correction steps \f$ \kappa_{soc}\f$. */ Number kappa_soc_; /** Maximal increase in objective function in orders of magnitute * (log10). If the log10(barrier objective function) is * increased more than this compared to the current point, the * trial point is rejected. */ Number obj_max_inc_; /** enumeration for the corrector type */ enum CorrectorTypeEnum { NO_CORRECTOR=0, AFFINE_CORRECTOR, PRIMAL_DUAL_CORRECTOR }; /** Type of corrector steps that should be tried. */ CorrectorTypeEnum corrector_type_; /** parameter in heurstic that determines whether corrector step should be tried. */ Number corrector_compl_avrg_red_fact_; /** Flag indicating whether the corrector should be skipped in an * iteration in which negative curvature is detected */ bool skip_corr_if_neg_curv_; /** Flag indicating whether the corrector should be skipped during * the monotone mu mode. */ bool skip_corr_in_monotone_mode_; /** maximal allowed number of filter resets. */ Index max_filter_resets_; /** interation counter trigger for filter reset. If the * successive number of iterations in which the last rejected * step was due to the filter, and max_filter_resets is non-zero, * then the filter is reset. */ Index filter_reset_trigger_; //@} /** @name Information related to watchdog procedure */ //@{ /** Constraint violation at the point with respect to which * progress is to be made */ Number reference_theta_; /** Barrier objective function at the point with respect to which * progress is to be made */ Number reference_barr_; /** Barrier gradient transpose search direction at the point with * respect to which progress is to be made */ Number reference_gradBarrTDelta_; /** Constraint violation at reference point */ Number watchdog_theta_; /** Barrier objective function at reference point */ Number watchdog_barr_; /** Barrier gradient transpose search direction at reference point */ Number watchdog_gradBarrTDelta_; //@} /** Filter with entries */ Filter filter_; /** @name Filter reset stuff */ //@{ /** True, if last rejected was due to the filter. */ Number last_rejection_due_to_filter_; /** Counter of successive iterations in which filter was reason * for last rejection. */ Index count_successive_filter_rejections_; /** Counter for the filter resets done so far. */ Index n_filter_resets_; //@} /** @name Strategy objective that are used */ //@{ SmartPtr pd_solver_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpSearchDirCalculator.hpp0000644000076600007660000000341211504216567022050 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpSearchDirCalculator.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-10-13 #ifndef __IPSEARCHDIRCALCULATOR_HPP__ #define __IPSEARCHDIRCALCULATOR_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Base class for computing the search direction for the line * search. */ class SearchDirectionCalculator : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ SearchDirectionCalculator() {} /** Default destructor */ virtual ~SearchDirectionCalculator() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Pure virtual method for computing the search direction. The * computed direction is stored in IpData().delta().*/ virtual bool ComputeSearchDirection()=0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ // SearchDirectionCalculator(); /** Copy Constructor */ SearchDirectionCalculator(const SearchDirectionCalculator&); /** Overloaded Equals Operator */ void operator=(const SearchDirectionCalculator&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Makefile.am0000644000076600007660000001565311603651604017231 0ustar coincoin# Copyright (C) 2004, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2036 2011-07-02 17:21:08Z stefan $ # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 AUTOMAKE_OPTIONS = foreign SUBDIRS = LinearSolvers Inexact includeipoptdir = $(includedir)/coin includeipopt_HEADERS = IpIpoptCalculatedQuantities.hpp \ IpIpoptData.hpp IpIteratesVector.hpp IpTimingStatistics.hpp \ IpIpoptNLP.hpp IpOrigIpoptNLP.hpp IpNLPScaling.hpp noinst_LTLIBRARIES = libipoptalg.la libipoptalg_la_SOURCES = \ IpAdaptiveMuUpdate.cpp IpAdaptiveMuUpdate.hpp \ IpAlgBuilder.cpp IpAlgBuilder.hpp \ IpAlgorithmRegOp.cpp IpAlgorithmRegOp.hpp \ IpAlgStrategy.hpp \ IpAugRestoSystemSolver.cpp IpAugRestoSystemSolver.hpp \ IpAugSystemSolver.hpp \ IpBacktrackingLSAcceptor.hpp \ IpBacktrackingLineSearch.cpp IpBacktrackingLineSearch.hpp \ IpConvCheck.hpp \ IpDefaultIterateInitializer.cpp IpDefaultIterateInitializer.hpp \ IpEqMultCalculator.hpp \ IpEquilibrationScaling.cpp IpEquilibrationScaling.hpp \ IpExactHessianUpdater.cpp IpExactHessianUpdater.hpp \ IpFilter.cpp IpFilter.hpp \ IpFilterLSAcceptor.cpp IpFilterLSAcceptor.hpp \ IpGenAugSystemSolver.cpp IpGenAugSystemSolver.hpp \ IpGradientScaling.cpp IpGradientScaling.hpp \ IpHessianUpdater.hpp \ IpIpoptAlg.cpp IpIpoptAlg.hpp \ IpIpoptCalculatedQuantities.cpp IpIpoptCalculatedQuantities.hpp \ IpIpoptData.cpp IpIpoptData.hpp \ IpIpoptNLP.hpp \ IpIterateInitializer.hpp \ IpIteratesVector.cpp IpIteratesVector.hpp \ IpIterationOutput.hpp \ IpLeastSquareMults.cpp IpLeastSquareMults.hpp \ IpLimMemQuasiNewtonUpdater.cpp IpLimMemQuasiNewtonUpdater.hpp \ IpLineSearch.hpp \ IpLoqoMuOracle.cpp IpLoqoMuOracle.hpp \ IpLowRankAugSystemSolver.cpp IpLowRankAugSystemSolver.hpp \ IpLowRankSSAugSystemSolver.cpp IpLowRankSSAugSystemSolver.hpp \ IpMonotoneMuUpdate.cpp IpMonotoneMuUpdate.hpp \ IpMuOracle.hpp \ IpMuUpdate.hpp \ IpNLPBoundsRemover.cpp IpNLPBoundsRemover.hpp \ IpNLPScaling.cpp IpNLPScaling.hpp \ IpOptErrorConvCheck.cpp IpOptErrorConvCheck.hpp \ IpOrigIpoptNLP.cpp IpOrigIpoptNLP.hpp \ IpOrigIterationOutput.cpp IpOrigIterationOutput.hpp \ IpPDFullSpaceSolver.cpp IpPDFullSpaceSolver.hpp \ IpPDPerturbationHandler.cpp IpPDPerturbationHandler.hpp \ IpPDSearchDirCalc.cpp IpPDSearchDirCalc.hpp \ IpPDSystemSolver.hpp \ IpPenaltyLSAcceptor.cpp IpPenaltyLSAcceptor.hpp \ IpProbingMuOracle.cpp IpProbingMuOracle.hpp \ IpQualityFunctionMuOracle.cpp IpQualityFunctionMuOracle.hpp \ IpRestoConvCheck.cpp IpRestoConvCheck.hpp \ IpRestoFilterConvCheck.cpp IpRestoFilterConvCheck.hpp \ IpRestoIpoptNLP.cpp IpRestoIpoptNLP.hpp \ IpRestoIterateInitializer.cpp IpRestoIterateInitializer.hpp \ IpRestoIterationOutput.cpp IpRestoIterationOutput.hpp \ IpRestoMinC_1Nrm.cpp IpRestoMinC_1Nrm.hpp \ IpRestoPenaltyConvCheck.cpp IpRestoPenaltyConvCheck.hpp \ IpRestoPhase.hpp \ IpRestoRestoPhase.cpp IpRestoRestoPhase.hpp \ IpSearchDirCalculator.hpp \ IpStdAugSystemSolver.cpp IpStdAugSystemSolver.hpp \ IpTimingStatistics.cpp IpTimingStatistics.hpp \ IpUserScaling.cpp IpUserScaling.hpp \ IpWarmStartIterateInitializer.cpp IpWarmStartIterateInitializer.hpp libipoptalg_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../Common` \ -I`$(CYGPATH_W) $(srcdir)/../LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/LinearSolvers` \ -I`$(CYGPATH_W) $(srcdir)/../contrib/CGPenalty` \ -I`$(CYGPATH_W) $(srcdir)/../contrib/LinearSolverLoader` #if COIN_HAS_MUMPS # AM_CPPFLAGS += $(MUMPS_CFLAGS) #endif if COIN_HAS_HSL AM_CPPFLAGS += $(HSL_CFLAGS) endif # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpAdaptiveMuUpdate.cppbak IpAdaptiveMuUpdate.hppbak \ IpAlgBuilder.cppbak IpAlgBuilder.hppbak \ IpAlgorithmRegOp.cppbak IpAlgorithmRegOp.hppbak \ IpAlgStrategy.hppbak \ IpAugRestoSystemSolver.cppbak IpAugRestoSystemSolver.hppbak \ IpAugSystemSolver.hppbak \ IpBacktrackingLSAcceptor.hppbak \ IpBacktrackingLineSearch.cppbak IpBacktrackingLineSearch.hppbak \ IpConvCheck.hppbak \ IpDefaultIterateInitializer.cppbak IpDefaultIterateInitializer.hppbak \ IpEqMultCalculator.hppbak \ IpEquilibrationScaling.cppbak IpEquilibrationScaling.hppbak \ IpExactHessianUpdater.cppbak IpExactHessianUpdater.hppbak \ IpFilter.cppbak IpFilter.hppbak \ IpFilterLSAcceptor.cppbak IpFilterLSAcceptor.hppbak \ IpGenAugSystemSolver.cppbak IpGenAugSystemSolver.hppbak \ IpGradientScaling.cppbak IpGradientScaling.hppbak \ IpHessianUpdater.hppbak \ IpIpoptAlg.cppbak IpIpoptAlg.hppbak \ IpIpoptCalculatedQuantities.cppbak IpIpoptCalculatedQuantities.hppbak \ IpIpoptData.cppbak IpIpoptData.hppbak \ IpIpoptNLP.hppbak \ IpIterateInitializer.hppbak \ IpIteratesVector.cppbak IpIteratesVector.hppbak \ IpIterationOutput.hppbak \ IpLeastSquareMults.cppbak IpLeastSquareMults.hppbak \ IpLimMemQuasiNewtonUpdater.cppbak IpLimMemQuasiNewtonUpdater.hppbak \ IpLineSearch.hppbak \ IpLoqoMuOracle.cppbak IpLoqoMuOracle.hppbak \ IpLowRankAugSystemSolver.cppbak IpLowRankAugSystemSolver.cppbak \ IpLowRankSSAugSystemSolver.cppbak IpLowRankSSAugSystemSolver.cppbak \ IpMonotoneMuUpdate.cppbak IpMonotoneMuUpdate.hppbak \ IpMuOracle.hppbak \ IpMuUpdate.hppbak \ IpNLPBoundsRemover.cppbak IpNLPBoundsRemover.hppbak \ IpNLPScaling.cppbak IpNLPScaling.hppbak \ IpOptErrorConvCheck.cppbak IpOptErrorConvCheck.hppbak \ IpOrigIpoptNLP.cppbak IpOrigIpoptNLP.hppbak \ IpOrigIterationOutput.cppbak IpOrigIterationOutput.hppbak \ IpPDFullSpaceSolver.cppbak IpPDFullSpaceSolver.hppbak \ IpPDPerturbationHandler.cppbak IpPDPerturbationHandler.hppbak \ IpPDSearchDirCalc.cppbak IpPDSearchDirCalc.hppbak \ IpPDSystemSolver.hppbak \ IpProbingMuOracle.cppbak IpProbingMuOracle.hppbak \ IpQualityFunctionMuOracle.cppbak IpQualityFunctionMuOracle.hppbak \ IpRestoConvCheck.cppbak IpRestoConvCheck.hppbak \ IpRestoFilterConvCheck.cppbak IpRestoFilterConvCheck.hppbak \ IpRestoIpoptNLP.cppbak IpRestoIpoptNLP.hppbak \ IpRestoIterateInitializer.cppbak IpRestoIterateInitializer.hppbak \ IpRestoIterationOutput.cppbak IpRestoIterationOutput.hppbak \ IpRestoMinC_1Nrm.cppbak IpRestoMinC_1Nrm.hppbak \ IpRestoPenaltyConvCheck.cppbak IpRestoPenaltyConvCheck.hppbak \ IpRestoPhase.hppbak \ IpRestoRestoPhase.cppbak IpRestoRestoPhase.hppbak \ IpSearchDirCalculator.hppbak \ IpStdAugSystemSolver.cppbak IpStdAugSystemSolver.hppbak \ IpTimingStatistics.cppbak IpTimingStatistics.hppbak \ IpUserScaling.cppbak IpUserScaling.hppbak \ IpWarmStartIterateInitializer.cppbak IpWarmStartIterateInitializer.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoFilterConvCheck.cpp0000644000076600007660000000501611504216567022215 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoFilterConvCheck.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // // A Waechter: moved most code to IpRestoConvCheck.cpp 2008-06-24 #include "IpRestoFilterConvCheck.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoFilterConvergenceCheck::RestoFilterConvergenceCheck() : orig_filter_ls_acceptor_(NULL) { DBG_START_FUN("RestoFilterConvergenceCheck::RestoFilterConvergenceCheck()", dbg_verbosity); } RestoFilterConvergenceCheck::~RestoFilterConvergenceCheck() { DBG_START_FUN("~RestoFilterConvergenceCheck::RestoFilterConvergenceCheck()", dbg_verbosity); } void RestoFilterConvergenceCheck::SetOrigLSAcceptor (const BacktrackingLSAcceptor& orig_ls_acceptor) { orig_filter_ls_acceptor_ = dynamic_cast(&orig_ls_acceptor); DBG_ASSERT(orig_filter_ls_acceptor_); } void RestoFilterConvergenceCheck::RegisterOptions(SmartPtr roptions) {} bool RestoFilterConvergenceCheck::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_ASSERT(orig_filter_ls_acceptor_ && "Need to call RestoFilterConvergenceCheck::SetOrigFilterLineSearch before Initialize"); return RestoConvergenceCheck::InitializeImpl(options, prefix); } ConvergenceCheck::ConvergenceStatus RestoFilterConvergenceCheck::TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta) { ConvergenceStatus status; if (!orig_filter_ls_acceptor_->IsAcceptableToCurrentFilter(orig_trial_barr, orig_trial_theta)) { Jnlst().Printf(J_DETAILED, J_MAIN, "Point is not acceptable to the original filter.\n"); status = CONTINUE; } else if (!orig_filter_ls_acceptor_->IsAcceptableToCurrentIterate(orig_trial_barr, orig_trial_theta, true) ) { Jnlst().Printf(J_DETAILED, J_MAIN, "Point is not acceptable to the original current point.\n"); status = CONTINUE; } else { Jnlst().Printf(J_DETAILED, J_MAIN, "Restoration found a point that provides sufficient reduction in" " theta and is acceptable to the current filter.\n"); status = CONVERGED; } return status; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoRestoPhase.cpp0000644000076600007660000000747411504216567021273 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoRestoPhase.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-02-11 #include "IpRestoRestoPhase.hpp" #include "IpRestoIpoptNLP.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoRestorationPhase::RestoRestorationPhase() {} RestoRestorationPhase::~RestoRestorationPhase() {} bool RestoRestorationPhase::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } bool RestoRestorationPhase::PerformRestoration() { DBG_START_METH("RestoRestorationPhase::PerformRestoration", dbg_verbosity); Jnlst().Printf(J_DETAILED, J_MAIN, "Performing second level restoration phase for current constriant violation %8.2e\n", IpCq().curr_constraint_violation()); DBG_ASSERT(IpCq().curr_constraint_violation()>0.); // Get a grip on the restoration phase NLP and obtain the pointers // to the original NLP data SmartPtr resto_ip_nlp = static_cast (&IpNLP()); DBG_ASSERT(dynamic_cast (&IpNLP())); SmartPtr orig_ip_nlp = static_cast (&resto_ip_nlp->OrigIpNLP()); DBG_ASSERT(dynamic_cast (&resto_ip_nlp->OrigIpNLP())); // Get the current point and create a new vector for the result SmartPtr Ccurr_x = static_cast (GetRawPtr(IpData().curr()->x())); SmartPtr new_x = IpData().curr()->x()->MakeNew(); SmartPtr Cnew_x = static_cast (GetRawPtr(new_x)); // The x values remain unchanged SmartPtr x = Cnew_x->GetCompNonConst(0); x->Copy(*Ccurr_x->GetComp(0)); // ToDo in free mu mode - what to do here? Number mu = IpData().curr_mu(); // Compute the initial values for the n and p variables for the // equality constraints Number rho = resto_ip_nlp->Rho(); SmartPtr nc = Cnew_x->GetCompNonConst(1); SmartPtr pc = Cnew_x->GetCompNonConst(2); SmartPtr cvec = orig_ip_nlp->c(*Ccurr_x->GetComp(0)); SmartPtr a = nc->MakeNew(); SmartPtr b = nc->MakeNew(); a->Set(mu/(2.*rho)); a->Axpy(-0.5, *cvec); b->Copy(*cvec); b->Scal(mu/(2.*rho)); solve_quadratic(*a, *b, *nc); pc->Copy(*cvec); pc->Axpy(1., *nc); DBG_PRINT_VECTOR(2, "nc", *nc); DBG_PRINT_VECTOR(2, "pc", *pc); // initial values for the n and p variables for the inequality // constraints SmartPtr nd = Cnew_x->GetCompNonConst(3); SmartPtr pd = Cnew_x->GetCompNonConst(4); SmartPtr dvec = pd->MakeNew(); dvec->Copy(*orig_ip_nlp->d(*Ccurr_x->GetComp(0))); dvec->Axpy(-1., *IpData().curr()->s()); a = nd->MakeNew(); b = nd->MakeNew(); a->Set(mu/(2.*rho)); a->Axpy(-0.5, *dvec); b->Copy(*dvec); b->Scal(mu/(2.*rho)); solve_quadratic(*a, *b, *nd); pd->Copy(*dvec); pd->Axpy(1., *nd); DBG_PRINT_VECTOR(2, "nd", *nd); DBG_PRINT_VECTOR(2, "pd", *pd); // Now set the trial point to the solution of the restoration phase // s and all multipliers remain unchanged SmartPtr new_trial = IpData().curr()->MakeNewContainer(); new_trial->Set_x(*new_x); IpData().set_trial(new_trial); IpData().Append_info_string("R"); return true; } void RestoRestorationPhase::solve_quadratic(const Vector& a, const Vector& b, Vector& v) { v.Copy(a); v.ElementWiseMultiply(a); v.Axpy(1., b); v.ElementWiseSqrt(); v.Axpy(1., a); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptCalculatedQuantities.hpp0000644000076600007660000007570211576465630023337 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptCalculatedQuantities.hpp 2020 2011-06-16 20:46:16Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIPOPTCALCULATEDQUANTITIES_HPP__ #define __IPIPOPTCALCULATEDQUANTITIES_HPP__ #include "IpSmartPtr.hpp" #include "IpCachedResults.hpp" #include namespace Ipopt { class IpoptNLP; class IpoptData; class Vector; class Matrix; class SymMatrix; class Journalist; class OptionsList; class RegisteredOptions; /** Norm types */ enum ENormType { NORM_1=0, NORM_2, NORM_MAX }; /** Base class for additional calculated quantities that is special * to a particular type of algorithm, such as the CG penalty * function, or using iterative linear solvers. The regular * IpoptCalculatedQuantities object should be given a derivation of * this base class when it is created. */ class IpoptAdditionalCq : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ IpoptAdditionalCq() {} /** Default destructor */ virtual ~IpoptAdditionalCq() {} //@} /** This method is called to initialize the global algorithmic * parameters. The parameters are taken from the OptionsList * object. */ virtual bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IpoptAdditionalCq(const IpoptAdditionalCq&); /** Overloaded Equals Operator */ void operator=(const IpoptAdditionalCq&); //@} }; /** Class for all IPOPT specific calculated quantities. * */ class IpoptCalculatedQuantities : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ IpoptCalculatedQuantities(const SmartPtr& ip_nlp, const SmartPtr& ip_data); /** Default destructor */ virtual ~IpoptCalculatedQuantities(); //@} /** Method for setting pointer for additional calculated * quantities. This needs to be called before Initialized. */ void SetAddCq(SmartPtr add_cq) { DBG_ASSERT(!HaveAddCq()); add_cq_ = add_cq; } /** Method detecting if additional object for calculated * quantities has already been set */ bool HaveAddCq() { return IsValid(add_cq_); } /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** @name Slacks */ //@{ /** Slacks for x_L (at current iterate) */ SmartPtr curr_slack_x_L(); /** Slacks for x_U (at current iterate) */ SmartPtr curr_slack_x_U(); /** Slacks for s_L (at current iterate) */ SmartPtr curr_slack_s_L(); /** Slacks for s_U (at current iterate) */ SmartPtr curr_slack_s_U(); /** Slacks for x_L (at trial point) */ SmartPtr trial_slack_x_L(); /** Slacks for x_U (at trial point) */ SmartPtr trial_slack_x_U(); /** Slacks for s_L (at trial point) */ SmartPtr trial_slack_s_L(); /** Slacks for s_U (at trial point) */ SmartPtr trial_slack_s_U(); /** Indicating whether or not we "fudged" the slacks */ Index AdjustedTrialSlacks(); /** Reset the flags for "fudged" slacks */ void ResetAdjustedTrialSlacks(); //@} /** @name Objective function */ //@{ /** Value of objective function (at current point) */ virtual Number curr_f(); /** Unscaled value of the objective function (at the current point) */ virtual Number unscaled_curr_f(); /** Value of objective function (at trial point) */ virtual Number trial_f(); /** Unscaled value of the objective function (at the trial point) */ virtual Number unscaled_trial_f(); /** Gradient of objective function (at current point) */ SmartPtr curr_grad_f(); /** Gradient of objective function (at trial point) */ SmartPtr trial_grad_f(); //@} /** @name Barrier Objective Function */ //@{ /** Barrier Objective Function Value * (at current iterate with current mu) */ virtual Number curr_barrier_obj(); /** Barrier Objective Function Value * (at trial point with current mu) */ virtual Number trial_barrier_obj(); /** Gradient of barrier objective function with respect to x * (at current point with current mu) */ SmartPtr curr_grad_barrier_obj_x(); /** Gradient of barrier objective function with respect to s * (at current point with current mu) */ SmartPtr curr_grad_barrier_obj_s(); /** Gradient of the damping term with respect to x (times * kappa_d) */ SmartPtr grad_kappa_times_damping_x(); /** Gradient of the damping term with respect to s (times * kappa_d) */ SmartPtr grad_kappa_times_damping_s(); //@} /** @name Constraints */ //@{ /** c(x) (at current point) */ SmartPtr curr_c(); /** unscaled c(x) (at current point) */ SmartPtr unscaled_curr_c(); /** c(x) (at trial point) */ SmartPtr trial_c(); /** unscaled c(x) (at trial point) */ SmartPtr unscaled_trial_c(); /** d(x) (at current point) */ SmartPtr curr_d(); /** unscaled d(x) (at current point) */ SmartPtr unscaled_curr_d(); /** d(x) (at trial point) */ SmartPtr trial_d(); /** d(x) - s (at current point) */ SmartPtr curr_d_minus_s(); /** d(x) - s (at trial point) */ SmartPtr trial_d_minus_s(); /** Jacobian of c (at current point) */ SmartPtr curr_jac_c(); /** Jacobian of c (at trial point) */ SmartPtr trial_jac_c(); /** Jacobian of d (at current point) */ SmartPtr curr_jac_d(); /** Jacobian of d (at trial point) */ SmartPtr trial_jac_d(); /** Product of Jacobian (evaluated at current point) of C * transpose with general vector */ SmartPtr curr_jac_cT_times_vec(const Vector& vec); /** Product of Jacobian (evaluated at trial point) of C * transpose with general vector */ SmartPtr trial_jac_cT_times_vec(const Vector& vec); /** Product of Jacobian (evaluated at current point) of D * transpose with general vector */ SmartPtr curr_jac_dT_times_vec(const Vector& vec); /** Product of Jacobian (evaluated at trial point) of D * transpose with general vector */ SmartPtr trial_jac_dT_times_vec(const Vector& vec); /** Product of Jacobian (evaluated at current point) of C * transpose with current y_c */ SmartPtr curr_jac_cT_times_curr_y_c(); /** Product of Jacobian (evaluated at trial point) of C * transpose with trial y_c */ SmartPtr trial_jac_cT_times_trial_y_c(); /** Product of Jacobian (evaluated at current point) of D * transpose with current y_d */ SmartPtr curr_jac_dT_times_curr_y_d(); /** Product of Jacobian (evaluated at trial point) of D * transpose with trial y_d */ SmartPtr trial_jac_dT_times_trial_y_d(); /** Product of Jacobian (evaluated at current point) of C * with general vector */ SmartPtr curr_jac_c_times_vec(const Vector& vec); /** Product of Jacobian (evaluated at current point) of D * with general vector */ SmartPtr curr_jac_d_times_vec(const Vector& vec); /** Constraint Violation (at current iterate). This value should * be used in the line search, and not curr_primal_infeasibility(). * What type of norm is used depends on constr_viol_normtype */ virtual Number curr_constraint_violation(); /** Constraint Violation (at trial point). This value should * be used in the line search, and not curr_primal_infeasibility(). * What type of norm is used depends on constr_viol_normtype */ virtual Number trial_constraint_violation(); /** Real constraint violation in a given norm (at current * iterate). This considers the inequality constraints without * slacks. */ virtual Number curr_nlp_constraint_violation(ENormType NormType); /** Unscaled real constraint violation in a given norm (at current * iterate). This considers the inequality constraints without * slacks. */ virtual Number unscaled_curr_nlp_constraint_violation(ENormType NormType); /** Unscaled real constraint violation in a given norm (at trial * iterate). This considers the inequality constraints without * slacks. */ virtual Number unscaled_trial_nlp_constraint_violation(ENormType NormType); //@} /** @name Hessian matrices */ //@{ /** exact Hessian at current iterate (uncached) */ SmartPtr curr_exact_hessian(); //@} /** @name primal-dual error and its components */ //@{ /** x-part of gradient of Lagrangian function (at current point) */ SmartPtr curr_grad_lag_x(); /** x-part of gradient of Lagrangian function (at trial point) */ SmartPtr trial_grad_lag_x(); /** s-part of gradient of Lagrangian function (at current point) */ SmartPtr curr_grad_lag_s(); /** s-part of gradient of Lagrangian function (at trial point) */ SmartPtr trial_grad_lag_s(); /** x-part of gradient of Lagrangian function (at current point) including linear damping term */ SmartPtr curr_grad_lag_with_damping_x(); /** s-part of gradient of Lagrangian function (at current point) including linear damping term */ SmartPtr curr_grad_lag_with_damping_s(); /** Complementarity for x_L (for current iterate) */ SmartPtr curr_compl_x_L(); /** Complementarity for x_U (for current iterate) */ SmartPtr curr_compl_x_U(); /** Complementarity for s_L (for current iterate) */ SmartPtr curr_compl_s_L(); /** Complementarity for s_U (for current iterate) */ SmartPtr curr_compl_s_U(); /** Complementarity for x_L (for trial iterate) */ SmartPtr trial_compl_x_L(); /** Complementarity for x_U (for trial iterate) */ SmartPtr trial_compl_x_U(); /** Complementarity for s_L (for trial iterate) */ SmartPtr trial_compl_s_L(); /** Complementarity for s_U (for trial iterate) */ SmartPtr trial_compl_s_U(); /** Relaxed complementarity for x_L (for current iterate and current mu) */ SmartPtr curr_relaxed_compl_x_L(); /** Relaxed complementarity for x_U (for current iterate and current mu) */ SmartPtr curr_relaxed_compl_x_U(); /** Relaxed complementarity for s_L (for current iterate and current mu) */ SmartPtr curr_relaxed_compl_s_L(); /** Relaxed complementarity for s_U (for current iterate and current mu) */ SmartPtr curr_relaxed_compl_s_U(); /** Primal infeasibility in a given norm (at current iterate). */ virtual Number curr_primal_infeasibility(ENormType NormType); /** Primal infeasibility in a given norm (at trial point) */ virtual Number trial_primal_infeasibility(ENormType NormType); /** Dual infeasibility in a given norm (at current iterate) */ virtual Number curr_dual_infeasibility(ENormType NormType); /** Dual infeasibility in a given norm (at trial iterate) */ virtual Number trial_dual_infeasibility(ENormType NormType); /** Unscaled dual infeasibility in a given norm (at current iterate) */ virtual Number unscaled_curr_dual_infeasibility(ENormType NormType); /** Complementarity (for all complementarity conditions together) * in a given norm (at current iterate) */ virtual Number curr_complementarity(Number mu, ENormType NormType); /** Complementarity (for all complementarity conditions together) * in a given norm (at trial iterate) */ virtual Number trial_complementarity(Number mu, ENormType NormType); /** Complementarity (for all complementarity conditions together) * in a given norm (at current iterate) without NLP scaling. */ virtual Number unscaled_curr_complementarity(Number mu, ENormType NormType); /** Centrality measure (in spirit of the -infinity-neighborhood. */ Number CalcCentralityMeasure(const Vector& compl_x_L, const Vector& compl_x_U, const Vector& compl_s_L, const Vector& compl_s_U); /** Centrality measure at current point */ virtual Number curr_centrality_measure(); /** Total optimality error for the original NLP at the current * iterate, using scaling factors based on multipliers. Note * that here the constraint violation is measured without slacks * (nlp_constraint_violation) */ virtual Number curr_nlp_error(); /** Total optimality error for the original NLP at the current * iterate, but using no scaling based on multipliers, and no * scaling for the NLP. Note that here the constraint violation * is measured without slacks (nlp_constraint_violation) */ virtual Number unscaled_curr_nlp_error(); /** Total optimality error for the barrier problem at the * current iterate, using scaling factors based on multipliers. */ virtual Number curr_barrier_error(); /** Norm of the primal-dual system for a given mu (at current * iterate). The norm is defined as the sum of the 1-norms of * dual infeasibiliy, primal infeasibility, and complementarity, * all divided by the number of elements of the vectors of which * the norm is taken. */ virtual Number curr_primal_dual_system_error(Number mu); /** Norm of the primal-dual system for a given mu (at trial * iterate). The norm is defined as the sum of the 1-norms of * dual infeasibiliy, primal infeasibility, and complementarity, * all divided by the number of elements of the vectors of which * the norm is taken. */ virtual Number trial_primal_dual_system_error(Number mu); //@} /** @name Computing fraction-to-the-boundary step sizes */ //@{ /** Fraction to the boundary from (current) primal variables x and s * for a given step */ Number primal_frac_to_the_bound(Number tau, const Vector& delta_x, const Vector& delta_s); /** Fraction to the boundary from (current) primal variables x and s * for internal (current) step */ Number curr_primal_frac_to_the_bound(Number tau); /** Fraction to the boundary from (current) dual variables z and v * for a given step */ Number dual_frac_to_the_bound(Number tau, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U); /** Fraction to the boundary from (current) dual variables z and v * for a given step, without caching */ Number uncached_dual_frac_to_the_bound(Number tau, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U); /** Fraction to the boundary from (current) dual variables z and v * for internal (current) step */ Number curr_dual_frac_to_the_bound(Number tau); /** Fraction to the boundary from (current) slacks for a given * step in the slacks. Usually, one will use the * primal_frac_to_the_bound method to compute the primal fraction * to the boundary step size, but if it is cheaper to provide the * steps in the slacks directly (e.g. when the primal step sizes * are only temporary), the this method is more efficient. This * method does not cache computations. */ Number uncached_slack_frac_to_the_bound(Number tau, const Vector& delta_x_L, const Vector& delta_x_U, const Vector& delta_s_L, const Vector& delta_s_U); //@} /** @name Sigma matrices */ //@{ SmartPtr curr_sigma_x(); SmartPtr curr_sigma_s(); //@} /** average of current values of the complementarities */ Number curr_avrg_compl(); /** average of trial values of the complementarities */ Number trial_avrg_compl(); /** inner_product of current barrier obj. fn. gradient with * current search direction */ Number curr_gradBarrTDelta(); /** Compute the norm of a specific type of a set of vectors (uncached) */ Number CalcNormOfType(ENormType NormType, std::vector > vecs); /** Compute the norm of a specific type of two vectors (uncached) */ Number CalcNormOfType(ENormType NormType, const Vector& vec1, const Vector& vec2); /** Norm type used for calculating constraint violation */ ENormType constr_viol_normtype() const { return constr_viol_normtype_; } /** Method returning true if this is a square problem */ bool IsSquareProblem() const; /** Method returning the IpoptNLP object. This should only be * used with care! */ SmartPtr& GetIpoptNLP() { return ip_nlp_; } IpoptAdditionalCq& AdditionalCq() { DBG_ASSERT(IsValid(add_cq_)); return *add_cq_; } /** Methods for IpoptType */ //@{ /** Called by IpoptType to register the options */ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IpoptCalculatedQuantities(); /** Copy Constructor */ IpoptCalculatedQuantities(const IpoptCalculatedQuantities&); /** Overloaded Equals Operator */ void operator=(const IpoptCalculatedQuantities&); //@} /** @name Pointers for easy access to data and NLP information */ //@{ /** Ipopt NLP object */ SmartPtr ip_nlp_; /** Ipopt Data object */ SmartPtr ip_data_; /** Chen-Goldfarb specific calculated quantities */ SmartPtr add_cq_; //@} /** @name Algorithmic Parameters that can be set throught the * options list. Those parameters are initialize by calling the * Initialize method.*/ //@{ /** Parameter in formula for computing overall primal-dual * optimality error */ Number s_max_; /** Weighting factor for the linear damping term added to the * barrier objective funciton. */ Number kappa_d_; /** fractional movement allowed in bounds */ Number slack_move_; /** Norm type to be used when calculating the constraint violation */ ENormType constr_viol_normtype_; /** Flag indicating whether the TNLP with identical structure has * already been solved before. */ bool warm_start_same_structure_; /** Desired value of the barrier parameter */ Number mu_target_; //@} /** @name Caches for slacks */ //@{ CachedResults< SmartPtr > curr_slack_x_L_cache_; CachedResults< SmartPtr > curr_slack_x_U_cache_; CachedResults< SmartPtr > curr_slack_s_L_cache_; CachedResults< SmartPtr > curr_slack_s_U_cache_; CachedResults< SmartPtr > trial_slack_x_L_cache_; CachedResults< SmartPtr > trial_slack_x_U_cache_; CachedResults< SmartPtr > trial_slack_s_L_cache_; CachedResults< SmartPtr > trial_slack_s_U_cache_; Index num_adjusted_slack_x_L_; Index num_adjusted_slack_x_U_; Index num_adjusted_slack_s_L_; Index num_adjusted_slack_s_U_; //@} /** @name Cached for objective function stuff */ //@{ CachedResults curr_f_cache_; CachedResults trial_f_cache_; CachedResults< SmartPtr > curr_grad_f_cache_; CachedResults< SmartPtr > trial_grad_f_cache_; //@} /** @name Caches for barrier function stuff */ //@{ CachedResults curr_barrier_obj_cache_; CachedResults trial_barrier_obj_cache_; CachedResults< SmartPtr > curr_grad_barrier_obj_x_cache_; CachedResults< SmartPtr > curr_grad_barrier_obj_s_cache_; CachedResults< SmartPtr > grad_kappa_times_damping_x_cache_; CachedResults< SmartPtr > grad_kappa_times_damping_s_cache_; //@} /** @name Caches for constraint stuff */ //@{ CachedResults< SmartPtr > curr_c_cache_; CachedResults< SmartPtr > trial_c_cache_; CachedResults< SmartPtr > curr_d_cache_; CachedResults< SmartPtr > trial_d_cache_; CachedResults< SmartPtr > curr_d_minus_s_cache_; CachedResults< SmartPtr > trial_d_minus_s_cache_; CachedResults< SmartPtr > curr_jac_c_cache_; CachedResults< SmartPtr > trial_jac_c_cache_; CachedResults< SmartPtr > curr_jac_d_cache_; CachedResults< SmartPtr > trial_jac_d_cache_; CachedResults< SmartPtr > curr_jac_cT_times_vec_cache_; CachedResults< SmartPtr > trial_jac_cT_times_vec_cache_; CachedResults< SmartPtr > curr_jac_dT_times_vec_cache_; CachedResults< SmartPtr > trial_jac_dT_times_vec_cache_; CachedResults< SmartPtr > curr_jac_c_times_vec_cache_; CachedResults< SmartPtr > curr_jac_d_times_vec_cache_; CachedResults curr_constraint_violation_cache_; CachedResults trial_constraint_violation_cache_; CachedResults curr_nlp_constraint_violation_cache_; CachedResults unscaled_curr_nlp_constraint_violation_cache_; CachedResults unscaled_trial_nlp_constraint_violation_cache_; //@} /** Cache for the exact Hessian */ CachedResults< SmartPtr > curr_exact_hessian_cache_; /** @name Components of primal-dual error */ //@{ CachedResults< SmartPtr > curr_grad_lag_x_cache_; CachedResults< SmartPtr > trial_grad_lag_x_cache_; CachedResults< SmartPtr > curr_grad_lag_s_cache_; CachedResults< SmartPtr > trial_grad_lag_s_cache_; CachedResults< SmartPtr > curr_grad_lag_with_damping_x_cache_; CachedResults< SmartPtr > curr_grad_lag_with_damping_s_cache_; CachedResults< SmartPtr > curr_compl_x_L_cache_; CachedResults< SmartPtr > curr_compl_x_U_cache_; CachedResults< SmartPtr > curr_compl_s_L_cache_; CachedResults< SmartPtr > curr_compl_s_U_cache_; CachedResults< SmartPtr > trial_compl_x_L_cache_; CachedResults< SmartPtr > trial_compl_x_U_cache_; CachedResults< SmartPtr > trial_compl_s_L_cache_; CachedResults< SmartPtr > trial_compl_s_U_cache_; CachedResults< SmartPtr > curr_relaxed_compl_x_L_cache_; CachedResults< SmartPtr > curr_relaxed_compl_x_U_cache_; CachedResults< SmartPtr > curr_relaxed_compl_s_L_cache_; CachedResults< SmartPtr > curr_relaxed_compl_s_U_cache_; CachedResults curr_primal_infeasibility_cache_; CachedResults trial_primal_infeasibility_cache_; CachedResults curr_dual_infeasibility_cache_; CachedResults trial_dual_infeasibility_cache_; CachedResults unscaled_curr_dual_infeasibility_cache_; CachedResults curr_complementarity_cache_; CachedResults trial_complementarity_cache_; CachedResults curr_centrality_measure_cache_; CachedResults curr_nlp_error_cache_; CachedResults unscaled_curr_nlp_error_cache_; CachedResults curr_barrier_error_cache_; CachedResults curr_primal_dual_system_error_cache_; CachedResults trial_primal_dual_system_error_cache_; //@} /** @name Caches for fraction to the boundary step sizes */ //@{ CachedResults primal_frac_to_the_bound_cache_; CachedResults dual_frac_to_the_bound_cache_; //@} /** @name Caches for sigma matrices */ //@{ CachedResults< SmartPtr > curr_sigma_x_cache_; CachedResults< SmartPtr > curr_sigma_s_cache_; //@} /** Cache for average of current complementarity */ CachedResults curr_avrg_compl_cache_; /** Cache for average of trial complementarity */ CachedResults trial_avrg_compl_cache_; /** Cache for grad barrier obj. fn inner product with step */ CachedResults curr_gradBarrTDelta_cache_; /** @name Indicator vectors required for the linear damping terms * to handle unbounded solution sets. */ //@{ /** Indicator vector for selecting the elements in x that have * only lower bounds. */ SmartPtr dampind_x_L_; /** Indicator vector for selecting the elements in x that have * only upper bounds. */ SmartPtr dampind_x_U_; /** Indicator vector for selecting the elements in s that have * only lower bounds. */ SmartPtr dampind_s_L_; /** Indicator vector for selecting the elements in s that have * only upper bounds. */ SmartPtr dampind_s_U_; //@} /** @name Temporary vectors for intermediate calcuations. We keep * these around to avoid unnecessarily many new allocations of * Vectors. */ //@{ SmartPtr tmp_x_; SmartPtr tmp_s_; SmartPtr tmp_c_; SmartPtr tmp_d_; SmartPtr tmp_x_L_; SmartPtr tmp_x_U_; SmartPtr tmp_s_L_; SmartPtr tmp_s_U_; /** Accessor methods for the temporary vectors */ Vector& Tmp_x(); Vector& Tmp_s(); Vector& Tmp_c(); Vector& Tmp_d(); Vector& Tmp_x_L(); Vector& Tmp_x_U(); Vector& Tmp_s_L(); Vector& Tmp_s_U(); //@} /** flag indicating if Initialize method has been called (for * debugging) */ bool initialize_called_; /** @name Auxiliary functions */ //@{ /** Compute new vector containing the slack to a lower bound * (uncached) */ SmartPtr CalcSlack_L(const Matrix& P, const Vector& x, const Vector& x_bound); /** Compute new vector containing the slack to a upper bound * (uncached) */ SmartPtr CalcSlack_U(const Matrix& P, const Vector& x, const Vector& x_bound); /** Compute barrier term at given point * (uncached) */ Number CalcBarrierTerm(Number mu, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U); /** Compute complementarity for slack / multiplier pair */ SmartPtr CalcCompl(const Vector& slack, const Vector& mult); /** Compute fraction to the boundary parameter for lower and upper bounds */ Number CalcFracToBound(const Vector& slack_L, Vector& tmp_L, const Matrix& P_L, const Vector& slack_U, Vector& tmp_U, const Matrix& P_U, const Vector& delta, Number tau); /** Compute the scaling factors for the optimality error. */ void ComputeOptimalityErrorScaling(const Vector& y_c, const Vector& y_d, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, Number s_max, Number& s_d, Number& s_c); /** Check if slacks are becoming too small. If slacks are * becoming too small, they are change. The return value is the * number of corrected slacks. */ Index CalculateSafeSlack(SmartPtr& slack, const SmartPtr& bound, const SmartPtr& curr_point, const SmartPtr& multiplier); /** Computes the indicator vectors that can be used to filter out * those entries in the slack_... variables, that correspond to * variables with only lower and upper bounds. This is required * for the linear damping term in the barrier objective function * to handle unbounded solution sets. */ void ComputeDampingIndicators(SmartPtr& dampind_x_L, SmartPtr& dampind_x_U, SmartPtr& dampind_s_L, SmartPtr& dampind_s_U); /** Check if we are in the restoration phase. Returns true, if the * ip_nlp is of the type RestoIpoptNLP. ToDo: We probably want to * handle this more elegant and don't have an explicit dependency * here. Now I added this because otherwise the caching doesn't * work properly since the restoration phase objective function * depends on the current barrier parameter. */ bool in_restoration_phase(); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAdaptiveMuUpdate.hpp0000644000076600007660000001513411504216567021400 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAdaptiveMuUpdate.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPADAPTIVEMUUPDATE_HPP__ #define __IPADAPTIVEMUUPDATE_HPP__ #include "IpMuUpdate.hpp" #include "IpLineSearch.hpp" #include "IpMuOracle.hpp" #include "IpFilter.hpp" #include "IpQualityFunctionMuOracle.hpp" namespace Ipopt { /** Non-monotone mu update. */ class AdaptiveMuUpdate : public MuUpdate { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ AdaptiveMuUpdate(const SmartPtr& linesearch, const SmartPtr& free_mu_oracle, const SmartPtr& fix_mu_oracle=NULL); /** Default destructor */ virtual ~AdaptiveMuUpdate(); //@} /** Initialize method - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for determining the barrier parameter for the next * iteration. When the optimality error for the current barrier * parameter is less than a tolerance, the barrier parameter is * reduced, and the Reset method of the LineSearch object * linesearch is called. */ virtual bool UpdateBarrierParameter(); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ AdaptiveMuUpdate(); /** Copy Constructor */ AdaptiveMuUpdate(const AdaptiveMuUpdate&); /** Overloaded Equals Operator */ void operator=(const AdaptiveMuUpdate&); //@} /** @name Algorithmic parameters */ //@{ Number mu_max_fact_; Number mu_max_; Number mu_min_; Number mu_target_; bool mu_min_default_; Number tau_min_; Number adaptive_mu_safeguard_factor_; //ToDo don't need that? Number adaptive_mu_monotone_init_factor_; Number barrier_tol_factor_; Number mu_linear_decrease_factor_; Number mu_superlinear_decrease_power_; QualityFunctionMuOracle::NormEnum adaptive_mu_kkt_norm_; QualityFunctionMuOracle::CentralityEnum adaptive_mu_kkt_centrality_; QualityFunctionMuOracle::BalancingTermEnum adaptive_mu_kkt_balancing_term_; /** enumeration for adaptive globalization */ enum AdaptiveMuGlobalizationEnum { KKT_ERROR=0, FILTER_OBJ_CONSTR, NEVER_MONOTONE_MODE }; /** Flag indicating which globalization strategy should be used. */ AdaptiveMuGlobalizationEnum adaptive_mu_globalization_; /** Maximal margin in filter */ Number filter_max_margin_; /** Factor for filter margin */ Number filter_margin_fact_; /** Unscaled tolerance for complementarity */ Number compl_inf_tol_; //@} /** @name Strategy objects */ //@{ /** Line search object of the Ipopt algorithm. */ SmartPtr linesearch_; /** Pointer to strategy object that is to be used for computing a * suggested value of the barrier parameter in the free mu mode. */ SmartPtr free_mu_oracle_; /** Pointer to strategy object that is to be used for computing a * suggested value for the fixed mu mode. If NULL, the current * average complementarity is used. */ SmartPtr fix_mu_oracle_; //@} /** Dual infeasibility at initial point. A negative value means * that this quantity has not yet been initialized. */ Number init_dual_inf_; /** Primal infeasibility at initial point. A negative value means * that this quantity has not yet been initialized. */ Number init_primal_inf_; /** @name Methods and data defining the outer globalization * strategy (might be a strategy object later). */ //@{ void InitializeFixedMuGlobalization(); /** Check whether the point in the "current" fields offers * sufficient reduction in order to remain in or switch to the * free mu mode. */ bool CheckSufficientProgress(); /** Include the current point in internal memory to as accepted * point */ void RememberCurrentPointAsAccepted(); /** Compute the value of the fixed mu that should be used in a new * fixed mu phase. This method is called at the beginning of a * new fixed mu phase. */ Number NewFixedMu(); /** Compute value for the fraction-to-the-boundary parameter given * mu in the monotone phase */ Number Compute_tau_monotone(Number mu); /** Method for computing the norm of the primal dual system at the * current point. For consistency, this is computed in the same * way as the quality function is computed. This is the * quantities used in the nonmonontone KKT reduction * globalization. */ Number quality_function_pd_system(); /** Method for computing a lower safeguard bound for the barrier * parameter. For now, this is related to primal and dual * infeasibility. */ Number lower_mu_safeguard(); /** Computer the currently largest reference value. */ Number max_ref_val(); /** Computer the currently smallest reference value. */ Number min_ref_val(); /** Maximal number of reference values (algorithmic parameter) */ Index num_refs_max_; /** Values of the currently stored reference values (norm of pd * equations) */ std::list refs_vals_; /** Factor requested to reduce the reference values */ Number refs_red_fact_; /** Alternatively, we might also want to use a filter */ Filter filter_; /** Flag indicating whether the most recent accepted step should * be restored, when switching to the fixed mode. */ bool restore_accepted_iterate_; //@} /** Flag indicating whether the problem has any inequality constraints */ bool no_bounds_; /** Flag indicating whether no_bounds_ has been initialized */ bool check_if_no_bounds_; /** @name Most recent accepted point in free mode, from which * fixed mode should be started. */ //@{ SmartPtr accepted_point_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoConvCheck.cpp0000644000076600007660000002243311504216567021051 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoConvCheck.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // // was originally IpRestoFilterConvCheck.hpp (rev 915) // separated by A Waechter IBM 2008-06-24 #include "IpRestoConvCheck.hpp" #include "IpCompoundVector.hpp" #include "IpRestoIpoptNLP.hpp" #include "IpRestoPhase.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoConvergenceCheck::RestoConvergenceCheck() { DBG_START_FUN("RestoConvergenceCheck::RestoConvergenceCheck()", dbg_verbosity); } RestoConvergenceCheck::~RestoConvergenceCheck() { DBG_START_FUN("~RestoConvergenceCheck::RestoConvergenceCheck()", dbg_verbosity); } void RestoConvergenceCheck::RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "required_infeasibility_reduction", "Required reduction of infeasibility before leaving restoration phase.", 0.0, false, 1.0, true, 0.9, "The restoration phase algorithm is performed, until a point is found " "that is acceptable to the filter and the infeasibility has been " "reduced by at least the fraction given by this option."); roptions->AddLowerBoundedIntegerOption( "max_resto_iter", "Maximum number of successive iterations in restoration phase.", 0, 3000000, "The algorithm terminates with an error message if the number of " "iterations successively taken in the restoration phase exceeds this " "number."); } bool RestoConvergenceCheck::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("required_infeasibility_reduction", kappa_resto_, prefix); options.GetIntegerValue("max_iter", maximum_iters_, prefix); options.GetIntegerValue("max_resto_iter", maximum_resto_iters_, prefix); // The original constraint violation tolerance options.GetNumericValue("constr_viol_tol", orig_constr_viol_tol_, ""); first_resto_iter_ = true; successive_resto_iter_ = 0; return OptimalityErrorConvergenceCheck::InitializeImpl(options, prefix); } ConvergenceCheck::ConvergenceStatus RestoConvergenceCheck::CheckConvergence(bool call_intermediate_callback /*= true*/) { // Get pointers to the Original NLP objects const RestoIpoptNLP* resto_ipopt_nlp = static_cast(&IpNLP()); DBG_ASSERT(dynamic_cast(&IpNLP())); SmartPtr orig_ip_data = &resto_ipopt_nlp->OrigIpData(); SmartPtr orig_ip_cq = &resto_ipopt_nlp->OrigIpCq(); // set the trial point for the original problem SmartPtr x = IpData().curr()->x(); const CompoundVector* cx = static_cast(GetRawPtr(x)); DBG_ASSERT(dynamic_cast(GetRawPtr(x))); SmartPtr trial = orig_ip_data->curr()->MakeNewContainer(); trial->Set_x(*cx->GetComp(0)); trial->Set_s(*IpData().curr()->s()); orig_ip_data->set_trial(trial); if (call_intermediate_callback) { // Check if user requested termination by calling the intermediate // user callback function AlgorithmMode mode = RestorationPhaseMode; // Gather the information also used in the iteration output Index iter = IpData().iter_count(); Number inf_pr = orig_ip_cq->trial_primal_infeasibility(NORM_MAX); Number inf_du = IpCq().curr_dual_infeasibility(NORM_MAX); Number mu = IpData().curr_mu(); Number dnrm; if (IsValid(IpData().delta()) && IsValid(IpData().delta()->x()) && IsValid(IpData().delta()->s())) { dnrm = Max(IpData().delta()->x()->Amax(), IpData().delta()->s()->Amax()); } else { // This is the first iteration - no search direction has been // computed yet. dnrm = 0.; } Number alpha_primal = IpData().info_alpha_primal(); Number alpha_dual = IpData().info_alpha_dual(); Number regu_x = IpData().info_regu_x(); Number unscaled_f = orig_ip_cq->unscaled_trial_f(); Index ls_count = IpData().info_ls_count(); bool request_stop = !IpNLP().IntermediateCallBack(mode, iter, unscaled_f, inf_pr, inf_du, mu, dnrm, regu_x, alpha_dual, alpha_primal, ls_count, &IpData(), &IpCq()); if (request_stop) { return ConvergenceCheck::USER_STOP; } } if (IpData().iter_count() >= maximum_iters_) { return ConvergenceCheck::MAXITER_EXCEEDED; } if (successive_resto_iter_ > maximum_resto_iters_) { Jnlst().Printf(J_WARNING, J_MAIN, "More than %d successive iterations taken in restoration phase.\n", maximum_resto_iters_); return ConvergenceCheck::MAXITER_EXCEEDED; } successive_resto_iter_++; // First check if the point is now acceptable for the outer filter ConvergenceStatus status; // Calculate the f and theta for the original problem Number orig_trial_theta = orig_ip_cq->trial_constraint_violation(); Number orig_curr_theta = orig_ip_cq->curr_constraint_violation(); // check acceptability to the filter Jnlst().Printf(J_DETAILED, J_MAIN, "orig_curr_theta = %8.2e, orig_trial_theta = %8.2e\n", orig_curr_theta, orig_trial_theta); // ToDo: In the following we might want to be more careful with the lower bound Number orig_curr_inf_pr = orig_ip_cq->curr_primal_infeasibility(NORM_MAX); Number orig_trial_inf_pr = orig_ip_cq->trial_primal_infeasibility(NORM_MAX); Jnlst().Printf(J_DETAILED, J_MAIN, "orig_curr_inf_pr = %8.2e, orig_trial_inf_pr = %8.2e\n", orig_curr_inf_pr, orig_trial_inf_pr); Number orig_inf_pr_max = Max(kappa_resto_*orig_curr_inf_pr, Min(orig_ip_data->tol(), orig_constr_viol_tol_)); if (kappa_resto_ == 0.) { orig_inf_pr_max = 0.; } if (first_resto_iter_) { Jnlst().Printf(J_DETAILED, J_MAIN, "This is the first iteration - continue to take at least one step.\n"); status = CONTINUE; } else if (orig_ip_cq->IsSquareProblem() && orig_trial_inf_pr <= Min(orig_ip_data->tol(), orig_constr_viol_tol_)) { Jnlst().Printf(J_DETAILED, J_MAIN, "Restoration phase found points satisfying feasibility tolerance in square problem.\n"); status = CONVERGED; } else if (orig_trial_inf_pr > orig_inf_pr_max) { Jnlst().Printf(J_DETAILED, J_MAIN, "Point does not provide sufficient reduction w.r.t the original constraint violation (orig_inf_pr_max=%e).\n", orig_inf_pr_max); status = CONTINUE; } else { Number orig_trial_barr = orig_ip_cq->trial_barrier_obj(); Jnlst().Printf(J_DETAILED, J_MAIN, "orig_trial_barr = %8.2e\n", orig_trial_barr); status = TestOrigProgress(orig_trial_barr, orig_trial_theta); } // If the point is not yet acceptable to the filter, check if the problem // is maybe locally infeasible if (status==CONTINUE) { Jnlst().Printf(J_DETAILED, J_MAIN, "Checking convergence for restoration phase problem...\n"); status = OptimalityErrorConvergenceCheck::CheckConvergence(false); if (status == CONVERGED || status == CONVERGED_TO_ACCEPTABLE_POINT) { Number orig_trial_primal_inf = orig_ip_cq->trial_primal_infeasibility(NORM_MAX); // ToDo make the factor in following line an option if (orig_trial_primal_inf <= 1e2*IpData().tol()) { // if (orig_trial_primal_inf <= 1e2*orig_ip_data->tol()) { if (IpData().tol() > 1e-1*orig_ip_data->tol()) { // For once, we tighten the convergence tolerance for the // restoration phase problem in case the problem is only // very slightly infeasible. IpData().Set_tol(1e-2*IpData().tol()); status = CONTINUE; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Tightening restoration phase tolerance to %e.\n", IpData().tol()); IpData().Append_info_string("!"); } else { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Restoration phase converged to a feasible point that is\n" "unacceptable to the filter for the original problem.\n"); THROW_EXCEPTION(RESTORATION_CONVERGED_TO_FEASIBLE_POINT, "Restoration phase converged to a feasible point that is " "unacceptable to the filter for the original problem."); } } else { THROW_EXCEPTION(LOCALLY_INFEASIBLE, "Restoration phase converged to a point of local infeasibility"); } } } first_resto_iter_ = false; return status; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoPhase.hpp0000644000076600007660000000413011504216567020245 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoPhase.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPRESTOPHASE_HPP__ #define __IPRESTOPHASE_HPP__ #include "IpAlgStrategy.hpp" #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" namespace Ipopt { /** @name Exceptions */ //@{ /** Exception RESTORATION_FAILED for all trouble with the * restoration phase. */ DECLARE_STD_EXCEPTION(RESTORATION_CONVERGED_TO_FEASIBLE_POINT); DECLARE_STD_EXCEPTION(RESTORATION_FAILED); DECLARE_STD_EXCEPTION(RESTORATION_MAXITER_EXCEEDED); DECLARE_STD_EXCEPTION(RESTORATION_CPUTIME_EXCEEDED); DECLARE_STD_EXCEPTION(RESTORATION_USER_STOP); //@} /** Base class for different restoration phases. The restoration * phase is part of the FilterLineSearch. */ class RestorationPhase : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ RestorationPhase() {} /** Default Destructor */ virtual ~RestorationPhase() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method called to perform restoration for the filter line * search method. */ virtual bool PerformRestoration() = 0; private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ RestorationPhase(const RestorationPhase&); /** Overloaded Equals Operator */ void operator=(const RestorationPhase&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLowRankSSAugSystemSolver.cpp0000644000076600007660000003317612141450650023046 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLowRankSSAugSystemSolver.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2009-11-05 // (based on IpLowRankAugSystemSolver.cpp rev 1571) #include "IpLowRankSSAugSystemSolver.hpp" #include "IpLowRankUpdateSymMatrix.hpp" #include "IpDenseVector.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LowRankSSAugSystemSolver::LowRankSSAugSystemSolver( AugSystemSolver& aug_system_solver, Index max_rank) : AugSystemSolver(), aug_system_solver_(&aug_system_solver), max_rank_(max_rank), w_factor_(0.), delta_x_(0.), delta_s_(0.), delta_c_(0.), delta_d_(0.) { DBG_START_METH("LowRankSSAugSystemSolver::LowRankSSAugSystemSolver()",dbg_verbosity); DBG_ASSERT(IsValid(aug_system_solver_)); } LowRankSSAugSystemSolver::~LowRankSSAugSystemSolver() { DBG_START_METH("LowRankSSAugSystemSolver::~LowRankSSAugSystemSolver()",dbg_verbosity); } bool LowRankSSAugSystemSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { first_call_ = true; Wdiag_ = NULL; expanded_vu_ = NULL; J_c_ext_ = NULL; D_c_ext_ = NULL; y_c_ext_space_ = NULL; return aug_system_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } ESymSolverStatus LowRankSSAugSystemSolver::Solve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("LowRankSSAugSystemSolver::Solve",dbg_verbosity); ESymSolverStatus retval; if (first_call_) { DBG_ASSERT(IsNull(Wdiag_)); // Set up the diagonal matrix Wdiag_ Index dimx = rhs_x.Dim(); SmartPtr Wdiag_space = new DiagMatrixSpace(dimx); Wdiag_ = Wdiag_space->MakeNewDiagMatrix(); } // This might be used with a linear solver that cannot detect the // inertia. In that case, we should not asked for checking the // number of negative eigenvalues. if (!aug_system_solver_->ProvidesInertia()) { check_NegEVals = false; } if (first_call_ || AugmentedSystemRequiresChange(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d) ) { retval = UpdateExtendedData(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d, rhs_x, rhs_s, rhs_c, rhs_d); if (retval != SYMSOLVER_SUCCESS) { return retval; } // Store the tags w_tag_ = W->GetTag(); w_factor_ = W_factor; if (D_x) { d_x_tag_ = D_x->GetTag(); } else { d_x_tag_ = TaggedObject::Tag(); } delta_x_ = delta_x; if (D_s) { d_s_tag_ = D_s->GetTag(); } else { d_s_tag_ = TaggedObject::Tag(); } delta_s_ = delta_s; if (J_c) { j_c_tag_ = J_c->GetTag(); } else { j_c_tag_ = TaggedObject::Tag(); } if (D_c) { d_c_tag_ = D_c->GetTag(); } else { d_c_tag_ = TaggedObject::Tag(); } delta_c_ = delta_c; if (J_d) { j_d_tag_ = J_d->GetTag(); } else { j_d_tag_ = TaggedObject::Tag(); } if (D_d) { d_d_tag_ = D_d->GetTag(); } else { d_d_tag_ = TaggedObject::Tag(); } delta_d_ = delta_d; first_call_ = false; } // Extend the right hand side SmartPtr rhs_c_ext = y_c_ext_space_->MakeNewCompoundVector(true); rhs_c_ext->SetComp(0, rhs_c); rhs_c_ext->GetCompNonConst(1)->Set(0.); SmartPtr sol_c_ext = y_c_ext_space_->MakeNewCompoundVector(true); sol_c_ext->SetCompNonConst(0, sol_c); // Now solve the system for the given right hand side, using the // extended Jacobian_c and y_c data. numberOfNegEVals += negEvalsCorrection_; retval = aug_system_solver_->Solve(GetRawPtr(Wdiag_), W_factor, D_x, delta_x, D_s, delta_s, GetRawPtr(J_c_ext_), GetRawPtr(D_c_ext_), delta_c, J_d, D_d, delta_d, rhs_x, rhs_s, *rhs_c_ext, rhs_d, sol_x, sol_s, *sol_c_ext, sol_d, check_NegEVals, numberOfNegEVals); if (aug_system_solver_->ProvidesInertia()) { num_neg_evals_ = aug_system_solver_->NumberOfNegEVals() - negEvalsCorrection_; } if (retval != SYMSOLVER_SUCCESS) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankSSAugSystemSolver: AugSystemSolver returned retval = %d for right hand side.\n", retval); return retval; } return retval; } ESymSolverStatus LowRankSSAugSystemSolver::UpdateExtendedData( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d) { DBG_START_METH("LowRankSSAugSystemSolver::UpdateExtendedData", dbg_verbosity); DBG_ASSERT(W_factor == 0.0 || W_factor == 1.0); ESymSolverStatus retval = SYMSOLVER_SUCCESS; // Get the low update information out of W const LowRankUpdateSymMatrix* LR_W = static_cast (W); DBG_ASSERT(dynamic_cast(W)); DBG_PRINT_MATRIX(2, "LR_W", *LR_W); // If we don't have it yet, create the ExpandedMultiVectorMatrix SmartPtr P_LM = LR_W->P_LowRank(); SmartPtr LR_VecSpace = LR_W->LowRankVectorSpace(); if (IsNull(expanded_vu_)) { SmartPtr exp_matrix; if (IsValid(P_LM)) { exp_matrix = static_cast(GetRawPtr(P_LM)); DBG_ASSERT(dynamic_cast(GetRawPtr(P_LM))); } SmartPtr expanded_vu_space = new ExpandedMultiVectorMatrixSpace(max_rank_, *LR_VecSpace, exp_matrix); expanded_vu_ = expanded_vu_space->MakeNewExpandedMultiVectorMatrix(); // Create extended y_c quantities to include the V and U matrices DBG_ASSERT(IsNull(J_c_ext_)); SmartPtr J_c_ext_space = new CompoundMatrixSpace(2, 1, proto_rhs_c.Dim()+max_rank_, proto_rhs_x.Dim()); J_c_ext_space->SetBlockRows(0, proto_rhs_c.Dim()); J_c_ext_space->SetBlockRows(1, max_rank_); J_c_ext_space->SetBlockCols(0, proto_rhs_x.Dim()); J_c_ext_space->SetCompSpace(0, 0, *J_c.OwnerSpace()); J_c_ext_space->SetCompSpace(1, 0, *expanded_vu_space); J_c_ext_ = J_c_ext_space->MakeNewCompoundMatrix(); DBG_ASSERT(IsNull(D_c_ext_)); DBG_ASSERT(IsNull(y_c_ext_space_)); y_c_ext_space_ = new CompoundVectorSpace(2, proto_rhs_c.Dim()+max_rank_); y_c_ext_space_->SetCompSpace(0, *proto_rhs_c.OwnerSpace()); SmartPtr D_c_rank_space = new DenseVectorSpace(max_rank_); y_c_ext_space_->SetCompSpace(1, *D_c_rank_space); D_c_ext_ = y_c_ext_space_->MakeNewCompoundVector(true); } SmartPtr B0; SmartPtr V; SmartPtr U; if (W_factor == 1.0) { V = LR_W->GetV(); U = LR_W->GetU(); B0 = LR_W->GetDiag(); } if (IsNull(B0)) { SmartPtr zero_B0 = (IsValid(P_LM)) ? LR_VecSpace->MakeNew() : proto_rhs_x.MakeNew(); zero_B0->Set(0.0); B0 = GetRawPtr(zero_B0); } // set up the Hessian for the underlying augmented system solver // without the low-rank update if (IsValid(P_LM) && LR_W->ReducedDiag()) { DBG_ASSERT(IsValid(B0)); SmartPtr fullx = proto_rhs_x.MakeNew(); P_LM->MultVector(1., *B0, 0., *fullx); Wdiag_->SetDiag(*fullx); } else { Wdiag_->SetDiag(*B0); DBG_PRINT_VECTOR(2, "B0", *B0); } SmartPtr D_c_rank_vec = D_c_ext_->GetCompNonConst(1); SmartPtr D_c_rank = static_cast(GetRawPtr(D_c_rank_vec)); DBG_ASSERT(dynamic_cast(GetRawPtr(D_c_rank_vec))); Number* D_c_rank_vals = D_c_rank->Values(); Index irank = 0; if (IsValid(V)) { Index nV = V->NCols(); negEvalsCorrection_ = nV; ASSERT_EXCEPTION(irank + nV, INTERNAL_ABORT, "max_rank too small for V"); for (Index i=0; i vec = V->GetVector(i); expanded_vu_->SetVector(irank, vec); D_c_rank_vals[irank] = -1.; irank++; } } else { negEvalsCorrection_ = 0; } if (IsValid(U)) { Index nU = U->NCols(); ASSERT_EXCEPTION(irank + nU, INTERNAL_ABORT, "max_rank too small for V"); for (Index i=0; i vec = U->GetVector(i); expanded_vu_->SetVector(irank, vec); D_c_rank_vals[irank] = 1.; irank++; } } for (; irankSetVector(irank, NULL); D_c_rank_vals[irank] = 1.; } if (D_c) { D_c_ext_->SetComp(0, *D_c); } else { SmartPtr zero_c = proto_rhs_c.MakeNew(); zero_c->Set(0.); D_c_ext_->SetComp(0, *zero_c); } J_c_ext_->SetComp(0, 0, J_c); J_c_ext_->SetComp(1, 0, *expanded_vu_); return retval; } bool LowRankSSAugSystemSolver::AugmentedSystemRequiresChange( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d) { DBG_START_METH("LowRankSSAugSystemSolver::AugmentedSystemRequiresChange", dbg_verbosity); #if COIN_IPOPT_VERBOSITY > 0 bool Wtest = (W && W->GetTag() != w_tag_); bool iWtest = (!W && w_tag_ != TaggedObject::Tag()); bool wfactor_test = (W_factor != w_factor_); bool D_xtest = (D_x && D_x->GetTag() != d_x_tag_); bool iD_xtest = (!D_x && d_x_tag_ != TaggedObject::Tag()); bool delta_xtest = (delta_x != delta_x_); bool D_stest = (D_s && D_s->GetTag() != d_s_tag_); bool iD_stest = (!D_s && d_s_tag_ != TaggedObject::Tag()); bool delta_stest = (delta_s != delta_s_); bool J_ctest = (J_c.GetTag() != j_c_tag_); bool D_ctest = (D_c && D_c->GetTag() != d_c_tag_); bool iD_ctest = (!D_c && d_c_tag_ != TaggedObject::Tag()); bool delta_ctest = (delta_c != delta_c_); bool J_dtest = (J_d.GetTag() != j_d_tag_); bool D_dtest = (D_d && D_d->GetTag() != d_d_tag_); bool iD_dtest = (!D_d && d_d_tag_ != TaggedObject::Tag()); bool delta_dtest = (delta_d != delta_d_); #endif DBG_PRINT((2,"Wtest = %d\n", Wtest)); DBG_PRINT((2,"iWtest = %d\n", iWtest)); DBG_PRINT((2,"wfactor_test = %d\n", wfactor_test)); DBG_PRINT((2,"D_xtest = %d\n", D_xtest)); DBG_PRINT((2,"iD_xtest = %d\n", iD_xtest)); DBG_PRINT((2,"delta_xtest = %d\n", delta_xtest)); DBG_PRINT((2,"D_stest = %d\n", D_stest)); DBG_PRINT((2,"iD_stest = %d\n", iD_stest)); DBG_PRINT((2,"delta_stest = %d\n", delta_stest)); DBG_PRINT((2,"J_ctest = %d\n", J_ctest)); DBG_PRINT((2,"D_ctest = %d\n", D_ctest)); DBG_PRINT((2,"iD_ctest = %d\n", iD_ctest)); DBG_PRINT((2,"delta_ctest = %d\n", delta_ctest)); DBG_PRINT((2,"J_dtest = %d\n", J_dtest)); DBG_PRINT((2,"D_dtest = %d\n", D_dtest)); DBG_PRINT((2,"iD_dtest = %d\n", iD_dtest)); DBG_PRINT((2,"delta_dtest = %d\n", delta_dtest)); if ( (W && W->GetTag() != w_tag_) || (!W && w_tag_ != TaggedObject::Tag()) || (W_factor != w_factor_) || (D_x && D_x->GetTag() != d_x_tag_) || (!D_x && d_x_tag_ != TaggedObject::Tag()) || (delta_x != delta_x_) || (D_s && D_s->GetTag() != d_s_tag_) || (!D_s && d_s_tag_ != TaggedObject::Tag()) || (delta_s != delta_s_) || (J_c.GetTag() != j_c_tag_) || (D_c && D_c->GetTag() != d_c_tag_) || (!D_c && d_c_tag_ != TaggedObject::Tag()) || (delta_c != delta_c_) || (J_d.GetTag() != j_d_tag_) || (D_d && D_d->GetTag() != d_d_tag_) || (!D_d && d_d_tag_ != TaggedObject::Tag()) || (delta_d != delta_d_) ) { return true; } return false; } Index LowRankSSAugSystemSolver::NumberOfNegEVals() const { DBG_ASSERT(!first_call_); return num_neg_evals_; } bool LowRankSSAugSystemSolver::ProvidesInertia() const { return aug_system_solver_->ProvidesInertia(); } bool LowRankSSAugSystemSolver::IncreaseQuality() { return aug_system_solver_->IncreaseQuality(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpEquilibrationScaling.cpp0000644000076600007660000002364712210647763022312 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpEquilibrationScaling.cpp 2367 2013-09-01 14:32:19Z stefan $ // // Authors: Andreas Waechter IBM 2007-05-21 #include "IpoptConfig.h" #include "IpEquilibrationScaling.hpp" #include "IpTripletHelper.hpp" #ifdef COIN_HAS_HSL #include "CoinHslConfig.h" #endif #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif /** Prototypes for MA27's Fortran subroutines */ extern "C" { // here we assume that float corresponds to Fortran's single // precision void F77_FUNC(mc19ad,MC19AD)(const ipfint *N, const ipfint *NZ, const double* A, const ipfint *IRN, const ipfint* ICN, float* R, float* C, float* W); } namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif void EquilibrationScaling:: RegisterOptions(const SmartPtr& roptions) {} bool EquilibrationScaling:: InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("point_perturbation_radius", point_perturbation_radius_, prefix); return StandardScalingBase::InitializeImpl(options, prefix); } void EquilibrationScaling::DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd) { DBG_ASSERT(IsValid(nlp_)); SmartPtr x0 = x_space->MakeNew(); if (!nlp_->GetStartingPoint(GetRawPtr(x0), true, NULL, false, NULL, false, NULL, false, NULL, false)) { THROW_EXCEPTION(FAILED_INITIALIZATION, "Error getting initial point from NLP in EquilibrationScaling.\n"); } // We store the added absolute values of the Jacobian and // objective function gradient in an array of sufficient size SmartPtr jac_c = jac_c_space->MakeNew(); SmartPtr jac_d = jac_d_space->MakeNew(); SmartPtr grad_f = x_space->MakeNew(); const Index nnz_jac_c = TripletHelper::GetNumberEntries(*jac_c); const Index nnz_jac_d = TripletHelper::GetNumberEntries(*jac_d); const Index nc = jac_c_space->NRows(); const Index nd = jac_d_space->NRows(); const Index nx = x_space->Dim(); Number* avrg_values = new Number[nnz_jac_c+nnz_jac_d+nx]; Number* val_buffer = new Number[Max(nnz_jac_c,nnz_jac_d,nx)]; SmartPtr perturber = new PointPerturber(*x0, point_perturbation_radius_, Px_L, x_L, Px_U, x_U); const Index num_evals = 4; const Index max_num_eval_errors = 10; Index num_eval_errors = 0; for (Index ieval=0; ieval xpert = perturber->MakeNewPerturbedPoint(); done = (nlp_->Eval_grad_f(*xpert, *grad_f) && nlp_->Eval_jac_c(*xpert, *jac_c) && nlp_->Eval_jac_d(*xpert, *jac_d)); if (!done) { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Error evaluating first derivatives as at perturbed point for equilibration-based scaling.\n"); num_eval_errors++; } if (num_eval_errors>max_num_eval_errors) { delete [] val_buffer; delete [] avrg_values; THROW_EXCEPTION(FAILED_INITIALIZATION, "Too many evaluation failures during equilibiration-based scaling."); } } // Get the numbers out of the matrices and vectors, and add it // to avrg_values TripletHelper::FillValues(nnz_jac_c, *jac_c, val_buffer); if (ieval==0) { for (Index i=0; iMakeNew(); TripletHelper::PutValuesInVector(nc, &row_scale[0], *dc); dd = d_space->MakeNew(); TripletHelper::PutValuesInVector(nd, &row_scale[nc], *dd); dx = x_space->MakeNew(); TripletHelper::PutValuesInVector(nx, col_scale, *dx); delete [] row_scale; delete [] col_scale; } PointPerturber::PointPerturber(const Vector& x0, Number random_pert_radius, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U) { DBG_START_METH("PointPerturber::PointPerturber", dbg_verbosity); const Number very_large = 1e300; // First we compute full-space lower and upper bounds SmartPtr full_x_L = x0.MakeNew(); full_x_L->Set(-very_large); SmartPtr tmp = x_L.MakeNew(); tmp->Set(very_large); Px_L.MultVector(1., *tmp, 1., *full_x_L); DBG_PRINT_VECTOR(1,"full_x_L1", *full_x_L); Px_L.MultVector(1., x_L, 1., *full_x_L); DBG_PRINT_VECTOR(1,"full_x_L2", *full_x_L); SmartPtr full_x_U = x0.MakeNew(); full_x_U->Set(very_large); tmp = x_U.MakeNew(); tmp->Set(-very_large); Px_U.MultVector(1., *tmp, 1., *full_x_U); DBG_PRINT_VECTOR(1,"full_x_U1", *full_x_U); Px_U.MultVector(1., x_U, 1., *full_x_U); DBG_PRINT_VECTOR(1,"full_x_U2", *full_x_U); pert_dir_ = full_x_U->MakeNew(); pert_dir_->AddTwoVectors(.5, *full_x_U, -.5, *full_x_L, 0.); tmp = full_x_U->MakeNew(); tmp->Set(random_pert_radius); pert_dir_->ElementWiseMin(*tmp); DBG_PRINT_VECTOR(1,"pert_dir", *pert_dir_); ref_point_ = x0.MakeNewCopy(); DBG_PRINT_VECTOR(1,"ref_point1", *ref_point_); full_x_U->AddOneVector(-1., *pert_dir_, 1.); ref_point_->ElementWiseMin(*full_x_U); DBG_PRINT_VECTOR(1,"ref_point2", *ref_point_); full_x_L->AddOneVector(1., *pert_dir_, 1.); ref_point_->ElementWiseMax(*full_x_L); DBG_PRINT_VECTOR(1,"ref_point3", *ref_point_); } SmartPtr PointPerturber:: MakeNewPerturbedPoint() const { const Index nx = ref_point_->Dim(); Number* vals = new Number[nx]; TripletHelper::FillValuesFromVector(nx, *ref_point_, vals); Number* pert_vals = new Number[nx]; TripletHelper::FillValuesFromVector(nx, *pert_dir_, pert_vals); for (Index i=0; i retval = ref_point_->MakeNew(); TripletHelper::PutValuesInVector(nx, vals, *retval); delete [] vals; return retval; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptData.hpp0000644000076600007660000006051212141450650020052 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptData.hpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIPOPTDATA_HPP__ #define __IPIPOPTDATA_HPP__ #include "IpSymMatrix.hpp" #include "IpOptionsList.hpp" #include "IpIteratesVector.hpp" #include "IpRegOptions.hpp" #include "IpTimingStatistics.hpp" namespace Ipopt { /* Forward declaration */ class IpoptNLP; /** Base class for additional data that is special to a particular * type of algorithm, such as the CG penalty function, or using * iterative linear solvers. The regular IpoptData object should * be given a derivation of this base class when it is created. */ class IpoptAdditionalData : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ IpoptAdditionalData() {} /** Default destructor */ virtual ~IpoptAdditionalData() {} //@} /** This method is called to initialize the global algorithmic * parameters. The parameters are taken from the OptionsList * object. */ virtual bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) = 0; /** Initialize Data Structures at the beginning. */ virtual bool InitializeDataStructures() = 0; /** Do whatever is necessary to accept a trial point as current * iterate. This is also used to finish an iteration, i.e., to * release memory, and to reset any flags for a new iteration. */ virtual void AcceptTrialPoint() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IpoptAdditionalData(const IpoptAdditionalData&); /** Overloaded Equals Operator */ void operator=(const IpoptAdditionalData&); //@} }; /** Class to organize all the data required by the algorithm. * Internally, once this Data object has been initialized, all * internal curr_ vectors must always be set (so that prototyes are * available). The current values can only be set from the trial * values. The trial values can be set by copying from a vector or * by adding some fraction of a step to the current values. This * object also stores steps, which allows to easily communicate the * step from the step computation object to the line search object. */ class IpoptData : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ IpoptData(SmartPtr add_data = NULL, Number cpu_time_start = -1.); /** Default destructor */ virtual ~IpoptData(); //@} /** Initialize Data Structures */ bool InitializeDataStructures(IpoptNLP& ip_nlp, bool want_x, bool want_y_c, bool want_y_d, bool want_z_L, bool want_z_U); /** This method must be called to initialize the global * algorithmic parameters. The parameters are taken from the * OptionsList object. */ bool Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); /** @name Get Methods for Iterates */ //@{ /** Current point */ inline SmartPtr curr() const; /** Get the current point in a copied container that is non-const. The entries in the container cannot be modified, but the container can be modified to point to new entries. */ // SmartPtr curr_container() const; /** Get Trial point */ inline SmartPtr trial() const; /** Get Trial point in a copied container that is non-const. * The entries in the container can not be modified, but * the container can be modified to point to new entries. */ //SmartPtr trial_container() const; /** Set the trial point - this method copies the pointer for * efficiency (no copy and to keep cache tags the same) so * after you call set you cannot modify the data again */ inline void set_trial(SmartPtr& trial); /** Set the values of the primal trial variables (x and s) from * provided Step with step length alpha. */ void SetTrialPrimalVariablesFromStep(Number alpha, const Vector& delta_x, const Vector& delta_s); /** Set the values of the trial values for the equality constraint * multipliers (y_c and y_d) from provided step with step length * alpha. */ void SetTrialEqMultipliersFromStep(Number alpha, const Vector& delta_y_c, const Vector& delta_y_d); /** Set the value of the trial values for the bound multipliers * (z_L, z_U, v_L, v_U) from provided step with step length * alpha. */ void SetTrialBoundMultipliersFromStep(Number alpha, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U); /** ToDo: I may need to add versions of set_trial like the * following, but I am not sure */ // void set_trial(const SmartPtr& trial_iterates); // void set_trial(SmartPtr& trial_iterates); /** get the current delta */ inline SmartPtr delta() const; /** Set the current delta - like the trial point, this method copies * the pointer for efficiency (no copy and to keep cache tags the * same) so after you call set, you cannot modify the data */ inline void set_delta(SmartPtr& delta); /** Set the current delta - like the trial point, this method * copies the pointer for efficiency (no copy and to keep cache * tags the same) so after you call set, you cannot modify the * data. This is the version that is happy with a pointer to * const IteratesVector. */ inline void set_delta(SmartPtr& delta); /** Affine Delta */ inline SmartPtr delta_aff() const; /** Set the affine delta - like the trial point, this method copies * the pointer for efficiency (no copy and to keep cache tags the * same) so after you call set, you cannot modify the data */ inline void set_delta_aff(SmartPtr& delta_aff); /** Hessian or Hessian approximation (do not hold on to it, it might be changed) */ SmartPtr W() { DBG_ASSERT(IsValid(W_)); return W_; } /** Set Hessian approximation */ void Set_W(SmartPtr W) { W_ = W; } /** @name ("Main") Primal-dual search direction. Those fields are * used to store the search directions computed from solving the * primal-dual system, and can be used in the line search. They * are overwritten in every iteration, so do not hold on to the * pointers (make copies instead) */ //@{ /** Returns true, if the primal-dual step have been already * computed for the current iteration. This flag is reset after * every call of AcceptTrialPoint(). If the search direction is * computed during the computation of the barrier parameter, the * method computing the barrier parameter should call * SetHaveDeltas(true) to tell the IpoptAlgorithm object that it * doesn't need to recompute the primal-dual step. */ bool HaveDeltas() const { return have_deltas_; } /** Method for setting the HaveDeltas flag. This method should be * called if some method computes the primal-dual step (and * stores it in the delta_ fields of IpoptData) at an early part * of the iteration. If that flag is set to true, the * IpoptAlgorithm object will not recompute the step. */ void SetHaveDeltas(bool have_deltas) { have_deltas_ = have_deltas; } //@} /** @name Affine-scaling step. Those fields can be used to store * the affine scaling step. For example, if the method for * computing the current barrier parameter computes the affine * scaling steps, then the corrector step in the line search does * not have to recompute those solutions of the linear system. */ //@{ /** Returns true, if the affine-scaling step have been already * computed for the current iteration. This flag is reset after * every call of AcceptTrialPoint(). If the search direction is * computed during the computation of the barrier parameter, the * method computing the barrier parameter should call * SetHaveDeltas(true) to tell the line search does not have to * recompute them in case it wants to do a corrector step. */ bool HaveAffineDeltas() const { return have_affine_deltas_; } /** Method for setting the HaveDeltas flag. This method should be * called if some method computes the primal-dual step (and * stores it in the delta_ fields of IpoptData) at an early part * of the iteration. If that flag is set to true, the * IpoptAlgorithm object will not recompute the step. */ void SetHaveAffineDeltas(bool have_affine_deltas) { have_affine_deltas_ = have_affine_deltas; } //@} /** @name Public Methods for updating iterates */ //@{ /** Copy the trial values to the current values */ inline void CopyTrialToCurrent(); /** Set the current iterate values from the * trial values. */ void AcceptTrialPoint(); //@} /** @name General algorithmic data */ //@{ Index iter_count() const { return iter_count_; } void Set_iter_count(Index iter_count) { iter_count_ = iter_count; } Number curr_mu() const { DBG_ASSERT(mu_initialized_); return curr_mu_; } void Set_mu(Number mu) { curr_mu_ = mu; mu_initialized_ = true; } bool MuInitialized() const { return mu_initialized_; } Number curr_tau() const { DBG_ASSERT(tau_initialized_); return curr_tau_; } void Set_tau(Number tau) { curr_tau_ = tau; tau_initialized_ = true; } bool TauInitialized() const { return tau_initialized_; } void SetFreeMuMode(bool free_mu_mode) { free_mu_mode_ = free_mu_mode; } bool FreeMuMode() const { return free_mu_mode_; } /** Setting the flag that indicates if a tiny step (below machine * precision) has been detected */ void Set_tiny_step_flag(bool flag) { tiny_step_flag_ = flag; } bool tiny_step_flag() { return tiny_step_flag_; } //@} /** Overall convergence tolerance. It is used in the convergence * test, but also in some other parts of the algorithm that * depend on the specified tolerance, such as the minimum value * for the barrier parameter. */ //@{ /** Obtain the tolerance. */ Number tol() const { DBG_ASSERT(initialize_called_); return tol_; } /** Set a new value for the tolerance. One should be very careful * when using this, since changing the predefined tolerance might * have unexpected consequences. This method is for example used * in the restoration convergence checker to tighten the * restoration phase convergence tolerance, if the restoration * phase converged to a point that has not a large value for the * constraint violation. */ void Set_tol(Number tol) { tol_ = tol; } //@} /** Cpu time counter at the beginning of the optimization. This * is useful to see how much CPU time has been spent in this * optimization run. */ Number cpu_time_start() const { return cpu_time_start_; } /** @name Information gathered for iteration output */ //@{ Number info_regu_x() const { return info_regu_x_; } void Set_info_regu_x(Number regu_x) { info_regu_x_ = regu_x; } Number info_alpha_primal() const { return info_alpha_primal_; } void Set_info_alpha_primal(Number alpha_primal) { info_alpha_primal_ = alpha_primal; } char info_alpha_primal_char() const { return info_alpha_primal_char_; } void Set_info_alpha_primal_char(char info_alpha_primal_char) { info_alpha_primal_char_ = info_alpha_primal_char; } Number info_alpha_dual() const { return info_alpha_dual_; } void Set_info_alpha_dual(Number alpha_dual) { info_alpha_dual_ = alpha_dual; } Index info_ls_count() const { return info_ls_count_; } void Set_info_ls_count(Index ls_count) { info_ls_count_ = ls_count; } bool info_skip_output() const { return info_skip_output_; } void Append_info_string(const std::string& add_str) { info_string_ += add_str; } const std::string& info_string() const { return info_string_; } /** Set this to true, if the next time when output is written, the * summary line should not be printed. */ void Set_info_skip_output(bool info_skip_output) { info_skip_output_ = info_skip_output; } /** gives time when the last summary output line was printed */ Number info_last_output() { return info_last_output_; } /** sets time when the last summary output line was printed */ void Set_info_last_output(Number info_last_output) { info_last_output_ = info_last_output; } /** gives number of iteration summaries actually printed * since last summary header was printed */ int info_iters_since_header() { return info_iters_since_header_; } /** increases number of iteration summaries actually printed * since last summary header was printed */ void Inc_info_iters_since_header() { info_iters_since_header_++; } /** sets number of iteration summaries actually printed * since last summary header was printed */ void Set_info_iters_since_header(int info_iters_since_header) { info_iters_since_header_ = info_iters_since_header; } /** Reset all info fields */ void ResetInfo() { info_regu_x_ = 0; info_alpha_primal_ = 0; info_alpha_dual_ = 0.; info_alpha_primal_char_ = ' '; info_skip_output_ = false; info_string_.erase(); } //@} /** Return Timing Statistics Object */ TimingStatistics& TimingStats() { return timing_statistics_; } /** Check if additional data has been set */ bool HaveAddData() { return IsValid(add_data_); } /** Get access to additional data object */ IpoptAdditionalData& AdditionalData() { return *add_data_; } /** Set a new pointer for additional Ipopt data */ void SetAddData(SmartPtr add_data) { DBG_ASSERT(!HaveAddData()); add_data_ = add_data; } /** Set the perturbation of the primal-dual system */ void setPDPert(Number pd_pert_x, Number pd_pert_s, Number pd_pert_c, Number pd_pert_d) { pd_pert_x_ = pd_pert_x; pd_pert_s_ = pd_pert_s; pd_pert_c_ = pd_pert_c; pd_pert_d_ = pd_pert_d; } /** Get the current perturbation of the primal-dual system */ void getPDPert(Number& pd_pert_x, Number& pd_pert_s, Number& pd_pert_c, Number& pd_pert_d) { pd_pert_x = pd_pert_x_; pd_pert_s = pd_pert_s_; pd_pert_c = pd_pert_c_; pd_pert_d = pd_pert_d_; } /** Methods for IpoptType */ //@{ static void RegisterOptions(const SmartPtr& roptions); //@} private: /** @name Iterates */ //@{ /** Main iteration variables * (current iteration) */ SmartPtr curr_; /** Main iteration variables * (trial calculations) */ SmartPtr trial_; /** Hessian (approximation) - might be changed elsewhere! */ SmartPtr W_; /** @name Primal-dual Step */ //@{ SmartPtr delta_; /** The following flag is set to true, if some other part of the * algorithm (like the method for computing the barrier * parameter) has already computed the primal-dual search * direction. This flag is reset when the AcceptTrialPoint * method is called. * ToDo: we could cue off of a null delta_; */ bool have_deltas_; //@} /** @name Affine-scaling step. This used to transfer the * information about the affine-scaling step from the computation * of the barrier parameter to the corrector (in the line * search). */ //@{ SmartPtr delta_aff_; /** The following flag is set to true, if some other part of the * algorithm (like the method for computing the barrier * parameter) has already computed the affine-scaling step. This * flag is reset when the AcceptTrialPoint method is called. * ToDo: we could cue off of a null delta_aff_; */ bool have_affine_deltas_; //@} /** iteration count */ Index iter_count_; /** current barrier parameter */ Number curr_mu_; bool mu_initialized_; /** current fraction to the boundary parameter */ Number curr_tau_; bool tau_initialized_; /** flag indicating if Initialize method has been called (for * debugging) */ bool initialize_called_; /** flag for debugging whether we have already curr_ values * available (from which new Vectors can be generated */ bool have_prototypes_; /** @name Global algorithm parameters. Those are options that can * be modified by the user and appear at different places in the * algorithm. They are set using an OptionsList object in the * Initialize method. */ //@{ /** Overall convergence tolerance */ Number tol_; //@} /** @name Status data **/ //@{ /** flag indicating whether the algorithm is in the free mu mode */ bool free_mu_mode_; /** flag indicating if a tiny step has been detected */ bool tiny_step_flag_; //@} /** @name Gathered information for iteration output */ //@{ /** Size of regularization for the Hessian */ Number info_regu_x_; /** Primal step size */ Number info_alpha_primal_; /** Info character for primal step size */ char info_alpha_primal_char_; /** Dual step size */ Number info_alpha_dual_; /** Number of backtracking trial steps */ Index info_ls_count_; /** true, if next summary output line should not be printed (eg * after restoration phase. */ bool info_skip_output_; /** any string of characters for the end of the output line */ std::string info_string_; /** time when the last summary output line was printed */ Number info_last_output_; /** number of iteration summaries actually printed since last * summary header was printed */ int info_iters_since_header_; //@} /** VectorSpace for all the iterates */ SmartPtr iterates_space_; /** TimingStatistics object collecting all Ipopt timing * statistics */ TimingStatistics timing_statistics_; /** CPU time counter at initialization. */ Number cpu_time_start_; /** Object for the data specific for the Chen-Goldfarb penalty * method algorithm */ SmartPtr add_data_; /** @name Information about the perturbation of the primal-dual * system */ //@{ Number pd_pert_x_; Number pd_pert_s_; Number pd_pert_c_; Number pd_pert_d_; //@} /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IpoptData(const IpoptData&); /** Overloaded Equals Operator */ void operator=(const IpoptData&); //@} #if COIN_IPOPT_CHECKLEVEL > 0 /** Some debug flags to make sure vectors are not changed * behind the IpoptData's back */ //@{ TaggedObject::Tag debug_curr_tag_; TaggedObject::Tag debug_trial_tag_; TaggedObject::Tag debug_delta_tag_; TaggedObject::Tag debug_delta_aff_tag_; TaggedObject::Tag debug_curr_tag_sum_; TaggedObject::Tag debug_trial_tag_sum_; TaggedObject::Tag debug_delta_tag_sum_; TaggedObject::Tag debug_delta_aff_tag_sum_; //@} #endif }; inline SmartPtr IpoptData::curr() const { DBG_ASSERT(IsNull(curr_) || (curr_->GetTag() == debug_curr_tag_ && curr_->GetTagSum() == debug_curr_tag_sum_) ); return curr_; } inline SmartPtr IpoptData::trial() const { DBG_ASSERT(IsNull(trial_) || (trial_->GetTag() == debug_trial_tag_ && trial_->GetTagSum() == debug_trial_tag_sum_) ); return trial_; } inline SmartPtr IpoptData::delta() const { DBG_ASSERT(IsNull(delta_) || (delta_->GetTag() == debug_delta_tag_ && delta_->GetTagSum() == debug_delta_tag_sum_) ); return delta_; } inline SmartPtr IpoptData::delta_aff() const { DBG_ASSERT(IsNull(delta_aff_) || (delta_aff_->GetTag() == debug_delta_aff_tag_ && delta_aff_->GetTagSum() == debug_delta_aff_tag_sum_) ); return delta_aff_; } inline void IpoptData::CopyTrialToCurrent() { curr_ = trial_; #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(curr_)) { debug_curr_tag_ = curr_->GetTag(); debug_curr_tag_sum_ = curr_->GetTagSum(); } else { debug_curr_tag_ = TaggedObject::Tag(); debug_curr_tag_sum_ = TaggedObject::Tag(); } #endif } inline void IpoptData::set_trial(SmartPtr& trial) { trial_ = ConstPtr(trial); #if COIN_IPOPT_CHECKLEVEL > 0 // verify the correct space DBG_ASSERT(trial_->OwnerSpace() == (VectorSpace*)GetRawPtr(iterates_space_)); if (IsValid(trial)) { debug_trial_tag_ = trial->GetTag(); debug_trial_tag_sum_ = trial->GetTagSum(); } else { debug_trial_tag_ = TaggedObject::Tag(); debug_trial_tag_sum_ = TaggedObject::Tag(); } #endif trial = NULL; } inline void IpoptData::set_delta(SmartPtr& delta) { delta_ = ConstPtr(delta); #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta)) { debug_delta_tag_ = delta->GetTag(); debug_delta_tag_sum_ = delta->GetTagSum(); } else { debug_delta_tag_ = TaggedObject::Tag(); debug_delta_tag_sum_ = TaggedObject::Tag(); } #endif delta = NULL; } inline void IpoptData::set_delta(SmartPtr& delta) { delta_ = delta; #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta)) { debug_delta_tag_ = delta->GetTag(); debug_delta_tag_sum_ = delta->GetTagSum(); } else { debug_delta_tag_ = TaggedObject::Tag(); debug_delta_tag_sum_ = TaggedObject::Tag(); } #endif delta = NULL; } inline void IpoptData::set_delta_aff(SmartPtr& delta_aff) { delta_aff_ = ConstPtr(delta_aff); #if COIN_IPOPT_CHECKLEVEL > 0 if (IsValid(delta_aff)) { debug_delta_aff_tag_ = delta_aff->GetTag(); debug_delta_aff_tag_sum_ = delta_aff->GetTagSum(); } else { debug_delta_aff_tag_ = TaggedObject::Tag(); debug_delta_aff_tag_sum_ = delta_aff->GetTagSum(); } #endif delta_aff = NULL; } } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpQualityFunctionMuOracle.cpp0000644000076600007660000015047311504216567022765 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpQualityFunctionMuOracle.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-11-12 #include "IpQualityFunctionMuOracle.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif QualityFunctionMuOracle::QualityFunctionMuOracle(const SmartPtr& pd_solver) : MuOracle(), pd_solver_(pd_solver), tmp_step_x_L_(NULL), tmp_step_x_U_(NULL), tmp_step_s_L_(NULL), tmp_step_s_U_(NULL), tmp_step_z_L_(NULL), tmp_step_z_U_(NULL), tmp_step_v_L_(NULL), tmp_step_v_U_(NULL), tmp_slack_x_L_(NULL), tmp_slack_x_U_(NULL), tmp_slack_s_L_(NULL), tmp_slack_s_U_(NULL), tmp_z_L_(NULL), tmp_z_U_(NULL), tmp_v_L_(NULL), tmp_v_U_(NULL), count_qf_evals_(0) { DBG_ASSERT(IsValid(pd_solver_)); } QualityFunctionMuOracle::~QualityFunctionMuOracle() {} void QualityFunctionMuOracle::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "sigma_max", "Maximum value of the centering parameter.", 0.0, true, 1e2, "This is the upper bound for the centering parameter chosen by the " "quality function based barrier parameter update. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddLowerBoundedNumberOption( "sigma_min", "Minimum value of the centering parameter.", 0.0, false, 1e-6, "This is the lower bound for the centering parameter chosen by the " "quality function based barrier parameter update. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddStringOption4( "quality_function_norm_type", "Norm used for components of the quality function.", "2-norm-squared", "1-norm", "use the 1-norm (abs sum)", "2-norm-squared", "use the 2-norm squared (sum of squares)", "max-norm", "use the infinity norm (max)", "2-norm", "use 2-norm", "(Only used if option \"mu_oracle\" is set to \"quality-function\".)"); roptions->AddStringOption4( "quality_function_centrality", "The penalty term for centrality that is included in quality function.", "none", "none", "no penalty term is added", "log", "complementarity * the log of the centrality measure", "reciprocal", "complementarity * the reciprocal of the centrality measure", "cubed-reciprocal", "complementarity * the reciprocal of the centrality measure cubed", "This determines whether a term is added to the quality function to " "penalize deviation from centrality with respect to complementarity. The " "complementarity measure here is the xi in the Loqo update rule. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddStringOption2( "quality_function_balancing_term", "The balancing term included in the quality function for centrality.", "none", "none", "no balancing term is added", "cubic", "Max(0,Max(dual_inf,primal_inf)-compl)^3", "This determines whether a term is added to the quality function that " "penalizes situations where the complementarity is much smaller " "than dual and primal infeasibilities. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddLowerBoundedIntegerOption( "quality_function_max_section_steps", "Maximum number of search steps during direct search procedure " "determining the optimal centering parameter.", 0, 8, "The golden section search is performed for the quality function based " "mu oracle. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddBoundedNumberOption( "quality_function_section_sigma_tol", "Tolerance for the section search procedure determining " "the optimal centering parameter (in sigma space).", 0.0, false, 1.0, true, 1e-2, "The golden section search is performed for the quality function based " "mu oracle. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); roptions->AddBoundedNumberOption( "quality_function_section_qf_tol", "Tolerance for the golden section search procedure determining " "the optimal centering parameter (in the function value space).", 0.0, false, 1.0, true, 0e-2, "The golden section search is performed for the quality function based mu " "oracle. (Only used if option " "\"mu_oracle\" is set to \"quality-function\".)"); } bool QualityFunctionMuOracle::InitializeImpl(const OptionsList& options, const std::string& prefix) { Index enum_int; options.GetNumericValue("sigma_max", sigma_max_, prefix); options.GetNumericValue("sigma_min", sigma_min_, prefix); options.GetEnumValue("quality_function_norm_type", enum_int, prefix); quality_function_norm_ = NormEnum(enum_int); options.GetEnumValue("quality_function_centrality", enum_int, prefix); quality_function_centrality_ = CentralityEnum(enum_int); options.GetEnumValue("quality_function_balancing_term", enum_int, prefix); quality_function_balancing_term_ = BalancingTermEnum(enum_int); options.GetIntegerValue("quality_function_max_section_steps", quality_function_max_section_steps_, prefix); options.GetNumericValue("quality_function_section_sigma_tol", quality_function_section_sigma_tol_, prefix); options.GetNumericValue("quality_function_section_qf_tol", quality_function_section_qf_tol_, prefix); initialized_ = false; return true; } bool QualityFunctionMuOracle::CalculateMu(Number mu_min, Number mu_max, Number& new_mu) { DBG_START_METH("QualityFunctionMuOracle::CalculateMu", dbg_verbosity); /////////////////////////////////////////////////////////////////////////// // Reserve memory for temporary vectors used in CalculateQualityFunction // /////////////////////////////////////////////////////////////////////////// tmp_step_x_L_ = IpNLP().x_L()->MakeNew(); tmp_step_x_U_ = IpNLP().x_U()->MakeNew(); tmp_step_s_L_ = IpNLP().d_L()->MakeNew(); tmp_step_s_U_ = IpNLP().d_U()->MakeNew(); tmp_step_z_L_ = IpNLP().x_L()->MakeNew(); tmp_step_z_U_ = IpNLP().x_U()->MakeNew(); tmp_step_v_L_ = IpNLP().d_L()->MakeNew(); tmp_step_v_U_ = IpNLP().d_U()->MakeNew(); tmp_slack_x_L_ = IpNLP().x_L()->MakeNew(); tmp_slack_x_U_ = IpNLP().x_U()->MakeNew(); tmp_slack_s_L_ = IpNLP().d_L()->MakeNew(); tmp_slack_s_U_ = IpNLP().d_U()->MakeNew(); tmp_z_L_ = IpNLP().x_L()->MakeNew(); tmp_z_U_ = IpNLP().x_U()->MakeNew(); tmp_v_L_ = IpNLP().d_L()->MakeNew(); tmp_v_U_ = IpNLP().d_U()->MakeNew(); ///////////////////////////////////// // Compute the affine scaling step // ///////////////////////////////////// Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Solving the Primal Dual System for the affine step\n"); // First get the right hand side SmartPtr rhs_aff = IpData().curr()->MakeNewIteratesVector(false); rhs_aff->Set_x(*IpCq().curr_grad_lag_x()); rhs_aff->Set_s(*IpCq().curr_grad_lag_s()); rhs_aff->Set_y_c(*IpCq().curr_c()); rhs_aff->Set_y_d(*IpCq().curr_d_minus_s()); rhs_aff->Set_z_L(*IpCq().curr_compl_x_L()); rhs_aff->Set_z_U(*IpCq().curr_compl_x_U()); rhs_aff->Set_v_L(*IpCq().curr_compl_s_L()); rhs_aff->Set_v_U(*IpCq().curr_compl_s_U()); // Get space for the affine scaling step SmartPtr step_aff = IpData().curr()->MakeNewIteratesVector(true); // Now solve the primal-dual system to get the step. We allow a // somewhat inexact solution, iterative refinement will be done // after mu is known bool allow_inexact = true; bool retval = pd_solver_->Solve(-1.0, 0.0, *rhs_aff, *step_aff, allow_inexact ); if (!retval) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "The linear system could not be solved for the affine step!\n"); return false; } DBG_PRINT_VECTOR(2, "step_aff", *step_aff); ///////////////////////////////////// // Compute the pure centering step // ///////////////////////////////////// Number avrg_compl = IpCq().curr_avrg_compl(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Solving the Primal Dual System for the centering step\n"); // First get the right hand side SmartPtr rhs_cen = IpData().curr()->MakeNewIteratesVector(true); rhs_cen->x_NonConst()->AddOneVector(-avrg_compl, *IpCq().grad_kappa_times_damping_x(), 0.); rhs_cen->s_NonConst()->AddOneVector(-avrg_compl, *IpCq().grad_kappa_times_damping_s(), 0.); rhs_cen->y_c_NonConst()->Set(0.); rhs_cen->y_d_NonConst()->Set(0.); rhs_cen->z_L_NonConst()->Set(avrg_compl); rhs_cen->z_U_NonConst()->Set(avrg_compl); rhs_cen->v_L_NonConst()->Set(avrg_compl); rhs_cen->v_U_NonConst()->Set(avrg_compl); // Get space for the centering step SmartPtr step_cen = IpData().curr()->MakeNewIteratesVector(true); // Now solve the primal-dual system to get the step allow_inexact = true; retval = pd_solver_->Solve(1.0, 0.0, *rhs_cen, *step_cen, allow_inexact ); if (!retval) { Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "The linear system could not be solved for the centering step!\n"); return false; } DBG_PRINT_VECTOR(2, "step_cen", *step_cen); // Start the timing for the quality function search here IpData().TimingStats().QualityFunctionSearch().Start(); // Some initializations if (!initialized_) { n_dual_ = IpData().curr()->x()->Dim() + IpData().curr()->s()->Dim(); n_pri_ = IpData().curr()->y_c()->Dim() + IpData().curr()->y_d()->Dim(); n_comp_ = IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim(); initialized_ = true; } count_qf_evals_ = 0; // Compute some quantities used for the quality function evaluations // (This way we try to avoid retrieving numbers from cache... curr_slack_x_L_ = IpCq().curr_slack_x_L(); curr_slack_x_U_ = IpCq().curr_slack_x_U(); curr_slack_s_L_ = IpCq().curr_slack_s_L(); curr_slack_s_U_ = IpCq().curr_slack_s_U(); curr_z_L_ = IpData().curr()->z_L(); curr_z_U_ = IpData().curr()->z_U(); curr_v_L_ = IpData().curr()->v_L(); curr_v_U_ = IpData().curr()->v_U(); IpData().TimingStats().Task5().Start(); switch (quality_function_norm_) { case NM_NORM_1: curr_grad_lag_x_asum_ = IpCq().curr_grad_lag_x()->Asum(); curr_grad_lag_s_asum_ = IpCq().curr_grad_lag_s()->Asum(); curr_c_asum_ = IpCq().curr_c()->Asum(); curr_d_minus_s_asum_ = IpCq().curr_d_minus_s()->Asum(); break; case NM_NORM_2_SQUARED: case NM_NORM_2: curr_grad_lag_x_nrm2_ = IpCq().curr_grad_lag_x()->Nrm2(); curr_grad_lag_s_nrm2_ = IpCq().curr_grad_lag_s()->Nrm2(); curr_c_nrm2_ = IpCq().curr_c()->Nrm2(); curr_d_minus_s_nrm2_ = IpCq().curr_d_minus_s()->Nrm2(); break; case NM_NORM_MAX: curr_grad_lag_x_amax_ = IpCq().curr_grad_lag_x()->Amax(); curr_grad_lag_s_amax_ = IpCq().curr_grad_lag_s()->Amax(); curr_c_amax_ = IpCq().curr_c()->Amax(); curr_d_minus_s_amax_ = IpCq().curr_d_minus_s()->Amax(); break; default: DBG_ASSERT(false && "Unknown value for quality_function_norm_"); } IpData().TimingStats().Task5().End(); // Some initializations if (!initialized_) { n_dual_ = IpData().curr()->x()->Dim() + IpData().curr()->s()->Dim(); n_pri_ = IpData().curr()->y_c()->Dim() + IpData().curr()->y_d()->Dim(); n_comp_ = IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim(); initialized_ = true; } count_qf_evals_ = 0; // Compute some quantities used for the quality function evaluations // (This way we try to avoid retrieving numbers from cache... curr_slack_x_L_ = IpCq().curr_slack_x_L(); curr_slack_x_U_ = IpCq().curr_slack_x_U(); curr_slack_s_L_ = IpCq().curr_slack_s_L(); curr_slack_s_U_ = IpCq().curr_slack_s_U(); curr_z_L_ = IpData().curr()->z_L(); curr_z_U_ = IpData().curr()->z_U(); curr_v_L_ = IpData().curr()->v_L(); curr_v_U_ = IpData().curr()->v_U(); IpData().TimingStats().Task5().Start(); switch (quality_function_norm_) { case NM_NORM_1: curr_grad_lag_x_asum_ = IpCq().curr_grad_lag_x()->Asum(); curr_grad_lag_s_asum_ = IpCq().curr_grad_lag_s()->Asum(); curr_c_asum_ = IpCq().curr_c()->Asum(); curr_d_minus_s_asum_ = IpCq().curr_d_minus_s()->Asum(); break; case NM_NORM_2_SQUARED: case NM_NORM_2: curr_grad_lag_x_nrm2_ = IpCq().curr_grad_lag_x()->Nrm2(); curr_grad_lag_s_nrm2_ = IpCq().curr_grad_lag_s()->Nrm2(); curr_c_nrm2_ = IpCq().curr_c()->Nrm2(); curr_d_minus_s_nrm2_ = IpCq().curr_d_minus_s()->Nrm2(); break; case NM_NORM_MAX: curr_grad_lag_x_amax_ = IpCq().curr_grad_lag_x()->Amax(); curr_grad_lag_s_amax_ = IpCq().curr_grad_lag_s()->Amax(); curr_c_amax_ = IpCq().curr_c()->Amax(); curr_d_minus_s_amax_ = IpCq().curr_d_minus_s()->Amax(); break; default: DBG_ASSERT(false && "Unknown value for quality_function_norm_"); } IpData().TimingStats().Task5().End(); // We now compute the step for the slack variables. This safes // time, because we then don't have to do this any more for each // evaluation of the quality function SmartPtr step_aff_x_L = step_aff->z_L()->MakeNew(); SmartPtr step_aff_x_U = step_aff->z_U()->MakeNew(); SmartPtr step_aff_s_L = step_aff->v_L()->MakeNew(); SmartPtr step_aff_s_U = step_aff->v_U()->MakeNew(); IpNLP().Px_L()->TransMultVector(1., *step_aff->x(), 0., *step_aff_x_L); IpNLP().Px_U()->TransMultVector(-1., *step_aff->x(), 0., *step_aff_x_U); IpNLP().Pd_L()->TransMultVector(1., *step_aff->s(), 0., *step_aff_s_L); IpNLP().Pd_U()->TransMultVector(-1., *step_aff->s(), 0., *step_aff_s_U); SmartPtr step_cen_x_L = step_cen->z_L()->MakeNew(); SmartPtr step_cen_x_U = step_cen->z_U()->MakeNew(); SmartPtr step_cen_s_L = step_cen->v_L()->MakeNew(); SmartPtr step_cen_s_U = step_cen->v_U()->MakeNew(); IpNLP().Px_L()->TransMultVector(1., *step_cen->x(), 0., *step_cen_x_L); IpNLP().Px_U()->TransMultVector(-1., *step_cen->x(), 0., *step_cen_x_U); IpNLP().Pd_L()->TransMultVector(1., *step_cen->s(), 0., *step_cen_s_L); IpNLP().Pd_U()->TransMultVector(-1., *step_cen->s(), 0., *step_cen_s_U); Number sigma; // First we determine whether we want to search for a value of // sigma larger or smaller than 1. For this, we estimate the // slope of the quality function at sigma=1. Number qf_1 = CalculateQualityFunction(1., *step_aff_x_L, *step_aff_x_U, *step_aff_s_L, *step_aff_s_U, *step_aff->y_c(), *step_aff->y_d(), *step_aff->z_L(), *step_aff->z_U(), *step_aff->v_L(), *step_aff->v_U(), *step_cen_x_L, *step_cen_x_U, *step_cen_s_L, *step_cen_s_U, *step_cen->y_c(), *step_cen->y_d(), *step_cen->z_L(), *step_cen->z_U(), *step_cen->v_L(), *step_cen->v_U()); Number sigma_1minus = 1.-Max(1e-4, quality_function_section_sigma_tol_); Number qf_1minus = CalculateQualityFunction(sigma_1minus, *step_aff_x_L, *step_aff_x_U, *step_aff_s_L, *step_aff_s_U, *step_aff->y_c(), *step_aff->y_d(), *step_aff->z_L(), *step_aff->z_U(), *step_aff->v_L(), *step_aff->v_U(), *step_cen_x_L, *step_cen_x_U, *step_cen_s_L, *step_cen_s_U, *step_cen->y_c(), *step_cen->y_d(), *step_cen->z_L(), *step_cen->z_U(), *step_cen->v_L(), *step_cen->v_U()); if (qf_1minus > qf_1) { // It seems that the quality function decreases for values // larger than sigma, so perform golden section search for sigma // > 1. Number sigma_up = Min(sigma_max_, mu_max/avrg_compl); Number sigma_lo = 1.; if (sigma_lo >= sigma_up) { sigma = sigma_up; } else { // ToDo maybe we should use different tolerances for sigma>1 sigma = PerformGoldenSection(sigma_up, -100., sigma_lo, qf_1, quality_function_section_sigma_tol_, quality_function_section_qf_tol_, *step_aff_x_L, *step_aff_x_U, *step_aff_s_L, *step_aff_s_U, *step_aff->y_c(), *step_aff->y_d(), *step_aff->z_L(), *step_aff->z_U(), *step_aff->v_L(), *step_aff->v_U(), *step_cen_x_L, *step_cen_x_U, *step_cen_s_L, *step_cen_s_U, *step_cen->y_c(), *step_cen->y_d(), *step_cen->z_L(), *step_cen->z_U(), *step_cen->v_L(), *step_cen->v_U()); } } else { // Search for sigma less than 1 Number sigma_lo = Max(sigma_min_, mu_min/avrg_compl); Number sigma_up = Min(Max(sigma_lo, sigma_1minus), mu_max/avrg_compl); if (sigma_lo >= sigma_up) { // Skip the search, we are already at the minimum sigma = sigma_lo; } else { sigma = PerformGoldenSection(sigma_up, qf_1minus, sigma_lo, -100., quality_function_section_sigma_tol_, quality_function_section_qf_tol_, *step_aff_x_L, *step_aff_x_U, *step_aff_s_L, *step_aff_s_U, *step_aff->y_c(), *step_aff->y_d(), *step_aff->z_L(), *step_aff->z_U(), *step_aff->v_L(), *step_aff->v_U(), *step_cen_x_L, *step_cen_x_U, *step_cen_s_L, *step_cen_s_U, *step_cen->y_c(), *step_cen->y_d(), *step_cen->z_L(), *step_cen->z_U(), *step_cen->v_L(), *step_cen->v_U()); } } //#define tracequalityfunction #ifdef tracequalityfunction char fname[100]; Snprintf(fname, 100, "qf_values_%d.dat", IpData().iter_count()); FILE* fid = fopen(fname, "w"); Number sigma_1 = sigma_max_; Number sigma_2 = 1e-9/avrg_compl; Number sigma_trace = sigma_1; while (sigma_trace > sigma_2) { Number qf = CalculateQualityFunction(sigma_trace, *step_aff_x_L, *step_aff_x_U, *step_aff_s_L, *step_aff_s_U, *step_aff->y_c(), *step_aff->y_d(), *step_aff->z_L(), *step_aff->z_U(), *step_aff->v_L(), *step_aff->v_U(), *step_cen_x_L, *step_cen_x_U, *step_cen_s_L, *step_cen_s_U, *step_cen->y_c(), *step_cen->y_d(), *step_cen->z_L(), *step_cen->z_U(), *step_cen->v_L(), *step_cen->v_U()); fprintf(fid, "%9.2e %25.16e\n", sigma_trace, qf); sigma_trace /= 1.1; } fclose(fid); #endif // End timing of quality function search IpData().TimingStats().QualityFunctionSearch().End(); Jnlst().Printf(J_DETAILED, J_BARRIER_UPDATE, "Sigma = %e\n", sigma); Number mu = sigma*avrg_compl; // Store the affine search direction (in case it is needed in the // line search for a corrector step) IpData().set_delta_aff(step_aff); IpData().SetHaveAffineDeltas(true); // Now construct the overall search direction here SmartPtr step = IpData().curr()->MakeNewIteratesVector(true); step->AddTwoVectors(sigma, *step_cen, 1.0, *IpData().delta_aff(), 0.0); DBG_PRINT_VECTOR(2, "step", *step); IpData().set_delta(step); IpData().SetHaveDeltas(true); /////////////////////////////////////////////////////////////////////////// // Release memory for temporary vectors used in CalculateQualityFunction // /////////////////////////////////////////////////////////////////////////// tmp_step_x_L_ = NULL; tmp_step_x_U_ = NULL; tmp_step_s_L_ = NULL; tmp_step_s_U_ = NULL; tmp_step_z_L_ = NULL; tmp_step_z_U_ = NULL; tmp_step_v_L_ = NULL; tmp_step_v_U_ = NULL; tmp_slack_x_L_ = NULL; tmp_slack_x_U_ = NULL; tmp_slack_s_L_ = NULL; tmp_slack_s_U_ = NULL; tmp_z_L_ = NULL; tmp_z_U_ = NULL; tmp_v_L_ = NULL; tmp_v_U_ = NULL; curr_slack_x_L_ = NULL; curr_slack_x_U_ = NULL; curr_slack_s_L_ = NULL; curr_slack_s_U_ = NULL; // DELETEME char ssigma[40]; Snprintf(ssigma, 39, " sigma=%8.2e", sigma); IpData().Append_info_string(ssigma); Snprintf(ssigma, 39, " qf=%d", count_qf_evals_); IpData().Append_info_string(ssigma); /* Snprintf(ssigma, 39, " xi=%8.2e ", IpCq().curr_centrality_measure()); IpData().Append_info_string(ssigma); if (sigma>1.) { IpData().Append_info_string("LARGESIGMA"); } */ new_mu = mu; return true; } Number QualityFunctionMuOracle::CalculateQualityFunction (Number sigma, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U ) { DBG_START_METH("QualityFunctionMuOracle::CalculateQualityFunction", dbg_verbosity); count_qf_evals_++; IpData().TimingStats().Task1().Start(); tmp_step_x_L_->AddTwoVectors(1., step_aff_x_L, sigma, step_cen_x_L, 0.); tmp_step_x_U_->AddTwoVectors(1., step_aff_x_U, sigma, step_cen_x_U, 0.); tmp_step_s_L_->AddTwoVectors(1., step_aff_s_L, sigma, step_cen_s_L, 0.); tmp_step_s_U_->AddTwoVectors(1., step_aff_s_U, sigma, step_cen_s_U, 0.); tmp_step_z_L_->AddTwoVectors(1., step_aff_z_L, sigma, step_cen_z_L, 0.); tmp_step_z_U_->AddTwoVectors(1., step_aff_z_U, sigma, step_cen_z_U, 0.); tmp_step_v_L_->AddTwoVectors(1., step_aff_v_L, sigma, step_cen_v_L, 0.); tmp_step_v_U_->AddTwoVectors(1., step_aff_v_U, sigma, step_cen_v_U, 0.); IpData().TimingStats().Task1().End(); // Compute the fraction-to-the-boundary step sizes IpData().TimingStats().Task2().Start(); Number tau = IpData().curr_tau(); Number alpha_primal = IpCq().uncached_slack_frac_to_the_bound(tau, *tmp_step_x_L_, *tmp_step_x_U_, *tmp_step_s_L_, *tmp_step_s_U_); Number alpha_dual = IpCq().uncached_dual_frac_to_the_bound(tau, *tmp_step_z_L_, *tmp_step_z_U_, *tmp_step_v_L_, *tmp_step_v_U_); IpData().TimingStats().Task2().End(); Number xi = 0.; // centrality measure IpData().TimingStats().Task1().Start(); tmp_slack_x_L_->AddTwoVectors(1., *curr_slack_x_L_, alpha_primal, *tmp_step_x_L_, 0.); tmp_slack_x_U_->AddTwoVectors(1., *curr_slack_x_U_, alpha_primal, *tmp_step_x_U_, 0.); tmp_slack_s_L_->AddTwoVectors(1., *curr_slack_s_L_, alpha_primal, *tmp_step_s_L_, 0.); tmp_slack_s_U_->AddTwoVectors(1., *curr_slack_s_U_, alpha_primal, *tmp_step_s_U_, 0.); tmp_z_L_->AddTwoVectors(1., *curr_z_L_, alpha_dual, *tmp_step_z_L_, 0.); tmp_z_U_->AddTwoVectors(1., *curr_z_U_, alpha_dual, *tmp_step_z_U_, 0.); tmp_v_L_->AddTwoVectors(1., *curr_v_L_, alpha_dual, *tmp_step_v_L_, 0.); tmp_v_U_->AddTwoVectors(1., *curr_v_U_, alpha_dual, *tmp_step_v_U_, 0.); IpData().TimingStats().Task1().End(); IpData().TimingStats().Task3().Start(); tmp_slack_x_L_->ElementWiseMultiply(*tmp_z_L_); tmp_slack_x_U_->ElementWiseMultiply(*tmp_z_U_); tmp_slack_s_L_->ElementWiseMultiply(*tmp_v_L_); tmp_slack_s_U_->ElementWiseMultiply(*tmp_v_U_); IpData().TimingStats().Task3().End(); DBG_PRINT_VECTOR(2, "compl_x_L", *tmp_slack_x_L_); DBG_PRINT_VECTOR(2, "compl_x_U", *tmp_slack_x_U_); DBG_PRINT_VECTOR(2, "compl_s_L", *tmp_slack_s_L_); DBG_PRINT_VECTOR(2, "compl_s_U", *tmp_slack_s_U_); Number dual_inf=-1.; Number primal_inf=-1.; Number compl_inf=-1.; IpData().TimingStats().Task5().Start(); switch (quality_function_norm_) { case NM_NORM_1: dual_inf = (1.-alpha_dual)*(curr_grad_lag_x_asum_ + curr_grad_lag_s_asum_); primal_inf = (1.-alpha_primal)*(curr_c_asum_ + curr_d_minus_s_asum_); compl_inf = tmp_slack_x_L_->Asum() + tmp_slack_x_U_->Asum() + tmp_slack_s_L_->Asum() + tmp_slack_s_U_->Asum(); dual_inf /= n_dual_; if (n_pri_>0) { primal_inf /= n_pri_; } DBG_ASSERT(n_comp_>0); compl_inf /= n_comp_; break; case NM_NORM_2_SQUARED: dual_inf = pow(1.-alpha_dual, 2)*(pow(curr_grad_lag_x_nrm2_, 2) + pow(curr_grad_lag_s_nrm2_, 2)); primal_inf = pow(1.-alpha_primal, 2)*(pow(curr_c_nrm2_, 2) + pow(curr_d_minus_s_nrm2_, 2)); compl_inf = pow(tmp_slack_x_L_->Nrm2(), 2) + pow(tmp_slack_x_U_->Nrm2(), 2) + pow(tmp_slack_s_L_->Nrm2(), 2) + pow(tmp_slack_s_U_->Nrm2(), 2); dual_inf /= n_dual_; if (n_pri_>0) { primal_inf /= n_pri_; } DBG_ASSERT(n_comp_>0); compl_inf /= n_comp_; break; case NM_NORM_MAX: dual_inf = (1.-alpha_dual)*Max(curr_grad_lag_x_amax_, curr_grad_lag_s_amax_); primal_inf = (1.-alpha_primal)*Max(curr_c_amax_, curr_d_minus_s_amax_); compl_inf = Max(tmp_slack_x_L_->Amax(), tmp_slack_x_U_->Amax(), tmp_slack_s_L_->Amax(), tmp_slack_s_U_->Amax()); break; case NM_NORM_2: dual_inf = (1.-alpha_dual)*sqrt(pow(curr_grad_lag_x_nrm2_, 2) + pow(curr_grad_lag_s_nrm2_, 2)); primal_inf = (1.-alpha_primal)*sqrt(pow(curr_c_nrm2_, 2) + pow(curr_d_minus_s_nrm2_, 2)); compl_inf = sqrt(pow(tmp_slack_x_L_->Nrm2(), 2) + pow(tmp_slack_x_U_->Nrm2(), 2) + pow(tmp_slack_s_L_->Nrm2(), 2) + pow(tmp_slack_s_U_->Nrm2(), 2)); dual_inf /= sqrt((Number)n_dual_); if (n_pri_>0) { primal_inf /= sqrt((Number)n_pri_); } DBG_ASSERT(n_comp_>0); compl_inf /= sqrt((Number)n_comp_); break; default: DBG_ASSERT(false && "Unknown value for quality_function_norm_"); } IpData().TimingStats().Task5().End(); Number quality_function = dual_inf + primal_inf + compl_inf; if (quality_function_centrality_!=CEN_NONE) { IpData().TimingStats().Task4().Start(); xi = IpCq().CalcCentralityMeasure(*tmp_slack_x_L_, *tmp_slack_x_U_, *tmp_slack_s_L_, *tmp_slack_s_U_); IpData().TimingStats().Task4().End(); } switch (quality_function_centrality_) { case CEN_NONE: //Nothing break; case CEN_LOG: quality_function -= compl_inf*log(xi); break; case CEN_RECIPROCAL: quality_function += compl_inf/xi; case CEN_CUBED_RECIPROCAL: quality_function += compl_inf/pow(xi,3); break; default: DBG_ASSERT(false && "Unknown value for quality_function_centrality_"); } switch (quality_function_balancing_term_) { case BT_NONE: //Nothing break; case BT_CUBIC: quality_function += pow(Max(0., Max(dual_inf,primal_inf)-compl_inf),3); break; default: DBG_ASSERT(false && "Unknown value for quality_function_balancing term_"); } Jnlst().Printf(J_MOREDETAILED, J_BARRIER_UPDATE, "sigma = %8.2e d_inf = %18.12e p_inf = %18.12e cmpl = %18.12e q = %18.12e a_pri = %8.2e a_dual = %8.2e xi = %8.2e\n", sigma, dual_inf, primal_inf, compl_inf, quality_function, alpha_primal, alpha_dual, xi); return quality_function; //return compl_inf; } Number QualityFunctionMuOracle::PerformGoldenSection (Number sigma_up_in, Number q_up, Number sigma_lo_in, Number q_lo, Number sigma_tol, Number qf_tol, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U ) { Number sigma_up = ScaleSigma(sigma_up_in); Number sigma_lo = ScaleSigma(sigma_lo_in); Number sigma; Number gfac = (3.-sqrt(5.))/2.; Number sigma_mid1 = sigma_lo + gfac*(sigma_up-sigma_lo); Number sigma_mid2 = sigma_lo + (1.-gfac)*(sigma_up-sigma_lo); Number qmid1 = CalculateQualityFunction(UnscaleSigma(sigma_mid1), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); Number qmid2 = CalculateQualityFunction(UnscaleSigma(sigma_mid2), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); Index nsections = 0; while ((sigma_up-sigma_lo)>=sigma_tol*sigma_up && //while ((sigma_up-sigma_lo)>=sigma_tol && // Note we are using the non-relative criterion here for sigma (1.-Min(q_lo, q_up, qmid1, qmid2)/Max(q_lo, q_up, qmid1, qmid2))>=qf_tol && nsections qmid2) { sigma_lo = sigma_mid1; q_lo = qmid1; sigma_mid1 = sigma_mid2; qmid1 = qmid2; sigma_mid2 = sigma_lo + (1.-gfac)*(sigma_up-sigma_lo); qmid2 = CalculateQualityFunction(UnscaleSigma(sigma_mid2), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } else { sigma_up = sigma_mid2; q_up = qmid2; sigma_mid2 = sigma_mid1; qmid2 = qmid1; sigma_mid1 = sigma_lo + gfac*(sigma_up-sigma_lo); qmid1 = CalculateQualityFunction(UnscaleSigma(sigma_mid1), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } } if ((sigma_up-sigma_lo)>=sigma_tol*sigma_up && (1.-Min(q_lo, q_up, qmid1, qmid2)/Max(q_lo, q_up, qmid1, qmid2))-100.); if (qf_min == q_lo) { sigma = sigma_lo; } else if (qf_min == qmid1) { sigma = sigma_mid1; } else if (qf_min == qmid2) { sigma = sigma_mid2; } else { sigma = sigma_up; } } else { Number q; if (qmid1 < qmid2) { sigma = sigma_mid1; q = qmid1; } else { sigma = sigma_mid2; q = qmid2; } if (sigma_up == ScaleSigma(sigma_up_in)) { Number qtmp; if (q_up<0.) { qtmp = CalculateQualityFunction(UnscaleSigma(sigma_up), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } else { qtmp = q_up; } if (qtmp < q) { sigma = sigma_up; q = qtmp; } } else if (sigma_lo == ScaleSigma(sigma_lo_in)) { Number qtmp; if (q_lo<0.) { qtmp = CalculateQualityFunction(UnscaleSigma(sigma_lo), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } else { qtmp = q_lo; } if (qtmp < q) { sigma = sigma_lo; q = qtmp; } } } return UnscaleSigma(sigma); } /* Number QualityFunctionMuOracle::ScaleSigma(Number sigma) {return log(sigma);} Number QualityFunctionMuOracle::UnscaleSigma(Number scaled_sigma) {return exp(scaled_sigma);} */ Number QualityFunctionMuOracle::ScaleSigma(Number sigma) { return sigma; } Number QualityFunctionMuOracle::UnscaleSigma(Number scaled_sigma) { return scaled_sigma; } /* AW: Tried search in the log space, but that was even worse than search in unscaled space */ /* Number QualityFunctionMuOracle::PerformGoldenSectionLog (Number sigma_up, Number sigma_lo, Number tol, const Vector& step_aff_x_L, const Vector& step_aff_x_U, const Vector& step_aff_s_L, const Vector& step_aff_s_U, const Vector& step_aff_y_c, const Vector& step_aff_y_d, const Vector& step_aff_z_L, const Vector& step_aff_z_U, const Vector& step_aff_v_L, const Vector& step_aff_v_U, const Vector& step_cen_x_L, const Vector& step_cen_x_U, const Vector& step_cen_s_L, const Vector& step_cen_s_U, const Vector& step_cen_y_c, const Vector& step_cen_y_d, const Vector& step_cen_z_L, const Vector& step_cen_z_U, const Vector& step_cen_v_L, const Vector& step_cen_v_U ) { Number log_sigma; Number log_sigma_up = log(sigma_up); Number log_sigma_lo = log(sigma_lo); Number log_sigma_up_in = log_sigma_up; Number log_sigma_lo_in = log_sigma_lo; Number gfac = (3.-sqrt(5.))/2.; Number log_sigma_mid1 = log_sigma_lo + gfac*(log_sigma_up-log_sigma_lo); Number log_sigma_mid2 = log_sigma_lo + (1.-gfac)*(log_sigma_up-log_sigma_lo); Number qmid1 = CalculateQualityFunction(exp(log_sigma_mid1), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); Number qmid2 = CalculateQualityFunction(exp(log_sigma_mid2), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); Index nsections = 0; while ((log_sigma_up-log_sigma_lo)>=tol*log_sigma_up && nsections qmid2) { log_sigma_lo = log_sigma_mid1; log_sigma_mid1 = log_sigma_mid2; qmid1 = qmid2; log_sigma_mid2 = log_sigma_lo + (1.-gfac)*(log_sigma_up-log_sigma_lo); qmid2 = CalculateQualityFunction(exp(log_sigma_mid2), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } else { log_sigma_up = log_sigma_mid2; log_sigma_mid2 = log_sigma_mid1; qmid2 = qmid1; log_sigma_mid1 = log_sigma_lo + gfac*(log_sigma_up-log_sigma_lo); qmid1 = CalculateQualityFunction(exp(log_sigma_mid1), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); } } Number q; if (qmid1 < qmid2) { log_sigma = log_sigma_mid1; q = qmid1; } else { log_sigma = log_sigma_mid2; q = qmid2; } if (log_sigma_up == log_sigma_up_in) { Number qtmp = CalculateQualityFunction(exp(log_sigma_up), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); if (qtmp < q) { log_sigma = log_sigma_up; q = qtmp; } } else if (log_sigma_lo == log_sigma_lo_in) { Number qtmp = CalculateQualityFunction(exp(log_sigma_lo), step_aff_x_L, step_aff_x_U, step_aff_s_L, step_aff_s_U, step_aff_y_c, step_aff_y_d, step_aff_z_L, step_aff_z_U, step_aff_v_L, step_aff_v_U, step_cen_x_L, step_cen_x_U, step_cen_s_L, step_cen_s_U, step_cen_y_c, step_cen_y_d, step_cen_z_L, step_cen_z_U, step_cen_v_L, step_cen_v_U); if (qtmp < q) { log_sigma = log_sigma_lo; q = qtmp; } } return exp(log_sigma); } */ } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptCalculatedQuantities.cpp0000644000076600007660000034025612214316142023310 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptCalculatedQuantities.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpIpoptCalculatedQuantities.hpp" #include "IpSumSymMatrix.hpp" #include "IpLowRankUpdateSymMatrix.hpp" #include "IpRestoIpoptNLP.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif IpoptCalculatedQuantities::IpoptCalculatedQuantities (const SmartPtr& ip_nlp, const SmartPtr& ip_data) : ip_nlp_(ip_nlp), ip_data_(ip_data), curr_slack_x_L_cache_(1), curr_slack_x_U_cache_(1), curr_slack_s_L_cache_(1), curr_slack_s_U_cache_(1), trial_slack_x_L_cache_(1), trial_slack_x_U_cache_(1), trial_slack_s_L_cache_(1), trial_slack_s_U_cache_(1), num_adjusted_slack_x_L_(0), num_adjusted_slack_x_U_(0), num_adjusted_slack_s_L_(0), num_adjusted_slack_s_U_(0), curr_f_cache_(2), trial_f_cache_(5), curr_grad_f_cache_(2), trial_grad_f_cache_(1), curr_barrier_obj_cache_(2), trial_barrier_obj_cache_(5), curr_grad_barrier_obj_x_cache_(1), curr_grad_barrier_obj_s_cache_(1), grad_kappa_times_damping_x_cache_(1), grad_kappa_times_damping_s_cache_(1), curr_c_cache_(1), trial_c_cache_(2), curr_d_cache_(1), trial_d_cache_(2), curr_d_minus_s_cache_(1), trial_d_minus_s_cache_(1), curr_jac_c_cache_(1), trial_jac_c_cache_(1), curr_jac_d_cache_(1), trial_jac_d_cache_(1), curr_jac_cT_times_vec_cache_(2), trial_jac_cT_times_vec_cache_(1), curr_jac_dT_times_vec_cache_(2), trial_jac_dT_times_vec_cache_(1), curr_jac_c_times_vec_cache_(1), curr_jac_d_times_vec_cache_(1), curr_constraint_violation_cache_(2), trial_constraint_violation_cache_(5), curr_nlp_constraint_violation_cache_(3), unscaled_curr_nlp_constraint_violation_cache_(3), unscaled_trial_nlp_constraint_violation_cache_(3), curr_exact_hessian_cache_(1), curr_grad_lag_x_cache_(1), trial_grad_lag_x_cache_(1), curr_grad_lag_s_cache_(1), trial_grad_lag_s_cache_(1), curr_grad_lag_with_damping_x_cache_(0), curr_grad_lag_with_damping_s_cache_(0), curr_compl_x_L_cache_(1), curr_compl_x_U_cache_(1), curr_compl_s_L_cache_(1), curr_compl_s_U_cache_(1), trial_compl_x_L_cache_(1), trial_compl_x_U_cache_(1), trial_compl_s_L_cache_(1), trial_compl_s_U_cache_(1), curr_relaxed_compl_x_L_cache_(1), curr_relaxed_compl_x_U_cache_(1), curr_relaxed_compl_s_L_cache_(1), curr_relaxed_compl_s_U_cache_(1), curr_primal_infeasibility_cache_(3), trial_primal_infeasibility_cache_(3), curr_dual_infeasibility_cache_(3), trial_dual_infeasibility_cache_(3), unscaled_curr_dual_infeasibility_cache_(3), curr_complementarity_cache_(6), trial_complementarity_cache_(6), curr_centrality_measure_cache_(1), curr_nlp_error_cache_(1), unscaled_curr_nlp_error_cache_(1), curr_barrier_error_cache_(1), curr_primal_dual_system_error_cache_(1), trial_primal_dual_system_error_cache_(3), primal_frac_to_the_bound_cache_(5), dual_frac_to_the_bound_cache_(5), curr_sigma_x_cache_(1), curr_sigma_s_cache_(1), curr_avrg_compl_cache_(1), trial_avrg_compl_cache_(1), curr_gradBarrTDelta_cache_(1), dampind_x_L_(NULL), dampind_x_U_(NULL), dampind_s_L_(NULL), dampind_s_U_(NULL), initialize_called_(false) { DBG_START_METH("IpoptCalculatedQuantities::IpoptCalculatedQuantities", dbg_verbosity); DBG_ASSERT(IsValid(ip_nlp_) && IsValid(ip_data_)); } IpoptCalculatedQuantities::~IpoptCalculatedQuantities() {} void IpoptCalculatedQuantities::RegisterOptions(SmartPtr roptions) { roptions->SetRegisteringCategory("Convergence"); roptions->AddLowerBoundedNumberOption( "s_max", "Scaling threshold for the NLP error.", 0.0, true, 100.0, "(See paragraph after Eqn. (6) in the implementation paper.)"); roptions->SetRegisteringCategory("NLP"); roptions->AddLowerBoundedNumberOption( "kappa_d", "Weight for linear damping term (to handle one-sided bounds).", 0.0, false, 1e-5, "(see Section 3.7 in implementation paper.)"); roptions->SetRegisteringCategory("Line Search"); roptions->AddLowerBoundedNumberOption( "slack_move", "Correction size for very small slacks.", 0.0, false, pow(std::numeric_limits::epsilon(), 0.75), "Due to numerical issues or the lack of an interior, the slack variables might " "become very small. If a slack becomes very small compared to machine " "precision, the corresponding bound is moved slightly. This parameter " "determines how large the move should be. Its default value is " "mach_eps^{3/4}. (See also end of Section 3.5 in implementation paper " "- but actual implementation might be somewhat different.)"); roptions->SetRegisteringCategory("Line Search"); roptions->AddStringOption3( "constraint_violation_norm_type", "Norm to be used for the constraint violation in the line search.", "1-norm", "1-norm", "use the 1-norm", "2-norm", "use the 2-norm", "max-norm", "use the infinity norm", "Determines which norm should be used when the algorithm computes the " "constraint violation in the line search."); } bool IpoptCalculatedQuantities::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { std::string svalue; Index enum_int; options.GetNumericValue("s_max", s_max_, prefix); options.GetNumericValue("kappa_d", kappa_d_, prefix); options.GetNumericValue("slack_move", slack_move_, prefix); options.GetEnumValue("constraint_violation_norm_type", enum_int, prefix); constr_viol_normtype_ = ENormType(enum_int); // The following option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); options.GetNumericValue("mu_target", mu_target_, prefix); if (!warm_start_same_structure_) { dampind_x_L_ = NULL; dampind_x_U_ = NULL; dampind_s_L_ = NULL; dampind_s_U_ = NULL; tmp_x_ = NULL; tmp_s_ = NULL; tmp_c_ = NULL; tmp_d_ = NULL; tmp_x_L_ = NULL; tmp_x_U_ = NULL; tmp_s_L_ = NULL; tmp_s_U_ = NULL; } num_adjusted_slack_x_L_ = 0; num_adjusted_slack_x_U_ = 0; num_adjusted_slack_s_L_ = 0; num_adjusted_slack_s_U_ = 0; initialize_called_ = true; bool retval = true; if (IsValid(add_cq_)) { retval = add_cq_->Initialize(jnlst, options, prefix); } return retval; } /////////////////////////////////////////////////////////////////////////// // Slack Calculations // /////////////////////////////////////////////////////////////////////////// SmartPtr IpoptCalculatedQuantities::CalcSlack_L(const Matrix& P, const Vector& x, const Vector& x_bound) { DBG_START_METH("IpoptCalculatedQuantities::CalcSlack_L", dbg_verbosity); SmartPtr result; result = x_bound.MakeNew(); result->Copy(x_bound); P.TransMultVector(1.0, x, -1.0, *result); return result; } SmartPtr IpoptCalculatedQuantities::CalcSlack_U(const Matrix& P, const Vector& x, const Vector& x_bound) { DBG_START_METH("IpoptCalculatedQuantities::CalcSlack_U", dbg_verbosity); SmartPtr result; result = x_bound.MakeNew(); result->Copy(x_bound); P.TransMultVector(-1.0, x, 1.0, *result); return result; } SmartPtr IpoptCalculatedQuantities::curr_slack_x_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_slack_x_L()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr x_bound = ip_nlp_->x_L(); if (!curr_slack_x_L_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_slack_x_L_cache_.GetCachedResult1Dep(result, *x)) { SmartPtr P = ip_nlp_->Px_L(); DBG_PRINT_VECTOR(2,"x_L", *x_bound); result = CalcSlack_L(*P, *x, *x_bound); DBG_ASSERT(num_adjusted_slack_x_L_==0); num_adjusted_slack_x_L_ = CalculateSafeSlack(result, x_bound, x, ip_data_->curr()->z_L()); } curr_slack_x_L_cache_.AddCachedResult1Dep(result, *x); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::curr_slack_x_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_slack_x_U()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr x_bound = ip_nlp_->x_U(); if (!curr_slack_x_U_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_slack_x_U_cache_.GetCachedResult1Dep(result, *x)) { SmartPtr P = ip_nlp_->Px_U(); result = CalcSlack_U(*P, *x, *x_bound); DBG_ASSERT(num_adjusted_slack_x_U_==0); num_adjusted_slack_x_U_ = CalculateSafeSlack(result, x_bound, x, ip_data_->curr()->z_U()); } curr_slack_x_U_cache_.AddCachedResult1Dep(result, *x); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::curr_slack_s_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_slack_s_L()", dbg_verbosity); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); SmartPtr s_bound = ip_nlp_->d_L(); if (!curr_slack_s_L_cache_.GetCachedResult1Dep(result, *s)) { if (!trial_slack_s_L_cache_.GetCachedResult1Dep(result, *s)) { SmartPtr P = ip_nlp_->Pd_L(); result = CalcSlack_L(*P, *s, *s_bound); DBG_ASSERT(num_adjusted_slack_s_L_==0); num_adjusted_slack_s_L_ = CalculateSafeSlack(result, s_bound, s, ip_data_->curr()->v_L()); } curr_slack_s_L_cache_.AddCachedResult1Dep(result, *s); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::curr_slack_s_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_slack_s_U()", dbg_verbosity); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); SmartPtr s_bound = ip_nlp_->d_U(); if (!curr_slack_s_U_cache_.GetCachedResult1Dep(result, *s)) { if (!trial_slack_s_U_cache_.GetCachedResult1Dep(result, *s)) { SmartPtr P = ip_nlp_->Pd_U(); result = CalcSlack_U(*P, *s, *s_bound); DBG_ASSERT(num_adjusted_slack_s_U_==0); num_adjusted_slack_s_U_ = CalculateSafeSlack(result, s_bound, s, ip_data_->curr()->v_U()); DBG_PRINT_VECTOR(2, "result", *result); DBG_PRINT((1, "num_adjusted_slack_s_U = %d\n", num_adjusted_slack_s_U_)); } curr_slack_s_U_cache_.AddCachedResult1Dep(result, *s); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::trial_slack_x_L() { DBG_START_METH("IpoptCalculatedQuantities::trial_slack_x_L()", dbg_verbosity); num_adjusted_slack_x_L_ = 0; SmartPtr result; SmartPtr x = ip_data_->trial()->x(); SmartPtr x_bound = ip_nlp_->x_L(); if (!trial_slack_x_L_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_slack_x_L_cache_.GetCachedResult1Dep(result, *x)) { SmartPtr P = ip_nlp_->Px_L(); result = CalcSlack_L(*P, *x, *x_bound); DBG_ASSERT(num_adjusted_slack_x_L_==0); num_adjusted_slack_x_L_ = CalculateSafeSlack(result, x_bound, x, ip_data_->curr()->z_L()); } trial_slack_x_L_cache_.AddCachedResult1Dep(result, *x); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::trial_slack_x_U() { DBG_START_METH("IpoptCalculatedQuantities::trial_slack_x_U()", dbg_verbosity); num_adjusted_slack_x_U_ = 0; SmartPtr result; SmartPtr x = ip_data_->trial()->x(); SmartPtr x_bound = ip_nlp_->x_U(); if (!trial_slack_x_U_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_slack_x_U_cache_.GetCachedResult1Dep(result, *x)) { SmartPtr P = ip_nlp_->Px_U(); result = CalcSlack_U(*P, *x, *x_bound); DBG_ASSERT(num_adjusted_slack_x_U_==0); num_adjusted_slack_x_U_ = CalculateSafeSlack(result, x_bound, x, ip_data_->curr()->z_U()); } trial_slack_x_U_cache_.AddCachedResult1Dep(result, *x); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::trial_slack_s_L() { DBG_START_METH("IpoptCalculatedQuantities::trial_slack_s_L()", dbg_verbosity); num_adjusted_slack_s_L_ = 0; SmartPtr result; SmartPtr s = ip_data_->trial()->s(); SmartPtr s_bound = ip_nlp_->d_L(); if (!trial_slack_s_L_cache_.GetCachedResult1Dep(result, *s)) { if (!curr_slack_s_L_cache_.GetCachedResult1Dep(result, *s)) { SmartPtr P = ip_nlp_->Pd_L(); result = CalcSlack_L(*P, *s, *s_bound); DBG_ASSERT(num_adjusted_slack_s_L_==0); num_adjusted_slack_s_L_ = CalculateSafeSlack(result, s_bound, s, ip_data_->curr()->v_L()); } trial_slack_s_L_cache_.AddCachedResult1Dep(result, *s); } return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::trial_slack_s_U() { DBG_START_METH("IpoptCalculatedQuantities::trial_slack_s_U()", dbg_verbosity); num_adjusted_slack_s_U_ = 0; SmartPtr result; SmartPtr s = ip_data_->trial()->s(); SmartPtr s_bound = ip_nlp_->d_U(); if (!trial_slack_s_U_cache_.GetCachedResult1Dep(result, *s)) { if (!curr_slack_s_U_cache_.GetCachedResult1Dep(result, *s)) { SmartPtr P = ip_nlp_->Pd_U(); DBG_PRINT_VECTOR(2, "d_U", *s_bound); DBG_PRINT_VECTOR(2, "s", *s); result = CalcSlack_U(*P, *s, *s_bound); DBG_PRINT_VECTOR(2, "result", *result); DBG_ASSERT(num_adjusted_slack_s_U_==0); num_adjusted_slack_s_U_ = CalculateSafeSlack(result, s_bound, s, ip_data_->curr()->v_U()); DBG_PRINT((1, "num_adjusted_slack_s_U = %d\n", num_adjusted_slack_s_U_)); DBG_PRINT_VECTOR(2, "trial_slack_s_U", *result); } trial_slack_s_U_cache_.AddCachedResult1Dep(result, *s); } return ConstPtr(result); } Index IpoptCalculatedQuantities:: CalculateSafeSlack(SmartPtr& slack, const SmartPtr& bound, const SmartPtr& curr_point, const SmartPtr& multiplier) { DBG_START_METH("IpoptCalculatedQuantities::CalculateSafeSlack", dbg_verbosity); DBG_ASSERT(initialize_called_); Index retval = 0; if (slack->Dim() > 0) { Number min_slack = slack->Min(); // TODO we need to make sure that this also works for non-monotone MUs Number s_min = std::numeric_limits::epsilon() * Min(1., ip_data_->curr_mu()); DBG_PRINT((1,"s_min = %g, min_slack=%g\n", s_min, min_slack)); if (min_slack < s_min) { // Need to correct the slacks and calculate new bounds... SmartPtr t = slack->MakeNew(); t->Copy(*slack); t->AddScalar(-s_min); t->ElementWiseSgn(); SmartPtr zero_vec = t->MakeNew(); zero_vec->Set(0.0); t->ElementWiseMin(*zero_vec); t->Scal(-1.0); retval = (Index)t->Asum(); DBG_PRINT((1,"Number of slack corrections = %d\n", retval)); DBG_PRINT_VECTOR(2, "t(sgn)", *t); // ToDo AW: I added the follwing line b/c I found a case where // slack was negative and this correction produced 0 slack->ElementWiseMax(*zero_vec); SmartPtr t2 = t->MakeNew(); t2->Set(ip_data_->curr_mu()); t2->ElementWiseDivide(*multiplier); SmartPtr s_min_vec = t2->MakeNew(); s_min_vec->Set(s_min); t2->ElementWiseMax(*s_min_vec); t2->Axpy(-1.0, *slack); DBG_PRINT_VECTOR(2, "tw(smin,mu/mult)", *t2); t->ElementWiseMultiply(*t2); t->Axpy(1.0, *slack); SmartPtr t_max = t2; t_max->Set(1.0); SmartPtr abs_bound = bound->MakeNew(); abs_bound->Copy(*bound); abs_bound->ElementWiseAbs(); t_max->ElementWiseMax(*abs_bound); DBG_PRINT_VECTOR(2, "t_max1", *t_max); DBG_PRINT_VECTOR(2, "slack", *slack); t_max->AddOneVector(1.0, *slack, slack_move_); DBG_PRINT_VECTOR(2, "t_max2", *t_max); t->ElementWiseMin(*t_max); DBG_PRINT_VECTOR(2, "new_slack", *t); slack = t; return retval; } } return retval; } Index IpoptCalculatedQuantities::AdjustedTrialSlacks() { DBG_START_METH("IpoptCalculatedQuantities::AdjustedTrialSlacks()", dbg_verbosity); Index result = (num_adjusted_slack_x_L_ + num_adjusted_slack_x_U_ + num_adjusted_slack_s_L_ + num_adjusted_slack_s_U_); DBG_PRINT((1,"result = %d\n", result)); return result; } void IpoptCalculatedQuantities::ResetAdjustedTrialSlacks() { DBG_START_METH("IpoptCalculatedQuantities::ResetAdjustedTrialSlacks()", dbg_verbosity); num_adjusted_slack_x_L_ = num_adjusted_slack_x_U_ = num_adjusted_slack_s_L_ = num_adjusted_slack_s_U_ = 0; } /////////////////////////////////////////////////////////////////////////// // Objective Function // /////////////////////////////////////////////////////////////////////////// Number IpoptCalculatedQuantities::curr_f() { DBG_START_METH("IpoptCalculatedQuantities::curr_f()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); DBG_PRINT_VECTOR(2,"curr_x",*x); DBG_PRINT((1, "curr_x tag = (%p,%d)\n", x->GetTag().first, x->GetTag().second)); bool objective_depends_on_mu = ip_nlp_->objective_depends_on_mu(); std::vector tdeps(1); tdeps[0] = GetRawPtr(x); std::vector sdeps(1); if (objective_depends_on_mu) { sdeps[0] = ip_data_->curr_mu(); } else { sdeps[0] = -1.; } if (!curr_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!trial_f_cache_.GetCachedResult(result, tdeps, sdeps)) { DBG_PRINT((2,"evaluate curr f\n")); if (objective_depends_on_mu) { result = ip_nlp_->f(*x, ip_data_->curr_mu()); } else { result = ip_nlp_->f(*x); } } curr_f_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_PRINT((1,"result (curr_f) = %e\n", result)); return result; } Number IpoptCalculatedQuantities::unscaled_curr_f() { return ip_nlp_->NLP_scaling()->unapply_obj_scaling(curr_f()); } Number IpoptCalculatedQuantities::trial_f() { DBG_START_METH("IpoptCalculatedQuantities::trial_f()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); DBG_PRINT_VECTOR(2,"trial_x",*x); DBG_PRINT((1, "trial_x tag = (%p,%d)\n", x->GetTag().first, x->GetTag().second)); bool objective_depends_on_mu = ip_nlp_->objective_depends_on_mu(); std::vector tdeps(1); tdeps[0] = GetRawPtr(x); std::vector sdeps(1); if (objective_depends_on_mu) { sdeps[0] = ip_data_->curr_mu(); } else { sdeps[0] = -1.; } if (!trial_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!curr_f_cache_.GetCachedResult(result, tdeps, sdeps)) { DBG_PRINT((2,"evaluate trial f\n")); if (objective_depends_on_mu) { result = ip_nlp_->f(*x, ip_data_->curr_mu()); } else { result = ip_nlp_->f(*x); } } trial_f_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_PRINT((1,"result (trial_f) = %e\n", result)); return result; } Number IpoptCalculatedQuantities::unscaled_trial_f() { return ip_nlp_->NLP_scaling()->unapply_obj_scaling(trial_f()); } SmartPtr IpoptCalculatedQuantities::curr_grad_f() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_f()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); bool objective_depends_on_mu = ip_nlp_->objective_depends_on_mu(); std::vector tdeps(1); tdeps[0] = GetRawPtr(x); std::vector sdeps(1); if (objective_depends_on_mu) { sdeps[0] = ip_data_->curr_mu(); } else { sdeps[0] = -1.; } if (!curr_grad_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!trial_grad_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (objective_depends_on_mu) { result = ip_nlp_->grad_f(*x, ip_data_->curr_mu()); } else { result = ip_nlp_->grad_f(*x); } } curr_grad_f_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::trial_grad_f() { DBG_START_METH("IpoptCalculatedQuantities::trial_grad_f()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); bool objective_depends_on_mu = ip_nlp_->objective_depends_on_mu(); std::vector tdeps(1); tdeps[0] = GetRawPtr(x); std::vector sdeps(1); if (objective_depends_on_mu) { sdeps[0] = ip_data_->curr_mu(); } else { sdeps[0] = -1.; } if (!trial_grad_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!curr_grad_f_cache_.GetCachedResult(result, tdeps, sdeps)) { if (objective_depends_on_mu) { result = ip_nlp_->grad_f(*x, ip_data_->curr_mu()); } else { result = ip_nlp_->grad_f(*x); } } trial_grad_f_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } /////////////////////////////////////////////////////////////////////////// // Barrier Objective Function // /////////////////////////////////////////////////////////////////////////// Number IpoptCalculatedQuantities::CalcBarrierTerm(Number mu, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U) { DBG_START_METH("IpoptCalculatedQuantities::CalcBarrierTerm", dbg_verbosity); DBG_ASSERT(initialize_called_); DBG_PRINT_VECTOR(2, "slack_x_L", slack_x_L); DBG_PRINT_VECTOR(2, "slack_x_U", slack_x_U); DBG_PRINT_VECTOR(2, "slack_s_L", slack_s_L); DBG_PRINT_VECTOR(2, "slack_s_U", slack_s_U); Number retval=0.; retval += slack_x_L.SumLogs(); DBG_PRINT((1, "BarrierTerm after x_L = %25.16e\n", retval)); retval += slack_x_U.SumLogs(); DBG_PRINT((1, "BarrierTerm after x_U = %25.16e\n", retval)); retval += slack_s_L.SumLogs(); DBG_PRINT((1, "BarrierTerm after s_L = %25.16e\n", retval)); retval += slack_s_U.SumLogs(); DBG_PRINT((1, "BarrierTerm after s_U = %25.16e\n", retval)); retval *= -mu; DBG_PRINT((1, "BarrierTerm without damping = %25.16e\n", retval)); // Include the linear damping term if kappa_d is nonzero. if (kappa_d_>0) { SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); Tmp_x_L().Copy(slack_x_L); Tmp_x_L().ElementWiseMultiply(*dampind_x_L); retval += kappa_d_ * mu * Tmp_x_L().Asum(); Tmp_x_U().Copy(slack_x_U); Tmp_x_U().ElementWiseMultiply(*dampind_x_U); retval += kappa_d_ * mu * Tmp_x_U().Asum(); Tmp_s_L().Copy(slack_s_L); Tmp_s_L().ElementWiseMultiply(*dampind_s_L); retval += kappa_d_ * mu * Tmp_s_L().Asum(); Tmp_s_U().Copy(slack_s_U); Tmp_s_U().ElementWiseMultiply(*dampind_s_U); retval += kappa_d_ * mu * Tmp_s_U().Asum(); } DBG_PRINT((1, "BarrierTerm with damping = %25.16e\n", retval)); DBG_ASSERT(IsFiniteNumber(retval)); return retval; } Number IpoptCalculatedQuantities::curr_barrier_obj() { DBG_START_METH("IpoptCalculatedQuantities::curr_barrier_obj()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); DBG_PRINT_VECTOR(2,"curr_x",*x); DBG_PRINT_VECTOR(2,"curr_s",*s); std::vector tdeps(2); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); Number mu = ip_data_->curr_mu(); DBG_PRINT((1,"curr_mu=%e\n",mu)); std::vector sdeps(1); sdeps[0] = mu; if (!curr_barrier_obj_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!trial_barrier_obj_cache_.GetCachedResult(result, tdeps, sdeps)) { result = curr_f(); DBG_PRINT((1,"curr_F=%e\n",result)); result += CalcBarrierTerm(mu, *curr_slack_x_L(), *curr_slack_x_U(), *curr_slack_s_L(), *curr_slack_s_U()); } curr_barrier_obj_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_ASSERT(IsFiniteNumber(result)); return result; } Number IpoptCalculatedQuantities::trial_barrier_obj() { DBG_START_METH("IpoptCalculatedQuantities::trial_barrier_obj()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); DBG_PRINT_VECTOR(2,"trial_x",*x); DBG_PRINT_VECTOR(2,"trial_s",*s); std::vector tdeps(2); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); Number mu = ip_data_->curr_mu(); DBG_PRINT((1,"trial_mu=%e\n",mu)); std::vector sdeps(1); sdeps[0] = mu; if (!trial_barrier_obj_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!curr_barrier_obj_cache_.GetCachedResult(result, tdeps, sdeps)) { result = trial_f(); DBG_PRINT((1,"trial_F=%e\n",result)); DBG_PRINT_VECTOR(2, "trial_slack_s_U", *trial_slack_s_U()); result += CalcBarrierTerm(ip_data_->curr_mu(), *trial_slack_x_L(), *trial_slack_x_U(), *trial_slack_s_L(), *trial_slack_s_U()); } trial_barrier_obj_cache_.AddCachedResult(result, tdeps, sdeps); } DBG_ASSERT(IsFiniteNumber(result)); return result; } SmartPtr IpoptCalculatedQuantities::curr_grad_barrier_obj_x() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_barrier_obj_x()", dbg_verbosity); DBG_ASSERT(initialize_called_); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); std::vector tdeps(1); tdeps[0] = GetRawPtr(x); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; DBG_PRINT((1,"curr_mu=%e\n",mu)); if (!curr_grad_barrier_obj_x_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp1 = x->MakeNew(); tmp1->Copy(*curr_grad_f()); Tmp_x_L().Set(1.); ip_nlp_->Px_L()->AddMSinvZ(-mu, *curr_slack_x_L(), Tmp_x_L(), *tmp1); Tmp_x_U().Set(1.); ip_nlp_->Px_U()->AddMSinvZ(mu, *curr_slack_x_U(), Tmp_x_U(), *tmp1); DBG_PRINT_VECTOR(2, "Barrier_Grad_x without damping", *tmp1); // Take care of linear damping terms if (kappa_d_>0.) { SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); DBG_PRINT((1, "kappa_d*mu = %e\n", kappa_d_*mu)); DBG_PRINT_VECTOR(2, "dampind_x_L", *dampind_x_L); ip_nlp_->Px_L()->MultVector(kappa_d_*mu, *dampind_x_L, 1., *tmp1); ip_nlp_->Px_U()->MultVector(-kappa_d_*mu, *dampind_x_U, 1., *tmp1); } DBG_PRINT_VECTOR(2, "Barrier_Grad_x with damping", *tmp1); result = ConstPtr(tmp1); curr_grad_barrier_obj_x_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::grad_kappa_times_damping_x() { DBG_START_METH("IpoptCalculatedQuantities::grad_kappa_times_damping_x()", dbg_verbosity); DBG_ASSERT(initialize_called_); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); std::vector tdeps(2); tdeps[0] = GetRawPtr(ip_nlp_->Px_L()); tdeps[1] = GetRawPtr(ip_nlp_->Px_U()); std::vector sdeps(1); sdeps[0] = kappa_d_; if (!grad_kappa_times_damping_x_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp1 = x->MakeNew(); if (kappa_d_>0.) { SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); ip_nlp_->Px_L()->MultVector(kappa_d_, *dampind_x_L, 0., *tmp1); ip_nlp_->Px_U()->MultVector(-kappa_d_, *dampind_x_U, 1., *tmp1); } else { tmp1->Set(0.); } result = ConstPtr(tmp1); grad_kappa_times_damping_x_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_grad_barrier_obj_s() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_barrier_obj_s()", dbg_verbosity); DBG_ASSERT(initialize_called_); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); std::vector tdeps(1); tdeps[0] = GetRawPtr(s); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; DBG_PRINT((1,"curr_mu=%e\n",mu)); if (!curr_grad_barrier_obj_s_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp1 = s->MakeNew(); Tmp_s_L().Set(-mu); Tmp_s_L().ElementWiseDivide(*curr_slack_s_L()); ip_nlp_->Pd_L()->MultVector(1., Tmp_s_L(), 0., *tmp1); Tmp_s_U().Set(1.); ip_nlp_->Pd_U()->AddMSinvZ(mu, *curr_slack_s_U(), Tmp_s_U(), *tmp1); DBG_PRINT_VECTOR(2, "Barrier_Grad_s without damping", *tmp1); // Take care of linear damping terms if (kappa_d_>0.) { SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); DBG_PRINT((1, "kappa_d*mu = %e\n", kappa_d_*mu)); DBG_PRINT_VECTOR(2, "dampind_s_L", *dampind_s_L); DBG_PRINT_VECTOR(2, "dampind_s_U", *dampind_s_U); ip_nlp_->Pd_L()->MultVector(kappa_d_*mu, *dampind_s_L, 1., *tmp1); ip_nlp_->Pd_U()->MultVector(-kappa_d_*mu, *dampind_s_U, 1., *tmp1); } DBG_PRINT_VECTOR(2, "Barrier_Grad_s with damping", *tmp1); result = ConstPtr(tmp1); curr_grad_barrier_obj_s_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::grad_kappa_times_damping_s() { DBG_START_METH("IpoptCalculatedQuantities::grad_kappa_times_damping_s()", dbg_verbosity); DBG_ASSERT(initialize_called_); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); std::vector tdeps(2); tdeps[0] = GetRawPtr(ip_nlp_->Pd_L()); tdeps[1] = GetRawPtr(ip_nlp_->Pd_U()); std::vector sdeps(1); sdeps[0] = kappa_d_; if (!grad_kappa_times_damping_s_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp1 = s->MakeNew(); if (kappa_d_>0.) { SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); ip_nlp_->Pd_L()->MultVector(kappa_d_, *dampind_s_L, 0., *tmp1); ip_nlp_->Pd_U()->MultVector(-kappa_d_, *dampind_s_U, 1., *tmp1); } else { tmp1->Set(0.); } result = ConstPtr(tmp1); grad_kappa_times_damping_s_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } void IpoptCalculatedQuantities::ComputeDampingIndicators( SmartPtr& dampind_x_L, SmartPtr& dampind_x_U, SmartPtr& dampind_s_L, SmartPtr& dampind_s_U) { DBG_START_METH("IpoptCalculatedQuantities::ComputeDampingFilters()", dbg_verbosity); // Assume that all indicators have to be computed if one of the // SmartPtrs is still zero. if (IsNull(dampind_x_L_)) { // First for x Tmp_x_L().Set(1.0); ip_nlp_->Px_L()->MultVector(1.0, Tmp_x_L(), 0.0, Tmp_x()); Tmp_x_U().Set(1.0); ip_nlp_->Px_U()->MultVector(-1.0, Tmp_x_U(), 1.0, Tmp_x()); dampind_x_L_ = ip_nlp_->x_L()->MakeNew(); ip_nlp_->Px_L()->TransMultVector(1.0, Tmp_x(), 0.0, *dampind_x_L_); dampind_x_U_ = ip_nlp_->x_U()->MakeNew(); ip_nlp_->Px_U()->TransMultVector(-1.0, Tmp_x(), 0.0, *dampind_x_U_); // Now for s Tmp_s_L().Set(1.0); ip_nlp_->Pd_L()->MultVector(1.0, Tmp_s_L(), 0.0, Tmp_s()); Tmp_s_U().Set(1.0); ip_nlp_->Pd_U()->MultVector(-1.0, Tmp_s_U(), 1.0, Tmp_s()); dampind_s_L_ = ip_nlp_->d_L()->MakeNew(); ip_nlp_->Pd_L()->TransMultVector(1.0, Tmp_s(), 0.0, *dampind_s_L_); dampind_s_U_ = ip_nlp_->d_U()->MakeNew(); ip_nlp_->Pd_U()->TransMultVector(-1.0, Tmp_s(), 0.0, *dampind_s_U_); DBG_PRINT_VECTOR(2, "dampind_x_L_", *dampind_x_L_); DBG_PRINT_VECTOR(2, "dampind_x_U_", *dampind_x_U_); DBG_PRINT_VECTOR(2, "dampind_s_L_", *dampind_s_L_); DBG_PRINT_VECTOR(2, "dampind_s_U_", *dampind_s_U_); } dampind_x_L = ConstPtr(dampind_x_L_); dampind_x_U = ConstPtr(dampind_x_U_); dampind_s_L = ConstPtr(dampind_s_L_); dampind_s_U = ConstPtr(dampind_s_U_); } /////////////////////////////////////////////////////////////////////////// // Constraints // /////////////////////////////////////////////////////////////////////////// SmartPtr IpoptCalculatedQuantities::curr_c() { DBG_START_METH("IpoptCalculatedQuantities::curr_c()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_c_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_c_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->c(*x); } curr_c_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::unscaled_curr_c() { return ip_nlp_->NLP_scaling()->unapply_vector_scaling_c(curr_c()); } SmartPtr IpoptCalculatedQuantities::trial_c() { DBG_START_METH("IpoptCalculatedQuantities::trial_c()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_c_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_c_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->c(*x); } trial_c_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::unscaled_trial_c() { return ip_nlp_->NLP_scaling()->unapply_vector_scaling_c(trial_c()); } SmartPtr IpoptCalculatedQuantities::curr_d() { DBG_START_METH("IpoptCalculatedQuantities::curr_d()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_d_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_d_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->d(*x); } curr_d_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::unscaled_curr_d() { return ip_nlp_->NLP_scaling()->unapply_vector_scaling_d(curr_d()); } SmartPtr IpoptCalculatedQuantities::trial_d() { DBG_START_METH("IpoptCalculatedQuantities::trial_d()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_d_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_d_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->d(*x); } trial_d_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::curr_d_minus_s() { DBG_START_METH("IpoptCalculatedQuantities::curr_d_minus_s()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); if (!curr_d_minus_s_cache_.GetCachedResult2Dep(result, *x, *s)) { if (!trial_d_minus_s_cache_.GetCachedResult2Dep(result, *x, *s)) { SmartPtr tmp = s->MakeNew(); tmp->AddTwoVectors(1., *curr_d(), -1., *s, 0.); result = ConstPtr(tmp); } curr_d_minus_s_cache_.AddCachedResult2Dep(result, *x, *s); } return result; } SmartPtr IpoptCalculatedQuantities::trial_d_minus_s() { DBG_START_METH("IpoptCalculatedQuantities::trial_d_minus_s()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); if (!trial_d_minus_s_cache_.GetCachedResult2Dep(result, *x, *s)) { if (!curr_d_minus_s_cache_.GetCachedResult2Dep(result, *x, *s)) { SmartPtr tmp = s->MakeNew(); tmp->AddTwoVectors(1., *trial_d(), -1., *s, 0.); result = ConstPtr(tmp); } trial_d_minus_s_cache_.AddCachedResult2Dep(result, *x, *s); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_c() { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_c()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_c_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_jac_c_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->jac_c(*x); } curr_jac_c_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::trial_jac_c() { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_c()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_jac_c_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_jac_c_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->jac_c(*x); } trial_jac_c_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_d() { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_d()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_d_cache_.GetCachedResult1Dep(result, *x)) { if (!trial_jac_d_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->jac_d(*x); } curr_jac_d_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::trial_jac_d() { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_d()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_jac_d_cache_.GetCachedResult1Dep(result, *x)) { if (!curr_jac_d_cache_.GetCachedResult1Dep(result, *x)) { result = ip_nlp_->jac_d(*x); } trial_jac_d_cache_.AddCachedResult1Dep(result, *x); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_c_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_c_times_vec", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_c_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = ip_data_->curr()->y_c()->MakeNew(); curr_jac_c()->MultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); curr_jac_c_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_d_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_d_times_vec()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_d_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = ip_data_->curr()->s()->MakeNew(); DBG_PRINT_VECTOR(1, "vec", vec); DBG_PRINT_MATRIX(2, "curr_jac_d()", *curr_jac_d()); curr_jac_d()->MultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); curr_jac_d_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_cT_times_curr_y_c() { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_cT_times_curr_y_c()", dbg_verbosity); return curr_jac_cT_times_vec(*ip_data_->curr()->y_c()); } SmartPtr IpoptCalculatedQuantities::trial_jac_cT_times_trial_y_c() { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_cT_times_trial_y_c()", dbg_verbosity); return trial_jac_cT_times_vec(*ip_data_->trial()->y_c()); } SmartPtr IpoptCalculatedQuantities::curr_jac_dT_times_curr_y_d() { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_dT_times_curr_y_d()", dbg_verbosity); return curr_jac_dT_times_vec(*ip_data_->curr()->y_d()); } SmartPtr IpoptCalculatedQuantities::trial_jac_dT_times_trial_y_d() { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_dT_times_trial_y_d()", dbg_verbosity); return trial_jac_dT_times_vec(*ip_data_->trial()->y_d()); } SmartPtr IpoptCalculatedQuantities::curr_jac_cT_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_cT_times_vec", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_cT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { if (!trial_jac_cT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = x->MakeNew(); curr_jac_c()->TransMultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); } curr_jac_cT_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } SmartPtr IpoptCalculatedQuantities::trial_jac_cT_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_cT_times_vec", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_jac_cT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { if (!curr_jac_cT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = x->MakeNew(); trial_jac_c()->TransMultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); } trial_jac_cT_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } SmartPtr IpoptCalculatedQuantities::curr_jac_dT_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::curr_jac_dT_times_vec()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); if (!curr_jac_dT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { if (!trial_jac_dT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = x->MakeNew(); DBG_PRINT_VECTOR(2, "vec", vec); DBG_PRINT_VECTOR(2, "tmp", *tmp); DBG_PRINT_MATRIX(2, "curr_jac_d()", *curr_jac_d()); curr_jac_d()->TransMultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); } curr_jac_dT_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } SmartPtr IpoptCalculatedQuantities::trial_jac_dT_times_vec(const Vector& vec) { DBG_START_METH("IpoptCalculatedQuantities::trial_jac_dT_times_vec()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); if (!trial_jac_dT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { if (!curr_jac_dT_times_vec_cache_.GetCachedResult2Dep(result, *x, vec)) { SmartPtr tmp = x->MakeNew(); trial_jac_d()->TransMultVector(1.0, vec, 0., *tmp); result = ConstPtr(tmp); } trial_jac_dT_times_vec_cache_.AddCachedResult2Dep(result, *x, vec); } return result; } Number IpoptCalculatedQuantities::curr_constraint_violation() { DBG_START_METH("IpoptCalculatedQuantities::curr_constraint_violation()", dbg_verbosity); return curr_primal_infeasibility(constr_viol_normtype_); } Number IpoptCalculatedQuantities::trial_constraint_violation() { DBG_START_METH("IpoptCalculatedQuantities::trial_constraint_violation()", dbg_verbosity); return trial_primal_infeasibility(constr_viol_normtype_); } Number IpoptCalculatedQuantities::curr_nlp_constraint_violation (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::curr_nlp_constraint_violation()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); std::vector deps(1); deps[0] = GetRawPtr(x); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!curr_nlp_constraint_violation_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr c = curr_c(); SmartPtr d = curr_d(); SmartPtr d_viol_L = ip_nlp_->d_L()->MakeNewCopy(); ip_nlp_->Pd_L()->TransMultVector(-1., *d, 1., *d_viol_L); SmartPtr tmp = d_viol_L->MakeNew(); tmp->Set(0.); d_viol_L->ElementWiseMax(*tmp); DBG_PRINT_VECTOR(2, "d_viol_L", *d_viol_L); SmartPtr d_viol_U = ip_nlp_->d_U()->MakeNewCopy(); ip_nlp_->Pd_U()->TransMultVector(-1., *d, 1., *d_viol_U); tmp = d_viol_U->MakeNew(); tmp->Set(0.); d_viol_U->ElementWiseMin(*tmp); DBG_PRINT_VECTOR(2, "d_viol_U", *d_viol_U); std::vector > vecs(3); vecs[0] = c; vecs[1] = GetRawPtr(d_viol_L); vecs[2] = GetRawPtr(d_viol_U); result = CalcNormOfType(NormType, vecs); curr_nlp_constraint_violation_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::unscaled_curr_nlp_constraint_violation (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::unscaled_curr_nlp_constraint_violation()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); std::vector deps(1); deps[0] = GetRawPtr(x); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!unscaled_curr_nlp_constraint_violation_cache_.GetCachedResult(result, deps, sdeps)) { if (!unscaled_trial_nlp_constraint_violation_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr c = unscaled_curr_c(); SmartPtr d = curr_d(); SmartPtr d_L = ip_nlp_->d_L(); SmartPtr d_viol_L = d_L->MakeNew(); if (d_L->Dim()>0) { SmartPtr d_viol = d->MakeNewCopy(); ip_nlp_->Pd_L()->MultVector(1., *d_L, -1., *d_viol); SmartPtr d_viol2 = ip_nlp_->NLP_scaling()->unapply_vector_scaling_d(ConstPtr(d_viol)); ip_nlp_->Pd_L()->TransMultVector(1., *d_viol2, 0., *d_viol_L); SmartPtr tmp = d_viol_L->MakeNew(); tmp->Set(0.); d_viol_L->ElementWiseMax(*tmp); } DBG_PRINT_VECTOR(2, "d_viol_L", *d_viol_L); SmartPtr d_U = ip_nlp_->d_U(); SmartPtr d_viol_U = d_U->MakeNew(); if (d_U->Dim()>0) { SmartPtr d_viol = d->MakeNewCopy(); ip_nlp_->Pd_U()->MultVector(1., *d_U, -1., *d_viol); SmartPtr d_viol2 = ip_nlp_->NLP_scaling()->unapply_vector_scaling_d(ConstPtr(d_viol)); ip_nlp_->Pd_U()->TransMultVector(1., *d_viol2, 0., *d_viol_U); SmartPtr tmp = d_viol_U->MakeNew(); tmp->Set(0.); d_viol_U->ElementWiseMin(*tmp); } DBG_PRINT_VECTOR(2, "d_viol_U", *d_viol_U); std::vector > vecs(3); vecs[0] = c; vecs[1] = GetRawPtr(d_viol_L); vecs[2] = GetRawPtr(d_viol_U); result = CalcNormOfType(NormType, vecs); } unscaled_curr_nlp_constraint_violation_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::unscaled_trial_nlp_constraint_violation (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::unscaled_trial_nlp_constraint_violation()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); std::vector deps(1); deps[0] = GetRawPtr(x); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!unscaled_trial_nlp_constraint_violation_cache_.GetCachedResult(result, deps, sdeps)) { if (!unscaled_curr_nlp_constraint_violation_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr c = unscaled_trial_c(); SmartPtr d = trial_d(); SmartPtr d_L = ip_nlp_->d_L(); SmartPtr d_viol_L = d_L->MakeNew(); if (d_L->Dim()>0) { SmartPtr d_viol = d->MakeNewCopy(); ip_nlp_->Pd_L()->MultVector(1., *d_L, -1., *d_viol); SmartPtr d_viol2 = ip_nlp_->NLP_scaling()->unapply_vector_scaling_d(ConstPtr(d_viol)); ip_nlp_->Pd_L()->TransMultVector(1., *d_viol2, 0., *d_viol_L); SmartPtr tmp = d_viol_L->MakeNew(); tmp->Set(0.); d_viol_L->ElementWiseMax(*tmp); } DBG_PRINT_VECTOR(2, "d_viol_L", *d_viol_L); SmartPtr d_U = ip_nlp_->d_U(); SmartPtr d_viol_U = d_U->MakeNew(); if (d_U->Dim()>0) { SmartPtr d_viol = d->MakeNewCopy(); ip_nlp_->Pd_U()->MultVector(1., *d_U, -1., *d_viol); SmartPtr d_viol2 = ip_nlp_->NLP_scaling()->unapply_vector_scaling_d(ConstPtr(d_viol)); ip_nlp_->Pd_U()->TransMultVector(1., *d_viol2, 0., *d_viol_U); SmartPtr tmp = d_viol_U->MakeNew(); tmp->Set(0.); d_viol_U->ElementWiseMin(*tmp); } DBG_PRINT_VECTOR(2, "d_viol_U", *d_viol_U); std::vector > vecs(3); vecs[0] = c; vecs[1] = GetRawPtr(d_viol_L); vecs[2] = GetRawPtr(d_viol_U); result = CalcNormOfType(NormType, vecs); } unscaled_trial_nlp_constraint_violation_cache_.AddCachedResult(result, deps, sdeps); } return result; } /////////////////////////////////////////////////////////////////////////// // Exact Hessian using second derivatives // /////////////////////////////////////////////////////////////////////////// SmartPtr IpoptCalculatedQuantities::curr_exact_hessian() { DBG_START_METH("IpoptCalculatedQuantities::curr_exact_hessian()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); bool objective_depends_on_mu = ip_nlp_->objective_depends_on_mu(); std::vector tdeps(3); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(y_c); tdeps[2] = GetRawPtr(y_d); std::vector sdeps(1); if (objective_depends_on_mu) { sdeps[0] = ip_data_->curr_mu(); } else { sdeps[0] = -1.; } if (!curr_exact_hessian_cache_.GetCachedResult(result, tdeps, sdeps)) { if (objective_depends_on_mu) { result = ip_nlp_->h(*x, 1.0, *y_c, *y_d, ip_data_->curr_mu()); } else { result = ip_nlp_->h(*x, 1.0, *y_c, *y_d); } curr_exact_hessian_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } /////////////////////////////////////////////////////////////////////////// // Optimality Error and its components // /////////////////////////////////////////////////////////////////////////// SmartPtr IpoptCalculatedQuantities::curr_grad_lag_x() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_lag_x()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); std::vector deps(5); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(y_c); deps[2] = GetRawPtr(y_d); deps[3] = GetRawPtr(z_L); deps[4] = GetRawPtr(z_U); if (!curr_grad_lag_x_cache_.GetCachedResult(result, deps)) { if (!trial_grad_lag_x_cache_.GetCachedResult(result, deps)) { SmartPtr tmp = x->MakeNew(); DBG_PRINT_VECTOR(2,"curr_grad_f",*curr_grad_f()); tmp->Copy(*curr_grad_f()); tmp->AddTwoVectors(1., *curr_jac_cT_times_curr_y_c(), 1., *curr_jac_dT_times_curr_y_d(), 1.); DBG_PRINT_VECTOR(2,"jac_cT*y_c",*curr_jac_cT_times_curr_y_c()); DBG_PRINT_VECTOR(2,"jac_dT*y_d",*curr_jac_dT_times_curr_y_d()); ip_nlp_->Px_L()->MultVector(-1., *z_L, 1., *tmp); ip_nlp_->Px_U()->MultVector(1., *z_U, 1., *tmp); result = ConstPtr(tmp); } curr_grad_lag_x_cache_.AddCachedResult(result, deps); } return result; } SmartPtr IpoptCalculatedQuantities::trial_grad_lag_x() { DBG_START_METH("IpoptCalculatedQuantities::trial_grad_lag_x()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->trial()->x(); SmartPtr y_c = ip_data_->trial()->y_c(); SmartPtr y_d = ip_data_->trial()->y_d(); SmartPtr z_L = ip_data_->trial()->z_L(); SmartPtr z_U = ip_data_->trial()->z_U(); std::vector deps(5); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(y_c); deps[2] = GetRawPtr(y_d); deps[3] = GetRawPtr(z_L); deps[4] = GetRawPtr(z_U); if (!trial_grad_lag_x_cache_.GetCachedResult(result, deps)) { if (!curr_grad_lag_x_cache_.GetCachedResult(result, deps)) { SmartPtr tmp = x->MakeNew(); DBG_PRINT_VECTOR(2,"trial_grad_f",*trial_grad_f()); tmp->Copy(*trial_grad_f()); tmp->AddTwoVectors(1., *trial_jac_cT_times_trial_y_c(), 1., *trial_jac_dT_times_trial_y_d(), 1.); ip_nlp_->Px_L()->MultVector(-1., *z_L, 1., *tmp); ip_nlp_->Px_U()->MultVector(1., *z_U, 1., *tmp); result = ConstPtr(tmp); } trial_grad_lag_x_cache_.AddCachedResult(result, deps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_grad_lag_s() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_lag_s()", dbg_verbosity); SmartPtr result; SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector deps(3); deps[0] = GetRawPtr(y_d); deps[1] = GetRawPtr(v_L); deps[2] = GetRawPtr(v_U); if (!curr_grad_lag_s_cache_.GetCachedResult(result, deps)) { if (!trial_grad_lag_s_cache_.GetCachedResult(result, deps)) { SmartPtr tmp = y_d->MakeNew(); ip_nlp_->Pd_U()->MultVector(1., *v_U, 0., *tmp); ip_nlp_->Pd_L()->MultVector(-1., *v_L, 1., *tmp); tmp->Axpy(-1., *y_d); result = ConstPtr(tmp); } curr_grad_lag_s_cache_.AddCachedResult(result, deps); } return result; } SmartPtr IpoptCalculatedQuantities::trial_grad_lag_s() { DBG_START_METH("IpoptCalculatedQuantities::trial_grad_lag_s()", dbg_verbosity); SmartPtr result; SmartPtr y_d = ip_data_->trial()->y_d(); SmartPtr v_L = ip_data_->trial()->v_L(); SmartPtr v_U = ip_data_->trial()->v_U(); std::vector deps(3); deps[0] = GetRawPtr(y_d); deps[1] = GetRawPtr(v_L); deps[2] = GetRawPtr(v_U); if (!trial_grad_lag_s_cache_.GetCachedResult(result, deps)) { if (!curr_grad_lag_s_cache_.GetCachedResult(result, deps)) { SmartPtr tmp = y_d->MakeNew(); ip_nlp_->Pd_U()->MultVector(1., *v_U, 0., *tmp); ip_nlp_->Pd_L()->MultVector(-1., *v_L, 1., *tmp); tmp->Axpy(-1., *y_d); result = ConstPtr(tmp); } trial_grad_lag_s_cache_.AddCachedResult(result, deps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_grad_lag_with_damping_x() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_lag_with_damping_x()", dbg_verbosity); /* If no damping is used, just return the gradient of the regular Lagrangian function */ if (kappa_d_==0.) { return curr_grad_lag_x(); } SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); Number mu = ip_data_->curr_mu(); std::vector deps(5); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(y_c); deps[2] = GetRawPtr(y_d); deps[3] = GetRawPtr(z_L); deps[4] = GetRawPtr(z_U); std::vector sdeps(1); sdeps[0] = mu; if (!curr_grad_lag_with_damping_x_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr tmp = x->MakeNew(); tmp->Copy(*curr_grad_lag_x()); SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); ip_nlp_->Px_L()->MultVector(kappa_d_*mu, *dampind_x_L, 1., *tmp); ip_nlp_->Px_U()->MultVector(-kappa_d_*mu, *dampind_x_U, 1., *tmp); result = ConstPtr(tmp); curr_grad_lag_with_damping_x_cache_.AddCachedResult(result, deps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_grad_lag_with_damping_s() { DBG_START_METH("IpoptCalculatedQuantities::curr_grad_lag_with_damping_s()", dbg_verbosity); /* If no damping is used, just return the gradient of the regular Lagrangian function */ if (kappa_d_==0.) { return curr_grad_lag_s(); } SmartPtr result; SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); Number mu = ip_data_->curr_mu(); std::vector deps(3); deps[0] = GetRawPtr(y_d); deps[1] = GetRawPtr(v_L); deps[2] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = mu; if (!curr_grad_lag_with_damping_s_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr tmp = y_d->MakeNew(); tmp->Copy(*curr_grad_lag_s()); SmartPtr dampind_x_L; SmartPtr dampind_x_U; SmartPtr dampind_s_L; SmartPtr dampind_s_U; ComputeDampingIndicators(dampind_x_L, dampind_x_U, dampind_s_L, dampind_s_U); ip_nlp_->Pd_L()->MultVector(kappa_d_*mu, *dampind_s_L, 1., *tmp); ip_nlp_->Pd_U()->MultVector(-kappa_d_*mu, *dampind_s_U, 1., *tmp); result = ConstPtr(tmp); curr_grad_lag_with_damping_s_cache_.AddCachedResult(result, deps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::CalcCompl(const Vector& slack, const Vector& mult) { DBG_START_METH("IpoptCalculatedQuantities::CalcCompl()", dbg_verbosity); SmartPtr result = slack.MakeNew(); result->Copy(slack); result->ElementWiseMultiply(mult); return ConstPtr(result); } SmartPtr IpoptCalculatedQuantities::curr_compl_x_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_compl_x_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_x_L(); SmartPtr mult = ip_data_->curr()->z_L(); DBG_PRINT_VECTOR(2, "slack_x_L", *slack); DBG_PRINT_VECTOR(2, "z_L", *mult); if (!curr_compl_x_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!trial_compl_x_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } curr_compl_x_L_cache_.AddCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::trial_compl_x_L() { DBG_START_METH("IpoptCalculatedQuantities::trial_compl_x_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = trial_slack_x_L(); SmartPtr mult = ip_data_->trial()->z_L(); DBG_PRINT_VECTOR(2, "slack_x_L", *slack); DBG_PRINT_VECTOR(2, "z_L", *mult); if (!trial_compl_x_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!curr_compl_x_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } trial_compl_x_L_cache_.AddCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::curr_compl_x_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_compl_x_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_x_U(); SmartPtr mult = ip_data_->curr()->z_U(); if (!curr_compl_x_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!trial_compl_x_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } curr_compl_x_U_cache_.AddCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::trial_compl_x_U() { DBG_START_METH("IpoptCalculatedQuantities::trial_compl_x_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = trial_slack_x_U(); SmartPtr mult = ip_data_->trial()->z_U(); if (!trial_compl_x_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!curr_compl_x_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } trial_compl_x_U_cache_.AddCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::curr_compl_s_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_compl_s_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_s_L(); SmartPtr mult = ip_data_->curr()->v_L(); if (!curr_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!trial_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } curr_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::trial_compl_s_L() { DBG_START_METH("IpoptCalculatedQuantities::trial_compl_s_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = trial_slack_s_L(); SmartPtr mult = ip_data_->trial()->v_L(); if (!trial_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!curr_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } trial_compl_s_L_cache_.GetCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::curr_compl_s_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_compl_s_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_s_U(); SmartPtr mult = ip_data_->curr()->v_U(); if (!curr_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!trial_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } curr_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::trial_compl_s_U() { DBG_START_METH("IpoptCalculatedQuantities::trial_compl_s_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = trial_slack_s_U(); SmartPtr mult = ip_data_->trial()->v_U(); if (!trial_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { if (!curr_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult)) { result = CalcCompl(*slack, *mult); } trial_compl_s_U_cache_.GetCachedResult2Dep(result, *slack, *mult); } return result; } SmartPtr IpoptCalculatedQuantities::curr_relaxed_compl_x_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_relaxed_compl_x_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_x_L(); SmartPtr mult = ip_data_->curr()->z_L(); std::vector tdeps(2); tdeps[0] = GetRawPtr(slack); tdeps[1] = GetRawPtr(mult); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; if (!curr_relaxed_compl_x_L_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp = slack->MakeNew(); tmp->Copy(*curr_compl_x_L()); tmp->AddScalar(-mu); result = ConstPtr(tmp); curr_relaxed_compl_x_L_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_relaxed_compl_x_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_relaxed_compl_x_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_x_U(); SmartPtr mult = ip_data_->curr()->z_U(); std::vector tdeps(2); tdeps[0] = GetRawPtr(slack); tdeps[1] = GetRawPtr(mult); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; if (!curr_relaxed_compl_x_U_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp = slack->MakeNew(); tmp->Copy(*curr_compl_x_U()); tmp->AddScalar(-mu); result = ConstPtr(tmp); curr_relaxed_compl_x_U_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_relaxed_compl_s_L() { DBG_START_METH("IpoptCalculatedQuantities::curr_relaxed_compl_s_L()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_s_L(); SmartPtr mult = ip_data_->curr()->v_L(); std::vector tdeps(2); tdeps[0] = GetRawPtr(slack); tdeps[1] = GetRawPtr(mult); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; if (!curr_relaxed_compl_s_L_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp = slack->MakeNew(); tmp->Copy(*curr_compl_s_L()); tmp->AddScalar(-mu); result = ConstPtr(tmp); curr_relaxed_compl_s_L_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } SmartPtr IpoptCalculatedQuantities::curr_relaxed_compl_s_U() { DBG_START_METH("IpoptCalculatedQuantities::curr_relaxed_compl_s_U()", dbg_verbosity); SmartPtr result; SmartPtr slack = curr_slack_s_U(); SmartPtr mult = ip_data_->curr()->v_U(); std::vector tdeps(2); tdeps[0] = GetRawPtr(slack); tdeps[1] = GetRawPtr(mult); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; if (!curr_relaxed_compl_s_U_cache_.GetCachedResult(result, tdeps, sdeps)) { SmartPtr tmp = slack->MakeNew(); tmp->Copy(*curr_compl_s_U()); tmp->AddScalar(-mu); result = ConstPtr(tmp); curr_relaxed_compl_s_U_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number IpoptCalculatedQuantities::CalcNormOfType (ENormType NormType, const Vector& vec1, const Vector& vec2) { switch (NormType) { case NORM_1 : return vec1.Asum() + vec2.Asum(); case NORM_2 : return sqrt(pow(vec1.Nrm2(),2) + pow(vec2.Nrm2(),2)); case NORM_MAX : return Max(vec1.Amax(), vec2.Amax()); default: DBG_ASSERT(false && "Unknown NormType."); return 0.0; } } Number IpoptCalculatedQuantities::CalcNormOfType (ENormType NormType, std::vector > vecs) { Number result=0.; switch (NormType) { case NORM_1 : for (Index i=0; i<(Index)vecs.size(); i++) { result += vecs[i]->Asum(); } break; case NORM_2 : for (Index i=0; i<(Index)vecs.size(); i++) { Number nrm = vecs[i]->Nrm2(); result += nrm*nrm; } result = sqrt(result); break; case NORM_MAX : for (Index i=0; i<(Index)vecs.size(); i++) { result = Max(result, vecs[i]->Amax()); } break; default: DBG_ASSERT(false && "Unknown NormType."); } return result; } Number IpoptCalculatedQuantities::curr_primal_infeasibility (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::curr_primal_infeasibility()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); DBG_PRINT_VECTOR(2, "x to eval", *x); DBG_PRINT_VECTOR(2, "s to eval", *s); DBG_PRINT((1,"NormType = %d\n", NormType)) std::vector deps(2); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!curr_primal_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { if (!trial_primal_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { DBG_PRINT((1,"Recomputing recomputing infeasibility.\n")); SmartPtr c = curr_c(); SmartPtr d_minus_s = curr_d_minus_s(); DBG_PRINT_VECTOR(2,"c", *c); DBG_PRINT_VECTOR(2,"d_minus_s", *d_minus_s); result = CalcNormOfType(NormType, *c, *d_minus_s); } curr_primal_infeasibility_cache_.AddCachedResult(result, deps, sdeps); } DBG_PRINT((1,"result = %e\n",result)); return result; } Number IpoptCalculatedQuantities::trial_primal_infeasibility (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::trial_primal_infeasibility()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); DBG_PRINT_VECTOR(2, "x to eval", *x); DBG_PRINT_VECTOR(2, "s to eval", *s); DBG_PRINT((1,"NormType = %d\n", NormType)) std::vector deps(2); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!trial_primal_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { if (!curr_primal_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { DBG_PRINT((1,"Recomputing recomputing infeasibility.\n")); SmartPtr c = trial_c(); SmartPtr d_minus_s = trial_d_minus_s(); DBG_PRINT_VECTOR(2,"c", *c); DBG_PRINT_VECTOR(2,"d_minus_s", *d_minus_s); result = CalcNormOfType(NormType, *c, *d_minus_s); } trial_primal_infeasibility_cache_.AddCachedResult(result, deps, sdeps); } DBG_PRINT((1,"result = %e\n",result)); return result; } Number IpoptCalculatedQuantities::curr_dual_infeasibility (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::curr_dual_infeasibility()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector deps(8); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); deps[2] = GetRawPtr(y_c); deps[3] = GetRawPtr(y_d); deps[4] = GetRawPtr(z_L); deps[5] = GetRawPtr(z_U); deps[6] = GetRawPtr(v_L); deps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!curr_dual_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { if (!trial_dual_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr grad_lag_x = curr_grad_lag_x(); SmartPtr grad_lag_s = curr_grad_lag_s(); DBG_PRINT_VECTOR(2,"grad_lag_x", *grad_lag_x); DBG_PRINT_VECTOR(2,"grad_lag_s", *grad_lag_s); result = CalcNormOfType(NormType, *grad_lag_x, *grad_lag_s); } curr_dual_infeasibility_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::trial_dual_infeasibility (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::trial_dual_infeasibility()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); SmartPtr y_c = ip_data_->trial()->y_c(); SmartPtr y_d = ip_data_->trial()->y_d(); SmartPtr z_L = ip_data_->trial()->z_L(); SmartPtr z_U = ip_data_->trial()->z_U(); SmartPtr v_L = ip_data_->trial()->v_L(); SmartPtr v_U = ip_data_->trial()->v_U(); std::vector deps(8); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); deps[2] = GetRawPtr(y_c); deps[3] = GetRawPtr(y_d); deps[4] = GetRawPtr(z_L); deps[5] = GetRawPtr(z_U); deps[6] = GetRawPtr(v_L); deps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!trial_dual_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { if (!curr_dual_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr grad_lag_x = trial_grad_lag_x(); SmartPtr grad_lag_s = trial_grad_lag_s(); DBG_PRINT_VECTOR(2,"grad_lag_x", *grad_lag_x); DBG_PRINT_VECTOR(2,"grad_lag_s", *grad_lag_s); result = CalcNormOfType(NormType, *grad_lag_x, *grad_lag_s); } trial_dual_infeasibility_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::unscaled_curr_dual_infeasibility (ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::unscaled_curr_dual_infeasibility()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector deps(8); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); deps[2] = GetRawPtr(y_c); deps[3] = GetRawPtr(y_d); deps[4] = GetRawPtr(z_L); deps[5] = GetRawPtr(z_U); deps[6] = GetRawPtr(v_L); deps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = (Number)NormType; if (!unscaled_curr_dual_infeasibility_cache_.GetCachedResult(result, deps, sdeps)) { SmartPtr grad_lag_x = ip_nlp_->NLP_scaling()->unapply_grad_obj_scaling(curr_grad_lag_x()); Number obj_unscal = ip_nlp_->NLP_scaling()->unapply_obj_scaling(1.); SmartPtr grad_lag_s; if (obj_unscal != 1.) { SmartPtr tmp = ip_nlp_->NLP_scaling()->apply_vector_scaling_d_NonConst(ConstPtr(curr_grad_lag_s())); tmp->Scal(obj_unscal); grad_lag_s = ConstPtr(tmp); } else { grad_lag_s = ip_nlp_->NLP_scaling()->apply_vector_scaling_d(curr_grad_lag_s()); } result = CalcNormOfType(NormType, *grad_lag_x, *grad_lag_s); unscaled_curr_dual_infeasibility_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::curr_complementarity (Number mu, ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::curr_complementarity()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector deps(6); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); deps[2] = GetRawPtr(z_L); deps[3] = GetRawPtr(z_U); deps[4] = GetRawPtr(v_L); deps[5] = GetRawPtr(v_U); std::vector sdeps(2); sdeps[0] = (Number)NormType; sdeps[1] = mu; if (!curr_complementarity_cache_.GetCachedResult(result, deps, sdeps)) { if (!trial_complementarity_cache_.GetCachedResult(result, deps, sdeps)) { std::vector > vecs(4); SmartPtr compl_x_L = curr_compl_x_L(); SmartPtr compl_x_U = curr_compl_x_U(); SmartPtr compl_s_L = curr_compl_s_L(); SmartPtr compl_s_U = curr_compl_s_U(); if (mu==.0) { vecs[0] = GetRawPtr(compl_x_L); vecs[1] = GetRawPtr(compl_x_U); vecs[2] = GetRawPtr(compl_s_L); vecs[3] = GetRawPtr(compl_s_U); } else { SmartPtr tmp = compl_x_L->MakeNew(); tmp->Copy(*compl_x_L); tmp->AddScalar(-mu); vecs[0] = GetRawPtr(tmp); tmp = compl_x_U->MakeNew(); tmp->Copy(*compl_x_U); tmp->AddScalar(-mu); vecs[1] = GetRawPtr(tmp); tmp = compl_s_L->MakeNew(); tmp->Copy(*compl_s_L); tmp->AddScalar(-mu); vecs[2] = GetRawPtr(tmp); tmp = compl_s_U->MakeNew(); tmp->Copy(*compl_s_U); tmp->AddScalar(-mu); vecs[3] = GetRawPtr(tmp); } result = CalcNormOfType(NormType, vecs); } curr_complementarity_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::trial_complementarity (Number mu, ENormType NormType) { DBG_START_METH("IpoptCalculatedQuantities::trial_complementarity()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); SmartPtr z_L = ip_data_->trial()->z_L(); SmartPtr z_U = ip_data_->trial()->z_U(); SmartPtr v_L = ip_data_->trial()->v_L(); SmartPtr v_U = ip_data_->trial()->v_U(); std::vector deps(6); deps[0] = GetRawPtr(x); deps[1] = GetRawPtr(s); deps[2] = GetRawPtr(z_L); deps[3] = GetRawPtr(z_U); deps[4] = GetRawPtr(v_L); deps[5] = GetRawPtr(v_U); std::vector sdeps(2); sdeps[0] = (Number)NormType; sdeps[1] = mu; if (!trial_complementarity_cache_.GetCachedResult(result, deps, sdeps)) { if (!curr_complementarity_cache_.GetCachedResult(result, deps, sdeps)) { std::vector > vecs(4); SmartPtr compl_x_L = trial_compl_x_L(); SmartPtr compl_x_U = trial_compl_x_U(); SmartPtr compl_s_L = trial_compl_s_L(); SmartPtr compl_s_U = trial_compl_s_U(); if (mu==.0) { vecs[0] = GetRawPtr(compl_x_L); vecs[1] = GetRawPtr(compl_x_U); vecs[2] = GetRawPtr(compl_s_L); vecs[3] = GetRawPtr(compl_s_U); } else { SmartPtr tmp = compl_x_L->MakeNew(); tmp->Copy(*compl_x_L); tmp->AddScalar(-mu); vecs[0] = GetRawPtr(tmp); tmp = compl_x_U->MakeNew(); tmp->Copy(*compl_x_U); tmp->AddScalar(-mu); vecs[1] = GetRawPtr(tmp); tmp = compl_s_L->MakeNew(); tmp->Copy(*compl_s_L); tmp->AddScalar(-mu); vecs[2] = GetRawPtr(tmp); tmp = compl_s_U->MakeNew(); tmp->Copy(*compl_s_U); tmp->AddScalar(-mu); vecs[3] = GetRawPtr(tmp); } result = CalcNormOfType(NormType, vecs); } trial_complementarity_cache_.AddCachedResult(result, deps, sdeps); } return result; } Number IpoptCalculatedQuantities::unscaled_curr_complementarity (Number mu, ENormType NormType) { return ip_nlp_->NLP_scaling()->unapply_obj_scaling(curr_complementarity(mu, NormType)); } Number IpoptCalculatedQuantities::CalcCentralityMeasure(const Vector& compl_x_L, const Vector& compl_x_U, const Vector& compl_s_L, const Vector& compl_s_U) { DBG_START_METH("IpoptCalculatedQuantities::CalcCentralityMeasure()", dbg_verbosity); Number MinCompl = std::numeric_limits::max(); bool have_bounds = false; Index n_compl_x_L = compl_x_L.Dim(); Index n_compl_x_U = compl_x_U.Dim(); Index n_compl_s_L = compl_s_L.Dim(); Index n_compl_s_U = compl_s_U.Dim(); // Compute the Minimum of all complementarities if ( n_compl_x_L>0 ) { if ( have_bounds ) { MinCompl = Min(MinCompl, compl_x_L.Min()); } else { MinCompl = compl_x_L.Min(); } have_bounds = true; } if ( n_compl_x_U>0 ) { if ( have_bounds ) { MinCompl = Min(MinCompl, compl_x_U.Min()); } else { MinCompl = compl_x_U.Min(); } have_bounds = true; } if ( n_compl_s_L>0 ) { if ( have_bounds ) { MinCompl = Min(MinCompl, compl_s_L.Min()); } else { MinCompl = compl_s_L.Min(); } have_bounds = true; } if ( n_compl_s_U>0 ) { if ( have_bounds ) { MinCompl = Min(MinCompl, compl_s_U.Min()); } else { MinCompl = compl_s_U.Min(); } have_bounds = true; } // If there are no bounds, just return 0.; if (!have_bounds) { return 0.; } DBG_PRINT_VECTOR(2, "compl_x_L", compl_x_L); DBG_PRINT_VECTOR(2, "compl_x_U", compl_x_U); DBG_PRINT_VECTOR(2, "compl_s_L", compl_s_L); DBG_PRINT_VECTOR(2, "compl_s_U", compl_s_U); DBG_ASSERT(MinCompl>0. && "There is a zero complementarity entry"); Number avrg_compl = (compl_x_L.Asum() + compl_x_U.Asum() + compl_s_L.Asum() + compl_s_U.Asum()); DBG_PRINT((1,"sum_compl = %25.16e\n", avrg_compl)); avrg_compl /= (n_compl_x_L + n_compl_x_U + n_compl_s_L + n_compl_s_U); DBG_PRINT((1,"avrg_compl = %25.16e\n", avrg_compl)); DBG_PRINT((1,"MinCompl = %25.16e\n", MinCompl)); Number xi = MinCompl/avrg_compl; // The folloking line added for the case that avrg_compl is // slighly smaller than MinCompl, due to numerical roundoff xi = Min(1., xi); return xi; } Number IpoptCalculatedQuantities::curr_centrality_measure() { Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(6); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(z_L); tdeps[3] = GetRawPtr(z_U); tdeps[4] = GetRawPtr(v_L); tdeps[5] = GetRawPtr(v_U); if (!curr_centrality_measure_cache_.GetCachedResult(result, tdeps)) { SmartPtr compl_x_L = curr_compl_x_L(); SmartPtr compl_x_U = curr_compl_x_U(); SmartPtr compl_s_L = curr_compl_s_L(); SmartPtr compl_s_U = curr_compl_s_U(); result = CalcCentralityMeasure(*compl_x_L, *compl_x_U, *compl_s_L, *compl_s_U); curr_centrality_measure_cache_.AddCachedResult(result, tdeps); } return result; } Number IpoptCalculatedQuantities::curr_nlp_error() { DBG_START_METH("IpoptCalculatedQuantities::curr_nlp_error()", dbg_verbosity); DBG_ASSERT(initialize_called_); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(z_L); tdeps[5] = GetRawPtr(z_U); tdeps[6] = GetRawPtr(v_L); tdeps[7] = GetRawPtr(v_U); if (!curr_nlp_error_cache_.GetCachedResult(result, tdeps)) { if (ip_data_->curr()->x()->Dim()==ip_data_->curr()->y_c()->Dim()) { // This is a square problem, we only need to consider the // infeasibility result = curr_nlp_constraint_violation(NORM_MAX); } else { Number s_d = 0; Number s_c = 0; ComputeOptimalityErrorScaling(*ip_data_->curr()->y_c(), *ip_data_->curr()->y_d(), *ip_data_->curr()->z_L(), *ip_data_->curr()->z_U(), *ip_data_->curr()->v_L(), *ip_data_->curr()->v_U(), s_max_, s_d, s_c); DBG_PRINT((1, "s_d = %lf, s_c = %lf\n", s_d, s_c)); // Dual infeasibility DBG_PRINT((1, "curr_dual_infeasibility(NORM_MAX) = %8.2e\n", curr_dual_infeasibility(NORM_MAX))); result = curr_dual_infeasibility(NORM_MAX)/s_d; /* // Primal infeasibility DBG_PRINT((1, "curr_primal_infeasibility(NORM_MAX) = %8.2e\n", curr_primal_infeasibility(NORM_MAX))); result = Max(result, curr_primal_infeasibility(NORM_MAX)); */ result = Max(result, curr_nlp_constraint_violation(NORM_MAX)); // Complementarity DBG_PRINT((1, "curr_complementarity(mu_target_, NORM_MAX) = %8.2e\n", curr_complementarity(mu_target_, NORM_MAX))); result = Max(result, curr_complementarity(mu_target_, NORM_MAX)/s_c); } curr_nlp_error_cache_.AddCachedResult(result, tdeps); } return result; } Number IpoptCalculatedQuantities::unscaled_curr_nlp_error() { DBG_START_METH("IpoptCalculatedQuantities::unscaled_curr_nlp_error()", dbg_verbosity); DBG_ASSERT(initialize_called_); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(z_L); tdeps[5] = GetRawPtr(z_U); tdeps[6] = GetRawPtr(v_L); tdeps[7] = GetRawPtr(v_U); if (!unscaled_curr_nlp_error_cache_.GetCachedResult(result, tdeps)) { // Dual infeasibility result = unscaled_curr_dual_infeasibility(NORM_MAX); // Constraint violation result = Max(result, unscaled_curr_nlp_constraint_violation(NORM_MAX)); // Complementarity (ToDo use unscaled?) DBG_PRINT((1, "curr_complementarity(mu_target_, NORM_MAX) = %8.2e\n", curr_complementarity(mu_target_, NORM_MAX))); result = Max(result, unscaled_curr_complementarity(mu_target_, NORM_MAX)); unscaled_curr_nlp_error_cache_.AddCachedResult(result, tdeps); } return result; } Number IpoptCalculatedQuantities::curr_barrier_error() { DBG_START_METH("IpoptCalculatedQuantities::curr_barrier_error()", dbg_verbosity); DBG_ASSERT(initialize_called_); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); Number mu = ip_data_->curr_mu(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(z_L); tdeps[5] = GetRawPtr(z_U); tdeps[6] = GetRawPtr(v_L); tdeps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = mu; if (!curr_barrier_error_cache_.GetCachedResult(result, tdeps, sdeps)) { Number s_d = 0; Number s_c = 0; ComputeOptimalityErrorScaling(*ip_data_->curr()->y_c(), *ip_data_->curr()->y_d(), *ip_data_->curr()->z_L(), *ip_data_->curr()->z_U(), *ip_data_->curr()->v_L(), *ip_data_->curr()->v_U(), s_max_, s_d, s_c); DBG_PRINT((1, "s_d = %lf, s_c = %lf\n", s_d, s_c)); // Primal infeasibility result = curr_dual_infeasibility(NORM_MAX)/s_d; // Dual infeasibility result = Max(result, curr_primal_infeasibility(NORM_MAX)); // Complementarity result = Max(result, curr_complementarity(mu, NORM_MAX)/s_c); curr_barrier_error_cache_.AddCachedResult(result, tdeps); } return result; } Number IpoptCalculatedQuantities::curr_primal_dual_system_error(Number mu) { DBG_START_METH("IpoptCalculatedQuantities::curr_primal_dual_system_error()", dbg_verbosity); DBG_ASSERT(initialize_called_); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr y_c = ip_data_->curr()->y_c(); SmartPtr y_d = ip_data_->curr()->y_d(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(z_L); tdeps[5] = GetRawPtr(z_U); tdeps[6] = GetRawPtr(v_L); tdeps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = mu; if (!curr_primal_dual_system_error_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!trial_primal_dual_system_error_cache_.GetCachedResult(result, tdeps, sdeps)) { // For now we use the 1 norm, and scale each component by the number of entries... Index n_dual = x->Dim() + s->Dim(); Number dual_inf = curr_dual_infeasibility(NORM_1)/((Number)n_dual); Index n_primal = y_c->Dim() + y_d->Dim(); Number primal_inf = 0.; if (n_primal>0) { primal_inf = curr_primal_infeasibility(NORM_1)/((Number)n_primal); } Index n_cmpl = z_L->Dim() + z_U->Dim() + v_L->Dim() + v_U->Dim(); Number cmpl = 0.; if (n_cmpl>0) { cmpl = curr_complementarity(mu, NORM_1)/((Number)n_cmpl); } result = dual_inf + primal_inf + cmpl; } curr_primal_dual_system_error_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number IpoptCalculatedQuantities::trial_primal_dual_system_error(Number mu) { DBG_START_METH("IpoptCalculatedQuantities::trial_primal_dual_system_error()", dbg_verbosity); DBG_ASSERT(initialize_called_); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); SmartPtr y_c = ip_data_->trial()->y_c(); SmartPtr y_d = ip_data_->trial()->y_d(); SmartPtr z_L = ip_data_->trial()->z_L(); SmartPtr z_U = ip_data_->trial()->z_U(); SmartPtr v_L = ip_data_->trial()->v_L(); SmartPtr v_U = ip_data_->trial()->v_U(); std::vector tdeps(8); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(y_c); tdeps[3] = GetRawPtr(y_d); tdeps[4] = GetRawPtr(z_L); tdeps[5] = GetRawPtr(z_U); tdeps[6] = GetRawPtr(v_L); tdeps[7] = GetRawPtr(v_U); std::vector sdeps(1); sdeps[0] = mu; if (!trial_primal_dual_system_error_cache_.GetCachedResult(result, tdeps, sdeps)) { if (!curr_primal_dual_system_error_cache_.GetCachedResult(result, tdeps, sdeps)) { // For now we use the 1 norm, and scale each component by the number of entries... Index n_dual = x->Dim() + s->Dim(); Number dual_inf = trial_dual_infeasibility(NORM_1)/((Number)n_dual); Index n_primal = y_c->Dim() + y_d->Dim(); Number primal_inf = 0.; if (n_primal>0) { primal_inf = trial_primal_infeasibility(NORM_1)/((Number)n_primal); } Index n_cmpl = z_L->Dim() + z_U->Dim() + v_L->Dim() + v_U->Dim(); Number cmpl = 0.; if (n_cmpl>0) { cmpl = trial_complementarity(mu, NORM_1)/((Number)n_cmpl); } result = dual_inf + primal_inf + cmpl; } trial_primal_dual_system_error_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } /////////////////////////////////////////////////////////////////////////// // Fraction-to-the-boundary step sizes // /////////////////////////////////////////////////////////////////////////// Number IpoptCalculatedQuantities::CalcFracToBound(const Vector& slack_L, Vector& tmp_L, const Matrix& P_L, const Vector& slack_U, Vector& tmp_U, const Matrix& P_U, const Vector& delta, Number tau) { DBG_START_METH("IpoptCalculatedQuantities::CalcFracToBound", dbg_verbosity); Number alpha_L = 1.0; Number alpha_U = 1.0; if (slack_L.Dim() > 0) { P_L.TransMultVector(1.0, delta, 0.0, tmp_L); alpha_L = slack_L.FracToBound(tmp_L, tau); } if (slack_U.Dim() > 0) { P_U.TransMultVector(-1.0, delta, 0.0, tmp_U); alpha_U = slack_U.FracToBound(tmp_U, tau); } DBG_PRINT((1,"alpha_L = %lf, alpha_U = %lf\n", alpha_L, alpha_U)); DBG_ASSERT(alpha_L >= 0.0 && alpha_L <= 1.0 && alpha_U >=0.0 && alpha_U <= 1.0); return Min(alpha_L, alpha_U); } Number IpoptCalculatedQuantities::primal_frac_to_the_bound(Number tau, const Vector& delta_x, const Vector& delta_s) { DBG_START_METH("IpoptCalculatedQuantities::primal_frac_to_the_bound", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); std::vector tdeps(4); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = &delta_x; tdeps[3] = &delta_s; std::vector sdeps(1); sdeps[0] = tau; if (!primal_frac_to_the_bound_cache_.GetCachedResult(result, tdeps, sdeps)) { result = Min(CalcFracToBound(*curr_slack_x_L(), Tmp_x_L(), *ip_nlp_->Px_L(), *curr_slack_x_U(), Tmp_x_U(), *ip_nlp_->Px_U(), delta_x, tau), CalcFracToBound(*curr_slack_s_L(), Tmp_s_L(), *ip_nlp_->Pd_L(), *curr_slack_s_U(), Tmp_s_U(), *ip_nlp_->Pd_U(), delta_s, tau)); primal_frac_to_the_bound_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number IpoptCalculatedQuantities::curr_primal_frac_to_the_bound(Number tau) { DBG_START_METH("IpoptCalculatedQuantities::curr_primal_frac_to_the_bound()", dbg_verbosity); return primal_frac_to_the_bound(tau, *ip_data_->delta()->x(), *ip_data_->delta()->s()); } Number IpoptCalculatedQuantities::uncached_dual_frac_to_the_bound( Number tau, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U) { DBG_START_METH("IpoptCalculatedQuantities::uncached_dual_frac_to_the_bound", dbg_verbosity); Number result; result = ip_data_->curr()->z_L()->FracToBound(delta_z_L, tau); result = Min(result, ip_data_->curr()->z_U()->FracToBound(delta_z_U, tau)); result = Min(result, ip_data_->curr()->v_L()->FracToBound(delta_v_L, tau)); result = Min(result, ip_data_->curr()->v_U()->FracToBound(delta_v_U, tau)); return result; } Number IpoptCalculatedQuantities::dual_frac_to_the_bound( Number tau, const Vector& delta_z_L, const Vector& delta_z_U, const Vector& delta_v_L, const Vector& delta_v_U) { DBG_START_METH("IpoptCalculatedQuantities::dual_frac_to_the_bound", dbg_verbosity); Number result; SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(8); tdeps[0] = GetRawPtr(z_L); tdeps[1] = GetRawPtr(z_U); tdeps[2] = GetRawPtr(v_L); tdeps[3] = GetRawPtr(v_U); tdeps[4] = &delta_z_L; tdeps[5] = &delta_z_U; tdeps[6] = &delta_v_L; tdeps[7] = &delta_v_U; std::vector sdeps(1); sdeps[0] = tau; if (!dual_frac_to_the_bound_cache_.GetCachedResult(result, tdeps, sdeps)) { result = z_L->FracToBound(delta_z_L, tau); result = Min(result, z_U->FracToBound(delta_z_U, tau)); result = Min(result, v_L->FracToBound(delta_v_L, tau)); result = Min(result, v_U->FracToBound(delta_v_U, tau)); dual_frac_to_the_bound_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } Number IpoptCalculatedQuantities::curr_dual_frac_to_the_bound(Number tau) { DBG_START_METH("IpoptCalculatedQuantities::curr_dual_frac_to_the_bound()", dbg_verbosity); return dual_frac_to_the_bound(tau, *ip_data_->delta()->z_L(), *ip_data_->delta()->z_U(), *ip_data_->delta()->v_L(), *ip_data_->delta()->v_U()); } Number IpoptCalculatedQuantities::uncached_slack_frac_to_the_bound( Number tau, const Vector& delta_x_L, const Vector& delta_x_U, const Vector& delta_s_L, const Vector& delta_s_U) { DBG_START_METH("IpoptCalculatedQuantities::slack_frac_to_the_bound", dbg_verbosity); Number result; SmartPtr x_L = curr_slack_x_L(); SmartPtr x_U = curr_slack_x_U(); SmartPtr s_L = curr_slack_s_L(); SmartPtr s_U = curr_slack_s_U(); result = x_L->FracToBound(delta_x_L, tau); result = Min(result, x_U->FracToBound(delta_x_U, tau)); result = Min(result, s_L->FracToBound(delta_s_L, tau)); result = Min(result, s_U->FracToBound(delta_s_U, tau)); return result; } /////////////////////////////////////////////////////////////////////////// // Sigma Matrices // /////////////////////////////////////////////////////////////////////////// SmartPtr IpoptCalculatedQuantities::curr_sigma_x() { DBG_START_METH("IpoptCalculatedQuantities::curr_sigma_x()", dbg_verbosity); SmartPtr result; SmartPtr x = ip_data_->curr()->x(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); if (!curr_sigma_x_cache_.GetCachedResult3Dep(result, *x, *z_L, *z_U)) { SmartPtr sigma = x->MakeNew(); sigma->Set(0.); ip_nlp_->Px_L()->AddMSinvZ(1., *curr_slack_x_L(), *z_L, *sigma); ip_nlp_->Px_U()->AddMSinvZ(1., *curr_slack_x_U(), *z_U, *sigma); DBG_PRINT_VECTOR(2,"sigma_x", *sigma); result = ConstPtr(sigma); curr_sigma_x_cache_.AddCachedResult3Dep(result, *x, *z_L, *z_U); } return result; } SmartPtr IpoptCalculatedQuantities::curr_sigma_s() { DBG_START_METH("IpoptCalculatedQuantities::curr_sigma_s()", dbg_verbosity); SmartPtr result; SmartPtr s = ip_data_->curr()->s(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); if (!curr_sigma_s_cache_.GetCachedResult3Dep(result, *s, *v_L, *v_U)) { SmartPtr sigma = s->MakeNew(); sigma->Set(0.); ip_nlp_->Pd_L()->AddMSinvZ(1., *curr_slack_s_L(), *v_L, *sigma); DBG_PRINT_VECTOR(2,"sigma1", *sigma); ip_nlp_->Pd_U()->AddMSinvZ(1., *curr_slack_s_U(), *v_U, *sigma); DBG_PRINT_VECTOR(2,"sigma2", *sigma); result = ConstPtr(sigma); curr_sigma_s_cache_.AddCachedResult3Dep(result, *s, *v_L, *v_U); } return result; } Number IpoptCalculatedQuantities::curr_avrg_compl() { DBG_START_METH("IpoptCalculatedQuantities::curr_avrg_compl()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr z_L = ip_data_->curr()->z_L(); SmartPtr z_U = ip_data_->curr()->z_U(); SmartPtr v_L = ip_data_->curr()->v_L(); SmartPtr v_U = ip_data_->curr()->v_U(); std::vector tdeps(6); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(z_L); tdeps[3] = GetRawPtr(z_U); tdeps[4] = GetRawPtr(v_L); tdeps[5] = GetRawPtr(v_U); if (!curr_avrg_compl_cache_.GetCachedResult(result, tdeps)) { if (!trial_avrg_compl_cache_.GetCachedResult(result, tdeps)) { SmartPtr slack_x_L = curr_slack_x_L(); SmartPtr slack_x_U = curr_slack_x_U(); SmartPtr slack_s_L = curr_slack_s_L(); SmartPtr slack_s_U = curr_slack_s_U(); Index ncomps = z_L->Dim() + z_U->Dim() + v_L->Dim() + v_U->Dim(); if (ncomps>0) { result = z_L->Dot(*slack_x_L); result += z_U->Dot(*slack_x_U); result += v_L->Dot(*slack_s_L); result += v_U->Dot(*slack_s_U); result /= (Number)ncomps; } else { result = 0.; } } curr_avrg_compl_cache_.AddCachedResult(result, tdeps); } return result; } Number IpoptCalculatedQuantities::trial_avrg_compl() { DBG_START_METH("IpoptCalculatedQuantities::trial_avrg_compl()", dbg_verbosity); Number result; SmartPtr x = ip_data_->trial()->x(); SmartPtr s = ip_data_->trial()->s(); SmartPtr z_L = ip_data_->trial()->z_L(); SmartPtr z_U = ip_data_->trial()->z_U(); SmartPtr v_L = ip_data_->trial()->v_L(); SmartPtr v_U = ip_data_->trial()->v_U(); std::vector tdeps(6); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(z_L); tdeps[3] = GetRawPtr(z_U); tdeps[4] = GetRawPtr(v_L); tdeps[5] = GetRawPtr(v_U); if (!trial_avrg_compl_cache_.GetCachedResult(result, tdeps)) { if (!curr_avrg_compl_cache_.GetCachedResult(result, tdeps)) { SmartPtr slack_x_L = trial_slack_x_L(); SmartPtr slack_x_U = trial_slack_x_U(); SmartPtr slack_s_L = trial_slack_s_L(); SmartPtr slack_s_U = trial_slack_s_U(); Index ncomps = z_L->Dim() + z_U->Dim() + v_L->Dim() + v_U->Dim(); if (ncomps>0) { result = z_L->Dot(*slack_x_L); result += z_U->Dot(*slack_x_U); result += v_L->Dot(*slack_s_L); result += v_U->Dot(*slack_s_U); result /= (Number)ncomps; } else { result = 0.; } } trial_avrg_compl_cache_.AddCachedResult(result, tdeps); } return result; } void IpoptCalculatedQuantities::ComputeOptimalityErrorScaling(const Vector& y_c, const Vector& y_d, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, Number s_max, Number& s_d, Number& s_c) { DBG_ASSERT(initialize_called_); s_c = z_L.Asum() + z_U.Asum() + v_L.Asum() + v_U.Asum(); Number n = (z_L.Dim() + z_U.Dim() + v_L.Dim() + v_U.Dim()); if (n == 0) { s_c = 1.0; } else { s_c = s_c / n; s_c = Max(s_max, s_c)/s_max; } s_d = y_c.Asum() + y_d.Asum() + z_L.Asum() + z_U.Asum() + v_L.Asum() + v_U.Asum(); n = (y_c.Dim() + y_d.Dim() + z_L.Dim() + z_U.Dim() + v_L.Dim() + v_U.Dim()); if ( n == 0 ) { s_d = 1.0; } else { s_d = s_d / n; s_d = Max(s_max, s_d)/s_max; } } Number IpoptCalculatedQuantities::curr_gradBarrTDelta() { DBG_START_METH("IpoptCalculatedQuantities::curr_gradBarrTDelta()", dbg_verbosity); Number result; SmartPtr x = ip_data_->curr()->x(); SmartPtr s = ip_data_->curr()->s(); SmartPtr delta_x = ip_data_->delta()->x(); SmartPtr delta_s = ip_data_->delta()->s(); std::vector tdeps(4); tdeps[0] = GetRawPtr(x); tdeps[1] = GetRawPtr(s); tdeps[2] = GetRawPtr(delta_x); tdeps[3] = GetRawPtr(delta_s); Number mu = ip_data_->curr_mu(); std::vector sdeps(1); sdeps[0] = mu; DBG_PRINT((1,"curr_mu=%e\n",mu)); if (!curr_gradBarrTDelta_cache_.GetCachedResult(result, tdeps, sdeps)) { result = curr_grad_barrier_obj_x()->Dot(*delta_x) + curr_grad_barrier_obj_s()->Dot(*delta_s); curr_gradBarrTDelta_cache_.AddCachedResult(result, tdeps, sdeps); } return result; } bool IpoptCalculatedQuantities::IsSquareProblem() const { return (ip_data_->curr()->x()->Dim() == ip_data_->curr()->y_c()->Dim()); } Vector& IpoptCalculatedQuantities::Tmp_x() { if (!IsValid(tmp_x_)) { tmp_x_ = ip_data_->curr()->x()->MakeNew(); } return *tmp_x_; } Vector& IpoptCalculatedQuantities::Tmp_s() { if (!IsValid(tmp_s_)) { tmp_s_ = ip_data_->curr()->s()->MakeNew(); } return *tmp_s_; } Vector& IpoptCalculatedQuantities::Tmp_c() { if (!IsValid(tmp_c_)) { tmp_c_ = ip_data_->curr()->y_c()->MakeNew(); } return *tmp_c_; } Vector& IpoptCalculatedQuantities::Tmp_d() { if (!IsValid(tmp_d_)) { tmp_d_ = ip_data_->curr()->y_d()->MakeNew(); } return *tmp_d_; } Vector& IpoptCalculatedQuantities::Tmp_x_L() { if (!IsValid(tmp_x_L_)) { tmp_x_L_ = ip_nlp_->x_L()->MakeNew(); } return *tmp_x_L_; } Vector& IpoptCalculatedQuantities::Tmp_x_U() { if (!IsValid(tmp_x_U_)) { tmp_x_U_ = ip_nlp_->x_U()->MakeNew(); } return *tmp_x_U_; } Vector& IpoptCalculatedQuantities::Tmp_s_L() { if (!IsValid(tmp_s_L_)) { tmp_s_L_ = ip_nlp_->d_L()->MakeNew(); } return *tmp_s_L_; } Vector& IpoptCalculatedQuantities::Tmp_s_U() { if (!IsValid(tmp_s_U_)) { tmp_s_U_ = ip_nlp_->d_U()->MakeNew(); } return *tmp_s_U_; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpIterateInitializer.hpp0000644000076600007660000000334111504216567021774 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-24 #ifndef __IPITERATEINITIALIZER_HPP__ #define __IPITERATEINITIALIZER_HPP__ #include "IpAlgStrategy.hpp" #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" namespace Ipopt { /** Base class for all methods for initializing the iterates. */ class IterateInitializer: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ IterateInitializer() {} /** Default destructor */ virtual ~IterateInitializer() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Compute the initial iterates and set the into the curr field * of the ip_data object. */ virtual bool SetInitialIterates() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ IterateInitializer(const IterateInitializer&); /** Overloaded Equals Operator */ void operator=(const IterateInitializer&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/Makefile.in0000644000076600007660000010660312156624616017245 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ #if COIN_HAS_MUMPS # AM_CPPFLAGS += $(MUMPS_CFLAGS) #endif @COIN_HAS_HSL_TRUE@am__append_1 = $(HSL_CFLAGS) subdir = src/Algorithm DIST_COMMON = $(includeipopt_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libipoptalg_la_LIBADD = am_libipoptalg_la_OBJECTS = IpAdaptiveMuUpdate.lo IpAlgBuilder.lo \ IpAlgorithmRegOp.lo IpAugRestoSystemSolver.lo \ IpBacktrackingLineSearch.lo IpDefaultIterateInitializer.lo \ IpEquilibrationScaling.lo IpExactHessianUpdater.lo IpFilter.lo \ IpFilterLSAcceptor.lo IpGenAugSystemSolver.lo \ IpGradientScaling.lo IpIpoptAlg.lo \ IpIpoptCalculatedQuantities.lo IpIpoptData.lo \ IpIteratesVector.lo IpLeastSquareMults.lo \ IpLimMemQuasiNewtonUpdater.lo IpLoqoMuOracle.lo \ IpLowRankAugSystemSolver.lo IpLowRankSSAugSystemSolver.lo \ IpMonotoneMuUpdate.lo IpNLPBoundsRemover.lo IpNLPScaling.lo \ IpOptErrorConvCheck.lo IpOrigIpoptNLP.lo \ IpOrigIterationOutput.lo IpPDFullSpaceSolver.lo \ IpPDPerturbationHandler.lo IpPDSearchDirCalc.lo \ IpPenaltyLSAcceptor.lo IpProbingMuOracle.lo \ IpQualityFunctionMuOracle.lo IpRestoConvCheck.lo \ IpRestoFilterConvCheck.lo IpRestoIpoptNLP.lo \ IpRestoIterateInitializer.lo IpRestoIterationOutput.lo \ IpRestoMinC_1Nrm.lo IpRestoPenaltyConvCheck.lo \ IpRestoRestoPhase.lo IpStdAugSystemSolver.lo \ IpTimingStatistics.lo IpUserScaling.lo \ IpWarmStartIterateInitializer.lo libipoptalg_la_OBJECTS = $(am_libipoptalg_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libipoptalg_la_SOURCES) DIST_SOURCES = $(libipoptalg_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(includeipoptdir)" includeipoptHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(includeipopt_HEADERS) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign SUBDIRS = LinearSolvers Inexact includeipoptdir = $(includedir)/coin includeipopt_HEADERS = IpIpoptCalculatedQuantities.hpp \ IpIpoptData.hpp IpIteratesVector.hpp IpTimingStatistics.hpp \ IpIpoptNLP.hpp IpOrigIpoptNLP.hpp IpNLPScaling.hpp noinst_LTLIBRARIES = libipoptalg.la libipoptalg_la_SOURCES = \ IpAdaptiveMuUpdate.cpp IpAdaptiveMuUpdate.hpp \ IpAlgBuilder.cpp IpAlgBuilder.hpp \ IpAlgorithmRegOp.cpp IpAlgorithmRegOp.hpp \ IpAlgStrategy.hpp \ IpAugRestoSystemSolver.cpp IpAugRestoSystemSolver.hpp \ IpAugSystemSolver.hpp \ IpBacktrackingLSAcceptor.hpp \ IpBacktrackingLineSearch.cpp IpBacktrackingLineSearch.hpp \ IpConvCheck.hpp \ IpDefaultIterateInitializer.cpp IpDefaultIterateInitializer.hpp \ IpEqMultCalculator.hpp \ IpEquilibrationScaling.cpp IpEquilibrationScaling.hpp \ IpExactHessianUpdater.cpp IpExactHessianUpdater.hpp \ IpFilter.cpp IpFilter.hpp \ IpFilterLSAcceptor.cpp IpFilterLSAcceptor.hpp \ IpGenAugSystemSolver.cpp IpGenAugSystemSolver.hpp \ IpGradientScaling.cpp IpGradientScaling.hpp \ IpHessianUpdater.hpp \ IpIpoptAlg.cpp IpIpoptAlg.hpp \ IpIpoptCalculatedQuantities.cpp IpIpoptCalculatedQuantities.hpp \ IpIpoptData.cpp IpIpoptData.hpp \ IpIpoptNLP.hpp \ IpIterateInitializer.hpp \ IpIteratesVector.cpp IpIteratesVector.hpp \ IpIterationOutput.hpp \ IpLeastSquareMults.cpp IpLeastSquareMults.hpp \ IpLimMemQuasiNewtonUpdater.cpp IpLimMemQuasiNewtonUpdater.hpp \ IpLineSearch.hpp \ IpLoqoMuOracle.cpp IpLoqoMuOracle.hpp \ IpLowRankAugSystemSolver.cpp IpLowRankAugSystemSolver.hpp \ IpLowRankSSAugSystemSolver.cpp IpLowRankSSAugSystemSolver.hpp \ IpMonotoneMuUpdate.cpp IpMonotoneMuUpdate.hpp \ IpMuOracle.hpp \ IpMuUpdate.hpp \ IpNLPBoundsRemover.cpp IpNLPBoundsRemover.hpp \ IpNLPScaling.cpp IpNLPScaling.hpp \ IpOptErrorConvCheck.cpp IpOptErrorConvCheck.hpp \ IpOrigIpoptNLP.cpp IpOrigIpoptNLP.hpp \ IpOrigIterationOutput.cpp IpOrigIterationOutput.hpp \ IpPDFullSpaceSolver.cpp IpPDFullSpaceSolver.hpp \ IpPDPerturbationHandler.cpp IpPDPerturbationHandler.hpp \ IpPDSearchDirCalc.cpp IpPDSearchDirCalc.hpp \ IpPDSystemSolver.hpp \ IpPenaltyLSAcceptor.cpp IpPenaltyLSAcceptor.hpp \ IpProbingMuOracle.cpp IpProbingMuOracle.hpp \ IpQualityFunctionMuOracle.cpp IpQualityFunctionMuOracle.hpp \ IpRestoConvCheck.cpp IpRestoConvCheck.hpp \ IpRestoFilterConvCheck.cpp IpRestoFilterConvCheck.hpp \ IpRestoIpoptNLP.cpp IpRestoIpoptNLP.hpp \ IpRestoIterateInitializer.cpp IpRestoIterateInitializer.hpp \ IpRestoIterationOutput.cpp IpRestoIterationOutput.hpp \ IpRestoMinC_1Nrm.cpp IpRestoMinC_1Nrm.hpp \ IpRestoPenaltyConvCheck.cpp IpRestoPenaltyConvCheck.hpp \ IpRestoPhase.hpp \ IpRestoRestoPhase.cpp IpRestoRestoPhase.hpp \ IpSearchDirCalculator.hpp \ IpStdAugSystemSolver.cpp IpStdAugSystemSolver.hpp \ IpTimingStatistics.cpp IpTimingStatistics.hpp \ IpUserScaling.cpp IpUserScaling.hpp \ IpWarmStartIterateInitializer.cpp IpWarmStartIterateInitializer.hpp libipoptalg_la_LDFLAGS = $(LT_LDFLAGS) AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../Common` -I`$(CYGPATH_W) \ $(srcdir)/../LinAlg` -I`$(CYGPATH_W) \ $(srcdir)/../LinAlg/TMatrices` -I`$(CYGPATH_W) \ $(srcdir)/../Interfaces` -I`$(CYGPATH_W) \ $(srcdir)/LinearSolvers` -I`$(CYGPATH_W) \ $(srcdir)/../contrib/CGPenalty` -I`$(CYGPATH_W) \ $(srcdir)/../contrib/LinearSolverLoader` $(am__append_1) # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ IpAdaptiveMuUpdate.cppbak IpAdaptiveMuUpdate.hppbak \ IpAlgBuilder.cppbak IpAlgBuilder.hppbak \ IpAlgorithmRegOp.cppbak IpAlgorithmRegOp.hppbak \ IpAlgStrategy.hppbak \ IpAugRestoSystemSolver.cppbak IpAugRestoSystemSolver.hppbak \ IpAugSystemSolver.hppbak \ IpBacktrackingLSAcceptor.hppbak \ IpBacktrackingLineSearch.cppbak IpBacktrackingLineSearch.hppbak \ IpConvCheck.hppbak \ IpDefaultIterateInitializer.cppbak IpDefaultIterateInitializer.hppbak \ IpEqMultCalculator.hppbak \ IpEquilibrationScaling.cppbak IpEquilibrationScaling.hppbak \ IpExactHessianUpdater.cppbak IpExactHessianUpdater.hppbak \ IpFilter.cppbak IpFilter.hppbak \ IpFilterLSAcceptor.cppbak IpFilterLSAcceptor.hppbak \ IpGenAugSystemSolver.cppbak IpGenAugSystemSolver.hppbak \ IpGradientScaling.cppbak IpGradientScaling.hppbak \ IpHessianUpdater.hppbak \ IpIpoptAlg.cppbak IpIpoptAlg.hppbak \ IpIpoptCalculatedQuantities.cppbak IpIpoptCalculatedQuantities.hppbak \ IpIpoptData.cppbak IpIpoptData.hppbak \ IpIpoptNLP.hppbak \ IpIterateInitializer.hppbak \ IpIteratesVector.cppbak IpIteratesVector.hppbak \ IpIterationOutput.hppbak \ IpLeastSquareMults.cppbak IpLeastSquareMults.hppbak \ IpLimMemQuasiNewtonUpdater.cppbak IpLimMemQuasiNewtonUpdater.hppbak \ IpLineSearch.hppbak \ IpLoqoMuOracle.cppbak IpLoqoMuOracle.hppbak \ IpLowRankAugSystemSolver.cppbak IpLowRankAugSystemSolver.cppbak \ IpLowRankSSAugSystemSolver.cppbak IpLowRankSSAugSystemSolver.cppbak \ IpMonotoneMuUpdate.cppbak IpMonotoneMuUpdate.hppbak \ IpMuOracle.hppbak \ IpMuUpdate.hppbak \ IpNLPBoundsRemover.cppbak IpNLPBoundsRemover.hppbak \ IpNLPScaling.cppbak IpNLPScaling.hppbak \ IpOptErrorConvCheck.cppbak IpOptErrorConvCheck.hppbak \ IpOrigIpoptNLP.cppbak IpOrigIpoptNLP.hppbak \ IpOrigIterationOutput.cppbak IpOrigIterationOutput.hppbak \ IpPDFullSpaceSolver.cppbak IpPDFullSpaceSolver.hppbak \ IpPDPerturbationHandler.cppbak IpPDPerturbationHandler.hppbak \ IpPDSearchDirCalc.cppbak IpPDSearchDirCalc.hppbak \ IpPDSystemSolver.hppbak \ IpProbingMuOracle.cppbak IpProbingMuOracle.hppbak \ IpQualityFunctionMuOracle.cppbak IpQualityFunctionMuOracle.hppbak \ IpRestoConvCheck.cppbak IpRestoConvCheck.hppbak \ IpRestoFilterConvCheck.cppbak IpRestoFilterConvCheck.hppbak \ IpRestoIpoptNLP.cppbak IpRestoIpoptNLP.hppbak \ IpRestoIterateInitializer.cppbak IpRestoIterateInitializer.hppbak \ IpRestoIterationOutput.cppbak IpRestoIterationOutput.hppbak \ IpRestoMinC_1Nrm.cppbak IpRestoMinC_1Nrm.hppbak \ IpRestoPenaltyConvCheck.cppbak IpRestoPenaltyConvCheck.hppbak \ IpRestoPhase.hppbak \ IpRestoRestoPhase.cppbak IpRestoRestoPhase.hppbak \ IpSearchDirCalculator.hppbak \ IpStdAugSystemSolver.cppbak IpStdAugSystemSolver.hppbak \ IpTimingStatistics.cppbak IpTimingStatistics.hppbak \ IpUserScaling.cppbak IpUserScaling.hppbak \ IpWarmStartIterateInitializer.cppbak IpWarmStartIterateInitializer.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-recursive .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Algorithm/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Algorithm/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libipoptalg.la: $(libipoptalg_la_OBJECTS) $(libipoptalg_la_DEPENDENCIES) $(CXXLINK) $(libipoptalg_la_LDFLAGS) $(libipoptalg_la_OBJECTS) $(libipoptalg_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpAdaptiveMuUpdate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpAlgBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpAlgorithmRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpAugRestoSystemSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpBacktrackingLineSearch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpDefaultIterateInitializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpEquilibrationScaling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpExactHessianUpdater.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpFilterLSAcceptor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpGenAugSystemSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpGradientScaling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIpoptAlg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIpoptCalculatedQuantities.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIpoptData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpIteratesVector.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLeastSquareMults.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLimMemQuasiNewtonUpdater.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLoqoMuOracle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLowRankAugSystemSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpLowRankSSAugSystemSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpMonotoneMuUpdate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpNLPBoundsRemover.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpNLPScaling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpOptErrorConvCheck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpOrigIpoptNLP.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpOrigIterationOutput.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPDFullSpaceSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPDPerturbationHandler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPDSearchDirCalc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpPenaltyLSAcceptor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpProbingMuOracle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpQualityFunctionMuOracle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoConvCheck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoFilterConvCheck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoIpoptNLP.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoIterateInitializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoIterationOutput.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoMinC_1Nrm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoPenaltyConvCheck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpRestoRestoPhase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpStdAugSystemSolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpTimingStatistics.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpUserScaling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IpWarmStartIterateInitializer.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeipoptHEADERS: $(includeipopt_HEADERS) @$(NORMAL_INSTALL) test -z "$(includeipoptdir)" || $(mkdir_p) "$(DESTDIR)$(includeipoptdir)" @list='$(includeipopt_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeipoptHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includeipoptdir)/$$f'"; \ $(includeipoptHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includeipoptdir)/$$f"; \ done uninstall-includeipoptHEADERS: @$(NORMAL_UNINSTALL) @list='$(includeipopt_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includeipoptdir)/$$f'"; \ rm -f "$(DESTDIR)$(includeipoptdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(includeipoptdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-includeipoptHEADERS install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-includeipoptHEADERS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-generic clean-libtool clean-noinstLTLIBRARIES \ clean-recursive ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am \ install-includeipoptHEADERS install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-includeipoptHEADERS uninstall-info-am astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIterateInitializer.cpp0000644000076600007660000001773511504216567023020 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIterateInitializer.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-10-12 #include "IpRestoIterateInitializer.hpp" #include "IpRestoIpoptNLP.hpp" #include "IpDefaultIterateInitializer.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoIterateInitializer::RestoIterateInitializer (const SmartPtr& resto_eq_mult_calculator) : IterateInitializer(), resto_eq_mult_calculator_(resto_eq_mult_calculator) {} bool RestoIterateInitializer::InitializeImpl(const OptionsList& options, const std::string& prefix) { if (!options.GetNumericValue("constr_mult_init_max", constr_mult_init_max_, prefix)) { // By default, we want to set this to zero. Seems to work better // as initialization for the restoration phase constr_mult_init_max_ = 0.; } bool retvalue = true; if (IsValid(resto_eq_mult_calculator_)) { retvalue = resto_eq_mult_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retvalue; } bool RestoIterateInitializer::SetInitialIterates() { DBG_START_METH("RestoIterateInitializer::SetInitialIterates", dbg_verbosity); // Get a grip on the restoration phase NLP and obtain the pointers // to the original NLP data SmartPtr resto_ip_nlp = static_cast (&IpNLP()); SmartPtr orig_ip_nlp = static_cast (&resto_ip_nlp->OrigIpNLP()); SmartPtr orig_ip_data = static_cast (&resto_ip_nlp->OrigIpData()); SmartPtr orig_ip_cq = static_cast (&resto_ip_nlp->OrigIpCq()); // Set the value of the barrier parameter Number resto_mu; resto_mu = Max(orig_ip_data->curr_mu(), orig_ip_cq->curr_c()->Amax(), orig_ip_cq->curr_d_minus_s()->Amax()); IpData().Set_mu(resto_mu); Jnlst().Printf(J_DETAILED, J_INITIALIZATION, "Initial barrier parameter resto_mu = %e\n", resto_mu); ///////////////////////////////////////////////////////////////////// // Initialize primal varialbes // ///////////////////////////////////////////////////////////////////// // initialize the data structures in the restoration phase NLP IpData().InitializeDataStructures(IpNLP(), false, false, false, false, false); SmartPtr new_x = IpData().curr()->x()->MakeNew(); SmartPtr Cnew_x = static_cast (GetRawPtr(new_x)); // Set the trial x variables from the original NLP Cnew_x->GetCompNonConst(0)->Copy(*orig_ip_data->curr()->x()); // Compute the initial values for the n and p variables for the // equality constraints Number rho = resto_ip_nlp->Rho(); DBG_PRINT((1,"rho = %e\n", rho)); SmartPtr nc = Cnew_x->GetCompNonConst(1); SmartPtr pc = Cnew_x->GetCompNonConst(2); SmartPtr cvec = orig_ip_cq->curr_c(); DBG_PRINT_VECTOR(2, "cvec", *cvec); SmartPtr a = nc->MakeNew(); SmartPtr b = nc->MakeNew(); a->Set(resto_mu/(2.*rho)); a->Axpy(-0.5, *cvec); b->Copy(*cvec); b->Scal(resto_mu/(2.*rho)); DBG_PRINT_VECTOR(2, "a", *a); DBG_PRINT_VECTOR(2, "b", *b); solve_quadratic(*a, *b, *nc); pc->Copy(*cvec); pc->Axpy(1., *nc); DBG_PRINT_VECTOR(2, "nc", *nc); DBG_PRINT_VECTOR(2, "pc", *pc); // initial values for the n and p variables for the inequality // constraints SmartPtr nd = Cnew_x->GetCompNonConst(3); SmartPtr pd = Cnew_x->GetCompNonConst(4); cvec = orig_ip_cq->curr_d_minus_s(); a = nd->MakeNew(); b = nd->MakeNew(); a->Set(resto_mu/(2.*rho)); a->Axpy(-0.5, *cvec); b->Copy(*cvec); b->Scal(resto_mu/(2.*rho)); solve_quadratic(*a, *b, *nd); pd->Copy(*cvec); pd->Axpy(1., *nd); DBG_PRINT_VECTOR(2, "nd", *nd); DBG_PRINT_VECTOR(2, "pd", *pd); // Leave the slacks unchanged SmartPtr new_s = orig_ip_data->curr()->s(); // Now set the primal trial variables DBG_PRINT_VECTOR(2,"new_s",*new_s); DBG_PRINT_VECTOR(2,"new_x",*new_x); SmartPtr trial = IpData().curr()->MakeNewContainer(); trial->Set_primal(*new_x, *new_s); IpData().set_trial(trial); DBG_PRINT_VECTOR(2, "resto_c", *IpCq().trial_c()); DBG_PRINT_VECTOR(2, "resto_d_minus_s", *IpCq().trial_d_minus_s()); ///////////////////////////////////////////////////////////////////// // Initialize bound multipliers // ///////////////////////////////////////////////////////////////////// SmartPtr new_z_L = IpData().curr()->z_L()->MakeNew(); SmartPtr Cnew_z_L = static_cast (GetRawPtr(new_z_L)); DBG_ASSERT(IsValid(Cnew_z_L)); SmartPtr new_z_U = IpData().curr()->z_U()->MakeNew(); SmartPtr new_v_L = IpData().curr()->v_L()->MakeNew(); SmartPtr new_v_U = IpData().curr()->v_U()->MakeNew(); // multipliers for the original bounds are SmartPtr orig_z_L = orig_ip_data->curr()->z_L(); SmartPtr orig_z_U = orig_ip_data->curr()->z_U(); SmartPtr orig_v_L = orig_ip_data->curr()->v_L(); SmartPtr orig_v_U = orig_ip_data->curr()->v_U(); // Set the new multipliers to the min of the penalty parameter Rho // and their current value SmartPtr Cnew_z_L0 = Cnew_z_L->GetCompNonConst(0); Cnew_z_L0->Set(rho); Cnew_z_L0->ElementWiseMin(*orig_z_L); new_z_U->Set(rho); new_z_U->ElementWiseMin(*orig_z_U); new_v_L->Set(rho); new_v_L->ElementWiseMin(*orig_v_L); new_v_U->Set(rho); new_v_U->ElementWiseMin(*orig_v_U); // Set the multipliers for the p and n bounds to the "primal" multipliers SmartPtr Cnew_z_L1 = Cnew_z_L->GetCompNonConst(1); Cnew_z_L1->Set(resto_mu); Cnew_z_L1->ElementWiseDivide(*nc); SmartPtr Cnew_z_L2 = Cnew_z_L->GetCompNonConst(2); Cnew_z_L2->Set(resto_mu); Cnew_z_L2->ElementWiseDivide(*pc); SmartPtr Cnew_z_L3 = Cnew_z_L->GetCompNonConst(3); Cnew_z_L3->Set(resto_mu); Cnew_z_L3->ElementWiseDivide(*nd); SmartPtr Cnew_z_L4 = Cnew_z_L->GetCompNonConst(4); Cnew_z_L4->Set(resto_mu); Cnew_z_L4->ElementWiseDivide(*pd); // Set those initial values to be the trial values in Data trial = IpData().trial()->MakeNewContainer(); trial->Set_bound_mult(*new_z_L, *new_z_U, *new_v_L, *new_v_U); IpData().set_trial(trial); ///////////////////////////////////////////////////////////////////// // Initialize equality constraint multipliers // ///////////////////////////////////////////////////////////////////// DefaultIterateInitializer::least_square_mults( Jnlst(), IpNLP(), IpData(), IpCq(), resto_eq_mult_calculator_, constr_mult_init_max_); // upgrade the trial to the current point IpData().AcceptTrialPoint(); DBG_PRINT_VECTOR(2, "y_c", *IpData().curr()->y_c()); DBG_PRINT_VECTOR(2, "y_d", *IpData().curr()->y_d()); DBG_PRINT_VECTOR(2, "z_L", *IpData().curr()->z_L()); DBG_PRINT_VECTOR(2, "z_U", *IpData().curr()->z_U()); DBG_PRINT_VECTOR(2, "v_L", *IpData().curr()->v_L()); DBG_PRINT_VECTOR(2, "v_U", *IpData().curr()->v_U()); return true; } void RestoIterateInitializer::solve_quadratic(const Vector& a, const Vector& b, Vector& v) { v.Copy(a); v.ElementWiseMultiply(a); v.Axpy(1., b); v.ElementWiseSqrt(); v.Axpy(1., a); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpConvCheck.hpp0000644000076600007660000000463211504216567020042 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPCONVCHECK_HPP__ #define __IPCONVCHECK_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Base class for checking the algorithm * termination criteria. */ class ConvergenceCheck : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ ConvergenceCheck() {} /** Default destructor */ virtual ~ConvergenceCheck() {} //@} /** Convergence return enum */ enum ConvergenceStatus { CONTINUE, CONVERGED, CONVERGED_TO_ACCEPTABLE_POINT, MAXITER_EXCEEDED, CPUTIME_EXCEEDED, DIVERGING, USER_STOP, FAILED }; /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Pure virtual method for performing the convergence test. If * call_intermediate_callback is true, the user callback method * in the NLP should be called in order to see if the user * requests an early termination. */ virtual ConvergenceStatus CheckConvergence(bool call_intermediate_callback = true) = 0; /** Method for testing if the current iterate is considered to * satisfy the "accptable level" of accuracy. The idea is that * if the desired convergence tolerance cannot be achieved, the * algorithm might stop after a number of acceptable points have * been encountered. */ virtual bool CurrentIsAcceptable()=0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ // ConvergenceCheck(); /** Copy Constructor */ ConvergenceCheck(const ConvergenceCheck&); /** Overloaded Equals Operator */ void operator=(const ConvergenceCheck&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpOrigIterationOutput.cpp0000644000076600007660000003217612116344132022164 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOrigIterationOutput.cpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #include "IpOrigIterationOutput.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { OrigIterationOutput::OrigIterationOutput() {} OrigIterationOutput::~OrigIterationOutput() {} void OrigIterationOutput::RegisterOptions(SmartPtr roptions) { std::string prev_cat = roptions->RegisteringCategory(); roptions->SetRegisteringCategory("Output"); roptions->AddStringOption2( "print_info_string", "Enables printing of additional info string at end of iteration output.", "no", "no", "don't print string", "yes", "print string at end of each iteration output", "This string contains some insider information about the current " "iteration. For details, look for \"Diagnostic Tags\" in the Ipopt " "documentation."); roptions->AddStringOption2( "inf_pr_output", "Determines what value is printed in the \"inf_pr\" output column.", "original", "internal", "max-norm of violation of internal equality constraints", "original", "maximal constraint violation in original NLP", "Ipopt works with a reformulation of the original problem, where slacks " "are introduced and the problem might have been scaled. The choice " "\"internal\" prints out the constraint violation of this formulation. " "With \"original\" the true constraint violation in the original NLP is " "printed."); roptions->AddLowerBoundedIntegerOption( "print_frequency_iter", "Determines at which iteration frequency the summarizing iteration output line should be printed.", 1, 1, "Summarizing iteration output is printed every print_frequency_iter iterations, " "if at least print_frequency_time seconds have passed since last output."); roptions->AddLowerBoundedNumberOption( "print_frequency_time", "Determines at which time frequency the summarizing iteration output line should be printed.", 0.0, false, 0.0, "Summarizing iteration output is printed if at least print_frequency_time seconds have " "passed since last output and the iteration number is a multiple of print_frequency_iter."); roptions->SetRegisteringCategory(prev_cat); } bool OrigIterationOutput::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("print_info_string", print_info_string_, prefix); Index enum_int; options.GetEnumValue("inf_pr_output", enum_int, prefix); inf_pr_output_ = InfPrOutput(enum_int); options.GetIntegerValue("print_frequency_iter", print_frequency_iter_, prefix); options.GetNumericValue("print_frequency_time", print_frequency_time_, prefix); return true; } void OrigIterationOutput::WriteOutput() { ////////////////////////////////////////////////////////////////////// // First print the summary line for the iteration // ////////////////////////////////////////////////////////////////////// Index iter = IpData().iter_count(); std::string header = "iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n"; Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Summary of Iteration: %d:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); if (IpData().info_iters_since_header() >= 10 && !IpData().info_skip_output()) { // output the header Jnlst().Printf(J_ITERSUMMARY, J_MAIN, header.c_str()); IpData().Set_info_iters_since_header(0); } else { Jnlst().Printf(J_DETAILED, J_MAIN, header.c_str()); } Number inf_pr = 0.0; switch (inf_pr_output_) { case INTERNAL: inf_pr = IpCq().curr_primal_infeasibility(NORM_MAX); break; case ORIGINAL: inf_pr = IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX); break; } Number inf_du = IpCq().curr_dual_infeasibility(NORM_MAX); Number mu = IpData().curr_mu(); Number dnrm; if (IsValid(IpData().delta()) && IsValid(IpData().delta()->x()) && IsValid(IpData().delta()->s())) { dnrm = Max(IpData().delta()->x()->Amax(), IpData().delta()->s()->Amax()); } else { // This is the first iteration - no search direction has been // computed yet. dnrm = 0.; } Number unscaled_f = IpCq().unscaled_curr_f(); // Retrieve some information set in the different parts of the algorithm char info_iter=' '; Number alpha_primal = IpData().info_alpha_primal(); char alpha_primal_char = IpData().info_alpha_primal_char(); Number alpha_dual = IpData().info_alpha_dual(); Number regu_x = IpData().info_regu_x(); char regu_x_buf[8]; char dashes[]=" - "; char *regu_x_ptr; if (regu_x==.0) { regu_x_ptr = dashes; } else { Snprintf(regu_x_buf, 7, "%5.1f", log10(regu_x)); regu_x_ptr = regu_x_buf; } Index ls_count = IpData().info_ls_count(); const std::string info_string = IpData().info_string(); Number current_time = 0.0; Number last_output = IpData().info_last_output(); if (!IpData().info_skip_output() && (iter % print_frequency_iter_) == 0 && (print_frequency_time_ == 0.0 || last_output < (current_time = WallclockTime()) - print_frequency_time_ || last_output < 0.0) ) { Jnlst().Printf(J_ITERSUMMARY, J_MAIN, "%4d%c%14.7e %7.2e %7.2e %5.1f %7.2e %5s %7.2e %7.2e%c%3d", iter, info_iter, unscaled_f, inf_pr, inf_du, log10(mu), dnrm, regu_x_ptr, alpha_dual, alpha_primal, alpha_primal_char, ls_count); if (print_info_string_) { Jnlst().Printf(J_ITERSUMMARY, J_MAIN, " %s", info_string.c_str()); } else { Jnlst().Printf(J_DETAILED, J_MAIN, " %s", info_string.c_str()); } Jnlst().Printf(J_ITERSUMMARY, J_MAIN, "\n"); IpData().Set_info_last_output(current_time); IpData().Inc_info_iters_since_header(); } ////////////////////////////////////////////////////////////////////// // Now if desired more detail on the iterates // ////////////////////////////////////////////////////////////////////// if (Jnlst().ProduceOutput(J_DETAILED, J_MAIN)) { Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "*** Beginning Iteration %d from the following point:", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n**************************************************\n\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "Current barrier parameter mu = %21.16e\n", IpData().curr_mu()); Jnlst().Printf(J_DETAILED, J_MAIN, "Current fraction-to-the-boundary parameter tau = %21.16e\n\n", IpData().curr_tau()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_x||_inf = %.16e\n", IpData().curr()->x()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_s||_inf = %.16e\n", IpData().curr()->s()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_y_c||_inf = %.16e\n", IpData().curr()->y_c()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_y_d||_inf = %.16e\n", IpData().curr()->y_d()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_z_L||_inf = %.16e\n", IpData().curr()->z_L()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_z_U||_inf = %.16e\n", IpData().curr()->z_U()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_v_L||_inf = %.16e\n", IpData().curr()->v_L()->Amax()); Jnlst().Printf(J_DETAILED, J_MAIN, "||curr_v_U||_inf = %.16e\n", IpData().curr()->v_U()->Amax()); } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_MAIN)) { if (IsValid(IpData().delta())) { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "\n||delta_x||_inf = %.16e\n", IpData().delta()->x()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_s||_inf = %.16e\n", IpData().delta()->s()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_y_c||_inf = %.16e\n", IpData().delta()->y_c()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_y_d||_inf = %.16e\n", IpData().delta()->y_d()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_z_L||_inf = %.16e\n", IpData().delta()->z_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_z_U||_inf = %.16e\n", IpData().delta()->z_U()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_v_L||_inf = %.16e\n", IpData().delta()->v_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_MAIN, "||delta_v_U||_inf = %.16e\n", IpData().delta()->v_U()->Amax()); } else { Jnlst().Printf(J_MOREDETAILED, J_MAIN, "\nNo search direction has been computed yet.\n"); } } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpData().curr()->x()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_x"); IpData().curr()->s()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_s"); IpData().curr()->y_c()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_y_c"); IpData().curr()->y_d()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_y_d"); IpCq().curr_slack_x_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_x_L"); IpCq().curr_slack_x_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_x_U"); IpData().curr()->z_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_z_L"); IpData().curr()->z_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_z_U"); IpCq().curr_slack_s_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_s_L"); IpCq().curr_slack_s_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_slack_s_U"); IpData().curr()->v_L()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_v_L"); IpData().curr()->v_U()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_v_U"); } if (Jnlst().ProduceOutput(J_MOREVECTOR, J_MAIN)) { IpCq().curr_grad_lag_x()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "curr_grad_lag_x"); IpCq().curr_grad_lag_s()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "curr_grad_lag_s"); if (IsValid(IpData().delta())) { IpData().delta()->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "delta"); } } if (Jnlst().ProduceOutput(J_DETAILED, J_MAIN)) { Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n***Current NLP Values for Iteration %d:\n", IpData().iter_count()); Jnlst().Printf(J_DETAILED, J_MAIN, "\n (scaled) (unscaled)\n"); Jnlst().Printf(J_DETAILED, J_MAIN, "Objective...............: %24.16e %24.16e\n", IpCq().curr_f(), IpCq().unscaled_curr_f()); Jnlst().Printf(J_DETAILED, J_MAIN, "Dual infeasibility......: %24.16e %24.16e\n", IpCq().curr_dual_infeasibility(NORM_MAX), IpCq().unscaled_curr_dual_infeasibility(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Constraint violation....: %24.16e %24.16e\n", IpCq().curr_nlp_constraint_violation(NORM_MAX), IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Complementarity.........: %24.16e %24.16e\n", IpCq().curr_complementarity(0., NORM_MAX), IpCq().unscaled_curr_complementarity(0., NORM_MAX)); Jnlst().Printf(J_DETAILED, J_MAIN, "Overall NLP error.......: %24.16e %24.16e\n\n", IpCq().curr_nlp_error(), IpCq().unscaled_curr_nlp_error()); } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { IpCq().curr_grad_f()->Print(Jnlst(), J_VECTOR, J_MAIN, "grad_f"); IpCq().curr_c()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_c"); IpCq().curr_d()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_d"); IpCq().curr_d_minus_s()->Print(Jnlst(), J_VECTOR, J_MAIN, "curr_d - curr_s"); } if (Jnlst().ProduceOutput(J_MATRIX, J_MAIN)) { IpCq().curr_jac_c()->Print(Jnlst(), J_MATRIX, J_MAIN, "jac_c"); IpCq().curr_jac_d()->Print(Jnlst(), J_MATRIX, J_MAIN, "jac_d"); if (IsValid(IpData().W())) { IpData().W()->Print(Jnlst(), J_MATRIX, J_MAIN, "W"); } } Jnlst().Printf(J_DETAILED, J_MAIN, "\n\n"); Jnlst().FlushBuffer(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpFilter.cpp0000644000076600007660000000661611504216567017423 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpFilter.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpFilter.hpp" #include "IpJournalist.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif /////////////////////////////////////////////////////////////////////////// // Filter entries // /////////////////////////////////////////////////////////////////////////// FilterEntry::FilterEntry(std::vector vals, Index iter) : vals_(vals), iter_(iter) {} FilterEntry::~FilterEntry() {} /////////////////////////////////////////////////////////////////////////// // Filter // /////////////////////////////////////////////////////////////////////////// Filter::Filter(Index dim) : dim_(dim) {} bool Filter::Acceptable(std::vector vals) const { DBG_START_METH("FilterLineSearch::Filter::Acceptable", dbg_verbosity); DBG_ASSERT((Index)vals.size()==dim_); bool acceptable = true; std::list::iterator iter; for (iter = filter_list_.begin(); iter != filter_list_.end(); iter++) { if (!(*iter)->Acceptable(vals)) { acceptable = false; break; } } return acceptable; } void Filter::AddEntry(std::vector vals, Index iteration) { DBG_START_METH("FilterLineSearch::Filter::AddEntry", dbg_verbosity); DBG_ASSERT((Index)vals.size()==dim_); std::list::iterator iter; iter = filter_list_.begin(); while (iter != filter_list_.end()) { if ((*iter)->Dominated(vals)) { std::list::iterator iter_to_remove = iter; iter++; FilterEntry* entry_to_remove = *iter_to_remove; filter_list_.erase(iter_to_remove); delete entry_to_remove; } else { iter++; } } FilterEntry* new_entry = new FilterEntry(vals, iteration); filter_list_.push_back(new_entry); } void Filter::Clear() { DBG_START_METH("FilterLineSearch::Filter::Clear", dbg_verbosity); while (!filter_list_.empty()) { FilterEntry* entry = filter_list_.back(); filter_list_.pop_back(); delete entry; } } void Filter::Print(const Journalist& jnlst) { DBG_START_METH("FilterLineSearch::Filter::Print", dbg_verbosity); jnlst.Printf(J_DETAILED, J_LINE_SEARCH, "The current filter has %d entries.\n", filter_list_.size()); if (!jnlst.ProduceOutput(J_VECTOR, J_LINE_SEARCH)) { return; } std::list::iterator iter; Index count = 0; for (iter = filter_list_.begin(); iter != filter_list_.end(); iter++) { if (count % 10 == 0) { jnlst.Printf(J_VECTOR, J_LINE_SEARCH, " phi theta iter\n"); } count++; jnlst.Printf(J_VECTOR, J_LINE_SEARCH, "%5d ", count); for (Index i=0; ival(i)); } jnlst.Printf(J_VECTOR, J_LINE_SEARCH, "%5d\n",(*iter)->iter()); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDPerturbationHandler.cpp0000644000076600007660000004110211504216567022363 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDPerturbationHandler.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-04 #include "IpPDPerturbationHandler.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PDPerturbationHandler::PDPerturbationHandler() : reset_last_(false), degen_iters_max_(3) {} void PDPerturbationHandler::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "max_hessian_perturbation", "Maximum value of regularization parameter for handling negative curvature.", 0, true, 1e20, "In order to guarantee that the search directions are indeed proper " "descent directions, Ipopt requires that the inertia of the " "(augmented) linear system for the step computation has the " "correct number of negative and positive eigenvalues. The idea " "is that this guides the algorithm away from maximizers and makes " "Ipopt more likely converge to first order optimal points that " "are minimizers. If the inertia is not correct, a multiple of the " "identity matrix is added to the Hessian of the Lagrangian in the " "augmented system. This parameter gives the maximum value of the " "regularization parameter. If a regularization of that size is " "not enough, the algorithm skips this iteration and goes to the " "restoration phase. (This is delta_w^max in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "min_hessian_perturbation", "Smallest perturbation of the Hessian block.", 0., false, 1e-20, "The size of the perturbation of the Hessian block is never selected " "smaller than this value, unless no perturbation is necessary. (This " "is delta_w^min in implementation paper.)"); roptions->AddLowerBoundedNumberOption( "perturb_inc_fact_first", "Increase factor for x-s perturbation for very first perturbation.", 1., true, 100., "The factor by which the perturbation is increased when a trial value " "was not sufficient - this value is used for the computation of the " "very first perturbation and allows a different value for for the first " "perturbation than that used for the remaining perturbations. " "(This is bar_kappa_w^+ in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "perturb_inc_fact", "Increase factor for x-s perturbation.", 1., true, 8., "The factor by which the perturbation is increased when a trial value " "was not sufficient - this value is used for the computation of " "all perturbations except for the first. " "(This is kappa_w^+ in the implementation paper.)"); roptions->AddBoundedNumberOption( "perturb_dec_fact", "Decrease factor for x-s perturbation.", 0., true, 1., true, 1./3., "The factor by which the perturbation is decreased when a trial value " "is deduced from the size of the most recent successful perturbation. " "(This is kappa_w^- in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "first_hessian_perturbation", "Size of first x-s perturbation tried.", 0., true, 1e-4, "The first value tried for the x-s perturbation in the inertia " "correction scheme." "(This is delta_0 in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "jacobian_regularization_value", "Size of the regularization for rank-deficient constraint Jacobians.", 0., false, 1e-8, "(This is bar delta_c in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "jacobian_regularization_exponent", "Exponent for mu in the regularization for rank-deficient constraint Jacobians.", 0., false, 0.25, "(This is kappa_c in the implementation paper.)"); roptions->AddStringOption2( "perturb_always_cd", "Active permanent perturbation of constraint linearization.", "no", "no", "perturbation only used when required", "yes", "always use perturbation", "This options makes the delta_c and delta_d perturbation be used for " "the computation of every search direction. Usually, it is only used " "when the iteration matrix is singular."); } bool PDPerturbationHandler::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("max_hessian_perturbation", delta_xs_max_, prefix); options.GetNumericValue("min_hessian_perturbation", delta_xs_min_, prefix); options.GetNumericValue("perturb_inc_fact_first", delta_xs_first_inc_fact_, prefix); options.GetNumericValue("perturb_inc_fact", delta_xs_inc_fact_, prefix); options.GetNumericValue("perturb_dec_fact", delta_xs_dec_fact_, prefix); options.GetNumericValue("first_hessian_perturbation", delta_xs_init_, prefix); options.GetNumericValue("jacobian_regularization_value", delta_cd_val_, prefix); options.GetNumericValue("jacobian_regularization_exponent", delta_cd_exp_, prefix); options.GetBoolValue("perturb_always_cd", perturb_always_cd_, prefix); hess_degenerate_ = NOT_YET_DETERMINED; if (!perturb_always_cd_) { jac_degenerate_ = NOT_YET_DETERMINED; } else { jac_degenerate_ = NOT_DEGENERATE; } degen_iters_ = 0; delta_x_curr_ = 0.; delta_s_curr_ = 0.; delta_c_curr_ = 0.; delta_d_curr_ = 0.; delta_x_last_ = 0.; delta_s_last_ = 0.; delta_c_last_ = 0.; delta_d_last_ = 0.; test_status_ = NO_TEST; return true; } bool PDPerturbationHandler::ConsiderNewSystem(Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("PDPerturbationHandler::ConsiderNewSystem",dbg_verbosity); // Check if we can conclude that some components of the system are // structurally degenerate finalize_test(); // Store the perturbation from the previous matrix if (reset_last_) { delta_x_last_ = delta_x_curr_; delta_s_last_ = delta_s_curr_; delta_c_last_ = delta_c_curr_; delta_d_last_ = delta_d_curr_; } else { if (delta_x_curr_ > 0.) { delta_x_last_ = delta_x_curr_; } if (delta_s_curr_ > 0.) { delta_s_last_ = delta_s_curr_; } if (delta_c_curr_ > 0.) { delta_c_last_ = delta_c_curr_; } if (delta_d_curr_ > 0.) { delta_d_last_ = delta_d_curr_; } } DBG_ASSERT((hess_degenerate_ != NOT_YET_DETERMINED || jac_degenerate_ != DEGENERATE) && (jac_degenerate_ != NOT_YET_DETERMINED || hess_degenerate_ != DEGENERATE)); if (hess_degenerate_ == NOT_YET_DETERMINED || jac_degenerate_ == NOT_YET_DETERMINED) { if (!perturb_always_cd_) { test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_EQ_0; } else { test_status_ = TEST_DELTA_C_GT_0_DELTA_X_EQ_0; } } else { test_status_ = NO_TEST; } if (jac_degenerate_ == DEGENERATE) { delta_c = delta_c_curr_ = delta_cd(); IpData().Append_info_string("l"); } else if (perturb_always_cd_) { delta_c = delta_c_curr_ = delta_cd(); } else { delta_c = delta_c_curr_ = 0.; } delta_d = delta_d_curr_ = delta_c; if (hess_degenerate_ == DEGENERATE) { delta_x_curr_ = 0.; delta_s_curr_ = 0.; bool retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } } else { delta_x = 0.; delta_s = delta_x; } delta_x_curr_ = delta_x; delta_s_curr_ = delta_s; delta_c_curr_ = delta_c; delta_d_curr_ = delta_d; IpData().Set_info_regu_x(delta_x); get_deltas_for_wrong_inertia_called_ = false; return true; } bool PDPerturbationHandler::PerturbForSingularity( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("PDPerturbationHandler::PerturbForSingularity", dbg_verbosity); bool retval; // Check for structural degeneracy if (hess_degenerate_ == NOT_YET_DETERMINED || jac_degenerate_ == NOT_YET_DETERMINED) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Degeneracy test for hess_degenerate_ = %d and jac_degenerate_ = %d\n test_status_ = %d\n", hess_degenerate_, jac_degenerate_, test_status_); switch (test_status_) { case TEST_DELTA_C_EQ_0_DELTA_X_EQ_0: DBG_ASSERT(delta_x_curr_ == 0. && delta_c_curr_ == 0.); // in this case we haven't tried anything for this matrix yet if (jac_degenerate_ == NOT_YET_DETERMINED) { delta_d_curr_ = delta_c_curr_ = delta_cd(); test_status_ = TEST_DELTA_C_GT_0_DELTA_X_EQ_0; } else { DBG_ASSERT(hess_degenerate_ == NOT_YET_DETERMINED); retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } DBG_ASSERT(delta_c == 0. && delta_d == 0.); test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_GT_0; } break; case TEST_DELTA_C_GT_0_DELTA_X_EQ_0: DBG_ASSERT(delta_x_curr_ == 0. && delta_c_curr_ > 0.); DBG_ASSERT(jac_degenerate_ == NOT_YET_DETERMINED); if (!perturb_always_cd_) { delta_d_curr_ = delta_c_curr_ = 0.; retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } DBG_ASSERT(delta_c == 0. && delta_d == 0.); test_status_ = TEST_DELTA_C_EQ_0_DELTA_X_GT_0; } else { retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } DBG_ASSERT(delta_c > 0. && delta_d > 0.); test_status_ = TEST_DELTA_C_GT_0_DELTA_X_GT_0; } break; case TEST_DELTA_C_EQ_0_DELTA_X_GT_0: DBG_ASSERT(delta_x_curr_ > 0. && delta_c_curr_ == 0.); delta_d_curr_ = delta_c_curr_ = delta_cd(); retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } test_status_ = TEST_DELTA_C_GT_0_DELTA_X_GT_0; break; case TEST_DELTA_C_GT_0_DELTA_X_GT_0: retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { return false; } break; case NO_TEST: DBG_ASSERT(false && "we should not get here."); } } else { if (delta_c_curr_ > 0.) { // || get_deltas_for_wrong_inertia_called_) { // If we already used a perturbation for the constraints, we do // the same thing as if we were encountering negative curvature retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Can't get_deltas_for_wrong_inertia for delta_x_curr_ = %e and delta_c_curr_ = %e\n", delta_x_curr_, delta_c_curr_); return false; } } else { // Otherwise we now perturb the lower right corner delta_d_curr_ = delta_c_curr_ = delta_cd(); // ToDo - also perturb Hessian? IpData().Append_info_string("L"); } } delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; IpData().Set_info_regu_x(delta_x); return true; } bool PDPerturbationHandler::get_deltas_for_wrong_inertia( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { if (delta_x_curr_ == 0.) { if (delta_x_last_ == 0.) { delta_x_curr_ = delta_xs_init_; } else { delta_x_curr_ = Max(delta_xs_min_, delta_x_last_*delta_xs_dec_fact_); } } else { if (delta_x_last_ == 0. || 1e5*delta_x_last_ delta_xs_max_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "delta_x perturbation is becoming too large: %e\n", delta_x_curr_); delta_x_last_ = 0.; delta_s_last_ = 0.; IpData().Append_info_string("dx"); return false; } delta_s_curr_ = delta_x_curr_; delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; IpData().Set_info_regu_x(delta_x); get_deltas_for_wrong_inertia_called_ = true; return true; } bool PDPerturbationHandler::PerturbForWrongInertia( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { DBG_START_METH("PDPerturbationHandler::PerturbForWrongInertia", dbg_verbosity); // Check if we can conclude that components of the system are // structurally degenerate (we only get here if the most recent // perturbation for a test did not result in a singular system) finalize_test(); bool retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); if (!retval && delta_c==0.) { DBG_ASSERT(delta_d == 0.); delta_c_curr_ = delta_cd(); delta_d_curr_ = delta_c_curr_; delta_x_curr_ = 0.; delta_s_curr_ = 0.; test_status_ = NO_TEST; if (hess_degenerate_ == DEGENERATE) { hess_degenerate_ = NOT_YET_DETERMINED; } retval = get_deltas_for_wrong_inertia(delta_x, delta_s, delta_c, delta_d); } return retval; } void PDPerturbationHandler::CurrentPerturbation( Number& delta_x, Number& delta_s, Number& delta_c, Number& delta_d) { delta_x = delta_x_curr_; delta_s = delta_s_curr_; delta_c = delta_c_curr_; delta_d = delta_d_curr_; } Number PDPerturbationHandler::delta_cd() { return delta_cd_val_ * pow(IpData().curr_mu(), delta_cd_exp_); } void PDPerturbationHandler::finalize_test() { switch (test_status_) { case NO_TEST: return; case TEST_DELTA_C_EQ_0_DELTA_X_EQ_0: if (hess_degenerate_ == NOT_YET_DETERMINED && jac_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nhj "); } else if (hess_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nh "); } else if (jac_degenerate_ == NOT_YET_DETERMINED) { jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nj "); } break; case TEST_DELTA_C_GT_0_DELTA_X_EQ_0: if (hess_degenerate_ == NOT_YET_DETERMINED) { hess_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nh "); } if (jac_degenerate_ == NOT_YET_DETERMINED) { degen_iters_++; if (degen_iters_ >= degen_iters_max_) { jac_degenerate_ = DEGENERATE; IpData().Append_info_string("Dj "); } IpData().Append_info_string("L"); } break; case TEST_DELTA_C_EQ_0_DELTA_X_GT_0: if (jac_degenerate_ == NOT_YET_DETERMINED) { jac_degenerate_ = NOT_DEGENERATE; IpData().Append_info_string("Nj "); } if (hess_degenerate_ == NOT_YET_DETERMINED) { degen_iters_++; if (degen_iters_ >= degen_iters_max_) { hess_degenerate_ = DEGENERATE; IpData().Append_info_string("Dh "); } } break; case TEST_DELTA_C_GT_0_DELTA_X_GT_0: degen_iters_++; if (degen_iters_ >= degen_iters_max_) { hess_degenerate_ = DEGENERATE; jac_degenerate_ = DEGENERATE; IpData().Append_info_string("Dhj "); } IpData().Append_info_string("L"); break; } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpLeastSquareMults.hpp0000644000076600007660000000455011504216567021454 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLeastSquareMults.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #ifndef __IPLEASTSQUAREMULTS_HPP__ #define __IPLEASTSQUAREMULTS_HPP__ #include "IpAugSystemSolver.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** Class for calculator for the least-square equality constraint * multipliers. The Calculate method of this class computes the * least-square estimate for the y_c and y_d multiplers, based on * the current values of the gradient of the Lagrangian. */ class LeastSquareMultipliers: public EqMultiplierCalculator { public: /**@name Constructors/Destructors */ //@{ /** Constructor. It needs to be given the strategy object for * solving the augmented system. */ LeastSquareMultipliers(AugSystemSolver& augSysSolver); /** Default destructor */ virtual ~LeastSquareMultipliers() {} //@} /* overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** This method computes the least-square estimates for y_c and * y_d at the current point. The return value is false, if the * least square system could not be solved (the linear system is * singular). */ virtual bool CalculateMultipliers(Vector& y_c, Vector& y_d); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ LeastSquareMultipliers(); /** Copy Constructor */ LeastSquareMultipliers(const LeastSquareMultipliers&); /** Overloaded Equals Operator */ void operator=(const LeastSquareMultipliers&); //@} /** Pointer for the augmented system solver to be used for solving * the linear system */ SmartPtr augsyssolver_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpProbingMuOracle.hpp0000644000076600007660000000474211504216567021231 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpProbingMuOracle.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPPROBINGMUORACLE_HPP__ #define __IPPROBINGMUORACLE_HPP__ #include "IpMuOracle.hpp" #include "IpPDSystemSolver.hpp" namespace Ipopt { /** Implementation of the probing strategy for computing the * barrier parameter. */ class ProbingMuOracle : public MuOracle { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ ProbingMuOracle(const SmartPtr& pd_solver); /** Default destructor */ virtual ~ProbingMuOracle(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for computing the value of the barrier parameter that * could be used in the current iteration (using Mehrotra's * probing heuristic). */ virtual bool CalculateMu(Number mu_min, Number mu_max, Number& new_mu); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ ProbingMuOracle(); /** Copy Constructor */ ProbingMuOracle(const ProbingMuOracle&); /** Overloaded Equals Operator */ void operator=(const ProbingMuOracle&); //@} /** Pointer to the object that should be used to solve the * primal-dual system. */ SmartPtr pd_solver_; /** Auxilliary function for computing the average complementarity * at a point, given step sizes and step */ Number CalculateAffineMu(Number alpha_primal, Number alpha_dual, const IteratesVector& step); /** @name Algorithmic parameters */ //@{ /** safeguarding upper bound on centering parameter sigma */ Number sigma_max_; //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAlgorithmRegOp.hpp0000644000076600007660000000103611504216567021055 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgorithmRegOp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 #ifndef __IPALGORITHMREGOP_HPP__ #define __IPALGORITHMREGOP_HPP__ #include "IpSmartPtr.hpp" namespace Ipopt { class RegisteredOptions; void RegisterOptions_Algorithm(const SmartPtr& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoIpoptNLP.cpp0000644000076600007660000006734711504216567020670 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoIpoptNLP.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpRestoIpoptNLP.hpp" #include "IpIdentityMatrix.hpp" #include "IpSumSymMatrix.hpp" #include "IpSumMatrix.hpp" #include "IpNLPScaling.hpp" #include "IpLowRankUpdateSymMatrix.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif RestoIpoptNLP::RestoIpoptNLP(IpoptNLP& orig_ip_nlp, IpoptData& orig_ip_data, IpoptCalculatedQuantities& orig_ip_cq) : IpoptNLP(new NoNLPScalingObject()), orig_ip_nlp_(&orig_ip_nlp), orig_ip_data_(&orig_ip_data), orig_ip_cq_(&orig_ip_cq), eta_mu_exponent_(0.5) {} RestoIpoptNLP::~RestoIpoptNLP() {} void RestoIpoptNLP::RegisterOptions(SmartPtr roptions) { roptions->AddStringOption2( "evaluate_orig_obj_at_resto_trial", "Determines if the original objective function should be evaluated at restoration phase trial points.", "yes", "no", "skip evaluation", "yes", "evaluate at every trial point", "Setting this option to \"yes\" makes the restoration phase algorithm " "evaluate the objective function of the original problem at every trial " "point encountered during the restoration phase, even if this value is " "not required. In this way, it is guaranteed that the original " "objective function can be evaluated without error at all accepted " "iterates; otherwise the algorithm might fail at a point where the " "restoration phase accepts an iterate that is good for the restoration " "phase problem, but not the original problem. On the other hand, if " "the evaluation of the original objective is expensive, this might be " "costly."); roptions->AddLowerBoundedNumberOption( "resto_penalty_parameter", "Penalty parameter in the restoration phase objective function.", 0.0, true, 1e3, "This is the parameter rho in equation (31a) in the Ipopt " "implementation paper."); roptions->AddLowerBoundedNumberOption( "resto_proximity_weight", "Weighting factor for the proximity term in restoration phase objective.", 0.0, false, 1., "This determines how the parameter zera in equation (29a) in the " "implementation paper is computed. zeta here is " "resto_proximity_weight*sqrt(mu), where mu is the current barrier " "parameter."); } bool RestoIpoptNLP::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { options.GetBoolValue("evaluate_orig_obj_at_resto_trial", evaluate_orig_obj_at_resto_trial_, prefix); options.GetNumericValue("resto_penalty_parameter", rho_, prefix); Index enum_int; options.GetEnumValue("hessian_approximation", enum_int, prefix); hessian_approximation_ = HessianApproximationType(enum_int); options.GetNumericValue("resto_proximity_weight", eta_factor_, prefix); initialized_ = true; return IpoptNLP::Initialize(jnlst, options, prefix); } bool RestoIpoptNLP::InitializeStructures(SmartPtr& x, bool init_x, SmartPtr& y_c, bool init_y_c, SmartPtr& y_d, bool init_y_d, SmartPtr& z_L, bool init_z_L, SmartPtr& z_U, bool init_z_U, SmartPtr& v_L, SmartPtr& v_U ) { DBG_START_METH("RestoIpoptNLP::InitializeStructures", 0); DBG_ASSERT(initialized_); /////////////////////////////////////////////////////////// // Get the vector/matrix spaces for the original problem // /////////////////////////////////////////////////////////// SmartPtr orig_x_space; SmartPtr orig_c_space; SmartPtr orig_d_space; SmartPtr orig_x_l_space; SmartPtr orig_px_l_space; SmartPtr orig_x_u_space; SmartPtr orig_px_u_space; SmartPtr orig_d_l_space; SmartPtr orig_pd_l_space; SmartPtr orig_d_u_space; SmartPtr orig_pd_u_space; SmartPtr orig_jac_c_space; SmartPtr orig_jac_d_space; SmartPtr orig_h_space; orig_ip_nlp_->GetSpaces(orig_x_space, orig_c_space, orig_d_space, orig_x_l_space, orig_px_l_space, orig_x_u_space, orig_px_u_space, orig_d_l_space, orig_pd_l_space, orig_d_u_space, orig_pd_u_space, orig_jac_c_space, orig_jac_d_space, orig_h_space); // Create the restoration phase problem vector/matrix spaces, based // on the original spaces (pretty inconvenient with all the // matrix spaces, isn't it?!?) DBG_PRINT((1, "Creating the x_space_\n")); // vector x Index total_dim = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); x_space_ = new CompoundVectorSpace(5, total_dim); x_space_->SetCompSpace(0, *orig_x_space); x_space_->SetCompSpace(1, *orig_c_space); // n_c x_space_->SetCompSpace(2, *orig_c_space); // p_c x_space_->SetCompSpace(3, *orig_d_space); // n_d x_space_->SetCompSpace(4, *orig_d_space); // p_d DBG_PRINT((1, "Setting the c_space_\n")); // vector c c_space_ = orig_c_space; DBG_PRINT((1, "Setting the d_space_\n")); // vector d d_space_ = orig_d_space; DBG_PRINT((1, "Creating the x_l_space_\n")); // vector x_L total_dim = orig_x_l_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); x_l_space_ = new CompoundVectorSpace(5, total_dim); x_l_space_->SetCompSpace(0, *orig_x_l_space); x_l_space_->SetCompSpace(1, *orig_c_space); // n_c >=0 x_l_space_->SetCompSpace(2, *orig_c_space); // p_c >=0 x_l_space_->SetCompSpace(3, *orig_d_space); // n_d >=0 x_l_space_->SetCompSpace(4, *orig_d_space); // p_d >=0 DBG_PRINT((1, "Setting the x_u_space_\n")); // vector x_U x_u_space_ = orig_x_u_space; DBG_PRINT((1, "Creating the px_l_space_\n")); // matrix px_l Index total_rows = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); Index total_cols = orig_x_l_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); px_l_space_ = new CompoundMatrixSpace(5, 5, total_rows, total_cols); px_l_space_->SetBlockRows(0, orig_x_space->Dim()); px_l_space_->SetBlockRows(1, orig_c_space->Dim()); px_l_space_->SetBlockRows(2, orig_c_space->Dim()); px_l_space_->SetBlockRows(3, orig_d_space->Dim()); px_l_space_->SetBlockRows(4, orig_d_space->Dim()); px_l_space_->SetBlockCols(0, orig_x_l_space->Dim()); px_l_space_->SetBlockCols(1, orig_c_space->Dim()); px_l_space_->SetBlockCols(2, orig_c_space->Dim()); px_l_space_->SetBlockCols(3, orig_d_space->Dim()); px_l_space_->SetBlockCols(4, orig_d_space->Dim()); px_l_space_->SetCompSpace(0, 0, *orig_px_l_space); // now setup the identity matrix // This could be changed to be something like... // px_l_space_->SetBlockToIdentity(1,1,1.0); // px_l_space_->SetBlockToIdentity(2,2,other_factor); // ... etc with some simple changes to the CompoundMatrixSpace // to allow this (space should auto create the matrices) // // for now, we use the new feature and set the true flag for this block // to say that the matrices should be auto_allocated SmartPtr identity_mat_space_nc = new IdentityMatrixSpace(orig_c_space->Dim()); px_l_space_->SetCompSpace(1, 1, *identity_mat_space_nc, true); px_l_space_->SetCompSpace(2, 2, *identity_mat_space_nc, true); SmartPtr identity_mat_space_nd = new IdentityMatrixSpace(orig_d_space->Dim()); px_l_space_->SetCompSpace(3, 3, *identity_mat_space_nd, true); px_l_space_->SetCompSpace(4, 4, *identity_mat_space_nd, true); DBG_PRINT((1, "Creating the px_u_space_\n")); // matrix px_u px_u_space_->SetBlockRows(0, orig_x_space->Dim()); total_rows = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); total_cols = orig_x_u_space->Dim(); DBG_PRINT((1, "total_rows = %d, total_cols = %d\n",total_rows, total_cols)); px_u_space_ = new CompoundMatrixSpace(5, 1, total_rows, total_cols); px_u_space_->SetBlockRows(0, orig_x_space->Dim()); px_u_space_->SetBlockRows(1, orig_c_space->Dim()); px_u_space_->SetBlockRows(2, orig_c_space->Dim()); px_u_space_->SetBlockRows(3, orig_d_space->Dim()); px_u_space_->SetBlockRows(4, orig_d_space->Dim()); px_u_space_->SetBlockCols(0, orig_x_u_space->Dim()); px_u_space_->SetCompSpace(0, 0, *orig_px_u_space); // other matrices are zero'ed out // vector d_L d_l_space_ = orig_d_l_space; // vector d_U d_u_space_ = orig_d_u_space; // matrix pd_L pd_l_space_ = orig_pd_l_space; // matrix pd_U pd_u_space_ = orig_pd_u_space; DBG_PRINT((1, "Creating the jac_c_space_\n")); // matrix jac_c total_rows = orig_c_space->Dim(); total_cols = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); jac_c_space_ = new CompoundMatrixSpace(1, 5, total_rows, total_cols); jac_c_space_->SetBlockRows(0, orig_c_space->Dim()); jac_c_space_->SetBlockCols(0, orig_x_space->Dim()); jac_c_space_->SetBlockCols(1, orig_c_space->Dim()); jac_c_space_->SetBlockCols(2, orig_c_space->Dim()); jac_c_space_->SetBlockCols(3, orig_d_space->Dim()); jac_c_space_->SetBlockCols(4, orig_d_space->Dim()); jac_c_space_->SetCompSpace(0, 0, *orig_jac_c_space); jac_c_space_->SetCompSpace(0, 1, *identity_mat_space_nc, true); jac_c_space_->SetCompSpace(0, 2, *identity_mat_space_nc, true); // remaining blocks are zero'ed DBG_PRINT((1, "Creating the jac_d_space_\n")); // matrix jac_d total_rows = orig_d_space->Dim(); total_cols = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); jac_d_space_ = new CompoundMatrixSpace(1, 5, total_rows, total_cols); jac_d_space_->SetBlockRows(0, orig_d_space->Dim()); jac_d_space_->SetBlockCols(0, orig_x_space->Dim()); jac_d_space_->SetBlockCols(1, orig_c_space->Dim()); jac_d_space_->SetBlockCols(2, orig_c_space->Dim()); jac_d_space_->SetBlockCols(3, orig_d_space->Dim()); jac_d_space_->SetBlockCols(4, orig_d_space->Dim()); jac_d_space_->SetCompSpace(0, 0, *orig_jac_d_space); DBG_PRINT((1, "orig_jac_d_space = %x\n", GetRawPtr(orig_jac_d_space))) // Blocks (0,1) and (0,2) are zero'ed out jac_d_space_->SetCompSpace(0, 3, *identity_mat_space_nd, true); jac_d_space_->SetCompSpace(0, 4, *identity_mat_space_nd, true); DBG_PRINT((1, "Creating the h_space_\n")); // matrix h total_dim = orig_x_space->Dim() + 2*orig_c_space->Dim() + 2*orig_d_space->Dim(); h_space_ = new CompoundSymMatrixSpace(5, total_dim); h_space_->SetBlockDim(0, orig_x_space->Dim()); h_space_->SetBlockDim(1, orig_c_space->Dim()); h_space_->SetBlockDim(2, orig_c_space->Dim()); h_space_->SetBlockDim(3, orig_d_space->Dim()); h_space_->SetBlockDim(4, orig_d_space->Dim()); SmartPtr DR_x_space = new DiagMatrixSpace(orig_x_space->Dim()); if (hessian_approximation_==LIMITED_MEMORY) { const LowRankUpdateSymMatrixSpace* LR_h_space = static_cast (GetRawPtr(orig_h_space)); DBG_ASSERT(LR_h_space); SmartPtr new_orig_h_space = new LowRankUpdateSymMatrixSpace(LR_h_space->Dim(), NULL, orig_x_space, false); h_space_->SetCompSpace(0, 0, *new_orig_h_space, true); } else { SmartPtr sumsym_mat_space = new SumSymMatrixSpace(orig_x_space->Dim(), 2); sumsym_mat_space->SetTermSpace(0, *orig_h_space); sumsym_mat_space->SetTermSpace(1, *DR_x_space); h_space_->SetCompSpace(0, 0, *sumsym_mat_space, true); // All remaining blocks are zero'ed out } /////////////////////////// // Create the bound data // /////////////////////////// // x_L x_L_ = x_l_space_->MakeNewCompoundVector(); x_L_->SetComp(0, *orig_ip_nlp_->x_L()); // x >= x_L x_L_->GetCompNonConst(1)->Set(0.0); // n_c >= 0 x_L_->GetCompNonConst(2)->Set(0.0); // p_c >= 0 x_L_->GetCompNonConst(3)->Set(0.0); // n_d >= 0 x_L_->GetCompNonConst(4)->Set(0.0); // p_d >= 0 DBG_PRINT_VECTOR(2,"resto_x_L", *x_L_); // x_U x_U_ = orig_ip_nlp_->x_U(); // d_L d_L_ = orig_ip_nlp_->d_L(); // d_U d_U_ = orig_ip_nlp_->d_U(); // Px_L Px_L_ = px_l_space_->MakeNewCompoundMatrix(); Px_L_->SetComp(0, 0, *orig_ip_nlp_->Px_L()); // Identities are auto-created (true flag passed into SetCompSpace) // Px_U Px_U_ = px_u_space_->MakeNewCompoundMatrix(); Px_U_->SetComp(0, 0, *orig_ip_nlp_->Px_U()); // Remaining matrices will be zero'ed out // Pd_L Pd_L_ = orig_ip_nlp_->Pd_L(); // Pd_U Pd_U_ = orig_ip_nlp_->Pd_U(); // Getting the NLP scaling SmartPtr scaled_jac_c_space; SmartPtr scaled_jac_d_space; SmartPtr scaled_h_space; NLP_scaling()->DetermineScaling(GetRawPtr(x_space_), c_space_, d_space_, GetRawPtr(jac_c_space_), GetRawPtr(jac_d_space_), GetRawPtr(h_space_), scaled_jac_c_space, scaled_jac_d_space, scaled_h_space, *Px_L_, *x_L_, *Px_U_, *x_U_); // For now we assume that no scaling is done inside the NLP_Scaling DBG_ASSERT(scaled_jac_c_space == jac_c_space_); DBG_ASSERT(scaled_jac_d_space == jac_d_space_); DBG_ASSERT(scaled_h_space == h_space_); ///////////////////////////////////////////////////////////////////////// // Create and initialize the vectors for the restoration phase problem // ///////////////////////////////////////////////////////////////////////// // Vector x SmartPtr comp_x = x_space_->MakeNewCompoundVector(); if (init_x) { comp_x->GetCompNonConst(0)->Copy(*orig_ip_data_->curr()->x()); comp_x->GetCompNonConst(1)->Set(1.0); comp_x->GetCompNonConst(2)->Set(1.0); comp_x->GetCompNonConst(3)->Set(1.0); comp_x->GetCompNonConst(4)->Set(1.0); } x = GetRawPtr(comp_x); // Vector y_c y_c = c_space_->MakeNew(); if (init_y_c) { y_c->Set(0.0); // ToDo } // Vector y_d y_d = d_space_->MakeNew(); if (init_y_d) { y_d->Set(0.0); } // Vector z_L z_L = x_l_space_->MakeNew(); if (init_z_L) { z_L->Set(1.0); } // Vector z_U z_U = x_u_space_->MakeNew(); if (init_z_U) { z_U->Set(1.0); } // Vector v_L v_L = d_l_space_->MakeNew(); // Vector v_U v_U = d_u_space_->MakeNew(); // Initialize other data needed by the restoration nlp. x_ref is // the point to reference to which we based the regularization // term x_ref_ = orig_x_space->MakeNew(); x_ref_->Copy(*orig_ip_data_->curr()->x()); dr_x_ = orig_x_space->MakeNew(); dr_x_->Set(1.0); SmartPtr tmp = dr_x_->MakeNew(); tmp->Copy(*x_ref_); dr_x_->ElementWiseMax(*tmp); tmp->Scal(-1.); dr_x_->ElementWiseMax(*tmp); dr_x_->ElementWiseReciprocal(); DBG_PRINT_VECTOR(2, "dr_x_", *dr_x_); DR_x_ = DR_x_space->MakeNewDiagMatrix(); DR_x_->SetDiag(*dr_x_); return true; } Number RestoIpoptNLP::f(const Vector& x) { THROW_EXCEPTION(INTERNAL_ABORT, "ERROR: In RestoIpoptNLP f() is called without mu!"); return 0.; } Number RestoIpoptNLP::f(const Vector& x, Number mu) { DBG_START_METH("RestoIpoptNLP::f", dbg_verbosity); Number ret = 0.0; // rho*(pcTe + ncTe + pdT*e + ndT*e) + eta/2*||Dr*(x-xr)||_2^2 const CompoundVector* c_vec = static_cast(&x); DBG_ASSERT(c_vec); SmartPtr x_only = c_vec->GetComp(0); ret = x.Sum() - x_only->Sum(); DBG_PRINT((1,"xdiff sum = %e\n",ret)); ret = rho_ * ret; DBG_PRINT((1,"rho_ = %e\n",rho_)); SmartPtr x_diff = x_only->MakeNew(); x_diff->Copy(*x_only); x_diff->Axpy(-1.0, *x_ref_); DBG_PRINT_VECTOR(2,"x_ref",*x_ref_); x_diff->ElementWiseMultiply(*dr_x_); Number ret2 = x_diff->Nrm2(); DBG_PRINT((1,"Eta = %e\n",Eta(mu))); ret2 = Eta(mu)/2.0*ret2*ret2; ret += ret2; // We evaluate also the objective function for the original // problem here. This might be wasteful, but it will detect if // the original objective function cannot be evaluated at the // trial point in the restoration phase if (evaluate_orig_obj_at_resto_trial_) { /* Number orig_f = */ orig_ip_nlp_->f(*x_only); } return ret; } SmartPtr RestoIpoptNLP::grad_f(const Vector& x, Number mu) { SmartPtr retPtr = x.MakeNew(); // Scale the p's and n's by rho (Scale all, take out the x part later) retPtr->Set(rho_); const CompoundVector* c_vec_in = static_cast(&x); SmartPtr x_only_in = c_vec_in->GetComp(0); CompoundVector* c_vec = static_cast(GetRawPtr(retPtr)); DBG_ASSERT(c_vec); SmartPtr x_only = c_vec->GetCompNonConst(0); x_only->Copy(*x_only_in); x_only->Axpy(-1.0, *x_ref_); x_only->ElementWiseMultiply(*dr_x_); x_only->Scal(Eta(mu)); return ConstPtr(retPtr); } SmartPtr RestoIpoptNLP::c(const Vector& x) { const CompoundVector* c_vec = static_cast(&x); SmartPtr x_only = c_vec->GetComp(0); SmartPtr nc_only = c_vec->GetComp(1); SmartPtr pc_only = c_vec->GetComp(2); SmartPtr orig_c = orig_ip_nlp_->c(*x_only); SmartPtr retPtr = c_space_->MakeNew(); retPtr->Copy(*orig_c); retPtr->Axpy(1.0, *nc_only); retPtr->Axpy(-1.0, *pc_only); return GetRawPtr(retPtr); } SmartPtr RestoIpoptNLP::grad_f(const Vector& x) { THROW_EXCEPTION(INTERNAL_ABORT, "ERROR: In RestoIpoptNLP grad_f() is called without mu!"); } SmartPtr RestoIpoptNLP::d(const Vector& x) { const CompoundVector* c_vec = static_cast(&x); SmartPtr x_only = c_vec->GetComp(0); SmartPtr nd_only = c_vec->GetComp(3); SmartPtr pd_only = c_vec->GetComp(4); SmartPtr orig_d = orig_ip_nlp_->d(*x_only); SmartPtr retPtr = d_space_->MakeNew(); retPtr->Copy(*orig_d); retPtr->Axpy(1., *nd_only); retPtr->Axpy(-1., *pd_only); return GetRawPtr(retPtr); } SmartPtr RestoIpoptNLP::jac_c(const Vector& x) { // Here, we set the (0,0) block with the values from the // original jac_c and set the factor for the -I (jac w.r.t. p_c) // get out the x_only part const CompoundVector* c_vec = static_cast(&x); DBG_ASSERT(c_vec); SmartPtr x_only = c_vec->GetComp(0); // calculate the jacobian for the original problem SmartPtr jac_c_only = orig_ip_nlp_->jac_c(*x_only); // Create the new compound matrix // The zero parts remain NULL, the identities are created from the matrix // space (since auto_allocate was set to true in SetCompSpace) SmartPtr retPtr = jac_c_space_->MakeNewCompoundMatrix(); // set the (0,0) block to the original jacobian retPtr->SetComp(0,0,*jac_c_only); // we currently do not have a default factor in the matrix spaces // so we need to set the factor on the identity (jacobian of the // restoration c w.r.t. p_c is -I) // This could easily be changed to include special processing // for identities in the CompoundMatrixSpace (and a factor) SmartPtr jac_c_pc_mat = retPtr->GetCompNonConst(0,2); IdentityMatrix* jac_c_pc = static_cast(GetRawPtr(jac_c_pc_mat)); DBG_ASSERT(jac_c_pc); jac_c_pc->SetFactor(-1.0); return GetRawPtr(retPtr); } SmartPtr RestoIpoptNLP::jac_d(const Vector& x) { DBG_START_METH("RestoIpoptNLP::jac_d", dbg_verbosity); // Here, we set the (0,0) block with the values from the // original jac_d and set the factor for the -I (jac w.r.t. p_d) // get out the x_only part const CompoundVector* c_vec = static_cast(&x); DBG_ASSERT(c_vec); SmartPtr x_only = c_vec->GetComp(0); // calculate the jacobian for the original problem SmartPtr jac_d_only = orig_ip_nlp_->jac_d(*x_only); // Create the new compound matrix // The zero parts remain NULL, the identities are created from the matrix // space (since auto_allocate was set to true in SetCompSpace) SmartPtr retPtr = jac_d_space_->MakeNewCompoundMatrix(); DBG_PRINT((1, "jac_d_space_ = %x\n", GetRawPtr(jac_d_space_))) // Set the block for the original Jacobian retPtr->SetComp(0,0,*jac_d_only); // (0,1) and (0,2) blocks are zero (NULL) // set the factor for the identity matrix for the pd variables // (likr in jac_c) SmartPtr jac_d_pd_mat = retPtr->GetCompNonConst(0,4); IdentityMatrix* jac_d_pd = static_cast(GetRawPtr(jac_d_pd_mat)); DBG_ASSERT(jac_d_pd); jac_d_pd->SetFactor(-1.0); return GetRawPtr(retPtr); } SmartPtr RestoIpoptNLP::h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd ) { assert(false && "ERROR: In RestoIpoptNLP h() is called without mu!"); return NULL; } SmartPtr RestoIpoptNLP::h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, Number mu) { // Here, we use a SumSymMatrix for the (0,0) block of the // Hessian. We need to set this to the hessian of the restoration // problem, which is the hessian of the objective from the restoration // problem + the constraint only part of the hessian from the original // problem // All other blocks are zero'ed (NULL) // get the x_only part const CompoundVector* c_vec = static_cast(&x); DBG_ASSERT(c_vec); SmartPtr x_only = c_vec->GetComp(0); // yc and yd should not be compound vectors // calculate the original hessian SmartPtr h_con_orig = orig_ip_nlp_->h(*x_only, 0.0, yc, yd); // Create the new compound matrix // The SumSymMatrix is auto_allocated SmartPtr retPtr = h_space_->MakeNewCompoundSymMatrix(); // Set the entries in the SumSymMatrix SmartPtr h_sum_mat = retPtr->GetCompNonConst(0,0); SmartPtr h_sum = static_cast(GetRawPtr(h_sum_mat)); h_sum->SetTerm(0, 1.0, *h_con_orig); h_sum->SetTerm(1, obj_factor*Eta(mu), *DR_x_); return GetRawPtr(retPtr); } SmartPtr RestoIpoptNLP::uninitialized_h() { SmartPtr retPtr; if (hessian_approximation_==LIMITED_MEMORY) { retPtr = h_space_->MakeNewCompoundSymMatrix(); } else { SmartPtr h_con_orig = orig_ip_nlp_->uninitialized_h(); retPtr = h_space_->MakeNewCompoundSymMatrix(); SmartPtr h_sum_mat = retPtr->GetCompNonConst(0,0); SmartPtr h_sum = static_cast(GetRawPtr(h_sum_mat)); h_sum->SetTerm(0, 1.0, *h_con_orig); h_sum->SetTerm(1, 1.0, *DR_x_); } return GetRawPtr(retPtr); } void RestoIpoptNLP::GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space) { x_space = GetRawPtr(x_space_); c_space = GetRawPtr(c_space_); d_space = GetRawPtr(d_space_); x_l_space = GetRawPtr(x_l_space_); px_l_space = GetRawPtr(px_l_space_); x_u_space = GetRawPtr(x_u_space_); px_u_space = GetRawPtr(px_u_space_); d_l_space = GetRawPtr(d_l_space_); pd_l_space = GetRawPtr(pd_l_space_); d_u_space = GetRawPtr(d_u_space_); pd_u_space = GetRawPtr(pd_u_space_); Jac_c_space = GetRawPtr(jac_c_space_); Jac_d_space = GetRawPtr(jac_d_space_); Hess_lagrangian_space = GetRawPtr(h_space_); } Number RestoIpoptNLP::Eta(Number mu) const { return eta_factor_ * pow(mu, eta_mu_exponent_); } void RestoIpoptNLP::AdjustVariableBounds(const Vector& new_x_L, const Vector& new_x_U, const Vector& new_d_L, const Vector& new_d_U) { const CompoundVector* comp_new_x_L = static_cast(&new_x_L); DBG_ASSERT(comp_new_x_L); SmartPtr new_orig_x_L = comp_new_x_L->GetComp(0); // adapt bounds for the original NLP orig_ip_nlp_->AdjustVariableBounds(*new_orig_x_L, new_x_U, new_d_L, new_d_U); // adapt bounds for the p and n variables SmartPtr new_nc_L = comp_new_x_L->GetComp(1); SmartPtr new_pc_L = comp_new_x_L->GetComp(2); SmartPtr new_nd_L = comp_new_x_L->GetComp(3); SmartPtr new_pd_L = comp_new_x_L->GetComp(4); x_L_->GetCompNonConst(1)->Copy(*new_nc_L); x_L_->GetCompNonConst(2)->Copy(*new_pc_L); x_L_->GetCompNonConst(3)->Copy(*new_nd_L); x_L_->GetCompNonConst(4)->Copy(*new_pd_L); } bool RestoIpoptNLP::IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr ip_data, SmartPtr ip_cq) { return orig_ip_nlp_->IntermediateCallBack(mode, iter, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials, ip_data, ip_cq); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoMinC_1Nrm.cpp0000644000076600007660000004007212116344132020716 0ustar coincoin// Copyright (C) 2004, 2012 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoMinC_1Nrm.cpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpRestoMinC_1Nrm.hpp" #include "IpCompoundVector.hpp" #include "IpRestoIpoptNLP.hpp" #include "IpDefaultIterateInitializer.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif MinC_1NrmRestorationPhase::MinC_1NrmRestorationPhase (IpoptAlgorithm& resto_alg, const SmartPtr& eq_mult_calculator) : resto_alg_(&resto_alg), eq_mult_calculator_(eq_mult_calculator), resto_options_(NULL) { DBG_ASSERT(IsValid(resto_alg_)); } MinC_1NrmRestorationPhase::~MinC_1NrmRestorationPhase() {} void MinC_1NrmRestorationPhase::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "bound_mult_reset_threshold", "Threshold for resetting bound multipliers after the restoration phase.", 0.0, false, 1e3, "After returning from the restoration phase, the bound multipliers are " "updated with a Newton step for complementarity. Here, the " "change in the primal variables during the entire restoration " "phase is taken to be the corresponding primal Newton step. " "However, if after the update the largest bound multiplier " "exceeds the threshold specified by this option, the multipliers " "are all reset to 1."); roptions->AddLowerBoundedNumberOption( "constr_mult_reset_threshold", "Threshold for resetting equality and inequality multipliers after restoration phase.", 0.0, false, 0e3, "After returning from the restoration phase, the constraint multipliers " "are recomputed by a least square estimate. This option triggers when " "those least-square estimates should be ignored."); roptions->AddLowerBoundedNumberOption( "resto_failure_feasibility_threshold", "Threshold for primal infeasibility to declare failure of restoration phase.", 0.0, false, 0e3, "If the restoration phase is terminated because of the \"acceptable\" " "termination criteria and the primal infeasibility is smaller than this " "value, the restoration phase is declared to have failed. The default " "value is 1e2*tol, where tol is the general termination tolerance."); } bool MinC_1NrmRestorationPhase::InitializeImpl(const OptionsList& options, const std::string& prefix) { // keep a copy of these options to use when setting up the // restoration phase resto_options_ = new OptionsList(options); options.GetNumericValue("constr_mult_reset_threshold", constr_mult_reset_threshold_, prefix); options.GetNumericValue("bound_mult_reset_threshold", bound_mult_reset_threshold_, prefix); options.GetBoolValue("expect_infeasible_problem", expect_infeasible_problem_, prefix); // This is registered in OptimalityErrorConvergenceCheck options.GetNumericValue("constr_viol_tol", constr_viol_tol_, prefix); // Avoid that the restoration phase is trigged by user option in // first iteration of the restoration phase resto_options_->SetStringValue("resto.start_with_resto", "no"); // We want the default for the theta_max_fact in the restoration // phase higher than for the regular phase Number theta_max_fact; if (!options.GetNumericValue("resto.theta_max_fact", theta_max_fact, "")) { resto_options_->SetNumericValue("resto.theta_max_fact", 1e8); } if (!options.GetNumericValue("resto_failure_feasibility_threshold", resto_failure_feasibility_threshold_, prefix)) { resto_failure_feasibility_threshold_ = 1e2*IpData().tol(); } count_restorations_ = 0; bool retvalue = true; if (IsValid(eq_mult_calculator_)) { retvalue = eq_mult_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retvalue; } bool MinC_1NrmRestorationPhase::PerformRestoration() { DBG_START_METH("MinC_1NrmRestorationPhase::PerformRestoration", dbg_verbosity); // Increase counter for restoration phase calls count_restorations_++; Jnlst().Printf(J_DETAILED, J_MAIN, "Starting Restoration Phase for the %d. time\n", count_restorations_); DBG_ASSERT(IpCq().curr_constraint_violation()>0.); // ToDo set those up during initialize? // Create the restoration phase NLP etc objects SmartPtr resto_ip_data = new IpoptData(NULL, IpData().cpu_time_start()); SmartPtr resto_ip_nlp = new RestoIpoptNLP(IpNLP(), IpData(), IpCq()); SmartPtr resto_ip_cq = new IpoptCalculatedQuantities(resto_ip_nlp, resto_ip_data); // Determine if this is a square problem bool square_problem = IpCq().IsSquareProblem(); // Decide if we want to use the original option or want to make // some changes SmartPtr actual_resto_options = resto_options_; if (square_problem) { actual_resto_options = new OptionsList(*resto_options_); // If this is a square problem, the want the restoration phase // never to be left until the problem is converged actual_resto_options->SetNumericValueIfUnset("required_infeasibility_reduction", 0.); } else if (expect_infeasible_problem_) { actual_resto_options = new OptionsList(*resto_options_); actual_resto_options->SetStringValueIfUnset("resto.expect_infeasible_problem", "no"); if (count_restorations_==1 && IpCq().curr_constraint_violation()>1e-3) { // Ask for significant reduction of infeasibility, in the hope // that we do not return from the restoration phase is the // problem is infeasible actual_resto_options->SetNumericValueIfUnset("required_infeasibility_reduction", 1e-3); } } // Initialize the restoration phase algorithm resto_alg_->Initialize(Jnlst(), *resto_ip_nlp, *resto_ip_data, *resto_ip_cq, *actual_resto_options, "resto."); // Set iteration counter and info field for the restoration phase resto_ip_data->Set_iter_count(IpData().iter_count()+1); resto_ip_data->Set_info_regu_x(IpData().info_regu_x()); resto_ip_data->Set_info_alpha_primal(IpData().info_alpha_primal()); resto_ip_data->Set_info_alpha_primal_char(IpData().info_alpha_primal_char()); resto_ip_data->Set_info_alpha_dual(IpData().info_alpha_dual()); resto_ip_data->Set_info_ls_count(IpData().info_ls_count()); resto_ip_data->Set_info_iters_since_header(IpData().info_iters_since_header()); resto_ip_data->Set_info_last_output(IpData().info_last_output()); // Call the optimization algorithm to solve the restoration phase // problem SolverReturn resto_status = resto_alg_->Optimize(true); int retval=-1; if (resto_status != SUCCESS) { SmartPtr resto_curr = resto_ip_data->curr(); if (IsValid(resto_curr)) { // In case of a failure, we still copy the values of primal and // dual variables into the data fields of the regular NLP, so // that they will be returned to the user SmartPtr trial = IpData().trial()->MakeNewContainer(); SmartPtr cx = static_cast(GetRawPtr(resto_curr->x())); DBG_ASSERT(IsValid(cx)); trial->Set_primal(*cx->GetComp(0), *resto_ip_data->curr()->s()); trial->Set_eq_mult(*resto_ip_data->curr()->y_c(), *resto_ip_data->curr()->y_d()); cx = static_cast (GetRawPtr(resto_ip_data->curr()->z_L())); DBG_ASSERT(IsValid(cx)); trial->Set_bound_mult(*cx->GetComp(0), *resto_ip_data->curr()->z_U(), *resto_ip_data->curr()->v_L(), *resto_ip_data->curr()->v_U()); IpData().set_trial(trial); IpData().AcceptTrialPoint(); } } if (resto_status == SUCCESS) { if (Jnlst().ProduceOutput(J_DETAILED, J_LINE_SEARCH)) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "\nRESTORATION PHASE RESULTS\n"); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "\n\nOptimal solution found! \n"); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Optimal Objective Value = %.16E\n", resto_ip_cq->curr_f()); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Number of Iterations = %d\n", resto_ip_data->iter_count()); } if (Jnlst().ProduceOutput(J_VECTOR, J_LINE_SEARCH)) { resto_ip_data->curr()->Print(Jnlst(), J_VECTOR, J_LINE_SEARCH, "curr"); } retval = 0; } else if (resto_status == STOP_AT_TINY_STEP || resto_status == STOP_AT_ACCEPTABLE_POINT) { Number orig_primal_inf = IpCq().curr_primal_infeasibility(NORM_MAX); // ToDo make the factor in following line an option if (orig_primal_inf <= resto_failure_feasibility_threshold_) { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Restoration phase converged to a point with small primal infeasibility.\n"); THROW_EXCEPTION(RESTORATION_CONVERGED_TO_FEASIBLE_POINT, "Restoration phase converged to a point with small primal infeasibility"); } else { THROW_EXCEPTION(LOCALLY_INFEASIBLE, "Restoration phase converged to a point of local infeasibility"); } } else if (resto_status == MAXITER_EXCEEDED) { THROW_EXCEPTION(RESTORATION_MAXITER_EXCEEDED, "Maximal number of iterations exceeded in restoration phase."); } else if (resto_status == CPUTIME_EXCEEDED) { THROW_EXCEPTION(RESTORATION_CPUTIME_EXCEEDED, "Maximal CPU time exceeded in restoration phase."); } else if (resto_status == LOCAL_INFEASIBILITY) { // converged to locally infeasible point - pass this on to the outer algorithm... THROW_EXCEPTION(LOCALLY_INFEASIBLE, "Restoration phase converged to a point of local infeasibility"); } else if (resto_status == RESTORATION_FAILURE) { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Restoration phase in the restoration phase failed.\n"); THROW_EXCEPTION(RESTORATION_FAILED, "Restoration phase in the restoration phase failed."); } else if (resto_status == USER_REQUESTED_STOP) { // Use requested stop during restoration phase - rethrow exception THROW_EXCEPTION(RESTORATION_USER_STOP, "User requested stop during restoration phase"); } else { Jnlst().Printf(J_ERROR, J_MAIN, "Sorry, things failed ?!?!\n"); retval = 1; } if (retval == 0) { // Copy the results into the trial fields;. They will be // accepted later in the full algorithm SmartPtr cx = static_cast(GetRawPtr(resto_ip_data->curr()->x())); DBG_ASSERT(IsValid(cx)); SmartPtr trial = IpData().trial()->MakeNewContainer(); trial->Set_primal(*cx->GetComp(0), *resto_ip_data->curr()->s()); IpData().set_trial(trial); // If this is a square problem, we are done because a // sufficiently feasible point has been found if (square_problem) { Number constr_viol = IpCq().unscaled_curr_nlp_constraint_violation(NORM_MAX); if (constr_viol <= constr_viol_tol_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Recursive restoration phase algorithm termined successfully for square problem.\n"); IpData().AcceptTrialPoint(); THROW_EXCEPTION(FEASIBILITY_PROBLEM_SOLVED, "Restoration phase converged to sufficiently feasible point of original square problem."); } } // Update the bound multiplers, pretending that the entire // progress in x and s in the restoration phase has been one // [rimal-dual Newton step (and therefore the result of solving // an augmented system) SmartPtr delta = IpData().curr()->MakeNewIteratesVector(true); delta->Set(0.0); ComputeBoundMultiplierStep(*delta->z_L_NonConst(), *IpData().curr()->z_L(), *IpCq().curr_slack_x_L(), *IpCq().trial_slack_x_L()); ComputeBoundMultiplierStep(*delta->z_U_NonConst(), *IpData().curr()->z_U(), *IpCq().curr_slack_x_U(), *IpCq().trial_slack_x_U()); ComputeBoundMultiplierStep(*delta->v_L_NonConst(), *IpData().curr()->v_L(), *IpCq().curr_slack_s_L(), *IpCq().trial_slack_s_L()); ComputeBoundMultiplierStep(*delta->v_U_NonConst(), *IpData().curr()->v_U(), *IpCq().curr_slack_s_U(), *IpCq().trial_slack_s_U()); DBG_PRINT_VECTOR(1, "delta_z_L", *delta->z_L()); DBG_PRINT_VECTOR(1, "delta_z_U", *delta->z_U()); DBG_PRINT_VECTOR(1, "delta_v_L", *delta->v_L()); DBG_PRINT_VECTOR(1, "delta_v_U", *delta->v_U()); Number alpha_dual = IpCq().dual_frac_to_the_bound(IpData().curr_tau(), *delta->z_L_NonConst(), *delta->z_U_NonConst(), *delta->v_L_NonConst(), *delta->v_U_NonConst()); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Step size for bound multipliers: %8.2e\n", alpha_dual); IpData().SetTrialBoundMultipliersFromStep(alpha_dual, *delta->z_L(), *delta->z_U(), *delta->v_L(), *delta->v_U() ); // ToDo: Check what to do here: Number bound_mult_max = Max(IpData().trial()->z_L()->Amax(), IpData().trial()->z_U()->Amax(), IpData().trial()->v_L()->Amax(), IpData().trial()->v_U()->Amax()); if (bound_mult_max > bound_mult_reset_threshold_) { trial = IpData().trial()->MakeNewContainer(); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Bound multipliers after restoration phase too large (max=%8.2e). Set all to 1.\n", bound_mult_max); trial->create_new_z_L(); trial->create_new_z_U(); trial->create_new_v_L(); trial->create_new_v_U(); trial->z_L_NonConst()->Set(1.0); trial->z_U_NonConst()->Set(1.0); trial->v_L_NonConst()->Set(1.0); trial->v_U_NonConst()->Set(1.0); IpData().set_trial(trial); } DefaultIterateInitializer::least_square_mults( Jnlst(), IpNLP(), IpData(), IpCq(), eq_mult_calculator_, constr_mult_reset_threshold_); DBG_PRINT_VECTOR(2, "y_c", *IpData().curr()->y_c()); DBG_PRINT_VECTOR(2, "y_d", *IpData().curr()->y_d()); IpData().Set_iter_count(resto_ip_data->iter_count()-1); // Skip the next line, because it would just replicate the first // on during the restoration phase. IpData().Set_info_skip_output(true); IpData().Set_info_iters_since_header(resto_ip_data->info_iters_since_header()); IpData().Set_info_last_output(resto_ip_data->info_last_output()); } return (retval == 0); } void MinC_1NrmRestorationPhase::ComputeBoundMultiplierStep(Vector& delta_z, const Vector& curr_z, const Vector& curr_slack, const Vector& trial_slack) { Number mu = IpData().curr_mu(); delta_z.Copy(curr_slack); delta_z.Axpy(-1., trial_slack); delta_z.ElementWiseMultiply(curr_z); delta_z.AddScalar(mu); delta_z.ElementWiseDivide(curr_slack); delta_z.Axpy(-1., curr_z); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpTimingStatistics.cpp0000644000076600007660000002243111504216567021471 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTimingStatistics.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-09-19 #include "IpTimingStatistics.hpp" namespace Ipopt { void TimingStatistics::ResetTimes() { OverallAlgorithm_.Reset(); PrintProblemStatistics_.Reset(); InitializeIterates_.Reset(); UpdateHessian_.Reset(); OutputIteration_.Reset(); UpdateBarrierParameter_.Reset(); ComputeSearchDirection_.Reset(); ComputeAcceptableTrialPoint_.Reset(); AcceptTrialPoint_.Reset(); CheckConvergence_.Reset(); PDSystemSolverTotal_.Reset(); PDSystemSolverSolveOnce_.Reset(); ComputeResiduals_.Reset(); StdAugSystemSolverMultiSolve_.Reset(); LinearSystemScaling_.Reset(); LinearSystemSymbolicFactorization_.Reset(); LinearSystemFactorization_.Reset(); LinearSystemBackSolve_.Reset(); LinearSystemStructureConverter_.Reset(); LinearSystemStructureConverterInit_.Reset(); QualityFunctionSearch_.Reset(); TryCorrector_.Reset(); Task1_.Reset(); Task2_.Reset(); Task3_.Reset(); Task4_.Reset(); Task5_.Reset(); Task6_.Reset(); } void TimingStatistics::PrintAllTimingStatistics( Journalist& jnlst, EJournalLevel level, EJournalCategory category) const { if (!jnlst.ProduceOutput(level, category)) return; jnlst.Printf(level, category, "OverallAlgorithm....................: %10.3f (sys: %10.3f wall: %10.3f)\n", OverallAlgorithm_.TotalCpuTime(), OverallAlgorithm_.TotalSysTime(), OverallAlgorithm_.TotalWallclockTime()); jnlst.Printf(level, category, " PrintProblemStatistics.............: %10.3f (sys: %10.3f wall: %10.3f)\n", PrintProblemStatistics_.TotalCpuTime(), PrintProblemStatistics_.TotalSysTime(), PrintProblemStatistics_.TotalWallclockTime()); jnlst.Printf(level, category, " InitializeIterates.................: %10.3f (sys: %10.3f wall: %10.3f)\n", InitializeIterates_.TotalCpuTime(), InitializeIterates_.TotalSysTime(), InitializeIterates_.TotalWallclockTime()); jnlst.Printf(level, category, " UpdateHessian......................: %10.3f (sys: %10.3f wall: %10.3f)\n", UpdateHessian_.TotalCpuTime(), UpdateHessian_.TotalSysTime(), UpdateHessian_.TotalWallclockTime()); jnlst.Printf(level, category, " OutputIteration....................: %10.3f (sys: %10.3f wall: %10.3f)\n", OutputIteration_.TotalCpuTime(), OutputIteration_.TotalSysTime(), OutputIteration_.TotalWallclockTime()); jnlst.Printf(level, category, " UpdateBarrierParameter.............: %10.3f (sys: %10.3f wall: %10.3f)\n", UpdateBarrierParameter_.TotalCpuTime(), UpdateBarrierParameter_.TotalSysTime(), UpdateBarrierParameter_.TotalWallclockTime()); jnlst.Printf(level, category, " ComputeSearchDirection.............: %10.3f (sys: %10.3f wall: %10.3f)\n", ComputeSearchDirection_.TotalCpuTime(), ComputeSearchDirection_.TotalSysTime(), ComputeSearchDirection_.TotalWallclockTime()); jnlst.Printf(level, category, " ComputeAcceptableTrialPoint........: %10.3f (sys: %10.3f wall: %10.3f)\n", ComputeAcceptableTrialPoint_.TotalCpuTime(), ComputeAcceptableTrialPoint_.TotalSysTime(), ComputeAcceptableTrialPoint_.TotalWallclockTime()); jnlst.Printf(level, category, " AcceptTrialPoint...................: %10.3f (sys: %10.3f wall: %10.3f)\n", AcceptTrialPoint_.TotalCpuTime(), AcceptTrialPoint_.TotalSysTime(), AcceptTrialPoint_.TotalWallclockTime()); jnlst.Printf(level, category, " CheckConvergence...................: %10.3f (sys: %10.3f wall: %10.3f)\n", CheckConvergence_.TotalCpuTime(), CheckConvergence_.TotalSysTime(), CheckConvergence_.TotalWallclockTime()); jnlst.Printf(level, category, "PDSystemSolverTotal.................: %10.3f (sys: %10.3f wall: %10.3f)\n", PDSystemSolverTotal_.TotalCpuTime(), PDSystemSolverTotal_.TotalSysTime(), PDSystemSolverTotal_.TotalWallclockTime()); jnlst.Printf(level, category, " PDSystemSolverSolveOnce............: %10.3f (sys: %10.3f wall: %10.3f)\n", PDSystemSolverSolveOnce_.TotalCpuTime(), PDSystemSolverSolveOnce_.TotalSysTime(), PDSystemSolverSolveOnce_.TotalWallclockTime()); jnlst.Printf(level, category, " ComputeResiduals...................: %10.3f (sys: %10.3f wall: %10.3f)\n", ComputeResiduals_.TotalCpuTime(), ComputeResiduals_.TotalSysTime(), ComputeResiduals_.TotalWallclockTime()); jnlst.Printf(level, category, " StdAugSystemSolverMultiSolve.......: %10.3f (sys: %10.3f wall: %10.3f)\n", StdAugSystemSolverMultiSolve_.TotalCpuTime(), StdAugSystemSolverMultiSolve_.TotalSysTime(), StdAugSystemSolverMultiSolve_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemScaling................: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemScaling_.TotalCpuTime(), LinearSystemScaling_.TotalSysTime(), LinearSystemScaling_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemSymbolicFactorization..: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemSymbolicFactorization_.TotalCpuTime(), LinearSystemSymbolicFactorization_.TotalSysTime(), LinearSystemSymbolicFactorization_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemFactorization..........: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemFactorization_.TotalCpuTime(), LinearSystemFactorization_.TotalSysTime(), LinearSystemFactorization_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemBackSolve..............: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemBackSolve_.TotalCpuTime(), LinearSystemBackSolve_.TotalSysTime(), LinearSystemBackSolve_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemStructureConverter.....: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemStructureConverter_.TotalCpuTime(), LinearSystemStructureConverter_.TotalSysTime(), LinearSystemStructureConverter_.TotalWallclockTime()); jnlst.Printf(level, category, " LinearSystemStructureConverterInit: %10.3f (sys: %10.3f wall: %10.3f)\n", LinearSystemStructureConverterInit_.TotalCpuTime(), LinearSystemStructureConverterInit_.TotalSysTime(), LinearSystemStructureConverterInit_.TotalWallclockTime()); jnlst.Printf(level, category, "QualityFunctionSearch...............: %10.3f (sys: %10.3f wall: %10.3f)\n", QualityFunctionSearch_.TotalCpuTime(), QualityFunctionSearch_.TotalSysTime(), QualityFunctionSearch_.TotalWallclockTime()); jnlst.Printf(level, category, "TryCorrector........................: %10.3f (sys: %10.3f wall: %10.3f)\n", TryCorrector_.TotalCpuTime(), TryCorrector_.TotalSysTime(), TryCorrector_.TotalWallclockTime()); jnlst.Printf(level, category, "Task1...............................: %10.3f (sys: %10.3f wall: %10.3f)\n", Task1_.TotalCpuTime(), Task1_.TotalSysTime(), Task1_.TotalWallclockTime()); jnlst.Printf(level, category, "Task2...............................: %10.3f (sys: %10.3f wall: %10.3f)\n", Task2_.TotalCpuTime(), Task2_.TotalSysTime(), Task2_.TotalWallclockTime()); jnlst.Printf(level, category, "Task3...............................: %10.3f (sys: %10.3f wall: %10.3f)\n", Task3_.TotalCpuTime(), Task3_.TotalSysTime(), Task3_.TotalWallclockTime()); jnlst.Printf(level, category, "Task4...............................: %10.3f (sys: %10.3f wall: %10.3f)\n", Task4_.TotalCpuTime(), Task4_.TotalSysTime(), Task4_.TotalWallclockTime()); jnlst.Printf(level, category, "Task5...............................: %10.3f (sys: %10.3f wall: %10.3f)\n", Task5_.TotalCpuTime(), Task5_.TotalSysTime(), Task5_.TotalWallclockTime()); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpGradientScaling.cpp0000644000076600007660000001744511504216567021236 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGradientScaling.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-07-13 #include "IpGradientScaling.hpp" namespace Ipopt { void GradientScaling::RegisterOptions(const SmartPtr& roptions) { roptions->AddLowerBoundedNumberOption( "nlp_scaling_max_gradient", "Maximum gradient after NLP scaling.", 0, true, 100.0, "This is the gradient scaling cut-off. If the maximum" " gradient is above this value, then gradient based scaling" " will be performed. Scaling parameters are calculated to" " scale the maximum gradient back to this value. (This is g_max in " "Section 3.8 of the implementation paper.) Note: This" " option is only used if \"nlp_scaling_method\" is chosen as" " \"gradient-based\"."); roptions->AddLowerBoundedNumberOption( "nlp_scaling_obj_target_gradient", "Target value for objective function gradient size.", 0, false, 0., "If a positive number is chosen, the scaling factor the objective " "function is computed so that the gradient has the max norm of the given " "size at the starting point. This overrides nlp_scaling_max_gradient " "for the objective function."); roptions->AddLowerBoundedNumberOption( "nlp_scaling_constr_target_gradient", "Target value for constraint function gradient size.", 0, false, 0., "If a positive number is chosen, the scaling factor the constraint " "functions is computed so that the gradient has the max norm of the given " "size at the starting point. This overrides nlp_scaling_max_gradient " "for the constraint functions."); roptions->AddLowerBoundedNumberOption( "nlp_scaling_min_value", "Minimum value of gradient-based scaling values.", 0, false, 1e-8, "This is the lower bound for the scaling factors computed by " "gradient-based scaling method. If some derivatives of some functions " "are huge, the scaling factors will otherwise become very small, and " "the (unscaled) final constraint violation, for example, might then be " "significant. Note: This option is only used if \"nlp_scaling_method\" " "is chosen as \"gradient-based\"."); } bool GradientScaling::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("nlp_scaling_max_gradient", scaling_max_gradient_, prefix); options.GetNumericValue("nlp_scaling_obj_target_gradient", scaling_obj_target_gradient_, prefix); options.GetNumericValue("nlp_scaling_constr_target_gradient", scaling_constr_target_gradient_, prefix); options.GetNumericValue("nlp_scaling_min_value", scaling_min_value_, prefix); return StandardScalingBase::InitializeImpl(options, prefix); } void GradientScaling::DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd) { DBG_ASSERT(IsValid(nlp_)); SmartPtr x = x_space->MakeNew(); if (!nlp_->GetStartingPoint(GetRawPtr(x), true, NULL, false, NULL, false, NULL, false, NULL, false)) { THROW_EXCEPTION(FAILED_INITIALIZATION, "Error getting initial point from NLP in GradientScaling.\n"); } // // Calculate grad_f scaling // SmartPtr grad_f = x_space->MakeNew(); if (nlp_->Eval_grad_f(*x, *grad_f)) { double max_grad_f = grad_f->Amax(); df = 1.; if (scaling_obj_target_gradient_ == 0.) { if (max_grad_f > scaling_max_gradient_) { df = scaling_max_gradient_ / max_grad_f; } } else { if (max_grad_f == 0.) { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Gradient of objective function is zero at starting point. Cannot determine scaling factor based on scaling_obj_target_gradient option.\n"); } else { df = scaling_obj_target_gradient_ / max_grad_f; } } df = Max(df, scaling_min_value_); Jnlst().Printf(J_DETAILED, J_INITIALIZATION, "Scaling parameter for objective function = %e\n", df); } else { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Error evaluating objective gradient at user provided starting point.\n No scaling factor for objective function computed!\n"); df = 1.; } // // No x scaling // dx = NULL; dc = NULL; if (c_space->Dim()>0) { // // Calculate c scaling // SmartPtr jac_c = jac_c_space->MakeNew(); if (nlp_->Eval_jac_c(*x, *jac_c)) { dc = c_space->MakeNew(); const double dbl_min = std::numeric_limits::min(); dc->Set(dbl_min); jac_c->ComputeRowAMax(*dc, false); Number arow_max = dc->Amax(); if (scaling_constr_target_gradient_<=0.) { if (arow_max > scaling_max_gradient_) { dc->ElementWiseReciprocal(); dc->Scal(scaling_max_gradient_); SmartPtr dummy = dc->MakeNew(); dummy->Set(1.); dc->ElementWiseMin(*dummy); } else { dc = NULL; } } else { dc->Set(scaling_constr_target_gradient_/arow_max); } if (IsValid(dc) && scaling_min_value_ > 0.) { SmartPtr tmp = dc->MakeNew(); tmp->Set(scaling_min_value_); dc->ElementWiseMax(*tmp); } } else { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Error evaluating Jacobian of equality constraints at user provided starting point.\n No scaling factors for equality constraints computed!\n"); } } dd = NULL; if (d_space->Dim()>0) { // // Calculate d scaling // SmartPtr jac_d = jac_d_space->MakeNew(); if (nlp_->Eval_jac_d(*x, *jac_d)) { dd = d_space->MakeNew(); const double dbl_min = std::numeric_limits::min(); dd->Set(dbl_min); jac_d->ComputeRowAMax(*dd, false); Number arow_max = dd->Amax(); if (scaling_constr_target_gradient_<=0.) { if (arow_max > scaling_max_gradient_) { dd->ElementWiseReciprocal(); dd->Scal(scaling_max_gradient_); SmartPtr dummy = dd->MakeNew(); dummy->Set(1.); dd->ElementWiseMin(*dummy); } else { dd = NULL; } } else { dd->Set(scaling_constr_target_gradient_/arow_max); } if (IsValid(dd) && scaling_min_value_ > 0.) { SmartPtr tmp = dd->MakeNew(); tmp->Set(scaling_min_value_); dd->ElementWiseMax(*tmp); } } else { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Error evaluating Jacobian of inequality constraints at user provided starting point.\n No scaling factors for inequality constraints computed!\n"); } } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpExactHessianUpdater.cpp0000644000076600007660000000160511504216567022073 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpExactHessianUpdater.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.cpp #include "IpExactHessianUpdater.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif bool ExactHessianUpdater::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } void ExactHessianUpdater::UpdateHessian() { DBG_START_METH("ExactHessianUpdater::UpdateHessian", dbg_verbosity); IpData().Set_W(IpCq().curr_exact_hessian()); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoMinC_1Nrm.hpp0000644000076600007660000000761011504216567020736 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoMinC_1Nrm.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPRESTOC_1NRM_HPP__ #define __IPRESTOC_1NRM_HPP__ #include "IpRestoPhase.hpp" #include "IpIpoptAlg.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** Restoration Phase that minimizes the 1-norm of the constraint * violation - using the interior point method (Ipopt). */ class MinC_1NrmRestorationPhase : public RestorationPhase { public: /**@name Constructors/Destructors */ //@{ /** Constructor, taking strategy objects. The resto_alg strategy * object is the restoration phase Ipopt algorithm. The * eq_mult_calculator is used to reinitialize the equality * constraint multipliers after the restoration phase algorithm * has finished - unless it is NULL, in which case the * multipliers are set to 0. */ MinC_1NrmRestorationPhase(IpoptAlgorithm& resto_alg, const SmartPtr& eq_mult_calculator); /** Default destructor */ virtual ~MinC_1NrmRestorationPhase(); //@} /** Overloaded from AlgorithmStrategy case class */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} protected: /** Overloaded method from RestorationPhase. */ virtual bool PerformRestoration(); private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ MinC_1NrmRestorationPhase(); /** Copy Constructor */ MinC_1NrmRestorationPhase(const MinC_1NrmRestorationPhase&); /** Overloaded Equals Operator */ void operator=(const MinC_1NrmRestorationPhase&); //@} /** @name Strategy objects */ //@{ SmartPtr resto_alg_; SmartPtr eq_mult_calculator_; //@} /** Copy of original options, which is required to initialize the * Ipopt algorithm strategy object before restoration phase is * started. */ SmartPtr resto_options_; /** @name Algorithmic parameters */ //@{ Number constr_mult_reset_threshold_; /** Maximal allowed value of a bound multiplier after restoration * phase. */ Number bound_mult_reset_threshold_; /** Indicates whether problem can be expected to be infeasible. * This will request the to set kappa_resto to a small value for * the first time the restoration phase is called. (ToDo) */ bool expect_infeasible_problem_; /** Constraint violation tolerance */ Number constr_viol_tol_; /** Primal infeasibility tolerance for declaring failure of * restoration phase when the non-regular termination tests are * met. */ Number resto_failure_feasibility_threshold_; //@} /** Counter for the number of time that PerformRestoration is * called. */ Index count_restorations_; /** @name Auxilliary methods */ //@{ /** Method for computing "primal-dual" step in bound multipliers, * given step in slacks. */ void ComputeBoundMultiplierStep(Vector& delta_z, const Vector& curr_z, const Vector& curr_slack, const Vector& trial_slack); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpAlgBuilder.hpp0000644000076600007660000000606411504216567020212 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgBuilder.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-29 #ifndef __IPALGBUILDER_HPP__ #define __IPALGBUILDER_HPP__ #include "IpIpoptAlg.hpp" #include "IpReferenced.hpp" #include "IpAugSystemSolver.hpp" namespace Ipopt { /** Builder to create a complete IpoptAlg object. This object * contains all subelements (such as line search objects etc). How * the resulting IpoptAlg object is built can be influenced by the * options. * * The optional argument custom_solver allows the expert user to * provide a specialized linear solver (e.g., of the type * GenAugSystemSolver), possibly for selfmade matrix objects. * * TODO: Currently, this is a basic implementation with everything * in one method that can be overloaded. This will need to be expanded * to allow customization of different parts without recoding everything. */ class AlgorithmBuilder : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor */ AlgorithmBuilder(SmartPtr custom_solver=NULL); /** Destructor */ virtual ~AlgorithmBuilder() {} //@} /** @name Methods to build parts of the algorithm */ //@{ virtual void BuildIpoptObjects(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, const SmartPtr& nlp, SmartPtr& ip_nlp, SmartPtr& ip_data, SmartPtr& ip_cq); virtual SmartPtr BuildBasicAlgorithm(const Journalist& jnlst, const OptionsList& options, const std::string& prefix); //@} /** Methods for IpoptTypeInfo */ //@{ /** register the options used by the algorithm builder */ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //AlgorithmBuilder(); /** Copy Constructor */ AlgorithmBuilder(const AlgorithmBuilder&); /** Overloaded Equals Operator */ void operator=(const AlgorithmBuilder&); //@} /** Optional pointer to AugSystemSolver. If this is set in the * contructor, we will use this to solver the linear systems if * the option linear_solver=custerm is chosen. */ SmartPtr custom_solver_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDFullSpaceSolver.hpp0000644000076600007660000001630311504216567021472 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDFullSpaceSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPPDFULLSPACESOLVER_HPP__ #define __IPPDFULLSPACESOLVER_HPP__ #include "IpPDSystemSolver.hpp" #include "IpAugSystemSolver.hpp" #include "IpPDPerturbationHandler.hpp" namespace Ipopt { /** This is the implemetation of the Primal-Dual System, using the * full space approach with a direct linear solver. * * A note on the iterative refinement: We perform at least * min_refinement_steps number of iterative refinement steps. If after * one iterative refinement the quality of the solution (defined in * ResidualRatio) does not improve or the maximal number of * iterative refinement steps is exceeded before the tolerance * residual_ratio_max_ is satisfied, we first ask the linear solver * to solve the system more accurately (e.g. by increasing the * pivot tolerance). If that doesn't help or is not possible, we * treat the system, as if it is singular (i.e. increase delta's). */ class PDFullSpaceSolver: public PDSystemSolver { public: /** @name /Destructor */ //@{ /** Constructor that takes in the Augmented System solver that * is to be used inside */ PDFullSpaceSolver(AugSystemSolver& augSysSolver, PDPerturbationHandler& perturbHandler); /** Default destructor */ virtual ~PDFullSpaceSolver(); //@} /* overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Solve the primal dual system, given one right hand side. */ virtual bool Solve(Number alpha, Number beta, const IteratesVector& rhs, IteratesVector& res, bool allow_inexact=false, bool improve_solution=false); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ PDFullSpaceSolver(); /** Overloaded Equals Operator */ PDFullSpaceSolver& operator=(const PDFullSpaceSolver&); //@} /** @name Strategy objects to hold on to. */ //@{ /** Pointer to the Solver for the augmented system */ SmartPtr augSysSolver_; /** Pointer to the Perturbation Handler. */ SmartPtr perturbHandler_; //@} /**@name Data about the correction made to the system */ //@{ /** A dummy cache to figure out if the deltas are still up to date*/ CachedResults dummy_cache_; /** Flag indicating if for the current matrix the solution quality * of the augmented system solver has already been increased. */ bool augsys_improved_; //@} /** @name Parameters */ //@{ /** Minimal number of iterative refinement performed per backsolve */ Index min_refinement_steps_; /** Maximal number of iterative refinement performed per backsolve */ Index max_refinement_steps_; /** Maximal allowed ratio of the norm of the residual over the * norm of the right hand side and solution. */ Number residual_ratio_max_; /** If the residual_ratio is larger than this value after trying * to improve the solution, the linear system is assumed to be * singular and modified. */ Number residual_ratio_singular_; /** Factor defining require improvement to consider iterative * refinement successful. */ Number residual_improvement_factor_; /** Tolernace for heuristic to ignore wrong inertia */ Number neg_curv_test_tol_; //@} /** Internal function for a single backsolve (which will be used * for iterative refinement on the outside). This method returns * false, if for some reason the linear system could not be * solved (e.g. when the regularization parameter becomes too * large.) */ bool SolveOnce(bool resolve_unmodified, bool pretend_singular, const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Px_L, const Matrix& Px_U, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_x, const Vector& sigma_s, Number alpha, Number beta, const IteratesVector& rhs, IteratesVector& res); /** Internal function for computing the residual (resid) given the * right hand side (rhs) and the solution of the system (res). */ void ComputeResiduals(const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Px_L, const Matrix& Px_U, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_x, const Vector& sigma_s, Number alpha, Number beta, const IteratesVector& rhs, const IteratesVector& res, IteratesVector& resid); /** Internal function for computing the ratio of the residual * compared to the right hand side and solution. The smaller * this value, the better the solution. */ Number ComputeResidualRatio(const IteratesVector& rhs, const IteratesVector& res, const IteratesVector& resid); /** @name Auxilliary functions */ //@{ /** Compute \f$ x = S^{-1}(r + \alpha Z P^T d)\f$ */ void SinvBlrmZPTdBr(Number alpha, const Vector& S, const Vector& R, const Vector& Z, const Matrix& P, const Vector&g, Vector& X); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpMonotoneMuUpdate.hpp0000644000076600007660000000572211504216567021443 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMonotoneMuUpdate.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPMONOTONEMUUPDATE_HPP__ #define __IPMONOTONEMUUPDATE_HPP__ #include "IpMuUpdate.hpp" #include "IpLineSearch.hpp" #include "IpRegOptions.hpp" namespace Ipopt { /** Monotone Mu Update. This class implements the standard monotone mu update * approach. */ class MonotoneMuUpdate : public MuUpdate { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ MonotoneMuUpdate(const SmartPtr& linesearch); /** Default destructor */ virtual ~MonotoneMuUpdate(); //@} /** Initialize method - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Method for determining the barrier parameter for the next * iteration. When the optimality error for the current barrier * parameter is less than a tolerance, the barrier parameter is * reduced, and the Reset method of the LineSearch object * linesearch is called. */ virtual bool UpdateBarrierParameter(); /** Methods for IpoptType */ //@{ static void RegisterOptions(const SmartPtr& roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ MonotoneMuUpdate(); /** Copy Constructor */ MonotoneMuUpdate(const MonotoneMuUpdate&); /** Overloaded Equals Operator */ void operator=(const MonotoneMuUpdate&); //@} /** Internal method for computing the new values for mu and tau */ void CalcNewMuAndTau(Number &new_mu, Number &new_tau); /** @name Algorithmic parameters */ //@{ /** Initial value of the barrier parameter */ Number mu_init_; Number barrier_tol_factor_; Number mu_linear_decrease_factor_; Number mu_superlinear_decrease_power_; bool mu_allow_fast_monotone_decrease_; /** Tau_min for fraction to boundary rule */ Number tau_min_; Number compl_inf_tol_; Number mu_target_; //@} SmartPtr linesearch_; /** Flag indicating whether the method has been called at least once so * far */ bool initialized_; /** If true, no modification of the barrier parameter will be done * at the first call of Update (fix for the restoration phase - * we should clean that up!) */ bool first_iter_resto_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpEqMultCalculator.hpp0000644000076600007660000000401611504216567021414 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpEqMultCalculator.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #ifndef __IPEQMULTCALCULATOR_HPP__ #define __IPEQMULTCALCULATOR_HPP__ #include "IpUtils.hpp" #include "IpAlgStrategy.hpp" namespace Ipopt { /** Base Class for objects that compute estimates for the equality * constraint multipliers y_c and y_d. For example, this is the * base class for objects for computing least square multipliers or * coordinate multipliers. */ class EqMultiplierCalculator: public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor. */ EqMultiplierCalculator() {} /** Default destructor */ virtual ~EqMultiplierCalculator() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** This method computes the estimates for y_c and y_d at the * current point. If the estimates cannot be computed (e.g. some * linear system is singular), the return value of this method is * false. */ virtual bool CalculateMultipliers(Vector& y_c, Vector& y_d) = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ EqMultiplierCalculator(const EqMultiplierCalculator&); /** Overloaded Equals Operator */ void operator=(const EqMultiplierCalculator&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpFilterLSAcceptor.cpp0000644000076600007660000007440011504216567021337 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpFilterLSAcceptor.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.cpp #include "IpFilterLSAcceptor.hpp" #include "IpJournalist.hpp" #include "IpRestoPhase.hpp" #include "IpAlgTypes.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif FilterLSAcceptor::FilterLSAcceptor(const SmartPtr& pd_solver) : filter_(2), pd_solver_(pd_solver) { DBG_START_FUN("FilterLSAcceptor::FilterLSAcceptor", dbg_verbosity); } FilterLSAcceptor::~FilterLSAcceptor() { DBG_START_FUN("FilterLSAcceptor::~FilterLSAcceptor()", dbg_verbosity); } void FilterLSAcceptor::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "theta_max_fact", "Determines upper bound for constraint violation in the filter.", 0.0, true, 1e4, "The algorithmic parameter theta_max is determined as theta_max_fact " "times the maximum of 1 and the constraint violation at initial point. " "Any point with a constraint violation larger than theta_max is " "unacceptable to the filter (see Eqn. (21) in the implementation paper)."); roptions->AddLowerBoundedNumberOption( "theta_min_fact", "Determines constraint violation threshold in the switching rule.", 0.0, true, 1e-4, "The algorithmic parameter theta_min is determined as theta_min_fact " "times the maximum of 1 and the constraint violation at initial point. " "The switching rules treats an iteration as an h-type iteration whenever " "the current constraint violation is larger than theta_min (see " "paragraph before Eqn. (19) in the implementation paper)."); roptions->AddBoundedNumberOption( "eta_phi", "Relaxation factor in the Armijo condition.", 0.0, true, 0.5, true, 1e-8, "(See Eqn. (20) in the implementation paper)"); roptions->AddLowerBoundedNumberOption( "delta", "Multiplier for constraint violation in the switching rule.", 0.0, true, 1.0, "(See Eqn. (19) in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "s_phi", "Exponent for linear barrier function model in the switching rule.", 1.0, true, 2.3, "(See Eqn. (19) in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "s_theta", "Exponent for current constraint violation in the switching rule.", 1.0, true, 1.1, "(See Eqn. (19) in the implementation paper.)"); roptions->AddBoundedNumberOption( "gamma_phi", "Relaxation factor in the filter margin for the barrier function.", 0.0, true, 1.0, true, 1e-8, "(See Eqn. (18a) in the implementation paper.)"); roptions->AddBoundedNumberOption( "gamma_theta", "Relaxation factor in the filter margin for the constraint violation.", 0.0, true, 1.0, true, 1e-5, "(See Eqn. (18b) in the implementation paper.)"); roptions->AddBoundedNumberOption( "alpha_min_frac", "Safety factor for the minimal step size (before switching to restoration phase).", 0.0, true, 1.0, true, 0.05, "(This is gamma_alpha in Eqn. (20) in the implementation paper.)"); roptions->AddLowerBoundedIntegerOption( "max_soc", "Maximum number of second order correction trial steps at each iteration.", 0, 4, "Choosing 0 disables the second order " "corrections. (This is p^{max} of Step A-5.9 of " "Algorithm A in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "kappa_soc", "Factor in the sufficient reduction rule for second order correction.", 0.0, true, 0.99, "This option determines how much a second order correction step must reduce the " "constraint violation so that further correction steps are attempted. " "(See Step A-5.9 of Algorithm A in the implementation paper.)"); roptions->AddLowerBoundedNumberOption( "obj_max_inc", "Determines the upper bound on the acceptable increase of barrier objective function.", 1.0, true, 5.0, "Trial points are rejected if they lead to an increase in the " "barrier objective function by more than obj_max_inc orders " "of magnitude."); roptions->AddLowerBoundedIntegerOption( "max_filter_resets", "Maximal allowed number of filter resets", 0, 5, "A positive number enables a heuristic that resets the filter, whenever " "in more than \"filter_reset_trigger\" successive iterations the last " "rejected trial steps size was rejected because of the filter. This " "option determine the maximal number of resets that are allowed to take " "place."); roptions->AddLowerBoundedIntegerOption( "filter_reset_trigger", "Number of iterations that trigger the filter reset.", 1, 5, "If the filter reset heuristic is active and the number of successive " "iterations in which the last rejected trial step size was rejected " "because of the filter, the filter is reset."); roptions->AddStringOption3( "corrector_type", "The type of corrector steps that should be taken (unsupported!).", "none", "none", "no corrector", "affine", "corrector step towards mu=0", "primal-dual", "corrector step towards current mu", "If \"mu_strategy\" is \"adaptive\", this option determines " "what kind of corrector steps should be tried."); roptions->AddStringOption2( "skip_corr_if_neg_curv", "Skip the corrector step in negative curvature iteration (unsupported!).", "yes", "no", "don't skip", "yes", "skip", "The corrector step is not tried if negative curvature has been " "encountered during the computation of the search direction in " "the current iteration. This option is only used if \"mu_strategy\" is " "\"adaptive\"."); roptions->AddStringOption2( "skip_corr_in_monotone_mode", "Skip the corrector step during monotone barrier parameter mode (unsupported!).", "yes", "no", "don't skip", "yes", "skip", "The corrector step is not tried if the algorithm is currently in the " "monotone mode (see also option \"barrier_strategy\")." "This option is only used if \"mu_strategy\" is \"adaptive\"."); roptions->AddLowerBoundedNumberOption( "corrector_compl_avrg_red_fact", "Complementarity tolerance factor for accepting corrector step (unsupported!).", 0.0, true, 1.0, "This option determines the factor by which complementarity is allowed to increase " "for a corrector step to be accepted."); } bool FilterLSAcceptor::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("theta_max_fact", theta_max_fact_, prefix); options.GetNumericValue("theta_min_fact", theta_min_fact_, prefix); ASSERT_EXCEPTION(theta_min_fact_ < theta_max_fact_, OPTION_INVALID, "Option \"theta_min_fact\": This value must be larger than 0 and less than theta_max_fact."); options.GetNumericValue("eta_phi", eta_phi_, prefix); options.GetNumericValue("delta", delta_, prefix); options.GetNumericValue("s_phi", s_phi_, prefix); options.GetNumericValue("s_theta", s_theta_, prefix); options.GetNumericValue("gamma_phi", gamma_phi_, prefix); options.GetNumericValue("gamma_theta", gamma_theta_, prefix); options.GetNumericValue("alpha_min_frac", alpha_min_frac_, prefix); options.GetIntegerValue("max_soc", max_soc_, prefix); if (max_soc_>0) { ASSERT_EXCEPTION(IsValid(pd_solver_), OPTION_INVALID, "Option \"max_soc\": This option is non-negative, but no linear solver for computing the SOC given to FilterLSAcceptor object."); } options.GetNumericValue("kappa_soc", kappa_soc_, prefix); options.GetIntegerValue("max_filter_resets", max_filter_resets_, prefix); options.GetIntegerValue("filter_reset_trigger", filter_reset_trigger_, prefix); options.GetNumericValue("obj_max_inc", obj_max_inc_, prefix); Index enum_int; options.GetEnumValue("corrector_type", enum_int, prefix); corrector_type_ = CorrectorTypeEnum(enum_int); options.GetBoolValue("skip_corr_if_neg_curv", skip_corr_if_neg_curv_, prefix); options.GetBoolValue("skip_corr_in_monotone_mode", skip_corr_in_monotone_mode_, prefix); options.GetNumericValue("corrector_compl_avrg_red_fact", corrector_compl_avrg_red_fact_, prefix); theta_min_ = -1.; theta_max_ = -1.; n_filter_resets_ = 0; Reset(); return true; } void FilterLSAcceptor::InitThisLineSearch(bool in_watchdog) { DBG_START_METH("FilterLSAcceptor::InitThisLineSearch", dbg_verbosity); // Set the values for the reference point if (!in_watchdog) { reference_theta_ = IpCq().curr_constraint_violation(); reference_barr_ = IpCq().curr_barrier_obj(); reference_gradBarrTDelta_ = IpCq().curr_gradBarrTDelta(); } else { reference_theta_ = watchdog_theta_; reference_barr_ = watchdog_barr_; reference_gradBarrTDelta_ = watchdog_gradBarrTDelta_; } filter_.Print(Jnlst()); } bool FilterLSAcceptor::IsFtype(Number alpha_primal_test) { DBG_START_METH("FilterLSAcceptor::IsFtype", dbg_verbosity); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "reference_theta = %e reference_gradBarrTDelta = %e\n", reference_theta_, reference_gradBarrTDelta_); Number mach_eps = std::numeric_limits::epsilon(); // ToDo find good value if (reference_theta_==0. && reference_gradBarrTDelta_ > 0. && reference_gradBarrTDelta_ < 100.*mach_eps) { reference_gradBarrTDelta_ = -mach_eps; Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "reference_theta is slightly positive at feasible point. Setting it to %e\n", reference_gradBarrTDelta_); } DBG_ASSERT(reference_theta_>0. || reference_gradBarrTDelta_ < 0.0); return (reference_gradBarrTDelta_ < 0.0 && alpha_primal_test*pow(-reference_gradBarrTDelta_,s_phi_) > delta_*pow(reference_theta_,s_theta_)); } void FilterLSAcceptor::AugmentFilter() { DBG_START_METH("FilterLSAcceptor::AugmentFilter", dbg_verbosity); Number phi_add = reference_barr_ - gamma_phi_*reference_theta_; Number theta_add = (1.-gamma_theta_)*reference_theta_; filter_.AddEntry(phi_add, theta_add, IpData().iter_count()); } bool FilterLSAcceptor::CheckAcceptabilityOfTrialPoint(Number alpha_primal_test) { DBG_START_METH("FilterLSAcceptor::CheckAcceptabilityOfTrialPoint", dbg_verbosity); bool accept; // First compute the barrier function and constraint violation at the // current iterate and the trial point Number trial_theta = IpCq().trial_constraint_violation(); // Check if constraint violation is becoming too large if (theta_max_ < 0.0) { // ToDo should 1.0 be based on dimension? (theta is in 1 norm!!!) theta_max_ = theta_max_fact_*Max(1.0, reference_theta_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "trial_max is initialized to %e\n", theta_max_); } if (theta_min_ < 0.0) { theta_min_ = theta_min_fact_*Max(1.0, reference_theta_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "trial_min is initialized to %e\n", theta_min_); } if (theta_max_>0 && trial_theta>theta_max_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "trial_theta = %e is larger than theta_max = %e\n", trial_theta, theta_max_); IpData().Append_info_string("Tmax"); return false; } Number trial_barr = IpCq().trial_barrier_obj(); DBG_ASSERT(IsFiniteNumber(trial_barr)); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking acceptability for trial step size alpha_primal_test=%13.6e:\n", alpha_primal_test); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of barrier function = %23.16e (reference %23.16e):\n", trial_barr, reference_barr_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of constraint violation = %23.16e (reference %23.16e):\n", trial_theta, reference_theta_); // Check if point is acceptable w.r.t current iterate if (alpha_primal_test>0. && IsFtype(alpha_primal_test) && reference_theta_ <= theta_min_) { // Armijo condition for the barrier function has to be satisfied Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking Armijo Condition...\n"); accept = ArmijoHolds(alpha_primal_test); } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking sufficient reduction...\n"); accept = IsAcceptableToCurrentIterate(trial_barr, trial_theta); } if (!accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Failed...\n"); last_rejection_due_to_filter_ = false; return accept; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Succeeded...\n"); } // Now check if that pair is acceptable to the filter Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking filter acceptability...\n"); accept = IsAcceptableToCurrentFilter(trial_barr, trial_theta); if (!accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Failed...\n"); last_rejection_due_to_filter_ = true; return accept; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Succeeded...\n"); } // Filter reset heuristic if (max_filter_resets_>0) { if (n_filter_resets_=filter_reset_trigger_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Resetting filter because in %d iterations last rejection was due to filter", count_successive_filter_rejections_); IpData().Append_info_string("F+"); Reset(); } } else { count_successive_filter_rejections_ = 0; } } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Filter should be reset, but maximal number of resets already exceeded.\n"); IpData().Append_info_string("F-"); } } last_rejection_due_to_filter_= false; return accept; } bool FilterLSAcceptor::ArmijoHolds(Number alpha_primal_test) { /* Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "ArmijoHolds test with trial_barr = %25.16e reference_barr = %25.16e\n alpha_primal_test = %25.16e reference_gradBarrTDelta = %25.16e\n", IpCq().trial_barrier_obj(), reference_barr_,alpha_primal_test,reference_gradBarrTDelta_); */ return Compare_le(IpCq().trial_barrier_obj()-reference_barr_, eta_phi_*alpha_primal_test*reference_gradBarrTDelta_, reference_barr_); } Number FilterLSAcceptor::CalculateAlphaMin() { Number gBD = IpCq().curr_gradBarrTDelta(); Number curr_theta = IpCq().curr_constraint_violation(); Number alpha_min = gamma_theta_; if (gBD < 0) { alpha_min = Min( gamma_theta_, gamma_phi_*curr_theta/(-gBD)); if (curr_theta <= theta_min_) { alpha_min = Min( alpha_min, delta_*pow(curr_theta,s_theta_)/pow(-gBD,s_phi_) ); } } return alpha_min_frac_*alpha_min; } bool FilterLSAcceptor::IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration /*=false*/) const { DBG_START_METH("FilterLSAcceptor::IsAcceptableToCurrentIterate", dbg_verbosity); // Check if the barrier objective function is increasing to // rapidly (according to option obj_max_inc) if (!called_from_restoration && trial_barr > reference_barr_) { Number basval = 1.; if (fabs(reference_barr_)>10.) { basval = log10(fabs(reference_barr_)); } if (log10(trial_barr-reference_barr_)>obj_max_inc_+basval) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Rejecting trial point because barrier objective function increasing too rapidly (from %27.15e to %27.15e)\n",reference_barr_,trial_barr); return false; } } DBG_PRINT((1,"trial_barr = %e reference_barr = %e\n", trial_barr, reference_barr_)); DBG_PRINT((1,"trial_theta = %e reference_theta = %e\n", trial_theta, reference_theta_)); return (Compare_le(trial_theta, (1.-gamma_theta_)*reference_theta_, reference_theta_) || Compare_le(trial_barr-reference_barr_, -gamma_phi_*reference_theta_, reference_barr_)); } bool FilterLSAcceptor::IsAcceptableToCurrentFilter(Number trial_barr, Number trial_theta) const { return filter_.Acceptable(trial_barr, trial_theta); } void FilterLSAcceptor::StartWatchDog() { DBG_START_FUN("FilterLSAcceptor::StartWatchDog", dbg_verbosity); watchdog_theta_ = IpCq().curr_constraint_violation(); watchdog_barr_ = IpCq().curr_barrier_obj(); watchdog_gradBarrTDelta_ = IpCq().curr_gradBarrTDelta(); } void FilterLSAcceptor::StopWatchDog() { DBG_START_FUN("FilterLSAcceptor::StopWatchDog", dbg_verbosity); reference_theta_ = watchdog_theta_; reference_barr_ = watchdog_barr_; reference_gradBarrTDelta_ = watchdog_gradBarrTDelta_; } void FilterLSAcceptor::Reset() { DBG_START_FUN("FilterLSAcceptor::Reset", dbg_verbosity); last_rejection_due_to_filter_ = false; count_successive_filter_rejections_ = 0; filter_.Clear(); } bool FilterLSAcceptor::TrySecondOrderCorrection( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { DBG_START_METH("FilterLSAcceptor::TrySecondOrderCorrection", dbg_verbosity); if (max_soc_==0) { return false; } bool accept = false; Index count_soc = 0; Number theta_soc_old = 0.; Number theta_trial = IpCq().trial_constraint_violation(); Number alpha_primal_soc = alpha_primal; SmartPtr c_soc = IpCq().curr_c()->MakeNew(); SmartPtr dms_soc = IpCq().curr_d_minus_s()->MakeNew(); c_soc->Copy(*IpCq().curr_c()); dms_soc->Copy(*IpCq().curr_d_minus_s()); while (count_socAddOneVector(1.0, *IpCq().trial_c(), alpha_primal_soc); dms_soc->AddOneVector(1.0, *IpCq().trial_d_minus_s(), alpha_primal_soc); // Compute the SOC search direction SmartPtr delta_soc = actual_delta->MakeNewIteratesVector(true); SmartPtr rhs = actual_delta->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_with_damping_x()); rhs->Set_s(*IpCq().curr_grad_lag_with_damping_s()); rhs->Set_y_c(*c_soc); rhs->Set_y_d(*dms_soc); rhs->Set_z_L(*IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_U(*IpCq().curr_relaxed_compl_x_U()); rhs->Set_v_L(*IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_U(*IpCq().curr_relaxed_compl_s_U()); bool retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *delta_soc, true); if (!retval) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "The linear system could not be solved for the corrector step.\n"); return false; } // Compute step size alpha_primal_soc = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *delta_soc->x(), *delta_soc->s()); // Check if trial point is acceptable try { // Compute the primal trial point IpData().SetTrialPrimalVariablesFromStep(alpha_primal_soc, *delta_soc->x(), *delta_soc->s()); // in acceptance tests, use original step size! accept = CheckAcceptabilityOfTrialPoint(alpha_primal_test); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_MAIN, "Warning: SOC step rejected due to evaluation error\n"); IpData().Append_info_string("e"); accept = false; // There is no point in continuing SOC procedure break; } if (accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Second order correction step accepted with %d corrections.\n", count_soc+1); // Accept all SOC quantities alpha_primal = alpha_primal_soc; actual_delta = delta_soc; } else { count_soc++; theta_trial = IpCq().trial_constraint_violation(); } } return accept; } bool FilterLSAcceptor::TryCorrector( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { if (corrector_type_==NO_CORRECTOR || (skip_corr_if_neg_curv_ && IpData().info_regu_x()!=0.) || (skip_corr_in_monotone_mode_ && !IpData().FreeMuMode())) { return false; } DBG_START_METH("FilterLSAcceptor::TryCorrector", dbg_verbosity); Index n_bounds = IpData().curr()->z_L()->Dim() + IpData().curr()->z_U()->Dim() + IpData().curr()->v_L()->Dim() + IpData().curr()->v_U()->Dim(); if (n_bounds==0) { // Nothing to be done return false; } IpData().TimingStats().TryCorrector().Start(); bool accept = false; // Compute the corrector step based on corrector_type parameter // create a new iterates vector and allocate space for all the entries SmartPtr delta_corr = actual_delta->MakeNewIteratesVector(true); switch (corrector_type_) { case AFFINE_CORRECTOR : { // 1: Standard MPC corrector if (!IpData().HaveAffineDeltas()) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Solving the Primal Dual System for the affine step\n"); // First get the right hand side SmartPtr rhs_aff = delta_corr->MakeNewContainer(); rhs_aff->Set_x(*IpCq().curr_grad_lag_x()); rhs_aff->Set_s(*IpCq().curr_grad_lag_s()); rhs_aff->Set_y_c(*IpCq().curr_c()); rhs_aff->Set_y_d(*IpCq().curr_d_minus_s()); rhs_aff->Set_z_L(*IpCq().curr_compl_x_L()); rhs_aff->Set_z_U(*IpCq().curr_compl_x_U()); rhs_aff->Set_v_L(*IpCq().curr_compl_s_L()); rhs_aff->Set_v_U(*IpCq().curr_compl_s_U()); // create a new iterates vector (with allocated space) // for the affine scaling step SmartPtr step_aff = delta_corr->MakeNewIteratesVector(true); // Now solve the primal-dual system to get the step pd_solver_->Solve(-1.0, 0.0, *rhs_aff, *step_aff, false); DBG_PRINT_VECTOR(2, "step_aff", *step_aff); IpData().set_delta_aff(step_aff); IpData().SetHaveAffineDeltas(true); } DBG_ASSERT(IpData().HaveAffineDeltas()); const SmartPtr delta_aff = IpData().delta_aff(); delta_corr->Copy(*actual_delta); // create a rhs vector and allocate entries SmartPtr rhs = actual_delta->MakeNewIteratesVector(true); rhs->x_NonConst()->Set(0.); rhs->s_NonConst()->Set(0.); rhs->y_c_NonConst()->Set(0.); rhs->y_d_NonConst()->Set(0.); IpNLP().Px_L()->TransMultVector(-1., *delta_aff->x(), 0., *rhs->z_L_NonConst()); rhs->z_L_NonConst()->ElementWiseMultiply(*delta_aff->z_L()); IpNLP().Px_U()->TransMultVector(1., *delta_aff->x(), 0., *rhs->z_U_NonConst()); rhs->z_U_NonConst()->ElementWiseMultiply(*delta_aff->z_U()); IpNLP().Pd_L()->TransMultVector(-1., *delta_aff->s(), 0., *rhs->v_L_NonConst()); rhs->v_L_NonConst()->ElementWiseMultiply(*delta_aff->v_L()); IpNLP().Pd_U()->TransMultVector(1., *delta_aff->s(), 0., *rhs->v_U_NonConst()); rhs->v_U_NonConst()->ElementWiseMultiply(*delta_aff->v_U()); pd_solver_->Solve(1.0, 1.0, *rhs, *delta_corr, true); DBG_PRINT_VECTOR(2, "delta_corr", *delta_corr); } break; case PRIMAL_DUAL_CORRECTOR : { // 2: Second order correction for primal-dual step to // primal-dual mu delta_corr->Copy(*actual_delta); // allocate space for the rhs SmartPtr rhs = actual_delta->MakeNewIteratesVector(true); rhs->x_NonConst()->Set(0.); rhs->s_NonConst()->Set(0.); rhs->y_c_NonConst()->Set(0.); rhs->y_d_NonConst()->Set(0.); Number mu = IpData().curr_mu(); SmartPtr tmp; rhs->z_L_NonConst()->Copy(*IpCq().curr_slack_x_L()); IpNLP().Px_L()->TransMultVector(-1., *actual_delta->x(), -1., *rhs->z_L_NonConst()); tmp = actual_delta->z_L()->MakeNew(); tmp->AddTwoVectors(1., *IpData().curr()->z_L(), 1., *actual_delta->z_L(), 0.); rhs->z_L_NonConst()->ElementWiseMultiply(*tmp); rhs->z_L_NonConst()->AddScalar(mu); rhs->z_U_NonConst()->Copy(*IpCq().curr_slack_x_U()); IpNLP().Px_U()->TransMultVector(1., *actual_delta->x(), -1., *rhs->z_U_NonConst()); tmp = actual_delta->z_U()->MakeNew(); tmp->AddTwoVectors(1., *IpData().curr()->z_U(), 1., *actual_delta->z_U(), 0.); rhs->z_U_NonConst()->ElementWiseMultiply(*tmp); rhs->z_U_NonConst()->AddScalar(mu); rhs->v_L_NonConst()->Copy(*IpCq().curr_slack_s_L()); IpNLP().Pd_L()->TransMultVector(-1., *actual_delta->s(), -1., *rhs->v_L_NonConst()); tmp = actual_delta->v_L()->MakeNew(); tmp->AddTwoVectors(1., *IpData().curr()->v_L(), 1., *actual_delta->v_L(), 0.); rhs->v_L_NonConst()->ElementWiseMultiply(*tmp); rhs->v_L_NonConst()->AddScalar(mu); rhs->v_U_NonConst()->Copy(*IpCq().curr_slack_s_U()); IpNLP().Pd_U()->TransMultVector(1., *actual_delta->s(), -1., *rhs->v_U_NonConst()); tmp = actual_delta->v_U()->MakeNew(); tmp->AddTwoVectors(1., *IpData().curr()->v_U(), 1., *actual_delta->v_U(), 0.); rhs->v_U_NonConst()->ElementWiseMultiply(*tmp); rhs->v_U_NonConst()->AddScalar(mu); DBG_PRINT_VECTOR(2, "rhs", *rhs); pd_solver_->Solve(1.0, 1.0, *rhs, *delta_corr, true); DBG_PRINT_VECTOR(2, "delta_corr", *delta_corr); } break; default: DBG_ASSERT(false && "Unknown corrector_type value."); } // Compute step size Number alpha_primal_corr = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *delta_corr->x(), *delta_corr->s()); // Set the primal trial point IpData().SetTrialPrimalVariablesFromStep(alpha_primal_corr, *delta_corr->x(), *delta_corr->s()); // Check if we want to not even try the filter criterion Number alpha_dual_max = IpCq().dual_frac_to_the_bound(IpData().curr_tau(), *delta_corr->z_L(), *delta_corr->z_U(), *delta_corr->v_L(), *delta_corr->v_U()); IpData().SetTrialBoundMultipliersFromStep(alpha_dual_max, *delta_corr->z_L(), *delta_corr->z_U(), *delta_corr->v_L(), *delta_corr->v_U()); Number trial_avrg_compl = IpCq().trial_avrg_compl(); Number curr_avrg_compl = IpCq().curr_avrg_compl(); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "avrg_compl(curr) = %e, avrg_compl(trial) = %e\n", curr_avrg_compl, trial_avrg_compl); if (corrector_type_==AFFINE_CORRECTOR && trial_avrg_compl>=corrector_compl_avrg_red_fact_*curr_avrg_compl) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Rejecting corrector step, because trial complementarity is too large.\n" ); IpData().TimingStats().TryCorrector().End(); return false; } // Check if trial point is acceptable try { // in acceptance tests, use original step size! accept = CheckAcceptabilityOfTrialPoint(alpha_primal_test); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_MAIN, "Warning: Corrector step rejected due to evaluation error\n"); IpData().Append_info_string("e"); accept = false; } if (accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Corrector step accepted with alpha_primal = %e\n", alpha_primal_corr); // Accept all SOC quantities alpha_primal = alpha_primal_corr; actual_delta = delta_corr; if (Jnlst().ProduceOutput(J_MOREVECTOR, J_MAIN)) { Jnlst().Printf(J_MOREVECTOR, J_MAIN, "*** Accepted corrector for Iteration: %d\n", IpData().iter_count()); delta_corr->Print(Jnlst(), J_MOREVECTOR, J_MAIN, "delta_corr"); } } IpData().TimingStats().TryCorrector().End(); return accept; } char FilterLSAcceptor::UpdateForNextIteration(Number alpha_primal_test) { char info_alpha_primal_char; // Augment the filter if required if (!IsFtype(alpha_primal_test) || !ArmijoHolds(alpha_primal_test)) { AugmentFilter(); info_alpha_primal_char = 'h'; } else { info_alpha_primal_char = 'f'; } return info_alpha_primal_char; } void FilterLSAcceptor::PrepareRestoPhaseStart() { AugmentFilter(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpWarmStartIterateInitializer.cpp0000644000076600007660000004135211504216567023640 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpWarmStartIterateInitializer.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-04-01 #include "IpWarmStartIterateInitializer.hpp" #include "IpDefaultIterateInitializer.hpp" // ToDo make independent of DenseVector #include "IpDenseVector.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif WarmStartIterateInitializer::WarmStartIterateInitializer() : IterateInitializer() {} void WarmStartIterateInitializer::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "warm_start_bound_push", "same as bound_push for the regular initializer.", 0.0, true, 1e-3); roptions->AddBoundedNumberOption( "warm_start_bound_frac", "same as bound_frac for the regular initializer.", 0.0, true, 0.5, false, 1e-3); roptions->AddLowerBoundedNumberOption( "warm_start_slack_bound_push", "same as slack_bound_push for the regular initializer.", 0.0, true, 1e-3); roptions->AddBoundedNumberOption( "warm_start_slack_bound_frac", "same as slack_bound_frac for the regular initializer.", 0.0, true, 0.5, false, 1e-3); roptions->AddLowerBoundedNumberOption( "warm_start_mult_bound_push", "same as mult_bound_push for the regular initializer.", 0.0, true, 1e-3); roptions->AddNumberOption( "warm_start_mult_init_max", "Maximum initial value for the equality multipliers.", 1e6); roptions->AddStringOption2( "warm_start_entire_iterate", "Tells algorithm whether to use the GetWarmStartIterate method in the NLP.", "no", "no", "call GetStartingPoint in the NLP", "yes", "call GetWarmStartIterate in the NLP", ""); roptions->SetRegisteringCategory("Uncategorized"); roptions->AddNumberOption( "warm_start_target_mu", "Unsupported!", 0e-3); } bool WarmStartIterateInitializer::InitializeImpl(const OptionsList& options, const std::string& prefix) { if (!options.GetNumericValue("warm_start_bound_push", warm_start_bound_push_, prefix)) { options.GetNumericValue("bound_push", warm_start_bound_push_, prefix); } if (!options.GetNumericValue("warm_start_bound_frac", warm_start_bound_frac_, prefix)) { options.GetNumericValue("bound_frac", warm_start_bound_frac_, prefix); } if (!options.GetNumericValue("warm_start_slack_bound_push", warm_start_slack_bound_push_, prefix)) { if (!options.GetNumericValue("bound_push", warm_start_slack_bound_push_, prefix)) { if (!options.GetNumericValue("warm_start_slack_bound_push", warm_start_slack_bound_push_, prefix)) { options.GetNumericValue("bound_push", warm_start_slack_bound_push_, prefix); } } } if (!options.GetNumericValue("warm_start_slack_bound_frac", warm_start_slack_bound_frac_, prefix)) { if (!options.GetNumericValue("bound_frac", warm_start_slack_bound_frac_, prefix)) { if (!options.GetNumericValue("warm_start_slack_bound_frac", warm_start_slack_bound_frac_, prefix)) { options.GetNumericValue("bound_frac", warm_start_slack_bound_frac_, prefix); } } } options.GetNumericValue("warm_start_mult_bound_push", warm_start_mult_bound_push_, prefix); options.GetNumericValue("warm_start_mult_init_max", warm_start_mult_init_max_, prefix); options.GetNumericValue("warm_start_target_mu", warm_start_target_mu_, prefix); options.GetBoolValue("warm_start_entire_iterate", warm_start_entire_iterate_, prefix); return true; } bool WarmStartIterateInitializer::SetInitialIterates() { DBG_START_METH("WarmStartIterateInitializer::SetInitialIterates", dbg_verbosity); // Get the starting values provided by the NLP and store them // in the ip_data current fields. SmartPtr init_vec; bool have_iterate = false; if (warm_start_entire_iterate_) { if (!IpData().InitializeDataStructures(IpNLP(), false, false, false, false, false)) { return false; } init_vec = IpData().curr()->MakeNewIteratesVector(true); have_iterate = IpNLP().GetWarmStartIterate(*init_vec); if (!have_iterate) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Tried to obtain entire warm start iterate from NLP, but it returned false.\n"); IpData().Append_info_string("NW"); } // Make sure given bounds are respected if (have_iterate && warm_start_mult_init_max_>0.) { SmartPtr y_c = init_vec->create_new_y_c_copy(); SmartPtr tmp = y_c->MakeNew(); tmp->Set(warm_start_mult_init_max_); y_c->ElementWiseMin(*tmp); tmp->Set(-warm_start_mult_init_max_); y_c->ElementWiseMax(*tmp); SmartPtr y_d = init_vec->create_new_y_d_copy(); tmp = y_d->MakeNew(); tmp->Set(warm_start_mult_init_max_); y_d->ElementWiseMin(*tmp); tmp->Set(-warm_start_mult_init_max_); y_d->ElementWiseMax(*tmp); SmartPtr z_L = init_vec->create_new_z_L_copy(); tmp = z_L->MakeNew(); tmp->Set(warm_start_mult_init_max_); z_L->ElementWiseMin(*tmp); SmartPtr z_U = init_vec->create_new_z_U_copy(); tmp = z_U->MakeNew(); tmp->Set(warm_start_mult_init_max_); z_U->ElementWiseMin(*tmp); SmartPtr v_L = init_vec->create_new_v_L_copy(); tmp = v_L->MakeNew(); tmp->Set(warm_start_mult_init_max_); v_L->ElementWiseMin(*tmp); SmartPtr v_U = init_vec->create_new_v_U_copy(); tmp = v_U->MakeNew(); tmp->Set(warm_start_mult_init_max_); v_U->ElementWiseMin(*tmp); } } if (!have_iterate) { ///////////////////////////////////////////////////////////////////// // Initialize primal variables // ///////////////////////////////////////////////////////////////////// // Get the intial values for x, y_c, y_d, z_L, z_U, if (!IpData().InitializeDataStructures(IpNLP(), true, true, true, true, true)) { return false; } IpData().curr()->x()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "user-provided x"); IpData().curr()->y_c()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "user-provided y_c"); IpData().curr()->y_d()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "user-provided y_d"); IpData().curr()->z_L()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "user-provided z_L"); IpData().curr()->z_U()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "user-provided z_U"); if (Jnlst().ProduceOutput(J_MOREVECTOR, J_INITIALIZATION)) { IpCq().curr_d()->Print(Jnlst(), J_MOREVECTOR, J_INITIALIZATION, "d at user-provided x"); } SmartPtr tmp; init_vec = IpData().curr()->MakeNewContainer(); // If requested, make sure that the multipliers are not too large if (warm_start_mult_init_max_>0.) { SmartPtr y_c = init_vec->create_new_y_c_copy(); tmp = y_c->MakeNew(); tmp->Set(warm_start_mult_init_max_); y_c->ElementWiseMin(*tmp); tmp->Set(-warm_start_mult_init_max_); y_c->ElementWiseMax(*tmp); SmartPtr y_d = init_vec->create_new_y_d_copy(); tmp = y_d->MakeNew(); tmp->Set(warm_start_mult_init_max_); y_d->ElementWiseMin(*tmp); tmp->Set(-warm_start_mult_init_max_); y_d->ElementWiseMax(*tmp); SmartPtr z_L = init_vec->create_new_z_L_copy(); tmp = z_L->MakeNew(); tmp->Set(warm_start_mult_init_max_); z_L->ElementWiseMin(*tmp); SmartPtr z_U = init_vec->create_new_z_U_copy(); tmp = z_U->MakeNew(); tmp->Set(warm_start_mult_init_max_); z_U->ElementWiseMin(*tmp); } // Get the initial values for v_L and v_U out of y_d SmartPtr v_L = init_vec->create_new_v_L(); IpNLP().Pd_L()->TransMultVector(-1., *init_vec->y_d(), 0., *v_L); tmp = v_L->MakeNew(); tmp->Set(warm_start_mult_bound_push_); v_L->ElementWiseMax(*tmp); SmartPtr v_U = init_vec->create_new_v_U(); IpNLP().Pd_U()->TransMultVector(1., *init_vec->y_d(), 0., *v_U); tmp = v_U->MakeNew(); tmp->Set(warm_start_mult_bound_push_); v_U->ElementWiseMax(*tmp); // Initialize slack variables init_vec->Set_s(*IpCq().curr_d()); } // Make the corrected values current (and initialize s) IpData().set_trial(init_vec); IpData().AcceptTrialPoint(); // Now apply the target mu heuristic if required if (warm_start_target_mu_>0.) { SmartPtr new_x; SmartPtr new_z_L; SmartPtr curr = IpData().curr(); process_target_mu(1., *curr->x(), *IpCq().curr_slack_x_L(), *curr->z_L(), *IpNLP().Px_L(), new_x, new_z_L); SmartPtr new_s; SmartPtr new_v_L; process_target_mu(1., *curr->s(), *IpCq().curr_slack_s_L(), *curr->v_L(), *IpNLP().Pd_L(), new_s, new_v_L); // Set the trial pointers to new_x and new_s. The process_target_mu // methods below create new vectors in new_x and new_s and do not alter // the existing ones. init_vec->Set_x(*new_x); init_vec->Set_s(*new_s); IpData().set_trial(init_vec); SmartPtr new_z_U; process_target_mu(-1., *IpData().trial()->x(), *IpCq().trial_slack_x_U(), *IpData().curr()->z_U(), *IpNLP().Px_U(), new_x, new_z_U); SmartPtr new_v_U; process_target_mu(-1., *IpData().trial()->s(), *IpCq().trial_slack_s_U(), *IpData().curr()->v_U(), *IpNLP().Pd_U(), new_s, new_v_U); // Now submit the full modified point init_vec->Set_x(*new_x); init_vec->Set_s(*new_s); // y_c and y_d currently contain a copy of curr()->y_c... // we set them back to the actual pointer to reuse the tags init_vec->Set_y_c(*IpData().curr()->y_c()); init_vec->Set_y_d(*IpData().curr()->y_d()); init_vec->Set_z_L(*new_z_L); init_vec->Set_z_U(*new_z_U); init_vec->Set_v_L(*new_v_L); init_vec->Set_v_U(*new_v_U); IpData().set_trial(init_vec); IpData().AcceptTrialPoint(); // We need to call this to make sure that we don't get an error // message because at some point a slack became too small IpCq().ResetAdjustedTrialSlacks(); } SmartPtr new_x; SmartPtr new_s; // Push the primal x variables DefaultIterateInitializer::push_variables(Jnlst(), warm_start_bound_push_, warm_start_bound_frac_, "x", *IpData().curr()->x(), new_x, *IpNLP().x_L(), *IpNLP().x_U(), *IpNLP().Px_L(), *IpNLP().Px_U()); // Push the primal s variables DefaultIterateInitializer::push_variables(Jnlst(), warm_start_slack_bound_push_, warm_start_slack_bound_frac_, "s", *IpData().curr()->s(), new_s, *IpNLP().d_L(), *IpNLP().d_U(), *IpNLP().Pd_L(), *IpNLP().Pd_U()); // Push the multipliers SmartPtr new_z_L = IpData().curr()->z_L()->MakeNewCopy(); SmartPtr tmp = IpData().curr()->z_L()->MakeNew(); tmp->Set(warm_start_mult_bound_push_); new_z_L->ElementWiseMax(*tmp); SmartPtr new_z_U = IpData().curr()->z_U()->MakeNewCopy(); tmp = IpData().curr()->z_U()->MakeNew(); tmp->Set(warm_start_mult_bound_push_); new_z_U->ElementWiseMax(*tmp); SmartPtr new_v_L = IpData().curr()->v_L()->MakeNewCopy(); tmp = IpData().curr()->v_L()->MakeNew(); tmp->Set(warm_start_mult_bound_push_); new_v_L->ElementWiseMax(*tmp); SmartPtr new_v_U = IpData().curr()->v_U()->MakeNewCopy(); tmp = IpData().curr()->v_U()->MakeNew(); tmp->Set(warm_start_mult_bound_push_); new_v_U->ElementWiseMax(*tmp); // Make sure the new variables are current init_vec = IpData().curr()->MakeNewContainer(); init_vec->Set_x(*new_x); init_vec->Set_s(*new_s); init_vec->Set_z_L(*new_z_L); init_vec->Set_z_U(*new_z_U); init_vec->Set_v_L(*new_v_L); init_vec->Set_v_U(*new_v_U); IpData().set_trial(init_vec); IpData().AcceptTrialPoint(); IpData().curr()->x()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial x"); IpData().curr()->s()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial s"); IpData().curr()->y_c()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial y_c"); IpData().curr()->y_d()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial y_d"); IpData().curr()->z_L()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial z_L"); IpData().curr()->z_U()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial z_U"); IpData().curr()->v_L()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial v_L"); IpData().curr()->v_U()->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "initial v_U"); if (Jnlst().ProduceOutput(J_MOREVECTOR, J_INITIALIZATION)) { IpCq().curr_slack_x_L()->Print(Jnlst(), J_MOREVECTOR, J_INITIALIZATION, "initial slack_x_L"); IpCq().curr_slack_x_U()->Print(Jnlst(), J_MOREVECTOR, J_INITIALIZATION, "initial slack_x_U"); IpCq().curr_slack_s_L()->Print(Jnlst(), J_MOREVECTOR, J_INITIALIZATION, "initial slack_s_L"); IpCq().curr_slack_s_U()->Print(Jnlst(), J_MOREVECTOR, J_INITIALIZATION, "initial slack_s_U"); } return true; } void WarmStartIterateInitializer::process_target_mu(Number factor, const Vector& curr_vars, const Vector& curr_slacks, const Vector& curr_mults, const Matrix& P, SmartPtr& ret_vars, SmartPtr& ret_mults) { SmartPtr new_slacks = curr_slacks.MakeNewCopy(); SmartPtr new_mults = curr_mults.MakeNewCopy(); adapt_to_target_mu(*new_slacks, *new_mults, warm_start_target_mu_); new_slacks->Axpy(-1, curr_slacks); // this is now correction step SmartPtr new_vars = curr_vars.MakeNew(); new_vars->Copy(curr_vars); P.MultVector(factor, *new_slacks, 1., *new_vars); ret_vars = ConstPtr(new_vars); ret_mults = ConstPtr(new_mults); } void WarmStartIterateInitializer::adapt_to_target_mu(Vector& new_s, Vector& new_z, Number target_mu) { DBG_ASSERT(new_s.Dim() == new_z.Dim()); DenseVector* dnew_s = dynamic_cast(&new_s); assert(dnew_s); DenseVector* dnew_z = dynamic_cast(&new_z); assert(dnew_z); Number* values_s = dnew_s->Values(); Number* values_z = dnew_z->Values(); for (Index i=0; i 1e4*values_z[i]) { values_z[i] = target_mu/values_s[i]; if (values_z[i]>values_s[i]) { values_s[i] = values_z[i] = sqrt(target_mu); } } else if (values_z[i] > 1e4*values_s[i]) { values_s[i] = target_mu/values_z[i]; if (values_s[i]>values_z[i]) { values_s[i] = values_z[i] = sqrt(target_mu); } } else { values_s[i] = values_z[i] = sqrt(target_mu); } } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpDefaultIterateInitializer.hpp0000644000076600007660000001454511504216567023311 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDefaultIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-24 #ifndef __IPDEFAULTITERATEINITIALIZER_HPP__ #define __IPDEFAULTITERATEINITIALIZER_HPP__ #include "IpIterateInitializer.hpp" #include "IpEqMultCalculator.hpp" #include "IpAugSystemSolver.hpp" namespace Ipopt { /** Class implementing the default initialization procedure (based * on user options) for the iterates. It is used at the very * beginning of the optimization for determine the starting point * for all variables. */ class DefaultIterateInitializer: public IterateInitializer { public: /**@name Constructors/Destructors */ //@{ /** Constructor. If eq_mult_calculator is not NULL, it will be * used to compute the initial values for equality constraint * multipliers. If warm_start_initializer is not NULL, it will * be used to compute the initial values if the option * warm_start_init_point is chosen. */ DefaultIterateInitializer (const SmartPtr& eq_mult_calculator, const SmartPtr& warm_start_initializer, const SmartPtr aug_system_solver = NULL); /** Default destructor */ virtual ~DefaultIterateInitializer() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Compute the initial iterates and set the into the curr field * of the ip_data object. */ virtual bool SetInitialIterates(); /** Auxilliary function for moving the initial point. This is * declared static so that it can also be used from * WarmStartIterateInitializer. */ static void push_variables(const Journalist& jnlst, Number bound_push, Number bound_frac, std::string name, const Vector& orig_x, SmartPtr& new_x, const Vector& x_L, const Vector& x_U, const Matrix& Px_L, const Matrix& Px_U); /** Auxilliary function for computing least_square multipliers. * The multipliers are computed based on the values in the trial * fields (current is overwritten). On return, the multipliers * are in the trial fields as well. The value of * constr_mult_init_max determines if the computed least square * estimate should be used, or if the initial multipliers are set * to zero. */ static void least_square_mults(const Journalist& jnlst, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, const SmartPtr& eq_mult_calculator, Number constr_mult_init_max); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr reg_options); //@} /** @name Enums of option values */ //@{ enum BoundMultInitMethod { B_CONSTANT=0, B_MU_BASED }; //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ DefaultIterateInitializer(); /** Copy Constructor */ DefaultIterateInitializer(const DefaultIterateInitializer&); /** Overloaded Equals Operator */ void operator=(const DefaultIterateInitializer&); //@} /**@name Algorithmic Parameters */ //@{ /** Absolute parameter for bumping x0 */ Number bound_push_; /** Relative parameter for bumping x0 */ Number bound_frac_; /** Absolute parameter for bumping s0 */ Number slack_bound_push_; /** Relative parameter for bumping s0 */ Number slack_bound_frac_; /** If max-norm of the initial equality constraint multiplier * estimate is larger than this, the initial y_* variables are * set to zero. */ Number constr_mult_init_max_; /** Initial value for all bound mulitpliers. */ Number bound_mult_init_val_; /** Flag indicating whether warm_start_initializer should be used * instead of the default initialization */ bool warm_start_init_point_; /** Flag indicating whether the primal variables should be * initialized as least square fit for the linearized * constraints */ bool least_square_init_primal_; /** Flag indicating whether all dual variables should be * initialized as least square fit for the linearized * dual infeasibility */ bool least_square_init_duals_; /** Flag indicating how bound multipliers are initialized */ BoundMultInitMethod bound_mult_init_method_; /** Initial value of barrier parameter */ Number mu_init_; //@} /** object to be used for the initialization of the equality * constraint multipliers. */ SmartPtr eq_mult_calculator_; /** object to be used for a warm start initialization */ SmartPtr warm_start_initializer_; /** Object for solving the augmented system. This is only * required if we use the least square initialization of primal * and all dual varibles. */ SmartPtr aug_system_solver_; /** Auxilliary method for computing least square primal * variables */ bool CalculateLeastSquarePrimals(Vector& x_ls, Vector& s_ls); /** Auxilliary method for computing least square dual * variables */ bool CalculateLeastSquareDuals(Vector& zL_new, Vector& zU_new, Vector& vL_new, Vector& vU_new, Vector& yc_new, Vector& yd_new); }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLowRankAugSystemSolver.cpp0000644000076600007660000004731512141450650022600 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLowRankAugSystemSolver.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Andreas Waechter IBM 2005-12-27 #include "IpLowRankAugSystemSolver.hpp" #include "IpLowRankUpdateSymMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif LowRankAugSystemSolver::LowRankAugSystemSolver( AugSystemSolver& aug_system_solver) : AugSystemSolver(), aug_system_solver_(&aug_system_solver), w_factor_(0.), delta_x_(0.), delta_s_(0.), delta_c_(0.), delta_d_(0.) { DBG_START_METH("LowRankAugSystemSolver::LowRankAugSystemSolver()",dbg_verbosity); DBG_ASSERT(IsValid(aug_system_solver_)); } LowRankAugSystemSolver::~LowRankAugSystemSolver() { DBG_START_METH("LowRankAugSystemSolver::~LowRankAugSystemSolver()",dbg_verbosity); } bool LowRankAugSystemSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { first_call_ = true; J1_ = NULL; J2_ = NULL; Vtilde1_ = NULL; Utilde2_ = NULL; Wdiag_ = NULL; compound_sol_vecspace_ = NULL; return aug_system_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } ESymSolverStatus LowRankAugSystemSolver::Solve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("LowRankAugSystemSolver::Solve",dbg_verbosity); ESymSolverStatus retval; if (first_call_) { DBG_ASSERT(IsNull(Wdiag_)); // Set up the diagonal matrix Wdiag_ Index dimx = rhs_x.Dim(); SmartPtr Wdiag_space = new DiagMatrixSpace(dimx); Wdiag_ = Wdiag_space->MakeNewDiagMatrix(); } // This might be used with a linear solver that cannot detect the // inertia. In that case, we should not asked for checking the // number of negative eigenvalues. if (!aug_system_solver_->ProvidesInertia()) { check_NegEVals = false; } if (first_call_ || AugmentedSystemRequiresChange(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d) ) { retval = UpdateFactorization(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d, rhs_x, rhs_s, rhs_c, rhs_d, check_NegEVals, numberOfNegEVals); if (retval != SYMSOLVER_SUCCESS) { return retval; } // Store the tags w_tag_ = W->GetTag(); w_factor_ = W_factor; if (D_x) { d_x_tag_ = D_x->GetTag(); } else { d_x_tag_ = TaggedObject::Tag(); } delta_x_ = delta_x; if (D_s) { d_s_tag_ = D_s->GetTag(); } else { d_s_tag_ = TaggedObject::Tag(); } delta_s_ = delta_s; if (J_c) { j_c_tag_ = J_c->GetTag(); } else { j_c_tag_ = TaggedObject::Tag(); } if (D_c) { d_c_tag_ = D_c->GetTag(); } else { d_c_tag_ = TaggedObject::Tag(); } delta_c_ = delta_c; if (J_d) { j_d_tag_ = J_d->GetTag(); } else { j_d_tag_ = TaggedObject::Tag(); } if (D_d) { d_d_tag_ = D_d->GetTag(); } else { d_d_tag_ = TaggedObject::Tag(); } delta_d_ = delta_d; first_call_ = false; } // Now solve the system for the given right hand side, using the // Sherman-Morrison formula with factorization information already // computed. retval = aug_system_solver_->Solve(GetRawPtr(Wdiag_), W_factor, D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, rhs_x, rhs_s, rhs_c, rhs_d, sol_x, sol_s, sol_c, sol_d, check_NegEVals, numberOfNegEVals); if (aug_system_solver_->ProvidesInertia()) { num_neg_evals_ = aug_system_solver_->NumberOfNegEVals(); } if (retval != SYMSOLVER_SUCCESS) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankAugSystemSolver: AugSystemSolver returned retval = %d for right hand side.\n", retval); return retval; } if (IsValid(Vtilde1_) || IsValid(Utilde2_)) { // Create a CompoundVectors to store the right hand side and // solutions SmartPtr crhs = compound_sol_vecspace_->MakeNewCompoundVector(false); crhs->SetComp(0, rhs_x); crhs->SetComp(1, rhs_s); crhs->SetComp(2, rhs_c); crhs->SetComp(3, rhs_d); SmartPtr csol = compound_sol_vecspace_->MakeNewCompoundVector(false); csol->SetCompNonConst(0, sol_x); csol->SetCompNonConst(1, sol_s); csol->SetCompNonConst(2, sol_c); csol->SetCompNonConst(3, sol_d); if (IsValid(Utilde2_)) { Index nU = Utilde2_->NCols(); SmartPtr bUspace = new DenseVectorSpace(nU); SmartPtr bU = bUspace->MakeNewDenseVector(); Utilde2_->TransMultVector(1., *crhs, 0., *bU); J2_->CholeskySolveVector(*bU); Utilde2_->MultVector(1., *bU, 1., *csol); } if (IsValid(Vtilde1_)) { Index nV = Vtilde1_->NCols(); SmartPtr bVspace = new DenseVectorSpace(nV); SmartPtr bV = bVspace->MakeNewDenseVector(); Vtilde1_->TransMultVector(1., *crhs, 0., *bV); J1_->CholeskySolveVector(*bV); Vtilde1_->MultVector(-1., *bV, 1., *csol); } } return retval; } ESymSolverStatus LowRankAugSystemSolver::UpdateFactorization( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("LowRankAugSystemSolver::UpdateFactorization", dbg_verbosity); DBG_ASSERT(W_factor == 0.0 || W_factor == 1.0); ESymSolverStatus retval = SYMSOLVER_SUCCESS; // Get the low update information out of W const LowRankUpdateSymMatrix* LR_W = static_cast (W); DBG_ASSERT(LR_W); DBG_PRINT_MATRIX(2, "LR_W", *LR_W); SmartPtr B0; SmartPtr V; SmartPtr U; if (W_factor == 1.0) { V = LR_W->GetV(); U = LR_W->GetU(); B0 = LR_W->GetDiag(); } SmartPtr P_LM = LR_W->P_LowRank(); SmartPtr LR_VecSpace = LR_W->LowRankVectorSpace(); if (IsNull(B0)) { SmartPtr zero_B0 = (IsValid(P_LM)) ? LR_VecSpace->MakeNew() : proto_rhs_x.MakeNew(); zero_B0->Set(0.0); B0 = GetRawPtr(zero_B0); } // set up the Hessian for the underlying augmented system solver // without the low-rank update if (IsValid(P_LM) && LR_W->ReducedDiag()) { DBG_ASSERT(IsValid(B0)); SmartPtr fullx = proto_rhs_x.MakeNew(); P_LM->MultVector(1., *B0, 0., *fullx); Wdiag_->SetDiag(*fullx); } else { Wdiag_->SetDiag(*B0); DBG_PRINT_VECTOR(2, "B0", *B0); } SmartPtr Vtilde1_x; if (IsValid(V)) { SmartPtr V_x; Index nV = V->NCols(); //DBG_PRINT((1, "delta_x = %e\n", delta_x)); //DBG_PRINT_MATRIX(2, "V", *V); retval = SolveMultiVector(D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, proto_rhs_x, proto_rhs_s, proto_rhs_c, proto_rhs_d, *V, P_LM, V_x, Vtilde1_, Vtilde1_x, check_NegEVals, numberOfNegEVals); if (retval != SYMSOLVER_SUCCESS) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankAugSystemSolver: SolveMultiVector returned retval = %d for V.\n", retval); return retval; } //DBG_PRINT_MATRIX(2, "Vtilde1_x", *Vtilde1_x); SmartPtr M1space = new DenseSymMatrixSpace(nV); SmartPtr M1 = M1space->MakeNewDenseSymMatrix(); M1->FillIdentity(); M1->HighRankUpdateTranspose(1., *Vtilde1_x, *V_x, 1.); //DBG_PRINT_MATRIX(2, "M1", *M1); SmartPtr J1space = new DenseGenMatrixSpace(nV, nV); J1_ = J1space->MakeNewDenseGenMatrix(); bool retchol = J1_->ComputeCholeskyFactor(*M1); // M1 must be positive definite! //DBG_ASSERT(retchol); if (!retchol) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankAugSystemSolver: Cholesky for M1 returned error!\n"); retval = SYMSOLVER_WRONG_INERTIA; num_neg_evals_++; return retval; } } else { Vtilde1_ = NULL; J1_ = NULL; } if (IsValid(U)) { Index nU = U->NCols(); SmartPtr U_x; SmartPtr Utilde1; SmartPtr Utilde1_x; SmartPtr Utilde2_x; retval = SolveMultiVector(D_x, delta_x, D_s, delta_s, J_c, D_c, delta_c, J_d, D_d, delta_d, proto_rhs_x, proto_rhs_s, proto_rhs_c, proto_rhs_d, *U, P_LM, U_x, Utilde1, Utilde1_x, check_NegEVals, numberOfNegEVals); if (retval != SYMSOLVER_SUCCESS) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankAugSystemSolver: SolveMultiVector returned retval = %d for U.\n", retval); return retval; } if (IsNull(Vtilde1_)) { Utilde2_ = Utilde1; Utilde2_x = Utilde1_x; } else { Index nV = Vtilde1_->NCols(); SmartPtr Cspace = new DenseGenMatrixSpace(nV, nU); SmartPtr C = Cspace->MakeNewDenseGenMatrix(); C->HighRankUpdateTranspose(1., *Vtilde1_x, *U_x, 0.); J1_->CholeskySolveMatrix(*C); Utilde2_ = Utilde1; Utilde2_->AddRightMultMatrix(-1, *Vtilde1_, *C, 1.); Utilde2_x = Utilde1_x->MakeNewMultiVectorMatrix(); for (Index i=0; iNCols(); i++) { const CompoundVector* cvec = static_cast (GetRawPtr(Utilde2_->GetVector(i))); DBG_ASSERT(cvec); Utilde2_x->SetVector(i, *cvec->GetComp(0)); } } SmartPtr M2space = new DenseSymMatrixSpace(nU); SmartPtr M2 = M2space->MakeNewDenseSymMatrix(); M2->FillIdentity(); M2->HighRankUpdateTranspose(-1., *Utilde2_x, *U_x, 1.); SmartPtr J2space = new DenseGenMatrixSpace(nU, nU); J2_ = J2space->MakeNewDenseGenMatrix(); //DBG_PRINT_MATRIX(2, "M2", *M2); bool retchol = J2_->ComputeCholeskyFactor(*M2); if (!retchol) { Jnlst().Printf(J_DETAILED, J_SOLVE_PD_SYSTEM, "LowRankAugSystemSolver: Cholesky for M2 returned error.\n"); retval = SYMSOLVER_WRONG_INERTIA; num_neg_evals_++; return retval; } } else { J2_ = NULL; Utilde2_ = NULL; } return retval; } ESymSolverStatus LowRankAugSystemSolver::SolveMultiVector( const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d, const MultiVectorMatrix& V, const SmartPtr& P_LM, SmartPtr& V_x, SmartPtr& Vtilde, SmartPtr& Vtilde_x, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("LowRankAugSystemSolver::SolveMultiVector", dbg_verbosity); ESymSolverStatus retval; Index nrhs = V.NCols(); DBG_ASSERT(nrhs>0); SmartPtr V_xspace = new MultiVectorMatrixSpace(nrhs, *proto_rhs_x.OwnerSpace()); V_x = V_xspace->MakeNewMultiVectorMatrix(); // Create the right hand sides std::vector > rhs_xV(nrhs); std::vector > rhs_sV(nrhs); std::vector > rhs_cV(nrhs); std::vector > rhs_dV(nrhs); for (Index i=0; iDim() == proto_rhs_x.Dim()); } else { SmartPtr fullx = proto_rhs_x.MakeNew(); P_LM->MultVector(1., *V.GetVector(i), 0., *fullx); rhs_xV[i] = ConstPtr(fullx); } V_x->SetVector(i, *rhs_xV[i]); SmartPtr tmp; tmp = proto_rhs_s.MakeNew(); tmp->Set(0.); rhs_sV[i] = ConstPtr(tmp); tmp = proto_rhs_c.MakeNew(); tmp->Set(0.); rhs_cV[i] = ConstPtr(tmp); tmp = proto_rhs_d.MakeNew(); tmp->Set(0.); rhs_dV[i] = ConstPtr(tmp); } // now get space for the solution std::vector > sol_xV(nrhs); std::vector > sol_sV(nrhs); std::vector > sol_cV(nrhs); std::vector > sol_dV(nrhs); for (Index i=0; iMultiSolve(GetRawPtr(Wdiag_), 1.0, D_x, delta_x, D_s, delta_s, &J_c, D_c, delta_c, &J_d, D_d, delta_d, rhs_xV, rhs_sV, rhs_cV, rhs_dV, sol_xV, sol_sV, sol_cV, sol_dV, check_NegEVals, numberOfNegEVals); if (aug_system_solver_->ProvidesInertia()) { num_neg_evals_ = aug_system_solver_->NumberOfNegEVals(); } if (retval != SYMSOLVER_SUCCESS) { return retval; } // Pack the results into Vtilde if (IsNull(compound_sol_vecspace_)) { Index dimx = proto_rhs_x.Dim(); Index dims = proto_rhs_s.Dim(); Index dimc = proto_rhs_c.Dim(); Index dimd = proto_rhs_d.Dim(); Index dimtot = dimx+dims+dimc+dimd; SmartPtr vecspace = new CompoundVectorSpace(4, dimtot); vecspace->SetCompSpace(0, *proto_rhs_x.OwnerSpace()); vecspace->SetCompSpace(1, *proto_rhs_s.OwnerSpace()); vecspace->SetCompSpace(2, *proto_rhs_c.OwnerSpace()); vecspace->SetCompSpace(3, *proto_rhs_d.OwnerSpace()); compound_sol_vecspace_ = ConstPtr(vecspace); } SmartPtr V1space = new MultiVectorMatrixSpace(nrhs, *compound_sol_vecspace_); Vtilde = V1space->MakeNewMultiVectorMatrix(); Vtilde_x = V_xspace->MakeNewMultiVectorMatrix(); for (Index i=0; iSetVector(i, *sol_xV[i]); SmartPtr cvec = compound_sol_vecspace_->MakeNewCompoundVector(false); cvec->SetCompNonConst(0, *sol_xV[i]); cvec->SetCompNonConst(1, *sol_sV[i]); cvec->SetCompNonConst(2, *sol_cV[i]); cvec->SetCompNonConst(3, *sol_dV[i]); Vtilde->SetVectorNonConst(i, *cvec); } return retval; } bool LowRankAugSystemSolver::AugmentedSystemRequiresChange( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d) { DBG_START_METH("LowRankAugSystemSolver::AugmentedSystemRequiresChange", dbg_verbosity); #if COIN_IPOPT_VERBOSITY > 0 bool Wtest = (W && W->GetTag() != w_tag_); bool iWtest = (!W && w_tag_ != TaggedObject::Tag()); bool wfactor_test = (W_factor != w_factor_); bool D_xtest = (D_x && D_x->GetTag() != d_x_tag_); bool iD_xtest = (!D_x && d_x_tag_ != TaggedObject::Tag()); bool delta_xtest = (delta_x != delta_x_); bool D_stest = (D_s && D_s->GetTag() != d_s_tag_); bool iD_stest = (!D_s && d_s_tag_ != TaggedObject::Tag()); bool delta_stest = (delta_s != delta_s_); bool J_ctest = (J_c.GetTag() != j_c_tag_); bool D_ctest = (D_c && D_c->GetTag() != d_c_tag_); bool iD_ctest = (!D_c && d_c_tag_ != TaggedObject::Tag()); bool delta_ctest = (delta_c != delta_c_); bool J_dtest = (J_d.GetTag() != j_d_tag_); bool D_dtest = (D_d && D_d->GetTag() != d_d_tag_); bool iD_dtest = (!D_d && d_d_tag_ != TaggedObject::Tag()); bool delta_dtest = (delta_d != delta_d_); #endif DBG_PRINT((2,"Wtest = %d\n", Wtest)); DBG_PRINT((2,"iWtest = %d\n", iWtest)); DBG_PRINT((2,"wfactor_test = %d\n", wfactor_test)); DBG_PRINT((2,"D_xtest = %d\n", D_xtest)); DBG_PRINT((2,"iD_xtest = %d\n", iD_xtest)); DBG_PRINT((2,"delta_xtest = %d\n", delta_xtest)); DBG_PRINT((2,"D_stest = %d\n", D_stest)); DBG_PRINT((2,"iD_stest = %d\n", iD_stest)); DBG_PRINT((2,"delta_stest = %d\n", delta_stest)); DBG_PRINT((2,"J_ctest = %d\n", J_ctest)); DBG_PRINT((2,"D_ctest = %d\n", D_ctest)); DBG_PRINT((2,"iD_ctest = %d\n", iD_ctest)); DBG_PRINT((2,"delta_ctest = %d\n", delta_ctest)); DBG_PRINT((2,"J_dtest = %d\n", J_dtest)); DBG_PRINT((2,"D_dtest = %d\n", D_dtest)); DBG_PRINT((2,"iD_dtest = %d\n", iD_dtest)); DBG_PRINT((2,"delta_dtest = %d\n", delta_dtest)); if ( (W && W->GetTag() != w_tag_) || (!W && w_tag_ != TaggedObject::Tag()) || (W_factor != w_factor_) || (D_x && D_x->GetTag() != d_x_tag_) || (!D_x && d_x_tag_ != TaggedObject::Tag()) || (delta_x != delta_x_) || (D_s && D_s->GetTag() != d_s_tag_) || (!D_s && d_s_tag_ != TaggedObject::Tag()) || (delta_s != delta_s_) || (J_c.GetTag() != j_c_tag_) || (D_c && D_c->GetTag() != d_c_tag_) || (!D_c && d_c_tag_ != TaggedObject::Tag()) || (delta_c != delta_c_) || (J_d.GetTag() != j_d_tag_) || (D_d && D_d->GetTag() != d_d_tag_) || (!D_d && d_d_tag_ != TaggedObject::Tag()) || (delta_d != delta_d_) ) { return true; } return false; } Index LowRankAugSystemSolver::NumberOfNegEVals() const { DBG_ASSERT(!first_call_); return num_neg_evals_; } bool LowRankAugSystemSolver::ProvidesInertia() const { return aug_system_solver_->ProvidesInertia(); } bool LowRankAugSystemSolver::IncreaseQuality() { return aug_system_solver_->IncreaseQuality(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpBacktrackingLSAcceptor.hpp0000644000076600007660000001527511504216567022507 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpBacktrackingLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.hpp #ifndef __IPBACKTRACKINGLSACCEPTOR_HPP__ #define __IPBACKTRACKINGLSACCEPTOR_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Base class for backtracking line search acceptors. */ class BacktrackingLSAcceptor : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor. */ BacktrackingLSAcceptor() {} /** Default destructor */ virtual ~BacktrackingLSAcceptor() {} //@} /** InitializeImpl - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix)=0; /** Reset the acceptor. * This function should be called if all previous information * should be discarded when the line search is performed the * next time. For example, this method should be called if * the barrier parameter is changed. */ virtual void Reset()=0; /** Initialization for the next line search. The flag in_watchdog * indicates if we are currently in an active watchdog * procedure. */ virtual void InitThisLineSearch(bool in_watchdog)=0; /** Method that is called before the restoration phase is called. * Here, we can set up things that are required in the * termination test for the restoration phase, such as augmenting * a filter. */ virtual void PrepareRestoPhaseStart()=0; /** Method returning the lower bound on the trial step sizes. If * the backtracking procedure encounters a trial step size below * this value after the first trial set, it swtiches to the * (soft) restoration phase. */ virtual Number CalculateAlphaMin()=0; /** Method for checking if current trial point is acceptable. It * is assumed that the delta information in ip_data is the search * direction used in criteria. The primal trial point has to be * set before the call. alpha_primal is the step size which is * to be used for the test; if it is zero, then this method is * called during the soft restoration phase. */ virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)=0; /** Try a second order correction for the constraints. If the * first trial step (with incoming alpha_primal) has been reject, * this tries second order corrections, e.g., for the * constraints. Here, alpha_primal_test is the step size that * has to be used in the filter acceptance tests. On output * actual_delta_ has been set to the step including the * second order correction if it has been accepted, otherwise it * is unchanged. If the SOC step has been accepted, alpha_primal * has the fraction-to-the-boundary value for the SOC step on output. * The return value is true, if a SOC step has been accepted. */ virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta)=0; /** Try higher order corrector (for fast local convergence). In * contrast to a second order correction step, which tries to * make an unacceptable point acceptable by improving constraint * violation, this corrector step is tried even if the regular * primal-dual step is acceptable. */ virtual bool TryCorrector(Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta)=0; /** Method for ending the current line search. When it is called, * the internal data should be updates, e.g., the filter might be * augmented. alpha_primal_test is the value of alpha that has * been used for in the acceptence test ealier. Return value is * a character for the info_alpha_primal_char field in IpData. */ virtual char UpdateForNextIteration(Number alpha_primal_test)=0; /** Method for setting internal data if the watchdog procedure is * started. */ virtual void StartWatchDog()=0; /** Method for setting internal data if the watchdog procedure is * stopped. */ virtual void StopWatchDog()=0; /** Method for telling the BacktrackingLineSearch object that * a previous iterate has been restored. */ virtual bool RestoredIterate() { return false; } /** Method called by BacktrackingLineSearch object to determine * whether the restoration phase should never be called. */ virtual bool NeverRestorationPhase() { return false; } /** Method for doing a fallback approach in case no search * direction could be computed. If no such fall back option is * available, return false. If possible, the new point is * assumed to be in the trial fields of IpData now. */ virtual bool DoFallback() { return false; } /** Method for computing the step for the constraint multipliers * in the line search acceptor method. This is activated with * choosing the option alpha_for_y=acceptor */ virtual Number ComputeAlphaForY(Number alpha_primal, Number alpha_dual, SmartPtr& delta) { THROW_EXCEPTION(OPTION_INVALID, "Value \"acceptor\" for option \"alpha_for_y\" not valid for this line search."); return -1.; } /** Method returning true of ComputeAlphaForY is implemented for * this acceptor */ virtual bool HasComputeAlphaForY() const { return false; } /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ BacktrackingLSAcceptor(const BacktrackingLSAcceptor&); /** Overloaded Equals Operator */ void operator=(const BacktrackingLSAcceptor&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpBacktrackingLineSearch.cpp0000644000076600007660000013376511504216567022525 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpBacktrackingLineSearch.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // Andreas Waechter IBM 2005-10-13 // derived file from IpFilterLineSearch.cpp #include "IpBacktrackingLineSearch.hpp" #include "IpJournalist.hpp" #include "IpRestoPhase.hpp" #include "IpAlgTypes.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif BacktrackingLineSearch::BacktrackingLineSearch( const SmartPtr& acceptor, const SmartPtr& resto_phase, const SmartPtr& conv_check) : LineSearch(), acceptor_(acceptor), resto_phase_(resto_phase), conv_check_(conv_check) { DBG_START_FUN("BacktrackingLineSearch::BacktrackingLineSearch", dbg_verbosity); DBG_ASSERT(IsValid(acceptor_)); } BacktrackingLineSearch::~BacktrackingLineSearch() { DBG_START_FUN("BacktrackingLineSearch::~BacktrackingLineSearch()", dbg_verbosity); } void BacktrackingLineSearch::RegisterOptions(SmartPtr roptions) { roptions->AddBoundedNumberOption( "alpha_red_factor", "Fractional reduction of the trial step size in the backtracking line search.", 0.0, true, 1.0, true, 0.5, "At every step of the backtracking line search, the trial step size is " "reduced by this factor."); std::string prev_category = roptions->RegisteringCategory(); roptions->SetRegisteringCategory("Undocumented"); roptions->AddStringOption2( "magic_steps", "Enables magic steps.", "no", "no", "don't take magic steps", "yes", "take magic steps", "DOESN'T REALLY WORK YET!"); roptions->SetRegisteringCategory(prev_category); roptions->AddStringOption2( "accept_every_trial_step", "Always accept the first trial step.", "no", "no", "don't arbitrarily accept the full step", "yes", "always accept the full step", "Setting this option to \"yes\" essentially disables the line search " "and makes the algorithm take aggressive steps, without global " "convergence guarantees."); roptions->AddLowerBoundedIntegerOption( "accept_after_max_steps", "Accept a trial point after maximal this number of steps.", -1, -1, "Even if it does not satisfy line search conditions."); roptions->AddStringOption10( "alpha_for_y", "Method to determine the step size for constraint multipliers.", "primal", "primal", "use primal step size", "bound-mult", "use step size for the bound multipliers (good for LPs)", "min", "use the min of primal and bound multipliers", "max", "use the max of primal and bound multipliers", "full", "take a full step of size one", "min-dual-infeas", "choose step size minimizing new dual infeasibility", "safer-min-dual-infeas", "like \"min_dual_infeas\", but safeguarded by \"min\" and \"max\"", "primal-and-full", "use the primal step size, and full step if delta_x <= alpha_for_y_tol", "dual-and-full", "use the dual step size, and full step if delta_x <= alpha_for_y_tol", "acceptor", "Call LSAcceptor to get step size for y", "This option determines how the step size (alpha_y) will be calculated when updating the " "constraint multipliers."); roptions->AddLowerBoundedNumberOption( "alpha_for_y_tol", "Tolerance for switching to full equality multiplier steps.", 0.0, false, 10., "This is only relevant if \"alpha_for_y\" is chosen \"primal-and-full\" " "or \"dual-and-full\". The step size for the equality constraint " "multipliers is taken to be one if the max-norm of the primal step is " "less than this tolerance."); roptions->AddLowerBoundedNumberOption( "tiny_step_tol", "Tolerance for detecting numerically insignificant steps.", 0.0, false, 10.0*std::numeric_limits::epsilon(), "If the search direction in the primal variables (x and s) is, in " "relative terms for each component, less than this value, the " "algorithm accepts the full step without line search. If this happens " "repeatedly, the algorithm will terminate with a corresponding exit " "message. The default value is 10 times machine precision."); roptions->AddLowerBoundedNumberOption( "tiny_step_y_tol", "Tolerance for quitting because of numerically insignificant steps.", 0.0, false, 1e-2, "If the search direction in the primal variables (x and s) is, in " "relative terms for each component, repeatedly less than tiny_step_tol, " "and the step in the y variables is smaller than this threshold, the " "algorithm will terminate."); roptions->AddLowerBoundedIntegerOption( "watchdog_shortened_iter_trigger", "Number of shortened iterations that trigger the watchdog.", 0, 10, "If the number of successive iterations in which the backtracking line search " "did not accept the first trial point exceeds this number, the " "watchdog procedure is activated. Choosing \"0\" here disables the " "watchdog procedure."); roptions->AddLowerBoundedIntegerOption( "watchdog_trial_iter_max", "Maximum number of watchdog iterations.", 1, 3, "This option determines the number of trial iterations " "allowed before the watchdog " "procedure is aborted and the algorithm returns to the stored point."); roptions->SetRegisteringCategory("Restoration Phase"); roptions->AddStringOption2( "expect_infeasible_problem", "Enable heuristics to quickly detect an infeasible problem.", "no", "no", "the problem probably be feasible", "yes", "the problem has a good chance to be infeasible", "This options is meant to activate heuristics that may speed up the " "infeasibility determination if you expect that there is a good chance for the problem to be " "infeasible. In the filter line search procedure, the restoration " "phase is called more quickly than usually, and more reduction in " "the constraint violation is enforced before the restoration phase is " "left. If the problem is square, this option is enabled automatically."); roptions->AddLowerBoundedNumberOption( "expect_infeasible_problem_ctol", "Threshold for disabling \"expect_infeasible_problem\" option.", 0.0, false, 1e-3, "If the constraint violation becomes smaller than this threshold, " "the \"expect_infeasible_problem\" heuristics in the filter line " "search are disabled. If the problem is square, this options is set to " "0."); roptions->AddLowerBoundedNumberOption( "expect_infeasible_problem_ytol", "Multiplier threshold for activating \"expect_infeasible_problem\" option.", 0.0, true, 1e8, "If the max norm of the constraint multipliers becomes larger than this " "value and \"expect_infeasible_problem\" is chosen, then the " "restoration phase is entered."); roptions->AddStringOption2( "start_with_resto", "Tells algorithm to switch to restoration phase in first iteration.", "no", "no", "don't force start in restoration phase", "yes", "force start in restoration phase", "Setting this option to \"yes\" forces the algorithm to switch to the " "feasibility restoration phase in the first iteration. If the initial " "point is feasible, the algorithm will abort with a failure."); roptions->AddLowerBoundedNumberOption( "soft_resto_pderror_reduction_factor", "Required reduction in primal-dual error in the soft restoration phase.", 0.0, false, (1.0 - 1e-4), "The soft restoration phase attempts to reduce the " "primal-dual error with regular steps. If the damped " "primal-dual step (damped only to satisfy the " "fraction-to-the-boundary rule) is not decreasing the primal-dual error " "by at least this factor, then the regular restoration phase is called. " "Choosing \"0\" here disables the soft " "restoration phase."); roptions->AddLowerBoundedIntegerOption( "max_soft_resto_iters", "Maximum number of iterations performed successively in soft restoration phase.", 0, 10, "If the soft restoration phase is performed for more than so many " "iterations in a row, the regular restoration phase is called."); } bool BacktrackingLineSearch::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("alpha_red_factor", alpha_red_factor_, prefix); options.GetBoolValue("magic_steps", magic_steps_, prefix); options.GetBoolValue("accept_every_trial_step", accept_every_trial_step_, prefix); options.GetIntegerValue("accept_after_max_steps", accept_after_max_steps_, prefix); Index enum_int; bool is_default = !options.GetEnumValue("alpha_for_y", enum_int, prefix); alpha_for_y_ = AlphaForYEnum(enum_int); if (is_default && acceptor_->HasComputeAlphaForY()) { alpha_for_y_ = LSACCEPTOR_ALPHA_FOR_Y; } options.GetNumericValue("alpha_for_y_tol", alpha_for_y_tol_, prefix); options.GetNumericValue("expect_infeasible_problem_ctol", expect_infeasible_problem_ctol_, prefix); options.GetNumericValue("expect_infeasible_problem_ytol", expect_infeasible_problem_ytol_, prefix); options.GetBoolValue("expect_infeasible_problem", expect_infeasible_problem_, prefix); options.GetBoolValue("start_with_resto", start_with_resto_, prefix); options.GetNumericValue("tiny_step_tol", tiny_step_tol_, prefix); options.GetNumericValue("tiny_step_y_tol", tiny_step_y_tol_, prefix); options.GetIntegerValue("watchdog_trial_iter_max", watchdog_trial_iter_max_, prefix); options.GetIntegerValue("watchdog_shortened_iter_trigger", watchdog_shortened_iter_trigger_, prefix); options.GetNumericValue("soft_resto_pderror_reduction_factor", soft_resto_pderror_reduction_factor_, prefix); options.GetIntegerValue("max_soft_resto_iters", max_soft_resto_iters_, prefix); bool retvalue = true; if (IsValid(resto_phase_)) { if (!resto_phase_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix)) { return false; } } if (!acceptor_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix)) { return false; } rigorous_ = true; skipped_line_search_ = false; tiny_step_last_iteration_ = false; fallback_activated_ = false; Reset(); count_successive_shortened_steps_ = 0; acceptable_iterate_ = NULL; acceptable_iteration_number_ = -1; last_mu_ = -1.; return retvalue; } void BacktrackingLineSearch::FindAcceptableTrialPoint() { DBG_START_METH("BacktrackingLineSearch::FindAcceptableTrialPoint", dbg_verbosity); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "--> Starting line search in iteration %d <--\n", IpData().iter_count()); Number curr_mu = IpData().curr_mu(); if (last_mu_!=curr_mu) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Mu has changed in line search - resetting watchdog counters.\n"); // Inactivate the watchdog and release all stored data in_watchdog_ = false; watchdog_iterate_ = NULL; watchdog_delta_ = NULL; watchdog_shortened_iter_ = 0; last_mu_ = curr_mu; } // If the problem is square, we want to enable the // expect_infeasible_problem option automatically so that the // restoration phase is entered soon. This can be over-written // by the Acceptor. if (!acceptor_->NeverRestorationPhase() && IpCq().IsSquareProblem()) { //expect_infeasible_problem_ = true; expect_infeasible_problem_ctol_ = 0.; } // Store current iterate if the optimality error is on acceptable // level to restored if things fail later if (CurrentIsAcceptable()) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Storing current iterate as backup acceptable point.\n"); StoreAcceptablePoint(); } // First assume that line search will find an acceptable trial point skipped_line_search_ = false; // Get the search directions (this will store the actual search // direction, possibly including higher order corrections) SmartPtr actual_delta; bool goto_resto = false; if (fallback_activated_) { // In this case, the algorithm had trouble to continue and wants // to call the restoration phase immediately if available if (IsValid(resto_phase_)) { goto_resto = true; } else { if (acceptor_->DoFallback()) { in_watchdog_ = false; watchdog_iterate_ = NULL; watchdog_delta_ = NULL; count_successive_shortened_steps_ = 0; watchdog_shortened_iter_ = 0; IpData().Set_info_alpha_primal_char('X'); fallback_activated_ = false; return; } else { THROW_EXCEPTION(RESTORATION_FAILED, "We are in an emergency mode, but not restoration phase or other fall back is available."); } } fallback_activated_ = false; // reset the flag } else { // Initialize the acceptor for this backtracking line search acceptor_->InitThisLineSearch(in_watchdog_); actual_delta = IpData().delta()->MakeNewContainer(); } if (start_with_resto_) { // If the user requested to start with the restoration phase, // skip the line search and do exactly that. Reset the flag so // that this happens only once. goto_resto = true; start_with_resto_= false; } if (expect_infeasible_problem_ && Max(IpData().curr()->y_c()->Amax(), IpData().curr()->y_d()->Amax()) > expect_infeasible_problem_ytol_) { goto_resto = true; } bool accept = false; bool corr_taken = false; bool soc_taken = false; Index n_steps = 0; Number alpha_primal = 0.; // Check if search direction becomes too small bool tiny_step = (!goto_resto && DetectTinyStep()); if (in_watchdog_ && (goto_resto || tiny_step)) { // If the step could not be computed or is too small and the // watchdog is active, stop the watch dog and resume everything // from reference point StopWatchDog(actual_delta); goto_resto = false; tiny_step = false; } // Check if we want to wake up the watchdog if (watchdog_shortened_iter_trigger_ > 0 && !in_watchdog_ && !goto_resto && !tiny_step && !in_soft_resto_phase_ && !expect_infeasible_problem_ && watchdog_shortened_iter_ >= watchdog_shortened_iter_trigger_) { StartWatchDog(); } // Handle the situation of a tiny step if (tiny_step) { alpha_primal = IpCq().curr_primal_frac_to_the_bound(IpData().curr_tau()); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Tiny step detected. Use step size alpha = %e unchecked\n", alpha_primal); IpData().SetTrialPrimalVariablesFromStep(alpha_primal, *IpData().delta()->x(), *IpData().delta()->s()); // Evaluate functions at trial point - if that fails, don't use // the tiny step and continue with regular line search try { IpCq().trial_barrier_obj(); IpCq().trial_constraint_violation(); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); tiny_step = false; } if (tiny_step) { IpData().Set_info_ls_count(0); if (tiny_step_last_iteration_) { IpData().Set_info_alpha_primal_char('T'); IpData().Set_tiny_step_flag(true); } } else { IpData().Set_info_alpha_primal_char('t'); } // If the step in the dual variables is also small, we remember // that we just did a tiny step so that next time we might // decide to quit Number delta_y_norm = Max(IpData().delta()->y_c()->Amax(), IpData().delta()->y_d()->Amax()); if (delta_y_norm < tiny_step_y_tol_) { tiny_step_last_iteration_ = true; } else { tiny_step_last_iteration_ = false; } accept = true; } else { tiny_step_last_iteration_ = false; } if (!goto_resto && !tiny_step) { if (in_soft_resto_phase_) { soft_resto_counter_++; if (soft_resto_counter_ > max_soft_resto_iters_) { accept = false; } else { // If we are currently in the soft restoration phase, continue // that way, and switch back if enough progress is made to the // original criterion (e.g., the filter) bool satisfies_original_criterion = false; // ToDo use tiny_step in TrySoftRestoStep? accept = TrySoftRestoStep(actual_delta, satisfies_original_criterion); if (accept) { IpData().Set_info_alpha_primal_char('s'); if (satisfies_original_criterion) { in_soft_resto_phase_ = false; soft_resto_counter_ = 0; IpData().Set_info_alpha_primal_char('S'); } } } } else { // Start the backtracking line search bool done = false; bool skip_first_trial_point = false; bool evaluation_error; while (!done) { accept = DoBacktrackingLineSearch(skip_first_trial_point, alpha_primal, corr_taken, soc_taken, n_steps, evaluation_error, actual_delta); DBG_PRINT((1, "evaluation_error = %d\n", evaluation_error)); if (in_watchdog_) { if (accept) { in_watchdog_ = false; IpData().Append_info_string("W"); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Watch dog procedure successful!\n"); done = true; } else { watchdog_trial_iter_++; if (evaluation_error || watchdog_trial_iter_ > watchdog_trial_iter_max_) { StopWatchDog(actual_delta); skip_first_trial_point = true; } else { done = true; accept = true; } } } else { done = true; } } } /* else: if (in_soft_resto_phase_) { */ } /* if (!goto_resto && !tiny_step) { */ // If line search has been aborted because the step size becomes // too small, go to the restoration phase or continue with soft // restoration phase if (!accept) { // If we are not asked to do a rigorous line search, do no call // the restoration phase. if (!rigorous_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Skipping call of restoration phase...\n"); skipped_line_search_=true; } else { // Check if we should start the soft restoration phase if (!in_soft_resto_phase_ && !goto_resto && !expect_infeasible_problem_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "--> Starting soft restoration phase <--\n"); // Prepare the restoration phase, e.g., augment the filter // with the current point. acceptor_->PrepareRestoPhaseStart(); // Try the current search direction for the soft restoration phase bool satisfies_original_criterion; accept = TrySoftRestoStep(actual_delta, satisfies_original_criterion); // If it has been accepted: If the original criterion is also // satisfied, we can just take that step and continue with // the regular algorithm, otherwise we stay in the soft // restoration phase if (accept) { if (satisfies_original_criterion) { IpData().Set_info_alpha_primal_char('S'); } else { in_soft_resto_phase_ = true; IpData().Set_info_alpha_primal_char('s'); } } } if (!accept) { // Go to the restoration phase if (!in_soft_resto_phase_) { // Prepare the restoration phase, e.g., augment the filter // with the current point. If we are already in the soft // restoration phase, this has been done earlier acceptor_->PrepareRestoPhaseStart(); } if (CurrentIsAcceptable()) { THROW_EXCEPTION(ACCEPTABLE_POINT_REACHED, "Restoration phase called at acceptable point."); } if (!IsValid(resto_phase_)) { THROW_EXCEPTION(IpoptException, "No Restoration Phase given to this Backtracking Line Search Object!"); } // ToDo make the 1e-2 below a parameter? if (IpCq().curr_constraint_violation()<= 1e-2*IpData().tol()) { bool found_acceptable = RestoreAcceptablePoint(); if (found_acceptable) { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Restoration phase is called at almost feasible point,\n but acceptable point from iteration %d could be restored.\n", acceptable_iteration_number_); THROW_EXCEPTION(ACCEPTABLE_POINT_REACHED, "Restoration phase called at almost feasible point, but acceptable point could be restored.\n"); } else { // ToDo does that happen too often? Jnlst().Printf(J_ERROR, J_LINE_SEARCH, "Restoration phase is called at point that is almost feasible,\n with constraint violation %e. Abort.\n", IpCq().curr_constraint_violation()); THROW_EXCEPTION(RESTORATION_FAILED, "Restoration phase called, but point is almost feasible."); } } // Set the info fields for the first output line in the // restoration phase which reflects why the restoration phase // was called IpData().Set_info_alpha_primal(alpha_primal); IpData().Set_info_alpha_dual(0.); IpData().Set_info_alpha_primal_char('R'); IpData().Set_info_ls_count(n_steps+1); accept = resto_phase_->PerformRestoration(); if (!accept) { bool found_acceptable = RestoreAcceptablePoint(); if (found_acceptable) { THROW_EXCEPTION(ACCEPTABLE_POINT_REACHED, "Restoration phase failed, but acceptable point could be restore.\n"); } else { THROW_EXCEPTION(RESTORATION_FAILED, "Failed restoration phase!!!"); } } count_successive_shortened_steps_ = 0; if (expect_infeasible_problem_) { expect_infeasible_problem_ = false; } in_soft_resto_phase_ = false; soft_resto_counter_ = 0; watchdog_shortened_iter_ = 0; } } } else if (!in_soft_resto_phase_ || tiny_step) { // we didn't do the restoration phase and are now updating the // dual variables of the trial point Number alpha_dual_max = IpCq().dual_frac_to_the_bound(IpData().curr_tau(), *actual_delta->z_L(), *actual_delta->z_U(), *actual_delta->v_L(), *actual_delta->v_U()); PerformDualStep(alpha_primal, alpha_dual_max, actual_delta); if (n_steps==0) { // accepted this if a full step was // taken count_successive_shortened_steps_ = 0; watchdog_shortened_iter_ = 0; } else { count_successive_shortened_steps_++; watchdog_shortened_iter_++; } if (expect_infeasible_problem_ && IpCq().curr_constraint_violation() <= expect_infeasible_problem_ctol_) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Constraint violation is with %e less than expect_infeasible_problem_ctol.\nDisable expect_infeasible_problem_heuristic.\n", IpCq().curr_constraint_violation()); expect_infeasible_problem_ = false; } // Some line search might have restored a previous iterate. In that // case we skip the usual ending stuff if (acceptor_->RestoredIterate()) { in_watchdog_ = false; watchdog_iterate_ = NULL; watchdog_delta_ = NULL; count_successive_shortened_steps_ = 0; watchdog_shortened_iter_ = 0; IpData().Set_info_alpha_primal_char('r'); } } } bool BacktrackingLineSearch::DoBacktrackingLineSearch(bool skip_first_trial_point, Number& alpha_primal, bool& corr_taken, bool& soc_taken, Index& n_steps, bool& evaluation_error, SmartPtr& actual_delta) { evaluation_error = false; bool accept = false; DBG_START_METH("BacktrackingLineSearch::DoBacktrackingLineSearch", dbg_verbosity); // Compute primal fraction-to-the-boundary value Number alpha_primal_max = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *actual_delta->x(), *actual_delta->s()); // Compute smallest step size allowed Number alpha_min = alpha_primal_max; if (!in_watchdog_) { alpha_min = acceptor_->CalculateAlphaMin(); } Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "minimal step size ALPHA_MIN = %E\n", alpha_min); // Start line search from maximal step size alpha_primal = alpha_primal_max; // Step size used in ftype and armijo tests Number alpha_primal_test = alpha_primal; if (in_watchdog_) { alpha_primal_test = watchdog_alpha_primal_test_; } if (skip_first_trial_point) { alpha_primal *= alpha_red_factor_; } if (!skip_first_trial_point) { // Before we do the actual backtracking line search for the // regular primal-dual search direction, let's see if a step // including a higher-order correctior is already acceptable accept = acceptor_->TryCorrector(alpha_primal_test, alpha_primal, actual_delta); } if (accept) { corr_taken = true; } if (!accept) { // Loop over decreaseing step sizes until acceptable point is // found or until step size becomes too small while (alpha_primal>alpha_min || n_steps == 0 ) { // always allow the "full" step if it is // acceptable (even if alpha_primal<=alpha_min) Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Starting checks for alpha (primal) = %8.2e\n", alpha_primal); try { // Compute the primal trial point IpData().SetTrialPrimalVariablesFromStep(alpha_primal, *actual_delta->x(), *actual_delta->s()); if (magic_steps_) { PerformMagicStep(); } // If it is acceptable, stop the search alpha_primal_test = alpha_primal; if (accept_every_trial_step_ || (accept_after_max_steps_!=-1 && n_steps >= accept_after_max_steps_)) { // We call the evaluation at the trial point here, so that an // exception will the thrown if there are problem during the // evaluation of the functions (in that case, we want to further // reduce the step size IpCq().trial_barrier_obj(); IpCq().trial_constraint_violation(); IpData().Append_info_string("MaxS"); Reset(); accept = true; } else { accept = acceptor_->CheckAcceptabilityOfTrialPoint(alpha_primal_test); } } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Warning: Cutting back alpha due to evaluation error\n"); IpData().Append_info_string("e"); accept = false; evaluation_error = true; } if (accept) { break; } if (in_watchdog_) { break; } // Decide if we want to go to the restoration phase in a // short cut to check if the problem is infeasible if (expect_infeasible_problem_) { if (count_successive_shortened_steps_>=5) { break; } } // try second order correction step if the function could // be evaluated // DoTo: check if we want to do SOC when watchdog is active if (!evaluation_error) { Number theta_curr = IpCq().curr_constraint_violation(); Number theta_trial = IpCq().trial_constraint_violation(); if (alpha_primal==alpha_primal_max && // i.e. first trial point theta_curr<=theta_trial) { // Try second order correction accept = acceptor_->TrySecondOrderCorrection(alpha_primal_test, alpha_primal, actual_delta); } if (accept) { soc_taken = true; break; } } // Point is not yet acceptable, try a shorter one alpha_primal *= alpha_red_factor_; n_steps++; } } /* if (!accept) */ char info_alpha_primal_char='?'; if (!accept && in_watchdog_) { info_alpha_primal_char = 'w'; } else if (accept) { info_alpha_primal_char = acceptor_->UpdateForNextIteration(alpha_primal_test); } if (soc_taken) { info_alpha_primal_char = (char)toupper(info_alpha_primal_char); } IpData().Set_info_alpha_primal_char(info_alpha_primal_char); IpData().Set_info_ls_count(n_steps+1); if (corr_taken) { IpData().Append_info_string("C"); } return accept; } void BacktrackingLineSearch::StartWatchDog() { DBG_START_FUN("BacktrackingLineSearch::StartWatchDog", dbg_verbosity); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Starting Watch Dog\n"); in_watchdog_ = true; watchdog_iterate_ = IpData().curr(); watchdog_delta_ = IpData().delta(); watchdog_trial_iter_ = 0; watchdog_alpha_primal_test_ = IpCq().curr_primal_frac_to_the_bound(IpData().curr_tau()); acceptor_->StartWatchDog(); } void BacktrackingLineSearch::StopWatchDog(SmartPtr& actual_delta) { DBG_START_FUN("BacktrackingLineSearch::StopWatchDog", dbg_verbosity); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Stopping Watch Dog\n"); IpData().Append_info_string("w"); in_watchdog_ = false; // Reset all fields in IpData to reference point SmartPtr old_trial = watchdog_iterate_->MakeNewContainer(); IpData().set_trial(old_trial); IpData().AcceptTrialPoint(); actual_delta = watchdog_delta_->MakeNewContainer(); IpData().SetHaveAffineDeltas(false); // reset the stored watchdog iterates watchdog_iterate_ = NULL; watchdog_delta_ = NULL; watchdog_shortened_iter_ = 0; acceptor_->StopWatchDog(); } void BacktrackingLineSearch::Reset() { DBG_START_FUN("BacktrackingLineSearch::Reset", dbg_verbosity); in_soft_resto_phase_ = false; soft_resto_counter_ = 0; acceptor_->Reset(); } void BacktrackingLineSearch::PerformDualStep(Number alpha_primal, Number alpha_dual, SmartPtr& delta) { DBG_START_FUN("BacktrackingLineSearch::PerformDualStep", dbg_verbosity); // set the bound multipliers from the step IpData().SetTrialBoundMultipliersFromStep(alpha_dual, *delta->z_L(), *delta->z_U(), *delta->v_L(), *delta->v_U()); Number alpha_y=-1.; switch (alpha_for_y_) { case LSACCEPTOR_ALPHA_FOR_Y: alpha_y = acceptor_->ComputeAlphaForY(alpha_primal, alpha_dual, delta); break; case PRIMAL_ALPHA_FOR_Y: case PRIMAL_AND_FULL_ALPHA_FOR_Y: alpha_y = alpha_primal; if (alpha_for_y_ == PRIMAL_AND_FULL_ALPHA_FOR_Y) { Number dxnorm = Max(delta->x()->Amax(), delta->s()->Amax()); if (dxnorm <= alpha_for_y_tol_) { alpha_y = 1.; } } break; case DUAL_ALPHA_FOR_Y: case DUAL_AND_FULL_ALPHA_FOR_Y: alpha_y = alpha_dual; if (alpha_for_y_ == DUAL_AND_FULL_ALPHA_FOR_Y) { Number dxnorm = Max(delta->x()->Amax(), delta->s()->Amax()); if (dxnorm <= alpha_for_y_tol_) { alpha_y = 1.; } } break; case MIN_ALPHA_FOR_Y: alpha_y = Min(alpha_dual, alpha_primal); break; case MAX_ALPHA_FOR_Y: alpha_y = Max(alpha_dual, alpha_primal); break; case FULL_STEP_FOR_Y: alpha_y = 1; break; case MIN_DUAL_INFEAS_ALPHA_FOR_Y: case SAFE_MIN_DUAL_INFEAS_ALPHA_FOR_Y: // Here we compute the step size for y so that the dual // infeasibility is minimized along delta_y // compute the dual infeasibility at new point with old y SmartPtr temp_trial = IpData().trial()->MakeNewContainer(); temp_trial->Set_y_c(*IpData().curr()->y_c()); temp_trial->Set_y_d(*IpData().curr()->y_d()); IpData().set_trial(temp_trial); SmartPtr dual_inf_x = IpCq().trial_grad_lag_x(); SmartPtr dual_inf_s = IpCq().trial_grad_lag_s(); SmartPtr new_jac_times_delta_y = IpData().curr()->x()->MakeNew(); new_jac_times_delta_y->AddTwoVectors(1., *IpCq().trial_jac_cT_times_vec(*delta->y_c()), 1., *IpCq().trial_jac_dT_times_vec(*delta->y_d()), 0.); Number a = pow(new_jac_times_delta_y->Nrm2(), 2.) + pow(delta->y_d()->Nrm2(), 2.); Number b = dual_inf_x->Dot(*new_jac_times_delta_y) - dual_inf_s->Dot(*delta->y_d()); Number alpha = - b/a; if (alpha_for_y_==SAFE_MIN_DUAL_INFEAS_ALPHA_FOR_Y) { alpha_y = Min(Max(alpha_primal, alpha_dual), Max(alpha, Min(alpha_primal, alpha_dual))); } else { alpha_y = Min(1., Max(0., alpha)); } break; } //switch (alpha_for_y) // Set the eq multipliers from the step now that alpha_y // has been calculated. DBG_PRINT((1, "alpha_y = %e\n", alpha_y)); DBG_PRINT_VECTOR(2, "delta_y_c", *delta->y_c()); DBG_PRINT_VECTOR(2, "delta_y_d", *delta->y_d()); IpData().SetTrialEqMultipliersFromStep(alpha_y, *delta->y_c(), *delta->y_d()); // Set some information for iteration summary output IpData().Set_info_alpha_primal(alpha_primal); IpData().Set_info_alpha_dual(alpha_dual); } void BacktrackingLineSearch::PerformMagicStep() { DBG_START_METH("BacktrackingLineSearch::PerformMagicStep", dbg_verbosity); DBG_PRINT((1,"Incoming barr = %e and constrviol %e\n", IpCq().trial_barrier_obj(), IpCq().trial_constraint_violation())); DBG_PRINT_VECTOR(2, "s in", *IpData().trial()->s()); DBG_PRINT_VECTOR(2, "d minus s in", *IpCq().trial_d_minus_s()); DBG_PRINT_VECTOR(2, "slack_s_L in", *IpCq().trial_slack_s_L()); DBG_PRINT_VECTOR(2, "slack_s_U in", *IpCq().trial_slack_s_U()); SmartPtr d_L = IpNLP().d_L(); SmartPtr Pd_L = IpNLP().Pd_L(); SmartPtr delta_s_magic_L = d_L->MakeNew(); delta_s_magic_L->Set(0.); SmartPtr tmp = d_L->MakeNew(); Pd_L->TransMultVector(1., *IpCq().trial_d_minus_s(), 0., *tmp); delta_s_magic_L->ElementWiseMax(*tmp); SmartPtr d_U = IpNLP().d_U(); SmartPtr Pd_U = IpNLP().Pd_U(); SmartPtr delta_s_magic_U = d_U->MakeNew(); delta_s_magic_U->Set(0.); tmp = d_U->MakeNew(); Pd_U->TransMultVector(1., *IpCq().trial_d_minus_s(), 0., *tmp); delta_s_magic_U->ElementWiseMin(*tmp); SmartPtr delta_s_magic = IpData().trial()->s()->MakeNew(); Pd_L->MultVector(1., *delta_s_magic_L, 0., *delta_s_magic); Pd_U->MultVector(1., *delta_s_magic_U, 1., *delta_s_magic); delta_s_magic_L = NULL; // free memory delta_s_magic_U = NULL; // free memory // Now find those entries with both lower and upper bounds, there // the step is too large // ToDo this should only be done if there are inequality // constraints with two bounds // also this can be done in a smaller space (d_L or d_U whichever // is smaller) tmp = delta_s_magic->MakeNew(); tmp->Copy(*IpData().trial()->s()); Pd_L->MultVector(1., *d_L, -2., *tmp); Pd_U->MultVector(1., *d_U, 1., *tmp); SmartPtr tmp2 = tmp->MakeNew(); tmp2->Copy(*tmp); tmp2->ElementWiseAbs(); tmp->Axpy(-2., *delta_s_magic); tmp->ElementWiseAbs(); // now, tmp2 = |d_L + d_u - 2*s| and tmp = |d_L + d_u - 2*(s+Delta s)| // we want to throw out those for which tmp2 > tmp tmp->Axpy(-1., *tmp2); tmp->ElementWiseSgn(); tmp2->Set(0.); tmp2->ElementWiseMax(*tmp); tmp = d_L->MakeNew(); Pd_L->TransMultVector(1., *tmp2, 0., *tmp); Pd_L->MultVector(1., *tmp, 0., *tmp2); tmp = d_U->MakeNew(); Pd_U->TransMultVector(1., *tmp2, 0., *tmp); Pd_U->MultVector(1., *tmp, 0., *tmp2); DBG_PRINT_VECTOR(2, "tmp indicator", *tmp2) // tmp2 now is one for those entries with both bounds, for which // no step should be taken tmp = delta_s_magic->MakeNew(); tmp->Copy(*delta_s_magic); tmp->ElementWiseMultiply(*tmp2); delta_s_magic->Axpy(-1., *tmp); Number delta_s_magic_max = delta_s_magic->Amax(); Number mach_eps = std::numeric_limits::epsilon(); if (delta_s_magic_max>0.) { if (delta_s_magic_max > 10*mach_eps*IpData().trial()->s()->Amax()) { IpData().Append_info_string("M"); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Magic step with max-norm %.6e taken.\n", delta_s_magic->Amax()); delta_s_magic->Print(Jnlst(), J_MOREVECTOR, J_LINE_SEARCH, "delta_s_magic"); } // now finally compute the new overall slacks delta_s_magic->Axpy(1., *IpData().trial()->s()); SmartPtr trial = IpData().trial()->MakeNewContainer(); trial->Set_s(*delta_s_magic); // also update the set in the dual variables IpData().set_trial(trial); } DBG_PRINT((1,"Outgoing barr = %e and constrviol %e\n", IpCq().trial_barrier_obj(), IpCq().trial_constraint_violation())); DBG_PRINT_VECTOR(2, "s out", *IpData().trial()->s()); DBG_PRINT_VECTOR(2, "d minus s out", *IpCq().trial_d_minus_s()); DBG_PRINT_VECTOR(2, "slack_s_L out", *IpCq().trial_slack_s_L()); DBG_PRINT_VECTOR(2, "slack_s_U out", *IpCq().trial_slack_s_U()); } bool BacktrackingLineSearch::TrySoftRestoStep(SmartPtr& actual_delta, bool &satisfies_original_criterion) { DBG_START_FUN("BacktrackingLineSearch::TrySoftRestoStep", dbg_verbosity); if (soft_resto_pderror_reduction_factor_==0.) { return false; } satisfies_original_criterion = false; // ToDo: Need to decide if we want to try a corrector step first // Compute the maximal step sizes (we use identical step sizes for // primal and dual variables Number alpha_primal_max = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *actual_delta->x(), *actual_delta->s()); Number alpha_dual_max = IpCq().dual_frac_to_the_bound(IpData().curr_tau(), *actual_delta->z_L(), *actual_delta->z_U(), *actual_delta->v_L(), *actual_delta->v_U()); Number alpha = Min(alpha_primal_max, alpha_dual_max); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Trying soft restoration phase step with step length %13.6e\n", alpha); // We allow up to three trials in case there is an evaluation // error for the functions bool done=false; Index count=3; while (!done && count>0) { // Set the trial point IpData().SetTrialPrimalVariablesFromStep(alpha, *actual_delta->x(), *actual_delta->s()); PerformDualStep(alpha, alpha, actual_delta); // Check if that point is acceptable with respect to the current // original filter try { IpCq().trial_barrier_obj(); IpCq().trial_constraint_violation(); done=true; } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Warning: Evaluation error during soft restoration phase step.\n"); IpData().Append_info_string("e"); count--; } } if (!done) { return false; } if (acceptor_->CheckAcceptabilityOfTrialPoint(0.)) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Trial step acceptable with respect to original backtracking globalization.\n"); satisfies_original_criterion = true; return true; } // Evaluate the optimality error at the new point Number mu = .0; if (!IpData().FreeMuMode()) { mu = IpData().curr_mu(); } Number trial_pderror; Number curr_pderror; try { trial_pderror = IpCq().trial_primal_dual_system_error(mu); curr_pderror = IpCq().curr_primal_dual_system_error(mu); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_LINE_SEARCH, "Warning: Evaluation error during soft restoration phase step.\n"); IpData().Append_info_string("e"); return false; } Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Primal-dual error at current point: %23.16e\n", curr_pderror); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Primal-dual error at trial point : %23.16e\n", trial_pderror); // Check if there is sufficient reduction in the optimality error if (trial_pderror <= soft_resto_pderror_reduction_factor_*curr_pderror) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Trial step accepted.\n"); return true; } Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Trial step rejected.\n"); return false; } bool BacktrackingLineSearch::DetectTinyStep() { DBG_START_METH("BacktrackingLineSearch::DetectTinyStep", dbg_verbosity); Number max_step_x; Number max_step_s; if (tiny_step_tol_==0.) return false; // ToDo try to find more efficient implementation DBG_PRINT_VECTOR(2, "curr_x", *IpData().curr()->x()); DBG_PRINT_VECTOR(2, "delta_x", *IpData().delta()->x()); SmartPtr tmp = IpData().curr()->x()->MakeNewCopy(); tmp->ElementWiseAbs(); tmp->AddScalar(1.); SmartPtr tmp2 = IpData().delta()->x()->MakeNewCopy(); tmp2->ElementWiseDivide(*tmp); max_step_x = tmp2->Amax(); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Relative step size for delta_x = %e\n", max_step_x); if (max_step_x > tiny_step_tol_) return false; tmp = IpData().curr()->s()->MakeNew(); tmp->Copy(*IpData().curr()->s()); tmp->ElementWiseAbs(); tmp->AddScalar(1.); tmp2 = IpData().curr()->s()->MakeNew(); tmp2->Copy(*IpData().delta()->s()); tmp2->ElementWiseDivide(*tmp); max_step_s = tmp2->Amax(); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, "Relative step size for delta_s = %e\n", max_step_s); if (max_step_s > tiny_step_tol_) return false; // make sure that the infeasibility is not large - in that case we // might be at a starting point that is already a local minimizer // of the constraint violation const Number cviol = IpCq().curr_constraint_violation(); if (cviol > 1e-4) // ToDo: adapt parameter? return false; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Tiny step of relative size %e detected.\n", Max(max_step_x, max_step_s)); return true; } bool BacktrackingLineSearch::CurrentIsAcceptable() { return (IsValid(conv_check_) && conv_check_->CurrentIsAcceptable()); } void BacktrackingLineSearch::StoreAcceptablePoint() { DBG_START_METH("BacktrackingLineSearch::StoreAcceptablePoint", dbg_verbosity); acceptable_iterate_ = IpData().curr(); acceptable_iteration_number_ = IpData().iter_count(); } bool BacktrackingLineSearch::RestoreAcceptablePoint() { DBG_START_METH("BacktrackingLineSearch::RestoreAcceptablePoint", dbg_verbosity); if (!IsValid(acceptable_iterate_)) { return false; } SmartPtr prev_iterate = acceptable_iterate_->MakeNewContainer(); IpData().set_trial(prev_iterate); IpData().AcceptTrialPoint(); return true; } bool BacktrackingLineSearch::ActivateFallbackMechanism() { // Reverting to the restoration phase only makes sense if there // are constraints if (IpData().curr()->y_c()->Dim()+IpData().curr()->y_d()->Dim()==0) { return false; } fallback_activated_ = true; rigorous_ = true; Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Fallback option activated in BacktrackingLineSearch!\n"); return true; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDSearchDirCalc.cpp0000644000076600007660000001177612052470534021047 0ustar coincoin// Copyright (C) 2005, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDSearchDirCalc.cpp 2127 2012-11-19 17:50:20Z stefan $ // // Authors: Andreas Waechter IBM 2005-10-13 // derived from IpIpoptAlg.cpp #include "IpPDSearchDirCalc.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PDSearchDirCalculator::PDSearchDirCalculator(const SmartPtr& pd_solver) : pd_solver_(pd_solver) { DBG_START_FUN("PDSearchDirCalculator::PDSearchDirCalculator", dbg_verbosity); DBG_ASSERT(IsValid(pd_solver_)); } PDSearchDirCalculator::~PDSearchDirCalculator() { DBG_START_FUN("PDSearchDirCalculator::~PDSearchDirCalculator()", dbg_verbosity); } void PDSearchDirCalculator::RegisterOptions(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Step Calculation"); roptions->AddStringOption2( "fast_step_computation", "Indicates if the linear system should be solved quickly.", "no", "no", "Verify solution of linear system by computing residuals.", "yes", "Trust that linear systems are solved well.", "If set to yes, the algorithm assumes that the linear system that is " "solved to obtain the search direction, is solved sufficiently well. " "In that case, no residuals are computed, and the computation of the " "search direction is a little faster."); } bool PDSearchDirCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("fast_step_computation", fast_step_computation_, prefix); options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm_, prefix); return pd_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool PDSearchDirCalculator::ComputeSearchDirection() { DBG_START_METH("PDSearchDirCalculator::ComputeSearchDirection", dbg_verbosity); bool improve_solution = false; if (IpData().HaveDeltas()) { improve_solution = true; } bool retval; if (improve_solution && fast_step_computation_) { retval = true; } else { SmartPtr rhs = IpData().curr()->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_with_damping_x()); rhs->Set_s(*IpCq().curr_grad_lag_with_damping_s()); rhs->Set_y_c(*IpCq().curr_c()); rhs->Set_y_d(*IpCq().curr_d_minus_s()); Index nbounds = IpNLP().x_L()->Dim()+ IpNLP().x_U()->Dim() + IpNLP().d_L()->Dim()+ IpNLP().d_U()->Dim(); if (nbounds>0 && mehrotra_algorithm_) { // set up the right hand side a la Mehrotra DBG_ASSERT(IpData().HaveAffineDeltas()); DBG_ASSERT(!IpData().HaveDeltas()); const SmartPtr delta_aff = IpData().delta_aff(); SmartPtr tmpvec = delta_aff->z_L()->MakeNew(); IpNLP().Px_L()->TransMultVector(1., *delta_aff->x(), 0., *tmpvec); tmpvec->ElementWiseMultiply(*delta_aff->z_L()); tmpvec->Axpy(1., *IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_L(*tmpvec); tmpvec = delta_aff->z_U()->MakeNew(); IpNLP().Px_U()->TransMultVector(-1., *delta_aff->x(), 0., *tmpvec); tmpvec->ElementWiseMultiply(*delta_aff->z_U()); tmpvec->Axpy(1., *IpCq().curr_relaxed_compl_x_U()); rhs->Set_z_U(*tmpvec); tmpvec = delta_aff->v_L()->MakeNew(); IpNLP().Pd_L()->TransMultVector(1., *delta_aff->s(), 0., *tmpvec); tmpvec->ElementWiseMultiply(*delta_aff->v_L()); tmpvec->Axpy(1., *IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_L(*tmpvec); tmpvec = delta_aff->v_U()->MakeNew(); IpNLP().Pd_U()->TransMultVector(-1., *delta_aff->s(), 0., *tmpvec); tmpvec->ElementWiseMultiply(*delta_aff->v_U()); tmpvec->Axpy(1., *IpCq().curr_relaxed_compl_s_U()); rhs->Set_v_U(*tmpvec); } else { rhs->Set_z_L(*IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_U(*IpCq().curr_relaxed_compl_x_U()); rhs->Set_v_L(*IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_U(*IpCq().curr_relaxed_compl_s_U()); } DBG_PRINT_VECTOR(2, "rhs", *rhs); // Get space for the search direction SmartPtr delta = IpData().curr()->MakeNewIteratesVector(true); if (improve_solution) { // We can probably avoid copying and scaling... delta->AddOneVector(-1., *IpData().delta(), 0.); } bool& allow_inexact = fast_step_computation_; retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *delta, allow_inexact, improve_solution); if (retval) { // Store the search directions in the IpData object IpData().set_delta(delta); } } return retval; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpAlgStrategy.hpp0000644000076600007660000001330611504216567020423 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpAlgStrategy.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPALGSTRATEGY_HPP__ #define __IPALGSTRATEGY_HPP__ #include "IpOptionsList.hpp" #include "IpJournalist.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpIpoptNLP.hpp" #include "IpIpoptData.hpp" namespace Ipopt { /** This is the base class for all algorithm strategy objects. The * AlgorithmStrategyObject base class implements a common interface * for all algorithm strategy objects. A strategy object is a * component of the algorithm for which different alternatives or * implementations exists. It allows to compose the algorithm * before execution for a particular configuration, without the * need to call alternatives based on enums. For example, the * LineSearch object is a strategy object, since different line * search options might be used for different runs. * * This interface is used for * things that are done to all strategy objects, like * initialization and setting options. */ class AlgorithmStrategyObject : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ AlgorithmStrategyObject() : initialize_called_(false) {} /** Default Destructor */ virtual ~AlgorithmStrategyObject() {} //@} /** This method is called every time the algorithm starts again - * it is used to reset any internal state. The pointers to the * Journalist, as well as to the IpoptNLP, IpoptData, and * IpoptCalculatedQuantities objects should be stored in the * instanciation of this base class. This method is also used to * get all required user options from the OptionsList. Here, if * prefix is given, each tag (identifying the options) is first * looked for with the prefix in front, and if not found, without * the prefix. Note: you should not cue off of the iteration * count to indicate the "start" of an algorithm! * * Do not overload this method, since it does some general * initialization that is common for all strategy objects. * Overload the protected InitializeImpl method instead. */ bool Initialize(const Journalist& jnlst, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, const OptionsList& options, const std::string& prefix) { initialize_called_ = true; // Copy the pointers for the problem defining objects jnlst_ = &jnlst; ip_nlp_ = &ip_nlp; ip_data_ = &ip_data; ip_cq_ = &ip_cq; bool retval = InitializeImpl(options, prefix); if (!retval) { initialize_called_ = false; } return retval; } /** Reduced version of the Initialize method, which does not * require special Ipopt information. This is useful for * algorithm objects that could be used outside Ipopt, such as * linear solvers. */ bool ReducedInitialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { initialize_called_ = true; // Copy the pointers for the problem defining objects jnlst_ = &jnlst; ip_nlp_ = NULL; ip_data_ = NULL; ip_cq_ = NULL; bool retval = InitializeImpl(options, prefix); if (!retval) { initialize_called_ = false; } return retval; } protected: /** Implementation of the initialization method that has to be * overloaded by for each derived class. */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix)=0; /** @name Accessor methods for the problem defining objects. * Those should be used by the derived classes. */ //@{ const Journalist& Jnlst() const { DBG_ASSERT(initialize_called_); return *jnlst_; } IpoptNLP& IpNLP() const { DBG_ASSERT(initialize_called_); DBG_ASSERT(IsValid(ip_nlp_)); return *ip_nlp_; } IpoptData& IpData() const { DBG_ASSERT(initialize_called_); DBG_ASSERT(IsValid(ip_data_)); return *ip_data_; } IpoptCalculatedQuantities& IpCq() const { DBG_ASSERT(initialize_called_); DBG_ASSERT(IsValid(ip_cq_)); return *ip_cq_; } bool HaveIpData() const { return IsValid(ip_data_); } //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ //AlgorithmStrategyObject(); /** Copy Constructor */ AlgorithmStrategyObject(const AlgorithmStrategyObject&); /** Overloaded Equals Operator */ void operator=(const AlgorithmStrategyObject&); //@} /** @name Pointers to objects defining a particular optimization * problem */ //@{ SmartPtr jnlst_; SmartPtr ip_nlp_; SmartPtr ip_data_; SmartPtr ip_cq_; //@} /** flag indicating if Initialize method has been called (for * debugging) */ bool initialize_called_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoRestoPhase.hpp0000644000076600007660000000403111504216567021262 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoRestoPhase.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-02-11 #ifndef __IPRESTORESTOPHASE_HPP__ #define __IPRESTORESTOPHASE_HPP__ #include "IpRestoPhase.hpp" #include "IpIpoptAlg.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** Recursive Restoration Phase for the.MinC_1NrmRestorationPhase. * This procedure chooses the n and p variables in the * MinC_1NrmRestorationPhase problem formulation by treating the * problem as separable (assuming that the x and s variables are * fixed). */ class RestoRestorationPhase : public RestorationPhase { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor. */ RestoRestorationPhase(); /** Default destructor */ virtual ~RestoRestorationPhase(); //@} /** Overloaded from AlgorithmStrategy case class */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); protected: /** Overloaded method from RestorationPhase. */ virtual bool PerformRestoration(); private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ RestoRestorationPhase(const RestoRestorationPhase&); /** Overloaded Equals Operator */ void operator=(const RestoRestorationPhase&); //@} /** @name Auxilliary methods */ //@{ /** Method for solving the quadratic vector equation v^2 + 2a*v - b = 0 */ void solve_quadratic(const Vector& a, const Vector& b, Vector& v); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpNLPBoundsRemover.hpp0000644000076600007660000002472212151613040021327 0ustar coincoin// Copyright (C) 2008, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpNLP.hpp 949 2007-03-27 00:41:26Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-25 #ifndef __IPNLPBOUNDSREMOVER_HPP__ #define __IPNLPBOUNDSREMOVER_HPP__ #include "IpNLP.hpp" namespace Ipopt { /** This is an adaper for an NLP that converts variable bound * constraints to inequality constraints. This is necessary for * the version of Ipopt that uses iterative linear solvers. At * this point, none of the original inequality constraints is * allowed to have both lower and upper bounds. The NLP visible to * Ipopt via this adapter will not have any bounds on variables, * but have equivalent inequality constraints. */ class NLPBoundsRemover : public NLP { public: /**@name Constructors/Destructors */ //@{ /** The constructor is given the NLP of which the bounds are to be * replaced by inequality constriants. */ NLPBoundsRemover(NLP& nlp, bool allow_twosided_inequalities = false); /** Default destructor */ virtual ~NLPBoundsRemover() {} //@} /** @name NLP Initialization (overload in * derived classes).*/ //@{ /** Overload if you want the chance to process options or parameters that * may be specific to the NLP */ virtual bool ProcessOptions(const OptionsList& options, const std::string& prefix) { return nlp_->ProcessOptions(options, prefix); } /** Method for creating the derived vector / matrix types. The * Hess_lagrangian_space pointer can be NULL if a quasi-Newton * options is chosen. */ virtual bool GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space); /** Method for obtaining the bounds information */ virtual bool GetBoundsInformation(const Matrix& Px_L, Vector& x_L, const Matrix& Px_U, Vector& x_U, const Matrix& Pd_L, Vector& d_L, const Matrix& Pd_U, Vector& d_U); /** Method for obtaining the starting point for all the * iterates. ToDo it might not make sense to ask for initial * values for v_L and v_U? */ virtual bool GetStartingPoint(SmartPtr x, bool need_x, SmartPtr y_c, bool need_y_c, SmartPtr y_d, bool need_y_d, SmartPtr z_L, bool need_z_L, SmartPtr z_U, bool need_z_U); /** Method for obtaining an entire iterate as a warmstart point. * The incoming IteratesVector has to be filled. This has not * yet been implemented for this adapter. */ virtual bool GetWarmStartIterate(IteratesVector& warm_start_iterate) { return nlp_->GetWarmStartIterate(warm_start_iterate); } //@} /** @name NLP evaluation routines (overload * in derived classes. */ //@{ virtual bool Eval_f(const Vector& x, Number& f) { return nlp_->Eval_f(x, f); } virtual bool Eval_grad_f(const Vector& x, Vector& g_f) { return nlp_->Eval_grad_f(x, g_f); } virtual bool Eval_c(const Vector& x, Vector& c) { return nlp_->Eval_c(x, c); } virtual bool Eval_jac_c(const Vector& x, Matrix& jac_c) { return nlp_->Eval_jac_c(x, jac_c); } virtual bool Eval_d(const Vector& x, Vector& d); virtual bool Eval_jac_d(const Vector& x, Matrix& jac_d); virtual bool Eval_h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, SymMatrix& h); //@} /** @name NLP solution routines. Have default dummy * implementations that can be overloaded. */ //@{ /** This method is called at the very end of the optimization. It * provides the final iterate to the user, so that it can be * stored as the solution. The status flag indicates the outcome * of the optimization, where SolverReturn is defined in * IpAlgTypes.hpp. */ virtual void FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); /** This method is called once per iteration, after the iteration * summary output has been printed. It provides the current * information to the user to do with it anything she wants. It * also allows the user to ask for a premature termination of the * optimization by returning false, in which case Ipopt will * terminate with a corresponding return status. The basic * information provided in the argument list has the quantities * values printed in the iteration summary line. If more * information is required, a user can obtain it from the IpData * and IpCalculatedQuantities objects. However, note that the * provided quantities are all for the problem that Ipopt sees, * i.e., the quantities might be scaled, fixed variables might be * sorted out, etc. The status indicates things like whether the * algorithm is in the restoration phase... In the restoration * phase, the dual variables are probably not not changing. */ virtual bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { return nlp_->IntermediateCallBack(mode,iter, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials, ip_data, ip_cq); } //@} /** Routines to get the scaling parameters. These do not need to * be overloaded unless the options are set for User scaling */ //@{ virtual void GetScalingParameters( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, Number& obj_scaling, SmartPtr& x_scaling, SmartPtr& c_scaling, SmartPtr& d_scaling) const; //@} /** Method for obtaining the subspace in which the limited-memory * Hessian approximation should be done. This is only called if * the limited-memory Hessian approximation is chosen. Since the * Hessian is zero in the space of all variables that appear in * the problem functions only linearly, this allows the user to * provide a VectorSpace for all nonlinear variables, and an * ExpansionMatrix to lift from this VectorSpace to the * VectorSpace of the primal variables x. If the returned values * are NULL, it is assumed that the Hessian is to be approximated * in the space of all x variables. The default instantiation of * this method returns NULL, and a user only has to overwrite * this method if the approximation is to be done only in a * subspace. */ virtual void GetQuasiNewtonApproximationSpaces(SmartPtr& approx_space, SmartPtr& P_approx) { nlp_->GetQuasiNewtonApproximationSpaces(approx_space, P_approx); } /** Accessor method to the original NLP */ SmartPtr nlp() { return nlp_; } private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ NLPBoundsRemover(); /** Copy Constructor */ NLPBoundsRemover(const NLPBoundsRemover&); /** Overloaded Equals Operator */ void operator=(const NLPBoundsRemover&); //@} /** Pointer to the original NLP */ SmartPtr nlp_; /** Pointer to the expansion matrix for the lower x bounds */ SmartPtr Px_l_orig_; /** Pointer to the expansion matrix for the upper x bounds */ SmartPtr Px_u_orig_; /** Pointer to the original d space */ SmartPtr d_space_orig_; /** Flag indicating whether twosided inequality constraints are * allowed */ bool allow_twosided_inequalities_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoConvCheck.hpp0000644000076600007660000000655111504216567021061 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 // // was originally IpRestoFilterConvCheck.hpp (rev 781) // separated by A Waechter IBM 2008-06-24 #ifndef __IPRESTOCONVCHECK_HPP__ #define __IPRESTOCONVCHECK_HPP__ #include "IpOptErrorConvCheck.hpp" #include "IpBacktrackingLSAcceptor.hpp" namespace Ipopt { /** Convergence check for the restoration phase. This inherits from * the OptimalityErrorConvergenceCheck so that the method for the * regular optimality error convergence criterion can be checked as * well. In addition, this convergence check returns the CONVERGED * message, if the current iteration is acceptable to the original * globalization scheme. * */ class RestoConvergenceCheck : public OptimalityErrorConvergenceCheck { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ RestoConvergenceCheck(); /** Default destructor */ virtual ~RestoConvergenceCheck(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** overloaded from ConvergenceCheck */ virtual ConvergenceStatus CheckConvergence(bool call_intermediate_callback = true); /** Method for setting the LS acceptor from the main algorithm */ virtual void SetOrigLSAcceptor(const BacktrackingLSAcceptor& orig_ls_acceptor) = 0; /** Methods used by IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ RestoConvergenceCheck(const RestoConvergenceCheck&); /** Overloaded Equals Operator */ void operator=(const RestoConvergenceCheck&); //@} /** Method for checking progress with original globalization * mechanism. This needs to be overloaded */ virtual ConvergenceStatus TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta) = 0; /** @name Algorithmic parameters */ //@{ /** Fraction of required reduction in infeasibility before problem * is considered to be solved. */ Number kappa_resto_; /** Maximum number of iterations in restoration phase */ Index maximum_iters_; /** Maximum number of succesive iterations in restoration phase */ Index maximum_resto_iters_; /** Constraint violation tolerance for original algorithm */ Number orig_constr_viol_tol_; //@} /** Flag indicating that this is the first call. We don't want to * leave the restoration phase without taking at least one step, * so this flag is used to ensure this. */ bool first_resto_iter_; /** Counter for successive iterations in restoration phase */ Index successive_resto_iter_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLowRankAugSystemSolver.hpp0000644000076600007660000002054611504216567022613 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLowRankAugSystemSolver.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-27 #ifndef __IP_LOWRANKAUGSYSTEMSOLVER_HPP__ #define __IP_LOWRANKAUGSYSTEMSOLVER_HPP__ #include "IpAugSystemSolver.hpp" #include "IpDenseGenMatrix.hpp" #include "IpMultiVectorMatrix.hpp" #include "IpDiagMatrix.hpp" namespace Ipopt { /** Solver for the augmented system with LowRankUpdateSymMatrix * Hessian matrices. This version works with the Sherman-Morrison * formula and multiple backsolves. */ class LowRankAugSystemSolver : public AugSystemSolver { public: /**@name Constructors/Destructors */ //@{ /** Constructor using only a linear solver object */ LowRankAugSystemSolver(AugSystemSolver& aug_system_solver); /** Default destructor */ virtual ~LowRankAugSystemSolver(); //@} /** overloaded from AlgorithmStrategyObject */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Set up the augmented system and solve it for a given right hand * side. */ virtual ESymSolverStatus Solve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, const Vector& rhs_x, const Vector& rhs_s, const Vector& rhs_c, const Vector& rhs_d, Vector& sol_x, Vector& sol_s, Vector& sol_c, Vector& sol_d, bool check_NegEVals, Index numberOfNegEVals); /** Number of negative eigenvalues detected during last * solve. Returns the number of negative eigenvalues of * the most recent factorized matrix. This must not be called if * the linear solver does not compute this quantities (see * ProvidesInertia). */ virtual Index NumberOfNegEVals() const; /** Query whether inertia is computed by linear solver. * Returns true, if linear solver provides inertia. */ virtual bool ProvidesInertia() const; /** Request to increase quality of solution for next solve. Ask * underlying linear solver to increase quality of solution for * the next solve (e.g. increase pivot tolerance). Returns * false, if this is not possible (e.g. maximal pivot tolerance * already used.) */ virtual bool IncreaseQuality(); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default constructor. */ LowRankAugSystemSolver(); /** Copy Constructor */ LowRankAugSystemSolver(const LowRankAugSystemSolver&); /** Overloaded Equals Operator */ void operator=(const LowRankAugSystemSolver&); //@} /** The augmented system solver object that should be used for the * factorization of the augmented system without the low-rank * update. */ SmartPtr aug_system_solver_; /**@name Tags and values to track in order to decide whether the matrix has to be updated compared to the most recent call of the Set method. */ //@{ /** Tag for W matrix. If W has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag w_tag_; /** Most recent value of W_factor */ double w_factor_; /** Tag for D_x vector, representing the diagonal matrix D_x. If * D_x has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_x_tag_; /** Most recent value of delta_x from Set method */ double delta_x_; /** Tag for D_s vector, representing the diagonal matrix D_s. If * D_s has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_s_tag_; /** Most recent value of delta_s from Set method */ double delta_s_; /** Tag for J_c matrix. If J_c has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_c_tag_; /** Tag for D_c vector, representing the diagonal matrix D_c. If * D_c has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_c_tag_; /** Most recent value of delta_c from Set method */ double delta_c_; /** Tag for J_d matrix. If J_d has been given to Set as NULL, then * this tag is set to 0 */ TaggedObject::Tag j_d_tag_; /** Tag for D_d vector, representing the diagonal matrix D_d. If * D_d has been given to Set as NULL, then this tag is set to 0 */ TaggedObject::Tag d_d_tag_; /** Most recent value of delta_d from Set method */ double delta_d_; //@} /** @name Information to be stored in order to resolve for the * same matrix with a different right hand side. */ //@{ bool first_call_; SmartPtr J1_; SmartPtr J2_; SmartPtr Vtilde1_; SmartPtr Utilde2_; /** Hessian Matrix passed to the augmented system solver solving * the matrix without the low-rank update. */ SmartPtr Wdiag_; /** Vector space for Compound vectors that capture the entire * right hand side and solution vectors .*/ SmartPtr compound_sol_vecspace_; //@} /** Stores the number of negative eigenvalues detected during most * recent factorization. This is what is returned by * NumberOfNegEVals() of this class. It usually is the number of * negative eigenvalues retured from the aug_system_solver solve, * but if a Cholesky factorization could not be performed, the * returned value is one more than this what the * aug_system_solver returned. */ Index num_neg_evals_; /** @name Internal functions */ //@{ /** Method for updating the factorization, including J1_, J2_, * Vtilde1_, Utilde2, Wdiag_, compound_sol_vecspace_ */ ESymSolverStatus UpdateFactorization( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d, bool check_NegEVals, Index numberOfNegEVals); /** Method for solving the augmented system without low-rank * update for multiple right hand sides that are provided as * MultiVectorMatrix. The result is returned as a * MultiVectorMatrix in Vtilde1. V_x and Vtilde1_x are V and * Vtilde1 in the x-space. */ ESymSolverStatus SolveMultiVector( const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_rhs_x, const Vector& proto_rhs_s, const Vector& proto_rhs_c, const Vector& proto_rhs_d, const MultiVectorMatrix& V, const SmartPtr& P_LM, SmartPtr& V_x, SmartPtr& Vtilde1, SmartPtr& Vtilde1_x, bool check_NegEVals, Index numberOfNegEVals); /** Method that compares the tags of the data for the matrix with * those from the previous call. Returns true, if there was a * change and the factorization has to be updated. */ bool AugmentedSystemRequiresChange( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpLimMemQuasiNewtonUpdater.hpp0000644000076600007660000003737511504216567023114 0ustar coincoin// Copyright (C) 2005, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpLimMemQuasiNewtonUpdater.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-26 #ifndef __IPLIMMEMQUASINEWTONUPDATER_HPP__ #define __IPLIMMEMQUASINEWTONUPDATER_HPP__ #include "IpHessianUpdater.hpp" #include "IpLowRankUpdateSymMatrix.hpp" #include "IpMultiVectorMatrix.hpp" #include "IpDenseVector.hpp" #include "IpDenseGenMatrix.hpp" #include "IpDenseSymMatrix.hpp" namespace Ipopt { /** Implementation of the HessianUpdater for limit-memory * quasi-Newton approximation of the Lagrangian Hessian. */ class LimMemQuasiNewtonUpdater : public HessianUpdater { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ LimMemQuasiNewtonUpdater(bool update_for_resto); /** Default destructor */ virtual ~LimMemQuasiNewtonUpdater() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Update the Hessian based on the current information in IpData. */ virtual void UpdateHessian(); /** Methods for OptionsList */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ LimMemQuasiNewtonUpdater(const LimMemQuasiNewtonUpdater&); /** Overloaded Equals Operator */ void operator=(const LimMemQuasiNewtonUpdater&); //@} /** Matrix space for the low-rank Hessian approximation. */ SmartPtr h_space_; /** @name Algorithmic parameters */ //@{ /** Size of memory for limited memory update. */ Index limited_memory_max_history_; /** enumeration for the Hessian update type. */ enum LMUpdateType { BFGS=0, SR1 }; /** Type of Hessian update. */ LMUpdateType limited_memory_update_type_; /** enumeration for the Hessian initialization. */ enum LMInitialization { SCALAR1=0, SCALAR2, SCALAR3, SCALAR4, CONSTANT }; /** How to choose B0 in the low-rank update. */ LMInitialization limited_memory_initialization_; /** Value of B0 (as this multiple of the identity in certain * situations.) */ Number limited_memory_init_val_; /** Number of successive iterations of skipped updates after which * the approximation is reset. */ Index limited_memory_max_skipping_; /** Minimal safeguard value for sigma */ Number sigma_safe_min_; /** Maximal safeguard value for sigma */ Number sigma_safe_max_; /** Flag indicating if Hessian approximation should be done in a * special manner for the restoration phase. */ bool limited_memory_special_for_resto_; //@} /** Flag indicating if the update is to be done for the original * NLP or for the restoration phase NLP. In the latter case, we * are performing a "structured" update, taking into account the * first explicit term in the objective function of the form * eta*D_r*x_k */ const bool update_for_resto_; /** Most recent value for eta in the restoration phase objective * function (only for update_for_resto_ = true) */ Number last_eta_; /** Current DR_x scaling factors in the restoration phase * objective function (only for update_for_resto_ = true). This * should not change throughout one restoration phase. */ SmartPtr curr_DR_x_; /** Tag for curr_DR_x_ */ TaggedObject::Tag curr_DR_x_tag_; /** Current DR_x scaling factors in the restoration phase * objective function in the smaller space for the approximation - * this is only computed if the space is indeed smaller than the * x space (only for update_for_resto_ = true) */ SmartPtr curr_red_DR_x_; /** Current value of weighing factor eta in the restoration phase * objective function (only for update_for_resto_ = true) */ Number curr_eta_; /** Counter for successive iterations in which the update was * skipped */ Index lm_skipped_iter_; /** @name Information for the limited memory update */ //@{ /** current size of limited memory */ Index curr_lm_memory_; /** s pairs for the recent iterations */ SmartPtr S_; /** y pairs for the recent iterations. If update_for_resto is * true, then this includes only the information for the * constraints. */ SmartPtr Y_; /** For restoration phase update: Y without the quadratic * objective function part */ SmartPtr Ypart_; /** Diagonal elements D_k for compact formulation from last * update. */ SmartPtr D_; /** Matrix L_k for compact formulation from last update.*/ SmartPtr L_; /** First term (starting matrix) for the approximation. */ SmartPtr B0_; /** First term (starting matrix) for the approximation. If that * first terms is a multiple of the identy, sigma give that * factor. Otherwise sigma = -1. */ Number sigma_; /** V in LowRankUpdateMatrix from last update */ SmartPtr V_; /** U in LowRankUpdateMatrix from last update */ SmartPtr U_; /** For efficient implementation, we store the pairwise products * for s's. */ SmartPtr SdotS_; /** Flag indicating whether SdotS_ is update to date from most * recent update. */ bool SdotS_uptodate_; /** DR * S (only for restoration phase) */ SmartPtr DRS_; /** For efficient implementation, we store the S^T S DR * S. Only * for restoration phase. */ SmartPtr STDRS_; /** Primal variables x from most recent update */ SmartPtr last_x_; /** Gradient of objective function w.r.t. x at x_last_ */ SmartPtr last_grad_f_; /** Jacobian for equality constraints w.r.t x at x_last */ SmartPtr last_jac_c_; /** Jacobian for inequality constraints w.r.t x at x_last */ SmartPtr last_jac_d_; /** current size of limited memory */ Index curr_lm_memory_old_; /** s pairs for the recent iterations (backup) */ SmartPtr S_old_; /** y pairs for the recent iterations. If update_for_resto is * true, then this includes only the information for the * constraints. (backup) */ SmartPtr Y_old_; /** For restoration phase update: Y without the quadratic * objective function part (backup) */ SmartPtr Ypart_old_; /** Diagonal elements D_k for compact formulation from last * update (backup). */ SmartPtr D_old_; /** Matrix L_k for compact formulation from last update (backup).*/ SmartPtr L_old_; /** First term (starting matrix) for the approximation (backup). */ SmartPtr B0_old_; /** First term (starting matrix) for the approximation. If that * first terms is a multiple of the identy, sigma give that * factor. Otherwise sigma = -1. (backup) */ Number sigma_old_; /** V in LowRankUpdateMatrix from last update (backup) */ SmartPtr V_old_; /** U in LowRankUpdateMatrix from last update (backup) */ SmartPtr U_old_; /** For efficient implementation, we store the pairwise products * for s's (backup). */ SmartPtr SdotS_old_; /** Flag indicating whether SdotS_ is update to date from most * recent update (backup). */ bool SdotS_uptodate_old_; /** DR * S (only for restoration phase) (backup) */ SmartPtr DRS_old_; /** For efficient implementation, we store the S^T S DR * S. Only * for restoration phase. (backup) */ SmartPtr STDRS_old_; //@} /** @name Auxilliary function */ //@{ /** Method deciding whether the BFGS update should be skipped. It * returns true, if no update is to be performed this time. If * Powell-damping is performed, the Vectors s_new and y_new, * might be adapted. */ bool CheckSkippingBFGS(Vector& s_new, Vector& y_new); /** Update the internal data, such as the S, Y, L, D etc matrices * and vectors that are required for computing the compact * representation. The method returns true if the limited memory * history grew (i.e., curr_lm_memory_ was increased). */ bool UpdateInternalData(const Vector& s_new, const Vector& y_new, SmartPtr ypart_new); /** Given a MutliVector V, create a new MultiVectorSpace with one * more column, and return V as a member of that space, * consisting of all previous vectors, and in addition v_new in * the last column. If V is NULL, then a new MatrixSpace with * one column is created. */ void AugmentMultiVector(SmartPtr& V, const Vector& v_new); /** Given a DenseVector V, create a new DenseVectorSpace with one * more row, and return V as a member of that space, * consisting of all previous elements, and in addition v_new in * the last row. If V is NULL, then a new DenseVectorSpace with * dimension one is created. */ void AugmentDenseVector(SmartPtr& V, Number v_new); /** Given a strictly-lower triangular square DenseGenMatrix V, * create a new DenseGenMatrixSpace with one more dimension, and * return V as a member of that space, consisting of all previous * elements, and in addition elements s_i^Ty_j for (i& V, const MultiVectorMatrix& S, const MultiVectorMatrix& Y); /** Given a DenseSymMatrix V, create a new DenseGenMatrixSpace * with one more dimension, and return V as a member of that * space, consisting of all previous elements, and in addition * elements s_i^Ts_j for the new entries, where s are the vectors * in the MultiVector S. If V is NULL, then a new * DenseGenMatrixSpace with dimension one is created. */ void AugmentSdotSMatrix(SmartPtr& V, const MultiVectorMatrix& S); /** Given a DenseSymMatrix V, create a new DenseGenMatrixSpace * with one more dimension, and return V as a member of that * space, consisting of all previous elements, and in addition * elements s_i^TDRs_j for the new entries, where s are the * vectors in the MultiVector S, and DRs are the vectors in DRS. * If V is NULL, then a new DenseGenMatrixSpace with dimension * one is created. */ void AugmentSTDRSMatrix(SmartPtr& V, const MultiVectorMatrix& S, const MultiVectorMatrix& DRS); /** Given a MutliVector V, get rid of the first column, shift all * other columns to the left, and make v_new the last column. * The entity that V points to at the call, is not changed - a * new entity is created in the method and returned as V. */ void ShiftMultiVector(SmartPtr& V, const Vector& v_new); /** Given a DenseVector V, get rid of the first element, shift all * other elements one position to the top, and make v_new the * last entry. The entity that V points to at the call, is not * changed - a new entity is created in the method and returned * as V. */ void ShiftDenseVector(SmartPtr& V, Number v_new); /** Given a strictly-lower triangular square DenseGenMatrix V, * shift everything one row and column up, and fill the new * strictly lower triangular entries as s_i^Ty_j for (i& V, const MultiVectorMatrix& S, const MultiVectorMatrix& Y); /** Given a DenseSymMatrix V, shift everything up one row and * column, and fill the new entries as s_i^Ts_j, where s are the * vectors in the MultiVector S. The entity that V points to at * the call, is not changed - a new entity is created in the * method and returned as V. */ void ShiftSdotSMatrix(SmartPtr& V, const MultiVectorMatrix& S); /** Given a DenseSymMatrix V, shift everything up one row and * column, and fill the new entries as s_i^TDRs_j, where s are * the vectors in the MultiVector S, and DRs are the vectors in * DRS. The entity that V points to at the call, is not changed - * a new entity is created in the method and returned as V. */ void ShiftSTDRSMatrix(SmartPtr& V, const MultiVectorMatrix& S, const MultiVectorMatrix& DRS); /** Method for recomputing Y from scratch, using Ypart (only for * restoration phase) */ void RecalcY(Number eta, const Vector& DR_x, MultiVectorMatrix& S, MultiVectorMatrix& Ypart, SmartPtr& Y); /** Method for recomputing D from S and Y */ void RecalcD(MultiVectorMatrix& S, MultiVectorMatrix& Y, SmartPtr& D); /** Method for recomputing L from S and Y */ void RecalcL(MultiVectorMatrix& S, MultiVectorMatrix& Y, SmartPtr& L); /** Split the eigenvectors into negative and positive ones. Given * the eigenvectors in Q and the eigenvalues (in ascending order) * in, this returns Qminus as the negative eigenvectors times * sqrt(-eval), and Qplus as the positive eigenvectors times * sqrt(eval). If Qminus or Qplus is NULL, it means that there * are not negetive or positive eigenvalues. Q might be changed * during this call. The return value is true, if the ratio of * the smallest over the largest eigenvalue (in absolute values) * is too small; in that case, the update should be skipped. */ bool SplitEigenvalues(DenseGenMatrix& Q, const DenseVector& E, SmartPtr& Qminus, SmartPtr& Qplus); /** Store a copy of the pointers to the internal data (S, Y, D, L, * SdotS, curr_lm_memory) This is called in case the update is * started but skipped during the process. */ void StoreInternalDataBackup(); /** Restore the copy of the pointers to the internal data most * recently stored with StoreInternalDataBackup(). */ void RestoreInternalDataBackup(); /** Release anything that we allocated for * StoreInternalDataBackup and is no longer needed. */ void ReleaseInternalDataBackup(); /** Set the W field in IpData based on the current values of * B0_, V_, and U_ */ void SetW(); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpOrigIpoptNLP.cpp0000644000076600007660000012071612214316142020447 0ustar coincoin// Copyright (C) 2004, 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpOrigIpoptNLP.cpp 2386 2013-09-12 10:50:10Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpOrigIpoptNLP.hpp" #include "IpLowRankUpdateSymMatrix.hpp" #include "IpIpoptData.hpp" #include "IpIpoptCalculatedQuantities.hpp" #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif OrigIpoptNLP::OrigIpoptNLP(const SmartPtr& jnlst, const SmartPtr& nlp, const SmartPtr& nlp_scaling) : IpoptNLP(nlp_scaling), jnlst_(jnlst), nlp_(nlp), x_space_(NULL), f_cache_(1), grad_f_cache_(1), c_cache_(1), jac_c_cache_(1), d_cache_(1), jac_d_cache_(1), h_cache_(1), unscaled_x_cache_(1), initialized_(false) {} OrigIpoptNLP::~OrigIpoptNLP() {} void OrigIpoptNLP::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "bound_relax_factor", "Factor for initial relaxation of the bounds.", 0, false, 1e-8, "Before start of the optimization, the bounds given by the user are " "relaxed. This option sets the factor for this relaxation. If it " "is set to zero, then then bounds relaxation is disabled. " "(See Eqn.(35) in implementation paper.)"); roptions->AddStringOption2( "honor_original_bounds", "Indicates whether final points should be projected into original bounds.", "yes", "no", "Leave final point unchanged", "yes", "Project final point back into original bounds", "Ipopt might relax the bounds during the optimization (see, e.g., option " "\"bound_relax_factor\"). This option determines whether the final " "point should be projected back into the user-provide original bounds " "after the optimization."); roptions->SetRegisteringCategory("Warm Start"); roptions->AddStringOption2( "warm_start_same_structure", "Indicates whether a problem with a structure identical to the previous one is to be solved.", "no", "no", "Assume this is a new problem.", "yes", "Assume this is problem has known structure", "If \"yes\" is chosen, then the algorithm assumes that an NLP is now to " "be solved, whose structure is identical to one that already was " "considered (with the same NLP object)."); roptions->SetRegisteringCategory("NLP"); roptions->AddStringOption2( "check_derivatives_for_naninf", "Indicates whether it is desired to check for Nan/Inf in derivative matrices", "no", "no", "Don't check (faster).", "yes", "Check Jacobians and Hessian for Nan and Inf.", "Activating this option will cause an error if an invalid number is " "detected in the constraint Jacobians or the Lagrangian Hessian. If " "this is not activated, the test is skipped, and the algorithm might " "proceed with invalid numbers and fail. If test is activated and an " "invalid number is detected, the matrix is written to output with " "print_level corresponding to J_MORE_DETAILED; so beware of large " "output!"); roptions->AddStringOption2( "jac_c_constant", "Indicates whether all equality constraints are linear", "no", "no", "Don't assume that all equality constraints are linear", "yes", "Assume that equality constraints Jacobian are constant", "Activating this option will cause Ipopt to ask for the Jacobian of the " "equality constraints only once from the NLP and reuse this information " "later."); roptions->AddStringOption2( "jac_d_constant", "Indicates whether all inequality constraints are linear", "no", "no", "Don't assume that all inequality constraints are linear", "yes", "Assume that equality constraints Jacobian are constant", "Activating this option will cause Ipopt to ask for the Jacobian of the " "inequality constraints only once from the NLP and reuse this information " "later."); roptions->AddStringOption2( "hessian_constant", "Indicates whether the problem is a quadratic problem", "no", "no", "Assume that Hessian changes", "yes", "Assume that Hessian is constant", "Activating this option will cause Ipopt to ask for the Hessian of the " "Lagrangian function only once from the NLP and reuse this information " "later."); roptions->SetRegisteringCategory("Hessian Approximation"); roptions->AddStringOption2( "hessian_approximation", "Indicates what Hessian information is to be used.", "exact", "exact", "Use second derivatives provided by the NLP.", "limited-memory", "Perform a limited-memory quasi-Newton approximation", "This determines which kind of information for the Hessian of the " "Lagrangian function is used by the algorithm."); roptions->AddStringOption2( "hessian_approximation_space", "Indicates in which subspace the Hessian information is to be approximated.", "nonlinear-variables", "nonlinear-variables", "only in space of nonlinear variables.", "all-variables", "in space of all variables (without slacks)"); } bool OrigIpoptNLP::Initialize(const Journalist& jnlst, const OptionsList& options, const std::string& prefix) { options.GetNumericValue("bound_relax_factor", bound_relax_factor_, prefix); options.GetBoolValue("honor_original_bounds", honor_original_bounds_, prefix); options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); options.GetBoolValue("check_derivatives_for_naninf", check_derivatives_for_naninf_, prefix); Index enum_int; options.GetEnumValue("hessian_approximation", enum_int, prefix); hessian_approximation_ = HessianApproximationType(enum_int); options.GetEnumValue("hessian_approximation_space", enum_int, prefix); hessian_approximation_space_ = HessianApproximationSpace(enum_int); options.GetBoolValue("jac_c_constant", jac_c_constant_, prefix); options.GetBoolValue("jac_d_constant", jac_d_constant_, prefix); options.GetBoolValue("hessian_constant", hessian_constant_, prefix); // Reset the function evaluation counters (for warm start) f_evals_=0; grad_f_evals_=0; c_evals_=0; jac_c_evals_=0; d_evals_=0; jac_d_evals_=0; h_evals_=0; if (!warm_start_same_structure_) { // Reset all caches. grad_f_cache_.Clear(); c_cache_.Clear(); jac_c_cache_.Clear(); d_cache_.Clear(); jac_d_cache_.Clear(); // If the hessian is constant, we want two hessians to be // cached, one for regular iterations and one for restoration // phase if (hessian_constant_) h_cache_.Clear(2); else h_cache_.Clear(1); } // Reset the cache entries belonging to a dummy dependency. This // is required for repeated solve, since the cache is not updated // if a dimension is zero. It is also required if we choose // jac_[cd]_constant and hessian_constant differently between // runs std::vector deps(1); deps[0] = NULL; std::vector sdeps(0); c_cache_.InvalidateResult(deps, sdeps); d_cache_.InvalidateResult(deps, sdeps); jac_c_cache_.InvalidateResult(deps, sdeps); jac_d_cache_.InvalidateResult(deps, sdeps); h_cache_.InvalidateResult(deps, sdeps); if (!nlp_->ProcessOptions(options, prefix)) { return false; } initialized_ = true; return IpoptNLP::Initialize(jnlst, options, prefix); } bool OrigIpoptNLP::InitializeStructures(SmartPtr& x, bool init_x, SmartPtr& y_c, bool init_y_c, SmartPtr& y_d, bool init_y_d, SmartPtr& z_L, bool init_z_L, SmartPtr& z_U, bool init_z_U, SmartPtr& v_L, SmartPtr& v_U ) { DBG_START_METH("OrigIpoptNLP::InitializeStructures", dbg_verbosity); DBG_ASSERT(initialized_); bool retValue; SmartPtr x_L; SmartPtr Px_L; SmartPtr x_U; SmartPtr Px_U; SmartPtr d_L; SmartPtr Pd_L; SmartPtr d_U; SmartPtr Pd_U; if (!warm_start_same_structure_) { retValue = nlp_->GetSpaces(x_space_, c_space_, d_space_, x_l_space_, px_l_space_, x_u_space_, px_u_space_, d_l_space_, pd_l_space_, d_u_space_, pd_u_space_, jac_c_space_, jac_d_space_, h_space_); if (!retValue) { jnlst_->Printf(J_WARNING, J_INITIALIZATION, "GetSpaces method for the NLP returns false.\n"); return false; } // Check if the Hessian space is actually a limited-memory // approximation. If so, get the required information from the // NLP and create an appropreate h_space if (hessian_approximation_==LIMITED_MEMORY) { SmartPtr approx_vecspace; SmartPtr P_approx; if (hessian_approximation_space_==NONLINEAR_VARS) { nlp_->GetQuasiNewtonApproximationSpaces(approx_vecspace, P_approx); } if (IsValid(approx_vecspace)) { DBG_ASSERT(IsValid(P_approx)); h_space_ = new LowRankUpdateSymMatrixSpace(x_space_->Dim(), ConstPtr(P_approx), ConstPtr(approx_vecspace), true); jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "Hessian approximation will be done in smaller space of dimension %d (instead of %d)\n\n", P_approx->NCols(), P_approx->NRows()); } else { DBG_ASSERT(IsNull(P_approx)); h_space_ = new LowRankUpdateSymMatrixSpace(x_space_->Dim(), ConstPtr(P_approx), ConstPtr(x_space_), true); jnlst_->Printf(J_DETAILED, J_INITIALIZATION, "Hessian approximation will be done in the space of all %d x variables.\n\n", x_space_->Dim()); } } // Create the bounds structures x_L = x_l_space_->MakeNew(); Px_L = px_l_space_->MakeNew(); x_U = x_u_space_->MakeNew(); Px_U = px_u_space_->MakeNew(); d_L = d_l_space_->MakeNew(); Pd_L = pd_l_space_->MakeNew(); d_U = d_u_space_->MakeNew(); Pd_U = pd_u_space_->MakeNew(); retValue = nlp_->GetBoundsInformation(*Px_L, *x_L, *Px_U, *x_U, *Pd_L, *d_L, *Pd_U, *d_U); if (!retValue) { return false; } NLP_scaling()->DetermineScaling(x_space_, c_space_, d_space_, jac_c_space_, jac_d_space_, h_space_, scaled_jac_c_space_, scaled_jac_d_space_, scaled_h_space_, *Px_L, *x_L, *Px_U, *x_U); if (x_space_->Dim() < c_space_->Dim()) { char msg[128]; Snprintf(msg, 127, "Too few degrees of freedom: %d equality constriants but only %d variables", c_space_->Dim(), x_space_->Dim()); THROW_EXCEPTION(TOO_FEW_DOF, msg); } ASSERT_EXCEPTION(x_space_->Dim() > 0, TOO_FEW_DOF, "Too few degrees of freedom (no free variables)!"); // cannot have any null pointers, want zero length vectors // instead of null - this will later need to be changed for _h; retValue = (IsValid(x_space_) && IsValid(c_space_) && IsValid(d_space_) && IsValid(x_l_space_) && IsValid(px_l_space_) && IsValid(x_u_space_) && IsValid(px_u_space_) && IsValid(d_u_space_) && IsValid(pd_u_space_) && IsValid(d_l_space_) && IsValid(pd_l_space_) && IsValid(jac_c_space_) && IsValid(jac_d_space_) && IsValid(h_space_) && IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_d_space_) && IsValid(scaled_h_space_)); DBG_ASSERT(retValue && "Model cannot return null vector or matrix prototypes or spaces," " please return zero length vectors instead"); } else { ASSERT_EXCEPTION(IsValid(x_space_), INVALID_WARMSTART, "OrigIpoptNLP called with warm_start_same_structure, but the problem is solved for the first time."); // Create the bounds structures x_L = x_l_space_->MakeNew(); Px_L = px_l_space_->MakeNew(); x_U = x_u_space_->MakeNew(); Px_U = px_u_space_->MakeNew(); d_L = d_l_space_->MakeNew(); Pd_L = pd_l_space_->MakeNew(); d_U = d_u_space_->MakeNew(); Pd_U = pd_u_space_->MakeNew(); retValue = nlp_->GetBoundsInformation(*Px_L, *x_L, *Px_U, *x_U, *Pd_L, *d_L, *Pd_U, *d_U); if (!retValue) { return false; } } x_L->Print(*jnlst_, J_MOREVECTOR, J_INITIALIZATION, "original x_L unscaled"); x_U->Print(*jnlst_, J_MOREVECTOR, J_INITIALIZATION, "original x_U unscaled"); d_L->Print(*jnlst_, J_MOREVECTOR, J_INITIALIZATION, "original d_L unscaled"); d_U->Print(*jnlst_, J_MOREVECTOR, J_INITIALIZATION, "original d_U unscaled"); if (honor_original_bounds_) { SmartPtr tmp; tmp = x_L->MakeNewCopy(); orig_x_L_ = ConstPtr(tmp); tmp = x_U->MakeNewCopy(); orig_x_U_ = ConstPtr(tmp); } relax_bounds(-bound_relax_factor_, *x_L); relax_bounds( bound_relax_factor_, *x_U); relax_bounds(-bound_relax_factor_, *d_L); relax_bounds( bound_relax_factor_, *d_U); x_L_ = ConstPtr(x_L); Px_L_ = ConstPtr(Px_L); x_U_ = ConstPtr(x_U); Px_U_ = ConstPtr(Px_U); d_L_ = ConstPtr(d_L); Pd_L_ = ConstPtr(Pd_L); d_U_ = ConstPtr(d_U); Pd_U_ = ConstPtr(Pd_U); // now create and store the scaled bounds x_L_ = NLP_scaling()->apply_vector_scaling_x_LU(*Px_L_, x_L_, *x_space_); x_U_ = NLP_scaling()->apply_vector_scaling_x_LU(*Px_U_, x_U_, *x_space_); d_L_ = NLP_scaling()->apply_vector_scaling_d_LU(*Pd_L_, d_L_, *d_space_); d_U_ = NLP_scaling()->apply_vector_scaling_d_LU(*Pd_U_, d_U_, *d_space_); x_L_->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "modified x_L scaled"); x_U_->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "modified x_U scaled"); d_L_->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "modified d_L scaled"); d_U_->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "modified d_U scaled"); // Create the iterates structures x = x_space_->MakeNew(); y_c = c_space_->MakeNew(); y_d = d_space_->MakeNew(); z_L = x_l_space_->MakeNew(); z_U = x_u_space_->MakeNew(); v_L = d_l_space_->MakeNew(); v_U = d_u_space_->MakeNew(); retValue = nlp_->GetStartingPoint(GetRawPtr(x), init_x, GetRawPtr(y_c), init_y_c, GetRawPtr(y_d), init_y_d, GetRawPtr(z_L), init_z_L, GetRawPtr(z_U), init_z_U); if (!retValue) { return false; } Number obj_scal = NLP_scaling()->apply_obj_scaling(1.); if (init_x) { x->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "initial x unscaled"); if (NLP_scaling()->have_x_scaling()) { x = NLP_scaling()->apply_vector_scaling_x_NonConst(ConstPtr(x)); } } if (init_y_c) { y_c->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "initial y_c unscaled"); if (NLP_scaling()->have_c_scaling()) { y_c = NLP_scaling()->unapply_vector_scaling_c_NonConst(ConstPtr(y_c)); } if (obj_scal!=1.) { y_c->Scal(obj_scal); } } if (init_y_d) { y_d->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "initial y_d unscaled"); if (NLP_scaling()->have_d_scaling()) { y_d = NLP_scaling()->unapply_vector_scaling_d_NonConst(ConstPtr(y_d)); } if (obj_scal!=1.) { y_d->Scal(obj_scal); } } if (init_z_L) { z_L->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "initial z_L unscaled"); if (NLP_scaling()->have_x_scaling()) { z_L = NLP_scaling()->apply_vector_scaling_x_LU_NonConst(*Px_L_, ConstPtr(z_L), *x_space_); } if (obj_scal!=1.) { z_L->Scal(obj_scal); } } if (init_z_U) { z_U->Print(*jnlst_, J_VECTOR, J_INITIALIZATION, "initial z_U unscaled"); if (NLP_scaling()->have_x_scaling()) { z_U = NLP_scaling()->apply_vector_scaling_x_LU_NonConst(*Px_U_, ConstPtr(z_U), *x_space_); } if (obj_scal!=1.) { z_U->Scal(obj_scal); } } return true; } void OrigIpoptNLP::relax_bounds(Number bound_relax_factor, Vector& bounds) { DBG_START_METH("OrigIpoptNLP::relax_bounds", dbg_verbosity); if (bound_relax_factor!=0.) { SmartPtr tmp = bounds.MakeNew(); tmp->Copy(bounds); tmp->ElementWiseAbs(); SmartPtr ones = bounds.MakeNew(); ones->Set(1.); tmp->ElementWiseMax(*ones); DBG_PRINT((1, "bound_relax_factor = %e", bound_relax_factor)); DBG_PRINT_VECTOR(2, "tmp", *tmp); DBG_PRINT_VECTOR(2, "bounds before", bounds); bounds.Axpy(bound_relax_factor, *tmp); DBG_PRINT_VECTOR(2, "bounds after", bounds); } } Number OrigIpoptNLP::f(const Vector& x) { DBG_START_METH("OrigIpoptNLP::f", dbg_verbosity); Number ret = 0.0; DBG_PRINT((2, "x.Tag = (%p,%d)\n", x.GetTag().first, x.GetTag().second)); if (!f_cache_.GetCachedResult1Dep(ret, &x)) { f_evals_++; SmartPtr unscaled_x = get_unscaled_x(x); f_eval_time_.Start(); bool success = nlp_->Eval_f(*unscaled_x, ret); f_eval_time_.End(); DBG_PRINT((1, "success = %d ret = %e\n", success, ret)); ASSERT_EXCEPTION(success && IsFiniteNumber(ret), Eval_Error, "Error evaluating the objective function"); ret = NLP_scaling()->apply_obj_scaling(ret); f_cache_.AddCachedResult1Dep(ret, &x); } return ret; } Number OrigIpoptNLP::f(const Vector& x, Number mu) { assert(false && "ERROR: This method is only a placeholder for f(mu) and should not be called"); return 0.; } SmartPtr OrigIpoptNLP::grad_f(const Vector& x) { SmartPtr unscaled_grad_f; SmartPtr retValue; if (!grad_f_cache_.GetCachedResult1Dep(retValue, &x)) { grad_f_evals_++; unscaled_grad_f = x_space_->MakeNew(); SmartPtr unscaled_x = get_unscaled_x(x); grad_f_eval_time_.Start(); bool success = nlp_->Eval_grad_f(*unscaled_x, *unscaled_grad_f); grad_f_eval_time_.End(); ASSERT_EXCEPTION(success && IsFiniteNumber(unscaled_grad_f->Nrm2()), Eval_Error, "Error evaluating the gradient of the objective function"); retValue = NLP_scaling()->apply_grad_obj_scaling(ConstPtr(unscaled_grad_f)); grad_f_cache_.AddCachedResult1Dep(retValue, &x); } return retValue; } SmartPtr OrigIpoptNLP::grad_f(const Vector& x, Number mu) { THROW_EXCEPTION(INTERNAL_ABORT, "ERROR: This method is only a placeholder for grad_f(mu) and should not be called"); return NULL; } /** Equality constraint residual */ SmartPtr OrigIpoptNLP::c(const Vector& x) { SmartPtr retValue; if (c_space_->Dim()==0) { // We do this caching of an empty vector so that the returned // Vector has always the same tag (this might make a difference // in cases where only the constraints are supposed to change... SmartPtr dep = NULL; if (!c_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { retValue = c_space_->MakeNew(); c_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } else { if (!c_cache_.GetCachedResult1Dep(retValue, x)) { SmartPtr unscaled_c = c_space_->MakeNew(); c_evals_++; SmartPtr unscaled_x = get_unscaled_x(x); c_eval_time_.Start(); bool success = nlp_->Eval_c(*unscaled_x, *unscaled_c); c_eval_time_.End(); if (!success || !IsFiniteNumber(unscaled_c->Nrm2())) { if (check_derivatives_for_naninf_ && !IsFiniteNumber(unscaled_c->Nrm2())) { jnlst_->Printf(J_WARNING, J_NLP, "The equality constraints contain an invalid number\n"); unscaled_c->Print(*jnlst_, J_MOREDETAILED, J_MAIN, "unscaled_c"); jnlst_->FlushBuffer(); } THROW_EXCEPTION(Eval_Error, "Error evaluating the equality constraints"); } retValue = NLP_scaling()->apply_vector_scaling_c(ConstPtr(unscaled_c)); c_cache_.AddCachedResult1Dep(retValue, x); } } return retValue; } SmartPtr OrigIpoptNLP::d(const Vector& x) { DBG_START_METH("OrigIpoptNLP::d", dbg_verbosity); SmartPtr retValue; if (d_space_->Dim()==0) { // We do this caching of an empty vector so that the returned // Vector has always the same tag (this might make a difference // in cases where only the constraints are supposed to change... SmartPtr dep = NULL; if (!d_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { retValue = d_space_->MakeNew(); d_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } else { if (!d_cache_.GetCachedResult1Dep(retValue, x)) { d_evals_++; SmartPtr unscaled_d = d_space_->MakeNew(); DBG_PRINT_VECTOR(2, "scaled_x", x); SmartPtr unscaled_x = get_unscaled_x(x); d_eval_time_.Start(); bool success = nlp_->Eval_d(*unscaled_x, *unscaled_d); d_eval_time_.End(); DBG_PRINT_VECTOR(2, "unscaled_d", *unscaled_d); if (!success || !IsFiniteNumber(unscaled_d->Nrm2())) { if (check_derivatives_for_naninf_ && !IsFiniteNumber(unscaled_d->Nrm2())) { jnlst_->Printf(J_WARNING, J_NLP, "The inequality constraints contain an invalid number\n"); unscaled_d->Print(*jnlst_, J_MOREDETAILED, J_MAIN, "unscaled_d"); jnlst_->FlushBuffer(); } THROW_EXCEPTION(Eval_Error, "Error evaluating the inequality constraints"); } retValue = NLP_scaling()->apply_vector_scaling_d(ConstPtr(unscaled_d)); d_cache_.AddCachedResult1Dep(retValue, x); } } return retValue; } SmartPtr OrigIpoptNLP::jac_c(const Vector& x) { SmartPtr retValue; if (c_space_->Dim()==0) { // We do this caching of an empty vector so that the returned // Matrix has always the same tag SmartPtr dep = NULL; if (!jac_c_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { SmartPtr unscaled_jac_c = jac_c_space_->MakeNew(); retValue = NLP_scaling()->apply_jac_c_scaling(ConstPtr(unscaled_jac_c)); jac_c_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } else { SmartPtr dep = NULL; if (!jac_c_constant_) { dep = &x; } if (!jac_c_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { jac_c_evals_++; SmartPtr unscaled_jac_c = jac_c_space_->MakeNew(); SmartPtr unscaled_x = get_unscaled_x(x); jac_c_eval_time_.Start(); bool success = nlp_->Eval_jac_c(*unscaled_x, *unscaled_jac_c); jac_c_eval_time_.End(); ASSERT_EXCEPTION(success, Eval_Error, "Error evaluating the jacobian of the equality constraints"); if (check_derivatives_for_naninf_) { if (!unscaled_jac_c->HasValidNumbers()) { jnlst_->Printf(J_WARNING, J_NLP, "The Jacobian for the equality constraints contains an invalid number\n"); unscaled_jac_c->Print(*jnlst_, J_MOREDETAILED, J_MAIN, "unscaled_jac_c"); jnlst_->FlushBuffer(); THROW_EXCEPTION(Eval_Error, "The Jacobian for the equality constraints contains an invalid number"); } } retValue = NLP_scaling()->apply_jac_c_scaling(ConstPtr(unscaled_jac_c)); jac_c_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } return retValue; } SmartPtr OrigIpoptNLP::jac_d(const Vector& x) { SmartPtr retValue; if (d_space_->Dim()==0) { // We do this caching of an empty vector so that the returned // Matrix has always the same tag SmartPtr dep = NULL; if (!jac_d_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { SmartPtr unscaled_jac_d = jac_d_space_->MakeNew(); retValue = NLP_scaling()->apply_jac_d_scaling(ConstPtr(unscaled_jac_d)); jac_d_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } else { SmartPtr dep = NULL; if (!jac_d_constant_) { dep = &x; } if (!jac_d_cache_.GetCachedResult1Dep(retValue, GetRawPtr(dep))) { jac_d_evals_++; SmartPtr unscaled_jac_d = jac_d_space_->MakeNew(); SmartPtr unscaled_x = get_unscaled_x(x); jac_d_eval_time_.Start(); bool success = nlp_->Eval_jac_d(*unscaled_x, *unscaled_jac_d); jac_d_eval_time_.End(); ASSERT_EXCEPTION(success, Eval_Error, "Error evaluating the jacobian of the inequality constraints"); if (check_derivatives_for_naninf_) { if (!unscaled_jac_d->HasValidNumbers()) { jnlst_->Printf(J_WARNING, J_NLP, "The Jacobian for the inequality constraints contains an invalid number\n"); unscaled_jac_d->Print(*jnlst_, J_MOREDETAILED, J_MAIN, "unscaled_jac_d"); jnlst_->FlushBuffer(); THROW_EXCEPTION(Eval_Error, "The Jacobian for the inequality constraints contains an invalid number"); } } retValue = NLP_scaling()->apply_jac_d_scaling(ConstPtr(unscaled_jac_d)); jac_d_cache_.AddCachedResult1Dep(retValue, GetRawPtr(dep)); } } return retValue; } SmartPtr OrigIpoptNLP::uninitialized_h() { return h_space_->MakeNewSymMatrix(); } SmartPtr OrigIpoptNLP::h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd) { SmartPtr unscaled_h; SmartPtr retValue; std::vector deps(3); if (!hessian_constant_) { deps[0] = &x; deps[1] = &yc; deps[2] = &yd; } else { deps[0] = NULL; deps[1] = NULL; deps[2] = NULL; } std::vector scalar_deps(1); scalar_deps[0] = obj_factor; if (!h_cache_.GetCachedResult(retValue, deps, scalar_deps)) { h_evals_++; unscaled_h = h_space_->MakeNewSymMatrix(); SmartPtr unscaled_x = get_unscaled_x(x); SmartPtr unscaled_yc = NLP_scaling()->apply_vector_scaling_c(&yc); SmartPtr unscaled_yd = NLP_scaling()->apply_vector_scaling_d(&yd); Number scaled_obj_factor = NLP_scaling()->apply_obj_scaling(obj_factor); h_eval_time_.Start(); bool success = nlp_->Eval_h(*unscaled_x, scaled_obj_factor, *unscaled_yc, *unscaled_yd, *unscaled_h); h_eval_time_.End(); ASSERT_EXCEPTION(success, Eval_Error, "Error evaluating the hessian of the lagrangian"); if (check_derivatives_for_naninf_) { if (!unscaled_h->HasValidNumbers()) { jnlst_->Printf(J_WARNING, J_NLP, "The Lagrangian Hessian contains an invalid number\n"); unscaled_h->Print(*jnlst_, J_MOREDETAILED, J_MAIN, "unscaled_h"); jnlst_->FlushBuffer(); THROW_EXCEPTION(Eval_Error, "The Lagrangian Hessian contains an invalid number"); } } retValue = NLP_scaling()->apply_hessian_scaling(ConstPtr(unscaled_h)); h_cache_.AddCachedResult(retValue, deps, scalar_deps); } return retValue; } SmartPtr OrigIpoptNLP::h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, Number mu) { THROW_EXCEPTION(INTERNAL_ABORT, "ERROR: This method is only a for h(mu) and should not be called"); return NULL; } void OrigIpoptNLP::GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space) { // Make sure that we already have all the pointers DBG_ASSERT(IsValid(x_space_) && IsValid(c_space_) && IsValid(d_space_) && IsValid(x_l_space_) && IsValid(px_l_space_) && IsValid(x_u_space_) && IsValid(px_u_space_) && IsValid(d_l_space_) && IsValid(pd_l_space_) && IsValid(d_u_space_) && IsValid(pd_u_space_) && IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_d_space_) && IsValid(scaled_h_space_)); DBG_ASSERT(IsValid(NLP_scaling())); x_space = x_space_; c_space = c_space_; d_space = d_space_; x_l_space = x_l_space_; px_l_space = px_l_space_; x_u_space = x_u_space_; px_u_space = px_u_space_; d_l_space = d_l_space_; pd_l_space = pd_l_space_; d_u_space = d_u_space_; pd_u_space = pd_u_space_; Jac_c_space = scaled_jac_c_space_; Jac_d_space = scaled_jac_d_space_; Hess_lagrangian_space = scaled_h_space_; } void OrigIpoptNLP::FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { DBG_START_METH("OrigIpoptNLP::FinalizeSolution", dbg_verbosity); // need to submit the unscaled solution back to the nlp SmartPtr unscaled_x = get_unscaled_x(x); SmartPtr unscaled_c = NLP_scaling()->unapply_vector_scaling_c(&c); SmartPtr unscaled_d = NLP_scaling()->unapply_vector_scaling_d(&d); const Number unscaled_obj = NLP_scaling()->unapply_obj_scaling(obj_value); SmartPtr unscaled_z_L; SmartPtr unscaled_z_U; SmartPtr unscaled_y_c; SmartPtr unscaled_y_d; // The objective function scaling factor also appears in the constraints Number obj_unscale_factor = NLP_scaling()->unapply_obj_scaling(1.); if (obj_unscale_factor!=1.) { SmartPtr tmp = NLP_scaling()->apply_vector_scaling_x_LU_NonConst(*Px_L_, &z_L, *x_space_); tmp->Scal(obj_unscale_factor); unscaled_z_L = ConstPtr(tmp); tmp = NLP_scaling()->apply_vector_scaling_x_LU_NonConst(*Px_U_, &z_U, *x_space_); tmp->Scal(obj_unscale_factor); unscaled_z_U = ConstPtr(tmp); tmp = NLP_scaling()->apply_vector_scaling_c_NonConst(&y_c); tmp->Scal(obj_unscale_factor); unscaled_y_c = ConstPtr(tmp); tmp = NLP_scaling()->apply_vector_scaling_d_NonConst(&y_d); tmp->Scal(obj_unscale_factor); unscaled_y_d = ConstPtr(tmp); } else { unscaled_z_L = NLP_scaling()->apply_vector_scaling_x_LU(*Px_L_, &z_L, *x_space_); unscaled_z_U = NLP_scaling()->apply_vector_scaling_x_LU(*Px_U_, &z_U, *x_space_); unscaled_y_c = NLP_scaling()->apply_vector_scaling_c(&y_c); unscaled_y_d = NLP_scaling()->apply_vector_scaling_d(&y_d); } if (honor_original_bounds_ && (Px_L_->NCols()>0 || Px_U_->NCols()>0)) { // Make sure the user specified bounds are satisfied SmartPtr tmp; SmartPtr un_x = unscaled_x->MakeNewCopy(); if (Px_L_->NCols()>0) { tmp = orig_x_L_->MakeNewCopy(); Px_L_->TransMultVector(1., *un_x, 0., *tmp); Px_L_->MultVector(-1., *tmp, 1., *un_x); tmp->ElementWiseMax(*orig_x_L_); Px_L_->MultVector(1., *tmp, 1., *un_x); } if (Px_U_->NCols()>0) { tmp = orig_x_U_->MakeNewCopy(); Px_U_->TransMultVector(1., *un_x, 0., *tmp); Px_U_->MultVector(-1., *tmp, 1., *un_x); tmp->ElementWiseMin(*orig_x_U_); Px_U_->MultVector(1., *tmp, 1., *un_x); } unscaled_x = ConstPtr(un_x); } unscaled_x->Print(*jnlst_, J_VECTOR, J_SOLUTION, "final x unscaled"); unscaled_y_c->Print(*jnlst_, J_VECTOR, J_SOLUTION, "final y_c unscaled"); unscaled_y_d->Print(*jnlst_, J_VECTOR, J_SOLUTION, "final y_d unscaled"); unscaled_z_L->Print(*jnlst_, J_VECTOR, J_SOLUTION, "final z_L unscaled"); unscaled_z_U->Print(*jnlst_, J_VECTOR, J_SOLUTION, "final z_U unscaled"); nlp_->FinalizeSolution(status, *unscaled_x, *unscaled_z_L, *unscaled_z_U, *unscaled_c, *unscaled_d, *unscaled_y_c, *unscaled_y_d, unscaled_obj, ip_data, ip_cq); } bool OrigIpoptNLP::IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr ip_data, SmartPtr ip_cq) { return nlp_->IntermediateCallBack(mode, iter, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials, GetRawPtr(ip_data), GetRawPtr(ip_cq)); } void OrigIpoptNLP::AdjustVariableBounds(const Vector& new_x_L, const Vector& new_x_U, const Vector& new_d_L, const Vector& new_d_U) { x_L_ = new_x_L.MakeNewCopy(); x_U_ = new_x_U.MakeNewCopy(); d_L_ = new_d_L.MakeNewCopy(); d_U_ = new_d_U.MakeNewCopy(); } void OrigIpoptNLP::PrintTimingStatistics( Journalist& jnlst, EJournalLevel level, EJournalCategory category) const { if (!jnlst.ProduceOutput(level, category)) return; jnlst.Printf(level, category, "Function Evaluations................: %10.3f (sys: %10.3f wall: %10.3f)\n", TotalFunctionEvaluationCpuTime(), TotalFunctionEvaluationSysTime(), TotalFunctionEvaluationWallclockTime()); jnlst.Printf(level, category, " Objective function.................: %10.3f (sys: %10.3f wall: %10.3f)\n", f_eval_time_.TotalCpuTime(), f_eval_time_.TotalSysTime(), f_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Objective function gradient........: %10.3f (sys: %10.3f wall: %10.3f)\n", grad_f_eval_time_.TotalCpuTime(), grad_f_eval_time_.TotalSysTime(), grad_f_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Equality constraints...............: %10.3f (sys: %10.3f wall: %10.3f)\n", c_eval_time_.TotalCpuTime(), c_eval_time_.TotalSysTime(), c_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Inequality constraints.............: %10.3f (sys: %10.3f wall: %10.3f)\n", d_eval_time_.TotalCpuTime(), d_eval_time_.TotalSysTime(), d_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Equality constraint Jacobian.......: %10.3f (sys: %10.3f wall: %10.3f)\n", jac_c_eval_time_.TotalCpuTime(), jac_c_eval_time_.TotalSysTime(), jac_c_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Inequality constraint Jacobian.....: %10.3f (sys: %10.3f wall: %10.3f)\n", jac_d_eval_time_.TotalCpuTime(), jac_d_eval_time_.TotalSysTime(), jac_d_eval_time_.TotalWallclockTime()); jnlst.Printf(level, category, " Lagrangian Hessian.................: %10.3f (sys: %10.3f wall: %10.3f)\n", h_eval_time_.TotalCpuTime(), h_eval_time_.TotalSysTime(), h_eval_time_.TotalWallclockTime()); } Number OrigIpoptNLP::TotalFunctionEvaluationCpuTime() const { return f_eval_time_.TotalCpuTime()+ grad_f_eval_time_.TotalCpuTime()+ c_eval_time_.TotalCpuTime()+ d_eval_time_.TotalCpuTime()+ jac_c_eval_time_.TotalCpuTime()+ jac_d_eval_time_.TotalCpuTime()+ h_eval_time_.TotalCpuTime(); } Number OrigIpoptNLP::TotalFunctionEvaluationSysTime() const { return f_eval_time_.TotalSysTime()+ grad_f_eval_time_.TotalSysTime()+ c_eval_time_.TotalSysTime()+ d_eval_time_.TotalSysTime()+ jac_c_eval_time_.TotalSysTime()+ jac_d_eval_time_.TotalSysTime()+ h_eval_time_.TotalSysTime(); } Number OrigIpoptNLP::TotalFunctionEvaluationWallclockTime() const { return f_eval_time_.TotalWallclockTime()+ grad_f_eval_time_.TotalWallclockTime()+ c_eval_time_.TotalWallclockTime()+ d_eval_time_.TotalWallclockTime()+ jac_c_eval_time_.TotalWallclockTime()+ jac_d_eval_time_.TotalWallclockTime()+ h_eval_time_.TotalWallclockTime(); } void OrigIpoptNLP::ResetTimes() { f_eval_time_.Reset(); grad_f_eval_time_.Reset(); c_eval_time_.Reset(); d_eval_time_.Reset(); jac_c_eval_time_.Reset(); jac_d_eval_time_.Reset(); h_eval_time_.Reset(); } SmartPtr OrigIpoptNLP::get_unscaled_x(const Vector& x) { SmartPtr ret; if (!unscaled_x_cache_.GetCachedResult1Dep(ret, &x)) { ret = NLP_scaling()->unapply_vector_scaling_x(&x); unscaled_x_cache_.AddCachedResult1Dep(ret, &x); } return ret; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpDefaultIterateInitializer.cpp0000644000076600007660000007063712164277047023313 0ustar coincoin// Copyright (C) 2004, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpDefaultIterateInitializer.cpp 2346 2013-07-01 13:03:35Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-09-23 #include "IpDefaultIterateInitializer.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif DefaultIterateInitializer::DefaultIterateInitializer (const SmartPtr& eq_mult_calculator, const SmartPtr& warm_start_initializer, const SmartPtr aug_system_solver /*= NULL*/) : IterateInitializer(), eq_mult_calculator_(eq_mult_calculator), warm_start_initializer_(warm_start_initializer), aug_system_solver_(aug_system_solver) {} void DefaultIterateInitializer::RegisterOptions(SmartPtr reg_options) { reg_options->AddLowerBoundedNumberOption( "bound_push", "Desired minimum absolute distance from the initial point to bound.", 0.0, true, 0.01, "Determines how much the initial point might have to " "be modified in order to be sufficiently inside " "the bounds (together with \"bound_frac\"). (This is kappa_1 in " "Section 3.6 of implementation paper.)"); reg_options->AddBoundedNumberOption( "bound_frac", "Desired minimum relative distance from the initial point to bound.", 0, true, 0.5, false, 0.01, "Determines how much the initial point might have to " "be modified in order to be sufficiently inside " "the bounds (together with \"bound_push\"). (This is kappa_2 in " "Section 3.6 of implementation paper.)"); reg_options->AddLowerBoundedNumberOption( "slack_bound_push", "Desired minimum absolute distance from the initial slack to bound.", 0.0, true, 0.01, "Determines how much the initial slack variables might have to " "be modified in order to be sufficiently inside " "the inequality bounds (together with \"slack_bound_frac\"). (This is kappa_1 in " "Section 3.6 of implementation paper.)"); reg_options->AddBoundedNumberOption( "slack_bound_frac", "Desired minimum relative distance from the initial slack to bound.", 0, true, 0.5, false, 0.01, "Determines how much the initial slack variables might have to " "be modified in order to be sufficiently inside " "the inequality bounds (together with \"slack_bound_push\"). (This is kappa_2 in " "Section 3.6 of implementation paper.)"); reg_options->AddLowerBoundedNumberOption( "constr_mult_init_max", "Maximum allowed least-square guess of constraint multipliers.", 0, false, 1e3, "Determines how large the initial least-square guesses of the constraint " "multipliers are allowed to be (in max-norm). If the guess is larger " "than this value, it is discarded and all constraint multipliers are " "set to zero. This options is also used when initializing the " "restoration phase. By default, \"resto.constr_mult_init_max\" (the one " "used in RestoIterateInitializer) is set to zero."); reg_options->AddLowerBoundedNumberOption( "bound_mult_init_val", "Initial value for the bound multipliers.", 0, true, 1.0, "All dual variables corresponding to bound constraints are " "initialized to this value."); reg_options->AddStringOption2( "bound_mult_init_method", "Initialization method for bound multipliers", "constant", "constant", "set all bound multipliers to the value of bound_mult_init_val", "mu-based", "initialize to mu_init/x_slack", "This option defines how the iterates for the bound multipliers are " "initialized. If \"constant\" is chosen, then all bound multipliers " "are initialized to the value of \"bound_mult_init_val\". If " "\"mu-based\" is chosen, the each value is initialized to the the value " "of \"mu_init\" divided by the corresponding slack variable. This " "latter option might be useful if the starting point is close to the " "optimal solution."); reg_options->AddStringOption2( "least_square_init_primal", "Least square initialization of the primal variables", "no", "no", "take user-provided point", "yes", "overwrite user-provided point with least-square estimates", "If set to yes, Ipopt ignores the user provided point and solves a " "least square problem for the primal variables (x and s), to fit the " "linearized equality and inequality constraints. This might be useful " "if the user doesn't know anything about the starting point, or for " "solving an LP or QP."); reg_options->AddStringOption2( "least_square_init_duals", "Least square initialization of all dual variables", "no", "no", "use bound_mult_init_val and least-square equality constraint multipliers", "yes", "overwrite user-provided point with least-square estimates", "If set to yes, Ipopt tries to compute least-square multipliers " "(considering ALL dual variables). If successful, the bound " "multipliers are possibly corrected to be at least bound_mult_init_val. " "This might be useful " "if the user doesn't know anything about the starting point, or for " "solving an LP or QP. This overwrites option " "\"bound_mult_init_method\"."); reg_options->SetRegisteringCategory("Warm Start"); reg_options->AddStringOption2( "warm_start_init_point", "Warm-start for initial point", "no", "no", "do not use the warm start initialization", "yes", "use the warm start initialization", "Indicates whether this optimization should use a warm start " "initialization, where values of primal and dual variables are " "given (e.g., from a previous optimization of a related problem.)"); } bool DefaultIterateInitializer::InitializeImpl(const OptionsList& options, const std::string& prefix) { // Check for the algorithm options options.GetNumericValue("bound_push", bound_push_, prefix); options.GetNumericValue("bound_frac", bound_frac_, prefix); if (!options.GetNumericValue("slack_bound_push", slack_bound_push_, prefix)) { slack_bound_push_ = bound_push_; } if (!options.GetNumericValue("slack_bound_frac", slack_bound_frac_, prefix)) { slack_bound_frac_ = bound_frac_; } options.GetNumericValue("constr_mult_init_max", constr_mult_init_max_, prefix); options.GetNumericValue("bound_mult_init_val", bound_mult_init_val_, prefix); options.GetBoolValue("warm_start_init_point", warm_start_init_point_, prefix); options.GetBoolValue("least_square_init_primal", least_square_init_primal_, prefix); ASSERT_EXCEPTION(!least_square_init_primal_ || IsValid(aug_system_solver_), OPTION_INVALID, "The least_square_init_primal can only be chosen if the DefaultInitializer object has an AugSystemSolver.\n"); options.GetBoolValue("least_square_init_duals", least_square_init_duals_, prefix); ASSERT_EXCEPTION(!least_square_init_duals_ || IsValid(aug_system_solver_), OPTION_INVALID, "The least_square_init_duals can only be chosen if the DefaultInitializer object has an AugSystemSolver.\n"); int enum_int; options.GetEnumValue("bound_mult_init_method", enum_int, prefix); bound_mult_init_method_ = BoundMultInitMethod(enum_int); if (bound_mult_init_method_ == B_MU_BASED) { options.GetNumericValue("mu_init", mu_init_, prefix); } bool retvalue = true; if (IsValid(eq_mult_calculator_)) { retvalue = eq_mult_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); if (!retvalue) { return retvalue; } } if (IsValid(warm_start_initializer_)) { retvalue = warm_start_initializer_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } return retvalue; } bool DefaultIterateInitializer::SetInitialIterates() { DBG_START_METH("DefaultIterateInitializer::SetInitialIterates", dbg_verbosity); if (warm_start_init_point_) { DBG_ASSERT(IsValid(warm_start_initializer_)); return warm_start_initializer_->SetInitialIterates(); } // Get the starting values provided by the NLP and store them // in the ip_data current fields. The following line only requests // intial values for the primal variables x, but later we might // make this more flexible based on user options. ///////////////////////////////////////////////////////////////////// // Initialize primal variables // ///////////////////////////////////////////////////////////////////// if (!IpData().InitializeDataStructures(IpNLP(), true, false, false, false, false)) { return false; } // get a container of the current point. We will modify parts of // this IteratesVector to set the trial point. SmartPtr iterates = IpData().curr()->MakeNewContainer(); if (least_square_init_primal_) { // If least_square_init_primal, then we compute the least square x // and s that satisfy the linearized constraints, and push it into // bounds later. SmartPtr x_ls = iterates->x()->MakeNew(); SmartPtr s_ls = iterates->s()->MakeNew(); bool retval =CalculateLeastSquarePrimals(*x_ls, *s_ls); if (retval) { Jnlst().Printf(J_DETAILED, J_INITIALIZATION, "Least square intial values for x and s computed.\n"); x_ls->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "x_ls"); s_ls->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "s_ls"); iterates->Set_x(*x_ls); iterates->Set_s(*s_ls); } else { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Least square initialization of x and s failed!\n"); } } DBG_PRINT_VECTOR(2, "curr_x", *iterates->x()); // Now we compute the initial values that the algorithm is going to // actually use. We first store them in the trial fields in ip_data. // Push the x iterates sufficiently inside the bounds // Calculate any required shift in x0 and s0 SmartPtr new_x; push_variables(Jnlst(), bound_push_, bound_frac_, "x", *iterates->x(), new_x, *IpNLP().x_L(), *IpNLP().x_U(), *IpNLP().Px_L(), *IpNLP().Px_U()); iterates->Set_x(*new_x); IpData().set_trial(iterates); // Calculate the shift in s... SmartPtr s = IpCq().trial_d(); DBG_PRINT_VECTOR(2, "s", *s); SmartPtr new_s; push_variables(Jnlst(), slack_bound_push_, slack_bound_frac_, "s", *s, new_s, *IpNLP().d_L(), *IpNLP().d_U(), *IpNLP().Pd_L(), *IpNLP().Pd_U()); iterates = IpData().trial()->MakeNewContainer(); iterates->Set_s(*new_s); ///////////////////////////////////////////////////////////////////// // Initialize bound multipliers // ///////////////////////////////////////////////////////////////////// // Initialize the bound multipliers to bound_mult_init_val. switch (bound_mult_init_method_) { case B_CONSTANT: iterates->create_new_z_L(); iterates->create_new_z_U(); iterates->create_new_v_L(); iterates->create_new_v_U(); iterates->z_L_NonConst()->Set(bound_mult_init_val_); iterates->z_U_NonConst()->Set(bound_mult_init_val_); iterates->v_L_NonConst()->Set(bound_mult_init_val_); iterates->v_U_NonConst()->Set(bound_mult_init_val_); IpData().set_trial(iterates); break; case B_MU_BASED: IpData().set_trial(iterates); iterates = IpData().trial()->MakeNewContainer(); iterates->create_new_z_L(); iterates->create_new_z_U(); iterates->create_new_v_L(); iterates->create_new_v_U(); iterates->z_L_NonConst()->Set(mu_init_); iterates->z_U_NonConst()->Set(mu_init_); iterates->v_L_NonConst()->Set(mu_init_); iterates->v_U_NonConst()->Set(mu_init_); iterates->z_L_NonConst()->ElementWiseDivide(*IpCq().trial_slack_x_L()); iterates->z_U_NonConst()->ElementWiseDivide(*IpCq().trial_slack_x_U()); iterates->v_L_NonConst()->ElementWiseDivide(*IpCq().trial_slack_s_L()); iterates->v_U_NonConst()->ElementWiseDivide(*IpCq().trial_slack_s_U()); IpData().set_trial(iterates); break; default: THROW_EXCEPTION(OPTION_INVALID, "Invalid value of option bound_mult_init_method"); break; } bool call_least_square_mults = true; if (least_square_init_duals_) { // We try to compute a least square estimate of all multiplers, // and if successful,we make sure they are sufficiently positive SmartPtr zL_new = IpData().trial()->z_L()->MakeNew(); SmartPtr zU_new = IpData().trial()->z_U()->MakeNew(); SmartPtr vL_new = IpData().trial()->v_L()->MakeNew(); SmartPtr vU_new = IpData().trial()->v_U()->MakeNew(); SmartPtr yc_new = IpData().trial()->y_c()->MakeNew(); SmartPtr yd_new = IpData().trial()->y_d()->MakeNew(); bool retval = CalculateLeastSquareDuals(*zL_new, *zU_new, *vL_new, *vU_new, *yc_new, *yd_new); if (retval) { // z_L etc are still at bound_mult_init_val_ zL_new->ElementWiseMax(*IpData().trial()->z_L()); zU_new->ElementWiseMax(*IpData().trial()->z_U()); vL_new->ElementWiseMax(*IpData().trial()->v_L()); vU_new->ElementWiseMax(*IpData().trial()->v_U()); iterates = IpData().trial()->MakeNewContainer(); iterates->Set_z_L(*zL_new); iterates->Set_z_U(*zU_new); iterates->Set_v_L(*vL_new); iterates->Set_v_U(*vU_new); iterates->Set_y_c(*yc_new); iterates->Set_y_d(*yd_new); IpData().set_trial(iterates); Jnlst().Printf(J_DETAILED, J_INITIALIZATION, "Least square intial values for z_L, z_U,v_L, v_U, y_c, y_d computed.\n"); zL_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "zL_new"); zU_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "zU_new"); vL_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "vL_new"); vU_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "vU_new"); yc_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "yc_new"); yd_new->Print(Jnlst(), J_VECTOR, J_INITIALIZATION, "yd_new"); call_least_square_mults = false; } else { Jnlst().Printf(J_WARNING, J_INITIALIZATION, "Least square initialization of z_L, z_U,v_L, v_U, y_c, y_d failed!\n"); } } if (call_least_square_mults) { ///////////////////////////////////////////////////////////////////// // Initialize equality constraint multipliers // ///////////////////////////////////////////////////////////////////// least_square_mults(Jnlst(), IpNLP(), IpData(), IpCq(), eq_mult_calculator_, constr_mult_init_max_); } // upgrade the trial to the current point IpData().AcceptTrialPoint(); return true; } bool DefaultIterateInitializer::CalculateLeastSquarePrimals(Vector& x_ls, Vector& s_ls) { DBG_START_METH("DefaultIterateInitializer::CalculateLeastSquarePrimals", dbg_verbosity); SmartPtr zeroW = IpNLP().uninitialized_h(); DBG_PRINT_MATRIX(2, "zeroW", *zeroW); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); // Compute the right hand side SmartPtr rhs_x = x_ls.MakeNew(); rhs_x->Set(0.); SmartPtr rhs_s = s_ls.MakeNew(); rhs_s->Set(0.); SmartPtr rhs_c = IpCq().curr_c(); SmartPtr rhs_d = IpCq().curr_d(); SmartPtr sol_c = rhs_c->MakeNew(); SmartPtr sol_d = rhs_d->MakeNew(); DBG_PRINT_VECTOR(2, "rhs_x", *rhs_x); DBG_PRINT_VECTOR(2, "rhs_s", *rhs_s); DBG_PRINT_VECTOR(2, "rhs_c", *rhs_c); DBG_PRINT_VECTOR(2, "rhs_d", *rhs_d); enum ESymSolverStatus retval; Index numberOfEVals=rhs_c->Dim()+rhs_d->Dim(); retval = aug_system_solver_->Solve(GetRawPtr(zeroW), 0.0, NULL, 1.0, NULL, 1.0, GetRawPtr(J_c), NULL, 0., GetRawPtr(J_d), NULL, 0., *rhs_x, *rhs_s, *rhs_c, *rhs_d, x_ls, s_ls, *sol_c, *sol_d, true, numberOfEVals); if (retval!=SYMSOLVER_SUCCESS) { return false; } x_ls.Scal(-1.); s_ls.Scal(-1.); DBG_PRINT_VECTOR(2, "sol_x", x_ls); DBG_PRINT_VECTOR(2, "sol_s", s_ls); DBG_PRINT_VECTOR(2, "sol_c", *sol_c); DBG_PRINT_VECTOR(2, "sol_d", *sol_d); return true; } bool DefaultIterateInitializer:: CalculateLeastSquareDuals(Vector& zL_new, Vector& zU_new, Vector& vL_new, Vector& vU_new, Vector& yc_new, Vector& yd_new) { DBG_START_METH("DefaultIterateInitializer::CalculateLeastSquarePrimals", dbg_verbosity); SmartPtr zeroW = IpNLP().uninitialized_h(); DBG_PRINT_MATRIX(2, "zeroW", *zeroW); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); // Compute the entries in Hessian diagonals SmartPtr Dx = IpData().trial()->x()->MakeNew(); SmartPtr tmp = IpNLP().x_L()->MakeNew(); tmp->Set(-1.); IpNLP().Px_L()->MultVector(1., *tmp, 0., *Dx); tmp = IpNLP().x_U()->MakeNew(); tmp->Set(-1.); IpNLP().Px_U()->MultVector(1., *tmp, 1., *Dx); SmartPtr Ds = IpData().trial()->s()->MakeNew(); tmp = IpNLP().d_L()->MakeNew(); tmp->Set(-1.); IpNLP().Pd_L()->MultVector(1., *tmp, 0., *Ds); tmp = IpNLP().d_U()->MakeNew(); tmp->Set(-1.); IpNLP().Pd_U()->MultVector(1., *tmp, 1., *Ds); // Get the right hand side SmartPtr rhs_x = IpCq().trial_grad_f(); SmartPtr rhs_s = Ds->MakeNew(); rhs_s->Set(0.); SmartPtr rhs_c = yc_new.MakeNew(); rhs_c->Set(0.); SmartPtr rhs_d = yd_new.MakeNew(); rhs_d->Set(0.); // Space for the solution SmartPtr sol_x = rhs_x->MakeNew(); SmartPtr sol_s = rhs_s->MakeNew(); DBG_PRINT_VECTOR(2, "rhs_x", *rhs_x); DBG_PRINT_VECTOR(2, "rhs_s", *rhs_s); DBG_PRINT_VECTOR(2, "rhs_c", *rhs_c); DBG_PRINT_VECTOR(2, "rhs_d", *rhs_d); enum ESymSolverStatus retval; Index numberOfEVals=rhs_x->Dim()+rhs_s->Dim(); retval = aug_system_solver_->Solve(GetRawPtr(zeroW), 0.0, GetRawPtr(Dx), 0.0, GetRawPtr(Ds), 0.0, GetRawPtr(J_c), NULL, 0., GetRawPtr(J_d), NULL, 0., *rhs_x, *rhs_s, *rhs_c, *rhs_d, *sol_x, *sol_s, yc_new, yd_new, true, numberOfEVals); if (retval!=SYMSOLVER_SUCCESS) { return false; } DBG_PRINT_VECTOR(2, "sol_x", *sol_x); DBG_PRINT_VECTOR(2, "sol_s", *sol_s); DBG_PRINT_VECTOR(2, "sol_c", yc_new); DBG_PRINT_VECTOR(2, "sol_d", yd_new); // Get the output right yc_new.Scal(-1.0); yd_new.Scal(-1.0); IpNLP().Px_L()->TransMultVector(-1., *sol_x, 0., zL_new); IpNLP().Px_U()->TransMultVector(1., *sol_x, 0., zU_new); IpNLP().Pd_L()->TransMultVector(-1., *sol_s, 0., vL_new); IpNLP().Pd_U()->TransMultVector(1., *sol_s, 0., vU_new); return true; } void DefaultIterateInitializer::push_variables( const Journalist& jnlst, Number bound_push, Number bound_frac, std::string name, const Vector& orig_x, SmartPtr& new_x, const Vector& x_L, const Vector& x_U, const Matrix& Px_L, const Matrix& Px_U) { DBG_START_FUN("DefaultIterateInitializer::push_variables", dbg_verbosity); SmartPtr my_orig_x = &orig_x; // ToDo: Make this more efficient...? // To avoid round-off error, move variables first at the bounds if (bound_push>0. || bound_frac>0.) { push_variables(jnlst, 0., 0., name, orig_x, new_x, x_L, x_U, Px_L, Px_U); my_orig_x = new_x; } DBG_PRINT_VECTOR(2,"orig_x", *my_orig_x); DBG_PRINT_MATRIX(2,"Px_L", Px_L); DBG_PRINT_VECTOR(2, "x_L", x_L); DBG_PRINT_MATRIX(2,"Px_U", Px_U); DBG_PRINT_VECTOR(2, "x_U", x_U); SmartPtr tmp_l = x_L.MakeNew(); SmartPtr tmp_u = x_U.MakeNew(); const double dbl_min = std::numeric_limits::min(); const double tiny_double = 100.0*dbl_min; // Calculate any required shift in x0 and s0 SmartPtr tmp = my_orig_x->MakeNew(); SmartPtr tiny_l = x_L.MakeNew(); tiny_l->Set(tiny_double); SmartPtr q_l = x_L.MakeNew(); SmartPtr p_l = x_L.MakeNew(); SmartPtr delta_x = my_orig_x->MakeNew(); SmartPtr zero_l = x_L.MakeNew(); zero_l->Set(0.0); SmartPtr zero_u = x_U.MakeNew(); zero_u->Set(0.0); if (bound_frac>0.) { DBG_ASSERT(bound_push>0.); // Calculate p_l Px_L.MultVector(1.0, x_L, 0.0, *tmp); Px_U.TransMultVector(1.0, *tmp, 0.0, *tmp_u); tmp_u->AddOneVector(1., x_U, -1.); Px_U.MultVector(1.0, *tmp_u, 0.0, *tmp); Px_L.TransMultVector(1.0, *tmp, 0.0, *q_l); q_l->AddOneVector(-1.0, *tiny_l, bound_frac); DBG_PRINT_VECTOR(2, "q_l", *q_l); // At this point, q_l is // bound_frac * Px_L^T Px_U(x_U - Px_U^T Px_L x_L) - tiny_double // i.e., it is bound_frac*(x_U - x_L) for those components that have // two bounds // and - tiny_double for those that have only one or no bounds tmp_l->Set(bound_push); p_l->AddOneVector(bound_push, x_L, 0.); p_l->ElementWiseAbs(); p_l->ElementWiseMax(*tmp_l); // now p_l is bound_push * max(|x_L|,1) q_l->ElementWiseReciprocal(); p_l->ElementWiseReciprocal(); p_l->ElementWiseMax(*q_l); p_l->ElementWiseReciprocal(); // p_l->Axpy(1.0, *tiny_l); we shouldn't need this // At this point, p_l is // min(bound_push * max(|x_L|,1), bound_frac*(x_U-x_L)) for components // with two bounds // bound_push * max(|x_L|,1) otherwise // This is the margin we want to the lower bound DBG_PRINT_VECTOR(1, "p_l", *p_l); // Calculate p_u SmartPtr q_u = x_U.MakeNew(); SmartPtr p_u = x_U.MakeNew(); SmartPtr tiny_u = x_U.MakeNew(); tiny_u->Set(tiny_double); Px_U.MultVector(1.0, x_U, 0.0, *tmp); Px_L.TransMultVector(1.0, *tmp, 0.0, *tmp_l); tmp_l->Axpy(-1.0, x_L); Px_L.MultVector(1.0, *tmp_l, 0.0, *tmp); Px_U.TransMultVector(1.0, *tmp, 0.0, *q_u); q_u->AddOneVector(-1.0, *tiny_u, bound_frac); DBG_PRINT_VECTOR(2,"q_u",*q_u); // q_u is now the same as q_l above, but of the same dimension as x_L tmp_u->Set(bound_push); p_u->Copy(x_U); p_u->AddOneVector(bound_push, x_U, 0.); p_u->ElementWiseAbs(); p_u->ElementWiseMax(*tmp_u); DBG_PRINT_VECTOR(2,"p_u",*p_u); q_u->ElementWiseReciprocal(); p_u->ElementWiseReciprocal(); p_u->ElementWiseMax(*q_u); p_u->ElementWiseReciprocal(); p_u->Axpy(1.0, *tiny_u); // At this point, p_l is // min(bound_push * max(|x_U|,1), bound_frac*(x_U-x_L)) for components // with two bounds // bound_push * max(|x_U|,1) otherwise // This is the margin we want to the upper bound DBG_PRINT_VECTOR(2,"actual_p_u",*p_u); // Calculate the new x Px_L.TransMultVector(-1.0, *my_orig_x, 0.0, *tmp_l); DBG_PRINT_VECTOR(1, "tmp_l1", *tmp_l); tmp_l->AddTwoVectors(1.0, x_L, 1.0, *p_l, 1.); tmp_l->ElementWiseMax(*zero_l); DBG_PRINT_VECTOR(1, "tmp_l2", *tmp_l); // tmp_l is now max(x_L + p_l - x, 0), i.e., the amount by how // much need to correct the variable Px_U.TransMultVector(1.0, *my_orig_x, 0.0, *tmp_u); tmp_u->AddTwoVectors(-1.0, x_U, 1.0, *p_u, 1.); tmp_u->ElementWiseMax(*zero_u); // tmp_u is now max(x - (x_U-p_u), 0), i.e., the amount by how // much need to correct the variable } else { DBG_ASSERT(bound_push == 0.); tmp_l = x_L.MakeNewCopy(); DBG_PRINT_VECTOR(1, "tmp_l33", *tmp_l); Px_L.TransMultVector(-1.0, *my_orig_x, 1.0, *tmp_l); tmp_l->ElementWiseMax(*zero_l); DBG_PRINT_VECTOR(1, "tmp_l3", *tmp_l); tmp_u = x_U.MakeNewCopy(); Px_U.TransMultVector(1.0, *my_orig_x, -1.0, *tmp_u); tmp_u->ElementWiseMax(*zero_u); } Number nrm_l = tmp_l->Amax(); if (nrm_l>0.) { Px_L.MultVector(1.0, *tmp_l, 0.0, *delta_x); } else { delta_x->Set(0.); } Number nrm_u = tmp_u->Amax(); if (nrm_u>0.) { Px_U.MultVector(-1.0, *tmp_u, 1.0, *delta_x); } if (nrm_l > 0 || nrm_u > 0) { delta_x->Axpy(1.0, *my_orig_x); new_x = ConstPtr(delta_x); if (bound_push > 0.) { jnlst.Printf(J_DETAILED, J_INITIALIZATION, "Moved initial values of %s sufficiently inside the bounds.\n", name.c_str()); my_orig_x->Print(jnlst, J_VECTOR, J_INITIALIZATION, "original vars"); new_x->Print(jnlst, J_VECTOR, J_INITIALIZATION, "new vars"); } } else { new_x = my_orig_x; if (bound_push > 0.) { jnlst.Printf(J_DETAILED, J_INITIALIZATION, "Initial values of %s sufficiently inside the bounds.\n", name.c_str()); } } } void DefaultIterateInitializer::least_square_mults( const Journalist& jnlst, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, const SmartPtr& eq_mult_calculator, Number constr_mult_init_max) { DBG_START_FUN("DefaultIterateInitializer::least_square_mults", dbg_verbosity); SmartPtr iterates = ip_data.trial()->MakeNewContainer(); iterates->create_new_y_c(); iterates->create_new_y_d(); if (iterates->y_c_NonConst()->Dim()==iterates->x()->Dim()) { // This problem is square, we just set the multipliers to zero iterates->y_c_NonConst()->Set(0.0); iterates->y_d_NonConst()->Set(0.0); ip_data.Append_info_string("s"); } else if (IsValid(eq_mult_calculator) && constr_mult_init_max>0. && iterates->y_c_NonConst()->Dim()+iterates->y_d_NonConst()->Dim()>0) { // First move all the trial data into the current fields, since // those values are needed to compute the initial values for // the multipliers ip_data.CopyTrialToCurrent(); SmartPtr y_c = iterates->y_c_NonConst(); SmartPtr y_d = iterates->y_d_NonConst(); bool retval = eq_mult_calculator->CalculateMultipliers(*y_c, *y_d); if (!retval) { y_c->Set(0.0); y_d->Set(0.0); } else { /* { ip_data.set_trial(iterates); printf("grad_x = %e grad_s = %e y_c = %e y_d = %e\n", ip_cq.trial_grad_lag_x()->Amax(), ip_cq.trial_grad_lag_s()->Amax(), y_c->Amax(), y_d->Amax()); iterates = ip_data.trial()->MakeNewContainer(); } */ jnlst.Printf(J_DETAILED, J_INITIALIZATION, "Least square estimates max(y_c) = %e, max(y_d) = %e\n", y_c->Amax(), y_d->Amax()); Number yinitnrm = Max(y_c->Amax(), y_d->Amax()); if (yinitnrm > constr_mult_init_max) { y_c->Set(0.0); y_d->Set(0.0); } else { ip_data.Append_info_string("y"); } } } else { iterates->y_c_NonConst()->Set(0.0); iterates->y_d_NonConst()->Set(0.0); } ip_data.set_trial(iterates); DBG_PRINT_VECTOR(2, "y_c", *ip_data.trial()->y_c()); DBG_PRINT_VECTOR(2, "y_d", *ip_data.trial()->y_d()); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpGradientScaling.hpp0000644000076600007660000000540011504216567021227 0ustar coincoin// Copyright (C) 2005, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpGradientScaling.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-07-13 #ifndef __IPGRADIENTSCALING_HPP__ #define __IPGRADIENTSCALING_HPP__ #include "IpNLPScaling.hpp" #include "IpNLP.hpp" namespace Ipopt { /** This class does problem scaling by setting the * scaling parameters based on the maximum of the * gradient at the user provided initial point. */ class GradientScaling : public StandardScalingBase { public: /**@name Constructors/Destructors */ //@{ GradientScaling(const SmartPtr& nlp) : StandardScalingBase(), nlp_(nlp) {} /** Default destructor */ virtual ~GradientScaling() {} //@} /** Methods for IpoptType */ //@{ /** Register the options for this class */ static void RegisterOptions(const SmartPtr& roptions); //@} protected: /** Initialize the object from the options */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); virtual void DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ GradientScaling(const GradientScaling&); /** Overloaded Equals Operator */ void operator=(const GradientScaling&); //@} /** pointer to the NLP to get scaling parameters */ SmartPtr nlp_; /** maximum allowed gradient before scaling is performed */ Number scaling_max_gradient_; /** target size of norm for objective gradient */ Number scaling_obj_target_gradient_; /** target size of norm for constraint gradients */ Number scaling_constr_target_gradient_; /** minimum value of a scaling parameter */ Number scaling_min_value_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpEquilibrationScaling.hpp0000644000076600007660000000763711504216567022317 0ustar coincoin// Copyright (C) 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpEquilibrationScaling.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2007-05-21 #ifndef __IPEQUILIBRATIONSCALING_HPP__ #define __IPEQUILIBRATIONSCALING_HPP__ #include "IpNLPScaling.hpp" #include "IpNLP.hpp" namespace Ipopt { /** This class does problem scaling by setting the * scaling parameters based on the maximum of the * gradient at the user provided initial point. */ class EquilibrationScaling : public StandardScalingBase { public: /**@name Constructors/Destructors */ //@{ EquilibrationScaling(const SmartPtr& nlp) : StandardScalingBase(), nlp_(nlp) {} /** Default destructor */ virtual ~EquilibrationScaling() {} //@} /** Methods for IpoptType */ //@{ /** Register the options for this class */ static void RegisterOptions(const SmartPtr& roptions); //@} protected: /** Initialize the object from the options */ bool InitializeImpl(const OptionsList& options, const std::string& prefix); virtual void DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ EquilibrationScaling(const EquilibrationScaling&); /** Overloaded Equals Operator */ void operator=(const EquilibrationScaling&); //@} /** pointer to the NLP to get scaling parameters */ SmartPtr nlp_; /** maximal radius for the random perturbation of the initial * point. */ Number point_perturbation_radius_; }; /** This class is a simple object for generating randomly perturbed * points that are withing the NLP bounds. The * ramdon_perturb_radius gives the upper bound of the * perturbation. */ class PointPerturber : public ReferencedObject { public: /**@name Constructors/Destructors */ //@{ PointPerturber(const Vector& reference_point, Number random_pert_radius, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U); /** Default destructor */ virtual ~PointPerturber() {} //@} /** Return a new perturbed point */ SmartPtr MakeNewPerturbedPoint() const; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ PointPerturber(const PointPerturber&); /** Overloaded Equals Operator */ void operator=(const PointPerturber&); //@} /** pointer to the midpoint of the perturbation */ SmartPtr ref_point_; /** pointer to the perturbation vector */ SmartPtr pert_dir_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpNLPScaling.cpp0000644000076600007660000004323412151613040020107 0ustar coincoin// Copyright (C) 2005, 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpNLPScaling.cpp 2313 2013-05-30 09:04:32Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-06-25 #include "IpNLPScaling.hpp" #include "IpSymMatrix.hpp" #include "IpScaledMatrix.hpp" #include "IpSymScaledMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif NLPScalingObject::NLPScalingObject() {} NLPScalingObject::~NLPScalingObject() {} SmartPtr NLPScalingObject::apply_vector_scaling_x_LU_NonConst( const Matrix& Px_LU, const SmartPtr& lu, const VectorSpace& x_space) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_x_LU_NonConst", dbg_verbosity); SmartPtr scaled_x_LU = lu->MakeNew(); if (have_x_scaling()) { SmartPtr tmp_x = x_space.MakeNew(); // move to full x space Px_LU.MultVector(1.0, *lu, 0.0, *tmp_x); // scale in full x space tmp_x = apply_vector_scaling_x_NonConst(ConstPtr(tmp_x)); // move back to x_L space Px_LU.TransMultVector(1.0, *tmp_x, 0.0, *scaled_x_LU); } else { scaled_x_LU->Copy(*lu); } return scaled_x_LU; } SmartPtr NLPScalingObject::apply_vector_scaling_x_LU( const Matrix& Px_LU, const SmartPtr& lu, const VectorSpace& x_space) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_x_LU", dbg_verbosity); if (have_x_scaling()) { return ConstPtr(apply_vector_scaling_x_LU_NonConst(Px_LU, lu, x_space)); } else { return lu; } } SmartPtr NLPScalingObject::apply_vector_scaling_d_LU_NonConst( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_d_LU_NonConst", dbg_verbosity); SmartPtr scaled_d_LU = lu->MakeNew(); if (have_d_scaling()) { SmartPtr tmp_d = d_space.MakeNew(); // move to full d space Pd_LU.MultVector(1.0, *lu, 0.0, *tmp_d); // scale in full x space tmp_d = apply_vector_scaling_d_NonConst(ConstPtr(tmp_d)); // move back to x_L space Pd_LU.TransMultVector(1.0, *tmp_d, 0.0, *scaled_d_LU); } else { scaled_d_LU->Copy(*lu); } return scaled_d_LU; } SmartPtr NLPScalingObject::apply_vector_scaling_d_LU( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_d_LU", dbg_verbosity); if (have_d_scaling()) { return ConstPtr(apply_vector_scaling_d_LU_NonConst(Pd_LU, lu, d_space)); } else { return lu; } } SmartPtr NLPScalingObject::unapply_vector_scaling_d_LU_NonConst( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space) { DBG_START_METH("NLPScalingObject::unapply_vector_scaling_d_LU_NonConst", dbg_verbosity); SmartPtr unscaled_d_LU = lu->MakeNew(); if (have_d_scaling()) { SmartPtr tmp_d = d_space.MakeNew(); // move to full d space Pd_LU.MultVector(1.0, *lu, 0.0, *tmp_d); // scale in full x space tmp_d = unapply_vector_scaling_d_NonConst(ConstPtr(tmp_d)); // move back to x_L space Pd_LU.TransMultVector(1.0, *tmp_d, 0.0, *unscaled_d_LU); } else { unscaled_d_LU->Copy(*lu); } return unscaled_d_LU; } SmartPtr NLPScalingObject::unapply_vector_scaling_d_LU( const Matrix& Pd_LU, const SmartPtr& lu, const VectorSpace& d_space) { DBG_START_METH("NLPScalingObject::unapply_vector_scaling_d_LU", dbg_verbosity); if (have_d_scaling()) { return ConstPtr(unapply_vector_scaling_d_LU_NonConst(Pd_LU, lu, d_space)); } else { return lu; } } SmartPtr NLPScalingObject::apply_grad_obj_scaling_NonConst( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::apply_grad_obj_scaling_NonConst", dbg_verbosity); SmartPtr scaled_v = unapply_vector_scaling_x_NonConst(v); Number df = apply_obj_scaling(1.0); if (df != 1.) { scaled_v->Scal(df); } return scaled_v; } SmartPtr NLPScalingObject::apply_grad_obj_scaling( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::apply_grad_obj_scaling", dbg_verbosity); Number df = apply_obj_scaling(1.); if (df != 1.) { SmartPtr scaled_v = apply_grad_obj_scaling_NonConst(v); return ConstPtr(scaled_v); } else { SmartPtr scaled_v = unapply_vector_scaling_x(v); return scaled_v; } } SmartPtr NLPScalingObject::unapply_grad_obj_scaling_NonConst( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::unapply_grad_obj_scaling_NonConst", dbg_verbosity); SmartPtr unscaled_v = apply_vector_scaling_x_NonConst(v); Number df = unapply_obj_scaling(1.); if (df != 1.) { unscaled_v->Scal(df); } return unscaled_v; } SmartPtr NLPScalingObject::unapply_grad_obj_scaling( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::unapply_grad_obj_scaling", dbg_verbosity); Number df = unapply_obj_scaling(1.); if (df != 1.) { SmartPtr unscaled_v = unapply_grad_obj_scaling_NonConst(v); return ConstPtr(unscaled_v); } else { SmartPtr scaled_v = apply_vector_scaling_x(v); return scaled_v; } } StandardScalingBase::StandardScalingBase() {} StandardScalingBase::~StandardScalingBase() {} void StandardScalingBase::RegisterOptions(SmartPtr roptions) { roptions->AddNumberOption( "obj_scaling_factor", "Scaling factor for the objective function.", 1., "This option sets a scaling factor for the objective function. " "The scaling is seen internally by Ipopt but the unscaled objective is " "reported in the console output. " "If additional scaling parameters are computed " "(e.g. user-scaling or gradient-based), both factors are multiplied. " "If this value is chosen to be negative, Ipopt will " "maximize the objective function instead of minimizing it."); } bool StandardScalingBase::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("obj_scaling_factor", obj_scaling_factor_, prefix); return true; } void StandardScalingBase::DetermineScaling( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, SmartPtr& new_jac_c_space, SmartPtr& new_jac_d_space, SmartPtr& new_h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U) { SmartPtr dc; SmartPtr dd; DetermineScalingParametersImpl(x_space, c_space, d_space, jac_c_space, jac_d_space, h_space, Px_L, x_L, Px_U, x_U, df_, dx_, dc, dd); df_ *= obj_scaling_factor_; if (Jnlst().ProduceOutput(J_DETAILED, J_MAIN)) { Jnlst().Printf(J_DETAILED, J_MAIN, "objective scaling factor = %g\n", df_); if (IsValid(dx_)) { Jnlst().Printf(J_DETAILED, J_MAIN, "x scaling provided\n"); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "No x scaling provided\n"); } if (IsValid(dc)) { Jnlst().Printf(J_DETAILED, J_MAIN, "c scaling provided\n"); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "No c scaling provided\n"); } if (IsValid(dd)) { Jnlst().Printf(J_DETAILED, J_MAIN, "d scaling provided\n"); } else { Jnlst().Printf(J_DETAILED, J_MAIN, "No d scaling provided\n"); } } if (Jnlst().ProduceOutput(J_VECTOR, J_MAIN)) { if (IsValid(dx_)) { dx_->Print(Jnlst(), J_VECTOR, J_MAIN, "x scaling vector"); } if (IsValid(dc)) { dc->Print(Jnlst(), J_VECTOR, J_MAIN, "c scaling vector"); } if (IsValid(dd)) { dd->Print(Jnlst(), J_VECTOR, J_MAIN, "d scaling vector"); } } // create the scaling matrix spaces if (IsValid(dx_) || IsValid(dc)) { scaled_jac_c_space_ = new ScaledMatrixSpace(ConstPtr(dc), false, jac_c_space, ConstPtr(dx_), true); new_jac_c_space = GetRawPtr(scaled_jac_c_space_); } else { scaled_jac_c_space_ = NULL; new_jac_c_space = jac_c_space; } if (IsValid(dx_) || IsValid(dd)) { scaled_jac_d_space_ = new ScaledMatrixSpace(ConstPtr(dd), false, jac_d_space, ConstPtr(dx_), true); new_jac_d_space = GetRawPtr(scaled_jac_d_space_); } else { scaled_jac_d_space_ = NULL; new_jac_d_space =jac_d_space ; } if (IsValid(h_space)) { if (IsValid(dx_)) { scaled_h_space_ = new SymScaledMatrixSpace(ConstPtr(dx_), true, h_space); new_h_space = GetRawPtr(scaled_h_space_); } else { scaled_h_space_ = NULL; new_h_space = h_space; } } else { new_h_space = NULL; } } Number StandardScalingBase::apply_obj_scaling(const Number& f) { DBG_START_METH("NLPScalingObject::apply_obj_scaling", dbg_verbosity); return df_*f; } Number StandardScalingBase::unapply_obj_scaling(const Number& f) { DBG_START_METH("NLPScalingObject::unapply_obj_scaling", dbg_verbosity); return f/df_; } SmartPtr StandardScalingBase::apply_vector_scaling_x_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::apply_vector_scaling_x_NonConst", dbg_verbosity); SmartPtr scaled_x = v->MakeNewCopy(); if (IsValid(dx_)) { scaled_x->ElementWiseMultiply(*dx_); } else { DBG_PRINT((1, "Creating copy in apply_vector_scaling_x_NonConst!")); } return scaled_x; } SmartPtr StandardScalingBase::apply_vector_scaling_x( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_x", dbg_verbosity); if (IsValid(dx_)) { return ConstPtr(apply_vector_scaling_x_NonConst(v)); } else { return v; } } SmartPtr StandardScalingBase::unapply_vector_scaling_x_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::unapply_vector_scaling_x_NonConst", dbg_verbosity); SmartPtr unscaled_x = v->MakeNewCopy(); if (IsValid(dx_)) { unscaled_x->ElementWiseDivide(*dx_); } else { DBG_PRINT((1, "Creating copy in unapply_vector_scaling_x_NonConst!")); } return unscaled_x; } SmartPtr StandardScalingBase::unapply_vector_scaling_x( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::unapply_vector_scaling_x", dbg_verbosity); if (IsValid(dx_)) { return ConstPtr(unapply_vector_scaling_x_NonConst(v)); } else { return v; } } SmartPtr StandardScalingBase::apply_vector_scaling_c_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::apply_vector_scaling_c_NonConst", dbg_verbosity); SmartPtr scaled_c = v->MakeNewCopy(); if (IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_c_space_->RowScaling())) { scaled_c->ElementWiseMultiply(*scaled_jac_c_space_->RowScaling()); } else { DBG_PRINT((1,"Creating copy in apply_vector_scaling_c_NonConst!")); } return scaled_c; } SmartPtr StandardScalingBase::apply_vector_scaling_c( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_c", dbg_verbosity); if (IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_c_space_->RowScaling())) { return ConstPtr(apply_vector_scaling_c_NonConst(v)); } else { return v; } } SmartPtr StandardScalingBase::unapply_vector_scaling_c_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::unapply_vector_scaling_c_NonConst", dbg_verbosity); SmartPtr scaled_c = v->MakeNewCopy(); if (IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_c_space_->RowScaling())) { scaled_c->ElementWiseDivide(*scaled_jac_c_space_->RowScaling()); } else { DBG_PRINT((1,"Creating copy in unapply_vector_scaling_c_NonConst!")); } return scaled_c; } SmartPtr StandardScalingBase::unapply_vector_scaling_c( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::unapply_vector_scaling_c", dbg_verbosity); if (IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_c_space_->RowScaling())) { return ConstPtr(unapply_vector_scaling_c_NonConst(v)); } else { return v; } } SmartPtr StandardScalingBase::apply_vector_scaling_d_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::apply_vector_scaling_d_NonConst", dbg_verbosity); SmartPtr scaled_d = v->MakeNewCopy(); if (IsValid(scaled_jac_d_space_) && IsValid(scaled_jac_d_space_->RowScaling())) { scaled_d->ElementWiseMultiply(*scaled_jac_d_space_->RowScaling()); } else { DBG_PRINT((1,"Creating copy in apply_vector_scaling_d_NonConst!")); } return scaled_d; } SmartPtr StandardScalingBase::apply_vector_scaling_d( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::apply_vector_scaling_d", dbg_verbosity); if (IsValid(scaled_jac_d_space_) && IsValid(scaled_jac_d_space_->RowScaling())) { return ConstPtr(apply_vector_scaling_d_NonConst(v)); } else { return v; } } SmartPtr StandardScalingBase::unapply_vector_scaling_d_NonConst( const SmartPtr& v) { DBG_START_METH("StandardScalingBase::unapply_vector_scaling_d_NonConst", dbg_verbosity); SmartPtr scaled_d = v->MakeNewCopy(); if (IsValid(scaled_jac_d_space_) && IsValid(scaled_jac_d_space_->RowScaling())) { scaled_d->ElementWiseDivide(*scaled_jac_d_space_->RowScaling()); } else { DBG_PRINT((1,"Creating copy in unapply_vector_scaling_d_NonConst!")); } return scaled_d; } SmartPtr StandardScalingBase::unapply_vector_scaling_d( const SmartPtr& v) { DBG_START_METH("NLPScalingObject::unapply_vector_scaling_d", dbg_verbosity); if (IsValid(scaled_jac_d_space_) && IsValid(scaled_jac_d_space_->RowScaling())) { return ConstPtr(unapply_vector_scaling_d_NonConst(v)); } else { return v; } } // ToDo: matrix not passed by reference, so setting to NULL doesn't make difference SmartPtr StandardScalingBase::apply_jac_c_scaling( SmartPtr matrix) { DBG_START_METH("NLPScalingObject::apply_jac_c_scaling", dbg_verbosity); if (IsValid(scaled_jac_c_space_)) { SmartPtr ret = scaled_jac_c_space_->MakeNewScaledMatrix(false); ret->SetUnscaledMatrix(matrix); return GetRawPtr(ret); } else { SmartPtr ret = matrix; matrix = NULL; return ret; } } SmartPtr StandardScalingBase::apply_jac_d_scaling( SmartPtr matrix) { DBG_START_METH("NLPScalingObject::apply_jac_d_scaling", dbg_verbosity); if (IsValid(scaled_jac_d_space_)) { SmartPtr ret = scaled_jac_d_space_->MakeNewScaledMatrix(false); ret->SetUnscaledMatrix(matrix); return GetRawPtr(ret); } else { SmartPtr ret = matrix; matrix = NULL; return ret; } } SmartPtr StandardScalingBase::apply_hessian_scaling( SmartPtr matrix) { DBG_START_METH("NLPScalingObject::apply_hessian_scaling", dbg_verbosity); if (IsValid(scaled_h_space_)) { SmartPtr ret = scaled_h_space_->MakeNewSymScaledMatrix(false); ret->SetUnscaledMatrix(matrix); return GetRawPtr(ret); } else { SmartPtr ret = matrix; matrix = NULL; return ret; } } bool StandardScalingBase::have_x_scaling() { return IsValid(dx_); } bool StandardScalingBase::have_c_scaling() { return (IsValid(scaled_jac_c_space_) && IsValid(scaled_jac_c_space_->RowScaling())); } bool StandardScalingBase::have_d_scaling() { return (IsValid(scaled_jac_d_space_) && IsValid(scaled_jac_d_space_->RowScaling())); } void NoNLPScalingObject::DetermineScalingParametersImpl( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, const SmartPtr jac_c_space, const SmartPtr jac_d_space, const SmartPtr h_space, const Matrix& Px_L, const Vector& x_L, const Matrix& Px_U, const Vector& x_U, Number& df, SmartPtr& dx, SmartPtr& dc, SmartPtr& dd) { df = 1.; dx = NULL; dc = NULL; dd = NULL; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpPenaltyLSAcceptor.cpp0000644000076600007660000003235511504216567021531 0ustar coincoin// Copyright (C) 2008, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPenaltyLSAcceptor.cpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-04-04 // derived file from IpFilterLSAcceptor.cpp #include "IpPenaltyLSAcceptor.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PenaltyLSAcceptor::PenaltyLSAcceptor(const SmartPtr& pd_solver) : pd_solver_(pd_solver) { DBG_START_FUN("PenaltyLSAcceptor::PenaltyLSAcceptor", dbg_verbosity); } PenaltyLSAcceptor::~PenaltyLSAcceptor() { DBG_START_FUN("PenaltyLSAcceptor::~PenaltyLSAcceptor()", dbg_verbosity); } void PenaltyLSAcceptor::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedNumberOption( "nu_init", "Initial value of the penalty parameter.", 0.0, true, 1e-6, ""); roptions->AddLowerBoundedNumberOption( "nu_inc", "Increment of the penalty parameter.", 0.0, true, 1e-4, ""); roptions->AddBoundedNumberOption( "rho", "Value in penalty parameter update formula.", 0.0, true, 1.0, true, 1e-1, ""); } bool PenaltyLSAcceptor::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("nu_init", nu_init_, prefix); options.GetNumericValue("nu_inc", nu_inc_, prefix); options.GetNumericValue("eta_phi", eta_, prefix); options.GetNumericValue("rho", rho_, prefix); // The following options have been declared in FilterLSAcceptor options.GetIntegerValue("max_soc", max_soc_, prefix); if (max_soc_>0) { ASSERT_EXCEPTION(IsValid(pd_solver_), OPTION_INVALID, "Option \"max_soc\": This option is non-negative, but no linear solver for computing the SOC given to PenaltyLSAcceptor object."); } options.GetNumericValue("kappa_soc", kappa_soc_, prefix); Reset(); return true; } void PenaltyLSAcceptor::InitThisLineSearch(bool in_watchdog) { DBG_START_METH("PenaltyLSAcceptor::InitThisLineSearch", dbg_verbosity); // Set the values for the reference point if (!in_watchdog) { reference_theta_ = IpCq().curr_constraint_violation(); reference_barr_ = IpCq().curr_barrier_obj(); reference_gradBarrTDelta_ = IpCq().curr_gradBarrTDelta(); // Compute d_x^T (W + \Sigma_x + delta_x I) d_x + // d_s^T (\Sigma_s + delta_s I) d_s Number pd_pert_x; Number pd_pert_s; Number pd_pert_c; Number pd_pert_d; IpData().getPDPert(pd_pert_x, pd_pert_s, pd_pert_c, pd_pert_d); SmartPtr delta_x = IpData().delta()->x(); SmartPtr tmp = delta_x->MakeNew(); IpData().W()->MultVector(1., *delta_x, 0., *tmp); reference_dWd_ = tmp->Dot(*delta_x); tmp->Copy(*delta_x); tmp->ElementWiseMultiply(*IpCq().curr_sigma_x()); reference_dWd_ += tmp->Dot(*delta_x); if (pd_pert_x != 0.) { Number dnrm2 = delta_x->Nrm2(); reference_dWd_ += pd_pert_x * dnrm2*dnrm2; } SmartPtr delta_s = IpData().delta()->s(); tmp = delta_s->MakeNewCopy(); tmp->ElementWiseMultiply(*IpCq().curr_sigma_s()); reference_dWd_ += tmp->Dot(*delta_s); if (pd_pert_s != 0.) { Number dnrm2 = delta_s->Nrm2(); reference_dWd_ += pd_pert_s * dnrm2*dnrm2; } // Set back to zero, if negative Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " dWd = %23.16e\n", reference_dWd_); if (reference_dWd_ <= 0.) { reference_dWd_ = 0.; } //reference_dWd_ = 0.; // Get the product of the steps with the Jacobian reference_JacC_delta_ = IpCq().curr_jac_c_times_vec(*delta_x); tmp = delta_s->MakeNew(); tmp->AddTwoVectors(1., *IpCq().curr_jac_d_times_vec(*delta_x), -1., *delta_s, 0.); reference_JacD_delta_ = ConstPtr(tmp); reference_pred_ = -1.; resto_pred_ = -1; // update the penalty parameter last_nu_ = nu_; if (reference_theta_ > 0.) { Number nu_plus = (reference_gradBarrTDelta_+reference_dWd_/2.)/((1.-rho_)*reference_theta_); if (nu_ < nu_plus) { nu_ = nu_plus + nu_inc_; } } Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " using nu = %23.16e\n", nu_); } else { reference_theta_ = watchdog_theta_; reference_barr_ = watchdog_barr_; reference_pred_ = watchdog_pred_; } } Number PenaltyLSAcceptor::CalcPred(Number alpha) { DBG_START_METH("PenaltyLSAcceptor::CalcPred", dbg_verbosity); SmartPtr curr_c = IpCq().curr_c(); SmartPtr curr_d_minus_s = IpCq().curr_d_minus_s(); SmartPtr tmp_c = curr_c->MakeNew(); SmartPtr tmp_d = curr_d_minus_s->MakeNew(); tmp_c->AddTwoVectors(1., *curr_c, alpha, *reference_JacC_delta_, 0.); tmp_d->AddTwoVectors(1., *curr_d_minus_s, alpha, *reference_JacD_delta_, 0.); Number theta2 = IpCq().CalcNormOfType(IpCq().constr_viol_normtype(), *tmp_c, *tmp_d); Jnlst().Printf(J_MOREDETAILED, J_LINE_SEARCH, " theta2 = %23.16e\n", theta2); Number pred = -alpha*reference_gradBarrTDelta_ - alpha*alpha/2.*reference_dWd_ + nu_*(reference_theta_ - theta2); if (pred < 0.) { Jnlst().Printf(J_WARNING, J_LINE_SEARCH, " pred = %23.16e is negative. Setting to zero.\n", pred); pred = 0.; } return pred; } bool PenaltyLSAcceptor::CheckAcceptabilityOfTrialPoint(Number alpha_primal_test) { DBG_START_METH("PenaltyLSAcceptor::CheckAcceptabilityOfTrialPoint", dbg_verbosity); // First compute the barrier function and constraint violation at the // current iterate and the trial point Number trial_theta = IpCq().trial_constraint_violation(); Number trial_barr = IpCq().trial_barrier_obj(); DBG_ASSERT(IsFiniteNumber(trial_barr)); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Checking acceptability for trial step size alpha_primal_test=%13.6e:\n", alpha_primal_test); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of barrier function = %23.16e (reference %23.16e):\n", trial_barr, reference_barr_); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " New values of constraint violation = %23.16e (reference %23.16e):\n", trial_theta, reference_theta_); Number pred; if (reference_pred_ < 0.) { pred = CalcPred(alpha_primal_test); } else { pred = reference_pred_; } resto_pred_ = pred; Number ared = reference_barr_ + nu_*(reference_theta_) - (trial_barr + nu_*trial_theta); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Checking Armijo Condition with pred = %23.16e and ared = %23.16e\n", pred, ared); bool accept; if (Compare_le(eta_*pred, ared, reference_barr_ + nu_*(reference_theta_))) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Success...\n"); accept = true; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Failed...\n"); accept = false; } return accept; } Number PenaltyLSAcceptor::CalculateAlphaMin() { // ToDo: make better return 1e-16; } void PenaltyLSAcceptor::StartWatchDog() { DBG_START_FUN("PenaltyLSAcceptor::StartWatchDog", dbg_verbosity); THROW_EXCEPTION(OPTION_INVALID, "Watchdog not implemented for penalty function line search. Set watchdog_shortened_iter_trigger to 0."); } void PenaltyLSAcceptor::StopWatchDog() { DBG_START_FUN("PenaltyLSAcceptor::StopWatchDog", dbg_verbosity); THROW_EXCEPTION(OPTION_INVALID, "Watchdog not implemented for penalty function line search. Set watchdog_shortened_iter_trigger to 0."); } void PenaltyLSAcceptor::Reset() { DBG_START_FUN("PenaltyLSAcceptor::Reset", dbg_verbosity); nu_ = nu_init_; } bool PenaltyLSAcceptor::TrySecondOrderCorrection( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { DBG_START_METH("PenaltyLSAcceptor::TrySecondOrderCorrection", dbg_verbosity); if (max_soc_==0) { return false; } bool accept = false; Index count_soc = 0; Number theta_soc_old = 0.; Number theta_trial = IpCq().trial_constraint_violation(); Number alpha_primal_soc = alpha_primal; SmartPtr c_soc = IpCq().curr_c()->MakeNew(); SmartPtr dms_soc = IpCq().curr_d_minus_s()->MakeNew(); c_soc->Copy(*IpCq().curr_c()); dms_soc->Copy(*IpCq().curr_d_minus_s()); while (count_socAddOneVector(1.0, *IpCq().trial_c(), alpha_primal_soc); dms_soc->AddOneVector(1.0, *IpCq().trial_d_minus_s(), alpha_primal_soc); // Compute the SOC search direction SmartPtr delta_soc = actual_delta->MakeNewIteratesVector(true); SmartPtr rhs = actual_delta->MakeNewContainer(); rhs->Set_x(*IpCq().curr_grad_lag_with_damping_x()); rhs->Set_s(*IpCq().curr_grad_lag_with_damping_s()); rhs->Set_y_c(*c_soc); rhs->Set_y_d(*dms_soc); rhs->Set_z_L(*IpCq().curr_relaxed_compl_x_L()); rhs->Set_z_U(*IpCq().curr_relaxed_compl_x_U()); rhs->Set_v_L(*IpCq().curr_relaxed_compl_s_L()); rhs->Set_v_U(*IpCq().curr_relaxed_compl_s_U()); bool retval = pd_solver_->Solve(-1.0, 0.0, *rhs, *delta_soc, true); if (!retval) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "The linear system could not be solved for the corrector step.\n"); return false; } // Compute step size alpha_primal_soc = IpCq().primal_frac_to_the_bound(IpData().curr_tau(), *delta_soc->x(), *delta_soc->s()); // Check if trial point is acceptable try { // Compute the primal trial point IpData().SetTrialPrimalVariablesFromStep(alpha_primal_soc, *delta_soc->x(), *delta_soc->s()); // in acceptance tests, use original step size! accept = CheckAcceptabilityOfTrialPoint(alpha_primal_test); } catch (IpoptNLP::Eval_Error& e) { e.ReportException(Jnlst(), J_DETAILED); Jnlst().Printf(J_WARNING, J_MAIN, "Warning: SOC step rejected due to evaluation error\n"); IpData().Append_info_string("e"); accept = false; // There is no point in continuing SOC procedure break; } if (accept) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, "Second order correction step accepted with %d corrections.\n", count_soc+1); // Accept all SOC quantities alpha_primal = alpha_primal_soc; actual_delta = delta_soc; } else { count_soc++; theta_trial = IpCq().trial_constraint_violation(); } } return accept; } bool PenaltyLSAcceptor::TryCorrector( Number alpha_primal_test, Number& alpha_primal, SmartPtr& actual_delta) { return false; } char PenaltyLSAcceptor::UpdateForNextIteration(Number alpha_primal_test) { // delete some stuff reference_JacC_delta_ = NULL; reference_JacD_delta_ = NULL; char info_alpha_primal_char = ' '; // Augment the filter if required if (last_nu_ != nu_) { info_alpha_primal_char = 'n'; char snu[40]; sprintf(snu, " nu=%8.2e", nu_); IpData().Append_info_string(snu); } else { info_alpha_primal_char = 'k'; } return info_alpha_primal_char; } void PenaltyLSAcceptor::PrepareRestoPhaseStart() { } bool PenaltyLSAcceptor::IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration /*=false*/) const { DBG_START_METH("PenaltyLSAcceptor::IsAcceptableToCurrentIterate", dbg_verbosity); ASSERT_EXCEPTION(resto_pred_ >= 0., INTERNAL_ABORT, "resto_pred_ not set for check from restoration phase."); Number ared = reference_barr_ + nu_*(reference_theta_) - (trial_barr + nu_*trial_theta); Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Checking Armijo Condition (for resto) with pred = %23.16e and ared = %23.16e\n", resto_pred_, ared); bool accept; if (Compare_le(eta_*resto_pred_, ared, reference_barr_ + nu_*(reference_theta_))) { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Success...\n"); accept = true; } else { Jnlst().Printf(J_DETAILED, J_LINE_SEARCH, " Failed...\n"); accept = false; } return accept; } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpMuUpdate.hpp0000644000076600007660000000407211504216567017721 0ustar coincoin// Copyright (C) 2004, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpMuUpdate.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPMUUPDATE_HPP__ #define __IPMUUPDATE_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Abstract Base Class for classes that implement methods for computing * the barrier and fraction-to-the-boundary rule parameter for the * current iteration. */ class MuUpdate : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ MuUpdate() {} /** Default destructor */ virtual ~MuUpdate() {} //@} /** Initialize method - overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Method for determining the barrier parameter for the next * iteration. A LineSearch object is passed, so that this method * can call the Reset method in the LineSearch object, for * example when then barrier parameter is changed. This method is * also responsible for setting the fraction-to-the-boundary * parameter tau. This method returns false if the update could * not be performed and the algorithm should revert to an * emergency fallback mechanism. */ virtual bool UpdateBarrierParameter() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ MuUpdate(const MuUpdate&); /** Overloaded Equals Operator */ void operator=(const MuUpdate&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpRestoPenaltyConvCheck.hpp0000644000076600007660000000542111504216567022411 0ustar coincoin// Copyright (C) 2008 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpRestoPenaltyConvCheck.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2008-06-24 // based on IpRestoFilterConvCheck.hpp #ifndef __IPRESTOPENALTYCONVCHECK_HPP__ #define __IPRESTOPENALTYCONVCHECK_HPP__ #include "IpRestoConvCheck.hpp" #include "IpPenaltyLSAcceptor.hpp" namespace Ipopt { /** This is the implementation of the restoration convergence check * is the original algorithm used the filter globalization * mechanism. */ class RestoPenaltyConvergenceCheck : public RestoConvergenceCheck { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ RestoPenaltyConvergenceCheck(); /** Default destructor */ virtual ~RestoPenaltyConvergenceCheck(); //@} /** Set the object for the original penalty line search. Here, * orig_penalty_ls_acceptor must be the same strategy object to * which the restoration phase object with this object is given. * This method must be called to finish the definition of the * algorithm, before Initialize is called. */ void SetOrigLSAcceptor(const BacktrackingLSAcceptor& orig_ls_acceptor); /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Methods used by IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} private: /**@name Default Compiler Generated Methods (Hidden to avoid * implicit creation/calling). These methods are not implemented * and we do not want the compiler to implement them for us, so we * declare them private and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ RestoPenaltyConvergenceCheck(const RestoPenaltyConvergenceCheck&); /** Overloaded Equals Operator */ void operator=(const RestoPenaltyConvergenceCheck&); //@} /** Method for checking progress with original filter * globalization mechanism. Overloaded from * RestoConvergenceCheck. */ virtual ConvergenceStatus TestOrigProgress(Number orig_trial_barr, Number orig_trial_theta); /** Strategy object for the filter line search method for the * original NLP. CAREFUL: We must not hold on to this object * with a SmartPtr, because have otherwise circular references * that prevent the destructor of the line search object to be * called! */ const PenaltyLSAcceptor* orig_penalty_ls_acceptor_; }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpPDFullSpaceSolver.cpp0000644000076600007660000010045212125652102021451 0ustar coincoin// Copyright (C) 2004, 2007 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpPDFullSpaceSolver.cpp 2183 2013-03-30 21:08:18Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpPDFullSpaceSolver.hpp" #include "IpDebug.hpp" #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # else # error "don't have header file for math" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif PDFullSpaceSolver::PDFullSpaceSolver(AugSystemSolver& augSysSolver, PDPerturbationHandler& perturbHandler) : PDSystemSolver(), augSysSolver_(&augSysSolver), perturbHandler_(&perturbHandler), dummy_cache_(1) { DBG_START_METH("PDFullSpaceSolver::PDFullSpaceSolver",dbg_verbosity); } PDFullSpaceSolver::~PDFullSpaceSolver() { DBG_START_METH("PDFullSpaceSolver::~PDFullSpaceSolver()",dbg_verbosity); } void PDFullSpaceSolver::RegisterOptions(SmartPtr roptions) { roptions->AddLowerBoundedIntegerOption( "min_refinement_steps", "Minimum number of iterative refinement steps per linear system solve.", 0, 1, "Iterative refinement (on the full unsymmetric system) is performed for " "each right hand side. This option determines the minimum number " "of iterative refinements (i.e. at least \"min_refinement_steps\" " "iterative refinement steps are enforced per right hand side.)"); roptions->AddLowerBoundedIntegerOption( "max_refinement_steps", "Maximum number of iterative refinement steps per linear system solve.", 0, 10, "Iterative refinement (on the full unsymmetric system) is performed for " "each right hand side. This option determines the maximum number " "of iterative refinement steps."); roptions->AddLowerBoundedNumberOption( "residual_ratio_max", "Iterative refinement tolerance", 0.0, true, 1e-10, "Iterative refinement is performed until the residual test ratio is " "less than this tolerance (or until \"max_refinement_steps\" refinement " "steps are performed)."); roptions->AddLowerBoundedNumberOption( "residual_ratio_singular", "Threshold for declaring linear system singular after failed iterative refinement.", 0.0, true, 1e-5, "If the residual test ratio is larger than this value after failed " "iterative refinement, the algorithm pretends that the linear system is " "singular."); // ToDo Think about following option - are the correct norms used? roptions->AddLowerBoundedNumberOption( "residual_improvement_factor", "Minimal required reduction of residual test ratio in iterative refinement.", 0.0, true, 0.999999999, "If the improvement of the residual test ratio made by one iterative " "refinement step is not better than this factor, iterative refinement " "is aborted."); roptions->AddLowerBoundedNumberOption( "neg_curv_test_tol", "Tolerance for heuristic to ignore wrong inertia.", 0.0, true, 0.0, "If positive, incorrect inertia in the augmented system is ignored, and " "we test if the direction is a direction of positive curvature. This " "tolerance determines when the direction is considered to be " "sufficiently positive."); } bool PDFullSpaceSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { // Check for the algorithm options options.GetIntegerValue("min_refinement_steps", min_refinement_steps_, prefix); options.GetIntegerValue("max_refinement_steps", max_refinement_steps_, prefix); ASSERT_EXCEPTION(max_refinement_steps_ >= min_refinement_steps_, OPTION_INVALID, "Option \"max_refinement_steps\": This value must be larger than or equal to min_refinement_steps (default 1)"); options.GetNumericValue("residual_ratio_max", residual_ratio_max_, prefix); options.GetNumericValue("residual_ratio_singular", residual_ratio_singular_, prefix); ASSERT_EXCEPTION(residual_ratio_singular_ >= residual_ratio_max_, OPTION_INVALID, "Option \"residual_ratio_singular\": This value must be not smaller than residual_ratio_max."); options.GetNumericValue("residual_improvement_factor", residual_improvement_factor_, prefix); options.GetNumericValue("neg_curv_test_tol", neg_curv_test_tol_, prefix); // Reset internal flags and data augsys_improved_ = false; if (!augSysSolver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix)) { return false; } return perturbHandler_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } bool PDFullSpaceSolver::Solve(Number alpha, Number beta, const IteratesVector& rhs, IteratesVector& res, bool allow_inexact, bool improve_solution /* = false */) { DBG_START_METH("PDFullSpaceSolver::Solve",dbg_verbosity); DBG_ASSERT(!allow_inexact || !improve_solution); DBG_ASSERT(!improve_solution || beta==0.); // Timing of PDSystem solver starts here IpData().TimingStats().PDSystemSolverTotal().Start(); DBG_PRINT_VECTOR(2, "rhs_x", *rhs.x()); DBG_PRINT_VECTOR(2, "rhs_s", *rhs.s()); DBG_PRINT_VECTOR(2, "rhs_c", *rhs.y_c()); DBG_PRINT_VECTOR(2, "rhs_d", *rhs.y_d()); DBG_PRINT_VECTOR(2, "rhs_zL", *rhs.z_L()); DBG_PRINT_VECTOR(2, "rhs_zU", *rhs.z_U()); DBG_PRINT_VECTOR(2, "rhs_vL", *rhs.v_L()); DBG_PRINT_VECTOR(2, "rhs_vU", *rhs.v_U()); DBG_PRINT_VECTOR(2, "res_x in", *res.x()); DBG_PRINT_VECTOR(2, "res_s in", *res.s()); DBG_PRINT_VECTOR(2, "res_c in", *res.y_c()); DBG_PRINT_VECTOR(2, "res_d in", *res.y_d()); DBG_PRINT_VECTOR(2, "res_zL in", *res.z_L()); DBG_PRINT_VECTOR(2, "res_zU in", *res.z_U()); DBG_PRINT_VECTOR(2, "res_vL in", *res.v_L()); DBG_PRINT_VECTOR(2, "res_vU in", *res.v_U()); // if beta is nonzero, keep a copy of the incoming values in res_ */ SmartPtr copy_res; if (beta != 0.) { copy_res = res.MakeNewIteratesVectorCopy(); } // Receive data about matrix SmartPtr x = IpData().curr()->x(); SmartPtr s = IpData().curr()->s(); SmartPtr W = IpData().W(); SmartPtr J_c = IpCq().curr_jac_c(); SmartPtr J_d = IpCq().curr_jac_d(); SmartPtr Px_L = IpNLP().Px_L(); SmartPtr Px_U = IpNLP().Px_U(); SmartPtr Pd_L = IpNLP().Pd_L(); SmartPtr Pd_U = IpNLP().Pd_U(); SmartPtr z_L = IpData().curr()->z_L(); SmartPtr z_U = IpData().curr()->z_U(); SmartPtr v_L = IpData().curr()->v_L(); SmartPtr v_U = IpData().curr()->v_U(); SmartPtr slack_x_L = IpCq().curr_slack_x_L(); SmartPtr slack_x_U = IpCq().curr_slack_x_U(); SmartPtr slack_s_L = IpCq().curr_slack_s_L(); SmartPtr slack_s_U = IpCq().curr_slack_s_U(); SmartPtr sigma_x = IpCq().curr_sigma_x(); SmartPtr sigma_s = IpCq().curr_sigma_s(); DBG_PRINT_VECTOR(2, "Sigma_x", *sigma_x); DBG_PRINT_VECTOR(2, "Sigma_s", *sigma_s); bool done = false; // The following flag is set to true, if we asked the linear // solver to improve the quality of the solution in // the next solve bool resolve_with_better_quality = false; // the following flag is set to true, if iterative refinement // failed and we want to try if a modified system is able to // remedy that problem by pretending the matrix is singular bool pretend_singular = false; bool pretend_singular_last_time = false; // Beginning of loop for solving the system (including all // modifications for the linear system to ensure good solution // quality) while (!done) { // if improve_solution is true, we are given already a solution // from the calling function, so we can skip the first solve bool solve_retval = true; if (!improve_solution) { solve_retval = SolveOnce(resolve_with_better_quality, pretend_singular, *W, *J_c, *J_d, *Px_L, *Px_U, *Pd_L, *Pd_U, *z_L, *z_U, *v_L, *v_U, *slack_x_L, *slack_x_U, *slack_s_L, *slack_s_U, *sigma_x, *sigma_s, 1., 0., rhs, res); resolve_with_better_quality = false; pretend_singular = false; } improve_solution = false; if (!solve_retval) { // If system seems not to be solvable, we return with false // and let the calling routine deal with it. IpData().TimingStats().PDSystemSolverTotal().End(); return false; } if (allow_inexact) { // no safety checks required if (Jnlst().ProduceOutput(J_MOREDETAILED, J_LINEAR_ALGEBRA)) { SmartPtr resid = res.MakeNewIteratesVector(true); ComputeResiduals(*W, *J_c, *J_d, *Px_L, *Px_U, *Pd_L, *Pd_U, *z_L, *z_U, *v_L, *v_U, *slack_x_L, *slack_x_U, *slack_s_L, *slack_s_U, *sigma_x, *sigma_s, alpha, beta, rhs, res, *resid); } break; } // Get space for the residual SmartPtr resid = res.MakeNewIteratesVector(true); // ToDo don't to that after max refinement? ComputeResiduals(*W, *J_c, *J_d, *Px_L, *Px_U, *Pd_L, *Pd_U, *z_L, *z_U, *v_L, *v_U, *slack_x_L, *slack_x_U, *slack_s_L, *slack_s_U, *sigma_x, *sigma_s, alpha, beta, rhs, res, *resid); Number residual_ratio = ComputeResidualRatio(rhs, res, *resid); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "residual_ratio = %e\n", residual_ratio); Number residual_ratio_old = residual_ratio; // Beginning of loop for iterative refinement Index num_iter_ref = 0; bool quit_refinement = false; while (!allow_inexact && !quit_refinement && (num_iter_ref < min_refinement_steps_ || residual_ratio > residual_ratio_max_) ) { // To the next back solve solve_retval = SolveOnce(resolve_with_better_quality, false, *W, *J_c, *J_d, *Px_L, *Px_U, *Pd_L, *Pd_U, *z_L, *z_U, *v_L, *v_U, *slack_x_L, *slack_x_U, *slack_s_L, *slack_s_U, *sigma_x, *sigma_s, -1., 1., *resid, res); ASSERT_EXCEPTION(solve_retval, INTERNAL_ABORT, "SolveOnce returns false during iterative refinement."); ComputeResiduals(*W, *J_c, *J_d, *Px_L, *Px_U, *Pd_L, *Pd_U, *z_L, *z_U, *v_L, *v_U, *slack_x_L, *slack_x_U, *slack_s_L, *slack_s_U, *sigma_x, *sigma_s, alpha, beta, rhs, res, *resid); residual_ratio = ComputeResidualRatio(rhs, res, *resid); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "residual_ratio = %e\n", residual_ratio); num_iter_ref++; // Check if we have to give up on iterative refinement if (residual_ratio > residual_ratio_max_ && num_iter_ref>min_refinement_steps_ && (num_iter_ref>max_refinement_steps_ || residual_ratio>residual_improvement_factor_*residual_ratio_old)) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Iterative refinement failed with residual_ratio = %e\n", residual_ratio); quit_refinement = true; // Pretend singularity only once - if it didn't help, we // have to live with what we got so far resolve_with_better_quality = false; DBG_PRINT((1, "pretend_singular = %d\n", pretend_singular)); if (!pretend_singular_last_time) { // First try if we can ask the augmented system solver to // improve the quality of the solution (only if that hasn't // been done before for this linear system) if (!augsys_improved_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Asking augmented system solver to improve quality of its solutions.\n"); augsys_improved_ = augSysSolver_->IncreaseQuality(); if (augsys_improved_) { IpData().Append_info_string("q"); resolve_with_better_quality = true; } else { // solver said it cannot improve quality, so let // possibly conclude that the current modification is // singular pretend_singular = true; } } else { // we had already asked the solver before to improve the // quality of the solution, so let's now pretend that the // modification is possibly singular pretend_singular = true; } pretend_singular_last_time = pretend_singular; if (pretend_singular) { // let's only conclude that the current linear system // including modifications is singular, if the residual is // quite bad if (residual_ratio < residual_ratio_singular_) { pretend_singular = false; IpData().Append_info_string("S"); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Just accept current solution.\n"); } else { IpData().Append_info_string("s"); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Pretend that the current system (including modifications) is singular.\n"); } } } else { pretend_singular = false; DBG_PRINT((1,"Resetting pretend_singular to false.\n")); } } residual_ratio_old = residual_ratio; } // End of loop for iterative refinement done = !(resolve_with_better_quality) && !(pretend_singular); } // End of loop for solving the linear system (incl. modifications) // Finally let's assemble the res result vectors if (alpha != 0.) { res.Scal(alpha); } if (beta != 0.) { res.Axpy(beta, *copy_res); } DBG_PRINT_VECTOR(2, "res_x", *res.x()); DBG_PRINT_VECTOR(2, "res_s", *res.s()); DBG_PRINT_VECTOR(2, "res_c", *res.y_c()); DBG_PRINT_VECTOR(2, "res_d", *res.y_d()); DBG_PRINT_VECTOR(2, "res_zL", *res.z_L()); DBG_PRINT_VECTOR(2, "res_zU", *res.z_U()); DBG_PRINT_VECTOR(2, "res_vL", *res.v_L()); DBG_PRINT_VECTOR(2, "res_vU", *res.v_U()); IpData().TimingStats().PDSystemSolverTotal().End(); return true; } bool PDFullSpaceSolver::SolveOnce(bool resolve_with_better_quality, bool pretend_singular, const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Px_L, const Matrix& Px_U, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_x, const Vector& sigma_s, Number alpha, Number beta, const IteratesVector& rhs, IteratesVector& res) { // TO DO LIST: // // 1. decide for reasonable return codes (e.g. fatal error, too // ill-conditioned...) // 2. Make constants parameters that can be set from the outside // 3. Get Information out of Ipopt structures // 4. add heuristic for structurally singular problems // 5. see if it makes sense to distinguish delta_x and delta_s, // or delta_c and delta_d // 6. increase pivot tolerance if number of get evals so too small DBG_START_METH("PDFullSpaceSolver::SolveOnce",dbg_verbosity); IpData().TimingStats().PDSystemSolverSolveOnce().Start(); // Compute the right hand side for the augmented system formulation SmartPtr augRhs_x = rhs.x()->MakeNewCopy(); Px_L.AddMSinvZ(1.0, slack_x_L, *rhs.z_L(), *augRhs_x); Px_U.AddMSinvZ(-1.0, slack_x_U, *rhs.z_U(), *augRhs_x); SmartPtr augRhs_s = rhs.s()->MakeNewCopy(); Pd_L.AddMSinvZ(1.0, slack_s_L, *rhs.v_L(), *augRhs_s); Pd_U.AddMSinvZ(-1.0, slack_s_U, *rhs.v_U(), *augRhs_s); // Get space into which we can put the solution of the augmented system SmartPtr sol = res.MakeNewIteratesVector(true); // Now check whether any data has changed std::vector deps(13); deps[0] = &W; deps[1] = &J_c; deps[2] = &J_d; deps[3] = &z_L; deps[4] = &z_U; deps[5] = &v_L; deps[6] = &v_U; deps[7] = &slack_x_L; deps[8] = &slack_x_U; deps[9] = &slack_s_L; deps[10] = &slack_s_U; deps[11] = &sigma_x; deps[12] = &sigma_s; void* dummy; bool uptodate = dummy_cache_.GetCachedResult(dummy, deps); if (!uptodate) { dummy_cache_.AddCachedResult(dummy, deps); augsys_improved_ = false; } // improve_current_solution can only be true, if that system has // been solved before DBG_ASSERT((!resolve_with_better_quality && !pretend_singular) || uptodate); ESymSolverStatus retval; if (uptodate && !pretend_singular) { // Get the perturbation values Number delta_x; Number delta_s; Number delta_c; Number delta_d; perturbHandler_->CurrentPerturbation(delta_x, delta_s, delta_c, delta_d); // No need to go through the pain of finding the appropriate // values for the deltas, because the matrix hasn't changed since // the last call. So, just call the Solve Method // // Note: resolve_with_better_quality is true, then the Solve // method has already asked the augSysSolver to increase the // quality at the end solve, and we are now getting the solution // with that better quality retval = augSysSolver_->Solve(&W, 1.0, &sigma_x, delta_x, &sigma_s, delta_s, &J_c, NULL, delta_c, &J_d, NULL, delta_d, *augRhs_x, *augRhs_s, *rhs.y_c(), *rhs.y_d(), *sol->x_NonConst(), *sol->s_NonConst(), *sol->y_c_NonConst(), *sol->y_d_NonConst(), false, 0); if (retval!=SYMSOLVER_SUCCESS) { IpData().TimingStats().PDSystemSolverSolveOnce().End(); return false; } } else { const Index numberOfEVals=rhs.y_c()->Dim()+rhs.y_d()->Dim(); // counter for the number of trial evaluations // (ToDo is not at the correct place) Index count = 0; // Get the very first perturbation values from the perturbation // Handler Number delta_x; Number delta_s; Number delta_c; Number delta_d; perturbHandler_->ConsiderNewSystem(delta_x, delta_s, delta_c, delta_d); retval = SYMSOLVER_SINGULAR; bool fail = false; while (retval!= SYMSOLVER_SUCCESS && !fail) { if (pretend_singular) { retval = SYMSOLVER_SINGULAR; pretend_singular = false; } else { count++; Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "Solving system with delta_x=%e delta_s=%e\n delta_c=%e delta_d=%e\n", delta_x, delta_s, delta_c, delta_d); bool check_inertia = true; if (neg_curv_test_tol_ > 0.) { check_inertia = false; } retval = augSysSolver_->Solve(&W, 1.0, &sigma_x, delta_x, &sigma_s, delta_s, &J_c, NULL, delta_c, &J_d, NULL, delta_d, *augRhs_x, *augRhs_s, *rhs.y_c(), *rhs.y_d(), *sol->x_NonConst(), *sol->s_NonConst(), *sol->y_c_NonConst(), *sol->y_d_NonConst(), check_inertia, numberOfEVals); } if (retval==SYMSOLVER_FATAL_ERROR) return false; if (retval==SYMSOLVER_SINGULAR && (rhs.y_c()->Dim()+rhs.y_d()->Dim() > 0) ) { // Get new perturbation factors from the perturbation // handlers for the singular case bool pert_return = perturbHandler_->PerturbForSingularity(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForSingularity can't be done\n"); IpData().TimingStats().PDSystemSolverSolveOnce().End(); return false; } } else if (retval==SYMSOLVER_WRONG_INERTIA && augSysSolver_->NumberOfNegEVals() < numberOfEVals) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of negative eigenvalues too small!\n"); // If the number of negative eigenvalues is too small, then // we first try to remedy this by asking for better quality // solution (e.g. increasing pivot tolerance), and if that // doesn't help, we assume that the system is singular bool assume_singular = true; if (!augsys_improved_) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Asking augmented system solver to improve quality of its solutions.\n"); augsys_improved_ = augSysSolver_->IncreaseQuality(); if (augsys_improved_) { IpData().Append_info_string("q"); assume_singular = false; } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Quality could not be improved\n"); } } if (assume_singular) { bool pert_return = perturbHandler_->PerturbForSingularity(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForSingularity can't be done for assume singular.\n"); IpData().TimingStats().PDSystemSolverSolveOnce().End(); return false; } IpData().Append_info_string("a"); } } else if (retval==SYMSOLVER_WRONG_INERTIA || retval==SYMSOLVER_SINGULAR) { // Get new perturbation factors from the perturbation // handlers for the case of wrong inertia bool pert_return = perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for wrong interia or singular.\n"); IpData().TimingStats().PDSystemSolverSolveOnce().End(); return false; } } else if (neg_curv_test_tol_ > 0.) { DBG_ASSERT(augSysSolver_->ProvidesInertia()); // we now check if the inertia is possible wrong Index neg_values = augSysSolver_->NumberOfNegEVals(); if (neg_values != numberOfEVals) { // check if we have a direction of sufficient positive curvature SmartPtr x_tmp = sol->x()->MakeNew(); W.MultVector(1., *sol->x(), 0., *x_tmp); Number xWx = x_tmp->Dot(*sol->x()); x_tmp->Copy(*sol->x()); x_tmp->ElementWiseMultiply(sigma_x); xWx += x_tmp->Dot(*sol->x()); SmartPtr s_tmp = sol->s()->MakeNewCopy(); s_tmp->ElementWiseMultiply(sigma_s); xWx += s_tmp->Dot(*sol->s()); Number xs_nrmsq = pow(sol->x()->Nrm2(),2) + pow(sol->s()->Nrm2(),2); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "In inertia heuristic: xWx = %e xx = %e\n", xWx, xs_nrmsq); if (xWx < neg_curv_test_tol_*xs_nrmsq) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, " -> Redo with modified matrix.\n"); bool pert_return = perturbHandler_->PerturbForWrongInertia(delta_x, delta_s, delta_c, delta_d); if (!pert_return) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "PerturbForWrongInertia can't be done for inertia heuristic.\n"); IpData().TimingStats().PDSystemSolverSolveOnce().End(); return false; } retval = SYMSOLVER_WRONG_INERTIA; } } } } // while (retval!=SYMSOLVER_SUCCESS && !fail) { // Some output Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Number of trial factorizations performed: %d\n", count); Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Perturbation parameters: delta_x=%e delta_s=%e\n delta_c=%e delta_d=%e\n", delta_x, delta_s, delta_c, delta_d); // Set the perturbation values in the Data object IpData().setPDPert(delta_x, delta_s, delta_c, delta_d); } // Compute the remaining sol Vectors Px_L.SinvBlrmZMTdBr(-1., slack_x_L, *rhs.z_L(), z_L, *sol->x(), *sol->z_L_NonConst()); Px_U.SinvBlrmZMTdBr(1., slack_x_U, *rhs.z_U(), z_U, *sol->x(), *sol->z_U_NonConst()); Pd_L.SinvBlrmZMTdBr(-1., slack_s_L, *rhs.v_L(), v_L, *sol->s(), *sol->v_L_NonConst()); Pd_U.SinvBlrmZMTdBr(1., slack_s_U, *rhs.v_U(), v_U, *sol->s(), *sol->v_U_NonConst()); // Finally let's assemble the res result vectors res.AddOneVector(alpha, *sol, beta); IpData().TimingStats().PDSystemSolverSolveOnce().End(); return true; } void PDFullSpaceSolver::ComputeResiduals( const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Matrix& Px_L, const Matrix& Px_U, const Matrix& Pd_L, const Matrix& Pd_U, const Vector& z_L, const Vector& z_U, const Vector& v_L, const Vector& v_U, const Vector& slack_x_L, const Vector& slack_x_U, const Vector& slack_s_L, const Vector& slack_s_U, const Vector& sigma_x, const Vector& sigma_s, Number alpha, Number beta, const IteratesVector& rhs, const IteratesVector& res, IteratesVector& resid) { DBG_START_METH("PDFullSpaceSolver::ComputeResiduals", dbg_verbosity); DBG_PRINT_VECTOR(2, "res", res); IpData().TimingStats().ComputeResiduals().Start(); // Get the current sizes of the perturbation factors Number delta_x; Number delta_s; Number delta_c; Number delta_d; perturbHandler_->CurrentPerturbation(delta_x, delta_s, delta_c, delta_d); SmartPtr tmp; // x W.MultVector(1., *res.x(), 0., *resid.x_NonConst()); J_c.TransMultVector(1., *res.y_c(), 1., *resid.x_NonConst()); J_d.TransMultVector(1., *res.y_d(), 1., *resid.x_NonConst()); Px_L.MultVector(-1., *res.z_L(), 1., *resid.x_NonConst()); Px_U.MultVector(1., *res.z_U(), 1., *resid.x_NonConst()); resid.x_NonConst()->AddTwoVectors(delta_x, *res.x(), -1., *rhs.x(), 1.); // s Pd_U.MultVector(1., *res.v_U(), 0., *resid.s_NonConst()); Pd_L.MultVector(-1., *res.v_L(), 1., *resid.s_NonConst()); resid.s_NonConst()->AddTwoVectors(-1., *res.y_d(), -1., *rhs.s(), 1.); if (delta_s!=0.) { resid.s_NonConst()->Axpy(delta_s, *res.s()); } // c J_c.MultVector(1., *res.x(), 0., *resid.y_c_NonConst()); resid.y_c_NonConst()->AddTwoVectors(-delta_c, *res.y_c(), -1., *rhs.y_c(), 1.); // d J_d.MultVector(1., *res.x(), 0., *resid.y_d_NonConst()); resid.y_d_NonConst()->AddTwoVectors(-1., *res.s(), -1., *rhs.y_d(), 1.); if (delta_d!=0.) { resid.y_d_NonConst()->Axpy(-delta_d, *res.y_d()); } // zL resid.z_L_NonConst()->Copy(*res.z_L()); resid.z_L_NonConst()->ElementWiseMultiply(slack_x_L); tmp = z_L.MakeNew(); Px_L.TransMultVector(1., *res.x(), 0., *tmp); tmp->ElementWiseMultiply(z_L); resid.z_L_NonConst()->AddTwoVectors(1., *tmp, -1., *rhs.z_L(), 1.); // zU resid.z_U_NonConst()->Copy(*res.z_U()); resid.z_U_NonConst()->ElementWiseMultiply(slack_x_U); tmp = z_U.MakeNew(); Px_U.TransMultVector(1., *res.x(), 0., *tmp); tmp->ElementWiseMultiply(z_U); resid.z_U_NonConst()->AddTwoVectors(-1., *tmp, -1., *rhs.z_U(), 1.); // vL resid.v_L_NonConst()->Copy(*res.v_L()); resid.v_L_NonConst()->ElementWiseMultiply(slack_s_L); tmp = v_L.MakeNew(); Pd_L.TransMultVector(1., *res.s(), 0., *tmp); tmp->ElementWiseMultiply(v_L); resid.v_L_NonConst()->AddTwoVectors(1., *tmp, -1., *rhs.v_L(), 1.); // vU resid.v_U_NonConst()->Copy(*res.v_U()); resid.v_U_NonConst()->ElementWiseMultiply(slack_s_U); tmp = v_U.MakeNew(); Pd_U.TransMultVector(1., *res.s(), 0., *tmp); tmp->ElementWiseMultiply(v_U); resid.v_U_NonConst()->AddTwoVectors(-1., *tmp, -1., *rhs.v_U(), 1.); DBG_PRINT_VECTOR(2, "resid", resid); if (Jnlst().ProduceOutput(J_MOREVECTOR, J_LINEAR_ALGEBRA)) { resid.Print(Jnlst(), J_MOREVECTOR, J_LINEAR_ALGEBRA, "resid"); } if (Jnlst().ProduceOutput(J_MOREDETAILED, J_LINEAR_ALGEBRA)) { Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_x %e\n", resid.x()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_s %e\n", resid.s()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_c %e\n", resid.y_c()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_d %e\n", resid.y_d()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_zL %e\n", resid.z_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_zU %e\n", resid.z_U()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_vL %e\n", resid.v_L()->Amax()); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "max-norm resid_vU %e\n", resid.v_U()->Amax()); } IpData().TimingStats().ComputeResiduals().End(); } Number PDFullSpaceSolver::ComputeResidualRatio(const IteratesVector& rhs, const IteratesVector& res, const IteratesVector& resid) { DBG_START_METH("PDFullSpaceSolver::ComputeResidualRatio", dbg_verbosity); Number nrm_rhs = rhs.Amax(); Number nrm_res = res.Amax(); Number nrm_resid = resid.Amax(); Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA, "nrm_rhs = %8.2e nrm_sol = %8.2e nrm_resid = %8.2e\n", nrm_rhs, nrm_res, nrm_resid); if (nrm_rhs+nrm_res == 0.) { return nrm_resid; // this should be zero } else { // ToDo: determine how to include norm of matrix, and what // safeguard to use against incredibly large solution vectors Number max_cond = 1e6; return nrm_resid/(Min(nrm_res, max_cond*nrm_rhs)+nrm_rhs); } } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpStdAugSystemSolver.cpp0000644000076600007660000004357212141450650021756 0ustar coincoin// Copyright (C) 2004, 2009 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpStdAugSystemSolver.cpp 2276 2013-05-05 12:33:44Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #include "IpStdAugSystemSolver.hpp" #include "IpDebug.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpCompoundVector.hpp" #include "IpSumSymMatrix.hpp" #include "IpDiagMatrix.hpp" #include "IpIdentityMatrix.hpp" // ToDo: Remove below here - for debug only #include "IpTripletHelper.hpp" // ToDo: Remove above here #ifdef HAVE_CSTDIO # include #else # ifdef HAVE_STDIO_H # include # else # error "don't have header file for stdio" # endif #endif namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif StdAugSystemSolver::StdAugSystemSolver(SymLinearSolver& linSolver) : AugSystemSolver(), linsolver_(&linSolver), augmented_system_space_(NULL), sumsym_space_x_(NULL), diag_space_x_(NULL), diag_space_s_(NULL), diag_space_c_(NULL), ident_space_ds_(NULL), diag_space_d_(NULL), delta_x_(0.), delta_s_(0.), delta_c_(0.), delta_d_(0.), old_w_(NULL) { DBG_START_METH("StdAugSystemSolver::StdAugSystemSolver()",dbg_verbosity); DBG_ASSERT(IsValid(linsolver_)); } StdAugSystemSolver::~StdAugSystemSolver() { DBG_START_METH("StdAugSystemSolver::~StdAugSystemSolver()",dbg_verbosity); } bool StdAugSystemSolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { // This option is registered by OrigIpoptNLP options.GetBoolValue("warm_start_same_structure", warm_start_same_structure_, prefix); if (!warm_start_same_structure_) { augsys_tag_ = TaggedObject::Tag(); augmented_system_ = NULL; } else { ASSERT_EXCEPTION(IsValid(augmented_system_), INVALID_WARMSTART, "StdAugSystemSolver called with warm_start_same_structure, but augmented system is not initialized."); } return linsolver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(), options, prefix); } ESymSolverStatus StdAugSystemSolver::MultiSolve( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix* J_c, const Vector* D_c, double delta_c, const Matrix* J_d, const Vector* D_d, double delta_d, std::vector >& rhs_xV, std::vector >& rhs_sV, std::vector >& rhs_cV, std::vector >& rhs_dV, std::vector >& sol_xV, std::vector >& sol_sV, std::vector >& sol_cV, std::vector >& sol_dV, bool check_NegEVals, Index numberOfNegEVals) { DBG_START_METH("StdAugSystemSolver::MultiSolve",dbg_verbosity); DBG_ASSERT(J_c && J_d && "Currently, you MUST specify J_c and J_d in the augmented system"); IpData().TimingStats().StdAugSystemSolverMultiSolve().Start(); DBG_ASSERT(W_factor == 0.0 || W_factor == 1.0); Index nrhs = (Index)rhs_xV.size(); DBG_ASSERT(nrhs>0); DBG_ASSERT(nrhs==(Index)rhs_sV.size()); DBG_ASSERT(nrhs==(Index)rhs_cV.size()); DBG_ASSERT(nrhs==(Index)rhs_dV.size()); DBG_ASSERT(nrhs==(Index)sol_xV.size()); DBG_ASSERT(nrhs==(Index)sol_sV.size()); DBG_ASSERT(nrhs==(Index)sol_cV.size()); DBG_ASSERT(nrhs==(Index)sol_dV.size()); // Create the compound matrix of the augmented system if it has not // yet been created - It is assumed that the structure will not change // after this call DBG_DO(bool debug_first_time_through = false;) if (!IsValid(augmented_system_)) { // pass in the information to form the structure of the augmented system // rhs_? are passed in to provide a prototype vector // for D_? (since these may be NULL) DBG_ASSERT(W && J_c && J_d); // W must exist during the first call to setup the structure! CreateAugmentedSpace(*W, *J_c, *J_d, *rhs_xV[0], *rhs_sV[0], *rhs_cV[0], *rhs_dV[0]); CreateAugmentedSystem(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d, *rhs_xV[0], *rhs_sV[0], *rhs_cV[0], *rhs_dV[0]); DBG_DO(debug_first_time_through = true;) } // Check if anything that was just passed in is different from // what is currently in the compound matrix of the augmented // system. If anything is different, then update the augmented // system if ( AugmentedSystemRequiresChange(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d) ) { DBG_ASSERT(!debug_first_time_through); CreateAugmentedSystem(W, W_factor, D_x, delta_x, D_s, delta_s, *J_c, D_c, delta_c, *J_d, D_d, delta_d, *rhs_xV[0], *rhs_sV[0], *rhs_cV[0], *rhs_dV[0]); } // Sanity checks DBG_ASSERT(rhs_xV[0]->Dim() == sol_xV[0]->Dim()); DBG_ASSERT(rhs_sV[0]->Dim() == sol_sV[0]->Dim()); DBG_ASSERT(rhs_cV[0]->Dim() == sol_cV[0]->Dim()); DBG_ASSERT(rhs_dV[0]->Dim() == sol_dV[0]->Dim()); // Now construct the overall right hand side vector that will be passed // to the linear solver std::vector > augmented_rhsV(nrhs); for (Index i=0; i augrhs = augmented_vector_space_->MakeNewCompoundVector(); augrhs->SetComp(0, *rhs_xV[i]); augrhs->SetComp(1, *rhs_sV[i]); augrhs->SetComp(2, *rhs_cV[i]); augrhs->SetComp(3, *rhs_dV[i]); char buffer[16]; Snprintf(buffer, 15, "RHS[%2d]", i); augrhs->Print(Jnlst(), J_MOREVECTOR, J_LINEAR_ALGEBRA, buffer); augmented_rhsV[i] = GetRawPtr(augrhs); } augmented_system_->Print(Jnlst(), J_MATRIX, J_LINEAR_ALGEBRA, "KKT"); #ifndef HAVE_MPI if (Jnlst().ProduceOutput(J_MOREMATRIX, J_LINEAR_ALGEBRA)) { // ToDo: remove below here - for debug only Index dbg_nz = TripletHelper::GetNumberEntries(*augmented_system_); Index* dbg_iRows = new Index[dbg_nz]; Index* dbg_jCols = new Index[dbg_nz]; Number* dbg_values = new Number[dbg_nz]; TripletHelper::FillRowCol(dbg_nz, *augmented_system_, dbg_iRows, dbg_jCols); TripletHelper::FillValues(dbg_nz, *augmented_system_, dbg_values); Jnlst().Printf(J_MOREMATRIX, J_LINEAR_ALGEBRA, "******* KKT SYSTEM *******\n"); for (Index dbg_i=0; dbg_i > augmented_solV(nrhs); for (Index i=0; i augsol = augmented_vector_space_->MakeNewCompoundVector(); augsol->SetCompNonConst(0, *sol_xV[i]); augsol->SetCompNonConst(1, *sol_sV[i]); augsol->SetCompNonConst(2, *sol_cV[i]); augsol->SetCompNonConst(3, *sol_dV[i]); augmented_solV[i] = GetRawPtr(augsol); } ESymSolverStatus retval; retval = linsolver_->MultiSolve(*augmented_system_, augmented_rhsV, augmented_solV, check_NegEVals, numberOfNegEVals); if (retval==SYMSOLVER_SUCCESS) { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Factorization successful.\n"); for (Index i=0; iPrint(Jnlst(), J_MOREVECTOR, J_LINEAR_ALGEBRA, buffer); } } else { Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA, "Factorization failed with retval = %d\n", retval); } IpData().TimingStats().StdAugSystemSolverMultiSolve().End(); return retval; } void StdAugSystemSolver::CreateAugmentedSpace(const SymMatrix& W, const Matrix& J_c, const Matrix& J_d, const Vector& proto_x, const Vector& proto_s, const Vector& proto_c, const Vector& proto_d) { DBG_ASSERT(!IsValid(augmented_system_)); old_w_ = &W; //=== // Setup the augmented system matrix (described in IpAugSystemSolver.hpp") //=== // created the compound symmetric matrix space Index n_x = J_c.NCols(); Index n_s = J_d.NRows(); Index n_c = J_c.NRows(); Index n_d = n_s; Index total_nRows = n_x + n_s + n_c + n_d; augmented_system_space_ = new CompoundSymMatrixSpace(4, total_nRows); augmented_system_space_->SetBlockDim(0, n_x); augmented_system_space_->SetBlockDim(1, n_s); augmented_system_space_->SetBlockDim(2, n_c); augmented_system_space_->SetBlockDim(3, n_d); // (1,1) block // create the spaces and sum matrix for the upper left corner (W + D_x delta_x*I) // of the hessian part for the 1,1 block diag_space_x_ = new DiagMatrixSpace(n_x); sumsym_space_x_ = new SumSymMatrixSpace(n_x, 2); sumsym_space_x_->SetTermSpace(0, *W.OwnerSymMatrixSpace()); sumsym_space_x_->SetTermSpace(1, *diag_space_x_); augmented_system_space_->SetCompSpace(0,0, *sumsym_space_x_); // (2,2) block // create the spaces and diag matrix for the lower right corner (D_s + delta_s*I) // of the hessian part, the 2,2 block diag_space_s_ = new DiagMatrixSpace(n_s); augmented_system_space_->SetCompSpace(1,1, *diag_space_s_); // (3,1) block augmented_system_space_->SetCompSpace(2,0, *J_c.OwnerSpace()); // (3,3) block // create the matrix space and matrix for the 3,3 block diag_space_c_ = new DiagMatrixSpace(n_c); augmented_system_space_->SetCompSpace(2,2, *diag_space_c_); // (4,1) block augmented_system_space_->SetCompSpace(3,0, *J_d.OwnerSpace()); // (4,2) block // create the identity matrix space and matrix for the 4,2 block ident_space_ds_ = new IdentityMatrixSpace(n_s); augmented_system_space_->SetCompSpace(3,1, *ident_space_ds_); // (4,4) block // create the sum matrix space and matrix for the 4,4 block diag_space_d_ = new DiagMatrixSpace(n_d); augmented_system_space_->SetCompSpace(3,3, *diag_space_d_); // Create the space for the vectors augmented_vector_space_ = new CompoundVectorSpace(4, n_x + n_s + n_c + n_d); augmented_vector_space_->SetCompSpace(0, *proto_x.OwnerSpace()); augmented_vector_space_->SetCompSpace(1, *proto_s.OwnerSpace()); augmented_vector_space_->SetCompSpace(2, *proto_c.OwnerSpace()); augmented_vector_space_->SetCompSpace(3, *proto_d.OwnerSpace()); } void StdAugSystemSolver::CreateAugmentedSystem( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d, const Vector& proto_x, const Vector& proto_s, const Vector& proto_c, const Vector& proto_d) { augmented_system_ = augmented_system_space_->MakeNewCompoundSymMatrix(); // (1,1) block SmartPtr sumsym_x = sumsym_space_x_->MakeNewSumSymMatrix(); if (W) { sumsym_x->SetTerm(0, W_factor, *W); old_w_ = W; w_tag_ = W->GetTag(); } else { sumsym_x->SetTerm(0, 0.0, *old_w_); w_tag_ = TaggedObject::Tag(); } w_factor_ = W_factor; SmartPtr diag_x = diag_space_x_->MakeNewDiagMatrix(); if (D_x) { if (delta_x==0.) { diag_x->SetDiag(*D_x); } else { SmartPtr tmp = D_x->MakeNewCopy(); tmp->AddScalar(delta_x); diag_x->SetDiag(*tmp); } d_x_tag_ = D_x->GetTag(); } else { SmartPtr tmp = proto_x.MakeNew(); tmp->Set(delta_x); diag_x->SetDiag(*tmp); d_x_tag_ = TaggedObject::Tag(); } sumsym_x->SetTerm(1, 1.0, *diag_x); delta_x_ = delta_x; augmented_system_->SetComp(0,0, *sumsym_x); // (2,2) block SmartPtr diag_s = diag_space_s_->MakeNewDiagMatrix(); if (D_s) { if (delta_s==0.) { diag_s->SetDiag(*D_s); } else { SmartPtr tmp = D_s->MakeNewCopy(); tmp->AddScalar(delta_s); diag_s->SetDiag(*tmp); } d_s_tag_ = D_s->GetTag(); } else { SmartPtr tmp = proto_s.MakeNew(); tmp->Set(delta_s); diag_s->SetDiag(*tmp); d_s_tag_ = TaggedObject::Tag(); } delta_s_ = delta_s; augmented_system_->SetComp(1, 1, *diag_s); // (3,1) block augmented_system_->SetComp(2,0, J_c); j_c_tag_ = J_c.GetTag(); // (3,3) block SmartPtr diag_c = diag_space_c_->MakeNewDiagMatrix(); if (D_c) { if (delta_c==0.) { diag_c->SetDiag(*D_c); } else { SmartPtr tmp = D_c->MakeNewCopy(); tmp->AddScalar(-delta_c); diag_c->SetDiag(*tmp); } d_c_tag_ = D_c->GetTag(); } else { SmartPtr tmp = proto_c.MakeNew(); tmp->Set(-delta_c); diag_c->SetDiag(*tmp); d_c_tag_ = TaggedObject::Tag(); } delta_c_ = delta_c; augmented_system_->SetComp(2,2, *diag_c); // (4,1) block augmented_system_->SetComp(3,0, J_d); j_d_tag_ = J_d.GetTag(); // (4,2) block SmartPtr ident_ds = ident_space_ds_->MakeNewIdentityMatrix(); ident_ds->SetFactor(-1.0); augmented_system_->SetComp(3,1, *ident_ds); // (4,4) block SmartPtr diag_d = diag_space_d_->MakeNewDiagMatrix(); if (D_d) { if (delta_d==0.) { diag_d->SetDiag(*D_d); } else { SmartPtr tmp = D_d->MakeNewCopy(); tmp->AddScalar(-delta_d); diag_d->SetDiag(*tmp); } d_d_tag_ = D_d->GetTag(); } else { SmartPtr tmp = proto_d.MakeNew(); tmp->Set(-delta_d); diag_d->SetDiag(*tmp); d_d_tag_ = TaggedObject::Tag(); } delta_d_ = delta_d; augmented_system_->SetComp(3,3, *diag_d); augsys_tag_ = augmented_system_->GetTag(); } bool StdAugSystemSolver::AugmentedSystemRequiresChange( const SymMatrix* W, double W_factor, const Vector* D_x, double delta_x, const Vector* D_s, double delta_s, const Matrix& J_c, const Vector* D_c, double delta_c, const Matrix& J_d, const Vector* D_d, double delta_d) { DBG_START_METH("StdAugSystemSolver::AugmentedSystemRequiresChange",dbg_verbosity); DBG_ASSERT(augsys_tag_ == augmented_system_->GetTag() && "Someone has changed the augmented system outside of the AugSystemSolver. This should NOT happen."); #if COIN_IPOPT_VERBOSITY > 0 bool Wtest = (W && W->GetTag() != w_tag_); bool iWtest = (!W && w_tag_ != TaggedObject::Tag()); bool wfactor_test = (W_factor != w_factor_); bool D_xtest = (D_x && D_x->GetTag() != d_x_tag_); bool iD_xtest = (!D_x && d_x_tag_ != TaggedObject::Tag()); bool delta_xtest = (delta_x != delta_x_); bool D_stest = (D_s && D_s->GetTag() != d_s_tag_); bool iD_stest = (!D_s && d_s_tag_ != TaggedObject::Tag()); bool delta_stest = (delta_s != delta_s_); bool J_ctest = (J_c.GetTag() != j_c_tag_); bool D_ctest = (D_c && D_c->GetTag() != d_c_tag_); bool iD_ctest = (!D_c && d_c_tag_ != TaggedObject::Tag()); bool delta_ctest = (delta_c != delta_c_); bool J_dtest = (J_d.GetTag() != j_d_tag_); bool D_dtest = (D_d && D_d->GetTag() != d_d_tag_); bool iD_dtest = (!D_d && d_d_tag_ != TaggedObject::Tag()); bool delta_dtest = (delta_d != delta_d_); #endif DBG_PRINT((2,"Wtest = %d\n", Wtest)); DBG_PRINT((2,"iWtest = %d\n", iWtest)); DBG_PRINT((2,"wfactor_test = %d\n", wfactor_test)); DBG_PRINT((2,"D_xtest = %d\n", D_xtest)); DBG_PRINT((2,"iD_xtest = %d\n", iD_xtest)); DBG_PRINT((2,"delta_xtest = %d\n", delta_xtest)); DBG_PRINT((2,"D_stest = %d\n", D_stest)); DBG_PRINT((2,"iD_stest = %d\n", iD_stest)); DBG_PRINT((2,"delta_stest = %d\n", delta_stest)); DBG_PRINT((2,"J_ctest = %d\n", J_ctest)); DBG_PRINT((2,"D_ctest = %d\n", D_ctest)); DBG_PRINT((2,"iD_ctest = %d\n", iD_ctest)); DBG_PRINT((2,"delta_ctest = %d\n", delta_ctest)); DBG_PRINT((2,"J_dtest = %d\n", J_dtest)); DBG_PRINT((2,"D_dtest = %d\n", D_dtest)); DBG_PRINT((2,"iD_dtest = %d\n", iD_dtest)); DBG_PRINT((2,"delta_dtest = %d\n", delta_dtest)); if ( (W && W->GetTag() != w_tag_) || (!W && w_tag_ != TaggedObject::Tag()) || (W_factor != w_factor_) || (D_x && D_x->GetTag() != d_x_tag_) || (!D_x && d_x_tag_ != TaggedObject::Tag()) || (delta_x != delta_x_) || (D_s && D_s->GetTag() != d_s_tag_) || (!D_s && d_s_tag_ != TaggedObject::Tag()) || (delta_s != delta_s_) || (J_c.GetTag() != j_c_tag_) || (D_c && D_c->GetTag() != d_c_tag_) || (!D_c && d_c_tag_ != TaggedObject::Tag()) || (delta_c != delta_c_) || (J_d.GetTag() != j_d_tag_) || (D_d && D_d->GetTag() != d_d_tag_) || (!D_d && d_d_tag_ != TaggedObject::Tag()) || (delta_d != delta_d_) ) { return true; } return false; } Index StdAugSystemSolver::NumberOfNegEVals() const { DBG_ASSERT(IsValid(augmented_system_)); return linsolver_->NumberOfNegEVals(); } bool StdAugSystemSolver::ProvidesInertia() const { return linsolver_->ProvidesInertia(); } bool StdAugSystemSolver::IncreaseQuality() { return linsolver_->IncreaseQuality(); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/src/Algorithm/IpNLPBoundsRemover.cpp0000644000076600007660000003601012151613040021313 0ustar coincoin// Copyright (C) 2008, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpTNLP.hpp 1235 2008-05-22 14:38:40Z andreasw $ // // Authors: Andreas Waechter IBM 2008-08-25 #include "IpNLPBoundsRemover.hpp" #include "IpCompoundVector.hpp" #include "IpCompoundMatrix.hpp" #include "IpCompoundSymMatrix.hpp" #include "IpIdentityMatrix.hpp" #include "IpTransposeMatrix.hpp" #include "IpDenseVector.hpp" #include "IpZeroMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 0; #endif NLPBoundsRemover::NLPBoundsRemover(NLP& nlp, bool allow_twosided_inequalities /* = false */) : nlp_(&nlp), allow_twosided_inequalities_(allow_twosided_inequalities) {} bool NLPBoundsRemover::GetSpaces(SmartPtr& x_space, SmartPtr& c_space, SmartPtr& d_space, SmartPtr& x_l_space, SmartPtr& px_l_space, SmartPtr& x_u_space, SmartPtr& px_u_space, SmartPtr& d_l_space, SmartPtr& pd_l_space, SmartPtr& d_u_space, SmartPtr& pd_u_space, SmartPtr& Jac_c_space, SmartPtr& Jac_d_space, SmartPtr& Hess_lagrangian_space) { DBG_START_METH("NLPBoundsRemover::GetSpaces", dbg_verbosity); SmartPtr d_space_orig; SmartPtr x_l_space_orig; SmartPtr px_l_space_orig; SmartPtr x_u_space_orig; SmartPtr px_u_space_orig; SmartPtr d_l_space_orig; SmartPtr pd_l_space_orig; SmartPtr d_u_space_orig; SmartPtr pd_u_space_orig; SmartPtr Jac_d_space_orig; bool retval = nlp_->GetSpaces(x_space, c_space, d_space_orig, x_l_space_orig, px_l_space_orig, x_u_space_orig, px_u_space_orig, d_l_space_orig, pd_l_space_orig, d_u_space_orig, pd_u_space_orig, Jac_c_space, Jac_d_space_orig, Hess_lagrangian_space); if (!retval) { return retval; } // Keep a copy of the expansion matrices for the x bounds Px_l_orig_ = px_l_space_orig->MakeNew(); Px_u_orig_ = px_u_space_orig->MakeNew(); // create the new d_space Index total_dim = d_space_orig->Dim() + x_l_space_orig->Dim() + x_u_space_orig->Dim(); SmartPtr d_space_new = new CompoundVectorSpace(3, total_dim); d_space_new->SetCompSpace(0, *d_space_orig); d_space_new->SetCompSpace(1, *x_l_space_orig); d_space_new->SetCompSpace(2, *x_u_space_orig); d_space = GetRawPtr(d_space_new); // create the new (emply) x_l and x_u spaces, and also the // corresponding projection matrix spaces x_l_space = new DenseVectorSpace(0); x_u_space = new DenseVectorSpace(0); px_l_space = new ZeroMatrixSpace(x_space->Dim(),0); px_u_space = new ZeroMatrixSpace(x_space->Dim(),0); // create the new d_l and d_u vector spaces total_dim = d_l_space_orig->Dim() + x_l_space_orig->Dim(); SmartPtr d_l_space_new = new CompoundVectorSpace(2, total_dim); d_l_space_new->SetCompSpace(0, *d_l_space_orig); d_l_space_new->SetCompSpace(1, *x_l_space_orig); d_l_space = GetRawPtr(d_l_space_new); total_dim = d_u_space_orig->Dim() + x_u_space_orig->Dim(); SmartPtr d_u_space_new = new CompoundVectorSpace(2, total_dim); d_u_space_new->SetCompSpace(0, *d_u_space_orig); d_u_space_new->SetCompSpace(1, *x_u_space_orig); d_u_space = GetRawPtr(d_u_space_new); // create the new d_l and d_u projection matrix spaces Index total_rows = d_space_orig->Dim() + x_l_space_orig->Dim() + x_u_space_orig->Dim(); Index total_cols = d_l_space_orig->Dim() + x_l_space_orig->Dim(); SmartPtr pd_l_space_new = new CompoundMatrixSpace(3, 2, total_rows, total_cols); pd_l_space_new->SetBlockRows(0, d_space_orig->Dim()); pd_l_space_new->SetBlockRows(1, x_l_space_orig->Dim()); pd_l_space_new->SetBlockRows(2, x_u_space_orig->Dim()); pd_l_space_new->SetBlockCols(0, d_l_space_orig->Dim()); pd_l_space_new->SetBlockCols(1, x_l_space_orig->Dim()); pd_l_space_new->SetCompSpace(0, 0, *pd_l_space_orig, true); SmartPtr identity_space = new IdentityMatrixSpace(x_l_space_orig->Dim()); pd_l_space_new->SetCompSpace(1, 1, *identity_space, true); pd_l_space = GetRawPtr(pd_l_space_new); total_cols = d_u_space_orig->Dim() + x_u_space_orig->Dim(); SmartPtr pd_u_space_new = new CompoundMatrixSpace(3, 2, total_rows, total_cols); pd_u_space_new->SetBlockRows(0, d_space_orig->Dim()); pd_u_space_new->SetBlockRows(1, x_l_space_orig->Dim()); pd_u_space_new->SetBlockRows(2, x_u_space_orig->Dim()); pd_u_space_new->SetBlockCols(0, d_u_space_orig->Dim()); pd_u_space_new->SetBlockCols(1, x_u_space_orig->Dim()); pd_u_space_new->SetCompSpace(0, 0, *pd_u_space_orig, true); identity_space = new IdentityMatrixSpace(x_u_space_orig->Dim()); pd_u_space_new->SetCompSpace(2, 1, *identity_space, true); pd_u_space = GetRawPtr(pd_u_space_new); // Jacobian for inequalities matrix space total_rows = d_space_orig->Dim() + x_l_space_orig->Dim() + x_u_space_orig->Dim(); total_cols = x_space->Dim(); SmartPtr Jac_d_space_new = new CompoundMatrixSpace(3, 1, total_rows, total_cols); Jac_d_space_new->SetBlockRows(0, d_space_orig->Dim()); Jac_d_space_new->SetBlockRows(1, x_l_space_orig->Dim()); Jac_d_space_new->SetBlockRows(2, x_u_space_orig->Dim()); Jac_d_space_new->SetBlockCols(0, x_space->Dim()); Jac_d_space_new->SetCompSpace(0, 0, *Jac_d_space_orig); SmartPtr trans_px_l_space_orig = new TransposeMatrixSpace(GetRawPtr(px_l_space_orig)); Jac_d_space_new->SetCompSpace(1, 0, *trans_px_l_space_orig, true); SmartPtr trans_px_u_space_orig = new TransposeMatrixSpace(GetRawPtr(px_u_space_orig)); Jac_d_space_new->SetCompSpace(2, 0, *trans_px_u_space_orig, true); Jac_d_space = GetRawPtr(Jac_d_space_new); // We keep the original d_space around in order to be able to do // the sanity check later d_space_orig_ = d_space_orig; return true; } bool NLPBoundsRemover::GetBoundsInformation(const Matrix& Px_L, Vector& x_L, const Matrix& Px_U, Vector& x_U, const Matrix& Pd_L, Vector& d_L, const Matrix& Pd_U, Vector& d_U) { const CompoundMatrix* comp_pd_l = static_cast(&Pd_L); DBG_ASSERT(dynamic_cast(&Pd_L)); SmartPtr pd_l_orig = comp_pd_l->GetComp(0,0); const CompoundMatrix* comp_pd_u = static_cast(&Pd_U); DBG_ASSERT(dynamic_cast(&Pd_U)); SmartPtr pd_u_orig = comp_pd_u->GetComp(0,0); CompoundVector* comp_d_l = static_cast(&d_L); DBG_ASSERT(dynamic_cast(&d_L)); SmartPtr d_l_orig = comp_d_l->GetCompNonConst(0); SmartPtr x_l_orig = comp_d_l->GetCompNonConst(1); CompoundVector* comp_d_u = static_cast(&d_U); DBG_ASSERT(dynamic_cast(&d_U)); SmartPtr d_u_orig = comp_d_u->GetCompNonConst(0); SmartPtr x_u_orig = comp_d_u->GetCompNonConst(1); // Here we do a santiy check to make sure that no inequality // constraint has two non-infite bounds. if (d_space_orig_->Dim()>0 && !allow_twosided_inequalities_) { SmartPtr d = d_space_orig_->MakeNew(); SmartPtr tmp = d_l_orig->MakeNew(); tmp->Set(1.); pd_l_orig->MultVector(1., *tmp, 0., *d); tmp = d_u_orig->MakeNew(); tmp->Set(1.); pd_u_orig->MultVector(1., *tmp, 1., *d); Number dmax = d->Amax(); ASSERT_EXCEPTION(dmax==1., INVALID_NLP, "In NLPBoundRemover, an inequality with both lower and upper bounds was detected"); Number dmin = d->Min(); ASSERT_EXCEPTION(dmin==1., INVALID_NLP, "In NLPBoundRemover, an inequality with without bounds was detected."); } bool retval = nlp_->GetBoundsInformation(*Px_l_orig_, *x_l_orig, *Px_u_orig_, *x_u_orig, *pd_l_orig, *d_l_orig, *pd_u_orig, *d_u_orig); return retval; } bool NLPBoundsRemover::GetStartingPoint(SmartPtr x, bool need_x, SmartPtr y_c, bool need_y_c, SmartPtr y_d, bool need_y_d, SmartPtr z_L, bool need_z_L, SmartPtr z_U, bool need_z_U) { SmartPtr y_d_orig; SmartPtr z_L_orig; SmartPtr z_U_orig; if (need_y_d) { CompoundVector* comp_y_d = static_cast(GetRawPtr(y_d)); DBG_ASSERT(dynamic_cast(GetRawPtr(y_d))); y_d_orig = comp_y_d->GetCompNonConst(0); z_L_orig = comp_y_d->GetCompNonConst(1); z_U_orig = comp_y_d->GetCompNonConst(2); } bool retval = nlp_->GetStartingPoint(x, need_x, y_c, need_y_c, y_d_orig, need_y_d, z_L_orig, need_y_d, z_U_orig, need_y_d); return retval; } bool NLPBoundsRemover::Eval_d(const Vector& x, Vector& d) { CompoundVector* comp_d = static_cast(&d); DBG_ASSERT(dynamic_cast(&d)); SmartPtr d_orig = comp_d->GetCompNonConst(0); bool retval = nlp_->Eval_d(x, *d_orig); if (retval) { SmartPtr x_L = comp_d->GetCompNonConst(1); SmartPtr x_U = comp_d->GetCompNonConst(2); Px_l_orig_->TransMultVector(1., x, 0., *x_L); Px_u_orig_->TransMultVector(1., x, 0., *x_U); } return retval; } bool NLPBoundsRemover::Eval_jac_d(const Vector& x, Matrix& jac_d) { CompoundMatrix* comp_jac_d = static_cast(&jac_d); DBG_ASSERT(dynamic_cast(&jac_d)); SmartPtr jac_d_space = comp_jac_d->OwnerSpace(); const CompoundMatrixSpace* comp_jac_d_space = static_cast(GetRawPtr(jac_d_space)); DBG_ASSERT(dynamic_cast(GetRawPtr(jac_d_space))); SmartPtr jac_d_orig = comp_jac_d_space->GetCompSpace(0,0)->MakeNew(); bool retval = nlp_->Eval_jac_d(x, *jac_d_orig); if (retval) { comp_jac_d->SetComp(0, 0, *jac_d_orig); } return retval; } bool NLPBoundsRemover::Eval_h(const Vector& x, Number obj_factor, const Vector& yc, const Vector& yd, SymMatrix& h) { const CompoundVector* comp_yd = static_cast(&yd); DBG_ASSERT(dynamic_cast(&yd)); SmartPtr yd_orig = comp_yd->GetComp(0); bool retval = nlp_->Eval_h(x, obj_factor, yc, *yd_orig, h); return retval; } void NLPBoundsRemover::FinalizeSolution(SolverReturn status, const Vector& x, const Vector& z_L, const Vector& z_U, const Vector& c, const Vector& d, const Vector& y_c, const Vector& y_d, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { const CompoundVector* comp_d = static_cast(&d); DBG_ASSERT(dynamic_cast(&d)); SmartPtr d_orig = comp_d->GetComp(0); const CompoundVector* comp_y_d = static_cast(&y_d); DBG_ASSERT(dynamic_cast(&y_d)); SmartPtr y_d_orig = comp_y_d->GetComp(0); SmartPtr z_L_orig = comp_y_d->GetComp(1); SmartPtr z_U_orig = comp_y_d->GetComp(2); SmartPtr z_L_new = z_L_orig->MakeNewCopy(); z_L_new->Scal(-1.); nlp_->FinalizeSolution(status, x, *z_L_new, *z_U_orig, c, *d_orig, y_c, *y_d_orig, obj_value, ip_data, ip_cq); } void NLPBoundsRemover::GetScalingParameters( const SmartPtr x_space, const SmartPtr c_space, const SmartPtr d_space, Number& obj_scaling, SmartPtr& x_scaling, SmartPtr& c_scaling, SmartPtr& d_scaling) const { const CompoundVectorSpace* comp_d_space = static_cast(GetRawPtr(d_space)); DBG_ASSERT(dynamic_cast(GetRawPtr(d_space))); SmartPtr d_space_orig = comp_d_space->GetCompSpace(0); SmartPtr d_scaling_orig; nlp_->GetScalingParameters(x_space, c_space, d_space_orig, obj_scaling, x_scaling, c_scaling, d_scaling_orig); if (IsValid(x_scaling) || IsValid(d_scaling_orig)) { SmartPtr comp_d_scaling = comp_d_space->MakeNewCompoundVector(); SmartPtr xL_scaling = comp_d_scaling->GetCompNonConst(1); SmartPtr xU_scaling = comp_d_scaling->GetCompNonConst(2); if (IsValid(x_scaling)) { Px_l_orig_->TransMultVector(1., *x_scaling, 0., *xL_scaling); Px_u_orig_->TransMultVector(1., *x_scaling, 0., *xU_scaling); } else { xL_scaling->Set(1.); xU_scaling->Set(1.); } if (IsValid(d_scaling_orig)) { comp_d_scaling->SetComp(0, *d_scaling_orig); } else { comp_d_scaling->GetCompNonConst(0)->Set(1.); } d_scaling = GetRawPtr(comp_d_scaling); } else { d_scaling = NULL; } } } Ipopt-3.11.4/Ipopt/src/Algorithm/IpIpoptAlg.hpp0000644000076600007660000001717412116344132017711 0ustar coincoin// Copyright (C) 2004, 2010 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpIpoptAlg.hpp 2167 2013-03-08 11:15:38Z stefan $ // // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 #ifndef __IPIPOPTALG_HPP__ #define __IPIPOPTALG_HPP__ #include "IpIpoptNLP.hpp" #include "IpAlgStrategy.hpp" #include "IpSearchDirCalculator.hpp" #include "IpLineSearch.hpp" #include "IpMuUpdate.hpp" #include "IpConvCheck.hpp" #include "IpOptionsList.hpp" #include "IpIterateInitializer.hpp" #include "IpIterationOutput.hpp" #include "IpAlgTypes.hpp" #include "IpHessianUpdater.hpp" #include "IpEqMultCalculator.hpp" namespace Ipopt { /** @name Exceptions */ //@{ DECLARE_STD_EXCEPTION(STEP_COMPUTATION_FAILED); //@} /** The main ipopt algorithm class. * Main Ipopt algorithm class, contains the main optimize method, * handles the execution of the optimization. * The constructor initializes the data structures through the nlp, * and the Optimize method then assumes that everything is * initialized and ready to go. * After an optimization is complete, the user can access the * solution through the passed in ip_data structure. * Multiple calls to the Optimize method are allowed as long as the * structure of the problem remains the same (i.e. starting point * or nlp parameter changes only). */ class IpoptAlgorithm : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Constructor. (The IpoptAlgorithm uses smart pointers for these * passed-in pieces to make sure that a user of IpoptAlgoroithm * cannot pass in an object created on the stack!) */ IpoptAlgorithm(const SmartPtr& search_dir_calculator, const SmartPtr& line_search, const SmartPtr& mu_update, const SmartPtr& conv_check, const SmartPtr& iterate_initializer, const SmartPtr& iter_output, const SmartPtr& hessian_updater, const SmartPtr& eq_multiplier_calculator = NULL); /** Default destructor */ virtual ~IpoptAlgorithm(); //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Main solve method. */ SolverReturn Optimize(bool isResto = false); /** Methods for IpoptType */ //@{ static void RegisterOptions(SmartPtr roptions); //@} /**@name Access to internal strategy objects */ //@{ SmartPtr SearchDirCalc() { return search_dir_calculator_; } //@} static void print_copyright_message(const Journalist& jnlst); private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Default Constructor */ IpoptAlgorithm(); /** Copy Constructor */ IpoptAlgorithm(const IpoptAlgorithm&); /** Overloaded Equals Operator */ void operator=(const IpoptAlgorithm&); //@} /** @name Strategy objects */ //@{ SmartPtr search_dir_calculator_; SmartPtr line_search_; SmartPtr mu_update_; SmartPtr conv_check_; SmartPtr iterate_initializer_; SmartPtr iter_output_; SmartPtr hessian_updater_; /** The multipler calculator (for y_c and y_d) has to be set only * if option recalc_y is set to true */ SmartPtr eq_multiplier_calculator_; //@} /** @name Main steps of the algorthim */ //@{ /** Method for updating the current Hessian. This can either just * evaluate the exact Hessian (based on the current iterate), or * perform a quasi-Newton update. */ void UpdateHessian(); /** Method to update the barrier parameter. Returns false, if the * algorithm can't continue with the regular procedure and needs * to revert to a fallback mechanism in the line search (such as * restoration phase) */ bool UpdateBarrierParameter(); /** Method to setup the call to the PDSystemSolver. Returns * false, if the algorithm can't continue with the regular * procedure and needs to revert to a fallback mechanism in the * line search (such as restoration phase) */ bool ComputeSearchDirection(); /** Method computing the new iterate (usually vialine search). * The acceptable point is the one in trial after return. */ void ComputeAcceptableTrialPoint(); /** Method for accepting the trial point as the new iteration, * possibly after adjusting the variable bounds in the NLP. */ void AcceptTrialPoint(); /** Do all the output for one iteration */ void OutputIteration(); /** Sets up initial values for the iterates, * Corrects the initial values for x and s (force in bounds) */ void InitializeIterates(); /** Print the problem size statistics */ void PrintProblemStatistics(); /** Compute the Lagrangian multipliers for a feasibility problem*/ void ComputeFeasibilityMultipliers(); //@} /** @name internal flags */ //@{ /** Flag indicating if the statistic should not be printed */ bool skip_print_problem_stats_; //@} /** @name Algorithmic parameters */ //@{ /** safeguard factor for bound multipliers. If value >= 1, then * the dual variables will never deviate from the primal estimate * by more than the factors kappa_sigma and 1./kappa_sigma. */ Number kappa_sigma_; /** Flag indicating whether the y multipliers should be * recalculated with the eq_mutliplier_calculator object for each * new point. */ bool recalc_y_; /** Feasibility threshold for recalc_y */ Number recalc_y_feas_tol_; /** Flag indicating if we want to do Mehrotras's algorithm. This * means that a number of options are ignored, or have to be set * (or are automatically set) to certain values. */ bool mehrotra_algorithm_; /** String specifying linear solver */ std::string linear_solver_; //@} /** @name auxiliary functions */ //@{ void calc_number_of_bounds( const Vector& x, const Vector& x_L, const Vector& x_U, const Matrix& Px_L, const Matrix& Px_U, Index& n_tot, Index& n_only_lower, Index& n_both, Index& n_only_upper); /** Method for ensuring that the trial multipliers are not too far * from the primal estime. If a correction is made, new_trial_z * is a pointer to the corrected multiplier, and the return value * of this method give the magnitutde of the largest correction * that we done. If no correction was made, new_trial_z is just * a pointer to trial_z, and the return value is zero. */ Number correct_bound_multiplier(const Vector& trial_z, const Vector& trial_slack, const Vector& trial_compl, SmartPtr& new_trial_z); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/src/Algorithm/IpHessianUpdater.hpp0000644000076600007660000000344111504216567021113 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: IpHessianUpdater.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Authors: Andreas Waechter IBM 2005-12-26 #ifndef __IPHESSIANUPDATER_HPP__ #define __IPHESSIANUPDATER_HPP__ #include "IpAlgStrategy.hpp" namespace Ipopt { /** Abstract base class for objects responsible for updating the * Hessian information. This can be done using exact second * derivatives from the NLP, or by a quasi-Newton Option. The * result is put into the W field in IpData. */ class HessianUpdater : public AlgorithmStrategyObject { public: /**@name Constructors/Destructors */ //@{ /** Default Constructor */ HessianUpdater() {} /** Default destructor */ virtual ~HessianUpdater() {} //@} /** overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) = 0; /** Update the Hessian based on the current information in IpData, * and possibly on information from previous calls. */ virtual void UpdateHessian() = 0; private: /**@name Default Compiler Generated Methods * (Hidden to avoid implicit creation/calling). * These methods are not implemented and * we do not want the compiler to implement * them for us, so we declare them private * and do not define them. This ensures that * they will not be implicitly created/called. */ //@{ /** Copy Constructor */ HessianUpdater(const HessianUpdater&); /** Overloaded Equals Operator */ void operator=(const HessianUpdater&); //@} }; } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/depcomp0000755000076600007660000003710011413700257014022 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/Ipopt/MSVisualStudio/0000755000076600007660000000000012214537465015350 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/BinaryDLL-Link-Example/0000755000076600007660000000000012214537465021414 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/BinaryDLL-Link-Example/BinaryDLL-Link-Example.vcproj0000644000076600007660000001063411272101126026671 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/BinaryDLL-Link-Example/README.TXT0000644000076600007660000000140511272276116022746 0ustar coincoinTo compile this file using MSVC, retrieve the appropriate Ipopt-3.x.y-win32-dll.zip file from the binary distribution of Ipopt, and unpack its contents into the BinaryDLL-Link-Example directory of the Ipopt distribution. This will allow you to compile and link the example program using MSVC. To run it you should copy the correct version of the Ipopt dll in the directory where the compiled executable is located. Please note that the debug and release versions of the Ipopt dll are *not* binary compatible, because the MSVC compiler treats std::string arguments of methods in the Ipopt C++ interface slightly differently. Using a release dll in debug code and vice versa will propably lead to stack corruption, runtime errors, or other hard-to-explain crashes. Ipopt-3.11.4/Ipopt/MSVisualStudio/BinaryDLL-Link-Example/BinaryDLL-Link-Example.sln0000644000076600007660000000162111272101126026156 0ustar coincoin Microsoft Visual Studio Solution File, Format Version 9.00 # Visual C++ Express 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BinaryDLL-Link-Example", "BinaryDLL-Link-Example.vcproj", "{AD0EF32C-C047-4D7C-BF7A-2CA98EDC43E3}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {AD0EF32C-C047-4D7C-BF7A-2CA98EDC43E3}.Debug|Win32.ActiveCfg = Debug|Win32 {AD0EF32C-C047-4D7C-BF7A-2CA98EDC43E3}.Debug|Win32.Build.0 = Debug|Win32 {AD0EF32C-C047-4D7C-BF7A-2CA98EDC43E3}.Release|Win32.ActiveCfg = Release|Win32 {AD0EF32C-C047-4D7C-BF7A-2CA98EDC43E3}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/0000755000076600007660000000000012214537465017026 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt-ifort.sln0000644000076600007660000003150312150270140021701 0ustar coincoin Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ipopt-vc8", "IpOpt\IpOpt.vcproj", "{0D00FBF3-689A-4C06-8F5E-5319463C5ADA}" ProjectSection(ProjectDependencies) = postProject {6C68626D-C869-4907-BBCE-6F4D3B9620D9} = {6C68626D-C869-4907-BBCE-6F4D3B9620D9} EndProjectSection EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "CoinLapack", "CoinLapack\CoinLapack.vfproj", "{97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}" EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "CoinBlas", "CoinBlas\CoinBlas.vfproj", "{426C24C0-6141-4556-9243-DAFCCE59741B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoinMetis", "CoinMetis\CoinMetis.vcproj", "{C491DA47-C32E-4D5C-983A-3FB4F349B361}" EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "CoinMumpsF90", "CoinMumps\CoinMumpsF90.vfproj", "{1E73FE2D-F99A-4D47-912C-73412A47BEF9}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoinMumpsC", "CoinMumpsC\CoinMumpsC.vcproj", "{F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}" EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "IpOptFor", "IpOptFor\IpOptFor.vfproj", "{884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}" EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "libhsl", "libhsl\libhsl.vfproj", "{CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}" EndProject Project("{6989167D-11E4-40FE-8C1A-2192A86A7E90}") = "libhsl-no-MA57", "libhsl-no-MA57\libhsl-no-MA57.vfproj", "{216BB389-6C3C-45E5-A6AF-41D6FBD7D171}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hs071_cpp-vc8", "hs071_cpp\hs071_cpp.vcproj", "{84B04F75-86DB-4056-8A02-6A2374E72A4E}" ProjectSection(ProjectDependencies) = postProject {0D00FBF3-689A-4C06-8F5E-5319463C5ADA} = {0D00FBF3-689A-4C06-8F5E-5319463C5ADA} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IpOptFSS", "IpOptFSS\IpOptFSS.vcproj", "{6C68626D-C869-4907-BBCE-6F4D3B9620D9}" ProjectSection(ProjectDependencies) = postProject {1E73FE2D-F99A-4D47-912C-73412A47BEF9} = {1E73FE2D-F99A-4D47-912C-73412A47BEF9} {C491DA47-C32E-4D5C-983A-3FB4F349B361} = {C491DA47-C32E-4D5C-983A-3FB4F349B361} {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1} = {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1} {426C24C0-6141-4556-9243-DAFCCE59741B} = {426C24C0-6141-4556-9243-DAFCCE59741B} {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E} = {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E} {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1} = {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 ReleaseMKL|Win32 = ReleaseMKL|Win32 ReleaseMKL|x64 = ReleaseMKL|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|Win32.ActiveCfg = Debug|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|Win32.Build.0 = Debug|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|x64.ActiveCfg = Debug|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|x64.Build.0 = Debug|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|Win32.ActiveCfg = Release|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|Win32.Build.0 = Release|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|x64.ActiveCfg = Release|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|x64.Build.0 = Release|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Debug|Win32.ActiveCfg = Debug|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Debug|Win32.Build.0 = Debug|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Debug|x64.ActiveCfg = Debug|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Debug|x64.Build.0 = Debug|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Release|Win32.ActiveCfg = Release|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Release|Win32.Build.0 = Release|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Release|x64.ActiveCfg = Release|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.Release|x64.Build.0 = Release|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {97E4A8DA-C94F-459D-AD7B-58DC5A8810D1}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.Debug|Win32.ActiveCfg = Debug|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.Debug|Win32.Build.0 = Debug|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.Debug|x64.ActiveCfg = Debug|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.Debug|x64.Build.0 = Debug|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.Release|Win32.ActiveCfg = Release|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.Release|Win32.Build.0 = Release|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.Release|x64.ActiveCfg = Release|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.Release|x64.Build.0 = Release|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {426C24C0-6141-4556-9243-DAFCCE59741B}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {426C24C0-6141-4556-9243-DAFCCE59741B}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Debug|Win32.ActiveCfg = Debug|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Debug|Win32.Build.0 = Debug|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Debug|x64.ActiveCfg = Debug|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Debug|x64.Build.0 = Debug|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Release|Win32.ActiveCfg = Release|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Release|Win32.Build.0 = Release|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Release|x64.ActiveCfg = Release|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.Release|x64.Build.0 = Release|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {C491DA47-C32E-4D5C-983A-3FB4F349B361}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Debug|Win32.ActiveCfg = Debug|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Debug|Win32.Build.0 = Debug|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Debug|x64.ActiveCfg = Debug|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Debug|x64.Build.0 = Debug|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Release|Win32.ActiveCfg = Release|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Release|Win32.Build.0 = Release|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Release|x64.ActiveCfg = Release|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.Release|x64.Build.0 = Release|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {1E73FE2D-F99A-4D47-912C-73412A47BEF9}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Debug|Win32.ActiveCfg = Debug|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Debug|Win32.Build.0 = Debug|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Debug|x64.ActiveCfg = Debug|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Debug|x64.Build.0 = Debug|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Release|Win32.ActiveCfg = Release|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Release|Win32.Build.0 = Release|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Release|x64.ActiveCfg = Release|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.Release|x64.Build.0 = Release|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {F5CAACB0-B4CC-4A8C-9E0C-7CFC621488B1}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Debug|Win32.ActiveCfg = Debug|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Debug|Win32.Build.0 = Debug|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Debug|x64.ActiveCfg = Debug|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Debug|x64.Build.0 = Debug|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Release|Win32.ActiveCfg = Release|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Release|Win32.Build.0 = Release|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Release|x64.ActiveCfg = Release|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.Release|x64.Build.0 = Release|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {884D1BD4-FE2B-4ED9-9694-3472E7BAE73E}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.Debug|Win32.ActiveCfg = Debug|Win32 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.Debug|x64.ActiveCfg = Debug|x64 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.Release|Win32.ActiveCfg = Release|Win32 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.Release|x64.ActiveCfg = Release|x64 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {CBC96FE8-7E9C-414E-86C7-09D5EB5AE135}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Debug|Win32.ActiveCfg = Debug|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Debug|Win32.Build.0 = Debug|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Debug|x64.ActiveCfg = Debug|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Debug|x64.Build.0 = Debug|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Release|Win32.ActiveCfg = Release|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Release|Win32.Build.0 = Release|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Release|x64.ActiveCfg = Release|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.Release|x64.Build.0 = Release|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {216BB389-6C3C-45E5-A6AF-41D6FBD7D171}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|Win32.ActiveCfg = Debug|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|Win32.Build.0 = Debug|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|x64.ActiveCfg = Debug|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|x64.Build.0 = Debug|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|Win32.ActiveCfg = Release|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|Win32.Build.0 = Release|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|x64.ActiveCfg = Release|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|x64.Build.0 = Release|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Debug|Win32.ActiveCfg = Debug|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Debug|Win32.Build.0 = Debug|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Debug|x64.ActiveCfg = Debug|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Debug|x64.Build.0 = Debug|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Release|Win32.ActiveCfg = Release|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Release|Win32.Build.0 = Release|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Release|x64.ActiveCfg = Release|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.Release|x64.Build.0 = Release|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {6C68626D-C869-4907-BBCE-6F4D3B9620D9}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMetis/0000755000076600007660000000000012214537465020720 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMetis/strings.h0000644000076600007660000000062111504216567022557 0ustar coincoin// Copyright (C) 2009 Paragon Decision Technology B.V. // All Rights Reserved. // This code is published under the Eclipse Public License. // // Authors: Marcel Roelofs Paragon Decision Technology B.V. 2009-10-25 // Dummy include file to account for missing strings.h header file used in Metis source in MSVC 8. #ifndef _INCLUDED_STRINGS_H_ #define _INCLUDED_STRINGS_H_ #include #endif Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMetis/CoinMetis.vcproj0000644000076600007660000003464012150270140024025 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMetis/CoinMetis.icproj0000644000076600007660000000053311271613727024021 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/0000755000076600007660000000000012214537465020061 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/ExportBinaries.bat0000644000076600007660000000665712150270140023504 0ustar coincoinrem @echo off echo ExportBinaries %1 %2 %3 mkdir ..\include\coin\ del ..\include\coin\*.* /q mkdir ..\include\coin\ copy ..\..\..\src\LinAlg\IpVector.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\config_ipopt_default.h ..\include\coin\ /Y copy ..\IpOpt\config_ipopt.h ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpAlgTypes.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpCachedResults.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpDebug.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpException.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpIpoptApplication.hpp ..\include\coin\ /Y copy ..\..\..\src\Algorithm\IpIpoptCalculatedQuantities.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpJournalist.hpp ..\include\coin\ /Y copy ..\..\..\src\LinAlg\IpMatrix.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpNLP.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpObserver.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpoptConfig.h ..\include\coin\ /Y copy ..\..\..\src\Common\IpOptionsList.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpReferenced.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpRegOptions.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpReturnCodes.h ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpReturnCodes.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpReturnCodes.inc ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpReturnCodes_inc.h ..\include\coin\ /Y copy ..\..\..\src\Common\IpSmartPtr.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpSolveStatistics.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpStdCInterface.h ..\include\coin\ /Y copy ..\..\..\src\LinAlg\IpSymMatrix.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpTaggedObject.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpTimedTask.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpTNLP.hpp ..\include\coin\ /Y copy ..\..\..\src\Interfaces\IpTNLPReducer.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpTypes.hpp ..\include\coin\ /Y copy ..\..\..\src\Common\IpUtils.hpp ..\include\coin\ /Y mkdir ..\lib\%1\%2\ del ..\lib\%1\%2\*.* /q mkdir ..\lib\%1\%2\ if %1 == x64 goto x64 if not %2 == ReleaseMKL goto skipRTLib32 copy %3\lib\ia32\libiomp5md.dll ..\lib\%1\%2\ /y copy "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\*.dll" ..\lib\%1\%2\ /y :skipRTLib32 copy ..\%2\Ipopt*.dll ..\lib\%1\%2\ /y copy ..\%2\*.exe ..\lib\%1\%2\ /y copy ..\%2\Ipopt*.lib ..\lib\%1\%2\ /y goto readme :x64 if not %2 == ReleaseMKL goto skipRTLib64 copy %3\lib\intel64\libiomp5md.dll ..\lib\%1\%2 /y copy "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x64\Microsoft.VC100.CRT\*.dll" ..\lib\%1\%2\ /y :skipRTLib64 copy ..\%1\%2\Ipopt*.dll ..\lib\%1\%2 /y copy ..\%1\%2\*.exe ..\lib\%1\%2 /y copy ..\%1\%2\Ipopt*.lib ..\lib\%1\%2 /y :readme copy ..\IpOpt\README-LIB.TXT ..\lib\README.TXT /y Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/README-LIB.TXT0000644000076600007660000000455312150270140022011 0ustar coincoinThe DLLs in this directory export the C interface of the Ipopt solver, as well as its C++ interface (which can be accessed via the IpoptApplicationFactory method). By linking against the import library you can use these DLLs from within any code compiled using the MSVC 2005/2008/2010 and/or Intel compilers for the Windows platform. The DLLs include the MUMPS solver by default, and can dynamically load a separate DLL containing the (non-free) HSL solvers if available. If you have access to the HSL solver sources, you have to compile the DLL for the HSL solvers yourself. The v8-ifort directory in the Ipopt source distribution contains a separate libhsl project to create the DLL using the Intel fortran compiler. Alternatively, you can compile libhsl using f2c and C++ (cf. the v8 MSVC project). To use these DLLs, you need to add the include\coin directory to the include path of your MSVC project. In addition, you have to make sure that you have HAVE_CONFIG_H defined in your project, and that the Ipopt import library for your platform is added to list of linker inputs of your project. To run your program, you have to copy the correct Ipopt DLL and all necessary runtime DLLs for your platform and configuration to the directory where your executable is located. Please note that the debug and release versions of the Ipopt DLL are *not* binary compatible, because the MSVC compiler unfortunately treats std::string objects slightly differently in both configurations. Using a release DLL in debug code and vice versa will therefore propably lead to stack corruption, runtime errors, or other hard-to-explain crashes. This binary distribution only contains the optimized MKL version of the Fortran solver DLL IpoptFSS.dll. You can re-use this for any configuration of the Ipopt solver itself (Debug/Release, MSVC 2005/2008/2010). It also contains just the Release versions of the Ipopt solver itself plus all necessary MSVC runtime DLLs. Because the Debug runtime DLLs of MSVC are not redistributable, you have to build the Debug configurations of the Ipopt solver yourself using the v8-ifort MSVC solution, if you are developing Debug versions of your own software using the Ipopt solver. When doing so, you can safely link against the MKL release version of IpoptFSS.dll. Author: Marcel Roelofs (Marcel.Roelofs at aimms.com) Paragon Decision Technology 2013-05-24 Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IpOpt.vcproj0000644000076600007660000013332712210647763022351 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/config_ipopt.h0000644000076600007660000000025211702540317022700 0ustar coincoin#include "config_ipopt_default.h" /* Define to the C type corresponding to Fortran INTEGER */ #ifndef FORTRAN_INTEGER_TYPE #define FORTRAN_INTEGER_TYPE int #endif Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IpOpt.rc0000644000076600007660000000521511702531663021440 0ustar coincoin// Microsoft Visual C++ generated resource script. // #include "resource.h" #include "config.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION IPOPT_RESOURCE_VERSION PRODUCTVERSION IPOPT_RESOURCE_VERSION FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "Comments", "Source code of Ipopt can be found at http://www.coin-or.org/projects/Ipopt.xml" VALUE "CompanyName", "IBM" VALUE "FileDescription", "Ipopt Dynamic Link Library" VALUE "FileVersion", __xstr__(IPOPT_RESOURCE_VERSION) VALUE "InternalName", "Ipopt" VALUE "LegalCopyright", "Copyright (C) 2008 International Business Machines and others." VALUE "LegalTrademarks", "All Rights Reserved. This code is published under the Eclipse Public License." VALUE "OriginalFilename", " Ipopt.dll" VALUE "ProductName", "Ipopt Dynamic Link Library" VALUE "ProductVersion", __xstr__(IPOPT_RESOURCE_VERSION) END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IpOpt-vc10.vcxproj0000644000076600007660000011731612210647763023310 0ustar coincoin Debug Win32 Debug x64 ReleaseMKL Win32 ReleaseMKL x64 Release Win32 Release x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA} IpOpt Win32Proj DynamicLibrary MultiByte true DynamicLibrary MultiByte true DynamicLibrary MultiByte DynamicLibrary MultiByte true DynamicLibrary MultiByte true DynamicLibrary MultiByte <_ProjectFileVersion>10.0.30319.1 $(SolutionDir)$(Configuration)\ $(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Configuration)\ $(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Configuration)\ $(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ Disabled .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL Level3 EditAndContinue $(OutDir)$(ProjectName).dll ../lib/$(Platform)/ReleaseMKL;%(AdditionalLibraryDirectories) libcmt.lib;%(IgnoreSpecificDefaultLibraries) true $(OutDir)$(ProjectName).pdb $(OutDir)$(ProjectName).lib ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 Disabled .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).dll ../lib/$(Platform)/ReleaseMKL;%(AdditionalLibraryDirectories) libcmt.lib;%(IgnoreSpecificDefaultLibraries) true $(OutDir)$(ProjectName).pdb $(OutDir)$(ProjectName).lib ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase NotSet $(OutDir)$(ProjectName).dll ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)$(ProjectName).pdb $(OutDir)$(ProjectName).lib ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase NotSet $(OutDir)$(ProjectName).dll ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)$(ProjectName).pdb $(OutDir)$(ProjectName).lib ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL true Level3 ProgramDatabase NotSet $(OutDir)$(ProjectName).dll ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)$(ProjectName).pdb true $(OutDir)$(ProjectName).lib ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 .;../../../src/Algorithm;../../../src/Algorithm/Inexact;../../../src/Algorithm/LinearSolvers;../../../src/Common;../../../src/Contrib/CGPenalty;../../../src/Contrib/LinearSolverLoader;../../../src/Interfaces;../../../src/Linalg;../../../src/Linalg/TMatrices;../../../../Thirdparty/Mumps/MUMPS/libseq;../../../../Thirdparty/Mumps/MUMPS/include;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) IPOPT_BUILD;IPOPT_DLL;WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;HAVE_WINDOWS_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase NotSet $(OutDir)$(ProjectName).dll ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)$(ProjectName).pdb $(OutDir)$(ProjectName).lib MachineX64 ipoptfss.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) _MSC_VER;%(PreprocessorDefinitions) ../../../src/Common;../../../../BuildTools/headers;%(AdditionalIncludeDirectories) Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IpOpt.icproj0000644000076600007660000000052311271613727022322 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IntelPaths.props0000644000076600007660000000106211702572637023221 0ustar coincoin C:\Program Files (x86)\Intel\Compiler\11.1\060 <_ProjectFileVersion>10.0.30319.1 $(INTEL_COMPILER_PATH) Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/config.h0000644000076600007660000000122311702540317021464 0ustar coincoin#include "config_default.h" /* If defined, the METIS library is available. */ #define COIN_HAS_METIS 1 /* If defined, the MUMPS Library is available. */ #define COIN_HAS_MUMPS 1 #undef COIN_HAS_HSL /* Define to 1 if the linear solver loader should be compiled to allow dynamic loading of shared libaries with linear solvers */ #define HAVE_LINEARSOLVERLOADER 1 /* Define to 1 if Pardiso is available */ #undef HAVE_PARDISO #define HAVE_CSTDDEF 1 #define SHAREDLIBEXT ".dll" #define __str__(s) #s #define __xstr__(s) __str__(s) #define IPOPT_RESOURCE_VERSION IPOPT_VERSION_MAJOR,IPOPT_VERSION_MINOR,IPOPT_VERSION_RELEASE,0 Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IntelPaths.vsprops0000644000076600007660000000042711370232565023570 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/IpOpt-vc10.vcxproj.filters0000644000076600007660000005017212141450650024741 0ustar coincoin {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3209bc2b-48b9-4b0c-9ee1-abab00c4f870} {da82bfdb-055e-4ada-9c12-bc6a9a23e24c} {ac7eee80-c73a-4b66-95b0-4f8954ea0868} {01836a2f-5173-4bd6-9544-5a1bf1fe3706} {cad9a14a-e7dd-49f7-97d3-946b04f7b7b3} {37eccc5b-8069-46db-89dd-fe002e50cd5c} {465e5f39-713a-45e1-9362-a45f7ee55563} {2c7542d8-5ac8-40de-8aef-8f27a70c1474} {a3c735ba-d160-4ca8-847d-103b6d196d91} {a3524758-cf24-4298-96bc-b1c87e9b80dd} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\Inexact Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Algorithm\LinearSolver Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\CGPenalty Source Files\Contrib\LinearSolverLoader Source Files\Contrib\LinearSolverLoader Source Files\Contrib\LinearSolverLoader Source Files\Interfaces Source Files\Interfaces Source Files\Interfaces Source Files\Interfaces Source Files\Interfaces Source Files\Interfaces Source Files\Interfaces Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg Source Files\LinAlg\TMatrices Source Files\LinAlg\TMatrices Source Files\LinAlg\TMatrices Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\LinAlg\TMatrices Source Files\LinAlg\TMatrices Source Files\LinAlg\TMatrices Header Files Header Files Resource Files Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt/resource.h0000644000076600007660000000060111271613727022054 0ustar coincoin//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by IpOpt.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/hs071_cpp/0000755000076600007660000000000012214537465020532 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/hs071_cpp/hs071_cpp-vc10.vcxproj0000644000076600007660000004126712150270140024413 0ustar coincoin Debug Win32 Debug x64 ReleaseMKL Win32 ReleaseMKL x64 Release Win32 Release x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E} hs071_cpp Win32Proj Application MultiByte Application MultiByte Application MultiByte Application MultiByte Application MultiByte Application MultiByte <_ProjectFileVersion>10.0.30319.1 $(SolutionDir)$(Configuration)\ $(Configuration)\ true $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true $(SolutionDir)$(Configuration)\ $(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false $(SolutionDir)$(Configuration)\ $(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false Disabled ..\include\coin;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL Level3 EditAndContinue $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)hs071_cpp.pdb Console MachineX86 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 Disabled ..\include\coin;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true $(OutDir)hs071_cpp.pdb Console MachineX64 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" ..\include\coin;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true Console true true MachineX86 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 ..\include\coin;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true Console true true MachineX64 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" ..\include\coin;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true Console true true MachineX86 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" X64 ..\include\coin;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions) MultiThreadedDLL Level3 ProgramDatabase $(OutDir)$(ProjectName).exe ../lib/$(Platform)/$(Configuration);%(AdditionalLibraryDirectories) true Console true true MachineX64 ipopt-vc10.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) ..\IpOpt\ExportBinaries.bat $(PlatformName) $(ConfigurationName) "$(INTEL_COMPILER_PATH)" {0d00fbf3-689a-4c06-8f5e-5319463c5ada} false Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/hs071_cpp/hs071_cpp.vcproj0000644000076600007660000002655212150270140023454 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinLapack/0000755000076600007660000000000012214537465021032 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinLapack/CoinLapack.vfproj0000644000076600007660000003246412150270140024256 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMumps/0000755000076600007660000000000012214537465020740 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMumps/CoinMumpsF90.vfproj0000644000076600007660000001620212150270140024341 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/README.TXT0000644000076600007660000000737112150270140020353 0ustar coincoinThis file describes how to use the Microsoft Visual Studio 2005 and 2010 project files included in the subdirectories in order to compile a DLL version of Ipopt both for MSVC 2005 and 2010. These DLLs include the BLAS, LAPACK and MUMPS solvers which can be freely distributed. Alternatively, the solution contains a configuration where the resulting DLL uses the (optimized, multi-threaded) Intel MKL versions of the BLAS and LAPACK libraries rather than the netlib versions. The current configuration requires MSVC 2005 and the Intel Fortran compiler to compile the Fortran 90 sources of the MUMPS solver. However, the resulting code DLL can be used both by MSVC 2005/2008 and MSVC 2010. The non-free HSL and PARDISO solvers can be dynamically added at runtime by compiling these solvers into separate DLLs that are dynamically loaded by the Ipopt DLL when these solvers are selected. A separate project to compile the HSL dll is included in the Visual Studio solution. The resulting DLLs (which are available for download from the COIN-OR site), can be used in any Visual Studio project without the need for a Fortran compiler to compile the Ipopt solver components. This project itself relies on the Intel Fortran compiler to compile the third party Fortran components (especially since the MUMPS solver uses F90). The solution contains project files for both the MSVC C++ compiler or the Intel C++ compiler. The binary distribution only contains the optimized MKL version of the Fortran solver DLL IpoptFSS.dll, which can be re-used by all configurations of the Ipopt solver project itself. The latter only require a working MSVC compiler. Below, BASDIR refers to the basic directory of your downloaded Ipopt package. This is the directory where you find subdirectories like "BuildTools" Here are the steps: 1. Download the Blas, Lapack, and MUMPS and Metis source code as usual; read the INSTALL files in the appropriate subdirectories of BASDIR\ThirdParty 2. Edit the file BASDIR\Ipopt\MSVisualStudio\v8-ifort\Ipopt\IntelPaths.vsprops to reflect the base path to the Intel compiler on your computer to allow the link step succeed in finding the appropriate libraries. You will only need to set these if you want to compile IpoptFSS.dll yourself. 3. Now you can open the solution file BASDIR\Ipopt\MSVisualStudio\v8-ifort\IpOpt-ifort.sln After selecting a build configuration (win32/x64 release/MKL release/debug), you can build the Ipopt project to obtain the Ipopt DLL for that configuration. The project dependencies will make sure the all third party components are built as well. Expect the compile step of the MUMPS Fortran project to fail for a couple times until all interdependencies between the F90 files are resolved properly. 4. If you want to use the HSL solver, then you have to obtain the HSL source code as usual, and build either the libhsl project if you have both the sources for the MA27 and MA57 solvers, or libhsl-no-MA57 if you just have access to the MA27 solver. Both projects result in libhsl.dll, which you have to place into your path to make it available to Ipopt. 5. When linking against Ipopt.dll in your own project, use the IpoptApplicationFactory method exported by the DLL to obtain an IpoptApplication pointer rather than using the new operator. From there on, you can call the methods of the IpoptApplication object as usual. Note, however, that the virtual interfaces exposed (recursively) by the DLL do not provide access to the more exotic interfaces or member functions in the Ipopt library. Alternatively, you can use the C interface of Ipopt which is also exported by the DLL. Author: Marcel Roelofs (Marcel.Roelofs at aimms.com) Paragon Decision Technology 2013-05-24 Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOpt-vc10.sln0000644000076600007660000000533012150270140021326 0ustar coincoin Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IpOpt-vc10", "IpOpt\IpOpt-vc10.vcxproj", "{0D00FBF3-689A-4C06-8F5E-5319463C5ADA}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hs071_cpp-vc10", "hs071_cpp\hs071_cpp-vc10.vcxproj", "{84B04F75-86DB-4056-8A02-6A2374E72A4E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 ReleaseMKL|Win32 = ReleaseMKL|Win32 ReleaseMKL|x64 = ReleaseMKL|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|Win32.ActiveCfg = Debug|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|Win32.Build.0 = Debug|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|x64.ActiveCfg = Debug|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Debug|x64.Build.0 = Debug|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|Win32.ActiveCfg = Release|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|Win32.Build.0 = Release|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|x64.ActiveCfg = Release|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.Release|x64.Build.0 = Release|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {0D00FBF3-689A-4C06-8F5E-5319463C5ADA}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|Win32.ActiveCfg = Debug|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|Win32.Build.0 = Debug|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|x64.ActiveCfg = Debug|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Debug|x64.Build.0 = Debug|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|Win32.ActiveCfg = Release|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|Win32.Build.0 = Release|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|x64.ActiveCfg = Release|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.Release|x64.Build.0 = Release|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|Win32.ActiveCfg = ReleaseMKL|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|Win32.Build.0 = ReleaseMKL|Win32 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|x64.ActiveCfg = ReleaseMKL|x64 {84B04F75-86DB-4056-8A02-6A2374E72A4E}.ReleaseMKL|x64.Build.0 = ReleaseMKL|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMumpsC/0000755000076600007660000000000012214537465021043 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMumpsC/CoinMumpsC.icproj0000644000076600007660000000053511271613727024271 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinMumpsC/CoinMumpsC.vcproj0000644000076600007660000002523012150270140024266 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl-no-MA57/0000755000076600007660000000000012214537465021364 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl-no-MA57/libhsl-no-MA57.vfproj0000644000076600007660000001220612150270140025132 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl-no-MA57/libhsl.def0000644000076600007660000000006111375323732023313 0ustar coincoinEXPORTS MA27ID MA27AD MA27BD MA27CD MC19AD Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFor/0000755000076600007660000000000012214537465020530 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFor/IpOptFor.vfproj0000644000076600007660000001035412150270140023444 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl/0000755000076600007660000000000012214537465020303 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl/libhsl.vfproj0000644000076600007660000001275012150270140022774 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/libhsl/libhsl.def0000644000076600007660000000014111271613727022232 0ustar coincoinEXPORTS MA27ID MA27AD MA27BD MA27CD MA28AD MA57ID MA57AD MA57BD MA57CD MA57ED MC19AD Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinBlas/0000755000076600007660000000000012214537465020520 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/CoinBlas/CoinBlas.vfproj0000644000076600007660000010650412150270140023427 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/0000755000076600007660000000000012214537465020435 5ustar coincoinIpopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/IpOptFSS.rc0000644000076600007660000000523711702531663022374 0ustar coincoin// Microsoft Visual C++ generated resource script. // #include "resource.h" #include "config.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION IPOPT_RESOURCE_VERSION PRODUCTVERSION IPOPT_RESOURCE_VERSION FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "Comments", "Source code of Ipopt can be found at http://www.coin-or.org/projects/Ipopt.xml" VALUE "CompanyName", "IBM" VALUE "FileDescription", "Ipopt Fortran Solver Support DLL" VALUE "FileVersion", __xstr__(IPOPT_RESOURCE_VERSION) VALUE "InternalName", "IpoptFSS" VALUE "LegalCopyright", "Copyright (C) 2008 International Business Machines and others." VALUE "LegalTrademarks", "All Rights Reserved. This code is published under the Eclipse Public License." VALUE "OriginalFilename", " IpoptFSS.dll" VALUE "ProductName", "Ipopt Fortran Solver Support DLL" VALUE "ProductVersion", __xstr__(IPOPT_RESOURCE_VERSION) END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/IpOptFSS.vcproj0000644000076600007660000004155212150270140023257 0ustar coincoin Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/IpoptFSS.def0000644000076600007660000000032511537372330022557 0ustar coincoinEXPORTS MA28PART MPI_Finalize MPI_Init MPI_Comm_rank dmumps_c DAXPY DDOT DSCAL DTRSM DSYMV DASUM DGEMM DSYRK DNRM2 IDAMAX DCOPY DGEMV DPOTRS DGETRS DGETRF DPOTRF DSYEV Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/Dummy.c0000644000076600007660000000266611537372330021701 0ustar coincoin// Copyright (C) 2011 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // Authors: Marcel Roelofs Paragon Decision Technology B.V. 2011-03-14 // Some trickery to get MSVC to export symbols from the system libraries and // libraries that are generated in dependent projects. Note that dummy_call is // exported nor called, but is only present as a trick for the linker to make the // the symbols to be exported available for exporting. Sigh. // Correct prototypes not needed, so use the most simple ones. // Only necessary to get the linker to pull the symbols in. extern int MA28PART(); extern int MPI_Finalize(); extern int MPI_Init(); extern int MPI_Comm_rank(); extern int dmumps_c(); extern int DAXPY(); extern int DDOT(); extern int DSCAL(); extern int DTRSM(); extern int DSYMV(); extern int DASUM(); extern int DGEMM(); extern int DSYRK(); extern int DNRM2(); extern int IDAMAX(); extern int DCOPY(); extern int DGEMV(); extern int DPOTRS(); extern int DGETRS(); extern int DGETRF(); extern int DPOTRF(); extern int DSYEV(); void dummy_call() { MA28PART(); MPI_Finalize(); MPI_Init(); MPI_Comm_rank(); dmumps_c(); DAXPY(); DDOT(); DSCAL(); DTRSM(); DSYMV(); DASUM(); DGEMM(); DSYRK(); DNRM2(); IDAMAX(); DCOPY(); DGEMV(); DPOTRS(); DGETRS(); DGETRF(); DPOTRF(); DSYEV(); } Ipopt-3.11.4/Ipopt/MSVisualStudio/v8-ifort/IpOptFSS/resource.h0000644000076600007660000000061711537372330022434 0ustar coincoin//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by IpOpt.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif Ipopt-3.11.4/Ipopt/Makefile.in0000644000076600007660000013431312156624616014527 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_LINEARSOLVERLOADER_TRUE@am__append_1 = src/contrib/LinearSolverLoader @ALWAYS_FALSE@am__append_2 = test DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/BuildTools/Makemain.inc $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/ipopt-uninstalled.pc.in \ $(srcdir)/ipopt.pc.in $(top_srcdir)/configure \ $(top_srcdir)/contrib/JavaInterface/Makefile.in \ $(top_srcdir)/contrib/MatlabInterface/examples/startup.m.in \ $(top_srcdir)/contrib/MatlabInterface/src/Makefile.in \ $(top_srcdir)/contrib/RInterface/src/Makevars.in \ $(top_srcdir)/contrib/sIPOPT/AmplSolver/Makefile.in \ $(top_srcdir)/contrib/sIPOPT/Makefile.in \ $(top_srcdir)/contrib/sIPOPT/examples/parametric_cpp/Makefile.in \ $(top_srcdir)/contrib/sIPOPT/examples/redhess_cpp/Makefile.in \ $(top_srcdir)/doxydoc/doxygen.conf.in \ $(top_srcdir)/examples/Cpp_example/Makefile.in \ $(top_srcdir)/examples/ScalableProblems/Makefile.in \ $(top_srcdir)/examples/ScalableProblems/config.h.in \ $(top_srcdir)/examples/hs071_c/Makefile.in \ $(top_srcdir)/examples/hs071_c/hs071_c.c \ $(top_srcdir)/examples/hs071_cpp/Makefile.in \ $(top_srcdir)/examples/hs071_cpp/hs071_main.cpp \ $(top_srcdir)/examples/hs071_cpp/hs071_nlp.cpp \ $(top_srcdir)/examples/hs071_cpp/hs071_nlp.hpp \ $(top_srcdir)/examples/hs071_f/Makefile.in \ $(top_srcdir)/examples/hs071_f/hs071_f.f.in \ $(top_srcdir)/src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in \ $(top_srcdir)/src/Apps/AmplSolver/ipoptamplinterface.pc.in \ $(top_srcdir)/tutorial/CodingExercise/C/1-skeleton/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/C/2-mistake/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/C/3-solution/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Cpp/1-skeleton/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Cpp/2-mistake/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Cpp/3-solution/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/1-skeleton/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/2-mistake/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/3-solution/Makefile.in \ $(top_srcdir)/tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f.in \ $(top_srcdir)/tutorial/CodingExercise/Matlab/1-skeleton/startup.m.in \ $(top_srcdir)/tutorial/CodingExercise/Matlab/2-mistake/startup.m.in \ $(top_srcdir)/tutorial/CodingExercise/Matlab/3-solution/startup.m.in \ AUTHORS INSTALL config.guess config.sub depcomp install-sh \ ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_3 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_4 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = examples/hs071_f/Makefile \ examples/hs071_f/hs071_f.f examples/Cpp_example/Makefile \ examples/hs071_cpp/Makefile examples/hs071_c/Makefile \ examples/ScalableProblems/Makefile \ tutorial/CodingExercise/C/1-skeleton/Makefile \ tutorial/CodingExercise/C/2-mistake/Makefile \ tutorial/CodingExercise/C/3-solution/Makefile \ tutorial/CodingExercise/Cpp/1-skeleton/Makefile \ tutorial/CodingExercise/Cpp/2-mistake/Makefile \ tutorial/CodingExercise/Cpp/3-solution/Makefile \ tutorial/CodingExercise/Matlab/1-skeleton/startup.m \ tutorial/CodingExercise/Matlab/2-mistake/startup.m \ tutorial/CodingExercise/Matlab/3-solution/startup.m \ tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f \ tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f \ tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f \ tutorial/CodingExercise/Fortran/1-skeleton/Makefile \ tutorial/CodingExercise/Fortran/2-mistake/Makefile \ tutorial/CodingExercise/Fortran/3-solution/Makefile \ contrib/MatlabInterface/src/Makefile \ contrib/MatlabInterface/examples/startup.m \ contrib/JavaInterface/Makefile contrib/sIPOPT/Makefile \ contrib/sIPOPT/AmplSolver/Makefile \ contrib/sIPOPT/examples/parametric_cpp/Makefile \ contrib/sIPOPT/examples/redhess_cpp/Makefile ipopt.pc \ ipopt-uninstalled.pc doxydoc/doxygen.conf \ contrib/RInterface/src/Makevars.win \ contrib/RInterface/src/Makevars ipoptamplinterface.pc \ ipoptamplinterface-uninstalled.pc SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgconfiglibdir)" pkgconfiglibDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfiglib_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = src/Common src/LinAlg src/Algorithm \ src/contrib/CGPenalty src/contrib/LinearSolverLoader \ src/Interfaces src/Apps test DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign SUBDIRS = src/Common src/LinAlg src/Algorithm src/contrib/CGPenalty \ $(am__append_1) src/Interfaces src/Apps $(am__append_2) EXTRA_DIST = examples/Cpp_example/cpp_example.cpp \ examples/Cpp_example/Makefile.in \ examples/Cpp_example/MyNLP.cpp examples/Cpp_example/MyNLP.hpp \ examples/hs071_f/Makefile.in examples/hs071_f/hs071_f.f.in \ examples/hs071_c/Makefile.in examples/hs071_c/hs071_c.c \ examples/hs071_cpp/Makefile.in \ examples/hs071_cpp/hs071_main.cpp \ examples/hs071_cpp/hs071_nlp.cpp \ examples/hs071_cpp/hs071_nlp.hpp \ examples/ScalableProblems/LuksanVlcek1.cpp \ examples/ScalableProblems/LuksanVlcek1.hpp \ examples/ScalableProblems/LuksanVlcek2.cpp \ examples/ScalableProblems/LuksanVlcek2.hpp \ examples/ScalableProblems/LuksanVlcek3.cpp \ examples/ScalableProblems/LuksanVlcek3.hpp \ examples/ScalableProblems/LuksanVlcek4.cpp \ examples/ScalableProblems/LuksanVlcek4.hpp \ examples/ScalableProblems/LuksanVlcek5.cpp \ examples/ScalableProblems/LuksanVlcek5.hpp \ examples/ScalableProblems/LuksanVlcek6.cpp \ examples/ScalableProblems/LuksanVlcek6.hpp \ examples/ScalableProblems/LuksanVlcek7.cpp \ examples/ScalableProblems/LuksanVlcek7.hpp \ examples/ScalableProblems/Makefile.in \ examples/ScalableProblems/MittelmannBndryCntrlDiri.cpp \ examples/ScalableProblems/MittelmannBndryCntrlDiri.hpp \ examples/ScalableProblems/MittelmannBndryCntrlNeum.cpp \ examples/ScalableProblems/MittelmannBndryCntrlNeum.hpp \ examples/ScalableProblems/MittelmannDistCntrlDiri.cpp \ examples/ScalableProblems/MittelmannDistCntrlDiri.hpp \ examples/ScalableProblems/MittelmannDistCntrlNeumA.cpp \ examples/ScalableProblems/MittelmannDistCntrlNeumA.hpp \ examples/ScalableProblems/MittelmannDistCntrlNeumB.cpp \ examples/ScalableProblems/MittelmannDistCntrlNeumB.hpp \ examples/ScalableProblems/MittelmannParaCntrl.hpp \ examples/ScalableProblems/README \ examples/ScalableProblems/RegisteredTNLP.cpp \ examples/ScalableProblems/RegisteredTNLP.hpp \ examples/ScalableProblems/solve_problem.cpp README INSTALL \ LICENSE AUTHORS doc/documentation.bbl doc/documentation.tex \ doc/documentation.pdf doc/options.tex test/run_unitTests.in \ test/mytoy.nl Windows/VisualStudio_dotNET/README \ Windows/VisualStudio_dotNET/CppExample/CppExample.vcproj \ Windows/VisualStudio_dotNET/hs071_cpp/hs071_cpp.vcproj \ Windows/VisualStudio_dotNET/hs071_c/hs071_c.vcproj \ Windows/VisualStudio_dotNET/hs071_f/hs071_f.vfproj \ Windows/VisualStudio_dotNET/hs071_f/hs071_f.f \ Windows/VisualStudio_dotNET/FortranLinAlg/FortranLinAlg.vfproj \ Windows/VisualStudio_dotNET/Ipopt/Ipopt.sln \ Windows/VisualStudio_dotNET/Ipopt/Ipopt.vcproj \ Windows/VisualStudio_dotNET/ScalableProblems/ScalableProblems.vcproj \ $(am__append_3) # Stuff to clean up from "make test" DISTCLEANFILES = examples/Cpp_example/cpp_example@EXEEXT@ \ examples/Cpp_example/cpp_example.@OBJEXT@ \ examples/Cpp_example/MyNLP.@OBJEXT@ \ examples/hs071_cpp/hs071_cpp@EXEEXT@ \ examples/hs071_cpp/hs071_main.@OBJEXT@ \ examples/hs071_cpp/hs071_nlp.@OBJEXT@ \ examples/hs071_cpp/ipopt.out examples/hs071_c/hs071_c@EXEEXT@ \ examples/hs071_c/hs071_c.@OBJEXT@ examples/hs071_c/ipopt.out \ examples/hs071_f/hs071_f@EXEEXT@ \ examples/hs071_f/hs071_f.@OBJEXT@ examples/hs071_f/IPOPT.OUT \ examples/ScalableProblems/*.@OBJEXT@ \ examples/ScalableProblems/solve_problem@EXEEXT@ \ examples/ScalableProblems/solution.txt \ tutorial/CodingExercise/*/*/*.@OBJEXT@ \ tutorial/CodingExercise/C/*/TutorialC@EXEEXT@ \ tutorial/CodingExercise/Cpp/*/TutorialCpp@EXEEXT@ \ tutorial/CodingExercise/Fortran/*/TutorialFortran@EXEEXT@ \ $(am__append_4) $(VPATH_DISTCLEANFILES) tmpdir = tmpdir libipopt = libipopt.a pkgconfiglibdir = $(libdir)/pkgconfig pkgconfiglib_DATA = ipopt.pc addlibsdir = $(DESTDIR)$(datadir)/coin/doc/Ipopt DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) examples/ScalableProblems/config.h: examples/ScalableProblems/stamp-h3 @if test ! -f $@; then \ rm -f examples/ScalableProblems/stamp-h3; \ $(MAKE) examples/ScalableProblems/stamp-h3; \ else :; fi examples/ScalableProblems/stamp-h3: $(top_srcdir)/examples/ScalableProblems/config.h.in $(top_builddir)/config.status @rm -f examples/ScalableProblems/stamp-h3 cd $(top_builddir) && $(SHELL) ./config.status examples/ScalableProblems/config.h $(top_srcdir)/examples/ScalableProblems/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f examples/ScalableProblems/stamp-h3 touch $@ distclean-hdr: -rm -f examples/ScalableProblems/config.h examples/ScalableProblems/stamp-h3 examples/hs071_f/Makefile: $(top_builddir)/config.status $(top_srcdir)/examples/hs071_f/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ examples/hs071_f/hs071_f.f: $(top_builddir)/config.status $(top_srcdir)/examples/hs071_f/hs071_f.f.in cd $(top_builddir) && $(SHELL) ./config.status $@ examples/Cpp_example/Makefile: $(top_builddir)/config.status $(top_srcdir)/examples/Cpp_example/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ examples/hs071_cpp/Makefile: $(top_builddir)/config.status $(top_srcdir)/examples/hs071_cpp/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ examples/hs071_c/Makefile: $(top_builddir)/config.status $(top_srcdir)/examples/hs071_c/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ examples/ScalableProblems/Makefile: $(top_builddir)/config.status $(top_srcdir)/examples/ScalableProblems/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/C/1-skeleton/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/C/1-skeleton/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/C/2-mistake/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/C/2-mistake/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/C/3-solution/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/C/3-solution/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Cpp/1-skeleton/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Cpp/1-skeleton/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Cpp/2-mistake/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Cpp/2-mistake/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Cpp/3-solution/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Cpp/3-solution/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Matlab/1-skeleton/startup.m: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Matlab/1-skeleton/startup.m.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Matlab/2-mistake/startup.m: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Matlab/2-mistake/startup.m.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Matlab/3-solution/startup.m: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Matlab/3-solution/startup.m.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/1-skeleton/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/1-skeleton/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/2-mistake/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/2-mistake/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ tutorial/CodingExercise/Fortran/3-solution/Makefile: $(top_builddir)/config.status $(top_srcdir)/tutorial/CodingExercise/Fortran/3-solution/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/MatlabInterface/src/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/MatlabInterface/src/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/MatlabInterface/examples/startup.m: $(top_builddir)/config.status $(top_srcdir)/contrib/MatlabInterface/examples/startup.m.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/JavaInterface/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/JavaInterface/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/sIPOPT/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/sIPOPT/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/sIPOPT/AmplSolver/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/sIPOPT/AmplSolver/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/sIPOPT/examples/parametric_cpp/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/sIPOPT/examples/parametric_cpp/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/sIPOPT/examples/redhess_cpp/Makefile: $(top_builddir)/config.status $(top_srcdir)/contrib/sIPOPT/examples/redhess_cpp/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ ipopt.pc: $(top_builddir)/config.status $(srcdir)/ipopt.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ ipopt-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/ipopt-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ doxydoc/doxygen.conf: $(top_builddir)/config.status $(top_srcdir)/doxydoc/doxygen.conf.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/RInterface/src/Makevars.win: $(top_builddir)/config.status $(top_srcdir)/contrib/RInterface/src/Makevars.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/RInterface/src/Makevars: $(top_builddir)/config.status $(top_srcdir)/contrib/RInterface/src/Makevars.in cd $(top_builddir) && $(SHELL) ./config.status $@ ipoptamplinterface.pc: $(top_builddir)/config.status $(top_srcdir)/src/Apps/AmplSolver/ipoptamplinterface.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ ipoptamplinterface-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgconfiglibDATA: $(pkgconfiglib_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfiglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfiglibdir)" @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgconfiglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ $(pkgconfiglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done uninstall-pkgconfiglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfiglib_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgconfiglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgconfiglibdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/BuildTools $(distdir)/Windows/VisualStudio_dotNET $(distdir)/Windows/VisualStudio_dotNET/CppExample $(distdir)/Windows/VisualStudio_dotNET/FortranLinAlg $(distdir)/Windows/VisualStudio_dotNET/Ipopt $(distdir)/Windows/VisualStudio_dotNET/ScalableProblems $(distdir)/Windows/VisualStudio_dotNET/hs071_c $(distdir)/Windows/VisualStudio_dotNET/hs071_cpp $(distdir)/Windows/VisualStudio_dotNET/hs071_f $(distdir)/contrib/JavaInterface $(distdir)/contrib/MatlabInterface/examples $(distdir)/contrib/MatlabInterface/src $(distdir)/contrib/RInterface/src $(distdir)/contrib/sIPOPT $(distdir)/contrib/sIPOPT/AmplSolver $(distdir)/contrib/sIPOPT/examples/parametric_cpp $(distdir)/contrib/sIPOPT/examples/redhess_cpp $(distdir)/doc $(distdir)/doxydoc $(distdir)/examples/Cpp_example $(distdir)/examples/ScalableProblems $(distdir)/examples/hs071_c $(distdir)/examples/hs071_cpp $(distdir)/examples/hs071_f $(distdir)/src/Apps/AmplSolver $(distdir)/test $(distdir)/tutorial/CodingExercise/C/1-skeleton $(distdir)/tutorial/CodingExercise/C/2-mistake $(distdir)/tutorial/CodingExercise/C/3-solution $(distdir)/tutorial/CodingExercise/Cpp/1-skeleton $(distdir)/tutorial/CodingExercise/Cpp/2-mistake $(distdir)/tutorial/CodingExercise/Cpp/3-solution $(distdir)/tutorial/CodingExercise/Fortran/1-skeleton $(distdir)/tutorial/CodingExercise/Fortran/2-mistake $(distdir)/tutorial/CodingExercise/Fortran/3-solution $(distdir)/tutorial/CodingExercise/Matlab/1-skeleton $(distdir)/tutorial/CodingExercise/Matlab/2-mistake $(distdir)/tutorial/CodingExercise/Matlab/3-solution @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfiglibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-pkgconfiglibDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-exec-am: install-exec-local install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-local \ uninstall-pkgconfiglibDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-libtool clean-local \ clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-data-hook install-exec install-exec-am \ install-exec-local install-info install-info-am install-man \ install-pkgconfiglibDATA install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-libtool \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-hook uninstall-info-am \ uninstall-local uninstall-pkgconfiglibDATA .PHONY: cuter test unitTest astyle doxydoc cuter: install cd src/Apps/CUTErInterface; $(MAKE) cuter test: unitTest unitTest: all cd test; $(MAKE) test doxydoc : doxygen doxydoc/doxygen.conf clean-doxydoc: cd doxydoc && rm -rf html *.log *.tag install-exec-local: install-doc uninstall-local: uninstall-doc clean-local : clean-doxydoc astyle: cd src/Algorithm; $(MAKE) astyle cd src/Algorithm/LinearSolvers; $(MAKE) astyle cd src/Algorithm/Inexact; $(MAKE) astyle cd src/contrib/CGPenalty; $(MAKE) astyle cd src/Apps/AmplSolver; $(MAKE) astyle cd src/Common; $(MAKE) astyle cd src/LinAlg; $(MAKE) astyle cd src/LinAlg/TMatrices; $(MAKE) astyle cd src/Interfaces; $(MAKE) astyle # setup addlibs files # the addlibs_cpp file is created by running pkg-config on the installed ipopt.pc, if pkg-config available, # or by using variables setup in configure # the addlibs_c file is created by adding @CXXLIBS@ to the content of the addlibs_cpp file # the addlibs_f file is creating by taking the content of the addlibs_cpp file and removing the FLIBS # since pkg-config may have reordered the flags from FLIBS, we take them out one by one install-data-hook: @$(mkdir_p) "$(addlibsdir)" @COIN_HAS_PKGCONFIG_TRUE@ PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ \ @COIN_HAS_PKGCONFIG_TRUE@ $(PKG_CONFIG) --libs ipopt > $(addlibsdir)/ipopt_addlibs_cpp.txt @COIN_CXX_IS_CL_TRUE@@COIN_HAS_PKGCONFIG_FALSE@ echo "-libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@" > $(addlibsdir)/ipopt_addlibs_cpp.txt @COIN_CXX_IS_CL_FALSE@@COIN_HAS_PKGCONFIG_FALSE@ echo "-L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@" > $(addlibsdir)/ipopt_addlibs_cpp.txt addlibs=`cat $(addlibsdir)/ipopt_addlibs_cpp.txt` ; \ echo "$$addlibs @CXXLIBS@" > $(addlibsdir)/ipopt_addlibs_c.txt ; \ for i in @FLIBS@ coin_dummy ; do \ addlibs=`echo -n " $$addlibs " | sed -e "s! $$i ! !g"` ; \ done ; \ echo "$$addlibs @CXXLIBS@" > $(addlibsdir)/ipopt_addlibs_f.txt uninstall-hook: rm -f $(addlibsdir)/ipopt_addlibs_{cpp,c,f}.txt install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/ltmain.sh0000755000076600007660000057753011413700257014310 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/Ipopt/missing0000755000076600007660000002540611413700257014052 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/Ipopt/ipopt.pc.in0000644000076600007660000000046111507663653014545 0ustar coincoinprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/coin Name: IPOPT Description: Interior Point Optimizer URL: https://projects.coin-or.org/Ipopt Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lipopt @IPOPTLIB_PCLIBS@ Cflags: -I${includedir} Requires: @IPOPTLIB_PCREQUIRES@ Ipopt-3.11.4/Ipopt/tutorial/0000755000076600007660000000000012214537465014320 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/Modeling/0000755000076600007660000000000012214537465016056 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/Modeling/bad1-fix1.mod0000644000076600007660000000140411504216567020230 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-13 # This is an example of bad modeling. # # In this reformulation, the product of the positive variables is # replaced by the sum of the log terms. This makes the first set of # constraints convex, and it also makes the Hessian sparse (it is # dense in the original formulation) param n := 50; var x{1..n} >= 0, := 1; var p{1..n} >= 0, <= 1, :=0.1; minimize obj: sum{i in 1..n} x[i] ; # subject to constr1: prod{i in 1..n} p[i] >= 0.1; subject to constr1: sum{i in 1..n} log(p[i]) >= log(0.1); subject to constr2{i in 1..n}: x[i]/p[i] >= i/(10*n); Ipopt-3.11.4/Ipopt/tutorial/Modeling/bad1.mod0000644000076600007660000000105411504216567017364 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-13 # This is an example of bad modeling. The formulation can be improved # in several way, as shown in the *-fix.mod files. param n := 50; var x{1..n} >= 0, := 1; var p{1..n} >= 0, <= 1, :=0.1; minimize obj: sum{i in 1..n} x[i] ; subject to constr1: prod{i in 1..n} p[i] >= 0.1; subject to constr2{i in 1..n}: x[i]/p[i] >= i/(10*n); Ipopt-3.11.4/Ipopt/tutorial/Modeling/bad1-fix2.mod0000644000076600007660000000161411504216567020234 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-13 # This is an example of bad modeling. # # In this second step of the reformulation, the second set of # nonlinear constraints is replaced by some linear constraints. In # this way, we ended up with a nice convex opitmization problem, even # though the original one was very nonconvex, and Ipopt, in some # cases, was not even able to find a feasible point! param n := 50; var x{1..n} >= 0, := 1; var p{1..n} >= 0, <= 1, :=0.1; minimize obj: sum{i in 1..n} x[i] ; # subject to constr1: prod{i in 1..n} p[i] >= 0.1; subject to constr1: sum{i in 1..n} log(p[i]) >= log(0.1); # subject to constr2{i in 1..n}: x[i]/p[i] >= i/(10*n); subject to constr2{i in 1..n}: x[i] >= i/(10*n)*p[i]; Ipopt-3.11.4/Ipopt/tutorial/AmplExperiments/0000755000076600007660000000000012214537465017435 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/AmplExperiments/car1.gp0000644000076600007660000000025411174437276020617 0ustar coincoinplot "gnuplot.dat" using 1:2 title 'x' with linespoints, "gnuplot.dat" using 1:3 title 'v' with linespoints, "gnuplot.dat" using 1:4 title 'a' with linespoints pause mouse Ipopt-3.11.4/Ipopt/tutorial/AmplExperiments/car1.run0000644000076600007660000000736611504216567021023 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-24 # This AMPL script includes a model, the "solve" command, and a call # to gnuplot. You can "run" all this by just typing # # $ ampl car1.run # # in your shell. Or, in an ongoing AMPL session, you can do # # ampl: reset; # ampl: include car1.run; # # This is an example of an optimal control problem. We have a car # that is at position x=0 at time t=0, and we can control the # acceleration, a, (which includes breaking as well). The # relationship between the position, x, and the velocity, v, of the # car, is defined by the differential equation # # dx/dt(t) = v(t) # # and the relationship between the velocity and the controllable # acceleration is defined by # # dv/dt(t) = a(t) - R*v^2(t) # # Here, we included a second term, involving a constant R, which is # meant to zinc the deceleration due to friction, and we assume that # the friction gets stronger as the square of the velocity. # # At the start of the considered time horizon (t=0) the car is at # position x=0, and at the final time (t=tf) it should be at x=L. In # both cases, the car should be at rest. There are bounds (lower # bound aL and upper bound aU) on the possible values for the # acceleration, and we want to minimize the final time, tf. # # The overall optimal control problem is therefore: # # min tf # s.t. dx/dt(t) = v(t) for t in [0,tf] # dv/dt(t) = a(t) - R*v^2(t) for t in [0,tf] # aL <= a(t) <= aU for t in [0,tf] # x(0) = 0 # x(tf) = L # # To obtain a finite-dimensional approximation of the problem, we need # to discretize the differential equations. Let N be the number of # discretization intervals for [0,tf], then the length of one interval # is h = tf/N. The discretized values are x[i] ~ x(i*h), etc. Then, # applying finite difference approximation of the differentiation # operator, we have dx/dt ~ (x[i+1]-x[i])/h etc. # # With this, we can state the overall optimization problem below. # # Feel free to play with some of the model parameters, such as the # Friction factor R, or to add the police constraint below. # Number of discretization intervals param N := 100; # Final position param L := 5; # Upper bound on acceleration param aU := 1; # Lower bound on acceleration (we can break better than speed up :-) ) param aL := -3; # Friction factor (try different values!) param R := 0.; #param R := 0.2; #param R := 1; # Initial value for final time param tf_init := 10; # Final time (with initial value) var tf := tf_init, >= 0; # Size of discretization intervals var h = tf/N; # Position var x{i in 0..N} := L*(i/N); # Velocity var v{i in 0..N} := L/tf_init; # Acceleration var a{i in 0..N} >= aL, <= aU, := 0; # Objective function minimize final_time: tf; # Differential equation for position subject to dx {i in 1..N}: (x[i]-x[i-1])/h = v[i]; # Differential equation for velocity subject to dv {i in 1..N}: (v[i]-v[i-1])/h = a[i] - R*v[i]^2; # Boundary conditions for positions subject to x0: x[0] = 0; subject to xtf: x[N] = L; # Boundary conditions for velocity subject to v0: v[0] = 0; subject to vtf: v[N] = 0; # Optionally, we can see what happens if there is a speed limit # (uncomment the following two lines) #subject to police {i in 0..N}: # v[i] <= 1.5; # Solve the optimization problem solve; # write the data into a file for gnuplot for {i in 0..N} printf : "%16.4e %16.4e %16.4e %16.4e \n", i*h, x[i], v[i], a[i] > gnuplot.dat; # run gnuplot to draw some picture for the result # # The following command will fail if you don't have gnuplot installed shell "gnuplot car1.gp"; Ipopt-3.11.4/Ipopt/tutorial/AmplExperiments/MoreAmplModels.txt0000644000076600007660000000170211174437276023061 0ustar coincoinThis file lists a few website where more AMPL models can be downloaded. Not all of those problems are small enough to be used with the AMPL student version. Bob Vanderbei's collection: http://www.orfe.princeton.edu/~rvdb/ampl/nlmodels/index.html This incluhes the complete Hock-Schittkowski suite: http://www.orfe.princeton.edu/~rvdb/ampl/nlmodels/hs/index.html The COPS test problems: http://www.mcs.anl.gov/~more/cops/ The default sizes are too large for the AMPL Student Solver version. However, in many cases you can reduce the problem size by editing the *.par1 parameter data files. Some nice engineering examples implemented by Dieter Kraft http://www.lrz-muenchen.de/~dkraft/ Look the the "Research" section, there are links to four AMPL models (some with separate data files). If you know of more interesting example models, please send a message to the Ipopt mailing list and an entry will be added here. Ipopt-3.11.4/Ipopt/tutorial/AmplExperiments/infeasible.mod0000644000076600007660000000130011504216567022227 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-03 # This is a model of Example 71 from # # Hock, W, and Schittkowski, K, # Test Examples for Nonlinear Programming Codes, # Lecture Notes in Economics and Mathematical Systems. # Springer Verlag, 1981. ############################################################################## # Definition of the variables with starting point and bounds var x{1..2} >= 0; # objective function minimize obj: -x[1]^2 + x[2]; # here the constraint. It is infeasible! subject to c1: x[1]^2 <= -1; Ipopt-3.11.4/Ipopt/tutorial/AmplExperiments/hs71.mod0000644000076600007660000000153511504216567020722 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-03 # This is a model of Example 71 from # # Hock, W, and Schittkowski, K, # Test Examples for Nonlinear Programming Codes, # Lecture Notes in Economics and Mathematical Systems. # Springer Verlag, 1981. ############################################################################## # Definition of the variables with bounds var x {i in 1..4}, >= 1, <= 5; # objective function minimize obj: x[1]*x[4]*(x[1] + x[2] + x[3]) + x[3]; # and the constraints subject to c1: x[1]*x[2]*x[3]*x[4] >= 25; subject to c2: x[1]^2+x[2]^2+x[3]^2+x[4]^2 = 40; # Now we set the starting point: let x[1] := 1; let x[2] := 5; let x[3] := 5; let x[4] := 1; Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/0000755000076600007660000000000012214537465017213 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/C/0000755000076600007660000000000012214537465017375 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/C/1-skeleton/0000755000076600007660000000000012214537465021357 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/C/1-skeleton/TutorialC.c0000644000076600007660000001575711504216567023446 0ustar coincoin/* Copyright (C) 2009 International Business Machines. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: TutorialC.c 1861 2010-12-21 21:34:47Z andreasw $ * * Author: Andreas Waechter IBM 2009-04-02 */ /* // This file is part of the Ipopt tutorial. It is the skeleton for // the C implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data */ #include "IpStdCInterface.h" #include #include #include #include /* Function Declarations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data); Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data); Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data); Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); /* Structure to communicate problem data */ struct _ProblemData { int N; double* a; }; typedef struct _ProblemData* ProblemData; /* Main Program */ int main() { Index n=-1; /* number of variables */ Index m=-1; /* number of constraints */ Index nele_jac; /* number of nonzeros in Jacobian */ Index nele_hess; /* number of nonzeros in Hessian */ Index index_style; /* indexing style for matrices */ Number* x_L = NULL; /* lower bounds on x */ Number* x_U = NULL; /* upper bounds on x */ Number* g_L = NULL; /* lower bounds on g */ Number* g_U = NULL; /* upper bounds on g */ IpoptProblem nlp = NULL; /* IpoptProblem */ enum ApplicationReturnStatus status; /* Solve return code */ Number* x = NULL; /* starting point and solution vector */ Number* mult_x_L = NULL; /* lower bound multipliers at the solution */ Number* mult_x_U = NULL; /* upper bound multipliers at the solution */ Number obj; /* objective value */ Index i; /* generic counter */ int size; /* Size of the problem */ ProblemData PD; /* Pointer to structure with problem data */ /* Specify size of the problem */ size = 300; /* Set the problem data */ PD = (ProblemData)malloc(sizeof(struct _ProblemData)); PD->N = size; PD->a = malloc(sizeof(double)*(size-2)); for (i=0; ia[i] = ((double)(i+2))/(double)size; } /* set the number of variables and allocate space for the bounds */ n=size; x_L = (Number*)malloc(sizeof(Number)*n); x_U = (Number*)malloc(sizeof(Number)*n); /* set the values for the variable bounds */ SET BOUNDS /* set the number of constraints and allocate space for the bounds */ m=size-2; g_L = (Number*)malloc(sizeof(Number)*m); g_U = (Number*)malloc(sizeof(Number)*m); /* set the values of the constraint bounds */ SET BOUNDS /* Number of nonzeros in the Jacobian of the constraints each constraint has three nonzeros */ nele_jac = FILLME /* Number of nonzeros in the Hessian of the Lagrangian (lower or upper triangual part only) We have the full diagonal, and the first off-diagonal except for the first and last variable */ nele_hess = FILLME /* indexing style for matrices */ index_style = FILLME; /* C-style; start counting of rows and column indices at 0 */ /* create the IpoptProblem */ nlp = CreateIpoptProblem(n, x_L, x_U, m, g_L, g_U, nele_jac, nele_hess, index_style, &eval_f, &eval_g, &eval_grad_f, &eval_jac_g, &eval_h); /* We can free the memory now - the values for the bounds have been copied internally in CreateIpoptProblem */ free(x_L); free(x_U); free(g_L); free(g_U); /* Set some options. Note the following ones are only examples, they might not be suitable for your problem. */ AddIpoptNumOption(nlp, "tol", 1e-7); AddIpoptStrOption(nlp, "mu_strategy", "adaptive"); AddIpoptStrOption(nlp, "output_file", "ipopt.out"); /* allocate space for the initial point and set the values */ x = (Number*)malloc(sizeof(Number)*n); SET INITIAL POINT /* allocate space to store the bound multipliers at the solution */ mult_x_L = (Number*)malloc(sizeof(Number)*n); mult_x_U = (Number*)malloc(sizeof(Number)*n); /* solve the problem */ status = IpoptSolve(nlp, x, NULL, &obj, NULL, mult_x_L, mult_x_U, (void*)PD); if (status == Solve_Succeeded) { printf("\n\nSolution of the primal variables, x\n"); for (i=0; ia); free(PD); return 0; } /* Function Implementations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data) { int i; ProblemData PD = (ProblemData)user_data; double* a = PD->a; return TRUE; } Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data) { int i; ProblemData PD = (ProblemData)user_data; double* a = PD->a; return TRUE; } Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data) { int j; ProblemData PD = (ProblemData)user_data; double* a = PD->a; return TRUE; } Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { int j, inz; ProblemData PD = (ProblemData)user_data; double* a = PD->a; return TRUE; } Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) { int i, inz; ProblemData PD = (ProblemData)user_data; double* a = PD->a; return TRUE; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/C/1-skeleton/Makefile.in0000644000076600007660000000467211576071414023432 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialC@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialC.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C Compiler command CC = @CC@ # C Compiler options CFLAGS = @CFLAGS@ # additional C Compiler options for linking CLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CC) $(CFLAGS) $(CLINKFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) ipopt.out .c.o: $(CC) $(CFLAGS) $(INCL) -c -o $@ $< .c.obj: $(CC) $(CFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/C/3-solution/0000755000076600007660000000000012214537465021411 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/C/3-solution/TutorialC.c0000644000076600007660000002266311504216567023472 0ustar coincoin/* Copyright (C) 2009 International Business Machines. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: TutorialC.c 1861 2010-12-21 21:34:47Z andreasw $ * * Author: Andreas Waechter IBM 2009-04-02 */ /* // This file is part of the Ipopt tutorial. It is a correct version // of a C implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data */ #include "IpStdCInterface.h" #include #include #include #include /* Function Declarations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data); Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data); Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data); Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); /* Structure to communicate problem data */ struct _ProblemData { int N; double* a; }; typedef struct _ProblemData* ProblemData; /* Main Program */ int main() { Index n=-1; /* number of variables */ Index m=-1; /* number of constraints */ Index nele_jac; /* number of nonzeros in Jacobian */ Index nele_hess; /* number of nonzeros in Hessian */ Index index_style; /* indexing style for matrices */ Number* x_L = NULL; /* lower bounds on x */ Number* x_U = NULL; /* upper bounds on x */ Number* g_L = NULL; /* lower bounds on g */ Number* g_U = NULL; /* upper bounds on g */ IpoptProblem nlp = NULL; /* IpoptProblem */ enum ApplicationReturnStatus status; /* Solve return code */ Number* x = NULL; /* starting point and solution vector */ Number* mult_x_L = NULL; /* lower bound multipliers at the solution */ Number* mult_x_U = NULL; /* upper bound multipliers at the solution */ Number obj; /* objective value */ Index i; /* generic counter */ int size; /* Size of the problem */ ProblemData PD; /* Pointer to structure with problem data */ /* Specify size of the problem */ size = 100; /* Set the problem data */ PD = (ProblemData)malloc(sizeof(struct _ProblemData)); PD->N = size; PD->a = malloc(sizeof(double)*(size-2)); for (i=0; ia[i] = ((double)(i+2))/(double)size; } /* set the number of variables and allocate space for the bounds */ n=size; x_L = (Number*)malloc(sizeof(Number)*n); x_U = (Number*)malloc(sizeof(Number)*n); /* set the values for the variable bounds */ for (i=0; ia); free(PD); return 0; } /* Function Implementations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data) { int i; ProblemData PD = (ProblemData)user_data; assert(n == PD->N); *obj_value = 0.; for (i=0; iN); for (i=0; ia; assert(n == PD->N); assert(m == PD->N-2); for (j=0; ja; if (values == NULL) { /* return the structure of the jacobian */ inz = 0; for (j=0; ja; if (values == NULL) { /* return the structure. This is a symmetric matrix, fill the * upper right triangle only. */ inz = 0; /* First variable has only a diagonal entry */ iRow[inz] = 0; jCol[inz] = 0; inz++; /* Next ones have first off-diagonal and diagonal */ for (i=1; i1) { values[inz] -= lambda[i-2]*(x[i-1]*x[i-1] + 1.5*x[i-1] -a[i-2])*cos(x[i]); } inz++; values[inz] = -lambda[i-1]*(2.*x[i]+1.5)*sin(x[i+1]); inz++; } values[inz] = obj_factor*2.; values[inz] -= lambda[n-3]*(x[n-2]*x[n-2] + 1.5*x[n-2] -a[n-3])*cos(x[n-1]); inz++; assert(inz == nele_hess); } return TRUE; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/C/3-solution/Makefile.in0000644000076600007660000000467211576071414023464 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialC@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialC.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C Compiler command CC = @CC@ # C Compiler options CFLAGS = @CFLAGS@ # additional C Compiler options for linking CLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CC) $(CFLAGS) $(CLINKFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) ipopt.out .c.o: $(CC) $(CFLAGS) $(INCL) -c -o $@ $< .c.obj: $(CC) $(CFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/C/2-mistake/0000755000076600007660000000000012214537465021171 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/C/2-mistake/TutorialC.c0000644000076600007660000002273311504216567023250 0ustar coincoin/* Copyright (C) 2009 International Business Machines. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: TutorialC.c 1861 2010-12-21 21:34:47Z andreasw $ * * Author: Andreas Waechter IBM 2009-04-02 */ /* // This file is part of the Ipopt tutorial. It is a version with // mistakes for the C implemention of the coding exercise problem (in // AMPL formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data */ #include "IpStdCInterface.h" #include #include #include #include /* Function Declarations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data); Bool eval_grad_f(Index n, Number* x, Bool new_x, Number* grad_f, UserDataPtr user_data); Bool eval_g(Index n, Number* x, Bool new_x, Index m, Number* g, UserDataPtr user_data); Bool eval_jac_g(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); Bool eval_h(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data); /* Structure to communicate problem data */ struct _ProblemData { int N; double* a; }; typedef struct _ProblemData* ProblemData; /* Main Program */ int main() { Index n=-1; /* number of variables */ Index m=-1; /* number of constraints */ Index nele_jac; /* number of nonzeros in Jacobian */ Index nele_hess; /* number of nonzeros in Hessian */ Index index_style; /* indexing style for matrices */ Number* x_L = NULL; /* lower bounds on x */ Number* x_U = NULL; /* upper bounds on x */ Number* g_L = NULL; /* lower bounds on g */ Number* g_U = NULL; /* upper bounds on g */ IpoptProblem nlp = NULL; /* IpoptProblem */ enum ApplicationReturnStatus status; /* Solve return code */ Number* x = NULL; /* starting point and solution vector */ Number* mult_x_L = NULL; /* lower bound multipliers at the solution */ Number* mult_x_U = NULL; /* upper bound multipliers at the solution */ Number obj; /* objective value */ Index i; /* generic counter */ int size; /* Size of the problem */ ProblemData PD; /* Pointer to structure with problem data */ /* Specify size of the problem */ size = 5; /* 100; */ /* Set the problem data */ PD = (ProblemData)malloc(sizeof(struct _ProblemData)); PD->N = size; PD->a = malloc(sizeof(double)*(size-2)); for (i=0; ia[i] = ((double)(i+2))/(double)size; } /* set the number of variables and allocate space for the bounds */ n=size; x_L = (Number*)malloc(sizeof(Number)*n); x_U = (Number*)malloc(sizeof(Number)*n); /* set the values for the variable bounds */ for (i=0; ia); free(PD); return 0; } /* Function Implementations */ Bool eval_f(Index n, Number* x, Bool new_x, Number* obj_value, UserDataPtr user_data) { int i; ProblemData PD = (ProblemData)user_data; assert(n == PD->N); *obj_value = 0.; for (i=0; iN); for (i=1; ia; assert(n == PD->N); assert(m == PD->N-2); for (j=0; ja; if (values == NULL) { /* return the structure of the jacobian */ inz = 0; for (j=0; ja; if (values == NULL) { /* return the structure. This is a symmetric matrix, fill the * upper right triangle only. */ inz = 0; /* First variable has only a diagonal entry */ iRow[inz] = 0; jCol[inz] = 0; inz++; /* Next ones have first off-diagonal and diagonal */ for (i=1; i1) { values[inz] -= lambda[i-2]*(x[i-1]*x[i-1] + 1.5*x[i-1] -a[i-2])*cos(x[i]); } inz++; values[inz] = -lambda[i-1]*(2.*x[i]+1.5)*sin(x[i+1]); inz++; } values[inz] = obj_factor*2.; values[inz] -= lambda[n-3]*(x[n-2]*x[n-2] + 1.5*x[n-1] -a[n-3])*cos(x[n-1]); inz++; assert(inz == nele_hess); } return TRUE; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/C/2-mistake/Makefile.in0000644000076600007660000000467211576071414023244 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialC@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialC.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C Compiler command CC = @CC@ # C Compiler options CFLAGS = @CFLAGS@ # additional C Compiler options for linking CLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CC) $(CFLAGS) $(CLINKFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) ipopt.out .c.o: $(CC) $(CFLAGS) $(INCL) -c -o $@ $< .c.obj: $(CC) $(CFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/0000755000076600007660000000000012214537465020413 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/1-skeleton/0000755000076600007660000000000012214537465022375 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/1-skeleton/TutorialMatlab.m0000644000076600007660000000525411504216567025503 0ustar coincoin% Copyright (C) 2009 International Business Machines % All Rights Reserved. % This code is published under the Eclipse Public License. % % $Id: hs071_c.c 699 2006-04-05 21:05:18Z andreasw $ % % Author: Andreas Waechter IBM 2009-04-02 % % This file is part of the Ipopt tutorial. It is the skeleton for % the matlab implemention of the coding exercise problem (in AMPL % formulation): % % param n := 4; % % var x {1..n} <= 0, >= -1.5, := -0.5; % % minimize obj: % sum{i in 1..n} (x[i]-1)^2; % % subject to constr {i in 2..n-1}: % (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; % % The constant term "i/n" in the constraint is supposed to be input data function [x, info] = TutorialMatlab % Size of the problem n = 5; % Problem data a = ((1:n)/n)'; % Starting point x0 = -0.5*ones(n,1); % Lower and upper bounds for the variables options.lb = -1.5*ones(n,1); options.ub = ... % Constraint bounds options.cl = ... options.cu = ... % Set the Ipopt options % options.ipopt.mu_strategy = 'adaptive'; options.ipopt.derivative_test = 'first-order'; % options.ipopt.derivative_test = 'second-order'; % Set the callback functions funcs.objective = @eval_f; funcs.constraints = @eval_g; funcs.gradient = @eval_grad_f; funcs.jacobian = @eval_jac_g; funcs.jacobianstructure = @eval_jac_g_struct; funcs.hessian = @eval_hess; funcs.hessianstructure = @eval_hess_struct; [x info] = ipopt(x0, funcs, options); % End of main function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of objective function function f = eval_f(x) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate gradient of objective function function df = eval_grad_f(x) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of constraint bodies function g = eval_g(x) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return constraint Jacobian strcture function A = eval_jac_g_struct end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate constraint Jacobian function A = eval_jac_g(x) end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return Hessian of Lagrangian function structure function H = eval_hess_struct end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate Hessian of Lagrangian function function H = eval_hess(x, sigma, lambda) end end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/1-skeleton/startup.m.in0000644000076600007660000000002511172220641024642 0ustar coincoinaddpath @prefix@/lib Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/3-solution/0000755000076600007660000000000012214537465022427 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/3-solution/TutorialMatlab.m0000644000076600007660000000703111504216567025530 0ustar coincoin% Copyright (C) 2009 International Business Machines % All Rights Reserved. % This code is published under the Eclipse Public License. % % $Id: hs071_c.c 699 2006-04-05 21:05:18Z andreasw $ % % Author: Andreas Waechter IBM 2009-04-02 % % This file is part of the Ipopt tutorial. It is a correct version % of a the matlab implemention of the coding exercise problem % (in AMPL formulation): % % param n := 4; % % var x {1..n} <= 0, >= -1.5, := -0.5; % % minimize obj: % sum{i in 1..n} (x[i]-1)^2; % % subject to constr {i in 2..n-1}: % (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; % % The constant term "i/n" in the constraint is supposed to be input data function [x, info] = TutorialMatlab % Size of the problem n = 5; % Problem data a = ((1:n)/n)'; % Starting point x0 = -0.5*ones(n,1); % Lower and upper bounds for the variables options.lb = -1.5*ones(n,1); options.ub = zeros(n,1); % Constraint bounds options.cl = zeros(n-2,1); options.cu = zeros(n-2,1); % Set the Ipopt options options.ipopt.mu_strategy = 'adaptive'; % options.ipopt.derivative_test = 'second-order'; % Set the callback functions funcs.objective = @eval_f; funcs.constraints = @eval_g; funcs.gradient = @eval_grad_f; funcs.jacobian = @eval_jac_g; funcs.jacobianstructure = @eval_jac_g_struct; funcs.hessian = @eval_hess; funcs.hessianstructure = @eval_hess_struct; [x info] = ipopt(x0, funcs, options); % End of main function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of objective function function f = eval_f(x) tmp = (x - 1).^2; f = sum(tmp); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate gradient of objective function function df = eval_grad_f(x) df = 2*(x - 1); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of constraint bodies function g = eval_g(x) g = (x(2:n-1).^2 + 1.5*x(2:n-1) - a(2:n-1)).*cos(x(3:n)) - x(1:n-2); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return constraint Jacobian strcture function A = eval_jac_g_struct % tri-diagonal structure Diags = ones(n, 3); A = spdiags(Diags, 0:2, n-2, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate constraint Jacobian function A = eval_jac_g(x) Diags = -1*ones(n-2,3); Diags(:,2) = (2*x(2:n-1)+1.5).*cos(x(3:n)); Diags(:,3) = -(x(2:n-1).^2 + 1.5*x(2:n-1) - a(2:n-1)).*sin(x(3:n)); A = spdiags(Diags, 0:2, n-2, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return Hessian of Lagrangian function structure function H = eval_hess_struct Diags = ones(n, 2); H = spdiags(Diags, -1:0, n, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate Hessian of Lagrangian function function H = eval_hess(x, sigma, lambda) Diags = zeros(n,2); % part from the objective function Diags(:,2) = sigma * 2; % (x_i , x_i) part Diags(2:n-1,2) = Diags(2:n-1,2) + 2*lambda.*cos(x(3:n)); % (x_{i+1}, x_{i+1}) part Diags(3:n,2) = Diags(3:n,2) ... - lambda.*(x(2:n-1).^2 + 1.5*x(2:n-1) - a(2:n-1)).*cos(x(3:n)); % (x_i, x_{i+1}) part Diags(2:n-1,1) = -lambda.*sin(x(3:n)).*(2*x(2:n-1)+1.5); H = spdiags(Diags, -1:0, n, n); end end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/3-solution/startup.m.in0000644000076600007660000000002511172220641024674 0ustar coincoinaddpath @prefix@/lib Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/2-mistake/0000755000076600007660000000000012214537465022207 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/2-mistake/TutorialMatlab.m0000644000076600007660000000707311504216567025316 0ustar coincoin% Copyright (C) 2009 International Business Machines % All Rights Reserved. % This code is published under the Eclipse Public License. % % $Id: hs071_c.c 699 2006-04-05 21:05:18Z andreasw $ % % Author: Andreas Waechter IBM 2009-04-02 % % This file is part of the Ipopt tutorial. It is a version with % mistakes for the matlab implemention of the coding exercise problem % (in AMPL formulation): % % param n := 4; % % var x {1..n} <= 0, >= -1.5, := -0.5; % % minimize obj: % sum{i in 1..n} (x[i]-1)^2; % % subject to constr {i in 2..n-1}: % (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; % % The constant term "i/n" in the constraint is supposed to be input data function [x, info] = TutorialMatlab % Size of the problem n = 5; % Problem data a = ((1:n)/n)'; % Starting point x0 = -0.5*ones(n,1); % Lower and upper bounds for the variables options.lb = -1.5*ones(n,1); options.ub = zeros(n,1); % Constraint bounds options.cl = zeros(n-2,1); options.cu = zeros(n-2,1); % Set the Ipopt options % options.ipopt.mu_strategy = 'adaptive'; options.ipopt.derivative_test = 'second-order'; options.ipopt.max_iter = 10; % Set the callback functions funcs.objective = @eval_f; funcs.constraints = @eval_g; funcs.gradient = @eval_grad_f; funcs.jacobian = @eval_jac_g; funcs.jacobianstructure = @eval_jac_g_struct; funcs.hessian = @eval_hess; funcs.hessianstructure = @eval_hess_struct; [x info] = ipopt(x0, funcs, options); % End of main function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of objective function function f = eval_f(x) tmp = (x - 1).^2; f = sum(tmp); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate gradient of objective function function df = eval_grad_f(x) df = (x - 1); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate value of constraint bodies function g = eval_g(x) g = (x(2:n-1).^2 + 1.5*x(1:n-2) - a(2:n-1)).*cos(x(3:n)) - x(1:n-2); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return constraint Jacobian strcture function A = eval_jac_g_struct % tri-diagonal structure Diags = ones(n, 3); A = spdiags(Diags, 0:2, n-2, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate constraint Jacobian function A = eval_jac_g(x) Diags = -1*ones(n-2,3); Diags(:,2) = (2*x(2:n-1)+1.5).*cos(x(3:n)); Diags(:,3) = -(x(2:n-1).^2 + 1.5*x(2:n-1) - a(2:n-1)).*sin(x(3:n)); A = spdiags(Diags, 0:2, n-2, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Return Hessian of Lagrangian function structure function H = eval_hess_struct Diags = ones(n, 2); H = spdiags(Diags, -1:0, n, n); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Evaluate Hessian of Lagrangian function function H = eval_hess(x, sigma, lambda) Diags = zeros(n,2); % part from the objective function Diags(:,2) = sigma * 2; % (x_i , x_i) part Diags(2:n-1,2) = Diags(2:n-1,2) + lambda.*cos(x(3:n)); % (x_{i+1}, x_{i+1}) part Diags(3:n,2) = Diags(3:n,2) ... - lambda.*(x(2:n-1).^2 + 1.5*x(1:n-2) - a(2:n-1)).*cos(x(3:n)); % (x_i, x_{i+1}) part Diags(2:n-1,1) = -lambda.*sin(x(3:n)).*(2*x(2:n-1)+1.5); H = spdiags(Diags, -1:0, n, n); end end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Matlab/2-mistake/startup.m.in0000644000076600007660000000002511172220641024454 0ustar coincoinaddpath @prefix@/lib Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/exercise_example.mod0000644000076600007660000000117511504216567023240 0ustar coincoin# Copyright (C) 2009, International Business Machines # # This file is part of the Ipopt open source package, published under # the Eclipse Public License # # Author: Andreas Waechter IBM 2009-04-02 # # This is the AMPL formulation of the coding example problem from the # Ipopt tutorial # Number of variables (this is a scalable formulation) param n := 8; # Definition of the variables with bounds var x {1..n} <= 0, >= -1.5, := -0.5; # The objective function.... minimize obj: sum{i in 1..n} (x[i]-1)^2; # ... and the constraints subject to constr {i in 2..n-1}: (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/0000755000076600007660000000000012214537465020626 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/1-skeleton/0000755000076600007660000000000012214537465022610 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f.in0000644000076600007660000001776411504216567026540 0ustar coincoinC Copyright (C) 2009 International Business Machines. C All Rights Reserved. C This code is published under the Eclipse Public License. C C $Id: hs071_f.f.in 699 2006-04-05 21:05:18Z andreasw $ C C Author: Andreas Waechter IBM 2009-04-02 C C ============================================================================= C C This file is part of the Ipopt tutorial. It is the skeleton for C the Fortran implemention of the coding exercise problem (in AMPL C formulation): C C param n := 4; C C var x {1..n} <= 0, >= -1.5, := -0.5; C C minimize obj: C sum{i in 1..n} (x[i]-1)^2; C C subject to constr {i in 2..n-1}: C (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; C C The constant term "i/n" in the constraint is supposed to be input data C C ============================================================================= C C C ============================================================================= C C Main driver program C C ============================================================================= C program tutorial C implicit none C C include the Ipopt return codes C include 'IpReturnCodes.inc' C C Size of the problem (number of variables and equality constraints) C integer NMAX, MMAX, IDX_STY parameter (NMAX = 1000, MMAX = 1000, IDX_STY = 1 ) integer N, M, NELE_JAC, NELE_HESS C C Space for multipliers and constraints C double precision LAM(MMAX) double precision G(MMAX) C C Vector of variables C double precision X(NMAX) C C Vector of lower and upper bounds C double precision X_L(NMAX), X_U(NMAX), Z_L(NMAX), Z_U(NMAX) double precision G_L(MMAX), G_U(MMAX) C C Private data for evaluation routines C This could be used to pass double precision and integer arrays untouched C to the evaluation subroutines EVAL_* C double precision DAT(MMAX) integer IDAT(1) C C Place for storing the Ipopt Problem Handle C @BIT32FCOMMENT@C for 32 bit platforms @BIT32FCOMMENT@ integer IPROBLEM @BIT32FCOMMENT@ integer IPCREATE @BIT64FCOMMENT@C for 64 bit platforms: @BIT64FCOMMENT@ integer*8 IPROBLEM @BIT64FCOMMENT@ integer*8 IPCREATE C integer IERR integer IPSOLVE, IPADDSTROPTION integer IPADDNUMOPTION, IPADDINTOPTION integer IPOPENOUTPUTFILE C double precision f integer i C C The following are the Fortran routines for computing the model C functions and their derivatives - their code can be found furhter C down in this file. C external EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS C C Set the problem size C N = 300 C C Number of constraints C M = C C Number of nonzeros in constraint Jacobian C NELE_JAC = C C Number of nonzeros in Lagrangian Hessian C NELE_HESS = C C Set initial point and bounds C C C Set bounds for the constraints C C C First create a handle for the Ipopt problem (and read the options C file) C IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS, 1 IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS) if (IPROBLEM.eq.0) then write(*,*) 'Error creating an Ipopt Problem handle.' stop endif C C Open an output file C IERR = IPOPENOUTPUTFILE(IPROBLEM, 'IPOPT.OUT', 5) if (IERR.ne.0 ) then write(*,*) 'Error opening the Ipopt output file.' goto 9000 endif C C Note: The following options are only examples, they might not be C suitable for your optimization problem. C C Set a string option C IERR = IPADDSTROPTION(IPROBLEM, 'mu_strategy', 'adaptive') if (IERR.ne.0 ) goto 9990 C C Set an integer option C IERR = IPADDINTOPTION(IPROBLEM, 'max_iter', 3000) if (IERR.ne.0 ) goto 9990 C C Set a double precision option C IERR = IPADDNUMOPTION(IPROBLEM, 'tol', 1.d-7) if (IERR.ne.0 ) goto 9990 C C Prepare the private data C here we define a C C Call optimization routine C IERR = IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT) C C Output: C if( IERR.eq.IP_SOLVE_SUCCEEDED ) then write(*,*) write(*,*) 'The solution was found.' write(*,*) write(*,*) 'The final value of the objective function is ',f write(*,*) write(*,*) 'The optimal values of X are:' write(*,*) do i = 1, N write(*,*) 'X (',i,') = ',X(i) enddo write(*,*) write(*,*) 'The multipliers for the lower bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_L(',i,') = ',Z_L(i) enddo write(*,*) write(*,*) 'The multipliers for the upper bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_U(',i,') = ',Z_U(i) enddo write(*,*) write(*,*) 'The multipliers for the equality constraints are:' write(*,*) do i = 1, M write(*,*) 'LAM(',i,') = ',LAM(i) enddo write(*,*) else write(*,*) write(*,*) 'An error occoured.' write(*,*) 'The error code is ',IERR write(*,*) endif C 9000 continue C C Clean up C call IPFREE(IPROBLEM) stop C 9990 continue write(*,*) 'Error setting an option' goto 9000 end C C ============================================================================= C C Computation of objective function C C ============================================================================= C subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision F, X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i return end C C ============================================================================= C C Computation of gradient of objective function C C ============================================================================= C subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision GRAD(N), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i return end C C ============================================================================= C C Computation of equality constraints C C ============================================================================= C subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR) implicit none integer N, NEW_X, M double precision G(M), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer j do j = 1, M G(j) = (X(j+1)**2 + 1.5d0*X(j+1) - DAT(j))*COS(X(j+2)) - X(j) enddo IERR = 0 return end C C ============================================================================= C C Computation of Jacobian of equality constraints C C ============================================================================= C subroutine EV_JAC_G(TASK, N, X, NEW_X, M, NZ, ACON, AVAR, A, 1 IDAT, DAT, IERR) integer TASK, N, NEW_X, M, NZ double precision X(N), A(NZ) integer ACON(NZ), AVAR(NZ) double precision DAT(*) integer IDAT(*) integer IERR integer j, inz C return end C C ============================================================================= C C Computation of Hessian of Lagrangian C C ============================================================================= C subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM, 1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR) implicit none integer TASK, N, NEW_X, M, NEW_LAM, NNZH double precision X(N), OBJFACT, LAM(M), HESS(NNZH) integer IRNH(NNZH), ICNH(NNZH) double precision DAT(*) integer IDAT(*) integer IERR integer i, inz C return end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/1-skeleton/Makefile.in0000644000076600007660000000462311506613655024661 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialFortran@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialFortran.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = # Directory to the sources for the (example) problem definition files SRCDIR = . VPATH = . ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # Fortran Compiler options F77 = @F77@ # Fotran Compiler options FFLAGS = @FFLAGS@ # additional Fortran Compiler options for linking F77LINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .f .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(F77) $(F77LINKFLAGS) $(FFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) IPOPT.OUT .f.o: $(F77) $(FFLAGS) $(INCL) -c -o $@ $< .f.obj: $(F77) $(FFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/3-solution/0000755000076600007660000000000012214537465022642 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f.in0000644000076600007660000002420211504216567026553 0ustar coincoinC Copyright (C) 2009 International Business Machines. C All Rights Reserved. C This code is published under the Eclipse Public License. C C $Id: hs071_f.f.in 699 2006-04-05 21:05:18Z andreasw $ C C Author: Andreas Waechter IBM 2009-04-02 C C ============================================================================= C C This file is part of the Ipopt tutorial. It is a correct version C of a Fortran implemention of the coding exercise problem C (in AMPL formulation): C C param n := 4; C C var x {1..n} <= 0, >= -1.5, := -0.5; C C minimize obj: C sum{i in 1..n} (x[i]-1)^2; C C subject to constr {i in 2..n-1}: C (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; C C The constant term "i/n" in the constraint is supposed to be input data C C ============================================================================= C C C ============================================================================= C C Main driver program C C ============================================================================= C program tutorial C implicit none C C include the Ipopt return codes C include 'IpReturnCodes.inc' C C Size of the problem (number of variables and equality constraints) C integer NMAX, MMAX, IDX_STY parameter (NMAX = 1000, MMAX = 1000, IDX_STY = 1 ) integer N, M, NELE_JAC, NELE_HESS C C Space for multipliers and constraints C double precision LAM(MMAX) double precision G(MMAX) C C Vector of variables C double precision X(NMAX) C C Vector of lower and upper bounds C double precision X_L(NMAX), X_U(NMAX), Z_L(NMAX), Z_U(NMAX) double precision G_L(MMAX), G_U(MMAX) C C Private data for evaluation routines C This could be used to pass double precision and integer arrays untouched C to the evaluation subroutines EVAL_* C double precision DAT(MMAX) integer IDAT(1) C C Place for storing the Ipopt Problem Handle C @BIT32FCOMMENT@C for 32 bit platforms @BIT32FCOMMENT@ integer IPROBLEM @BIT32FCOMMENT@ integer IPCREATE @BIT64FCOMMENT@C for 64 bit platforms: @BIT64FCOMMENT@ integer*8 IPROBLEM @BIT64FCOMMENT@ integer*8 IPCREATE C integer IERR integer IPSOLVE, IPADDSTROPTION integer IPADDNUMOPTION, IPADDINTOPTION integer IPOPENOUTPUTFILE C double precision f integer i C C The following are the Fortran routines for computing the model C functions and their derivatives - their code can be found furhter C down in this file. C external EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS C C Set the problem size C N = 100 C C Number of constraints C M = N - 2 C C Number of nonzeros in constraint Jacobian C NELE_JAC = 3*M C C Number of nonzeros in Lagrangian Hessian C NELE_HESS = N + (N-2) C C Set initial point and bounds C do i = 1, N X_L(i) = -1.5d0 X_U(i) = -0.d0 X(i) = -0.5d0 C if checking derivatives,it is useful to choose different values C X(i) = -0.5d0 + 0.1d0*DBLE(i)/DBLE(N); enddo C C Set bounds for the constraints C do i = 1, M G_L(i) = 0.d0 G_U(i) = 0.d0 enddo C C First create a handle for the Ipopt problem (and read the options C file) C IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS, 1 IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS) if (IPROBLEM.eq.0) then write(*,*) 'Error creating an Ipopt Problem handle.' stop endif C C Open an output file C IERR = IPOPENOUTPUTFILE(IPROBLEM, 'IPOPT.OUT', 5) if (IERR.ne.0 ) then write(*,*) 'Error opening the Ipopt output file.' goto 9000 endif C C Note: The following options are only examples, they might not be C suitable for your optimization problem. C C Set a string option C IERR = IPADDSTROPTION(IPROBLEM, 'mu_strategy', 'adaptive') if (IERR.ne.0 ) goto 9990 C C Set an integer option C IERR = IPADDINTOPTION(IPROBLEM, 'max_iter', 3000) if (IERR.ne.0 ) goto 9990 C C Set a double precision option C IERR = IPADDNUMOPTION(IPROBLEM, 'tol', 1.d-7) if (IERR.ne.0 ) goto 9990 C C Prepare the private data C IDAT(1) = N do i = 1, M DAT(i) = DBLE(i+1)/DBLE(N) enddo C C Call optimization routine C IERR = IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT) C C Output: C if( IERR.eq.IP_SOLVE_SUCCEEDED ) then write(*,*) write(*,*) 'The solution was found.' write(*,*) write(*,*) 'The final value of the objective function is ',f write(*,*) write(*,*) 'The optimal values of X are:' write(*,*) do i = 1, N write(*,*) 'X (',i,') = ',X(i) enddo write(*,*) write(*,*) 'The multipliers for the lower bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_L(',i,') = ',Z_L(i) enddo write(*,*) write(*,*) 'The multipliers for the upper bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_U(',i,') = ',Z_U(i) enddo write(*,*) write(*,*) 'The multipliers for the equality constraints are:' write(*,*) do i = 1, M write(*,*) 'LAM(',i,') = ',LAM(i) enddo write(*,*) else write(*,*) write(*,*) 'An error occoured.' write(*,*) 'The error code is ',IERR write(*,*) endif C 9000 continue C C Clean up C call IPFREE(IPROBLEM) stop C 9990 continue write(*,*) 'Error setting an option' goto 9000 end C C ============================================================================= C C Computation of objective function C C ============================================================================= C subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision F, X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i F = 0.d0 do i = 1, N F = F + (X(i)-1.d0)**2 enddo IERR = 0 return end C C ============================================================================= C C Computation of gradient of objective function C C ============================================================================= C subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision GRAD(N), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i do i = 1, N GRAD(i) = 2.d0*(X(i)-1.d0) enddo IERR = 0 return end C C ============================================================================= C C Computation of equality constraints C C ============================================================================= C subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR) implicit none integer N, NEW_X, M double precision G(M), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer j do j = 1, M G(j) = (X(j+1)**2 + 1.5d0*X(j+1) - DAT(j))*COS(X(j+2)) - X(j) enddo IERR = 0 return end C C ============================================================================= C C Computation of Jacobian of equality constraints C C ============================================================================= C subroutine EV_JAC_G(TASK, N, X, NEW_X, M, NZ, ACON, AVAR, A, 1 IDAT, DAT, IERR) integer TASK, N, NEW_X, M, NZ double precision X(N), A(NZ) integer ACON(NZ), AVAR(NZ) double precision DAT(*) integer IDAT(*) integer IERR integer j, inz C if( TASK.eq.0 ) then inz = 1 do j = 1, M ACON(inz) = j AVAR(inz) = j inz = inz + 1 ACON(inz) = j AVAR(inz) = j + 1 inz = inz + 1 ACON(inz) = j AVAR(inz) = j + 2 inz = inz + 1 enddo else inz = 1 do j = 1, M A(inz) = -1.d0 inz = inz + 1 A(inz) = (2.d0*X(j+1)+1.5d0)*COS(X(j+2)) inz = inz + 1 A(inz) = -(x(j+1)**2 + 1.5d0*X(j+1) - DAT(j))*SIN(X(j+2)) inz = inz + 1 enddo endif IERR = 0 return end C C ============================================================================= C C Computation of Hessian of Lagrangian C C ============================================================================= C subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM, 1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR) implicit none integer TASK, N, NEW_X, M, NEW_LAM, NNZH double precision X(N), OBJFACT, LAM(M), HESS(NNZH) integer IRNH(NNZH), ICNH(NNZH) double precision DAT(*) integer IDAT(*) integer IERR integer i, inz C if( TASK.eq.0 ) then inz = 1 IRNH(inz) = 1 ICNH(inz) = 1 inz = inz + 1 do i = 2, N-1 IRNH(inz) = i ICNH(inz) = i inz = inz + 1 IRNH(inz) = i ICNH(inz) = i + 1 inz = inz + 1 enddo IRNH(inz) = N ICNH(inz) = N inz = inz + 1 else inz = 1 HESS(inz) = OBJFACT*2.d0 inz = inz + 1 do i = 2, N-1 HESS(inz) = OBJFACT*2.d0 + LAM(i-1)*2.d0*COS(X(i+1)) if (i.gt.2) then HESS(inz) = HESS(inz) - LAM(i-2)*(X(i-1)**2 1 + 1.5d0*X(i-1) - DAT(i-2))*COS(X(i)) endif inz = inz + 1 HESS(inz) = -LAM(i-1)*(2.d0*X(i)+1.5d0)*SIN(X(i+1)) inz = inz + 1 enddo HESS(inz) = OBJFACT*2.d0 - LAM(N-2)*(X(N-1)**2 + 1.5d0*X(N-1) 1 - DAT(N-2))*COS(X(N)) endif IERR = 0 return end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/3-solution/Makefile.in0000644000076600007660000000462311506613655024713 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialFortran@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialFortran.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = # Directory to the sources for the (example) problem definition files SRCDIR = . VPATH = . ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # Fortran Compiler options F77 = @F77@ # Fotran Compiler options FFLAGS = @FFLAGS@ # additional Fortran Compiler options for linking F77LINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .f .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(F77) $(F77LINKFLAGS) $(FFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) IPOPT.OUT .f.o: $(F77) $(FFLAGS) $(INCL) -c -o $@ $< .f.obj: $(F77) $(FFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/2-mistake/0000755000076600007660000000000012214537465022422 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f.in0000644000076600007660000002421611504216567026340 0ustar coincoinC Copyright (C) 2009 International Business Machines. C All Rights Reserved. C This code is published under the Eclipse Public License. C C $Id: hs071_f.f.in 699 2006-04-05 21:05:18Z andreasw $ C C Author: Andreas Waechter IBM 2009-04-02 C C ============================================================================= C C This file is part of the Ipopt tutorial. It is a version with C mistakes for the Fortran implemention of the coding exercise problem C (in AMPL formulation): C C param n := 4; C C var x {1..n} <= 0, >= -1.5, := -0.5; C C minimize obj: C sum{i in 1..n} (x[i]-1)^2; C C subject to constr {i in 2..n-1}: C (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; C C The constant term "i/n" in the constraint is supposed to be input data C C ============================================================================= C C C ============================================================================= C C Main driver program C C ============================================================================= C program tutorial C implicit none C C include the Ipopt return codes C include 'IpReturnCodes.inc' C C Size of the problem (number of variables and equality constraints) C integer NMAX, MMAX, IDX_STY parameter (NMAX = 1000, MMAX = 1000, IDX_STY = 1 ) integer N, M, NELE_JAC, NELE_HESS C C Space for multipliers and constraints C double precision LAM(MMAX) double precision G(MMAX) C C Vector of variables C double precision X(NMAX) C C Vector of lower and upper bounds C double precision X_L(NMAX), X_U(NMAX), Z_L(NMAX), Z_U(NMAX) double precision G_L(MMAX), G_U(MMAX) C C Private data for evaluation routines C This could be used to pass double precision and integer arrays untouched C to the evaluation subroutines EVAL_* C double precision DAT(MMAX) integer IDAT(1) C C Place for storing the Ipopt Problem Handle @BIT32FCOMMENT@C for 32 bit platforms @BIT32FCOMMENT@ integer IPROBLEM @BIT32FCOMMENT@ integer IPCREATE @BIT64FCOMMENT@C for 64 bit platforms: @BIT64FCOMMENT@ integer*8 IPROBLEM @BIT64FCOMMENT@ integer*8 IPCREATE C integer IERR integer IPSOLVE, IPADDSTROPTION integer IPADDNUMOPTION, IPADDINTOPTION integer IPOPENOUTPUTFILE C double precision f integer i C C The following are the Fortran routines for computing the model C functions and their derivatives - their code can be found furhter C down in this file. C external EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS C C Set the problem size C N = 5 ! 100 C C Number of constraints C M = N - 2 C C Number of nonzeros in constraint Jacobian C NELE_JAC = 3*M C C Number of nonzeros in Lagrangian Hessian C NELE_HESS = N + (N-2) C C Set initial point and bounds C do i = 1, N X_L(i) = -1.5d0 X_U(i) = -0.d0 X(i) = -0.5d0 C if checking derivatives,it is useful to choose different values C X(i) = -0.5d0 + 0.1d0*DBLE(i)/DBLE(N); enddo C C Set bounds for the constraints C do i = 1, M G_L(i) = 0.d0 G_U(i) = 0.d0 enddo C C First create a handle for the Ipopt problem (and read the options C file) C IPROBLEM = IPCREATE(N, X_L, X_U, M, G_L, G_U, NELE_JAC, NELE_HESS, 1 IDX_STY, EV_F, EV_G, EV_GRAD_F, EV_JAC_G, EV_HESS) if (IPROBLEM.eq.0) then write(*,*) 'Error creating an Ipopt Problem handle.' stop endif C C Open an output file C IERR = IPOPENOUTPUTFILE(IPROBLEM, 'IPOPT.OUT', 5) if (IERR.ne.0 ) then write(*,*) 'Error opening the Ipopt output file.' goto 9000 endif C C Note: The following options are only examples, they might not be C suitable for your optimization problem. C C Set a string option C IERR = IPADDSTROPTION(IPROBLEM, 'mu_strategy', 'adaptive') if (IERR.ne.0 ) goto 9990 C C Set an integer option C IERR = IPADDINTOPTION(IPROBLEM, 'max_iter', 3000) if (IERR.ne.0 ) goto 9990 C C Set a double precision option C IERR = IPADDNUMOPTION(IPROBLEM, 'tol', 1.d-7) if (IERR.ne.0 ) goto 9990 C C Prepare the private data C IDAT(1) = N do i = 1, M DAT(i) = DBLE(i+1)/DBLE(N) enddo C C Call optimization routine C IERR = IPSOLVE(IPROBLEM, X, G, F, LAM, Z_L, Z_U, IDAT, DAT) C C Output: C if( IERR.eq.IP_SOLVE_SUCCEEDED ) then write(*,*) write(*,*) 'The solution was found.' write(*,*) write(*,*) 'The final value of the objective function is ',f write(*,*) write(*,*) 'The optimal values of X are:' write(*,*) do i = 1, N write(*,*) 'X (',i,') = ',X(i) enddo write(*,*) write(*,*) 'The multipliers for the lower bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_L(',i,') = ',Z_L(i) enddo write(*,*) write(*,*) 'The multipliers for the upper bounds are:' write(*,*) do i = 1, N write(*,*) 'Z_U(',i,') = ',Z_U(i) enddo write(*,*) write(*,*) 'The multipliers for the equality constraints are:' write(*,*) do i = 1, M write(*,*) 'LAM(',i,') = ',LAM(i) enddo write(*,*) else write(*,*) write(*,*) 'An error occoured.' write(*,*) 'The error code is ',IERR write(*,*) endif C 9000 continue C C Clean up C call IPFREE(IPROBLEM) stop C 9990 continue write(*,*) 'Error setting an option' goto 9000 end C C ============================================================================= C C Computation of objective function C C ============================================================================= C subroutine EV_F(N, X, NEW_X, F, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision F, X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i F = 0.d0 do i = 1, N F = F + (X(i)-1.d0)**2 enddo IERR = 0 return end C C ============================================================================= C C Computation of gradient of objective function C C ============================================================================= C subroutine EV_GRAD_F(N, X, NEW_X, GRAD, IDAT, DAT, IERR) implicit none integer N, NEW_X double precision GRAD(N), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer i do i = 2, N GRAD(i) = 2.d0*(X(i)-1.d0) enddo IERR = 0 return end C C ============================================================================= C C Computation of equality constraints C C ============================================================================= C subroutine EV_G(N, X, NEW_X, M, G, IDAT, DAT, IERR) implicit none integer N, NEW_X, M double precision G(M), X(N) double precision DAT(*) integer IDAT(*) integer IERR integer j do j = 1, M G(j) = (X(j+1)**2 + 1.5d0*X(j+1) - DAT(j))*COS(X(j+2)) - X(j) enddo IERR = 0 return end C C ============================================================================= C C Computation of Jacobian of equality constraints C C ============================================================================= C subroutine EV_JAC_G(TASK, N, X, NEW_X, M, NZ, ACON, AVAR, A, 1 IDAT, DAT, IERR) integer TASK, N, NEW_X, M, NZ double precision X(N), A(NZ) integer ACON(NZ), AVAR(NZ) double precision DAT(*) integer IDAT(*) integer IERR integer j, inz C if( TASK.eq.0 ) then inz = 1 do j = 1, M ACON(inz) = j AVAR(inz) = j inz = inz + 1 ACON(inz) = j AVAR(inz) = j + 1 inz = inz + 1 ACON(inz) = j AVAR(inz) = j + 1 inz = inz + 1 enddo else inz = 1 do j = 1, M A(inz) = 1.d0 inz = inz + 1 A(inz) = (2.d0*X(j+1)+1.5d0)*COS(X(j+2)) inz = inz + 1 A(inz) = -(x(j+1)**2 + 1.5d0*X(j+1) - DAT(j))*SIN(X(j+2)) inz = inz + 1 enddo endif IERR = 0 return end C C ============================================================================= C C Computation of Hessian of Lagrangian C C ============================================================================= C subroutine EV_HESS(TASK, N, X, NEW_X, OBJFACT, M, LAM, NEW_LAM, 1 NNZH, IRNH, ICNH, HESS, IDAT, DAT, IERR) implicit none integer TASK, N, NEW_X, M, NEW_LAM, NNZH double precision X(N), OBJFACT, LAM(M), HESS(NNZH) integer IRNH(NNZH), ICNH(NNZH) double precision DAT(*) integer IDAT(*) integer IERR integer i, inz C if( TASK.eq.0 ) then inz = 1 IRNH(inz) = 1 ICNH(inz) = 1 inz = inz + 1 do i = 2, N-1 IRNH(inz) = i ICNH(inz) = i inz = inz + 1 IRNH(inz) = i ICNH(inz) = i + 1 inz = inz + 1 enddo IRNH(inz) = N - 1 ICNH(inz) = N - 1 inz = inz + 1 else inz = 1 HESS(inz) = OBJFACT*2.d0 inz = inz + 1 do i = 2, N-1 HESS(inz) = OBJFACT*2.d0 + LAM(i-1)*2.d0*COS(X(i+1)) if (i.gt.2) then HESS(inz) = HESS(inz) - LAM(i-2)*(X(i)*X(i) + 1.5d0*X(i) 1 - DAT(i-2))*COS(X(i)) endif inz = inz + 1 HESS(inz) = -LAM(i-1)*(2.d0*X(i)+1.5d0)*SIN(X(i+1)) inz = inz + 1 enddo HESS(inz) = OBJFACT*2.d0 - LAM(N-2)*(X(N)**2 + 1.5d0*X(N) 1 - DAT(N-2))*COS(X(N)) endif IERR = 0 return end Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Fortran/2-mistake/Makefile.in0000644000076600007660000000462311506613655024473 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialFortran@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialFortran.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = # Directory to the sources for the (example) problem definition files SRCDIR = . VPATH = . ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # Fortran Compiler options F77 = @F77@ # Fotran Compiler options FFLAGS = @FFLAGS@ # additional Fortran Compiler options for linking F77LINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .f .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(F77) $(F77LINKFLAGS) $(FFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -f $(EXE) $(OBJS) IPOPT.OUT .f.o: $(F77) $(FFLAGS) $(INCL) -c -o $@ $< .f.obj: $(F77) $(FFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/0000755000076600007660000000000012214537465017735 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/1-skeleton/0000755000076600007660000000000012214537465021717 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.cpp0000644000076600007660000001263711573147064025552 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is the skeleton for // the C++ implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include "TutorialCpp_nlp.hpp" #include #include // We use sin and cos #include using namespace Ipopt; // constructor TutorialCpp_NLP::TutorialCpp_NLP(Index N, const Number* a) : N_(N) { // Copy the values for the constants appearing in the constraints a_ = new Number[N_-2]; for (Index i=0; i= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include #include "IpIpoptApplication.hpp" #include "TutorialCpp_nlp.hpp" using namespace Ipopt; int main(int argv, char* argc[]) { // Set the data: // Number of variables Index N = 300; // constant terms in the constraints Number* a = new double[N-2]; for (Index i=0; i mynlp = new TutorialCpp_NLP(N, a); // Create a new instance of IpoptApplication // (use a SmartPtr, not raw) SmartPtr app = new IpoptApplication(); // Change some options // Note: The following choices are only examples, they might not be // suitable for your optimization problem. app->Options()->SetNumericValue("tol", 1e-10); app->Options()->SetStringValue("mu_strategy", "adaptive"); // Intialize the IpoptApplication and process the options app->Initialize(); // Ask Ipopt to solve the problem ApplicationReturnStatus status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { printf("\n\n*** The problem solved!\n"); } else { printf("\n\n*** The problem FAILED!\n"); } // As the SmartPtrs go out of scope, the reference count // will be decremented and the objects will automatically // be deleted. // However, we created the Number array for a here and have to delete it delete [] a; return (int) status; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.hpp0000644000076600007660000001031311504216567025543 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is the skeleton for // the C++ implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #ifndef __TUTORIALCPP_NLP_HPP__ #define __TUTORIALCPP_NLP_HPP__ #include "IpTNLP.hpp" using namespace Ipopt; // This inherits from Ipopt's TNLP class TutorialCpp_NLP : public TNLP { public: /** constructor that takes in problem data */ TutorialCpp_NLP(Index N, const Number* a); /** default destructor */ virtual ~TutorialCpp_NLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ TutorialCpp_NLP(); TutorialCpp_NLP(const TutorialCpp_NLP&); TutorialCpp_NLP& operator=(const TutorialCpp_NLP&); //@} /** @name NLP data */ //@{ /** Number of variables */ Index N_; /** Value of constants in constraints */ Number* a_; //@} }; #endif Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/1-skeleton/Makefile.in0000644000076600007660000000474511576071414023773 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialCpp@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialCpp_main.@OBJEXT@ \ TutorialCpp_nlp.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -rf $(EXE) $(OBJS) ipopt.out .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/3-solution/0000755000076600007660000000000012214537465021751 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.cpp0000644000076600007660000001615411573147064025602 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is a correct version // of a C++ implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include "TutorialCpp_nlp.hpp" #include #include // We use sin and cos #include using namespace Ipopt; // constructor TutorialCpp_NLP::TutorialCpp_NLP(Index N, const Number* a) : N_(N) { // Copy the values for the constants appearing in the constraints a_ = new Number[N_-2]; for (Index i=0; i1) { values[inz] -= lambda[i-2]*(x[i-1]*x[i-1] + 1.5*x[i-1] -a_[i-2])*cos(x[i]); } inz++; values[inz] = -lambda[i-1]*(2.*x[i]+1.5)*sin(x[i+1]); inz++; } values[inz] = obj_factor*2.; values[inz] -= lambda[n-3]*(x[n-2]*x[n-2] + 1.5*x[n-2] -a_[n-3])*cos(x[n-1]); inz++; assert(inz == nele_hess); } return true; } void TutorialCpp_NLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // here is where we would store the solution to variables, or write // to a file, etc so we could use the solution. printf("\nWriting solution file solution.txt\n"); FILE* fp = fopen("solution.txt", "w"); // For this example, we write the solution to the console fprintf(fp, "\n\nSolution of the primal variables, x\n"); for (Index i=0; i= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include #include "IpIpoptApplication.hpp" #include "TutorialCpp_nlp.hpp" using namespace Ipopt; int main(int argv, char* argc[]) { // Set the data: // Number of variables Index N = 100; // constant terms in the constraints Number* a = new double[N-2]; for (Index i=0; i mynlp = new TutorialCpp_NLP(N, a); // Create a new instance of IpoptApplication // (use a SmartPtr, not raw) SmartPtr app = new IpoptApplication(); // Change some options // Note: The following choices are only examples, they might not be // suitable for your optimization problem. app->Options()->SetNumericValue("tol", 1e-10); app->Options()->SetStringValue("mu_strategy", "adaptive"); // Intialize the IpoptApplication and process the options app->Initialize(); // Ask Ipopt to solve the problem ApplicationReturnStatus status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { printf("\n\n*** The problem solved!\n"); } else { printf("\n\n*** The problem FAILED!\n"); } // As the SmartPtrs go out of scope, the reference count // will be decremented and the objects will automatically // be deleted. // However, we created the Number array for a here and have to delete it delete [] a; return (int) status; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.hpp0000644000076600007660000001031511504216567025577 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is a correct version // of a C++ implemention of the coding exercise problem (in AMPL // formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #ifndef __TUTORIALCPP_NLP_HPP__ #define __TUTORIALCPP_NLP_HPP__ #include "IpTNLP.hpp" using namespace Ipopt; // This inherits from Ipopt's TNLP class TutorialCpp_NLP : public TNLP { public: /** constructor that takes in problem data */ TutorialCpp_NLP(Index N, const Number* a); /** default destructor */ virtual ~TutorialCpp_NLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ TutorialCpp_NLP(); TutorialCpp_NLP(const TutorialCpp_NLP&); TutorialCpp_NLP& operator=(const TutorialCpp_NLP&); //@} /** @name NLP data */ //@{ /** Number of variables */ Index N_; /** Value of constants in constraints */ Number* a_; //@} }; #endif Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/3-solution/Makefile.in0000644000076600007660000000500311576071414024011 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialCpp@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialCpp_main.@OBJEXT@ \ TutorialCpp_nlp.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -rf $(EXE) $(OBJS) ipopt.out .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/2-mistake/0000755000076600007660000000000012214537465021531 5ustar coincoinIpopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.cpp0000644000076600007660000001655611573147064025370 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.cpp 2005 2011-06-06 12:55:16Z stefan $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is a version with // mistakes for the C++ implemention of the coding exercise problem // (in AMPL formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include "TutorialCpp_nlp.hpp" #include #include // We use sin and cos #include using namespace Ipopt; // constructor TutorialCpp_NLP::TutorialCpp_NLP(Index N, const Number* a) : N_(N) { // Copy the values for the constants appearing in the constraints a_ = new Number[N_-2]; for (Index i=0; i1) { values[inz] -= lambda[i-2]*(x[i]*x[i] + 1.5*x[i-1] -a_[i-2])*cos(x[i]); } inz++; values[inz] = -lambda[i-1]*(2.*x[i]+1.5)*sin(x[i+1]); inz++; } values[inz] = obj_factor*2.; values[inz] -= lambda[n-3]*(x[n-1]*x[n-1] + 1.5*x[n-2] -a_[n-3])*cos(x[n-1]); inz++; assert(inz == nele_hess); } return true; } void TutorialCpp_NLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // here is where we would store the solution to variables, or write // to a file, etc so we could use the solution. printf("\nWriting solution file solution.txt\n"); FILE* fp = fopen("solution.txt", "w"); // For this example, we write the solution to the console fprintf(fp, "\n\nSolution of the primal variables, x\n"); for (Index i=0; i= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #include #include "IpIpoptApplication.hpp" #include "TutorialCpp_nlp.hpp" using namespace Ipopt; int main(int argv, char* argc[]) { // Set the data: // Number of variables Index N = 5; //100; // constant terms in the constraints Number* a = new double[N-2]; for (Index i=0; i mynlp = new TutorialCpp_NLP(N, a); // Create a new instance of IpoptApplication // (use a SmartPtr, not raw) SmartPtr app = new IpoptApplication(); // Change some options // Note: The following choices are only examples, they might not be // suitable for your optimization problem. app->Options()->SetNumericValue("tol", 1e-10); app->Options()->SetStringValue("mu_strategy", "adaptive"); // Intialize the IpoptApplication and process the options app->Initialize(); // Ask Ipopt to solve the problem ApplicationReturnStatus status = app->OptimizeTNLP(mynlp); if (status == Solve_Succeeded) { printf("\n\n*** The problem solved!\n"); } else { printf("\n\n*** The problem FAILED!\n"); } // As the SmartPtrs go out of scope, the reference count // will be decremented and the objects will automatically // be deleted. // However, we created the Number array for a here and have to delete it delete [] a; return (int) status; } Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.hpp0000644000076600007660000001032611504216567025361 0ustar coincoin// Copyright (C) 2009 International Business Machines. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: TutorialCpp_nlp.hpp 1861 2010-12-21 21:34:47Z andreasw $ // // Author: Andreas Waechter IBM 2009-04-02 // This file is part of the Ipopt tutorial. It is a version with // mistakes for the C++ implemention of the coding exercise problem // (in AMPL formulation): // // param n := 4; // // var x {1..n} <= 0, >= -1.5, := -0.5; // // minimize obj: // sum{i in 1..n} (x[i]-1)^2; // // subject to constr {i in 2..n-1}: // (x[i]^2+1.5*x[i]-i/n)*cos(x[i+1]) - x[i-1] = 0; // // The constant term "i/n" in the constraint is supposed to be input data // #ifndef __TUTORIALCPP_NLP_HPP__ #define __TUTORIALCPP_NLP_HPP__ #include "IpTNLP.hpp" using namespace Ipopt; // This inherits from Ipopt's TNLP class TutorialCpp_NLP : public TNLP { public: /** constructor that takes in problem data */ TutorialCpp_NLP(Index N, const Number* a); /** default destructor */ virtual ~TutorialCpp_NLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ TutorialCpp_NLP(); TutorialCpp_NLP(const TutorialCpp_NLP&); TutorialCpp_NLP& operator=(const TutorialCpp_NLP&); //@} /** @name NLP data */ //@{ /** Number of variables */ Index N_; /** Value of constants in constraints */ Number* a_; //@} }; #endif Ipopt-3.11.4/Ipopt/tutorial/CodingExercise/Cpp/2-mistake/Makefile.in0000644000076600007660000000500311576071414023571 0ustar coincoin# Copyright (C) 2009 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # $Id: Makefile.in 1135 2007-12-27 19:23:06Z andreasw $ ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = TutorialCpp@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = TutorialCpp_main.@OBJEXT@ \ TutorialCpp_nlp.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @CXXLIBS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -rf $(EXE) $(OBJS) ipopt.out .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/README0000644000076600007660000000044010440474475013333 0ustar coincoinThese directories contain the C++ reimplementation of the interior point NLP solver Ipopt. For more inforamation, see Docs/documentation.pdf or see the online version of it at http://www.coin-or.org/Ipopt/documentation/ The project's website is at http://projects.coin-or.org/Ipopt Ipopt-3.11.4/Ipopt/test/0000755000076600007660000000000012214537465013434 5ustar coincoinIpopt-3.11.4/Ipopt/test/run_unitTests.in0000644000076600007660000000547712057446772016674 0ustar coincoin#!/bin/sh # (C) Copyright 2006 International Business Machines # This file is distributed under the Eclipse Public License # # $Id$ # # Author: Andreas Waechter IBM 2006-03-31 srcdir="@srcdir@" retval=0 # add path for Matlab's MA57 library, if we use it # for some reasons, the path could not be stored in the Ipopt # library via -rpath if test -n "@MWMA57PATH@" ; then export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:@MWMA57PATH@" export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:@MWMA57PATH@" fi echo " " echo Running unitTests... echo " " # AMPL Solver executable echo Testing AMPL Solver Executable... if test -x ../src/Apps/AmplSolver/ipopt ; then if test -f mytoy.nl; then remove_mytoy=no else cp "$srcdir/mytoy.nl" . remove_mytoy=yes fi ../src/Apps/AmplSolver/ipopt mytoy.nl >tmpfile 2>&1 grep "EXIT: Optimal Solution Found." tmpfile 1>/dev/null 2>&1 if test $? = 0; then echo " Test passed!" else retval=-1 echo " " echo " ---- 8< ---- Start of test program output ---- 8< ----" cat tmpfile echo " ---- 8< ---- End of test program output ---- 8< ----" echo " " echo " ******** Test FAILED! ********" echo "Output of the test program is above." fi rm -rf tmpfile mytoy.sol if test "$remove_mytoy" = "yes"; then rm -rf mytoy.nl fi else echo " no AMPL solver executable found, skipping test..." fi # C++ Example echo Testing C++ Example... ./hs071_cpp >tmpfile 2>&1 grep "EXIT: Optimal Solution Found." tmpfile 1>/dev/null 2>&1 if test $? = 0; then echo " Test passed!" else retval=-1 echo " " echo " ---- 8< ---- Start of test program output ---- 8< ----" cat tmpfile echo " ---- 8< ---- End of test program output ---- 8< ----" echo " " echo " ******** Test FAILED! ********" echo "Output of the test program is above." fi rm -rf tmpfile # C Example echo Testing C Example... ./hs071_c >tmpfile 2>&1 grep "EXIT: Optimal Solution Found." tmpfile 1>/dev/null 2>&1 if test $? = 0; then echo " Test passed!" else retval=-1 echo " " echo " ---- 8< ---- Start of test program output ---- 8< ----" cat tmpfile echo " ---- 8< ---- End of test program output ---- 8< ----" echo " " echo " ******** Test FAILED! ********" echo "Output of the test program is above." fi rm -rf tmpfile # Fortran Example echo Testing Fortran Example... ./hs071_f >tmpfile 2>&1 grep "EXIT: Optimal Solution Found." tmpfile 1>/dev/null 2>&1 if test $? = 0; then echo " Test passed!" else retval=-1 echo " " echo " ---- 8< ---- Start of test program output ---- 8< ----" cat tmpfile echo " ---- 8< ---- End of test program output ---- 8< ----" echo " " echo " ******** Test FAILED! ********" echo "Output of the test program is above." fi rm -rf tmpfile # clean up rm -rf tmpfile debug.out ipopt.out IPOPT.OUT exit $retval Ipopt-3.11.4/Ipopt/test/Makefile.am0000644000076600007660000000433711573147064015476 0ustar coincoin# Copyright (C) 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2005 2011-06-06 12:55:16Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 AUTOMAKE_OPTIONS = foreign ######################################################################## # unitTest for CoinUtils # ######################################################################## noinst_PROGRAMS = hs071_cpp hs071_c hs071_f nodist_hs071_cpp_SOURCES = hs071_main.cpp hs071_nlp.cpp hs071_nlp.hpp hs071_cpp_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) hs071_cpp_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) nodist_hs071_c_SOURCES = hs071_c.c hs071_c_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) $(CXXLIBS) hs071_c_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) nodist_hs071_f_SOURCES = hs071_f.f hs071_f_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) $(CXXLIBS) hs071_f_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) # Here list all include flags, relative to this "srcdir" directory. This # "cygpath" stuff is necessary to compile with native compilers on Cygwin AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../src/Common` \ -I`$(CYGPATH_W) $(srcdir)/../src/LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../src/LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../src/Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../src/Interfaces` AM_FFLAGS = -I`$(CYGPATH_W) $(srcdir)/../src/Interfaces` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common hs071_f.f: $(LN_S) ../examples/hs071_f/$@ $@ test: hs071_cpp$(EXEEXT) hs071_c$(EXEEXT) hs071_f$(EXEEXT) chmod u+x ./run_unitTests ./run_unitTests unitTest: test .PHONY: test uniTest ######################################################################## # Cleaning stuff # ######################################################################## # Here we list everything that is not generated by the compiler, e.g., # output files of a program DISTCLEANFILES = hs071_f.f Ipopt-3.11.4/Ipopt/test/Makefile.in0000644000076600007660000005625312156624616015514 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = hs071_cpp$(EXEEXT) hs071_c$(EXEEXT) hs071_f$(EXEEXT) subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/run_unitTests.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = run_unitTests hs071_main.cpp hs071_nlp.cpp \ hs071_nlp.hpp hs071_c.c PROGRAMS = $(noinst_PROGRAMS) nodist_hs071_c_OBJECTS = hs071_c.$(OBJEXT) hs071_c_OBJECTS = $(nodist_hs071_c_OBJECTS) am__DEPENDENCIES_1 = nodist_hs071_cpp_OBJECTS = hs071_main.$(OBJEXT) hs071_nlp.$(OBJEXT) hs071_cpp_OBJECTS = $(nodist_hs071_cpp_OBJECTS) nodist_hs071_f_OBJECTS = hs071_f.$(OBJEXT) hs071_f_OBJECTS = $(nodist_hs071_f_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) LTF77COMPILE = $(LIBTOOL) --tag=F77 --mode=compile $(F77) $(AM_FFLAGS) \ $(FFLAGS) F77LD = $(F77) F77LINK = $(LIBTOOL) --tag=F77 --mode=link $(F77LD) $(AM_FFLAGS) \ $(FFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(nodist_hs071_c_SOURCES) $(nodist_hs071_cpp_SOURCES) \ $(nodist_hs071_f_SOURCES) DIST_SOURCES = ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign nodist_hs071_cpp_SOURCES = hs071_main.cpp hs071_nlp.cpp hs071_nlp.hpp hs071_cpp_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) hs071_cpp_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) nodist_hs071_c_SOURCES = hs071_c.c hs071_c_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) $(CXXLIBS) hs071_c_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) nodist_hs071_f_SOURCES = hs071_f.f hs071_f_LDADD = ../src/Interfaces/libipopt.la $(IPOPTLIB_LIBS) $(CXXLIBS) hs071_f_DEPENDENCIES = ../src/Interfaces/libipopt.la $(IPOPTLIB_DEPENDENCIES) # Here list all include flags, relative to this "srcdir" directory. This # "cygpath" stuff is necessary to compile with native compilers on Cygwin AM_CPPFLAGS = -I`$(CYGPATH_W) $(srcdir)/../src/Common` \ -I`$(CYGPATH_W) $(srcdir)/../src/LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../src/LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../src/Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../src/Interfaces` AM_FFLAGS = -I`$(CYGPATH_W) $(srcdir)/../src/Interfaces` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common ######################################################################## # Cleaning stuff # ######################################################################## # Here we list everything that is not generated by the compiler, e.g., # output files of a program DISTCLEANFILES = hs071_f.f all: all-am .SUFFIXES: .SUFFIXES: .c .cpp .f .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh run_unitTests: $(top_builddir)/config.status $(srcdir)/run_unitTests.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done hs071_c$(EXEEXT): $(hs071_c_OBJECTS) $(hs071_c_DEPENDENCIES) @rm -f hs071_c$(EXEEXT) $(LINK) $(hs071_c_LDFLAGS) $(hs071_c_OBJECTS) $(hs071_c_LDADD) $(LIBS) hs071_cpp$(EXEEXT): $(hs071_cpp_OBJECTS) $(hs071_cpp_DEPENDENCIES) @rm -f hs071_cpp$(EXEEXT) $(CXXLINK) $(hs071_cpp_LDFLAGS) $(hs071_cpp_OBJECTS) $(hs071_cpp_LDADD) $(LIBS) hs071_f$(EXEEXT): $(hs071_f_OBJECTS) $(hs071_f_DEPENDENCIES) @rm -f hs071_f$(EXEEXT) $(F77LINK) $(hs071_f_LDFLAGS) $(hs071_f_OBJECTS) $(hs071_f_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hs071_c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hs071_main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hs071_nlp.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< .f.o: $(F77COMPILE) -c -o $@ $< .f.obj: $(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .f.lo: $(LTF77COMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-info-am hs071_f.f: $(LN_S) ../examples/hs071_f/$@ $@ test: hs071_cpp$(EXEEXT) hs071_c$(EXEEXT) hs071_f$(EXEEXT) chmod u+x ./run_unitTests ./run_unitTests unitTest: test .PHONY: test uniTest # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/test/mytoy.nl0000644000076600007660000000632310440474475015154 0ustar coincoing0 0 0 0 # toy problem - the 'g' indicates the file here is in ascii (other numbers (0,0,0,0) ignored) 4 3 1 0 0 # num vars, num constraints, num objectives, 0,0 1 0 # number nonlinear constraints, num nonlinear objectives 0 0 # num nonlinear network constraints, num linear network constraints, 2 0 0 # num nonlinear vars in constraints, objectives, both 0 0 0 1 # num linear network variables; functions; arith, flags 1 1 0 0 0 # discrete variables: binary, integer, nonlinear (b,c,o) 7 3 # number nonzeros in Jacobian, number nonzeros in linear part of objectives 0 0 # 0,0 0 0 0 0 0 # 0,0,0,0,0 // Note that the variables are in order y[1],y[2],x,z C0 # Here starts the nonlinear part of constraint-0 o0 # = add o5 # = raise-to-power o0 # = add n-0.5 # = constant -0.5 v0 # = the continuous variable y[1] n2 # = constant 2 o5 # = raise-to-power o0 # = add n-0.5 # = constant -0.5 v1 # = the continuous variable y[2] n2 # = constant 2 ....Here ends the nonlinear part of constraint-0 C1 # Here starts the nonlinear part of constraint-1 n0 # Here ends the nonlinear part of constraint-1 C2 # Here starts the nonlinear part of constraint-2 n0 # Here ends the nonlinear part of constraint-2 O0 0 # Here starts the nonlinear part of objective(-0) n0 # Here ends the nonlinear part of objective(-0) r # Here starts the right-hand side section 1 0.25 # constraint-0 body <= 0.25 1 0 # constraint-1 body <=0 1 2 # constraint-2 body <= 2 b # Here starts the bounds on variables section 2 0 # var-0 >= 0 2 0 # var-1 >= 0 0 0 1 # 0 <= var-2 <= 1 0 0 5 # 0 <= var-3 <= 5 k3 # INFO FOR JACOBIAN COLUMN COUNTS. THIS RECORD IS ALWAYS 'k' FOLLOWED BY NUMBER OF VARIABLES MINUS 1 2 # the number of nonzeros in the column2 0..0 of the jacobian 4 # the number of nonzeros in the columns 0..1 of the jacobian 6 # the number of nonzeros in the columns 0..2 of the jacobian J0 2 # Two coefficients for the row-0 of the (explicitly) linear part of the constraints 0 0 # var-0, linear coefficient 0 1 0 # var-1, linear coefficient 0 J1 2 # Two coefficients for the row-1 of the linear part of the constraints 0 -1 # var-0, linear coefficient -1 2 1 # var-2, linear coefficient 1 J2 3 # Three coefficients for the row-2 of the linear part of the constraints 1 1 # var-1, linear coefficient 1 2 1 # var-2, linear coefficient 1 3 1 # var-3, linear coefficient 1 G0 3 # Three coefficients for the linear part of objective(-0) 0 -1 # var-0, linear coefficient -1 1 -1 # var-1, linear coefficient -1 2 -1 # var-2, linear coefficient -1 Ipopt-3.11.4/Ipopt/configure0000755000076600007660000473254612214340172014374 0ustar coincoin#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for Ipopt 3.11.4. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # Copyright 2004, 2011 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package IPOPT which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='Ipopt' PACKAGE_TARNAME='ipopt' PACKAGE_VERSION='3.11.4' PACKAGE_STRING='Ipopt 3.11.4' PACKAGE_BUGREPORT='http://projects.coin-or.org/Ipopt/newticket' ac_unique_file="src/Common/IpDebug.hpp" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os ALWAYS_FALSE_TRUE ALWAYS_FALSE_FALSE have_svnversion IPOPT_SVN_REV EGREP LN_S CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX COIN_CXX_IS_CL_TRUE COIN_CXX_IS_CL_FALSE MPICXX CXXLIBS ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 FLIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS BLUEGENEEXTRA AIX_FIX_COMPILER_BUG_TRUE AIX_FIX_COMPILER_BUG_FALSE coin_have_doxygen coin_doxy_usedot coin_doxy_tagname coin_doxy_logname coin_doxy_tagfiles coin_doxy_excludes PKG_CONFIG ac_ct_PKG_CONFIG COIN_HAS_PKGCONFIG_TRUE COIN_HAS_PKGCONFIG_FALSE COIN_PKG_CONFIG_PATH COIN_PKG_CONFIG_PATH_UNINSTALLED BLAS_LIBS BLAS_CFLAGS BLAS_DATA BLAS_DEPENDENCIES BLAS_LIBS_INSTALLED BLAS_CFLAGS_INSTALLED BLAS_DATA_INSTALLED IPOPTLIB_CFLAGS IPOPTLIB_LIBS IPOPTLIB_PCLIBS IPOPTLIB_PCREQUIRES IPOPTLIB_DEPENDENCIES IPOPTLIB_CFLAGS_INSTALLED IPOPTLIB_LIBS_INSTALLED COIN_HAS_BLAS_TRUE COIN_HAS_BLAS_FALSE LAPACK_LIBS LAPACK_CFLAGS LAPACK_DATA LAPACK_DEPENDENCIES LAPACK_LIBS_INSTALLED LAPACK_CFLAGS_INSTALLED LAPACK_DATA_INSTALLED COIN_HAS_LAPACK_TRUE COIN_HAS_LAPACK_FALSE ASL_LIBS ASL_CFLAGS ASL_DATA ASL_DEPENDENCIES ASL_LIBS_INSTALLED ASL_CFLAGS_INSTALLED ASL_DATA_INSTALLED IPOPTAMPLINTERFACELIB_CFLAGS IPOPTAMPLINTERFACELIB_LIBS IPOPTAMPLINTERFACELIB_PCLIBS IPOPTAMPLINTERFACELIB_PCREQUIRES IPOPTAMPLINTERFACELIB_DEPENDENCIES IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED IPOPTAMPLINTERFACELIB_LIBS_INSTALLED COIN_HAS_ASL_TRUE COIN_HAS_ASL_FALSE HSL_LIBS HSL_CFLAGS HSL_DATA HSL_DEPENDENCIES HSL_LIBS_INSTALLED HSL_CFLAGS_INSTALLED HSL_DATA_INSTALLED COIN_HAS_HSL_TRUE COIN_HAS_HSL_FALSE MUMPS_LIBS MUMPS_CFLAGS MUMPS_DATA MUMPS_DEPENDENCIES MUMPS_LIBS_INSTALLED MUMPS_CFLAGS_INSTALLED MUMPS_DATA_INSTALLED COIN_HAS_MUMPS_TRUE COIN_HAS_MUMPS_FALSE BITS_PER_POINTER BIT32FCOMMENT BIT64FCOMMENT CXXAR HAVE_MA28_TRUE HAVE_MA28_FALSE JAVA_HOME JIPOPTDLL SHARED_FLAGS MEX_STATIC_TRUE MEX_STATIC_FALSE MEX_WINDOWS_TRUE MEX_WINDOWS_FALSE FRAMEWORK_VECLIB MATLAB_HOME MEXSUFFIX MWMA57PATH ASTYLE ASTYLEFLAGS IPALLLIBS HAVE_PARDISO_TRUE HAVE_PARDISO_FALSE HAVE_WSMP_TRUE HAVE_WSMP_FALSE BUILD_LINEARSOLVERLOADER_TRUE BUILD_LINEARSOLVERLOADER_FALSE BUILD_PARDISOLOADER_TRUE BUILD_PARDISOLOADER_FALSE BUILD_INEXACT_TRUE BUILD_INEXACT_FALSE LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_CXXDEFS_set=${CXXDEFS+set} ac_env_CXXDEFS_value=$CXXDEFS ac_cv_env_CXXDEFS_set=${CXXDEFS+set} ac_cv_env_CXXDEFS_value=$CXXDEFS ac_env_ADD_CXXFLAGS_set=${ADD_CXXFLAGS+set} ac_env_ADD_CXXFLAGS_value=$ADD_CXXFLAGS ac_cv_env_ADD_CXXFLAGS_set=${ADD_CXXFLAGS+set} ac_cv_env_ADD_CXXFLAGS_value=$ADD_CXXFLAGS ac_env_DBG_CXXFLAGS_set=${DBG_CXXFLAGS+set} ac_env_DBG_CXXFLAGS_value=$DBG_CXXFLAGS ac_cv_env_DBG_CXXFLAGS_set=${DBG_CXXFLAGS+set} ac_cv_env_DBG_CXXFLAGS_value=$DBG_CXXFLAGS ac_env_OPT_CXXFLAGS_set=${OPT_CXXFLAGS+set} ac_env_OPT_CXXFLAGS_value=$OPT_CXXFLAGS ac_cv_env_OPT_CXXFLAGS_set=${OPT_CXXFLAGS+set} ac_cv_env_OPT_CXXFLAGS_value=$OPT_CXXFLAGS ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_MPICXX_set=${MPICXX+set} ac_env_MPICXX_value=$MPICXX ac_cv_env_MPICXX_set=${MPICXX+set} ac_cv_env_MPICXX_value=$MPICXX ac_env_CXXLIBS_set=${CXXLIBS+set} ac_env_CXXLIBS_value=$CXXLIBS ac_cv_env_CXXLIBS_set=${CXXLIBS+set} ac_cv_env_CXXLIBS_value=$CXXLIBS ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_env_PKG_CONFIG_value=$PKG_CONFIG ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set} ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG ac_env_CXXAR_set=${CXXAR+set} ac_env_CXXAR_value=$CXXAR ac_cv_env_CXXAR_set=${CXXAR+set} ac_cv_env_CXXAR_value=$CXXAR # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Ipopt 3.11.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Ipopt 3.11.4:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-debug-ipopt compile project Ipopt with debug compiler flags --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-pkg-config disable use of pkg-config (if available) --disable-interpackage-dependencies disables deduction of Makefile dependencies from package linker flags --enable-inexact-solver enable inexact linear solver version EXPERIMENTAL! (default: no) --enable-matlab-static enable static linking of standard libraries into Ipopt mex file (default: no) --enable-matlab-ma57 enable linking against Matlab's MA57 library (if no HSL library is available) --enable-linear-solver-loader compile linear solver loader (default: yes) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-ipopt-verbosity specify the debug verbosity level for project Ipopt --with-ipopt-checklevel specify the sanity check level for project Ipopt --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-dot use dot (from graphviz) when creating documentation with doxygen if available; --without-dot to disable --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-coin-instdir prefix of installation directory for precompiled COIN packages --with-blas-lib linker flags for using package Blas --with-blas-incdir directory with header files for using package Blas --with-blas-datadir directory with data files for using package Blas --with-lapack specify LAPACK library (or BUILD to enforce use of ThirdParty/Lapack) --with-lapack-lib linker flags for using package Lapack --with-lapack-incdir directory with header files for using package Lapack --with-lapack-datadir directory with data files for using package Lapack --with-asl-lib linker flags for using package ASL --with-asl-incdir directory with header files for using package ASL --with-asl-datadir directory with data files for using package ASL --with-hsl-lib linker flags for using package HSL --with-hsl-incdir directory with header files for using package HSL --with-hsl-datadir directory with data files for using package HSL --with-mumps-lib linker flags for using package Mumps --with-mumps-incdir directory with header files for using package Mumps --with-mumps-datadir directory with data files for using package Mumps --with-pardiso specify Pardiso library --with-wsmp specify WSMP library --with-matlab-home specify location of matlab installation for the matlab Ipopt interface. The "mex" compiler should be in MATLAB_HOME/bin Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler CXXDEFS Additional -D flags to be used when compiling C++ code. ADD_CXXFLAGS Additional C++ compiler options DBG_CXXFLAGS Debug C++ compiler options OPT_CXXFLAGS Optimize C++ compiler options CXX C++ compiler command CXXFLAGS C++ compiler flags MPICXX C++ MPI Compiler CXXLIBS Libraries necessary for linking C++ code with Fortran compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler CPP C preprocessor CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility CXXAR Command for making archives from C++ objects (default is AR crv) - only needed for Example Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Ipopt configure 3.11.4 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2004, 2011 International Business Machines and others. All Rights Reserved. This file is part of the open source package IPOPT which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Ipopt $as_me 3.11.4, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. ############################################################################# # Standard build tool stuff # ############################################################################# # Get the system type ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # If this project depends on external projects, the Externals file in # the source root directory contains definition of where to find those # externals. The following macro ensures that those externals are # retrieved by svn if they are not there yet. # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false if false; then ALWAYS_FALSE_TRUE= ALWAYS_FALSE_FALSE='#' else ALWAYS_FALSE_TRUE='#' ALWAYS_FALSE_FALSE= fi # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers cat >>confdefs.h <<_ACEOF #define IPOPT_VERSION "$PACKAGE_VERSION" _ACEOF coin_majorver=`echo $PACKAGE_VERSION | sed -n -e 's/^\([0-9]*\).*/\1/gp'` coin_minorver=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.\([0-9]*\).*/\1/gp'` coin_releasever=`echo $PACKAGE_VERSION | sed -n -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/gp'` if test "x$coin_majorver" = x ; then coin_majorver=9999 ; fi if test "x$coin_minorver" = x ; then coin_minorver=9999 ; fi if test "x$coin_releasever" = x ; then coin_releasever=9999 ; fi cat >>confdefs.h <<_ACEOF #define IPOPT_VERSION_MAJOR $coin_majorver _ACEOF cat >>confdefs.h <<_ACEOF #define IPOPT_VERSION_MINOR $coin_minorver _ACEOF cat >>confdefs.h <<_ACEOF #define IPOPT_VERSION_RELEASE $coin_releasever _ACEOF # We use the following variable to have a string with the upper case # version of the project name COIN_PRJCT=IPOPT # Set the project's SVN revision number. The complicated sed expression # (made worse by quadrigraphs) ensures that things like 4123:4168MS end up # as a single number. # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svnversion+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svnversion"; then ac_cv_prog_have_svnversion="$have_svnversion" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svnversion="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svnversion" && ac_cv_prog_have_svnversion="no" fi fi have_svnversion=$ac_cv_prog_have_svnversion if test -n "$have_svnversion"; then echo "$as_me:$LINENO: result: $have_svnversion" >&5 echo "${ECHO_T}$have_svnversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "x$have_svnversion" = xyes; then svn_rev_tmp=`LANG=en_EN svnversion $srcdir 2>/dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then IPOPT_SVN_REV=`echo $svn_rev_tmp | sed -n -e 's/^[0-9]*://' -e 's/\([0-9]\)[^0-9]*$/\1/p'` cat >>confdefs.h <<_ACEOF #define IPOPT_SVN_REV $IPOPT_SVN_REV _ACEOF fi fi # Capture libtool library version, if given. coin_libversion=10:4:9 # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # Check whether --enable-debug-ipopt or --disable-debug-ipopt was given. if test "${enable_debug_ipopt+set}" = set; then enableval="$enable_debug_ipopt" case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug-ipopt" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug-ipopt" >&2;} { (exit 1); exit 1; }; } ;; esac else : fi; # m4_ifvaln([Ipopt], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Check whether --with-ipopt-verbosity or --without-ipopt-verbosity was given. if test "${with_ipopt_verbosity+set}" = set; then withval="$with_ipopt_verbosity" if test "$withval" = yes; then withval=1 fi coin_ipopt_verbosity=$withval else coin_ipopt_verbosity=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_IPOPT_VERBOSITY $coin_ipopt_verbosity _ACEOF # Check whether --with-ipopt-checklevel or --without-ipopt-checklevel was given. if test "${with_ipopt_checklevel+set}" = set; then withval="$with_ipopt_checklevel" if test "$withval" = yes; then withval=1 fi coin_ipopt_checklevel=$withval else coin_ipopt_checklevel=0 fi; cat >>confdefs.h <<_ACEOF #define COIN_IPOPT_CHECKLEVEL $coin_ipopt_checklevel _ACEOF # m4_ifvaln([Ipopt], # We need egrep and ln -s somewherw echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi # Get the name of the C compiler and appropriate compiler options case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the C++ compiler and appropriate compiler options #Let's try if that overcomes configuration problem with VC++ 6.0 ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu coin_has_cxx=yes save_cxxflags="$CXXFLAGS" # For *-*-solaris*, promote Studio/Workshop compiler to front of list. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="g++ cl" fi ;; *-*-solaris*) comps="CC xlC_r aCC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; *-darwin*) comps="g++ c++ CC" ;; *-linux-gnu*) comps="g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC xlC_r aCC CC" ;; *) comps="xlC_r aCC CC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CXX || test "${ac_cv_prog_CXX+set}" != set || { ac_cv_prog_CXX=; export ac_cv_prog_CXX; } # AC_MSG_NOTICE([C++ compiler candidates: $comps]) ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #AC_PROG_CXX sets CXX to g++ if it cannot find a working C++ compiler #thus, we test here whether $CXX is actually working ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking whether C++ compiler $CXX works" >&5 echo $ECHO_N "checking whether C++ compiler $CXX works... $ECHO_C" >&6; cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: failed to find a C++ compiler or C++ compiler $CXX does not work" >&5 echo "$as_me: error: failed to find a C++ compiler or C++ compiler $CXX does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu coin_cxx_is_cl=false # It seems that we need to cleanup something here for the Windows case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh mv confdefs.hh confdefs.h coin_cxx_is_cl=true ;; esac # add automake conditional so we can recognize cl compiler in makefile if test $coin_cxx_is_cl = true; then COIN_CXX_IS_CL_TRUE= COIN_CXX_IS_CL_FALSE='#' else COIN_CXX_IS_CL_TRUE='#' COIN_CXX_IS_CL_FALSE= fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cxx_g" = yes ; then ac_cv_prog_cxx_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CXXFLAGS="$save_cxxflags" # Check if a project specific CXXFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CXXFLAGS+set} if test x$coin_tmp = xset; then eval CXXFLAGS=\${${COIN_PRJCT}_CXXFLAGS} fi fi if test x"$CXXFLAGS" = x; then # ToDo decide whether we want -DNDEBUG for optimization coin_add_cxxflags= coin_opt_cxxflags= coin_dbg_cxxflags= coin_warn_cxxflags= if test "$GXX" = "yes"; then case "$CXX" in icpc* | */icpc*) ;; *) # ToDo decide about unroll-loops coin_opt_cxxflags="-O3" coin_add_cxxflags="-pipe" coin_dbg_cxxflags="-g -O0" coin_warn_cxxflags="-Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cxxflags="-pedantic-errors $coin_warn_cxxflags" ;; esac case $enable_doscompile in mingw) CXXFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cxxflags="-mno-cygwin $coin_add_cxxflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CXXFLAGS= ;; esac esac fi # Note that we do not need to cover GCC in the following tests. if test -z "$coin_opt_cxxflags"; then case $build in *-cygwin* | *-mingw*) case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -O2' coin_dbg_cxxflags='-MDd' else coin_opt_cxxflags='-MT -O2' coin_dbg_cxxflags='-MTd' fi coin_add_cxxflags='-nologo -EHsc -GR -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -Ox' coin_dbg_cxxflags='-MDd -debug' else coin_opt_cxxflags='-MT -Ox' coin_dbg_cxxflags='-MTd -debug' fi coin_add_cxxflags='-nologo -EHsc -GR -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CXX" in icpc* | */icpc*) coin_opt_cxxflags="-O3 -ip -mp1" coin_add_cxxflags="" coin_dbg_cxxflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CXXFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cxxflags="-i_dynamic $coin_add_cxxflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgCC* | */pgCC*) coin_opt_cxxflags="-fast" coin_add_cxxflags="-Kieee -pc 64" coin_dbg_cxxflags="-g" ;; esac ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) coin_opt_cxxflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cxxflags="-bmaxdata:0x80000000 -qrtti=dyna -qsuppress=1500-036 -qsuppress=1500-029 -qsourcetype=c++" coin_dbg_cxxflags="-g" ;; esac ;; *-hp-*) case "$CXX" in aCC* | */aCC* ) coin_opt_cxxflags="-O" coin_add_cxxflags="-AA" coin_dbg_cxxflags="-g" ;; esac ;; *-*-solaris*) coin_opt_cxxflags="-O4" coin_dbg_cxxflags="-g" ;; esac fi # Generic flag settings. If these don't work, add a case above. if test "$ac_cv_prog_cxx_g" = yes && test -z "$coin_dbg_cxxflags" ; then coin_dbg_cxxflags="-g" fi if test -z "$coin_opt_cxxflags"; then # Try if -O option works if nothing else is set CXXFLAGS=-O cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cxxflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cxxflags" = xyes; then coin_warn_cxxflags= fi # Do final setup of flags based on values determined above. if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$coin_dbg_cxxflags $coin_add_cxxflags $coin_warn_cxxflags" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$coin_opt_cxxflags $coin_add_cxxflags -DNDEBUG $coin_warn_cxxflags" fi DBG_CXXFLAGS="$DBG_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" OPT_CXXFLAGS="$OPT_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test "$coin_debug_compile" = "true"; then CXXFLAGS="$DBG_CXXFLAGS" else CXXFLAGS="$OPT_CXXFLAGS" fi # Handle the case where CXXFLAGS was set externally. else CXXFLAGS="$CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$CXXFLAGS" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$CXXFLAGS" fi fi # If CXXFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CXXFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CXXFLAGS="$CXXFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CXXFLAGS works save_CXXFLAGS="$CXXFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CXXFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags CXXFLAGS=\"$save_CXXFLAGS\" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually." >&5 echo "$as_me: WARNING: The flags CXXFLAGS=\"$save_CXXFLAGS\" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually." >&2;} CXXFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CXXFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CXXFLAGS does not work. I will continue with empty CXXFLAGS, but you might want to set CXXFLAGS manually." >&5 echo "$as_me: WARNING: This value for CXXFLAGS does not work. I will continue with empty CXXFLAGS, but you might want to set CXXFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C++ compiler options are: $CXXFLAGS" >&5 echo "$as_me: C++ compiler options are: $CXXFLAGS" >&6;} if test x"$MPICXX" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C++ compiler $MPICXX" >&5 echo "$as_me: Will use MPI C++ compiler $MPICXX" >&6;} CXX="$MPICXX" fi # correct the LD variable in a mingw build with MS or intel compiler case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the C++ runtime libraries in case we want to link with a C or # Fortran compiler ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXXLIBS"; then if test "$GXX" = "yes"; then case "$CXX" in icpc* | */icpc*) CXXLIBS="-lstdc++" ;; *) CXXLIBS="-lstdc++ -lm" # -lgcc" ;; esac else case $build in *-mingw32 | *-cygwin* ) case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL*) CXXLIBS=nothing;; esac;; *-linux-*) case "$CXX" in icpc* | */icpc*) CXXLIBS="-lstdc++" ;; pgCC* | */pgCC*) CXXLIBS="-lstd -lC -lc" ;; esac;; *-ibm-*) CXXLIBS="-lC -lc" ;; *-hp-*) CXXLIBS="-L/opt/aCC/lib -l++ -lstd_v2 -lCsup_v2 -lm -lcl -lc" ;; *-*-solaris*) CXXLIBS="-lCstd -lCrun" esac fi fi if test -z "$CXXLIBS"; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine CXXLIBS (C++ link libraries; necessary if main program is in Fortran or C)." >&5 echo "$as_me: WARNING: Could not automatically determine CXXLIBS (C++ link libraries; necessary if main program is in Fortran or C)." >&2;} else { echo "$as_me:$LINENO: Assuming that CXXLIBS is \"$CXXLIBS\"." >&5 echo "$as_me: Assuming that CXXLIBS is \"$CXXLIBS\"." >&6;} fi if test x"$CXXLIBS" = xnothing; then CXXLIBS= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the Fortran compiler and appropriate compiler options case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:4601:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Find out how to call Fortran from C and determine Fortran runtime libraries # get FLIBS ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking how to get verbose linking output from $F77" >&5 echo $ECHO_N "checking how to get verbose linking output from $F77... $ECHO_C" >&6 if test "${ac_cv_prog_f77_v+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" (eval echo $as_me:5182: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $F77" >&5 echo "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { echo "$as_me:$LINENO: WARNING: compilation failed" >&5 echo "$as_me: WARNING: compilation failed" >&2;} fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_v" >&5 echo "${ECHO_T}$ac_cv_prog_f77_v" >&6 echo "$as_me:$LINENO: checking for Fortran libraries of $F77" >&5 echo $ECHO_N "checking for Fortran libraries of $F77... $ECHO_C" >&6 if test "${ac_cv_f77_libs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" (eval echo $as_me:5260: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -f conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_f77_v_output" case $ac_f77_v_output in # If we are using xlf then replace all the commas with spaces. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/,/ /g'` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/\"-mGLOB[^\"]*\"/ /g'` ;; # If we are using Cray Fortran then delete quotes. # Use "\"" instead of '"' for font-lock-mode. # FIXME: a more general fix for quoted arguments with spaces? *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed "s/\"//g"` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi fi ;; # Ignore these flags. -lang* | -lcrt[01].o | -lcrtbegin.o | -lc | -lgcc | -libmil | -LANG:=*) ;; -lkernel32) test x"$CYGWIN" != xyes && ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -[LRuY]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue; then : else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`echo $ac_f77_v_output | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" fi echo "$as_me:$LINENO: result: $ac_cv_f77_libs" >&5 echo "${ECHO_T}$ac_cv_f77_libs" >&6 FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then { echo "$as_me:$LINENO: Corrected Fortran libraries: $FLIBS" >&5 echo "$as_me: Corrected Fortran libraries: $FLIBS" >&6;} fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for dummy main to link with Fortran libraries" >&5 echo $ECHO_N "checking for dummy main to link with Fortran libraries... $ECHO_C" >&6 if test "${ac_cv_f77_dummy_main+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # First, try linking without a dummy main: cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=none else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_fortran_dummy_main=unknown fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_fortran_dummy_main=$ac_func; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -f conftest* LIBS=$ac_f77_dm_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_f77_dummy_main" >&5 echo "${ECHO_T}$ac_cv_f77_dummy_main" >&6 F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown; then if test $F77_DUMMY_MAIN != none; then cat >>confdefs.h <<_ACEOF #define F77_DUMMY_MAIN $F77_DUMMY_MAIN _ACEOF if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then cat >>confdefs.h <<\_ACEOF #define FC_DUMMY_MAIN_EQ_F77 1 _ACEOF fi fi else { { echo "$as_me:$LINENO: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&5 echo "$as_me: error: linking to Fortran libraries from C fails See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking for Fortran name-mangling scheme" >&5 echo $ECHO_N "checking for Fortran name-mangling scheme... $ECHO_C" >&6 if test "${ac_cv_f77_mangling+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success=yes; break 2 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_success_extra=yes; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -f cfortran_test* conftest* else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compile a simple Fortran program See \`config.log' for more details." >&5 echo "$as_me: error: cannot compile a simple Fortran program See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_f77_mangling" >&5 echo "${ECHO_T}$ac_cv_f77_mangling" >&6 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name _ACEOF ;; "lower case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## _ _ACEOF ;; "lower case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) name ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) name ## __ _ACEOF ;; "upper case, no underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME _ACEOF ;; "upper case, no underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, no extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## _ _ACEOF ;; "upper case, underscore, extra underscore") cat >>confdefs.h <<\_ACEOF #define F77_FUNC(name,NAME) NAME ## _ _ACEOF cat >>confdefs.h <<\_ACEOF #define F77_FUNC_(name,NAME) NAME ## __ _ACEOF ;; *) { echo "$as_me:$LINENO: WARNING: unknown Fortran name-mangling scheme" >&5 echo "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Initialize automake and libtool { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ipopt' VERSION='3.11.4' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7751 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9731: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9735: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9999: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:10003: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:10103: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:10107: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14980: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14984: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15084: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15088: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16654: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16658: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:16758: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16762: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18965: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18969: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19233: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19237: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:19337: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19341: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } # Some extra stuff for blue gene on Laci's request BLUEGENEEXTRA="echo" # Check whether --enable-bg or --disable-bg was given. if test "${enable_bg+set}" = set; then enableval="$enable_bg" case "${enableval}" in yes) BLUEGENEEXTRA="chmod 644 *.o; cp ../Extern/ASL/amplsolver.a ../lib/libamplsolver.a" is_bg=yes ;; esac else is_bg=no fi; # A Fix for the AIX compiler if test "x$AIX_FIX_COMPILER_BUG" != x; then AIX_FIX_COMPILER_BUG_TRUE= AIX_FIX_COMPILER_BUG_FALSE='#' else AIX_FIX_COMPILER_BUG_TRUE='#' AIX_FIX_COMPILER_BUG_FALSE= fi # Doxygen { echo "$as_me:$LINENO: configuring doxygen documentation options" >&5 echo "$as_me: configuring doxygen documentation options" >&6;} # Check to see if doxygen is available. # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_coin_have_doxygen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$coin_have_doxygen"; then ac_cv_prog_coin_have_doxygen="$coin_have_doxygen" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_coin_have_doxygen="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_coin_have_doxygen" && ac_cv_prog_coin_have_doxygen="no" fi fi coin_have_doxygen=$ac_cv_prog_coin_have_doxygen if test -n "$coin_have_doxygen"; then echo "$as_me:$LINENO: result: $coin_have_doxygen" >&5 echo "${ECHO_T}$coin_have_doxygen" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Look for the dot tool from the graphviz package, unless the user has # disabled it. # Check whether --with-dot or --without-dot was given. if test "${with_dot+set}" = set; then withval="$with_dot" else withval=yes fi; if test x"$withval" = xno ; then coin_doxy_usedot=NO echo "$as_me:$LINENO: checking for dot " >&5 echo $ECHO_N "checking for dot ... $ECHO_C" >&6 echo "$as_me:$LINENO: result: disabled" >&5 echo "${ECHO_T}disabled" >&6 else # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_coin_doxy_usedot+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$coin_doxy_usedot"; then ac_cv_prog_coin_doxy_usedot="$coin_doxy_usedot" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_coin_doxy_usedot="YES" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_coin_doxy_usedot" && ac_cv_prog_coin_doxy_usedot="NO" fi fi coin_doxy_usedot=$ac_cv_prog_coin_doxy_usedot if test -n "$coin_doxy_usedot"; then echo "$as_me:$LINENO: result: $coin_doxy_usedot" >&5 echo "${ECHO_T}$coin_doxy_usedot" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi # Generate a tag file name and a log file name coin_doxy_tagname=doxydoc/${PACKAGE}_doxy.tag coin_doxy_logname=doxydoc/${PACKAGE}_doxy.log # Process the list of project names and massage them into possible doxygen # doc'n directories. Prefer 1) classic external, source processed using # a project-specific doxygen.conf, we use the tag file; 2) classic # external, source processed using package doxygen.conf; 3) installed # doxydoc. Alternatives 1) and 2) are only possible if the directory will be # configured, which we can't know unless this is the package base configure, # since coin_subdirs is only set there. Hence it's sufficient to check for # membership. If we use a tag file from a classic external, exclude the # source from doxygen processing when doxygen runs in the base directory. coin_doxy_tagfiles= coin_doxy_excludes= tmp="" for proj in $tmp ; do lc_proj=`echo $proj | tr [A-Z] [a-z]` echo "$as_me:$LINENO: checking for doxygen doc'n for $proj " >&5 echo $ECHO_N "checking for doxygen doc'n for $proj ... $ECHO_C" >&6 doxytag=${lc_proj}_doxy.tag doxyfound=no for chkProj in $coin_subdirs ; do if test "$chkProj" = "$proj" ; then # proj will be configured, hence doxydoc present in build tree doxysrcdir="${srcdir}/${proj}" # AC_MSG_NOTICE([Considering $doxysrcdir (base)]) if test -d "$doxysrcdir" ; then # with a doxydoc directory? doxydir="$doxysrcdir/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (base)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) if test -d "$doxydir" ; then # use tag file; don't process source eval doxydir="`pwd`/${proj}/doxydoc" coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" echo "$as_me:$LINENO: result: $doxydir (tag)" >&5 echo "${ECHO_T}$doxydir (tag)" >&6 coin_doxy_excludes="$coin_doxy_excludes */${proj}" else # will process the source -- nothing further to be done here echo "$as_me:$LINENO: result: $doxysrcdir (src)" >&5 echo "${ECHO_T}$doxysrcdir (src)" >&6 fi doxyfound=yes fi fi done # Not built, fall back to installed tag file if test $doxyfound = no ; then eval doxydir="${datadir}/coin/doc/${proj}/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (install)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" echo "$as_me:$LINENO: result: $doxydir (tag)" >&5 echo "${ECHO_T}$doxydir (tag)" >&6 fi done ############################################################################# # COIN-OR components # ############################################################################# if test $coin_cc_is_cl != true ; then IPOPTLIB_LIBS="-lm $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="-lm $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="-lm $IPOPTLIB_LIBS_INSTALLED" fi # Check whether --enable-pkg-config or --disable-pkg-config was given. if test "${enable_pkg_config+set}" = set; then enableval="$enable_pkg_config" use_pkgconfig="$enableval" else if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi fi; if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then echo "$as_me:$LINENO: result: $ac_ct_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_ct_PKG_CONFIG" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi PKG_CONFIG=$ac_ct_PKG_CONFIG else PKG_CONFIG="$ac_cv_prog_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.16.0 echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi if test -n "$PKG_CONFIG"; then COIN_HAS_PKGCONFIG_TRUE= COIN_HAS_PKGCONFIG_FALSE='#' else COIN_HAS_PKGCONFIG_TRUE='#' COIN_HAS_PKGCONFIG_FALSE= fi # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi # Check whether --with-coin-instdir or --without-coin-instdir was given. if test "${with_coin_instdir+set}" = set; then withval="$with_coin_instdir" if test -d "$withval"; then : ; else { { echo "$as_me:$LINENO: error: argument for --with-coin-instdir not a directory" >&5 echo "$as_me: error: argument for --with-coin-instdir not a directory" >&2;} { (exit 1); exit 1; }; } fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi; # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then { echo "$as_me:$LINENO: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&5 echo "$as_me: WARNING: Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config." >&2;} fi # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" use_blas="$withval" else use_blas= fi; # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference # Check whether --with-blas-lib or --without-blas-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" use_blas=BUILD fi; # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then echo "$as_me:$LINENO: checking whether user supplied BLASLIB=\"$use_blas\" works" >&5 echo $ECHO_N "checking whether user supplied BLASLIB=\"$use_blas\" works... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied BLAS library \"$use_blas\" does not work" >&5 echo "$as_me: error: user supplied BLAS library \"$use_blas\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has BLAS" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) echo "$as_me:$LINENO: checking for BLAS in libsunperf" >&5 echo $ECHO_N "checking for BLAS in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" echo "$as_me:$LINENO: checking for BLAS in MKL (32bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (32bit)... $ECHO_C" >&6 LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then echo "$as_me:$LINENO: checking for BLAS in MKL (64bit)" >&5 echo $ECHO_N "checking for BLAS in MKL (64bit)... $ECHO_C" >&6 LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) echo "$as_me:$LINENO: checking for BLAS in Veclib" >&5 echo $ECHO_N "checking for BLAS in Veclib... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then echo "$as_me:$LINENO: checking whether -lblas has BLAS" >&5 echo $ECHO_N "checking whether -lblas has BLAS... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call daxpy ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdaxpy(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DAXPY" ;; lower*) ac_val="daxpy" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdaxpy="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdaxpy();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdaxpy() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_blas" >&5 echo "${ECHO_T}yes: $use_blas" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Blas" >&5 echo $ECHO_N "checking for COIN-OR package Blas... $ECHO_C" >&6 coin_has_blas=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas=skipping fi done fi if test "$coin_has_blas" != skipping; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas=skipping fi fi; fi BLAS_LIBS= BLAS_CFLAGS= BLAS_DATA= BLAS_DEPENDENCIES= BLAS_PCLIBS= BLAS_PCREQUIRES= BLAS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_LIBS="$withval" BLAS_PCLIBS="$withval" IPOPTLIB_PCLIBS="$withval $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$withval $IPOPTLIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_LIBS_INSTALLED="$withval" IPOPTLIB_LIBS_INSTALLED="$withval $IPOPTLIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_CFLAGS="-I`${CYGPATH_W} $withval`" IPOPTLIB_CFLAGS="-I`${CYGPATH_W} $withval` $IPOPTLIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_CFLAGS_INSTALLED="$BLAS_CFLAGS" IPOPTLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS $IPOPTLIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_blas != skipping; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas=skipping else coin_has_blas=yes BLAS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then BLAS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_blas = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinblas"; then BLAS_VERSIONS=`$PKG_CONFIG --modversion "coinblas" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinblas" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$cflags" BLAS_LIBS=`$PKG_CONFIG --libs "coinblas" 2>/dev/null` BLAS_DATA=`$PKG_CONFIG --variable=datadir "coinblas" 2>/dev/null` coin_has_blas=yes echo "$as_me:$LINENO: result: yes: $BLAS_VERSIONS" >&5 echo "${ECHO_T}yes: $BLAS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi BLAS_PCREQUIRES="coinblas" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in IpoptLib IPOPTLIB_PCREQUIRES="coinblas $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$BLAS_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$BLAS_LIBS $IPOPTLIB_LIBS" else BLAS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinblas"` coin_has_blas=notGiven echo "$as_me:$LINENO: result: not given: $BLAS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $BLAS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Blas without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Blas without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Blas (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Blas (fallback)... $ECHO_C" >&6 coin_has_blas=notGiven BLAS_LIBS= BLAS_LIBS_INSTALLED= BLAS_CFLAGS= BLAS_CFLAGS_INSTALLED= BLAS_DATA= BLAS_DATA_INSTALLED= BLAS_PCLIBS= BLAS_PCREQUIRES= # initial list of dependencies is "coinblas", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinblas" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$BLAS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` BLAS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$BLAS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi BLAS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS="$projcflags $BLAS_CFLAGS" # set LIBS variable BLAS_LIBS="$projlibs $BLAS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi BLAS_CFLAGS_INSTALLED="$projcflags $BLAS_CFLAGS_INSTALLED" # set LIBS variable BLAS_LIBS_INSTALLED="$projlibs $BLAS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_blas=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then BLAS_LIBS=`echo " $BLAS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` BLAS_LIBS_INSTALLED=`echo " $BLAS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi BLAS_PCREQUIRES="coinblas" IPOPTLIB_PCREQUIRES="coinblas $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$BLAS_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$BLAS_LIBS $IPOPTLIB_LIBS" IPOPTLIB_CFLAGS_INSTALLED="$BLAS_CFLAGS_INSTALLED $IPOPTLIB_CFLAGS_INSTALLED" IPOPTLIB_LIBS_INSTALLED="$BLAS_LIBS_INSTALLED $IPOPTLIB_LIBS_INSTALLED" fi if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 fi if test $coin_has_blas != skipping && test $coin_has_blas != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) BLAS_DEPENDENCIES=`echo " $BLAS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` IPOPTLIB_DEPENDENCIES=`echo " $IPOPTLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$BLAS_CFLAGS" ; then { echo "$as_me:$LINENO: Blas CFLAGS are $BLAS_CFLAGS" >&5 echo "$as_me: Blas CFLAGS are $BLAS_CFLAGS" >&6;} fi if test -n "$BLAS_LIBS" ; then { echo "$as_me:$LINENO: Blas LIBS are $BLAS_LIBS" >&5 echo "$as_me: Blas LIBS are $BLAS_LIBS" >&6;} fi if test -n "$BLAS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&5 echo "$as_me: Blas DEPENDENCIES are $BLAS_DEPENDENCIES" >&6;} fi if test -n "$BLAS_DATA" ; then { echo "$as_me:$LINENO: Blas DATA is $BLAS_DATA" >&5 echo "$as_me: Blas DATA is $BLAS_DATA" >&6;} fi if test -n "$BLAS_PCLIBS" ; then { echo "$as_me:$LINENO: Blas PCLIBS are $BLAS_PCLIBS" >&5 echo "$as_me: Blas PCLIBS are $BLAS_PCLIBS" >&6;} fi if test -n "$BLAS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&5 echo "$as_me: Blas PCREQUIRES are $BLAS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&5 echo "$as_me: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: IpoptLib LIBS are $IPOPTLIB_LIBS" >&5 echo "$as_me: IpoptLib LIBS are $IPOPTLIB_LIBS" >&6;} { echo "$as_me:$LINENO: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&5 echo "$as_me: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_blas != notGiven && test $coin_has_blas != skipping; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes if test 0 = 0; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_BLAS 1 _ACEOF BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= IPOPTLIB_PCLIBS="$BLAS_LIBS $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$BLAS_LIBS $IPOPTLIB_LIBS" IPOPTLIB_LIBS_INSTALLED="$BLAS_LIBS $IPOPTLIB_LIBS_INSTALLED" else coin_has_blas=no if test 0 = 1; then COIN_HAS_BLAS_TRUE= COIN_HAS_BLAS_FALSE='#' else COIN_HAS_BLAS_TRUE='#' COIN_HAS_BLAS_FALSE= fi fi if test $coin_has_blas != yes; then { { echo "$as_me:$LINENO: error: Required package BLAS not found." >&5 echo "$as_me: error: Required package BLAS not found." >&2;} { (exit 1); exit 1; }; } fi # Check whether --with-lapack or --without-lapack was given. if test "${with_lapack+set}" = set; then withval="$with_lapack" use_lapack=$withval else use_lapack= fi; #if user specified --with-lapack-lib, then we should give COIN_HAS_PACKAGE preference # Check whether --with-lapack-lib or --without-lapack-lib was given. if test "${with_lapack_lib+set}" = set; then withval="$with_lapack_lib" use_lapack=BUILD fi; # Check if user supplied option makes sense if test x"$use_lapack" != x; then if test "$use_lapack" = "BUILD"; then # we come to this later : elif test "$use_lapack" != no; then echo "$as_me:$LINENO: checking whether user supplied LAPACKLIB=\"$use_lapack\" works" >&5 echo $ECHO_N "checking whether user supplied LAPACKLIB=\"$use_lapack\" works... $ECHO_C" >&6 coin_need_flibs=no use_lapack="$use_lapack $BLAS_LIBS" coin_save_LIBS="$LIBS" LIBS="$use_lapack $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call dsyev ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: user supplied LAPACK library \"$use_lapack\" does not work" >&5 echo "$as_me: error: user supplied LAPACK library \"$use_lapack\" does not work" >&2;} { (exit 1); exit 1; }; } fi fi ;; esac LIBS="$coin_save_LIBS" fi else if test x$coin_has_blas = xyes; then # First try to see if LAPACK is already available with BLAS library echo "$as_me:$LINENO: checking whether LAPACK is already available with BLAS library" >&5 echo $ECHO_N "checking whether LAPACK is already available with BLAS library... $ECHO_C" >&6 coin_save_LIBS="$LIBS" coin_need_flibs=no LIBS="$BLAS_LIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call dsyev ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi skip_llapack_check=no if test -z "$use_lapack"; then # Try to autodetect the library for lapack based on build system case $build in # TODO: Is this check actually needed here, since -lcomplib.sigmath should have been recognized as Blas library, # and above it is checked whether the Blas library already contains Lapack *-sgi-*) echo "$as_me:$LINENO: checking whether -lcomplib.sgimath has LAPACK" >&5 echo $ECHO_N "checking whether -lcomplib.sgimath has LAPACK... $ECHO_C" >&6 coin_save_LIBS="$LIBS" coin_need_flibs=no LIBS="-lcomplib.sgimath $BLAS_LIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call dsyev ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # See comments in COIN_CHECK_PACKAGE_BLAS. # TODO: Is this check actually needed here, since -lsunperf should have been recognized as Blas library, # and above it is checked whether the Blas library already contains Lapack *-*-solaris*) echo "$as_me:$LINENO: checking for LAPACK in libsunperf" >&5 echo $ECHO_N "checking for LAPACK in libsunperf... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $BLAS_LIBS $FLIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call dsyev ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" ;; # On cygwin, do this check only if doscompile is disabled. The prebuilt library # will want to link with cygwin, hence won't run standalone in DOS. *-cygwin*) if test "$enable_doscompile" = mingw; then skip_llapack_check=yes fi ;; esac fi if test -z "$use_lapack" && test $skip_llapack_check = no; then echo "$as_me:$LINENO: checking whether -llapack has LAPACK" >&5 echo $ECHO_N "checking whether -llapack has LAPACK... $ECHO_C" >&6 coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-llapack $BLAS_LIBS $LIBS" case $ac_ext in f) cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { call dsyev ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; c) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ void $cfuncdsyev(); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; cc|cpp) ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="DSYEV" ;; lower*) ac_val="dsyev" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac cfuncdsyev="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test x"$coin_need_flibs" = xyes; then flink_try=no; else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then flink_try=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 flink_try=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test $flink_try = yes; then use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ extern "C" {void $cfuncdsyev();} #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { $cfuncdsyev() ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBS="$flink_save_libs" coin_need_flibs=yes use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi echo "$as_me:$LINENO: result: yes: $use_lapack" >&5 echo "${ECHO_T}yes: $use_lapack" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS="$flink_save_libs" echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ;; esac LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building LAPACK. if test -z "$use_lapack" ; then use_lapack=BUILD fi fi if test "x$use_lapack" = xBUILD ; then echo "$as_me:$LINENO: checking for COIN-OR package Lapack" >&5 echo $ECHO_N "checking for COIN-OR package Lapack... $ECHO_C" >&6 coin_has_lapack=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Lapack"; then coin_has_lapack=skipping fi done fi if test "$coin_has_lapack" != skipping; then # Check whether --with-m4_tolower(Lapack) or --without-m4_tolower(Lapack) was given. if test "${with_lapack+set}" = set; then withval="$with_lapack" if test "$withval" = no ; then coin_has_lapack=skipping fi fi; fi LAPACK_LIBS= LAPACK_CFLAGS= LAPACK_DATA= LAPACK_DEPENDENCIES= LAPACK_PCLIBS= LAPACK_PCREQUIRES= LAPACK_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_lapack != skipping; then # Check whether --with-m4_tolower(Lapack)-lib or --without-m4_tolower(Lapack)-lib was given. if test "${with_lapack_lib+set}" = set; then withval="$with_lapack_lib" if test "$withval" = no ; then coin_has_lapack=skipping else coin_has_lapack=yes LAPACK_LIBS="$withval" LAPACK_PCLIBS="$withval" IPOPTLIB_PCLIBS="$withval $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$withval $IPOPTLIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then LAPACK_LIBS_INSTALLED="$withval" IPOPTLIB_LIBS_INSTALLED="$withval $IPOPTLIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_lapack != skipping; then # Check whether --with-m4_tolower(Lapack)-incdir or --without-m4_tolower(Lapack)-incdir was given. if test "${with_lapack_incdir+set}" = set; then withval="$with_lapack_incdir" if test "$withval" = no ; then coin_has_lapack=skipping else coin_has_lapack=yes LAPACK_CFLAGS="-I`${CYGPATH_W} $withval`" IPOPTLIB_CFLAGS="-I`${CYGPATH_W} $withval` $IPOPTLIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then LAPACK_CFLAGS_INSTALLED="$LAPACK_CFLAGS" IPOPTLIB_CFLAGS_INSTALLED="$LAPACK_CFLAGS $IPOPTLIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_lapack != skipping; then # Check whether --with-m4_tolower(Lapack)-datadir or --without-m4_tolower(Lapack)-datadir was given. if test "${with_lapack_datadir+set}" = set; then withval="$with_lapack_datadir" if test "$withval" = no ; then coin_has_lapack=skipping else coin_has_lapack=yes LAPACK_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then LAPACK_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_lapack = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinlapack"; then LAPACK_VERSIONS=`$PKG_CONFIG --modversion "coinlapack" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinlapack" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi LAPACK_CFLAGS="$cflags" LAPACK_LIBS=`$PKG_CONFIG --libs "coinlapack" 2>/dev/null` LAPACK_DATA=`$PKG_CONFIG --variable=datadir "coinlapack" 2>/dev/null` coin_has_lapack=yes echo "$as_me:$LINENO: result: yes: $LAPACK_VERSIONS" >&5 echo "${ECHO_T}yes: $LAPACK_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then LAPACK_LIBS=`echo " $LAPACK_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi LAPACK_PCREQUIRES="coinlapack" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in IpoptLib IPOPTLIB_PCREQUIRES="coinlapack $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$LAPACK_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$LAPACK_LIBS $IPOPTLIB_LIBS" else LAPACK_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinlapack"` coin_has_lapack=notGiven echo "$as_me:$LINENO: result: not given: $LAPACK_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $LAPACK_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Lapack without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Lapack without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Lapack (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Lapack (fallback)... $ECHO_C" >&6 coin_has_lapack=notGiven LAPACK_LIBS= LAPACK_LIBS_INSTALLED= LAPACK_CFLAGS= LAPACK_CFLAGS_INSTALLED= LAPACK_DATA= LAPACK_DATA_INSTALLED= LAPACK_PCLIBS= LAPACK_PCREQUIRES= # initial list of dependencies is "coinlapack", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinlapack" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$LAPACK_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` LAPACK_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$LAPACK_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi LAPACK_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi LAPACK_CFLAGS="$projcflags $LAPACK_CFLAGS" # set LIBS variable LAPACK_LIBS="$projlibs $LAPACK_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi LAPACK_CFLAGS_INSTALLED="$projcflags $LAPACK_CFLAGS_INSTALLED" # set LIBS variable LAPACK_LIBS_INSTALLED="$projlibs $LAPACK_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_lapack=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_LAPACK 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then LAPACK_LIBS=`echo " $LAPACK_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` LAPACK_LIBS_INSTALLED=`echo " $LAPACK_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi LAPACK_PCREQUIRES="coinlapack" IPOPTLIB_PCREQUIRES="coinlapack $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$LAPACK_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$LAPACK_LIBS $IPOPTLIB_LIBS" IPOPTLIB_CFLAGS_INSTALLED="$LAPACK_CFLAGS_INSTALLED $IPOPTLIB_CFLAGS_INSTALLED" IPOPTLIB_LIBS_INSTALLED="$LAPACK_LIBS_INSTALLED $IPOPTLIB_LIBS_INSTALLED" fi if test $coin_has_lapack != notGiven && test $coin_has_lapack != skipping; then COIN_HAS_LAPACK_TRUE= COIN_HAS_LAPACK_FALSE='#' else COIN_HAS_LAPACK_TRUE='#' COIN_HAS_LAPACK_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_lapack" >&5 echo "${ECHO_T}$coin_has_lapack" >&6 fi if test $coin_has_lapack != skipping && test $coin_has_lapack != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_LAPACK 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) LAPACK_DEPENDENCIES=`echo " $LAPACK_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` IPOPTLIB_DEPENDENCIES=`echo " $IPOPTLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$LAPACK_CFLAGS" ; then { echo "$as_me:$LINENO: Lapack CFLAGS are $LAPACK_CFLAGS" >&5 echo "$as_me: Lapack CFLAGS are $LAPACK_CFLAGS" >&6;} fi if test -n "$LAPACK_LIBS" ; then { echo "$as_me:$LINENO: Lapack LIBS are $LAPACK_LIBS" >&5 echo "$as_me: Lapack LIBS are $LAPACK_LIBS" >&6;} fi if test -n "$LAPACK_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Lapack DEPENDENCIES are $LAPACK_DEPENDENCIES" >&5 echo "$as_me: Lapack DEPENDENCIES are $LAPACK_DEPENDENCIES" >&6;} fi if test -n "$LAPACK_DATA" ; then { echo "$as_me:$LINENO: Lapack DATA is $LAPACK_DATA" >&5 echo "$as_me: Lapack DATA is $LAPACK_DATA" >&6;} fi if test -n "$LAPACK_PCLIBS" ; then { echo "$as_me:$LINENO: Lapack PCLIBS are $LAPACK_PCLIBS" >&5 echo "$as_me: Lapack PCLIBS are $LAPACK_PCLIBS" >&6;} fi if test -n "$LAPACK_PCREQUIRES" ; then { echo "$as_me:$LINENO: Lapack PCREQUIRES are $LAPACK_PCREQUIRES" >&5 echo "$as_me: Lapack PCREQUIRES are $LAPACK_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&5 echo "$as_me: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: IpoptLib LIBS are $IPOPTLIB_LIBS" >&5 echo "$as_me: IpoptLib LIBS are $IPOPTLIB_LIBS" >&6;} { echo "$as_me:$LINENO: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&5 echo "$as_me: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_lapack != notGiven && test $coin_has_lapack != skipping; then COIN_HAS_LAPACK_TRUE= COIN_HAS_LAPACK_FALSE='#' else COIN_HAS_LAPACK_TRUE='#' COIN_HAS_LAPACK_FALSE= fi elif test "x$use_lapack" != x && test "$use_lapack" != no; then coin_has_lapack=yes if test 0 = 0; then COIN_HAS_LAPACK_TRUE= COIN_HAS_LAPACK_FALSE='#' else COIN_HAS_LAPACK_TRUE='#' COIN_HAS_LAPACK_FALSE= fi cat >>confdefs.h <<\_ACEOF #define COIN_HAS_LAPACK 1 _ACEOF LAPACK_LIBS="$use_lapack" LAPACK_CFLAGS= LAPACK_DATA= IPOPTLIB_PCLIBS="$LAPACK_LIBS $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$LAPACK_LIBS $IPOPTLIB_LIBS" IPOPTLIB_LIBS_INSTALLED="$LAPACK_LIBS $IPOPTLIB_LIBS_INSTALLED" else coin_has_lapack=no if test 0 = 1; then COIN_HAS_LAPACK_TRUE= COIN_HAS_LAPACK_FALSE='#' else COIN_HAS_LAPACK_TRUE='#' COIN_HAS_LAPACK_FALSE= fi fi if test $coin_has_lapack != yes; then { echo "$as_me:$LINENO: WARNING: Compiling code without LAPACK. Certain options (e.g., quasi-Newton) will not work." >&5 echo "$as_me: WARNING: Compiling code without LAPACK. Certain options (e.g., quasi-Newton) will not work." >&2;} fi echo "$as_me:$LINENO: checking for COIN-OR package ASL" >&5 echo $ECHO_N "checking for COIN-OR package ASL... $ECHO_C" >&6 coin_has_asl=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "ASL"; then coin_has_asl=skipping fi done fi if test "$coin_has_asl" != skipping; then # Check whether --with-m4_tolower(ASL) or --without-m4_tolower(ASL) was given. if test "${with_asl+set}" = set; then withval="$with_asl" if test "$withval" = no ; then coin_has_asl=skipping fi fi; fi ASL_LIBS= ASL_CFLAGS= ASL_DATA= ASL_DEPENDENCIES= ASL_PCLIBS= ASL_PCREQUIRES= ASL_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_asl != skipping; then # Check whether --with-m4_tolower(ASL)-lib or --without-m4_tolower(ASL)-lib was given. if test "${with_asl_lib+set}" = set; then withval="$with_asl_lib" if test "$withval" = no ; then coin_has_asl=skipping else coin_has_asl=yes ASL_LIBS="$withval" ASL_PCLIBS="$withval" IPOPTAMPLINTERFACELIB_PCLIBS="$withval $IPOPTAMPLINTERFACELIB_PCLIBS" IPOPTAMPLINTERFACELIB_LIBS="$withval $IPOPTAMPLINTERFACELIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then ASL_LIBS_INSTALLED="$withval" IPOPTAMPLINTERFACELIB_LIBS_INSTALLED="$withval $IPOPTAMPLINTERFACELIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_asl != skipping; then # Check whether --with-m4_tolower(ASL)-incdir or --without-m4_tolower(ASL)-incdir was given. if test "${with_asl_incdir+set}" = set; then withval="$with_asl_incdir" if test "$withval" = no ; then coin_has_asl=skipping else coin_has_asl=yes ASL_CFLAGS="-I`${CYGPATH_W} $withval`" IPOPTAMPLINTERFACELIB_CFLAGS="-I`${CYGPATH_W} $withval` $IPOPTAMPLINTERFACELIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then ASL_CFLAGS_INSTALLED="$ASL_CFLAGS" IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED="$ASL_CFLAGS $IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_asl != skipping; then # Check whether --with-m4_tolower(ASL)-datadir or --without-m4_tolower(ASL)-datadir was given. if test "${with_asl_datadir+set}" = set; then withval="$with_asl_datadir" if test "$withval" = no ; then coin_has_asl=skipping else coin_has_asl=yes ASL_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then ASL_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_asl = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinasl"; then ASL_VERSIONS=`$PKG_CONFIG --modversion "coinasl" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinasl" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi ASL_CFLAGS="$cflags" ASL_LIBS=`$PKG_CONFIG --libs "coinasl" 2>/dev/null` ASL_DATA=`$PKG_CONFIG --variable=datadir "coinasl" 2>/dev/null` coin_has_asl=yes echo "$as_me:$LINENO: result: yes: $ASL_VERSIONS" >&5 echo "${ECHO_T}yes: $ASL_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then ASL_LIBS=`echo " $ASL_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi ASL_PCREQUIRES="coinasl" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in IpoptAmplInterfaceLib IPOPTAMPLINTERFACELIB_PCREQUIRES="coinasl $IPOPTAMPLINTERFACELIB_PCREQUIRES" IPOPTAMPLINTERFACELIB_CFLAGS="$ASL_CFLAGS $IPOPTAMPLINTERFACELIB_CFLAGS" IPOPTAMPLINTERFACELIB_LIBS="$ASL_LIBS $IPOPTAMPLINTERFACELIB_LIBS" else ASL_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinasl"` coin_has_asl=notGiven echo "$as_me:$LINENO: result: not given: $ASL_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $ASL_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module ASL without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module ASL without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package ASL (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package ASL (fallback)... $ECHO_C" >&6 coin_has_asl=notGiven ASL_LIBS= ASL_LIBS_INSTALLED= ASL_CFLAGS= ASL_CFLAGS_INSTALLED= ASL_DATA= ASL_DATA_INSTALLED= ASL_PCLIBS= ASL_PCREQUIRES= # initial list of dependencies is "coinasl", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinasl" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$ASL_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` ASL_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$ASL_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi ASL_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi ASL_CFLAGS="$projcflags $ASL_CFLAGS" # set LIBS variable ASL_LIBS="$projlibs $ASL_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi ASL_CFLAGS_INSTALLED="$projcflags $ASL_CFLAGS_INSTALLED" # set LIBS variable ASL_LIBS_INSTALLED="$projlibs $ASL_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_asl=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_ASL 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then ASL_LIBS=`echo " $ASL_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` ASL_LIBS_INSTALLED=`echo " $ASL_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi ASL_PCREQUIRES="coinasl" IPOPTAMPLINTERFACELIB_PCREQUIRES="coinasl $IPOPTAMPLINTERFACELIB_PCREQUIRES" IPOPTAMPLINTERFACELIB_CFLAGS="$ASL_CFLAGS $IPOPTAMPLINTERFACELIB_CFLAGS" IPOPTAMPLINTERFACELIB_LIBS="$ASL_LIBS $IPOPTAMPLINTERFACELIB_LIBS" IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED="$ASL_CFLAGS_INSTALLED $IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED" IPOPTAMPLINTERFACELIB_LIBS_INSTALLED="$ASL_LIBS_INSTALLED $IPOPTAMPLINTERFACELIB_LIBS_INSTALLED" fi if test $coin_has_asl != notGiven && test $coin_has_asl != skipping; then COIN_HAS_ASL_TRUE= COIN_HAS_ASL_FALSE='#' else COIN_HAS_ASL_TRUE='#' COIN_HAS_ASL_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_asl" >&5 echo "${ECHO_T}$coin_has_asl" >&6 fi if test $coin_has_asl != skipping && test $coin_has_asl != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_ASL 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) ASL_DEPENDENCIES=`echo " $ASL_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` IPOPTAMPLINTERFACELIB_DEPENDENCIES=`echo " $IPOPTAMPLINTERFACELIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$ASL_CFLAGS" ; then { echo "$as_me:$LINENO: ASL CFLAGS are $ASL_CFLAGS" >&5 echo "$as_me: ASL CFLAGS are $ASL_CFLAGS" >&6;} fi if test -n "$ASL_LIBS" ; then { echo "$as_me:$LINENO: ASL LIBS are $ASL_LIBS" >&5 echo "$as_me: ASL LIBS are $ASL_LIBS" >&6;} fi if test -n "$ASL_DEPENDENCIES" ; then { echo "$as_me:$LINENO: ASL DEPENDENCIES are $ASL_DEPENDENCIES" >&5 echo "$as_me: ASL DEPENDENCIES are $ASL_DEPENDENCIES" >&6;} fi if test -n "$ASL_DATA" ; then { echo "$as_me:$LINENO: ASL DATA is $ASL_DATA" >&5 echo "$as_me: ASL DATA is $ASL_DATA" >&6;} fi if test -n "$ASL_PCLIBS" ; then { echo "$as_me:$LINENO: ASL PCLIBS are $ASL_PCLIBS" >&5 echo "$as_me: ASL PCLIBS are $ASL_PCLIBS" >&6;} fi if test -n "$ASL_PCREQUIRES" ; then { echo "$as_me:$LINENO: ASL PCREQUIRES are $ASL_PCREQUIRES" >&5 echo "$as_me: ASL PCREQUIRES are $ASL_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: IpoptAmplInterfaceLib CFLAGS are $IPOPTAMPLINTERFACELIB_CFLAGS" >&5 echo "$as_me: IpoptAmplInterfaceLib CFLAGS are $IPOPTAMPLINTERFACELIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: IpoptAmplInterfaceLib LIBS are $IPOPTAMPLINTERFACELIB_LIBS" >&5 echo "$as_me: IpoptAmplInterfaceLib LIBS are $IPOPTAMPLINTERFACELIB_LIBS" >&6;} { echo "$as_me:$LINENO: IpoptAmplInterfaceLib DEPENDENCIES are $IPOPTAMPLINTERFACELIB_DEPENDENCIES" >&5 echo "$as_me: IpoptAmplInterfaceLib DEPENDENCIES are $IPOPTAMPLINTERFACELIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_asl != notGiven && test $coin_has_asl != skipping; then COIN_HAS_ASL_TRUE= COIN_HAS_ASL_FALSE='#' else COIN_HAS_ASL_TRUE='#' COIN_HAS_ASL_FALSE= fi echo "$as_me:$LINENO: checking for COIN-OR package HSL" >&5 echo $ECHO_N "checking for COIN-OR package HSL... $ECHO_C" >&6 coin_has_hsl=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "HSL"; then coin_has_hsl=skipping fi done fi if test "$coin_has_hsl" != skipping; then # Check whether --with-m4_tolower(HSL) or --without-m4_tolower(HSL) was given. if test "${with_hsl+set}" = set; then withval="$with_hsl" if test "$withval" = no ; then coin_has_hsl=skipping fi fi; fi HSL_LIBS= HSL_CFLAGS= HSL_DATA= HSL_DEPENDENCIES= HSL_PCLIBS= HSL_PCREQUIRES= HSL_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_hsl != skipping; then # Check whether --with-m4_tolower(HSL)-lib or --without-m4_tolower(HSL)-lib was given. if test "${with_hsl_lib+set}" = set; then withval="$with_hsl_lib" if test "$withval" = no ; then coin_has_hsl=skipping else coin_has_hsl=yes HSL_LIBS="$withval" HSL_PCLIBS="$withval" IPOPTLIB_PCLIBS="$withval $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$withval $IPOPTLIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then HSL_LIBS_INSTALLED="$withval" IPOPTLIB_LIBS_INSTALLED="$withval $IPOPTLIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_hsl != skipping; then # Check whether --with-m4_tolower(HSL)-incdir or --without-m4_tolower(HSL)-incdir was given. if test "${with_hsl_incdir+set}" = set; then withval="$with_hsl_incdir" if test "$withval" = no ; then coin_has_hsl=skipping else coin_has_hsl=yes HSL_CFLAGS="-I`${CYGPATH_W} $withval`" IPOPTLIB_CFLAGS="-I`${CYGPATH_W} $withval` $IPOPTLIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then HSL_CFLAGS_INSTALLED="$HSL_CFLAGS" IPOPTLIB_CFLAGS_INSTALLED="$HSL_CFLAGS $IPOPTLIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_hsl != skipping; then # Check whether --with-m4_tolower(HSL)-datadir or --without-m4_tolower(HSL)-datadir was given. if test "${with_hsl_datadir+set}" = set; then withval="$with_hsl_datadir" if test "$withval" = no ; then coin_has_hsl=skipping else coin_has_hsl=yes HSL_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then HSL_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_hsl = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinhsl >= 1.3"; then HSL_VERSIONS=`$PKG_CONFIG --modversion "coinhsl >= 1.3" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinhsl >= 1.3" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi HSL_CFLAGS="$cflags" HSL_LIBS=`$PKG_CONFIG --libs "coinhsl >= 1.3" 2>/dev/null` HSL_DATA=`$PKG_CONFIG --variable=datadir "coinhsl >= 1.3" 2>/dev/null` coin_has_hsl=yes echo "$as_me:$LINENO: result: yes: $HSL_VERSIONS" >&5 echo "${ECHO_T}yes: $HSL_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then HSL_LIBS=`echo " $HSL_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi HSL_PCREQUIRES="coinhsl >= 1.3" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in IpoptLib IPOPTLIB_PCREQUIRES="coinhsl >= 1.3 $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$HSL_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$HSL_LIBS $IPOPTLIB_LIBS" else HSL_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinhsl >= 1.3"` coin_has_hsl=notGiven echo "$as_me:$LINENO: result: not given: $HSL_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $HSL_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module HSL without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module HSL without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package HSL (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package HSL (fallback)... $ECHO_C" >&6 coin_has_hsl=notGiven HSL_LIBS= HSL_LIBS_INSTALLED= HSL_CFLAGS= HSL_CFLAGS_INSTALLED= HSL_DATA= HSL_DATA_INSTALLED= HSL_PCLIBS= HSL_PCREQUIRES= # initial list of dependencies is "coinhsl >= 1.3", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinhsl " # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$HSL_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` HSL_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$HSL_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi HSL_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi HSL_CFLAGS="$projcflags $HSL_CFLAGS" # set LIBS variable HSL_LIBS="$projlibs $HSL_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi HSL_CFLAGS_INSTALLED="$projcflags $HSL_CFLAGS_INSTALLED" # set LIBS variable HSL_LIBS_INSTALLED="$projlibs $HSL_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_hsl=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_HSL 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then HSL_LIBS=`echo " $HSL_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` HSL_LIBS_INSTALLED=`echo " $HSL_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi HSL_PCREQUIRES="coinhsl >= 1.3" IPOPTLIB_PCREQUIRES="coinhsl >= 1.3 $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$HSL_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$HSL_LIBS $IPOPTLIB_LIBS" IPOPTLIB_CFLAGS_INSTALLED="$HSL_CFLAGS_INSTALLED $IPOPTLIB_CFLAGS_INSTALLED" IPOPTLIB_LIBS_INSTALLED="$HSL_LIBS_INSTALLED $IPOPTLIB_LIBS_INSTALLED" fi if test $coin_has_hsl != notGiven && test $coin_has_hsl != skipping; then COIN_HAS_HSL_TRUE= COIN_HAS_HSL_FALSE='#' else COIN_HAS_HSL_TRUE='#' COIN_HAS_HSL_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_hsl" >&5 echo "${ECHO_T}$coin_has_hsl" >&6 fi if test $coin_has_hsl != skipping && test $coin_has_hsl != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_HSL 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) HSL_DEPENDENCIES=`echo " $HSL_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` IPOPTLIB_DEPENDENCIES=`echo " $IPOPTLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$HSL_CFLAGS" ; then { echo "$as_me:$LINENO: HSL CFLAGS are $HSL_CFLAGS" >&5 echo "$as_me: HSL CFLAGS are $HSL_CFLAGS" >&6;} fi if test -n "$HSL_LIBS" ; then { echo "$as_me:$LINENO: HSL LIBS are $HSL_LIBS" >&5 echo "$as_me: HSL LIBS are $HSL_LIBS" >&6;} fi if test -n "$HSL_DEPENDENCIES" ; then { echo "$as_me:$LINENO: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&5 echo "$as_me: HSL DEPENDENCIES are $HSL_DEPENDENCIES" >&6;} fi if test -n "$HSL_DATA" ; then { echo "$as_me:$LINENO: HSL DATA is $HSL_DATA" >&5 echo "$as_me: HSL DATA is $HSL_DATA" >&6;} fi if test -n "$HSL_PCLIBS" ; then { echo "$as_me:$LINENO: HSL PCLIBS are $HSL_PCLIBS" >&5 echo "$as_me: HSL PCLIBS are $HSL_PCLIBS" >&6;} fi if test -n "$HSL_PCREQUIRES" ; then { echo "$as_me:$LINENO: HSL PCREQUIRES are $HSL_PCREQUIRES" >&5 echo "$as_me: HSL PCREQUIRES are $HSL_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&5 echo "$as_me: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: IpoptLib LIBS are $IPOPTLIB_LIBS" >&5 echo "$as_me: IpoptLib LIBS are $IPOPTLIB_LIBS" >&6;} { echo "$as_me:$LINENO: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&5 echo "$as_me: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_hsl != notGiven && test $coin_has_hsl != skipping; then COIN_HAS_HSL_TRUE= COIN_HAS_HSL_FALSE='#' else COIN_HAS_HSL_TRUE='#' COIN_HAS_HSL_FALSE= fi echo "$as_me:$LINENO: checking for COIN-OR package Mumps" >&5 echo $ECHO_N "checking for COIN-OR package Mumps... $ECHO_C" >&6 coin_has_mumps=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Mumps"; then coin_has_mumps=skipping fi done fi if test "$coin_has_mumps" != skipping; then # Check whether --with-m4_tolower(Mumps) or --without-m4_tolower(Mumps) was given. if test "${with_mumps+set}" = set; then withval="$with_mumps" if test "$withval" = no ; then coin_has_mumps=skipping fi fi; fi MUMPS_LIBS= MUMPS_CFLAGS= MUMPS_DATA= MUMPS_DEPENDENCIES= MUMPS_PCLIBS= MUMPS_PCREQUIRES= MUMPS_DATA= #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $coin_has_mumps != skipping; then # Check whether --with-m4_tolower(Mumps)-lib or --without-m4_tolower(Mumps)-lib was given. if test "${with_mumps_lib+set}" = set; then withval="$with_mumps_lib" if test "$withval" = no ; then coin_has_mumps=skipping else coin_has_mumps=yes MUMPS_LIBS="$withval" MUMPS_PCLIBS="$withval" IPOPTLIB_PCLIBS="$withval $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS="$withval $IPOPTLIB_LIBS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then MUMPS_LIBS_INSTALLED="$withval" IPOPTLIB_LIBS_INSTALLED="$withval $IPOPTLIB_LIBS_INSTALLED" fi fi fi; fi if test $coin_has_mumps != skipping; then # Check whether --with-m4_tolower(Mumps)-incdir or --without-m4_tolower(Mumps)-incdir was given. if test "${with_mumps_incdir+set}" = set; then withval="$with_mumps_incdir" if test "$withval" = no ; then coin_has_mumps=skipping else coin_has_mumps=yes MUMPS_CFLAGS="-I`${CYGPATH_W} $withval`" IPOPTLIB_CFLAGS="-I`${CYGPATH_W} $withval` $IPOPTLIB_CFLAGS" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then MUMPS_CFLAGS_INSTALLED="$MUMPS_CFLAGS" IPOPTLIB_CFLAGS_INSTALLED="$MUMPS_CFLAGS $IPOPTLIB_CFLAGS_INSTALLED" fi fi fi; fi if test $coin_has_mumps != skipping; then # Check whether --with-m4_tolower(Mumps)-datadir or --without-m4_tolower(Mumps)-datadir was given. if test "${with_mumps_datadir+set}" = set; then withval="$with_mumps_datadir" if test "$withval" = no ; then coin_has_mumps=skipping else coin_has_mumps=yes MUMPS_DATA="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then MUMPS_DATA_INSTALLED="$withval" fi fi fi; fi if test $coin_has_mumps = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "coinmumps"; then MUMPS_VERSIONS=`$PKG_CONFIG --modversion "coinmumps" 2>/dev/null | tr '\n' ' '` cflags=`$PKG_CONFIG --cflags "coinmumps" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi MUMPS_CFLAGS="$cflags" MUMPS_LIBS=`$PKG_CONFIG --libs "coinmumps" 2>/dev/null` MUMPS_DATA=`$PKG_CONFIG --variable=datadir "coinmumps" 2>/dev/null` coin_has_mumps=yes echo "$as_me:$LINENO: result: yes: $MUMPS_VERSIONS" >&5 echo "${ECHO_T}yes: $MUMPS_VERSIONS" >&6 # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then MUMPS_LIBS=`echo " $MUMPS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` fi MUMPS_PCREQUIRES="coinmumps" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in IpoptLib IPOPTLIB_PCREQUIRES="coinmumps $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$MUMPS_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$MUMPS_LIBS $IPOPTLIB_LIBS" else MUMPS_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "coinmumps"` coin_has_mumps=notGiven echo "$as_me:$LINENO: result: not given: $MUMPS_PKG_ERRORS" >&5 echo "${ECHO_T}not given: $MUMPS_PKG_ERRORS" >&6 fi else { { echo "$as_me:$LINENO: error: \"Cannot check for existance of module Mumps without pkg-config\"" >&5 echo "$as_me: error: \"Cannot check for existance of module Mumps without pkg-config\"" >&2;} { (exit 1); exit 1; }; } fi # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else echo "$as_me:$LINENO: result: skipped check via pkg-config, redirect to fallback" >&5 echo "${ECHO_T}skipped check via pkg-config, redirect to fallback" >&6 echo "$as_me:$LINENO: checking for COIN-OR package Mumps (fallback)" >&5 echo $ECHO_N "checking for COIN-OR package Mumps (fallback)... $ECHO_C" >&6 coin_has_mumps=notGiven MUMPS_LIBS= MUMPS_LIBS_INSTALLED= MUMPS_CFLAGS= MUMPS_CFLAGS_INSTALLED= MUMPS_DATA= MUMPS_DATA_INSTALLED= MUMPS_PCLIBS= MUMPS_PCREQUIRES= # initial list of dependencies is "coinmumps", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="coinmumps" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else { echo "$as_me:$LINENO: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&5 echo "$as_me: WARNING: Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples." >&2;} pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'` # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=`echo $projtoprocess | sed -e "s/$proj/$projrequires/"` # read DATA from $pcfile, if _DATA is still empty if test "x$MUMPS_DATA" = x ; then projdatadir= pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile` eval `sh -c "$pcfilemod"` MUMPS_DATA="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else echo "$as_me:$LINENO: result: no, dependency $proj not available" >&5 echo "${ECHO_T}no, dependency $proj not available" >&6 allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$MUMPS_DATA_INSTALLED" = x ; then projdatadir= pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile` eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi MUMPS_DATA_INSTALLED="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^ *//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi MUMPS_CFLAGS="$projcflags $MUMPS_CFLAGS" # set LIBS variable MUMPS_LIBS="$projlibs $MUMPS_LIBS" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile` # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'` fi MUMPS_CFLAGS_INSTALLED="$projcflags $MUMPS_CFLAGS_INSTALLED" # set LIBS variable MUMPS_LIBS_INSTALLED="$projlibs $MUMPS_LIBS_INSTALLED" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up coin_has_mumps=yes echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 cat >>confdefs.h <<\_ACEOF #define COIN_HAS_MUMPS 1 _ACEOF # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then MUMPS_LIBS=`echo " $MUMPS_LIBS " | sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g'` MUMPS_LIBS_INSTALLED=`echo " $MUMPS_LIBS_INSTALLED" | sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g'` fi MUMPS_PCREQUIRES="coinmumps" IPOPTLIB_PCREQUIRES="coinmumps $IPOPTLIB_PCREQUIRES" IPOPTLIB_CFLAGS="$MUMPS_CFLAGS $IPOPTLIB_CFLAGS" IPOPTLIB_LIBS="$MUMPS_LIBS $IPOPTLIB_LIBS" IPOPTLIB_CFLAGS_INSTALLED="$MUMPS_CFLAGS_INSTALLED $IPOPTLIB_CFLAGS_INSTALLED" IPOPTLIB_LIBS_INSTALLED="$MUMPS_LIBS_INSTALLED $IPOPTLIB_LIBS_INSTALLED" fi if test $coin_has_mumps != notGiven && test $coin_has_mumps != skipping; then COIN_HAS_MUMPS_TRUE= COIN_HAS_MUMPS_FALSE='#' else COIN_HAS_MUMPS_TRUE='#' COIN_HAS_MUMPS_FALSE= fi fi else echo "$as_me:$LINENO: result: $coin_has_mumps" >&5 echo "${ECHO_T}$coin_has_mumps" >&6 fi if test $coin_has_mumps != skipping && test $coin_has_mumps != notGiven ; then cat >>confdefs.h <<\_ACEOF #define COIN_HAS_MUMPS 1 _ACEOF # Check whether --enable-interpackage-dependencies or --disable-interpackage-dependencies was given. if test "${enable_interpackage_dependencies+set}" = set; then enableval="$enable_interpackage_dependencies" else enable_interpackage_dependencies=yes fi; if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) MUMPS_DEPENDENCIES=`echo " $MUMPS_LIBS" | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` IPOPTLIB_DEPENDENCIES=`echo " $IPOPTLIB_LIBS " | sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g'` fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$MUMPS_CFLAGS" ; then { echo "$as_me:$LINENO: Mumps CFLAGS are $MUMPS_CFLAGS" >&5 echo "$as_me: Mumps CFLAGS are $MUMPS_CFLAGS" >&6;} fi if test -n "$MUMPS_LIBS" ; then { echo "$as_me:$LINENO: Mumps LIBS are $MUMPS_LIBS" >&5 echo "$as_me: Mumps LIBS are $MUMPS_LIBS" >&6;} fi if test -n "$MUMPS_DEPENDENCIES" ; then { echo "$as_me:$LINENO: Mumps DEPENDENCIES are $MUMPS_DEPENDENCIES" >&5 echo "$as_me: Mumps DEPENDENCIES are $MUMPS_DEPENDENCIES" >&6;} fi if test -n "$MUMPS_DATA" ; then { echo "$as_me:$LINENO: Mumps DATA is $MUMPS_DATA" >&5 echo "$as_me: Mumps DATA is $MUMPS_DATA" >&6;} fi if test -n "$MUMPS_PCLIBS" ; then { echo "$as_me:$LINENO: Mumps PCLIBS are $MUMPS_PCLIBS" >&5 echo "$as_me: Mumps PCLIBS are $MUMPS_PCLIBS" >&6;} fi if test -n "$MUMPS_PCREQUIRES" ; then { echo "$as_me:$LINENO: Mumps PCREQUIRES are $MUMPS_PCREQUIRES" >&5 echo "$as_me: Mumps PCREQUIRES are $MUMPS_PCREQUIRES" >&6;} fi { echo "$as_me:$LINENO: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&5 echo "$as_me: IpoptLib CFLAGS are $IPOPTLIB_CFLAGS" >&6;} { echo "$as_me:$LINENO: IpoptLib LIBS are $IPOPTLIB_LIBS" >&5 echo "$as_me: IpoptLib LIBS are $IPOPTLIB_LIBS" >&6;} { echo "$as_me:$LINENO: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&5 echo "$as_me: IpoptLib DEPENDENCIES are $IPOPTLIB_DEPENDENCIES" >&6;} fi fi # Define the Makefile conditional if test $coin_has_mumps != notGiven && test $coin_has_mumps != skipping; then COIN_HAS_MUMPS_TRUE= COIN_HAS_MUMPS_FALSE='#' else COIN_HAS_MUMPS_TRUE='#' COIN_HAS_MUMPS_FALSE= fi ############################################################################# # Stuff for examples # ############################################################################# # find out how long an int pointer is to know if we need INTEGER*4 or # INTEGER*8 in Fortran to capture pointers. # # This test doesn't work on BlueGene if test "$is_bg" = no; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for int *" >&5 echo $ECHO_N "checking for int *... $ECHO_C" >&6 if test "${ac_cv_type_int_p+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { if ((int * *) 0) return 0; if (sizeof (int *)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_int_p=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_int_p=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_int_p" >&5 echo "${ECHO_T}$ac_cv_type_int_p" >&6 echo "$as_me:$LINENO: checking size of int *" >&5 echo $ECHO_N "checking size of int *... $ECHO_C" >&6 if test "${ac_cv_sizeof_int_p+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$ac_cv_type_int_p" = yes; then # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { static int test_array [1 - 2 * !(((long) (sizeof (int *))) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { static int test_array [1 - 2 * !(((long) (sizeof (int *))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr $ac_mid + 1` if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { static int test_array [1 - 2 * !(((long) (sizeof (int *))) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { static int test_array [1 - 2 * !(((long) (sizeof (int *))) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_hi=`expr '(' $ac_mid ')' - 1` if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi ac_mid=`expr 2 '*' $ac_mid` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo= ac_hi= fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { static int test_array [1 - 2 * !(((long) (sizeof (int *))) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_lo=`expr '(' $ac_mid ')' + 1` fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int_p=$ac_lo;; '') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int *), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int *), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } ;; esac else if test "$cross_compiling" = yes; then { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling See \`config.log' for more details." >&5 echo "$as_me: error: cannot run test program while cross compiling See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default long longval () { return (long) (sizeof (int *)); } unsigned long ulongval () { return (long) (sizeof (int *)); } #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) exit (1); if (((long) (sizeof (int *))) < 0) { long i = longval (); if (i != ((long) (sizeof (int *)))) exit (1); fprintf (f, "%ld\n", i); } else { unsigned long i = ulongval (); if (i != ((long) (sizeof (int *)))) exit (1); fprintf (f, "%lu\n", i); } exit (ferror (f) || fclose (f) != 0); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int_p=`cat conftest.val` else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) { { echo "$as_me:$LINENO: error: cannot compute sizeof (int *), 77 See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute sizeof (int *), 77 See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi rm -f conftest.val else ac_cv_sizeof_int_p=0 fi fi echo "$as_me:$LINENO: result: $ac_cv_sizeof_int_p" >&5 echo "${ECHO_T}$ac_cv_sizeof_int_p" >&6 cat >>confdefs.h <<_ACEOF #define SIZEOF_INT_P $ac_cv_sizeof_int_p _ACEOF ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else ac_cv_sizeof_int_p=4 fi case "$ac_cv_sizeof_int_p" in 4 | 4?) BITS_PER_POINTER=32 BIT32FCOMMENT='' BIT64FCOMMENT='C' ;; 8 | 8?) BITS_PER_POINTER=64 BIT32FCOMMENT='C' BIT64FCOMMENT='' ;; *) { { echo "$as_me:$LINENO: error: Unknown length of int *" >&5 echo "$as_me: error: Unknown length of int *" >&2;} { (exit 1); exit 1; }; };; esac ######################################################## ## Set variables for the archiver for C++ object files # ## (for AIX in 64bit mode also on SGI, SUN...) # ######################################################## if test -z "$CXXAR"; then if test ! "$GXX" = "yes"; then case $build in *-sun-*) CXXAR="CC -xar -o" ;; *-sgi-*) CXXAR="CC -ar -o" ;; esac fi if test -z "$CXXAR"; then CXXAR="$AR cru" fi fi { echo "$as_me:$LINENO: Using CXXAR=\"$CXXAR\"." >&5 echo "$as_me: Using CXXAR=\"$CXXAR\"." >&6;} ############################################################################ ############################################################################ # Stuff that we need for C++ programs # ############################################################################ ############################################################################ ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ################ # Header Files # ################ ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cmath],[],[],[$hdr]) for ac_header in cmath do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cmath" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([math.h],[],[],[$hdr]) for ac_header in math.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cctype],[],[],[$hdr]) for ac_header in cctype do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cctype" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([ctype.h],[],[],[$hdr]) for ac_header in ctype.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cassert],[],[],[$hdr]) for ac_header in cassert do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cassert" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([assert.h],[],[],[$hdr]) for ac_header in assert.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cstdio],[],[],[$hdr]) for ac_header in cstdio do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cstdio" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([stdio.h],[],[],[$hdr]) for ac_header in stdio.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cstdlib],[],[],[$hdr]) for ac_header in cstdlib do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cstdlib" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([stdlib.h],[],[],[$hdr]) for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cstdarg],[],[],[$hdr]) for ac_header in cstdarg do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cstdarg" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([stdarg.h],[],[],[$hdr]) for ac_header in stdarg.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cstring],[],[],[$hdr]) for ac_header in cstring do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cstring" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([string.h],[],[],[$hdr]) for ac_header in string.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cfloat],[],[],[$hdr]) for ac_header in cfloat do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cfloat" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([float.h],[],[],[$hdr]) for ac_header in float.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([ctime],[],[],[$hdr]) for ac_header in ctime do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_ctime" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([time.h],[],[],[$hdr]) for ac_header in time.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cstddef],[],[],[$hdr]) for ac_header in cstddef do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cstddef" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([stddef.h],[],[],[$hdr]) for ac_header in stddef.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ################### # Function finite # ################### ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cmath],[],[],[$hdr]) for ac_header in cmath do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cmath" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([math.h],[],[],[$hdr]) for ac_header in math.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cfloat],[],[],[$hdr]) for ac_header in cfloat do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cfloat" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([float.h],[],[],[$hdr]) for ac_header in float.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([cieeefp],[],[],[$hdr]) for ac_header in cieeefp do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "$ac_cv_header_cieeefp" != "yes"; then #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([ieeefp.h],[],[],[$hdr]) for ac_header in ieeefp.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu COIN_C_FINITE= echo "$as_me:$LINENO: checking whether isfinite is declared" >&5 echo $ECHO_N "checking whether isfinite is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_isfinite+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef isfinite char *p = (char *) isfinite; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_isfinite=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_isfinite=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_isfinite" >&5 echo "${ECHO_T}$ac_cv_have_decl_isfinite" >&6 if test $ac_cv_have_decl_isfinite = yes; then COIN_C_FINITE=isfinite fi if test -z "$COIN_C_FINITE"; then echo "$as_me:$LINENO: checking whether finite is declared" >&5 echo $ECHO_N "checking whether finite is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_finite+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef finite char *p = (char *) finite; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_finite=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_finite=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_finite" >&5 echo "${ECHO_T}$ac_cv_have_decl_finite" >&6 if test $ac_cv_have_decl_finite = yes; then COIN_C_FINITE=finite fi if test -z "$COIN_C_FINITE"; then echo "$as_me:$LINENO: checking whether _finite is declared" >&5 echo $ECHO_N "checking whether _finite is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl__finite+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef _finite char *p = (char *) _finite; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl__finite=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl__finite=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl__finite" >&5 echo "${ECHO_T}$ac_cv_have_decl__finite" >&6 if test $ac_cv_have_decl__finite = yes; then COIN_C_FINITE=_finite fi fi fi if test -z "$COIN_C_FINITE"; then { echo "$as_me:$LINENO: WARNING: Cannot find C-function for checking Inf." >&5 echo "$as_me: WARNING: Cannot find C-function for checking Inf." >&2;} else cat >>confdefs.h <<_ACEOF #define COIN_C_FINITE $COIN_C_FINITE _ACEOF fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ########### # va_copy # ########### echo "$as_me:$LINENO: checking whether va_copy is declared" >&5 echo $ECHO_N "checking whether va_copy is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_va_copy+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CSTDARG # include #else # ifdef HAVE_STDARG_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef va_copy char *p = (char *) va_copy; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_va_copy=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_va_copy=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_va_copy" >&5 echo "${ECHO_T}$ac_cv_have_decl_va_copy" >&6 if test $ac_cv_have_decl_va_copy = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_VA_COPY 1 _ACEOF fi ########################### # Random number generator # ########################### echo "$as_me:$LINENO: checking whether drand48 is declared" >&5 echo $ECHO_N "checking whether drand48 is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_drand48+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef drand48 char *p = (char *) drand48; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_drand48=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_drand48=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_drand48" >&5 echo "${ECHO_T}$ac_cv_have_decl_drand48" >&6 if test $ac_cv_have_decl_drand48 = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DRAND48 1 _ACEOF fi echo "$as_me:$LINENO: checking whether rand is declared" >&5 echo $ECHO_N "checking whether rand is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_rand+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef rand char *p = (char *) rand; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_rand=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_rand=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_rand" >&5 echo "${ECHO_T}$ac_cv_have_decl_rand" >&6 if test $ac_cv_have_decl_rand = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_RAND 1 _ACEOF fi echo "$as_me:$LINENO: checking whether srand is declared" >&5 echo $ECHO_N "checking whether srand is declared... $ECHO_C" >&6 if test "${ac_cv_have_decl_srand+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef HAVE_CSTDLIB # include #else # ifdef HAVE_STDLIB_H # include # endif #endif using namespace std; #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { #ifndef srand char *p = (char *) srand; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_have_decl_srand=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_srand=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_have_decl_srand" >&5 echo "${ECHO_T}$ac_cv_have_decl_srand" >&6 if test $ac_cv_have_decl_srand = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STD__RAND 1 _ACEOF fi ########################################################################## # Additional libraries and packages ########### # HSL # ########### # some Fortran compilers do not allow preprocessor directives # so we check here whether the define for MA28 is set in CoinHslConfig.h have_ma28=no if test "$coin_has_hsl" = "yes" ; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $HSL_CFLAGS" echo "$as_me:$LINENO: checking whether MA28 is available with HSL" >&5 echo $ECHO_N "checking whether MA28 is available with HSL... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define HAVE_CONFIG_H #include "CoinHslConfig.h" #ifndef COINHSL_HAS_MA28 #error "do not have MA28" #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { ; return 0; } _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 have_ma28=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi if test $have_ma28 = yes; then HAVE_MA28_TRUE= HAVE_MA28_FALSE='#' else HAVE_MA28_TRUE='#' HAVE_MA28_FALSE= fi ########### # PARDISO # ########### ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu # Check whether --with-pardiso or --without-pardiso was given. if test "${with_pardiso+set}" = set; then withval="$with_pardiso" use_pardiso=$withval else use_pardiso=no fi; # Check whether MKL is being used have_mkl=no #SAVE_LIBS="$LIBS" #if test "$use_pardiso" = "no"; then # LIBS="$LIBS $LAPACK_LIBS $BLAS_LIBS" #else # LIBS="$use_pardiso $LIBS $LAPACK_LIBS $BLAS_LIBS" #fi #AC_MSG_CHECKING([whether MKL is being used]) #AC_TRY_LINK([],[ call mkl_get_version_string()], # [AC_MSG_RESULT(yes) # have_mkl=yes], # [AC_MSG_RESULT(no)]) # If using MKL, always enable Pardiso #if test "$have_mkl" = "yes" -a "$use_pardiso" = "no"; then # use_pardiso="" #fi #LIBS="$SAVE_LIBS" if test "$use_pardiso" != "no"; then SAVE_LIBS="$LIBS" PARDISO_LIB="$use_pardiso" LIBS="$PARDISO_LIB $LIBS $LAPACK_LIBS $BLAS_LIBS" # ToDo put this back in echo "$as_me:$LINENO: checking whether user-supplied Pardiso library \"$use_pardiso\" works" >&5 echo $ECHO_N "checking whether user-supplied Pardiso library \"$use_pardiso\" works... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF program main call PARDISO() end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: Pardiso library $use_pardiso does not seem to work" >&5 echo "$as_me: error: Pardiso library $use_pardiso does not seem to work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext cat >>confdefs.h <<\_ACEOF #define HAVE_PARDISO 1 _ACEOF echo "$as_me:$LINENO: checking whether Pardiso library is at least version 4.0" >&5 echo $ECHO_N "checking whether Pardiso library is at least version 4.0... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF program main call pardiso_ipopt_newinterface() end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 cat >>confdefs.h <<\_ACEOF #define HAVE_PARDISO_OLDINTERFACE 1 _ACEOF if test "$have_mkl" = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_PARDISO_MKL 1 _ACEOF else have_mkl=no fi fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # Test if this is the parallel version of Pardiso # (MKL PARDISO is always parallel, even though it does not have this function implemented) pardiso_parallel=no if test "$have_mkl" = "yes" ; then pardiso_parallel=yes else echo "$as_me:$LINENO: checking whether Pardiso library is the parallel version" >&5 echo $ECHO_N "checking whether Pardiso library is the parallel version... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF program main call pardiso_exist_parallel() end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 pardiso_parallel=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test "$pardiso_parallel" = yes ; then cat >>confdefs.h <<\_ACEOF #define HAVE_PARDISO_PARALLEL 1 _ACEOF fi LIBS="$SAVE_LIBS" IPOPTLIB_LIBS="$PARDISO_LIB $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$PARDISO_LIB $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$PARDISO_LIB $IPOPTLIB_LIBS_INSTALLED" fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ######## # WSMP # ######## # Check whether --with-wsmp or --without-wsmp was given. if test "${with_wsmp+set}" = set; then withval="$with_wsmp" use_wsmp=$withval else use_wsmp=no fi; if test "$use_wsmp" != "no"; then SAVE_LIBS="$LIBS" LIBS="$LIBS $use_wsmp $BLAS_LIBS" ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu echo "$as_me:$LINENO: checking whether user-supplied WSMP library \"$use_wsmp\" works" >&5 echo $ECHO_N "checking whether user-supplied WSMP library \"$use_wsmp\" works... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF program main call WSSMP() end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: WSMP library $use_wsmp does not seem to work" >&5 echo "$as_me: error: WSMP library $use_wsmp does not seem to work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat >>confdefs.h <<\_ACEOF #define HAVE_WSMP 1 _ACEOF LIBS="$SAVE_LIBS" IPOPTLIB_LIBS="$use_wsmp $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$use_wsmp $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$use_wsmp $IPOPTLIB_LIBS_INSTALLED" fi # Check if at least one linear solver was found if test "$have_ma27" != "yes" -a "$have_ma57" != "yes" -a "$have_ma77" != "yes" -a "$have_ma86" != "yes" -a "$use_pardiso" = "no" -a "$use_taucs" = no -a "$use_wsmp" = no -a "$coin_has_mumps" != yes; then { echo "$as_me:$LINENO: WARNING: \"You are compiling Ipopt without any linear solver (such as MUMPS). You will only be able to run Ipopt if you compile a shared library with a linear solver.\"" >&5 echo "$as_me: WARNING: \"You are compiling Ipopt without any linear solver (such as MUMPS). You will only be able to run Ipopt if you compile a shared library with a linear solver.\"" >&2;} fi ################################################### # Check if user wants inexact algorithm available # ################################################### # Check whether --enable-inexact-solver or --disable-inexact-solver was given. if test "${enable_inexact_solver+set}" = set; then enableval="$enable_inexact_solver" case "$enableval" in no | yes) ;; *) { { echo "$as_me:$LINENO: error: invalid argument for --enable-inexact-solver: $enableval" >&5 echo "$as_me: error: invalid argument for --enable-inexact-solver: $enableval" >&2;} { (exit 1); exit 1; }; };; esac use_inexact=$enableval else use_inexact=no fi; if test $use_inexact = yes; then if test "$use_pardiso" = "no"; then { { echo "$as_me:$LINENO: error: The inexact solver option is currently only available with Pardiso" >&5 echo "$as_me: error: The inexact solver option is currently only available with Pardiso" >&2;} { (exit 1); exit 1; }; } fi # Check if the global function pointer variable is defined in the Pardiso library SAVE_LIBS="$LIBS" LIBS="$LIBS $PARDISO_LIB $LAPACK_LIBS $BLAS_LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking if Pardiso library has global variable IpoptFunction" >&5 echo $ECHO_N "checking if Pardiso library has global variable IpoptFunction... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF extern int (*IpoptFunction)(int n, double* x, double* r, int k, double b); int main() { IpoptFunction = 0; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: Pardiso library not recent enough for the inexact solver option" >&5 echo "$as_me: error: Pardiso library not recent enough for the inexact solver option" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu LIBS="$SAVE_LIBS" fi # For the remaining tests we need to include FLIBS into LIBS, so that # the C compiler can link programs #LIBS="$LIBS $FLIBS" # ToDo should this go into BLAS and LAPACK test???? ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ###################################### # Equivalent int Fortran and C types # ###################################### # FIXME: The following test should be active, but this requires chance in # code to copy Index* to ipfint* arrays... if test "$cross_compiling" = no && test "$is_bg" != yes; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >>confdefs.h <<\_ACEOF #define FORTRAN_INTEGER_TYPE int _ACEOF # AC_CHECK_SIZEOF([long]) # AC_CHECK_SIZEOF([int]) # AC_CHECK_SIZEOF([double]) # AC_MSG_CHECKING([for C type corresponding to Fortran INTEGER]) # if test $ac_cv_sizeof_long = $ac_cv_sizeof_double; then # AC_DEFINE([FORTRAN_INTEGER_TYPE],[int],[Define to the C type corresponding to Fortran INTEGER]) # AC_MSG_RESULT([int]) # else # AC_DEFINE([FORTRAN_INTEGER_TYPE],[long]) # AC_MSG_RESULT([long]) # fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else { echo "$as_me:$LINENO: WARNING: We are cross compiling, assuming Fortran \`INTEGER' type corresponds to C \`int' type" >&5 echo "$as_me: WARNING: We are cross compiling, assuming Fortran \`INTEGER' type corresponds to C \`int' type" >&2;} cat >>confdefs.h <<\_ACEOF #define FORTRAN_INTEGER_TYPE int _ACEOF fi ############# JAVA if test "${JAVA_HOME+set}" = set; then { echo "$as_me:$LINENO: JAVA_HOME = $JAVA_HOME" >&5 echo "$as_me: JAVA_HOME = $JAVA_HOME" >&6;} fi case $build in *-cygwin* | *-mingw*) JIPOPTDLL=jipopt.dll ;; *) JIPOPTDLL=libjipopt.so ;; esac # Compiler flag for linking DLLs/shared objects (not yet portable!) if test $coin_cxx_is_cl = true; then SHARED_FLAGS=-LD else SHARED_FLAGS=-shared fi #doing this check here avoids its repetition for each file in the following loop echo "$as_me:$LINENO: checking whether this is a VPATH configuration" >&5 echo $ECHO_N "checking whether this is a VPATH configuration... $ECHO_C" >&6 if test `cd $srcdir; pwd` != `pwd`; then coin_vpath_config=yes; else coin_vpath_config=no; fi echo "$as_me:$LINENO: result: $coin_vpath_config" >&5 echo "${ECHO_T}$coin_vpath_config" >&6 for file in `cat $srcdir/contrib/JavaInterface/javafiles.lst` do # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/JavaInterface/$file" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi done ############ Matlab # Try to detect if there is matlab installed on the system and set the # MATLAB_HOME variable echo "$as_me:$LINENO: checking for matlab installation" >&5 echo $ECHO_N "checking for matlab installation... $ECHO_C" >&6 # Check whether --with-matlab-home or --without-matlab-home was given. if test "${with_matlab_home+set}" = set; then withval="$with_matlab_home" use_matlab_home=$withval else use_matlab_home= fi; # check whether to build static MEX files # Check whether --enable-matlab-static or --disable-matlab-static was given. if test "${enable_matlab_static+set}" = set; then enableval="$enable_matlab_static" case "$enableval" in no | yes) ;; *) { { echo "$as_me:$LINENO: error: invalid argument for --enable-matlab-static: $enableval" >&5 echo "$as_me: error: invalid argument for --enable-matlab-static: $enableval" >&2;} { (exit 1); exit 1; }; };; esac use_matlab_static=$enableval else use_matlab_static=no fi; if test x"$use_matlab_static" = xyes; then MEX_STATIC_TRUE= MEX_STATIC_FALSE='#' else MEX_STATIC_TRUE='#' MEX_STATIC_FALSE= fi # If we're in Windows, need to add .bat extension to find mex and mexext, and set conditional to modify Matlab interface Makefile batext= case $build in *-cygwin* | *-mingw*) batext=.bat ;; esac if test x"$batext" != x; then MEX_WINDOWS_TRUE= MEX_WINDOWS_FALSE='#' else MEX_WINDOWS_TRUE='#' MEX_WINDOWS_FALSE= fi if test x"$use_matlab_home" = x; then # Try to detect matlab home automatically mexpath=`which matlab$EXEEXT 2>/dev/null` if test -z "$mexpath" || expr "$mexpath" : '.*no matlab.*' >/dev/null 2>&1 ; then echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 else if test -L "$mexpath"; then # matlab is a symbolic link, follow it mexpath=`ls -l "$mexpath" | awk '{print $NF}'` fi MATLAB_HOME=`echo $mexpath | sed -e "s=/bin/matlab$EXEEXT$=="` echo "$as_me:$LINENO: result: $MATLAB_HOME" >&5 echo "${ECHO_T}$MATLAB_HOME" >&6 fi else MATLAB_HOME="$use_matlab_home" echo "$as_me:$LINENO: result: $MATLAB_HOME" >&5 echo "${ECHO_T}$MATLAB_HOME" >&6 if test ! -x "$MATLAB_HOME/bin/mex$batext"; then { { echo "$as_me:$LINENO: error: Matlab compiler $MATLAB_HOME/bin/mex$batext not found or not executable" >&5 echo "$as_me: error: Matlab compiler $MATLAB_HOME/bin/mex$batext not found or not executable" >&2;} { (exit 1); exit 1; }; } fi fi MEXSUFFIX= MWMA57PATH= if test x"$MATLAB_HOME" != x; then echo "$as_me:$LINENO: checking for Matlab executable extension (MEXSUFFIX)" >&5 echo $ECHO_N "checking for Matlab executable extension (MEXSUFFIX)... $ECHO_C" >&6 if ! test -x "$MATLAB_HOME/bin/mexext$batext"; then { echo "$as_me:$LINENO: WARNING: Cannot find $MATLAB_HOME/bin/mexext$batext executable to determine MEXSUFFIX" >&5 echo "$as_me: WARNING: Cannot find $MATLAB_HOME/bin/mexext$batext executable to determine MEXSUFFIX" >&2;} else case $build in *-mingw*) # MinGW cannot execute .bat files natively, so use cmd /c MEXSUFFIX=$(cd "$MATLAB_HOME/bin"; cmd /c mexext$batext) # Also get short DOS form of MATLAB_HOME to avoid spaces in paths MATLAB_HOME=$(cd "$MATLAB_HOME"; cmd /c 'for %i in (.) do @echo %~fsi' | \ sed 's|\\|/|g') # replace backslashes with forward slashes ;; *-cygwin*) # need to strip trailing carriage return from mexext result in Cygwin MEXSUFFIX=`"$MATLAB_HOME/bin/mexext$batext" | dos2unix` # Also get short DOS form of MATLAB_HOME to avoid spaces in paths MATLAB_HOME=$(cygpath -u $(cygpath -d "$MATLAB_HOME")) ;; *) MEXSUFFIX=`$MATLAB_HOME/bin/mexext` ;; esac echo "$as_me:$LINENO: result: $MEXSUFFIX" >&5 echo "${ECHO_T}$MEXSUFFIX" >&6 fi # check whether to use Matlab's MA57 # Check whether --enable-matlab-ma57 or --disable-matlab-ma57 was given. if test "${enable_matlab_ma57+set}" = set; then enableval="$enable_matlab_ma57" enable_matlab_ma57=$enableval else enable_matlab_ma57=no fi; if test x"$enable_matlab_ma57" = xyes && test "$coin_has_hsl" != "yes" ; then case $MEXSUFFIX in mexglx) # not tested MWMA57PATH="$MATLAB_HOME/bin/glnx86" MWMA57LIB="-L$MWMA57PATH -lmwma57" MWMA57PATH="$MWMA57PATH:$MATLAB_HOME/sys/os/glnx86" ;; mexa64) MWMA57PATH="$MATLAB_HOME/bin/glnxa64" MWMA57LIB="-L$MWMA57PATH -lmwma57" MWMA57PATH="$MWMA57PATH:$MATLAB_HOME/sys/os/glnxa64" ;; mexmac) # not tested MWMA57PATH="$MATLAB_HOME/bin/mac" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexmaci) # not tested MWMA57PATH="$MATLAB_HOME/bin/maci" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexmaci64) MWMA57PATH="$MATLAB_HOME/bin/maci64" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexs64) # not tested MWMA57PATH="$MATLAB_HOME/bin/sol64" MWMA57LIB="-L$MWMA57PATH -lmwma57" ;; mexw32) MWMA57PATH="$MATLAB_HOME/bin/win32" MWMA57LIB="-L$MWMA57PATH -lmwma57" if test x"$use_matlab_static" = xyes; then MWMA57LIB="-L$MWMA57PATH -Wl,-Bdynamic,-lmwma57,-Bstatic" fi ;; mexw64) MWMA57PATH="$MATLAB_HOME/bin/win64" MWMA57LIB="-L$MWMA57PATH -lmwma57" if test x"$use_matlab_static" = xyes; then MWMA57LIB="-L$MWMA57PATH -Wl,-Bdynamic,-lmwma57,-Bstatic" fi ;; *) # something unexpected, either too old or too new? ;; esac #TODO check whether MAMW57LIB works IPOPTLIB_LIBS="$MWMA57LIB $IPOPTLIB_LIBS" IPOPTLIB_PCLIBS="$MWMA57LIB $IPOPTLIB_PCLIBS" IPOPTLIB_LIBS_INSTALLED="$MWMA57LIB $IPOPTLIB_LIBS_INSTALLED" CXXFLAGS="$CXXFLAGS -DFUNNY_MA57_FINT" mkdir -p src/Common echo "#define COINHSL_HAS_MA57 1" > src/Common/CoinHslConfig.h # also fix Fortran naming convention on Windows # (no trailing underscores in libmwma57.dll) case $MEXSUFFIX in mexw32 | mexw64) echo "#define ma57ad_ ma57ad" >> src/Common/CoinHslConfig.h echo "#define ma57bd_ ma57bd" >> src/Common/CoinHslConfig.h echo "#define ma57cd_ ma57cd" >> src/Common/CoinHslConfig.h echo "#define ma57ed_ ma57ed" >> src/Common/CoinHslConfig.h echo "#define ma57id_ ma57id" >> src/Common/CoinHslConfig.h ;; esac cat >>confdefs.h <<\_ACEOF #define COIN_HAS_HSL 1 _ACEOF fi fi # On Mac, need to move "-framework vecLib" from LIBS to LDFLAGS (if being used) FRAMEWORK_VECLIB= if test -n "`echo $BLAS_LIBS $LAPACK_LIBS | grep -e '-framework vecLib'`"; then FRAMEWORK_VECLIB='-framework vecLib' fi ########## # ASTYLE # ########## ASTYLE=astyle ASTYLEFLAGS="--mode=c --indent=spaces=2 --indent-cases --indent-namespaces --min-conditional-indent=1 --brackets=linux --brackets=break-closing --convert-tabs" ######################### # Makefile conditionals # ######################### # The following variable collects the names of libraries that should # be included into libipopt.a (relative to subdir Interfaces, where it # is made) IPALLLIBS="../contrib/CGPenalty/libcgpenalty.la ../Algorithm/libipoptalg.la ../Algorithm/LinearSolvers/liblinsolvers.la ../Common/libcommon.la ../LinAlg/liblinalg.la ../LinAlg/TMatrices/libtmatrices.la" if test ! "$use_pardiso" = no; then HAVE_PARDISO_TRUE= HAVE_PARDISO_FALSE='#' else HAVE_PARDISO_TRUE='#' HAVE_PARDISO_FALSE= fi if test ! "$use_wsmp" = no; then HAVE_WSMP_TRUE= HAVE_WSMP_FALSE='#' else HAVE_WSMP_TRUE='#' HAVE_WSMP_FALSE= fi # Check whether --enable-linear-solver-loader or --disable-linear-solver-loader was given. if test "${enable_linear_solver_loader+set}" = set; then enableval="$enable_linear_solver_loader" case "$enableval" in no | yes) ;; *) { { echo "$as_me:$LINENO: error: invalid argument for --enable-linear-solver-loader: $enableval" >&5 echo "$as_me: error: invalid argument for --enable-linear-solver-loader: $enableval" >&2;} { (exit 1); exit 1; }; };; esac use_linearsolverloader=$enableval else use_linearsolverloader=yes fi; echo "$as_me:$LINENO: checking whether the linear solver loader should be compiled" >&5 echo $ECHO_N "checking whether the linear solver loader should be compiled... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $use_linearsolverloader" >&5 echo "${ECHO_T}$use_linearsolverloader" >&6 if test $use_linearsolverloader = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LINEARSOLVERLOADER 1 _ACEOF IPALLLIBS="../contrib/LinearSolverLoader/libLinearSolverLoader.la $IPALLLIBS" fi if test $use_linearsolverloader = yes; then BUILD_LINEARSOLVERLOADER_TRUE= BUILD_LINEARSOLVERLOADER_FALSE='#' else BUILD_LINEARSOLVERLOADER_TRUE='#' BUILD_LINEARSOLVERLOADER_FALSE= fi if test "$use_pardiso" = no; then BUILD_PARDISOLOADER_TRUE= BUILD_PARDISOLOADER_FALSE='#' else BUILD_PARDISOLOADER_TRUE='#' BUILD_PARDISOLOADER_FALSE= fi if test $use_inexact = yes; then BUILD_INEXACT_TRUE= BUILD_INEXACT_FALSE='#' else BUILD_INEXACT_TRUE='#' BUILD_INEXACT_FALSE= fi if test $use_inexact = yes; then IPALLLIBS="../Algorithm/Inexact/libinexact.la $IPALLLIBS" cat >>confdefs.h <<\_ACEOF #define BUILD_INEXACT 1 _ACEOF fi ######################################################################## ## Linear solver loader stuff ## ######################################################################## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([windows.h],[],[],[$hdr]) for ac_header in windows.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done #if test x"" = x; then # hdr="#include " #else # hdr="" #fi #AC_CHECK_HEADERS([dlfcn.h],[],[],[$hdr]) for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then IPOPTLIB_LIBS="$IPOPTLIB_LIBS -ldl" IPOPTLIB_PCLIBS="$IPOPTLIB_PCLIBS -ldl" IPOPTLIB_LIBS_INSTALLED="$IPOPTLIB_LIBS_INSTALLED -ldl" fi case $build in *-cygwin* | *-mingw*) cat >>confdefs.h <<\_ACEOF #define SHAREDLIBEXT "dll" _ACEOF # Take -pedantic-errors out of CFLAGS { echo "$as_me:$LINENO: Removing flag -pedantic-errors from CFLAGS" >&5 echo "$as_me: Removing flag -pedantic-errors from CFLAGS" >&6;} CFLAGS=`echo $CFLAGS | sed -e s/-pedantic-errors//` ;; *-darwin*) cat >>confdefs.h <<\_ACEOF #define SHAREDLIBEXT "dylib" _ACEOF ;; *) cat >>confdefs.h <<\_ACEOF #define SHAREDLIBEXT "so" _ACEOF esac for ac_func in snprintf _snprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF break fi done for ac_func in vsnprintf _vsnprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF break fi done ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ######################################################################## ## Create links for the test source files ## ######################################################################## ac_config_links="$ac_config_links test/hs071_main.cpp:examples/hs071_cpp/hs071_main.cpp test/hs071_nlp.cpp:examples/hs071_cpp/hs071_nlp.cpp test/hs071_nlp.hpp:examples/hs071_cpp/hs071_nlp.hpp test/hs071_c.c:examples/hs071_c/hs071_c.c" ######################################################################## ## Create links for VPATH config of certain files ## ######################################################################## # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/MatlabInterface/examples/examplehs038.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/MatlabInterface/examples/examplehs051.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/MatlabInterface/examples/examplehs071.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/MatlabInterface/examples/examplelasso.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/MatlabInterface/examples/lasso.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/DESCRIPTION" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/NAMESPACE" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/inst/CITATION" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/inst/doc/ipoptr.Rnw" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/inst/doc/ipoptr.pdf" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/inst/doc/reflist.bib" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/inst/doc/figs/plot-sparsefig.eps" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/ipoptr-package.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/ipoptr.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/is.ipoptr.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/make.sparse.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/plot.sparseness.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/print.ipoptr.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/man/print.sparseness.Rd" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/get.option.types.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/ipoptr.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/is.ipoptr.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/make.sparse.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/plot.sparseness.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/print.ipoptr.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/R/print.sparseness.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/approx_banana.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/banana.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/hs071_nlp.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/lasso.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/mynlp.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/parameters.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/tests/sparseness.R" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/src/ipoptr.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/src/IpoptRJournal.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/RInterface/src/IpoptRNLP.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/Cpp_example/cpp_example.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/Cpp_example/MyNLP.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/Cpp_example/MyNLP.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/hs071_cpp/hs071_main.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/hs071_cpp/hs071_nlp.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/hs071_cpp/hs071_nlp.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="examples/hs071_c/hs071_c.c" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/AmplExperiments/hs71.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/AmplExperiments/infeasible.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/AmplExperiments/MoreAmplModels.txt" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/AmplExperiments/car1.run" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/AmplExperiments/car1.gp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/Modeling/bad1.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/Modeling/bad1-fix1.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/Modeling/bad1-fix2.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/exercise_example.mod" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/C/1-skeleton/TutorialC.c" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/C/2-mistake/TutorialC.c" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/C/3-solution/TutorialC.c" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_main.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/1-skeleton/TutorialCpp_nlp.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_main.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/2-mistake/TutorialCpp_nlp.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_main.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Cpp/3-solution/TutorialCpp_nlp.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Matlab/1-skeleton/TutorialMatlab.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Matlab/2-mistake/TutorialMatlab.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="tutorial/CodingExercise/Matlab/3-solution/TutorialMatlab.m" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/parametric_cpp/parametric_driver.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.hpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="contrib/sIPOPT/examples/redhess_cpp/redhess_cpp.cpp" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi ######################################################################## ## Create Makefiles and other stuff ## ######################################################################## ac_config_files="$ac_config_files Makefile src/Common/Makefile src/LinAlg/Makefile src/LinAlg/TMatrices/Makefile src/Interfaces/Makefile src/Algorithm/Makefile src/Algorithm/LinearSolvers/Makefile src/Algorithm/Inexact/Makefile src/contrib/CGPenalty/Makefile src/contrib/LinearSolverLoader/Makefile src/Apps/Makefile src/Apps/AmplSolver/Makefile src/Apps/CUTErInterface/Makefile examples/hs071_f/Makefile examples/hs071_f/hs071_f.f examples/Cpp_example/Makefile examples/hs071_cpp/Makefile examples/hs071_c/Makefile examples/ScalableProblems/Makefile tutorial/CodingExercise/C/1-skeleton/Makefile tutorial/CodingExercise/C/2-mistake/Makefile tutorial/CodingExercise/C/3-solution/Makefile tutorial/CodingExercise/Cpp/1-skeleton/Makefile tutorial/CodingExercise/Cpp/2-mistake/Makefile tutorial/CodingExercise/Cpp/3-solution/Makefile tutorial/CodingExercise/Matlab/1-skeleton/startup.m tutorial/CodingExercise/Matlab/2-mistake/startup.m tutorial/CodingExercise/Matlab/3-solution/startup.m tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f tutorial/CodingExercise/Fortran/1-skeleton/Makefile tutorial/CodingExercise/Fortran/2-mistake/Makefile tutorial/CodingExercise/Fortran/3-solution/Makefile test/Makefile test/run_unitTests contrib/MatlabInterface/src/Makefile contrib/MatlabInterface/examples/startup.m contrib/JavaInterface/Makefile contrib/sIPOPT/Makefile contrib/sIPOPT/AmplSolver/Makefile contrib/sIPOPT/examples/parametric_cpp/Makefile contrib/sIPOPT/examples/redhess_cpp/Makefile contrib/sIPOPT/src/Makefile ipopt.pc ipopt-uninstalled.pc doxydoc/doxygen.conf" # under Windows, the Makevars file for the R Interface need to be named Makevars.win case $build in *-cygwin* | *-mingw*) ac_config_files="$ac_config_files contrib/RInterface/src/Makevars.win:contrib/RInterface/src/Makevars.in" ;; *) ac_config_files="$ac_config_files contrib/RInterface/src/Makevars" ;; esac if test $coin_has_asl = yes ; then ac_config_files="$ac_config_files ipoptamplinterface.pc:src/Apps/AmplSolver/ipoptamplinterface.pc.in ipoptamplinterface-uninstalled.pc:src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in" fi ac_config_headers="$ac_config_headers src/Common/config.h src/Common/config_ipopt.h examples/ScalableProblems/config.h" echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${ALWAYS_FALSE_TRUE}" && test -z "${ALWAYS_FALSE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"ALWAYS_FALSE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CXX_IS_CL_TRUE}" && test -z "${COIN_CXX_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CXX_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CXX_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AIX_FIX_COMPILER_BUG_TRUE}" && test -z "${AIX_FIX_COMPILER_BUG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AIX_FIX_COMPILER_BUG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AIX_FIX_COMPILER_BUG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_PKGCONFIG_TRUE}" && test -z "${COIN_HAS_PKGCONFIG_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_PKGCONFIG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_BLAS_TRUE}" && test -z "${COIN_HAS_BLAS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_BLAS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_LAPACK_TRUE}" && test -z "${COIN_HAS_LAPACK_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_LAPACK\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_ASL_TRUE}" && test -z "${COIN_HAS_ASL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_ASL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_ASL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_ASL_TRUE}" && test -z "${COIN_HAS_ASL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_ASL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_ASL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_TRUE}" && test -z "${COIN_HAS_HSL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_HSL_TRUE}" && test -z "${COIN_HAS_HSL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_HSL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_HSL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MUMPS_TRUE}" && test -z "${COIN_HAS_MUMPS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MUMPS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MUMPS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_HAS_MUMPS_TRUE}" && test -z "${COIN_HAS_MUMPS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_HAS_MUMPS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_HAS_MUMPS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_MA28_TRUE}" && test -z "${HAVE_MA28_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_MA28\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MEX_STATIC_TRUE}" && test -z "${MEX_STATIC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MEX_STATIC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MEX_STATIC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MEX_WINDOWS_TRUE}" && test -z "${MEX_WINDOWS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MEX_WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MEX_WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_PARDISO_TRUE}" && test -z "${HAVE_PARDISO_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_PARDISO\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_PARDISO\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_WSMP_TRUE}" && test -z "${HAVE_WSMP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_WSMP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_WSMP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_LINEARSOLVERLOADER_TRUE}" && test -z "${BUILD_LINEARSOLVERLOADER_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"BUILD_LINEARSOLVERLOADER\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"BUILD_LINEARSOLVERLOADER\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_PARDISOLOADER_TRUE}" && test -z "${BUILD_PARDISOLOADER_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"BUILD_PARDISOLOADER\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"BUILD_PARDISOLOADER\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${BUILD_INEXACT_TRUE}" && test -z "${BUILD_INEXACT_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"BUILD_INEXACT\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"BUILD_INEXACT\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by Ipopt $as_me 3.11.4, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration links: $config_links Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ Ipopt config.status 3.11.4 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Common/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Common/Makefile" ;; "src/LinAlg/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/LinAlg/Makefile" ;; "src/LinAlg/TMatrices/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/LinAlg/TMatrices/Makefile" ;; "src/Interfaces/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Interfaces/Makefile" ;; "src/Algorithm/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Algorithm/Makefile" ;; "src/Algorithm/LinearSolvers/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Algorithm/LinearSolvers/Makefile" ;; "src/Algorithm/Inexact/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Algorithm/Inexact/Makefile" ;; "src/contrib/CGPenalty/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/contrib/CGPenalty/Makefile" ;; "src/contrib/LinearSolverLoader/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/contrib/LinearSolverLoader/Makefile" ;; "src/Apps/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Apps/Makefile" ;; "src/Apps/AmplSolver/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Apps/AmplSolver/Makefile" ;; "src/Apps/CUTErInterface/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Apps/CUTErInterface/Makefile" ;; "examples/hs071_f/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/hs071_f/Makefile" ;; "examples/hs071_f/hs071_f.f" ) CONFIG_FILES="$CONFIG_FILES examples/hs071_f/hs071_f.f" ;; "examples/Cpp_example/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Cpp_example/Makefile" ;; "examples/hs071_cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/hs071_cpp/Makefile" ;; "examples/hs071_c/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/hs071_c/Makefile" ;; "examples/ScalableProblems/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/ScalableProblems/Makefile" ;; "tutorial/CodingExercise/C/1-skeleton/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/C/1-skeleton/Makefile" ;; "tutorial/CodingExercise/C/2-mistake/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/C/2-mistake/Makefile" ;; "tutorial/CodingExercise/C/3-solution/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/C/3-solution/Makefile" ;; "tutorial/CodingExercise/Cpp/1-skeleton/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Cpp/1-skeleton/Makefile" ;; "tutorial/CodingExercise/Cpp/2-mistake/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Cpp/2-mistake/Makefile" ;; "tutorial/CodingExercise/Cpp/3-solution/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Cpp/3-solution/Makefile" ;; "tutorial/CodingExercise/Matlab/1-skeleton/startup.m" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Matlab/1-skeleton/startup.m" ;; "tutorial/CodingExercise/Matlab/2-mistake/startup.m" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Matlab/2-mistake/startup.m" ;; "tutorial/CodingExercise/Matlab/3-solution/startup.m" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Matlab/3-solution/startup.m" ;; "tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/1-skeleton/TutorialFortran.f" ;; "tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/2-mistake/TutorialFortran.f" ;; "tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/3-solution/TutorialFortran.f" ;; "tutorial/CodingExercise/Fortran/1-skeleton/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/1-skeleton/Makefile" ;; "tutorial/CodingExercise/Fortran/2-mistake/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/2-mistake/Makefile" ;; "tutorial/CodingExercise/Fortran/3-solution/Makefile" ) CONFIG_FILES="$CONFIG_FILES tutorial/CodingExercise/Fortran/3-solution/Makefile" ;; "test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/run_unitTests" ) CONFIG_FILES="$CONFIG_FILES test/run_unitTests" ;; "contrib/MatlabInterface/src/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/MatlabInterface/src/Makefile" ;; "contrib/MatlabInterface/examples/startup.m" ) CONFIG_FILES="$CONFIG_FILES contrib/MatlabInterface/examples/startup.m" ;; "contrib/JavaInterface/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/JavaInterface/Makefile" ;; "contrib/sIPOPT/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/sIPOPT/Makefile" ;; "contrib/sIPOPT/AmplSolver/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/sIPOPT/AmplSolver/Makefile" ;; "contrib/sIPOPT/examples/parametric_cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/sIPOPT/examples/parametric_cpp/Makefile" ;; "contrib/sIPOPT/examples/redhess_cpp/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/sIPOPT/examples/redhess_cpp/Makefile" ;; "contrib/sIPOPT/src/Makefile" ) CONFIG_FILES="$CONFIG_FILES contrib/sIPOPT/src/Makefile" ;; "ipopt.pc" ) CONFIG_FILES="$CONFIG_FILES ipopt.pc" ;; "ipopt-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES ipopt-uninstalled.pc" ;; "doxydoc/doxygen.conf" ) CONFIG_FILES="$CONFIG_FILES doxydoc/doxygen.conf" ;; "contrib/RInterface/src/Makevars.win" ) CONFIG_FILES="$CONFIG_FILES contrib/RInterface/src/Makevars.win:contrib/RInterface/src/Makevars.in" ;; "contrib/RInterface/src/Makevars" ) CONFIG_FILES="$CONFIG_FILES contrib/RInterface/src/Makevars" ;; "ipoptamplinterface.pc" ) CONFIG_FILES="$CONFIG_FILES ipoptamplinterface.pc:src/Apps/AmplSolver/ipoptamplinterface.pc.in" ;; "ipoptamplinterface-uninstalled.pc" ) CONFIG_FILES="$CONFIG_FILES ipoptamplinterface-uninstalled.pc:src/Apps/AmplSolver/ipoptamplinterface-uninstalled.pc.in" ;; "test/hs071_main.cpp" ) CONFIG_LINKS="$CONFIG_LINKS test/hs071_main.cpp:examples/hs071_cpp/hs071_main.cpp" ;; "test/hs071_nlp.cpp" ) CONFIG_LINKS="$CONFIG_LINKS test/hs071_nlp.cpp:examples/hs071_cpp/hs071_nlp.cpp" ;; "test/hs071_nlp.hpp" ) CONFIG_LINKS="$CONFIG_LINKS test/hs071_nlp.hpp:examples/hs071_cpp/hs071_nlp.hpp" ;; "test/hs071_c.c" ) CONFIG_LINKS="$CONFIG_LINKS test/hs071_c.c:examples/hs071_c/hs071_c.c" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "src/Common/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS src/Common/config.h" ;; "src/Common/config_ipopt.h" ) CONFIG_HEADERS="$CONFIG_HEADERS src/Common/config_ipopt.h" ;; "examples/ScalableProblems/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS examples/ScalableProblems/config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@ALWAYS_FALSE_TRUE@,$ALWAYS_FALSE_TRUE,;t t s,@ALWAYS_FALSE_FALSE@,$ALWAYS_FALSE_FALSE,;t t s,@have_svnversion@,$have_svnversion,;t t s,@IPOPT_SVN_REV@,$IPOPT_SVN_REV,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@CXXDEFS@,$CXXDEFS,;t t s,@ADD_CXXFLAGS@,$ADD_CXXFLAGS,;t t s,@DBG_CXXFLAGS@,$DBG_CXXFLAGS,;t t s,@OPT_CXXFLAGS@,$OPT_CXXFLAGS,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@COIN_CXX_IS_CL_TRUE@,$COIN_CXX_IS_CL_TRUE,;t t s,@COIN_CXX_IS_CL_FALSE@,$COIN_CXX_IS_CL_FALSE,;t t s,@MPICXX@,$MPICXX,;t t s,@CXXLIBS@,$CXXLIBS,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@FLIBS@,$FLIBS,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@BLUEGENEEXTRA@,$BLUEGENEEXTRA,;t t s,@AIX_FIX_COMPILER_BUG_TRUE@,$AIX_FIX_COMPILER_BUG_TRUE,;t t s,@AIX_FIX_COMPILER_BUG_FALSE@,$AIX_FIX_COMPILER_BUG_FALSE,;t t s,@coin_have_doxygen@,$coin_have_doxygen,;t t s,@coin_doxy_usedot@,$coin_doxy_usedot,;t t s,@coin_doxy_tagname@,$coin_doxy_tagname,;t t s,@coin_doxy_logname@,$coin_doxy_logname,;t t s,@coin_doxy_tagfiles@,$coin_doxy_tagfiles,;t t s,@coin_doxy_excludes@,$coin_doxy_excludes,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@ac_ct_PKG_CONFIG@,$ac_ct_PKG_CONFIG,;t t s,@COIN_HAS_PKGCONFIG_TRUE@,$COIN_HAS_PKGCONFIG_TRUE,;t t s,@COIN_HAS_PKGCONFIG_FALSE@,$COIN_HAS_PKGCONFIG_FALSE,;t t s,@COIN_PKG_CONFIG_PATH@,$COIN_PKG_CONFIG_PATH,;t t s,@COIN_PKG_CONFIG_PATH_UNINSTALLED@,$COIN_PKG_CONFIG_PATH_UNINSTALLED,;t t s,@BLAS_LIBS@,$BLAS_LIBS,;t t s,@BLAS_CFLAGS@,$BLAS_CFLAGS,;t t s,@BLAS_DATA@,$BLAS_DATA,;t t s,@BLAS_DEPENDENCIES@,$BLAS_DEPENDENCIES,;t t s,@BLAS_LIBS_INSTALLED@,$BLAS_LIBS_INSTALLED,;t t s,@BLAS_CFLAGS_INSTALLED@,$BLAS_CFLAGS_INSTALLED,;t t s,@BLAS_DATA_INSTALLED@,$BLAS_DATA_INSTALLED,;t t s,@IPOPTLIB_CFLAGS@,$IPOPTLIB_CFLAGS,;t t s,@IPOPTLIB_LIBS@,$IPOPTLIB_LIBS,;t t s,@IPOPTLIB_PCLIBS@,$IPOPTLIB_PCLIBS,;t t s,@IPOPTLIB_PCREQUIRES@,$IPOPTLIB_PCREQUIRES,;t t s,@IPOPTLIB_DEPENDENCIES@,$IPOPTLIB_DEPENDENCIES,;t t s,@IPOPTLIB_CFLAGS_INSTALLED@,$IPOPTLIB_CFLAGS_INSTALLED,;t t s,@IPOPTLIB_LIBS_INSTALLED@,$IPOPTLIB_LIBS_INSTALLED,;t t s,@COIN_HAS_BLAS_TRUE@,$COIN_HAS_BLAS_TRUE,;t t s,@COIN_HAS_BLAS_FALSE@,$COIN_HAS_BLAS_FALSE,;t t s,@LAPACK_LIBS@,$LAPACK_LIBS,;t t s,@LAPACK_CFLAGS@,$LAPACK_CFLAGS,;t t s,@LAPACK_DATA@,$LAPACK_DATA,;t t s,@LAPACK_DEPENDENCIES@,$LAPACK_DEPENDENCIES,;t t s,@LAPACK_LIBS_INSTALLED@,$LAPACK_LIBS_INSTALLED,;t t s,@LAPACK_CFLAGS_INSTALLED@,$LAPACK_CFLAGS_INSTALLED,;t t s,@LAPACK_DATA_INSTALLED@,$LAPACK_DATA_INSTALLED,;t t s,@COIN_HAS_LAPACK_TRUE@,$COIN_HAS_LAPACK_TRUE,;t t s,@COIN_HAS_LAPACK_FALSE@,$COIN_HAS_LAPACK_FALSE,;t t s,@ASL_LIBS@,$ASL_LIBS,;t t s,@ASL_CFLAGS@,$ASL_CFLAGS,;t t s,@ASL_DATA@,$ASL_DATA,;t t s,@ASL_DEPENDENCIES@,$ASL_DEPENDENCIES,;t t s,@ASL_LIBS_INSTALLED@,$ASL_LIBS_INSTALLED,;t t s,@ASL_CFLAGS_INSTALLED@,$ASL_CFLAGS_INSTALLED,;t t s,@ASL_DATA_INSTALLED@,$ASL_DATA_INSTALLED,;t t s,@IPOPTAMPLINTERFACELIB_CFLAGS@,$IPOPTAMPLINTERFACELIB_CFLAGS,;t t s,@IPOPTAMPLINTERFACELIB_LIBS@,$IPOPTAMPLINTERFACELIB_LIBS,;t t s,@IPOPTAMPLINTERFACELIB_PCLIBS@,$IPOPTAMPLINTERFACELIB_PCLIBS,;t t s,@IPOPTAMPLINTERFACELIB_PCREQUIRES@,$IPOPTAMPLINTERFACELIB_PCREQUIRES,;t t s,@IPOPTAMPLINTERFACELIB_DEPENDENCIES@,$IPOPTAMPLINTERFACELIB_DEPENDENCIES,;t t s,@IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@,$IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED,;t t s,@IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@,$IPOPTAMPLINTERFACELIB_LIBS_INSTALLED,;t t s,@COIN_HAS_ASL_TRUE@,$COIN_HAS_ASL_TRUE,;t t s,@COIN_HAS_ASL_FALSE@,$COIN_HAS_ASL_FALSE,;t t s,@HSL_LIBS@,$HSL_LIBS,;t t s,@HSL_CFLAGS@,$HSL_CFLAGS,;t t s,@HSL_DATA@,$HSL_DATA,;t t s,@HSL_DEPENDENCIES@,$HSL_DEPENDENCIES,;t t s,@HSL_LIBS_INSTALLED@,$HSL_LIBS_INSTALLED,;t t s,@HSL_CFLAGS_INSTALLED@,$HSL_CFLAGS_INSTALLED,;t t s,@HSL_DATA_INSTALLED@,$HSL_DATA_INSTALLED,;t t s,@COIN_HAS_HSL_TRUE@,$COIN_HAS_HSL_TRUE,;t t s,@COIN_HAS_HSL_FALSE@,$COIN_HAS_HSL_FALSE,;t t s,@MUMPS_LIBS@,$MUMPS_LIBS,;t t s,@MUMPS_CFLAGS@,$MUMPS_CFLAGS,;t t s,@MUMPS_DATA@,$MUMPS_DATA,;t t s,@MUMPS_DEPENDENCIES@,$MUMPS_DEPENDENCIES,;t t s,@MUMPS_LIBS_INSTALLED@,$MUMPS_LIBS_INSTALLED,;t t s,@MUMPS_CFLAGS_INSTALLED@,$MUMPS_CFLAGS_INSTALLED,;t t s,@MUMPS_DATA_INSTALLED@,$MUMPS_DATA_INSTALLED,;t t s,@COIN_HAS_MUMPS_TRUE@,$COIN_HAS_MUMPS_TRUE,;t t s,@COIN_HAS_MUMPS_FALSE@,$COIN_HAS_MUMPS_FALSE,;t t s,@BITS_PER_POINTER@,$BITS_PER_POINTER,;t t s,@BIT32FCOMMENT@,$BIT32FCOMMENT,;t t s,@BIT64FCOMMENT@,$BIT64FCOMMENT,;t t s,@CXXAR@,$CXXAR,;t t s,@HAVE_MA28_TRUE@,$HAVE_MA28_TRUE,;t t s,@HAVE_MA28_FALSE@,$HAVE_MA28_FALSE,;t t s,@JAVA_HOME@,$JAVA_HOME,;t t s,@JIPOPTDLL@,$JIPOPTDLL,;t t s,@SHARED_FLAGS@,$SHARED_FLAGS,;t t s,@MEX_STATIC_TRUE@,$MEX_STATIC_TRUE,;t t s,@MEX_STATIC_FALSE@,$MEX_STATIC_FALSE,;t t s,@MEX_WINDOWS_TRUE@,$MEX_WINDOWS_TRUE,;t t s,@MEX_WINDOWS_FALSE@,$MEX_WINDOWS_FALSE,;t t s,@FRAMEWORK_VECLIB@,$FRAMEWORK_VECLIB,;t t s,@MATLAB_HOME@,$MATLAB_HOME,;t t s,@MEXSUFFIX@,$MEXSUFFIX,;t t s,@MWMA57PATH@,$MWMA57PATH,;t t s,@ASTYLE@,$ASTYLE,;t t s,@ASTYLEFLAGS@,$ASTYLEFLAGS,;t t s,@IPALLLIBS@,$IPALLLIBS,;t t s,@HAVE_PARDISO_TRUE@,$HAVE_PARDISO_TRUE,;t t s,@HAVE_PARDISO_FALSE@,$HAVE_PARDISO_FALSE,;t t s,@HAVE_WSMP_TRUE@,$HAVE_WSMP_TRUE,;t t s,@HAVE_WSMP_FALSE@,$HAVE_WSMP_FALSE,;t t s,@BUILD_LINEARSOLVERLOADER_TRUE@,$BUILD_LINEARSOLVERLOADER_TRUE,;t t s,@BUILD_LINEARSOLVERLOADER_FALSE@,$BUILD_LINEARSOLVERLOADER_FALSE,;t t s,@BUILD_PARDISOLOADER_TRUE@,$BUILD_PARDISOLOADER_TRUE,;t t s,@BUILD_PARDISOLOADER_FALSE@,$BUILD_PARDISOLOADER_FALSE,;t t s,@BUILD_INEXACT_TRUE@,$BUILD_INEXACT_TRUE,;t t s,@BUILD_INEXACT_FALSE@,$BUILD_INEXACT_FALSE,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_LINKS section. # for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} if test ! -r $srcdir/$ac_source; then { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} { (exit 1); exit 1; }; } fi rm -f $ac_dest # Make relative symlinks. ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dest_dir" else as_dir="$ac_dest_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dest_dir" != .; then ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dest_dir";; *) case "$ac_dest_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dest_dir";; *) ac_abs_builddir=`pwd`/"$ac_dest_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $srcdir in [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; esac # Try a symlink, then a hard link, then a copy. ln -s $ac_rel_source $ac_dest 2>/dev/null || ln $srcdir/$ac_source $ac_dest 2>/dev/null || cp -p $srcdir/$ac_source $ac_dest || { { echo "$as_me:$LINENO: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&5 echo "$as_me: error: cannot link or copy $srcdir/$ac_source to $ac_dest" >&2;} { (exit 1); exit 1; }; } done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/Ipopt/contrib/0000755000076600007660000000000012214537465014115 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/MatlabInterface/0000755000076600007660000000000012214537465017136 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/MatlabInterface/get.Gnumex0000644000076600007660000000221012023703511021056 0ustar coincoin#!/bin/sh set -e gnumex_ver=2.04 wgetcmd=wget wgetcount=`which wget 2>/dev/null | wc -l` if test ! $wgetcount = 1; then echo "Utility wget not found in your PATH." if test `uname` = Darwin; then wgetcmd=ftp echo "Using ftp command instead." elif test `uname` = FreeBSD; then wgetcmd=fetch echo "Using fetch command instead." else exit -1 fi fi echo " " echo "Running script to download the source code for Gnumex $gnumex_ver." echo " " rm -f gnumex*.zip echo "Downloading the source code from downloads.sourceforge.net..." $wgetcmd http://downloads.sourceforge.net/project/gnumex/gnumex-${gnumex_ver}.zip if test -d gnumex ; then echo "Moving current gnumex to gnumex.OLD." if test -d gnumex.OLD ; then rm -rf gnumex.OLD fi mv gnumex gnumex.OLD fi echo "Uncompressing the zip..." unzip gnumex-${gnumex_ver}.zip echo " " echo "Done downloading the source code for gnumex." echo "Modifying permissions of exe and mex files." chmod +x gnumex/*.exe gnumex/*.mexw32 echo " " echo "Applying patch file." patch -p0 < gnumex_win64.patch echo " " echo "Verify that there are no error messages in the output above." Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/0000755000076600007660000000000012214537465020754 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/examplelasso.m0000644000076600007660000000302611504216567023626 0ustar coincoin% In this small MATLAB script, we compute the least squares solution to a % regression problem subject to L1 regularization, which rewards "sparse" % models that have regression coefficients of zero. See, for instance, % the work in the "Lasso" by the statistician Robert Tibshirani. % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 18, 2008 % Experiment parameters. lambda = 1; % Level of L1 regularization. n = 100; % Number of training examples. e = 1; % Std. dev. in noise of outputs. beta = [ 0 0 2 -4 0 0 -1 3 ]'; % "True" regression coefficients. % Set the random number generator seed. seed = 7; rand('state',seed); randn('state',seed); % CREATE DATA SET. % Generate the input vectors from the standard normal, and generate the % binary responses from the regression with some additional noise, and then % transform the results using the logistic function. The variable "beta" is % the set of true regression coefficients. m = length(beta); % Number of features. A = randn(n,m); % The n x m matrix of examples. noise = e * randn(n,1); % Noise in outputs. y = A * beta + noise; % The binary outputs. % COMPUTE SOLUTION WITH IPOPT. % Compute the L1-regularized maximum likelihood estimator. w = lasso(A,y,lambda); fprintf('Solution:\n'); disp(w); Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/startup.m.in0000644000076600007660000000002511172221600023215 0ustar coincoinaddpath @prefix@/lib Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/examplehs051.m0000644000076600007660000000375511504216567023356 0ustar coincoin% Test the "ipopt" Matlab interface on the Hock & Schittkowski test problem % #51. See: Willi Hock and Klaus Schittkowski. (1981) Test Examples for % Nonlinear Programming Codes. Lecture Notes in Economics and Mathematical % Systems Vol. 187, Springer-Verlag. % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 18, 2008 function [x, info] = examplehs051 x0 = [ 2.5 0.5 2 -1 0.5 ]; % The starting point. options.cl = [ 4 0 0 ]; % Lower bounds on constraints. options.cu = [ 4 0 0 ]; % Upper bounds on constraints. % Set the IPOPT options. options.ipopt.jac_c_constant = 'yes'; options.ipopt.hessian_approximation = 'limited-memory'; options.ipopt.mu_strategy = 'adaptive'; options.ipopt.tol = 1e-7; % The callback functions. funcs.objective = @objective; funcs.constraints = @constraints; funcs.gradient = @gradient; funcs.jacobian = @jacobian; funcs.jacobianstructure = @jacobian; % Run IPOPT. [x info] = ipopt(x0,funcs,options); % ---------------------------------------------------------------------- function f = objective (x) f = (x(1) - x(2))^2 + ... (x(2) + x(3) - 2)^2 + ... (x(4) - 1)^2 + (x(5) - 1)^2; % ---------------------------------------------------------------------- function g = gradient (x) g = 2*[ x(1) - x(2); x(2) + x(3) - 2 - x(1) + x(2); x(2) + x(3) - 2; x(4) - 1; x(5) - 1 ]; % ---------------------------------------------------------------------- function c = constraints (x) c = [ x(1) + 3*x(2); x(3) + x(4) - 2*x(5); x(2) - x(5) ]; % ---------------------------------------------------------------------- function J = jacobian (x) J = sparse([ 1 3 0 0 0; 0 0 1 1 -2; 0 1 0 0 -1 ]); Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/examplehs071.m0000644000076600007660000000446311504216567023355 0ustar coincoin% Test the "ipopt" Matlab interface on the Hock & Schittkowski test problem % #71. See: Willi Hock and Klaus Schittkowski. (1981) Test Examples for % Nonlinear Programming Codes. Lecture Notes in Economics and Mathematical % Systems Vol. 187, Springer-Verlag. % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 18, 2008 function [x, info] = examplehs071 x0 = [1 5 5 1]; % The starting point. options.lb = [1 1 1 1]; % Lower bound on the variables. options.ub = [5 5 5 5]; % Upper bound on the variables. options.cl = [25 40]; % Lower bounds on the constraint functions. options.cu = [inf 40]; % Upper bounds on the constraint functions. % Initialize the dual point. options.zl = [1 1 1 1]; options.zu = [1 1 1 1]; options.lambda = [1 1]; % Set the IPOPT options. options.ipopt.mu_strategy = 'adaptive'; options.ipopt.tol = 1e-7; % The callback functions. funcs.objective = @(x) x(1)*x(4)*sum(x(1:3)) + x(3); funcs.constraints = @(x) [ prod(x); sum(x.^2) ]; funcs.gradient = @gradient; funcs.jacobian = @(x) sparse([ prod(x)./x; 2*x ]); funcs.jacobianstructure = @() sparse(ones(2,4)); funcs.hessian = @hessian; funcs.hessianstructure = @() sparse(tril(ones(4))); % Run IPOPT. [x info] = ipopt(x0,funcs,options); % ---------------------------------------------------------------------- function g = gradient (x) g = [ x(1)*x(4) + x(4)*sum(x(1:3)) x(1)*x(4) x(1)*x(4) + 1 x(1)*sum(x(1:3)) ]; % ---------------------------------------------------------------------- function H = hessian (x, sigma, lambda) H = sigma*[ 2*x(4) 0 0 0; x(4) 0 0 0; x(4) 0 0 0; 2*x(1)+x(2)+x(3) x(1) x(1) 0 ]; H = H + lambda(1)*[ 0 0 0 0; x(3)*x(4) 0 0 0; x(2)*x(4) x(1)*x(4) 0 0; x(2)*x(3) x(1)*x(3) x(1)*x(2) 0 ]; H = H + lambda(2)*diag([2 2 2 2]); H = sparse(H); Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/examplehs038.m0000644000076600007660000000476011504216567023360 0ustar coincoin% Test the "ipopt" Matlab interface on the Hock & Schittkowski test problem % #38. See: Willi Hock and Klaus Schittkowski. (1981) Test Examples for % Nonlinear Programming Codes. Lecture Notes in Economics and Mathematical % Systems Vol. 187, Springer-Verlag. % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 18, 2008 function [x, info] = examplehs038 x0 = [-3 -1 -3 -1]; % The starting point. options.lb = [-10 -10 -10 -10]; % Lower bound on the variables. options.ub = [+10 +10 +10 +10]; % Upper bound on the variables. % The callback functions. funcs.objective = @objective; funcs.gradient = @gradient; funcs.hessian = @hessian; funcs.hessianstructure = @hessianstructure; funcs.iterfunc = @callback; % Set the IPOPT options. options.ipopt.mu_strategy = 'adaptive'; options.ipopt.print_level = 0; options.ipopt.tol = 1e-7; options.ipopt.max_iter = 100; % Run IPOPT. [x info] = ipopt(x0,funcs,options); % ---------------------------------------------------------------------- function f = objective (x) f = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2 + 90*(x(4)-x(3)^2)^2 + (1-x(3))^2 + ... 10.1*(x(2)-1)^2 + 10.1*(x(4)-1)^2 + 19.8*(x(2)-1)*(x(4)-1); % ---------------------------------------------------------------------- function g = gradient (x) g(1) = -400*x(1)*(x(2)-x(1)^2) - 2*(1-x(1)); g(2) = 200*(x(2)-x(1)^2) + 20.2*(x(2)-1) + 19.8*(x(4)-1); g(3) = -360*x(3)*(x(4)-x(3)^2) -2*(1-x(3)); g(4) = 180*(x(4)-x(3)^2) + 20.2*(x(4)-1) + 19.8*(x(2)-1); % ---------------------------------------------------------------------- function H = hessianstructure() H = sparse([ 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 ]); % ---------------------------------------------------------------------- function H = hessian (x, sigma, lambda) H = [ 1200*x(1)^2-400*x(2)+2 0 0 0 -400*x(1) 220.2 0 0 0 0 1080*x(3)^2- 360*x(4) + 2 0 0 19.8 -360*x(3) 200.2 ]; H = sparse(sigma*H); % ---------------------------------------------------------------------- function b = callback (t, f, x) fprintf('%3d %0.3g \n',t,f); b = true;Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/examples/lasso.m0000644000076600007660000000604612142261342022245 0ustar coincoin% This function executes IPOPT to find the maximum likelihood solution to % least squares regression with L1 regularization or the "Lasso". The inputs % are the data matrix A (in which each row is an example vector), the vector % of regression outputs y, and the penalty parameter lambda, a number % greater than zero. The output is the estimated vector of regression % coefficients. % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 18, 2008 function w = lasso (A, y, lambda) % Get the number of examples (n) and the number of regression % coefficients (m). [n m] = size(A); % The starting point. x0 = { zeros(m,1) ones(m,1) }; % The constraint functions are bounded from below by zero. options.cl = zeros(2*m,1); options.cu = repmat(Inf,2*m,1); % Set up the auxiliary data. options.auxdata = { n m A y lambda }; % Set the IPOPT options. options.ipopt.jac_d_constant = 'yes'; options.ipopt.hessian_constant = 'yes'; options.ipopt.mu_strategy = 'adaptive'; options.ipopt.max_iter = 100; options.ipopt.tol = 1e-8; % The callback functions. funcs.objective = @objective; funcs.constraints = @constraints; funcs.gradient = @gradient; funcs.jacobian = @jacobian; funcs.jacobianstructure = @jacobianstructure; funcs.hessian = @hessian; funcs.hessianstructure = @hessianstructure; % Run IPOPT. [x info] = ipopt_auxdata(x0,funcs,options); w = x{1}; % ------------------------------------------------------------------ function f = objective (x, auxdata) [n m A y lambda] = deal(auxdata{:}); [w u] = deal(x{:}); f = norm(y - A*w)^2/2 + lambda*sum(u); % ------------------------------------------------------------------ function c = constraints (x, auxdata) [w u] = deal(x{:}); c = [ w + u; u - w ]; % ------------------------------------------------------------------ function g = gradient (x, auxdata) [n m A y lambda] = deal(auxdata{:}); w = x{1}; g = { -A'*(y - A*w) repmat(lambda,m,1) }; % ------------------------------------------------------------------ function J = jacobianstructure (auxdata) m = auxdata{2}; I = speye(m); J = [ I I I I ]; % ------------------------------------------------------------------ function J = jacobian (x, auxdata) m = auxdata{2}; I = speye(m); J = [ I I -I I ]; % ------------------------------------------------------------------ function H = hessianstructure (auxdata) m = auxdata{2}; H = [ tril(ones(m)) zeros(m) zeros(m) zeros(m) ]; H = sparse(H); % ------------------------------------------------------------------ function H = hessian (x, sigma, lambda, auxdata) [n m A y lambda] = deal(auxdata{:}); H = [ tril(A'*A) zeros(m) zeros(m) zeros(m) ]; H = sparse(sigma * H); Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/gnumex_win64.patch0000644000076600007660000001001712023703511022471 0ustar coincoinIndex: gnumex/gnumex.m =================================================================== --- gnumex/gnumex.m (revision 50) +++ gnumex/gnumex.m (working copy) @@ -767,7 +767,11 @@ deffiles = varargin{3}; % defdir = varargin{4}; % libs will probably be {'libmex', 'libmx', 'libmat', 'libeng'}; - libdir = [matlabroot '\extern\lib\win32\lcc\']; + if strcmp(computer('arch'),'win64') + libdir = [matlabroot '\extern\lib\win64\microsoft\']; + else + libdir = [matlabroot '\extern\lib\win32\lcc\']; + end for i=1:length(deffiles) [p, lib] = fileparts(deffiles{i}); [err,list] = dos([nmcmd ' -g --defined-only "' libdir lib '.lib"']); @@ -787,6 +791,7 @@ fprintf(fid, 'LIBRARY %s.dll\nEXPORTS\n', lib); J = strmatch('_', symbols)'; for j = J, symbols{j}(1) = ''; end + symbols(strmatch('.text', symbols)) = []; % remove .text entries for j = 1:length(symbols), fprintf(fid,'%s\n', symbols{j}); end fclose(fid); ok = 1; @@ -922,9 +927,12 @@ path_to_deffiles = pps.precompath; full_deffiles = strcat(path_to_deffiles, '\', deffiles); if ~all(paths_exist(full_deffiles)) - % Check that nm.exe can be found - nm = fullfile(pps.cygwinpath, 'bin', 'nm.exe'); - if ~exist(nm, 'file'), nm = fullfile(pps.mingwpath, 'bin', 'nm.exe'); end + % Use correct nm.exe from selected environment + if pps.environ > 1 + nm = fullfile(pps.cygwinpath, 'bin', 'nm.exe'); + else + nm = fullfile(pps.mingwpath, 'bin', 'nm.exe'); + end if ~exist(nm, 'file'), nm = fullfile(pps.gfortpath, 'nm.exe'); end if ~exist(nm, 'file'), errmsg(tit, 'Cannot find nm.exe'); return, end if gui_f, @@ -1263,7 +1271,7 @@ end linker = '%GM_PERLPATH% %GM_UTIL_PATH%\linkmex.pl'; if (pps.mexf == 1) % mexf compile - if mlv_ge('7.1'), oext = 'mexw32'; else oext = 'dll'; end + if mlv_ge('7.1'), oext = mexext; else oext = 'dll'; end else % engine compile oext = 'exe'; end Index: gnumex/shortpath74.m =================================================================== --- gnumex/shortpath74.m (revision 0) +++ gnumex/shortpath74.m (working copy) @@ -0,0 +1,29 @@ +function shortpath = shortpath74(longpath) +if isempty(longpath) + % empty input, empty output + shortpath = longpath; +else + if exist('shortpath74','file') ~= 3 + % cannot find shortpath74 mex file, try compiling it + try + mex -output shortpath74 src/shortpath.c + catch + end + end + if exist('shortpath74','file') == 3 + % compilation of mex file succeeded + % (so the next line is not an infinite recursion) + shortpath = shortpath74(longpath); + elseif exist('@RTW/transformPaths','file') + % use RTW toolbox internal function to get same result + if ~exist(longpath,'dir') + % limitation of RTW.transformPaths is you cannot call it + % on a folder that doesn't exist, so create folder first + mkdir(longpath) + end + shortpath = RTW.transformPaths(longpath); + else + warning('Failed to compile mex file. Try calling mex -setup') + shortpath = longpath; + end +end Index: gnumex/src/shortpath.c =================================================================== --- gnumex/src/shortpath.c (revision 50) +++ gnumex/src/shortpath.c (working copy) @@ -5,6 +5,7 @@ to make sure lcc is used delete mexopts.bat in the prefdir folder (>> delete ([prefdir '\mexopts.bat'])). Then do: >> mex shortpath.c +*/ #include #include Index: gnumex/uigetpath74.m =================================================================== --- gnumex/uigetpath74.m (revision 0) +++ gnumex/uigetpath74.m (working copy) @@ -0,0 +1,6 @@ +function outpath = uigetpath74(varargin) +outpath = uigetdir('\','Choose directory'); +if isequal(outpath, 0) + % user hit cancel, output empty instead of 0 + outpath = ''; +end Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/0000755000076600007660000000000012214537465017725 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabprogram.cpp0000644000076600007660000002114312142261342023246 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #include "matlabprogram.hpp" #include "sparsematrix.hpp" #include "matlabexception.hpp" // Function definitions for class MatlabProgram. // --------------------------------------------------------------- MatlabProgram::MatlabProgram (const Iterate& x0, const CallbackFunctions& funcs, const Options& options, Iterate& x, MatlabInfo& info) : x0(x0), funcs(funcs), options(options), x(x), info(info), J(0), H(0) { } MatlabProgram::~MatlabProgram() { if (J) delete J; if (H) delete H; } bool MatlabProgram::get_nlp_info (int& n, int& m, int& sizeOfJ, int& sizeOfH, IndexStyleEnum& indexStyle) try { // Get the number of variables and constraints. n = numvars(options); m = numconstraints(options); // Get the size of the Jacobian. if (m) { if (!funcs.jacobianFuncIsAvailable()) throw MatlabException("You need to specify the callback functions \ for computing the Jacobian and the sparsity structure of the Jacobian"); SparseMatrix* J = funcs.getJacobianStructure(n,m); sizeOfJ = J->numelems(); delete J; } else sizeOfJ = 0; // Get the size of the symmetric Hessian matrix. We don't need to // store the actual result, we just need to look at the number of // non-zero entries in the lower triangular part of the matrix. if (!options.ipoptOptions().useQuasiNewton()) { if (!funcs.hessianFuncIsAvailable()) throw MatlabException("You need to specify the callback functions \ for computing the Hessian and the sparsity structure of the Hessian"); SparseMatrix* H = funcs.getHessianStructure(n); sizeOfH = H->numelems(); delete H; } else sizeOfH = 0; // Use C-style indexing. indexStyle = C_STYLE; return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::get_bounds_info (int n, double* lb, double* ub, int m, double* cl, double* cu) try { // Fill in the structures with the bounds information. copymemory(options.lowerbounds(),lb,n); copymemory(options.upperbounds(),ub,n); copymemory(options.constraintlb(),cl,m); copymemory(options.constraintub(),cu,m); return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::get_starting_point (int n, bool initializeVars, double* vars, bool initializez, double* zl, double* zu, int m, bool initializeLambda, double* lambda) try { // Check to see whether IPOPT is requesting the initial point for // the primal variables. if (initializeVars) x0.copyto(vars); // Check to see whether IPOPT is requesting the initial point for // the Lagrange multipliers associated with the bounds on the // optimization variables. if (initializez) { if (!options.multlb() || !options.multub()) throw MatlabException("Initialization of Lagrange multipliers \ for lower and upper bounds requested but initial values are not supplied"); copymemory(options.multlb(),zl,n); copymemory(options.multub(),zu,n); } // Check to see whether IPOPT is requesting the initial point for // the Lagrange multipliers corresponding to the equality and // inequality constraints. if (initializeLambda && m>0) { if (!options.multconstr()) throw MatlabException("Initialization of Lagrange multipliers \ for constraints are requested but initial values are not provided"); copymemory(options.multconstr(),lambda,m); } return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::eval_f (int n, const double* vars, bool ignore, double& f) try { x.inject(vars); f = funcs.computeObjective(x); return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::eval_grad_f (int n, const double* vars, bool ignore, double* grad) try { x.inject(vars); funcs.computeGradient(x,grad); return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::eval_g (int n, const double* vars, bool ignore, int m, double* g) try { if (m > 0) { if (!funcs.constraintFuncIsAvailable()) throw MatlabException("You need to specify the callback function \ for computing the constraints"); x.inject(vars); funcs.computeConstraints(x,m,g); } return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::eval_jac_g (int n, const double* vars, bool ignore, int m, int sizeOfJ, int* rows, int *cols, double* Jx) try { if (m > 0) { if (!funcs.jacobianFuncIsAvailable()) throw MatlabException("You need to specify the callback functions \ for computing the Jacobian and the sparsity structure of the Jacobian"); // If the input Jx is 0, then return the sparsity structure of // the Jacobian. Otherwise, return the values of the nonzero // entries. if (Jx == 0) { // Delete any previous structure information concerning the // Jacobian matrix. if (J) { delete J; J = 0; } // Get the sparse matrix structure of the Jacobian. J = funcs.getJacobianStructure(n,m); if (J->numelems() != sizeOfJ) throw MatlabException("The constraint Jacobian passed back from \ the MATLAB routine has an incorrect number of nonzero entries"); // Copy the sparse matrix structure to the IPOPT sparse matrix // format. J->getColsAndRows(cols,rows); } else { // Return the value of the Jacobian. x.inject(vars); funcs.computeJacobian(m,x,*J); J->copyto(Jx); } } return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } bool MatlabProgram::eval_h (int n, const double* vars, bool ignore, double sigma, int m, const double* lambda, bool ignoretoo, int sizeOfH, int* rows, int* cols, double* Hx) try { // If the input Hx is 0, then return the sparsity structure of the // Hessian. Otherwise, return the values of the nonzero entries. if (Hx == 0) { if (!funcs.hessianFuncIsAvailable()) throw MatlabException("You need to specify the callback functions \ for computing the Hessian and the sparsity structure of the Hessian"); // Delete any previous structure information concerning the // Hessian matrix. if (H) { delete H; H = 0; } // Return the sparse matrix structure of the symmetric Hessian. H = funcs.getHessianStructure(n); if (H->numelems() != sizeOfH) throw MatlabException("The Hessian passed back from the MATLAB \ routine has an incorrect number of nonzero entries"); // Copy the sparse matrix structure to the IPOPT sparse matrix // format. H->getColsAndRows(cols,rows); } else { // Return the value of the lower triangular portion of the Hessian. x.inject(vars); funcs.computeHessian(x,sigma,m,lambda,*H); H->copyto(Hx); } return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } void MatlabProgram::finalize_solution (SolverReturn status, int n, const double* vars, const double* zl, const double* zu, int m, const double* g, const double* lambda, double f, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // Get the current solution. x.inject(vars); // Store the value of the Lagrange multipliers at the solution. info.setmultlb(n,zl); info.setmultub(n,zu); info.setmultconstr(m,lambda); } bool MatlabProgram::intermediate_callback (AlgorithmMode mode, int t, double f, double inf_pr, double inf_du, double mu, double d_norm, double regularization_size, double alpha_du, double alpha_pr, int ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) try { if (funcs.iterFuncIsAvailable()) return funcs.iterCallback(t,f,inf_pr,inf_du,mu,d_norm,regularization_size,alpha_du,alpha_pr,ls_trials,ip_data,ip_cq,numvars(x)); else return true; } catch (std::exception& error) { mexPrintf(error.what()); mexPrintf("\n"); throw; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabfunctionhandle.hpp0000644000076600007660000000373111504216567024622 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // August 25, 2008 #ifndef INCLUDE_MATLABFUNCTIONHANDLE #define INCLUDE_MATLABFUNCTIONHANDLE #include "mex.h" // Function declarations. // ----------------------------------------------------------------- // This function returns true if and only if the MATLAB array is a // valid function handle. bool isFunctionHandle (const mxArray* ptr); // Class MatlabFunctionHandle. // ----------------------------------------------------------------- // The purpose of this class is twofold. The first aim is to store // information about a MATLAB function handle. (For more information // on function handles in MATLAB, type HELP FUNCTION_HANDLE in the // MATLAB console). The second purpose is to provide a routine for // evaluating the response of the function, provided inputs to the // function. class MatlabFunctionHandle { public: // The default constructor creates a null function handle. MatlabFunctionHandle() : f(0) { }; // This constructor accepts as input a pointer to a MATLAB array. It // is up to the user to ensure that the MATLAB array is a valid // function handle. explicit MatlabFunctionHandle (const mxArray* ptr); // The destructor. ~MatlabFunctionHandle(); // This method is used to call the MATLAB function, provided inputs // to the function. It is up to the user to make sure that the // outputs array is of the appropriate size. The function returns // "true" on success, or "false" on failure. It is up to the user to // properly deallocate the outputs. bool evaluate (int nin, int nout, const mxArray** inputs, mxArray** outputs); // Returns true if and only if the function handle is not null. operator bool() const { return f != 0; }; protected: mxArray* f; // The MATLAB function handle. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/iterate.hpp0000644000076600007660000000505711504216567022100 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 15, 2008 #ifndef INCLUDE_ITERATE #define INCLUDE_ITERATE #include "mex.h" #include // Function definitions. // --------------------------------------------------------------- template void copymemory (const Type* source, Type* dest, int n) { memcpy(dest,source,sizeof(Type)*n); } // Class Iterate. // ----------------------------------------------------------------- // An object of this class stores all the information we would like to // keep track of regarding the variables in our optimization // problem. An Iterate object is constructed from a MATLAB array, // which is either an array in double precision, or a cell array with // elements that are arrays in double precision. There are two methods // of interest: a function that copies the elements from a source // array to the Iterate object (inject), and a function that copies // the Itereate to a destination array (copyto). class Iterate { public: // This constructor initializes the object basically by creating a // duplicate of the specified MATLAB array. It is important to note // that the Iterate object does *not* create an independent copy of // the MATLAB array. As such, it will not destroy the MATLAB arrays // when the object is destroyed. explicit Iterate (mxArray* ptr); // The destructor. ~Iterate() { }; // Return the number of variables. friend int numvars (const Iterate& x) { return x.nv; }; // Copy the elements from the source array. void inject (const double* x); // Copy the elements to the location in memory pointed to by "dest". // It is assumed that sufficient memory is allocated for the // destination. void copyto (double* x) const; // Convert the Iterate object to a MATLAB array. operator mxArray*() { return ptr; }; operator const mxArray*() const { return ptr; }; // This function dynamically creates a new array containing all the // information about the iterate as specified by the MATLAB // array. It is up to the user to deallocate the memory associated // with the newly allocated data array. The return value is the size // of the array. static int getMatlabData (const mxArray* ptr, double*& data); protected: int nv; // The number of optimization variables. mxArray* ptr; // All the information is stored in a MATLAB array. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/sparsematrix.cpp0000644000076600007660000001204412127005267023145 0ustar coincoin// Copyright (C) 2007 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #include "sparsematrix.hpp" #include "matlabexception.hpp" #include "iterate.hpp" // Function definitions for class SparseMatrix. // --------------------------------------------------------------- SparseMatrix::SparseMatrix (const mxArray* ptr) : jc(0), ir(0), x(0) { // Get the height, width and number of non-zeros. h = (int) mxGetM(ptr); w = (int) mxGetN(ptr); nnz = getSizeOfSparseMatrix(ptr); // Copy the row and column indices, and the values of the nonzero // entries. jc = new mwIndex[w+1]; ir = new mwIndex[nnz]; x = new double[nnz]; copymemory(mxGetJc(ptr),jc,w+1); copymemory(mxGetIr(ptr),ir,nnz); copymemory(mxGetPr(ptr),x,nnz); } SparseMatrix::~SparseMatrix() { if (jc) delete[] jc; if (ir) delete[] ir; if (x) delete[] x; } int SparseMatrix::numelems (int c) const { return (int) jc[c+1] - (int) jc[c]; } void SparseMatrix::getColsAndRows (int* cols, int* rows) const { // Repeat for each column in the matrix, then repeat for each // non-zero entry in the current column. for (int c = 0, i = 0; c < w; c++) for ( ; i < (int) jc[c+1]; i++) { cols[i] = (int) c; rows[i] = (int) ir[i]; } } bool SparseMatrix::copyto (SparseMatrix& dest) const { bool match, matchrow, matchcol; // Loop variables. // Initialize the destination values to zero, because we might not // have corresponding nonzero entries from the source for some of // the destination nonzero entries. for (int i = 0; i < dest.nnz; i++) dest.x[i] = 0; // In order to properly copy the elements from one sparse matrix to // another, the non-zero elements of the destination matrix must be // a superset of the collection of non-zero elements in the source // matrix. If not, the copy operation is invalid, and the function // returns false. Repeat for each column. int i = 0; // Index of element in source. int j = 0; // Index of element in destination. for (int c = 0; c < dest.w; c++) { // Repeat for each non-zero element in the destination column. for ( ; j < (int) dest.jc[c+1]; j++) { // Let's check to see if the source column matches the // destination column, and the source row matches the // destination row. The first line checks to see if the row // indices match. The second line checks to see if the column // indices match. (If the source matrix is valid, there is no // need to check whether the column index of the source entry is // LESS THAN the destination column index since we assume that // there are less entries in the source, and under that // assumption we move faster through the source matrix than we // do through the destination matrix.) matchrow = (ir[i] == dest.ir[j]); matchcol = (i >= (int) jc[c]) && (i < (int) jc[c+1]); match = matchrow && matchcol; // If the row & column indices match, then we copy the source // entry value and move on to the next non-zero entry in the // source. dest.x[j] = match * x[i]; i += match; } } // If we've reached the end of the loop and we haven't visited all // the non-zero entries in the source matrix, it means that the // source matrix is invalid, and we throw an error. if (i < nnz) return false; else return true; } void SparseMatrix::copyto (double* dest) const { copymemory(x,dest,nnz); } // Function definitions for static members of class SparseMatrix. // ----------------------------------------------------------------- int SparseMatrix::getSizeOfSparseMatrix (const mxArray* ptr) { // Get the width (the number of columns) of the matrix. int w = (int) mxGetN(ptr); // The precise number of non-zero elements is contained in the // last entry of the jc array. (There is one jc entry for each // column in the matrix, plus an extra one.) mwIndex* jc = mxGetJc(ptr); return (int) jc[w]; } bool SparseMatrix::isLowerTri (const mxArray* ptr) { // Get the height and width of the matrix. int h = (int) mxGetM(ptr); int w = (int) mxGetN(ptr); // Check whether the sparse matrix is symmetric. if (h != w) return false; // A sparse lower triangular matrix has the property that the // column indices are always less than or equal to the row // indices. bool b = true; // The return value. mwIndex* jc = mxGetJc(ptr); mwIndex* ir = mxGetIr(ptr); for (int c = 0, i = 0; c < w; c++) for ( ; i < (int) jc[c+1]; i++) b = b && (c <= (int) ir[i]); return b; } bool SparseMatrix::inIncOrder (const mxArray* ptr) { bool b = true; int w = (int) mxGetN(ptr); mwIndex* jc = mxGetJc(ptr); mwIndex* ir = mxGetIr(ptr); for (int c = 0, i = 0; c < w; c++) if (jc[c+1] > jc[c]) { i++; for ( ; i < (int) jc[c+1]; i++) b = b && (ir[i] > ir[i-1]); } return b; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/callbackfunctions.cpp0000644000076600007660000004106312142261342024106 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 18, 2008 #include "callbackfunctions.hpp" #include "matlabexception.hpp" // Functions for class CallbackFunctions. // ----------------------------------------------------------------- CallbackFunctions::CallbackFunctions (const mxArray* ptr) : objfunc(0), gradfunc(0), constraintfunc(0), jacobianfunc(0), jacstrucfunc(0), hessianfunc(0), hesstrucfunc(0), iterfunc(0) { const mxArray* p; // A pointer to a MATLAB array. // Check whether we are provided with a structure array. if (!mxIsStruct(ptr)) throw MatlabException("The second input must be a STRUCT"); // Get the function handle for computing the objective. p = mxGetField(ptr,0,"objective"); if (!p) throw MatlabException("You must specify a callback routine for \ computing the value of the objective function"); if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle for \ computing the value of the objective function"); objfunc = new MatlabFunctionHandle(p); // Get the function handle for computing the gradient. p = mxGetField(ptr,0,"gradient"); if (!p) throw MatlabException("You must specify a callback routine for \ computing the gradient of the objective"); if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle for \ computing the gradient of the objective"); gradfunc = new MatlabFunctionHandle(p); // Get the function handle for computing the constraints, if such a // function was specified. p = mxGetField(ptr,0,"constraints"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for computing the response of the constraints"); constraintfunc = new MatlabFunctionHandle(p); } else constraintfunc = new MatlabFunctionHandle(); // Get the function handle for computing the Jacobian. This function // is necessary if there are constraints. p = mxGetField(ptr,0,"jacobian"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for computing the first derivatives (Jacobian) of the constraints"); jacobianfunc = new MatlabFunctionHandle(p); } else { if (*constraintfunc) throw MatlabException("You must provide a function that returns the \ first derivatives (Jacobian) of the constraints"); jacobianfunc = new MatlabFunctionHandle(); } // Get the function handle for computing the sparsity structure of // the Jacobian. This function is necessary if the Jacobian is being // computed. p = mxGetField(ptr,0,"jacobianstructure"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for computing the sparsity structure of the Jacobian"); jacstrucfunc = new MatlabFunctionHandle(p); } else { if (*jacobianfunc) throw MatlabException("You must provide a function that returns the \ sparsity structure of the Jacobian"); jacstrucfunc = new MatlabFunctionHandle(); } // Get the function handle for computing the Hessian. This function // is always optional. p = mxGetField(ptr,0,"hessian"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for computing the Hessian of the Lagrangian"); hessianfunc = new MatlabFunctionHandle(p); } else hessianfunc = new MatlabFunctionHandle(); // Get the function handle for computing the sparsity structure of // the Hessian of the Lagrangian. This function is necessary if the // Hessian is being computed. p = mxGetField(ptr,0,"hessianstructure"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for computing the sparsity structure of the Hessian"); hesstrucfunc = new MatlabFunctionHandle(p); } else { if (*hessianfunc) throw MatlabException("You must provide a function that returns the \ sparsity structure of the Hessian"); hesstrucfunc = new MatlabFunctionHandle(); } // Get the iterative callback function handle. This function is // always optional. p = mxGetField(ptr,0,"iterfunc"); if (p) { if (mxIsEmpty(p) || !isFunctionHandle(p)) throw MatlabException("You did not provide a valid function handle \ for the iterative callback"); iterfunc = new MatlabFunctionHandle(p); } else iterfunc = new MatlabFunctionHandle(); } CallbackFunctions::~CallbackFunctions() { if (objfunc) delete objfunc; if (gradfunc) delete gradfunc; if (constraintfunc) delete constraintfunc; if (jacobianfunc) delete jacobianfunc; if (jacstrucfunc) delete jacstrucfunc; if (hessianfunc) delete hessianfunc; if (hesstrucfunc) delete hesstrucfunc; if (iterfunc) delete iterfunc; } double CallbackFunctions::computeObjective (const Iterate& x) const { double f; // The return value. bool success; const mxArray* inputs[1]; mxArray* outputs[1]; // Call the MATLAB callback function. inputs[0] = x; success = objfunc->evaluate(1,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the objective \ callback function"); // Get the output from the MATLAB callback function, which is the // value of the objective function at x. mxArray* ptr = outputs[0]; if (!mxIsDouble(ptr) || mxIsComplex(ptr) || mxGetNumberOfElements(ptr) != 1) throw MatlabException("The first return value of the objective \ callback function must be a real double scalar"); if (mxIsSparse(ptr)) { // convert sparse objective (unlikely but possible) to full mexCallMATLAB(1, &ptr, 1, outputs, "full"); mxDestroyArray(outputs[0]); } f = *mxGetPr(ptr); // Free the dynamically allocated memory. mxDestroyArray(ptr); return f; } void CallbackFunctions::computeGradient (const Iterate& x, double* g) const { bool success; const mxArray* inputs[1]; mxArray* outputs[1]; // Call the MATLAB callback function. inputs[0] = x; success = gradfunc->evaluate(1,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the \ gradient callback function"); // Get the output from the MATLAB callback function, which is the // value of the gradient of the objective function at x. mxArray* ptr = outputs[0]; if (!mxIsCell(ptr) && (!mxIsDouble(ptr) || mxIsComplex(ptr))) throw MatlabException("The gradient callback must return a real double vector"); if (mxIsSparse(ptr)) { // convert sparse gradient to full (simplest method, not fastest) mexCallMATLAB(1, &ptr, 1, outputs, "full"); mxDestroyArray(outputs[0]); } Iterate grad(ptr); if (numvars(x) != numvars(grad)) throw MatlabException("Invalid gradient passed back from MATLAB \ routine"); grad.copyto(g); // Free the dynamically allocated memory. mxDestroyArray(ptr); } void CallbackFunctions::computeConstraints(const Iterate& x, int m, double* c) const { bool success; const mxArray* inputs[1]; mxArray* outputs[1]; // Call the MATLAB callback function. inputs[0] = x; success = constraintfunc->evaluate(1,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the \ constraints callback function"); // Get the output from the MATLAB callback function, which is the // value of vector-valued constraint function at x. mxArray* ptr = outputs[0]; if ((unsigned) m != mxGetNumberOfElements(ptr)) throw MatlabException("Invalid constraint values passed back from \ Matlab routine"); if (!mxIsDouble(ptr) || mxIsComplex(ptr)) throw MatlabException("The constraint callback must return a real double vector"); if (mxIsSparse(ptr)) { // convert sparse constraint vector (unlikely but possible) to full mexCallMATLAB(1, &ptr, 1, outputs, "full"); mxDestroyArray(outputs[0]); } copymemory(mxGetPr(ptr),c,m); // Free the dynamically allocated memory. mxDestroyArray(ptr); } SparseMatrix* CallbackFunctions::getJacobianStructure (int n, int m) const { const mxArray* inputs[1]; mxArray* outputs[1]; bool success; // Call the MATLAB callback function. success = jacstrucfunc->evaluate(0,1,inputs,outputs); if (!success) throw MatlabException("There was an error when getting the structure \ of the Jacobian matrix from MATLAB"); // Get the output from the MATLAB callback function, which is the // sparse matrix specifying the structure of the Jacobian. mxArray* ptr = outputs[0]; if (!mxIsSparse(ptr) || mxIsComplex(ptr)) throw MatlabException("Jacobian must be a real sparse matrix"); if ((int) mxGetM(ptr) != m || (int) mxGetN(ptr) != n || !SparseMatrix::inIncOrder(ptr)) throw MatlabException("Jacobian must be an m x n sparse matrix with \ row indices in increasing order, where m is the number of constraints and \ n is the number of variables"); if (!mxIsDouble(ptr)) { // convert non-double Jacobian structure to double mexCallMATLAB(1, &ptr, 1, outputs, "double"); mxDestroyArray(outputs[0]); } SparseMatrix* J = new SparseMatrix(ptr); // The return value. // Free the dynamically allocated memory. mxDestroyArray(ptr); return J; } SparseMatrix* CallbackFunctions::getHessianStructure (int n) const { const mxArray* inputs[1]; mxArray* outputs[1]; bool success; // Call the MATLAB callback function. success = hesstrucfunc->evaluate(0,1,inputs,outputs); if (!success) throw MatlabException("There was an error when getting the structure \ of the Hessian matrix from MATLAB"); // Get the output from the MATLAB callback function, which is the // sparse matrix specifying the structure of the Hessian. mxArray* ptr = outputs[0]; if (!mxIsSparse(ptr) || mxIsComplex(ptr)) throw MatlabException("Hessian must be a real sparse matrix"); if ((int) mxGetM(ptr) != n || (int) mxGetN(ptr) != n || !SparseMatrix::isLowerTri(ptr) || !SparseMatrix::inIncOrder(ptr)) throw MatlabException("Hessian must be an n x n sparse, symmetric and \ lower triangular matrix with row indices in increasing order, where n is \ the number of variables"); if (!mxIsDouble(ptr)) { // convert non-double Hessian structure to double mexCallMATLAB(1, &ptr, 1, outputs, "double"); mxDestroyArray(outputs[0]); } SparseMatrix* H = new SparseMatrix(ptr); // The return value. // Free the dynamically allocated memory. mxDestroyArray(ptr); return H; } void CallbackFunctions::computeJacobian (int m, const Iterate& x, SparseMatrix& J) const { bool success; const mxArray* inputs[1]; mxArray* outputs[1]; // Call the MATLAB callback function. inputs[0] = x; success = jacobianfunc->evaluate(1,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the \ Jacobian callback function"); // Get the output from the MATLAB callback function, which is the // sparse matrix specifying the value the Jacobian. mxArray* ptr = outputs[0]; if (!mxIsSparse(ptr) || mxIsComplex(ptr)) throw MatlabException("Jacobian must be a real sparse matrix"); if ((int) mxGetM(ptr) != m || (int) mxGetN(ptr) != numvars(x) || !SparseMatrix::inIncOrder(ptr)) throw MatlabException("Jacobian must be an m x n sparse matrix with \ row indices in increasing order, where m is the number of constraints and \ n is the number of variables"); if (!mxIsDouble(ptr)) { // convert non-double Jacobian to double mexCallMATLAB(1, &ptr, 1, outputs, "double"); mxDestroyArray(outputs[0]); } SparseMatrix Jnew(ptr); Jnew.copyto(J); // Free the dynamically allocated memory. mxDestroyArray(ptr); } void CallbackFunctions::computeHessian (const Iterate& x, double sigma, int m, const double* lambda, SparseMatrix& H) const { bool success; const mxArray* inputs[3]; mxArray* outputs[1]; // Create the input arguments to the MATLAB routine, sigma and lambda. mxArray* psigma = mxCreateDoubleScalar(sigma); mxArray* plambda = mxCreateDoubleMatrix(m,1,mxREAL); copymemory(lambda,mxGetPr(plambda),m); // Call the MATLAB callback function. inputs[0] = x; inputs[1] = psigma; inputs[2] = plambda; success = hessianfunc->evaluate(3,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the Hessian \ callback function"); // Get the output from the MATLAB callback function, which is the // sparse matrix specifying the value the Hessian. mxArray* ptr = outputs[0]; if (!mxIsSparse(ptr) || mxIsComplex(ptr)) throw MatlabException("Hessian must be a real sparse matrix"); if ((int) mxGetM(ptr) != numvars(x) || (int) mxGetN(ptr) != numvars(x) || !SparseMatrix::isLowerTri(ptr) || !SparseMatrix::inIncOrder(ptr)) throw MatlabException("Hessian must be an n x n sparse, symmetric and \ lower triangular matrix with row indices in increasing order, where n is \ the number of variables"); if (!mxIsDouble(ptr)) { // convert non-double Hessian to double mexCallMATLAB(1, &ptr, 1, outputs, "double"); mxDestroyArray(outputs[0]); } SparseMatrix Hnew(ptr); Hnew.copyto(H); // Free the dynamically allocated memory. mxDestroyArray(ptr); mxDestroyArray(psigma); mxDestroyArray(plambda); } bool CallbackFunctions::iterCallback (int t, double f, double inf_pr, double inf_du, double mu, double d_norm, double regularization_size, double alpha_du, double alpha_pr, int ls_trials, const Ipopt::IpoptData* ip_data, Ipopt::IpoptCalculatedQuantities* ip_cq, int n) const { bool success; const mxArray* inputs[3]; mxArray* outputs[1]; // Create the input arguments to the MATLAB routine. mxArray* pt = mxCreateDoubleScalar(t); mxArray* pf = mxCreateDoubleScalar(f); // Create structure to hold extra IPOPT variables const char* varfields[9]; varfields[0] = "x"; varfields[1] = "inf_pr"; varfields[2] = "inf_du"; varfields[3] = "mu"; varfields[4] = "d_norm"; varfields[5] = "regularization_size"; varfields[6] = "alpha_du"; varfields[7] = "alpha_pr"; varfields[8] = "ls_trials"; mxArray *varStruct = mxCreateStructMatrix(1,1,9,varfields); mxSetField(varStruct,0,"inf_pr",mxCreateDoubleScalar(inf_pr)); mxSetField(varStruct,0,"inf_du",mxCreateDoubleScalar(inf_du)); mxSetField(varStruct,0,"mu",mxCreateDoubleScalar(mu)); mxSetField(varStruct,0,"d_norm",mxCreateDoubleScalar(d_norm)); mxSetField(varStruct,0,"regularization_size",mxCreateDoubleScalar(regularization_size)); mxSetField(varStruct,0,"alpha_du",mxCreateDoubleScalar(alpha_du)); mxSetField(varStruct,0,"alpha_pr",mxCreateDoubleScalar(alpha_pr)); mxSetField(varStruct,0,"ls_trials",mxCreateDoubleScalar(ls_trials)); //The following code translates IPOPT's NLP to the Original NLP, so we can extract x //Original code by Steven Dirske, Stefan Vigerske [GAMS] Ipopt::TNLPAdapter* tnlp_adapter = NULL; if(ip_cq != NULL) { Ipopt::OrigIpoptNLP* orignlp = dynamic_cast(GetRawPtr(ip_cq->GetIpoptNLP())); if(orignlp != NULL) tnlp_adapter = dynamic_cast(GetRawPtr(orignlp->nlp())); } //If we successfully converted the NLP, extract x [ResortX auto sorts and fills in fixed vars] if(tnlp_adapter != NULL && ip_data != NULL && IsValid(ip_data->curr())) { mxSetField(varStruct,0,"x",mxCreateDoubleMatrix(n,1,mxREAL)); //ip_data->curr()->x()->Dim()+1 tnlp_adapter->ResortX(*ip_data->curr()->x(),mxGetPr(mxGetField(varStruct,0,"x"))); } // Call the MATLAB callback function. inputs[0] = pt; inputs[1] = pf; inputs[2] = varStruct; success = iterfunc->evaluate(3,1,inputs,outputs); if (!success) throw MatlabException("There was an error when executing the iterative \ callback function"); // Get the output from the MATLAB callback function, which is a // boolean value telling whether or not IPOPT should continue. mxArray* ptr = outputs[0]; if (!mxIsLogicalScalar(ptr)) throw MatlabException("The return value for the iterative callback must \ either be TRUE or FALSE"); bool b = mxIsLogicalScalarTrue(ptr); // Free the dynamically allocated memory. mxDestroyArray(ptr); mxDestroyArray(pt); mxDestroyArray(pf); mxDestroyArray(varStruct); return b; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/iterate.cpp0000644000076600007660000000545312127005267022066 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 15, 2008 #include "iterate.hpp" #include "matlabexception.hpp" // Function definitions for class Iterate. // ----------------------------------------------------------------- Iterate::Iterate (mxArray* ptr) : nv(0), ptr(ptr) { const mxArray* p = 0; // Pointer to a MATLAB array. // Compute the number of optimization variables. if (mxIsCell(ptr)) { // The MATLAB array is a cell array. Repeat for each cell. int n = (int) mxGetNumberOfElements(ptr); for (int i = 0; i < n; i++) { p = mxGetCell(ptr,i); // Get the ith cell. if (!mxIsDouble(p) || mxIsComplex(p) || mxIsSparse(p)) throw MatlabException("The initial iterate must be either a full real array \ in DOUBLE precision, or a cell array in which each cell is a full real array in \ DOUBLE precision"); nv += (int) mxGetNumberOfElements(p); } } else { // The MATLAB array should be a numeric array. if (!mxIsDouble(ptr) || mxIsComplex(ptr) || mxIsSparse(ptr)) throw MatlabException("The initial iterate must be either a full real array \ in DOUBLE precision, or a cell array in which each cell is a full real array in \ DOUBLE precision"); nv = (int) mxGetNumberOfElements(ptr); } } void Iterate::inject (const double* x) { if (mxIsCell(ptr)) { // The MATLAB array is a cell array. Repeat for each cell. mxArray* p; int m; int n = (int) mxGetNumberOfElements(ptr); for (int i = 0; i < n; i++) { p = mxGetCell(ptr,i); // Get the ith cell. m = (int) mxGetNumberOfElements(p); copymemory(x,mxGetPr(p),m); x += m; } } else // The MATLAB array is a numeric array. copymemory(x,mxGetPr(ptr),nv); } void Iterate::copyto (double* x) const { if (mxIsCell(ptr)) { // The MATLAB array is a cell array. Repeat for each cell. const mxArray* p; int m; int n = (int) mxGetNumberOfElements(ptr); for (int i = 0; i < n; i++) { p = mxGetCell(ptr,i); // Get the ith cell. m = (int) mxGetNumberOfElements(p); copymemory(mxGetPr(p),x,m); x += m; } } else // The MATLAB array is a numeric array. copymemory(mxGetPr(ptr),x,nv); } // Function definitions for static members of class Iterate. // ----------------------------------------------------------------- int Iterate::getMatlabData (const mxArray* ptr, double*& data) { Iterate x(mxDuplicateArray(ptr)); // Create the iterate object. int n = numvars(x); // The return value. data = new double[n]; x.copyto(data); mxDestroyArray(x.ptr); return n; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/options.hpp0000644000076600007660000000554412142261342022125 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #ifndef INCLUDE_OPTIONS #define INCLUDE_OPTIONS #include "mex.h" #include "iterate.hpp" #include "ipoptoptions.hpp" // Class Options. // ----------------------------------------------------------------- // This class processes the options input from MATLAB. class Options { public: // The constructor expects as input a point to a MATLAB array, in // particular a structure array with the appropriate fields. Note // that the Options object does *not* possess an independent copy of // some of the MATLAB data (such as the auxiliary data). Options (const Iterate& x, Ipopt::IpoptApplication& app, const mxArray* ptr); // The destructor. ~Options(); // Get the number of variables and the number of constraints. friend int numvars (const Options& options) { return options.n; }; friend int numconstraints (const Options& options) { return options.m; }; // Access the lower and upper bounds on the variables and constraints. const double* lowerbounds () const { return lb; }; const double* upperbounds () const { return ub; }; const double* constraintlb() const { return cl; }; const double* constraintub() const { return cu; }; // Access the IPOPT options object. const IpoptOptions ipoptOptions() const { return ipopt; }; // Access the Lagrange multpliers. const double* multlb () const { return zl; }; const double* multub () const { return zu; }; const double* multconstr() const { return lambda; }; protected: int n; // The number of optimization variables. int m; // The number of constraints. double* lb; // Lower bounds on the variables. double* ub; // Upper bounds on the variables. double* cl; // Lower bounds on constraints. double* cu; // Upper bounds on constraints. double* zl; // Lagrange multipliers for lower bounds. double* zu; // Lagrange multipliers for upper bounds. double* lambda; // Lagrange multipliers for constraints. IpoptOptions ipopt; // The IPOPT options. // These are helper functions used by the class constructor. static double* loadLowerBounds (int n, const mxArray* ptr, double neginfty); static double* loadUpperBounds (int n, const mxArray* ptr, double posinfty); static int loadConstraintBounds (const mxArray* ptr, double*& cl, double*& cu, double neginfty, double posinfty); static void loadMultipliers (int n, int m, const mxArray* ptr, double*& zl, double*& zu, double*& lambda); }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabprogram.hpp0000644000076600007660000000770312142261342023261 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #ifndef INCLUDE_MATLABPROGRAM #define INCLUDE_MATLABPROGRAM #include "iterate.hpp" #include "options.hpp" #include "matlabinfo.hpp" #include "callbackfunctions.hpp" #include "IpTNLP.hpp" using Ipopt::TNLP; using Ipopt::SolverReturn; using Ipopt::AlgorithmMode; using Ipopt::IpoptData; using Ipopt::IpoptCalculatedQuantities; // Class MatlabProgram // ----------------------------------------------------------------- class MatlabProgram : public TNLP { public: // The constructor. MatlabProgram (const Iterate& x0, const CallbackFunctions& funcs, const Options& options, Iterate& x, MatlabInfo& info); // The destructor. virtual ~MatlabProgram(); // Method to return some info about the nonlinear program. virtual bool get_nlp_info (int& n, int& m, int& sizeOfJ, int& sizeOfH, IndexStyleEnum& indexStyle); // Return the bounds for the problem. virtual bool get_bounds_info (int n, double* lb, double* ub, int m, double* cl, double* cu); // Return the starting point for the algorithm. virtual bool get_starting_point (int n, bool initializeVars, double* vars, bool initializez, double* zl, double* zu, int m, bool initializeLambda, double* lambda); // Compute the value of the objective. virtual bool eval_f (int n, const double* vars, bool ignore, double& f); // Compute the gradient of the objective. virtual bool eval_grad_f (int n, const double* vars, bool ignore, double* grad); // Evaluate the constraint residuals. virtual bool eval_g (int n, const double* vars, bool ignore, int m, double* g); // This method either returns: 1.) The structure of the Jacobian // (if "Jacobian" is zero), or 2.) The values of the Jacobian (if // "Jacobian" is not zero). virtual bool eval_jac_g (int numVariables, const double* variables, bool ignoreThis, int numConstraints, int sizeOfJ, int* rows, int *cols, double* Jx); // This method either returns: 1.) the structure of the Hessian of // the Lagrangian (if "Hessian" is zero), or 2.) the values of the // Hessian of the Lagrangian (if "Hesson" is not zero). virtual bool eval_h (int n, const double* vars, bool ignore, double sigma, int m, const double* lambda, bool ignoretoo, int sizeOfH, int* rows, int* cols, double* Hx); // This method is called when the algorithm is complete. virtual void finalize_solution (SolverReturn status, int numVariables, const double* variables, const double* zl, const double* zu, int numConstraints, const double* constraints, const double* lambda, double objective, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); // Intermediate callback method. It is called once per iteration // of the IPOPT algorithm. virtual bool intermediate_callback (AlgorithmMode mode, int t, double f, double inf_pr, double inf_du, double mu, double d_norm, double regularization_size, double alpha_du, double alpha_pr, int ls_trials, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); protected: const Iterate& x0; // The initial point. const CallbackFunctions& funcs; // Callback routines. const Options& options; // Further program info. Iterate& x; // Current point. MatlabInfo& info; // Info passed back to MATLAB. // These next two members store information about the structure of // the sparse Matlab matrix for the Jacobian of the constraints // and the Hessian of the Lagragian. SparseMatrix* J; SparseMatrix* H; }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/ipoptoptions.hpp0000644000076600007660000000405011504216567023202 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 15, 2008 #ifndef INCLUDE_IPOPTOPTIONS #define INCLUDE_IPOPTOPTIONS #include "mex.h" #include "IpIpoptApplication.hpp" // Class IpoptOptions. // ----------------------------------------------------------------- // This class processes the IPOPT options as specified by a user in the // MATLAB environment. class IpoptOptions { public: // The constructor accepts as input an IPOPT application object and // a MATLAB array. The latter input must be a structure array, with // field names corresponding to the names of options in IPOPT. IpoptOptions (Ipopt::IpoptApplication& app, const mxArray* ptr); // The destructor. ~IpoptOptions() { }; // The first function returns true if and only if the user has // specified a quasi-Newton approximation to the Hessian instead of // the exact Hessian. The second function returns true if and only // if the user has activated the derivative checker. The third // function returns true if and only if a user-specified scaling of // the problem is activated. The fourth function returns the print // level for the IPOPT console. The remaining two functions return // the floating-point value for positive and negative infinity, // respectively. bool useQuasiNewton () const; bool useDerivChecker() const; bool userScaling () const; int printLevel () const; double getPosInfty () const; double getNegInfty () const; protected: Ipopt::IpoptApplication& app; // The IPOPT application object. // These three functions are used by the class constructor. void setOption (const char* label, const mxArray* ptr); void setStringOption (const char* label, const mxArray* ptr); void setIntegerOption (const char* label, const mxArray* ptr); void setNumberOption (const char* label, const mxArray* ptr); }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/options.cpp0000644000076600007660000001327412142261342022117 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #include "options.hpp" #include "matlabexception.hpp" // Function definitions for class Options. // ----------------------------------------------------------------- Options::Options (const Iterate& x, Ipopt::IpoptApplication& app, const mxArray* ptr) : n(numvars(x)), m(0), lb(0), ub(0), cl(0), cu(0), zl(0), zu(0), lambda(0), // Process the IPOPT options. ipopt(app,mxGetField(ptr,0,"ipopt")) { double neginfty = ipopt.getNegInfty(); // Negative infinity. double posinfty = ipopt.getPosInfty(); // Positive infinity. // Load the bounds on the variables. lb = loadLowerBounds(n,ptr,neginfty); ub = loadUpperBounds(n,ptr,posinfty); // Load the bounds on the constraints. m = loadConstraintBounds(ptr,cl,cu,neginfty,posinfty); // Load the Lagrange multipliers. loadMultipliers(n,m,ptr,zl,zu,lambda); } Options::~Options() { if (lb) delete[] lb; if (ub) delete[] ub; if (cl) delete[] cl; if (cu) delete[] cu; } // Function definitions for static members of class Options. // ----------------------------------------------------------------- double* Options::loadLowerBounds(int n, const mxArray* ptr, double neginfty) { double* lb; // The return value. const mxArray* p = mxGetField(ptr,0,"lb"); if (p) { // Load the upper bounds and check to make sure they are valid. int N = Iterate::getMatlabData(p,lb); if (N != n) throw MatlabException("Lower bounds array must have one element for \ each optimization variable"); // Convert MATLAB's convention of infinity to IPOPT's convention // of infinity. for (int i = 0; i < n; i++) if (mxIsInf(lb[i])) lb[i] = neginfty; } else { // If the lower bounds have not been specified, set them to // negative infinity. lb = new double[n]; for (int i = 0; i < n; i++) lb[i] = neginfty; } return lb; } double* Options::loadUpperBounds(int n, const mxArray* ptr, double posinfty) { double* ub; // The return value. // Load the upper bounds on the variables. const mxArray* p = mxGetField(ptr,0,"ub"); if (p) { // Load the upper bounds and check to make sure they are valid. int N = Iterate::getMatlabData(p,ub); if (N != n) throw MatlabException("Upper bounds array must have one element for \ each optimization variable"); // Convert MATLAB's convention of infinity to IPOPT's convention // of infinity. for (int i = 0; i < n; i++) if (mxIsInf(ub[i])) ub[i] = posinfty; } else { // If the upper bounds have not been specified, set them to // positive infinity. ub = new double[n]; for (int i = 0; i < n; i++) ub[i] = posinfty; } return ub; } int Options::loadConstraintBounds (const mxArray* ptr, double*& cl, double*& cu, double neginfty, double posinfty) { int m = 0; // The return value is the number of constraints. // LOAD CONSTRAINT BOUNDS. // If the user has specified constraints bounds, then she must // specify *both* the lower and upper bounds. const mxArray* pl = mxGetField(ptr,0,"cl"); const mxArray* pu = mxGetField(ptr,0,"cu"); if (pl || pu) { // Check to make sure the constraint bounds are valid. if (!pl || !pu) throw MatlabException("You must specify both lower and upper \ bounds on the constraints"); if (!mxIsDouble(pl) || !mxIsDouble(pu) || (mxGetNumberOfElements(pl) != mxGetNumberOfElements(pu))) throw MatlabException("The lower and upper bounds must both be \ double-precision arrays with the same number of elements"); // Get the number of constraints. m = (int) mxGetNumberOfElements(pl); // Load the lower bounds on the constraints and convert MATLAB's // convention of infinity to IPOPT's convention of infinity. cl = new double[m]; cu = new double[m]; copymemory(mxGetPr(pl),cl,m); copymemory(mxGetPr(pu),cu,m); // Convert MATLAB's convention of infinity to IPOPT's convention // of infinity. for (int i = 0; i < m; i++) { if (mxIsInf(cl[i])) cl[i] = neginfty; if (mxIsInf(cu[i])) cu[i] = posinfty; } } return m; } void Options::loadMultipliers (int n, int m, const mxArray* ptr, double*& zl, double*& zu, double*& lambda) { const mxArray* p; // Load the Lagrange multipliers associated with the lower bounds. p = mxGetField(ptr,0,"zl"); if (p) { if (!mxIsDouble(p) || (int) mxGetNumberOfElements(p) != n) throw MatlabException("The initial point for the Lagrange multipliers \ associated with the lower bounds must be a double-precision array with one \ element for each optimization variable"); zl = mxGetPr(p); } else zl = 0; // Load the Lagrange multipliers associated with the upper bounds. p = mxGetField(ptr,0,"zu"); if (p) { if (!mxIsDouble(p) || (int) mxGetNumberOfElements(p) != n) throw MatlabException("The initial point for the Lagrange multipliers \ associated with the upper bounds must be a double-precision array with one \ element for each optimization variable"); zu = mxGetPr(p); } else zu = 0; // Load the Lagrange multipliers associated with the equality and // inequality constraints. p = mxGetField(ptr,0,"lambda"); if (p) { if (m>0 && (!mxIsDouble(p) || (int) mxGetNumberOfElements(p) != m) ) throw MatlabException("The initial point for the Lagrange multipliers \ associated with the constraints must be a double-precision array with one \ element for each constraint"); lambda = mxGetPr(p); } else lambda = 0; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/Makefile.in0000644000076600007660000001764612156621430021777 0ustar coincoin# Copyright (C) 2007, 2009 Peter Carbonetto. All Rights Reserved. # This code is published under the Eclipse Public License. # # Author: Peter Carbonetto # Dept. of Computer Science # University of British Columbia # May 19, 2007 # INSTRUCTIONS: Please modify the following few variables. See the # Ipopt documentation (Ipopt/doc/documentation.pdf) for more details. # This variable corresponds to the base directory of your MATLAB # installation. This is the directory so that in its 'bin/' # subdirectory you see all the matlab executables (such as 'matlab', # 'mex', etc.) MATLAB_HOME = @MATLAB_HOME@ # Set the suffix for matlab mex files. The contents of the # $(MATLAB_HOME)/extern/examples/mex directory might be able to help # you in your choice. MEXSUFFIX = @MEXSUFFIX@ # This is the command used to call the mex program. Usually, it is # just "mex". But it also may be something like # /user/local/R2006b/bin/mex if "mex" doesn't work. @MEX_WINDOWS_FALSE@MEX = $(MATLAB_HOME)/bin/mex @MEX_WINDOWS_TRUE@MEX = "$(MATLAB_HOME)/sys/perl/win32/bin/perl" "`$(CYGPATH_W) "$(MATLAB_HOME)/bin/mex.pl"`" ############################################################################# # Do not modify anything below unless you know what you're doing. exec_prefix = @exec_prefix@ prefix = @prefix@ libdir = @libdir@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ -DMATLAB_MEXFILE # -DMWINDEXISINT LDFLAGS = $(CXXFLAGS) @RPATH_FLAGS@ @FRAMEWORK_VECLIB@ @MEX_STATIC_TRUE@@MEX_WINDOWS_FALSE@-static-libgcc -static-libstdc++ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt | sed -e 's/-framework vecLib//g'` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib `echo @IPOPTLIB_LIBS_INSTALLED@ | sed -e 's/-framework vecLib//g'` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt `echo @IPOPTLIB_LIBS_INSTALLED@ | sed -e 's/-framework vecLib//g'` @MEX_STATIC_FALSE@LIBS_STATIC = $(LIBS) @MEX_STATIC_TRUE@@MEX_WINDOWS_FALSE@LIBS_STATIC = $$(echo " $(LIBS) " | sed -e "s| -lgfortran | `@F77@ -print-file-name=libgfortran.a` |g" -e "s| -lquadmath | `@F77@ -print-file-name=libquadmath.a` |g") @MEX_STATIC_TRUE@@MEX_WINDOWS_TRUE@LIBS_STATIC = $$(echo " $(LIBS) " | sed -e 's| -Wl,-Bdynamic,-lmwma57,-Bstatic | -lmwma57 |g') # mex doesn't understand -Wl,-Bdynamic,-lmwma57,-Bstatic on Windows # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ @MEX_WINDOWS_TRUE@MEXFLAGCXX = @MEX_WINDOWS_FALSE@MEXFLAGCXX = -cxx MEXFLAGS = -v $(MEXFLAGCXX) -O CC="$(CXX)" CXX="$(CXX)" LD="$(CXX)" \ COPTIMFLAGS="$(CXXFLAGS)" CXXOPTIMFLAGS="$(CXXFLAGS)" \ LDOPTIMFLAGS="$(LDFLAGS)" TARGET = ipopt.$(MEXSUFFIX) OBJS = matlabexception.@OBJEXT@ \ matlabfunctionhandle.@OBJEXT@ \ matlabjournal.@OBJEXT@ \ iterate.@OBJEXT@ \ ipoptoptions.@OBJEXT@ \ options.@OBJEXT@ \ sparsematrix.@OBJEXT@ \ callbackfunctions.@OBJEXT@ \ matlabinfo.@OBJEXT@ \ matlabprogram.@OBJEXT@ \ ipopt.@OBJEXT@ SRCDIR = @srcdir@ VPATH = $(SRCDIR) all: $(TARGET) install: $(TARGET) if test -d $(libdir); then : ; else mkdir $(libdir); fi cp $(SRCDIR)/../ipopt.m $(SRCDIR)/../ipopt_auxdata.m $(TARGET) $(libdir) uninstall: rm -f $(libdir)/ipopt.m $(libdir)/ipopt_auxdata.m $(libdir)/ipopt.$(MEXSUFFIX) $(TARGET): $(OBJS) make mexopts $(MEX) $(MEXFLAGS) $(LIBS_STATIC) -output $@ $^ %.@OBJEXT@: %.cpp @COIN_CXX_IS_CL_FALSE@ ../../../../libtool --tag=CXX --mode=compile \@COIN_CXX_IS_CL_FALSE@ $(CXX) $(CXXFLAGS) $(INCL) -I"$(MATLAB_HOME)/extern/include" \ -o $@ -c $^ clean: rm -f $(OBJS) *.lo $(TARGET) distclean: clean @MEX_STATIC_FALSE@GM_ADD_LIBS_STATIC = @MEX_STATIC_TRUE@GM_ADD_LIBS_STATIC = GM_ADD_LIBS="-static $$GM_ADD_LIBS"; # make mexopts applies a set of fixes to mexopts.sh on Mac, # or mexopts.bat on Windows (if that file was generated # by Gnumex to use gcc via Cygwin or MinGW) mexopts: case `uname` in \ Darwin*) \ if ! test -e mexopts.sh; then \ sed -e 's/-arch $$ARCHS//g' \ $(MATLAB_HOME)/bin/mexopts.sh > mexopts.sh; \ SDKROOT=`grep -m1 'SDKROOT=' mexopts.sh | sed -e 's/SDKROOT=//g'`; \ if ! test -d $$SDKROOT; then \ sed -e 's/-arch $$ARCHS//g' \ -e 's/-isysroot $$SDKROOT//g' \ -e 's/-Wl,-syslibroot,$$SDKROOT//g' \ $(MATLAB_HOME)/bin/mexopts.sh > mexopts.sh; \ fi; \ fi \ ;; \ MINGW*) \ if ! test -e mexopts.bat; then \ echo Warning: no mexopts.bat found. You will probably need to run Gnumex to generate this file. Call \"make gnumex\" then try again.; \ else \ libdirwin=$$(cd $(libdir); cmd /c 'for %i in (.) do @echo %~fi' | sed 's|\\|/|g'); \ mingwlibdirwin=$$(cd /mingw/lib; cmd /c 'for %i in (.) do @echo %~fi' | sed 's|\\|/|g'); \ GM_ADD_LIBS=$$(echo "-llibmx -llibmex -llibmat $(LIBS) " | \ sed -e "s| -L$(libdir) | -L$$libdirwin |g" \ -e "s| -L/mingw/lib | -L$$mingwlibdirwin |g"); \ $(GM_ADD_LIBS_STATIC) \ cp mexopts.bat mexopts.bat.orig; \ sed -e 's|COMPILER=gcc|COMPILER=g++|' -e 's|GM_MEXLANG=c$$|GM_MEXLANG=cxx|' \ -e "s|GM_ADD_LIBS=-llibmx -llibmex -llibmat$$|GM_ADD_LIBS=$$GM_ADD_LIBS|" \ mexopts.bat.orig > mexopts.bat; \ fi \ ;; \ CYGWIN*) \ if ! test -e mexopts.bat; then \ echo Warning: no mexopts.bat found. You will probably need to run Gnumex to generate this file. Call \"make gnumex\" then try again.; \ else \ libdirwin=`cygpath -m $(libdir)`; \ cyglibdirwin=`cygpath -m /usr/lib`; \ GM_ADD_LIBS=$$(echo "-llibmx -llibmex -llibmat $(LIBS) " | \ sed -e "s| -L$(libdir) | -L$$libdirwin |g" \ -e "s| -L/usr/lib/| -L$$cyglibdirwin/|g"); \ $(GM_ADD_LIBS_STATIC) \ cp mexopts.bat mexopts.bat.orig; \ if test -n "`which g++-4 2> /dev/null`"; then \ sed -e 's|COMPILER=gcc|COMPILER=g++-4|' mexopts.bat.orig > mexopts.bat.tmp; \ elif test -n "`which g++-3 2> /dev/null`"; then \ sed -e 's|COMPILER=gcc|COMPILER=g++-3|' mexopts.bat.orig > mexopts.bat.tmp; \ else \ sed -e 's|COMPILER=gcc|COMPILER=g++|' mexopts.bat.orig > mexopts.bat.tmp; \ fi; \ sed -e 's|GM_MEXLANG=c$$|GM_MEXLANG=cxx|' \ -e "s|GM_ADD_LIBS=-llibmx -llibmex -llibmat$$|GM_ADD_LIBS=$$GM_ADD_LIBS|" \ mexopts.bat.tmp > mexopts.bat; \ fi \ ;; \ esac # make gnumex opens a Matlab session and calls the Gnumex tool to # generate mexopts.bat set up for using gcc via Cygwin or MinGW gnumex: if ! test -d "$(SRCDIR)/../gnumex"; then \ echo "Warning: no gnumex folder found. Run \"cd `dirname $(SRCDIR)`; ./get.Gnumex\" first."; \ else \ GM_COMMANDS="oldpwd=pwd; cd $(SRCDIR)/../gnumex; gnumex('startup'); \ gnumexopts=gnumex('defaults'); gnumexopts.precompath=[pwd '\libdef']; \ gnumexopts.optfile=[oldpwd '\mexopts.bat'];"; \ case `uname` in \ MINGW*) \ echo Use gnumex in Matlab to create mexopts.bat file, then close this new instance of Matlab.; \ "$(MATLAB_HOME)/bin/matlab" -wait -r "$$GM_COMMANDS \ gnumexopts.mingwpath=fileparts(gnumexopts.gfortpath); gnumex('struct2fig',gnumexopts)" \ ;; \ CYGWIN*) \ echo Use gnumex in Matlab to create mexopts.bat file, then close this new instance of Matlab.; \ "$(MATLAB_HOME)/bin/matlab" -wait -r "$$GM_COMMANDS gnumexopts.environ=3; gnumex('struct2fig',gnumexopts)" \ ;; \ esac \ fi Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabexception.hpp0000644000076600007660000000271011504216567023613 0ustar coincoin// Copyright (C) 2007, 2009 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #ifndef INCLUDE_MATLABEXCEPTION #define INCLUDE_MATLABEXCEPTION #include #define ME_BUFLEN 512 // Class MatlabException // ----------------------------------------------------------------- // It is assumed that the argument passed to the constructor persists // as long as the MatlabException object is in scope. Usually, this // means that it should persist for the duration of the entire // program. This is always the case if the input "message" is a literal. // // AW: Since I would like to include more detailed information (e.g., // which option is the one that is unknown), I changed this so that // this object keeps a copy of the exception class MatlabException : public std::exception { public: MatlabException (const char* message) throw(); ~MatlabException() throw() { }; // The copy constructor makes a copy. MatlabException (const MatlabException& source) throw(); // The copy assignment operator makes a copy as well. MatlabException& operator= (const MatlabException& source); // Return the message string. virtual const char* what () const throw() { return message; }; private: char message[ME_BUFLEN]; // The error message. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/sparsematrix.hpp0000644000076600007660000000764411504216567023171 0ustar coincoin// Copyright (C) 2007 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #ifndef INCLUDE_SPARSEMATRIX #define INCLUDE_SPARSEMATRIX #include "mex.h" // Type definitions. // ----------------------------------------------------------------- // This line is needed for versions of MATLAB prior to 7.3. #ifdef MWINDEXISINT typedef int mwIndex; #endif // class SparseMatrix // --------------------------------------------------------------- // An object of class SparseMatrixStructure stores information about // the structure of a sparse matrix. It does not store the actual // values of the matrix entries. // // WARNING: Starting with version 7.3, MATLAB can handle 64-bit // addressing, and the authors of MATLAB have modified the // implementation of sparse matrices to reflect this change. However, // I convert all the row and column indices in the sparse matrix to // signed integers, and this could potentially cause problems when // dealing with large, sparse matrices on 64-bit platforms with MATLAB // version 7.3 or greater. class SparseMatrix { public: // This constructor takes as input a Matlab array. It it points to a // valid sparse matrix in double precision, it will store all the // information pertaining to the sparse matrix structure. It is up // to the user to ensure that the MATLAB array is a sparse, // symmetric matrix with row indices in increasing order as the // nonzero elements appear in the matrix. Note that a SparseMatrix // object retains a completely independent copy of the sparse matrix // information by duplicating the data from the specified MATLAB // array. explicit SparseMatrix (const mxArray* ptr); // The destructor. ~SparseMatrix(); // Get the height and width of the matrix. friend int height (const SparseMatrix& A) { return A.h; }; friend int width (const SparseMatrix& A) { return A.w; }; // The first function returns the total number of non-zero entries. // The second function returns the number of non-zero entries in the // cth column. int numelems () const { return nnz; }; int numelems (int c) const; // Upon completion of this function, cols[i] contains the column // index for the ith element, and rows[i] contains the row index for // the ith element. It is assumed that "cols" and "rows" have // sufficient space to store this information. This routine is most // useful for converting the Matlab sparse matrix format into the // IPOPT format. void getColsAndRows (int* cols, int* rows) const; // Copy the matrix entries in a sensible manner while preserving the // structure of the destination. In order to preserve the structure // of the destination, it is required that the source set of // non-zero entries be a subset of the destination non-zero // entries. On success, the value true is returned. bool copyto (SparseMatrix& dest) const; // Copy the values of the nonzero elements to the destination array // which of course must be of the proper length. void copyto (double* dest) const; // Returns the number of nonzeros in the sparse matrix. static int getSizeOfSparseMatrix (const mxArray* ptr); // Returns true if and only if the sparse matrix is symmetric and // lower triangular. static bool isLowerTri (const mxArray* ptr); // For the proper functioning of a sparse matrix object, it is // necessary that the row indices be in increasing order. static bool inIncOrder (const mxArray* ptr); protected: int h; // The height of the matrix. int w; // The width of the matrix. int nnz; // The number of non-zero elements. mwIndex* jc; // See mxSetJc in the MATLAB documentation. mwIndex* ir; // See mxSetIr in the MATLAB documentation. double* x; // The values of the non-zero entries. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/ipoptoptions.cpp0000644000076600007660000001147512052500467023200 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 15, 2008 #include "ipoptoptions.hpp" #include "matlabexception.hpp" using Ipopt::IpoptApplication; using Ipopt::SmartPtr; using Ipopt::IsValid; using Ipopt::RegisteredOption; using Ipopt::SmartPtr; using Ipopt::Snprintf; // need // Function definitions for class IpoptOptions. // ----------------------------------------------------------------- IpoptOptions::IpoptOptions (IpoptApplication& app, const mxArray* ptr) : app(app) { if (ptr != NULL) { // avoid segfault if no ipopt field in options // Check to make sure the MATLAB array is a structure array. if (!mxIsStruct(ptr)) throw MatlabException("The OPTIONS input must be a structure array; \ type HELP STRUCT in the MATLAB console for more information"); // Each field in the structure array should correspond to an option // in IPOPT. Repeat for each field. int n = mxGetNumberOfFields(ptr); for (int i = 0; i < n; i++) { const char* label = mxGetFieldNameByNumber(ptr,i); mxArray* p = mxGetFieldByNumber(ptr,0,i); setOption(label,p); } } } bool IpoptOptions::useQuasiNewton() const { bool b; // The return value. std::string value; app.Options()->GetStringValue("hessian_approximation",value,""); b = !value.compare("limited-memory"); return b; } bool IpoptOptions::useDerivChecker() const { bool b; // The return value. std::string value; app.Options()->GetStringValue("derivative_test",value,""); b = value.compare("none"); return b; } bool IpoptOptions::userScaling() const { bool b; // The return value. std::string value; app.Options()->GetStringValue("nlp_scaling_method",value,""); b = !value.compare("user-scaling"); return b; } int IpoptOptions::printLevel() const { int value; // The return value. app.Options()->GetIntegerValue("print_level",value,""); return value; } double IpoptOptions::getPosInfty() const { double value; // The return value. app.Options()->GetNumericValue("nlp_upper_bound_inf",value,""); return value; } double IpoptOptions::getNegInfty() const { double value; // The return value. app.Options()->GetNumericValue("nlp_lower_bound_inf",value,""); return value; } void IpoptOptions::setOption (const char* label, const mxArray* ptr) { // Check to make sure we have a valid option. SmartPtr option = app.RegOptions()->GetOption(label); if (!IsValid(option)) { char buf[256]; Snprintf(buf, 255, "You have specified a nonexistent IPOPT option (\"%s\")", label); throw MatlabException(buf); } Ipopt::RegisteredOptionType type = option->Type(); if (type == Ipopt::OT_String) setStringOption(label,ptr); else if (type == Ipopt::OT_Integer) setIntegerOption(label,ptr); else setNumberOption(label,ptr); } void IpoptOptions::setStringOption (const char* label, const mxArray* ptr) { // Check whether the option value is a string. if (!mxIsChar(ptr)) { char buf[256]; Snprintf(buf, 255, "IPOPT option value for option \"%s\" should be a string", label); throw MatlabException(buf); } // Get the option value. char* value = mxArrayToString(ptr); // Set the option. bool success = app.Options()->SetStringValue(label,value); if (!success) { char buf[256]; Snprintf(buf, 255, "Invalid value for IPOPT option \"%s\"", label); throw MatlabException(buf); } // Free the dynamically allocated memory. mxFree(value); } void IpoptOptions::setIntegerOption (const char* label, const mxArray* ptr) { // Check whether the option value is a number. if (!mxIsDouble(ptr)) { char buf[256]; Snprintf(buf, 255, "IPOPT option value for option \"%s\" should be an integer", label); throw MatlabException(buf); } // Set either the integer option. double value = mxGetScalar(ptr); bool success = app.Options()->SetIntegerValue(label,(int) value); if (!success) { char buf[256]; Snprintf(buf, 255, "Invalid value for integer IPOPT option \"%s\"", label); throw MatlabException(buf); } } void IpoptOptions::setNumberOption (const char* label, const mxArray* ptr) { // Check whether the option value is a number. if (!mxIsDouble(ptr)) { char buf[256]; Snprintf(buf, 255, "IPOPT option value for option \"%s\" should be a number", label); throw MatlabException(buf); } // Set either the numeric option. double value = mxGetScalar(ptr); bool success = app.Options()->SetNumericValue(label,value); if (!success) { char buf[256]; Snprintf(buf, 255, "Invalid value for numeric IPOPT option \"%s\"", label); throw MatlabException(buf); } } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabexception.cpp0000644000076600007660000000167511504216567023617 0ustar coincoin// Copyright (C) 2007 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #include "matlabexception.hpp" #include "IpUtils.hpp" #include // Function definitions for class MatlabException // --------------------------------------------------------------- MatlabException::MatlabException (const char* message) throw() : exception() { Ipopt::Snprintf(this->message, ME_BUFLEN, "\n*** Error using Ipopt Matlab interface: ***\n%s.\n", message); } MatlabException::MatlabException (const MatlabException& source) throw() : exception() { Ipopt::Snprintf(message, ME_BUFLEN, "%s.", source.message); } MatlabException& MatlabException::operator= (const MatlabException& source) { Ipopt::Snprintf(message, ME_BUFLEN, "%s", source.message); return *this; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabjournal.cpp0000644000076600007660000000366611504216567023275 0ustar coincoin// Copyright (C) 2007 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #include "matlabjournal.hpp" #include "matlabexception.hpp" #include "mex.h" namespace Ipopt { // Function definitions for class MatlabJournal. // --------------------------------------------------------------- MatlabJournal::MatlabJournal (EJournalLevel default_level) : Journal("matlab", default_level) { } void MatlabJournal::PrintImpl (EJournalCategory category, EJournalLevel level, const char* str) { mexPrintf(str); } void MatlabJournal::PrintfImpl (EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap) { const int maxStrLen = 1024; char s[maxStrLen]; #ifdef HAVE_VSNPRINTF # ifdef HAVE_VA_COPY va_list apcopy; va_copy(apcopy, ap); if (vsnprintf(s,maxStrLen,pformat,apcopy) >= maxStrLen) throw MatlabException("String buffer it too short for all the \ characters to be printed to MATLAB console"); va_end(apcopy); # else if (vsnprintf(s,maxStrLen,pformat,ap) >= maxStrLen) throw MatlabException("String buffer it too short for all the \ characters to be printed to MATLAB console"); # endif #else # ifdef HAVE__VSNPRINTF # ifdef HAVE_VA_COPY va_list apcopy; va_copy(apcopy, ap); if (_vsnprintf(s,maxStrLen,pformat,apcopy) >= maxStrLen) throw MatlabException("String buffer it too short for all the \ characters to be printed to MATLAB console"); va_end(apcopy); # else if (_vsnprintf(s,maxStrLen,pformat,ap) >= maxStrLen) throw MatlabException("String buffer it too short for all the \ characters to be printed to MATLAB console"); # endif # else vsprintf(s,pformat,ap); # endif #endif mexPrintf(s); } void MatlabJournal::FlushBufferImpl() { } } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabfunctionhandle.cpp0000644000076600007660000000323511504216567024614 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // August 25, 2008 #include "matlabfunctionhandle.hpp" #include "matlabexception.hpp" // Function definitions. // ----------------------------------------------------------------- bool isFunctionHandle (const mxArray* ptr) { return mxIsClass(ptr,"function_handle"); } // Function definitions for class MatlabFunctionHandle. // ----------------------------------------------------------------- MatlabFunctionHandle::MatlabFunctionHandle (const mxArray* ptr) { if (mxIsEmpty(ptr)) f = 0; else f = mxDuplicateArray(ptr); } MatlabFunctionHandle::~MatlabFunctionHandle() { if (f) mxDestroyArray(f); } bool MatlabFunctionHandle::evaluate (int nin, int nout, const mxArray** inputs, mxArray** outputs) { // Construct the inputs to "feval". mxArray** finputs = new mxArray*[nin+1]; finputs[0] = f; for (int i = 0; i < nin; i++) finputs[i+1] = mxDuplicateArray(inputs[i]); // Call "feval". int exitstatus; try { exitstatus = mexCallMATLAB(nout,outputs,nin+1,finputs,"feval"); } catch (std::exception ME) { const char* what = ME.what(); if (what) { mexPrintf("Matlab exception:\n%s", what); } else { mexPrintf("Matlab exception without message"); } exitstatus = -2; } catch (...) { exitstatus = -1; } // Free the dynamically allocated memory. for (int i = 1; i <= nin; i++) mxDestroyArray(finputs[i]); delete[] finputs; return exitstatus == 0; } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabjournal.hpp0000644000076600007660000000205411504216567023270 0ustar coincoin// Copyright (C) 2007 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // May 19, 2007 #ifndef INCLUDE_MATLABJOURNAL #define INCLUDE_MATLABJOURNAL #include "IpJournalist.hpp" namespace Ipopt { // Class MatlabJournal. // --------------------------------------------------------------- // This class encapsulates journal output to the MATLAB console. class MatlabJournal : public Journal { public: // The constructor. MatlabJournal (EJournalLevel default_level); // The destructor. virtual ~MatlabJournal() { }; protected: // These functions override the functions in the Journal class. virtual void PrintImpl (EJournalCategory category, EJournalLevel level, const char* str); virtual void PrintfImpl (EJournalCategory category, EJournalLevel level, const char* pformat, va_list ap); virtual void FlushBufferImpl(); }; } #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabinfo.cpp0000644000076600007660000001031512054444720022536 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #include "matlabinfo.hpp" #include "iterate.hpp" // Function definitions for class MatlabInfo. // ------------------------------------------------------------------ MatlabInfo::MatlabInfo (mxArray*& ptr) : ptr(0) { // Create the structure array. const char* fieldnames[7]; const char* exitstatusfield = "status"; const char* multlbfield = "zl"; const char* multubfield = "zu"; const char* multconstrfield = "lambda"; const char* iterfield = "iter"; const char* evalfield = "eval"; const char* cpu = "cpu"; fieldnames[0] = exitstatusfield; fieldnames[1] = multlbfield; fieldnames[2] = multubfield; fieldnames[3] = multconstrfield; fieldnames[4] = iterfield; fieldnames[5] = evalfield; fieldnames[6] = cpu; this->ptr = ptr = mxCreateStructMatrix(1,1,7,fieldnames); // Initialize some fields. mxSetField(ptr,0,"status",mxCreateDoubleScalar(0)); mxSetField(ptr,0,"iter",mxCreateDoubleScalar(0)); mxSetField(ptr,0,"cpu",mxCreateDoubleScalar(0)); //Build Eval Structure const char* evalfields[5]; const char* obj = "objective"; const char* con = "constraints"; const char* grd = "gradient"; const char* jac = "jacobian"; const char* hes = "hessian"; evalfields[0] = obj; evalfields[1] = con; evalfields[2] = grd; evalfields[3] = jac; evalfields[4] = hes; mxArray *evalStruct = mxCreateStructMatrix(1,1,5,evalfields); mxSetField(evalStruct,0,"objective",mxCreateDoubleScalar(0)); mxSetField(evalStruct,0,"constraints",mxCreateDoubleScalar(0)); mxSetField(evalStruct,0,"gradient",mxCreateDoubleScalar(0)); mxSetField(evalStruct,0,"jacobian",mxCreateDoubleScalar(0)); mxSetField(evalStruct,0,"hessian",mxCreateDoubleScalar(0)); mxSetField(ptr,0,"eval",evalStruct); } ApplicationReturnStatus MatlabInfo::getExitStatus() const { const mxArray* p = mxGetField(ptr,0,"status"); return (ApplicationReturnStatus) (int) *mxGetPr(p); } void MatlabInfo::setExitStatus (ApplicationReturnStatus status) { mxArray* p = mxGetField(ptr,0,"status"); *mxGetPr(p) = (double) status; } void MatlabInfo::setIterationCount (int iter) { mxArray* p = mxGetField(ptr,0,"iter"); *mxGetPr(p) = (double) iter; } void MatlabInfo::setFuncEvals(int obj, int con, int grad, int jac, int hess){ mxArray* p = mxGetField(ptr,0,"eval"); *mxGetPr(mxGetField(p,0,"objective")) = obj; *mxGetPr(mxGetField(p,0,"constraints")) = con; *mxGetPr(mxGetField(p,0,"gradient")) = grad; *mxGetPr(mxGetField(p,0,"jacobian")) = jac; *mxGetPr(mxGetField(p,0,"hessian")) = hess; } void MatlabInfo::setCpuTime (double cpu) { mxArray* p = mxGetField(ptr,0,"cpu"); *mxGetPr(p) = cpu; } const double* MatlabInfo::getmultlb() const { mxArray* p = mxGetField(ptr,0,"zl"); return mxGetPr(p); } const double* MatlabInfo::getmultub() const { mxArray* p = mxGetField(ptr,0,"zu"); return mxGetPr(p); } const double* MatlabInfo::getmultconstr() const { mxArray* p = mxGetField(ptr,0,"lambda"); return mxGetPr(p); } void MatlabInfo::setmultlb (int n, const double* zl) { // First destroy any previous multiplier values. mxArray* p = mxGetField(ptr,0,"zl"); if (p) mxDestroyArray(p); // Set the field to the new multiplier values. p = mxCreateDoubleMatrix(n,1,mxREAL); copymemory(zl,mxGetPr(p),n); mxSetField(ptr,0,"zl",p); } void MatlabInfo::setmultub (int n, const double* zu) { // First destroy any previous multiplier values. mxArray* p = mxGetField(ptr,0,"zu"); if (p) mxDestroyArray(p); // Set the field to the new multiplier values. p = mxCreateDoubleMatrix(n,1,mxREAL); copymemory(zu,mxGetPr(p),n); mxSetField(ptr,0,"zu",p); } void MatlabInfo::setmultconstr (int m, const double* lambda) { // First destroy any previous multiplier values. mxArray* p = mxGetField(ptr,0,"lambda"); if (p) mxDestroyArray(p); // Set the field to the new multiplier values. p = mxCreateDoubleMatrix(m,1,mxREAL); copymemory(lambda,mxGetPr(p),m); mxSetField(ptr,0,"lambda",p); } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/matlabinfo.hpp0000644000076600007660000000354512054157756022564 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 25, 2008 #ifndef INCLUDE_MATLABINFO #define INCLUDE_MATLABINFO #include "mex.h" #include "IpIpoptApplication.hpp" using Ipopt::ApplicationReturnStatus; // Class MatlabInfo. // ----------------------------------------------------------------- // An object of this class stores all the information we will pass // back to MATLAB upon termination of IPOPT. class MatlabInfo { public: // Create a new info object and store the information in a MATLAB // array. The input pointer will point to the the newly created // MATLAB array. Since the user has an opportunity to modify the // MATLAB array pointed to by "ptr", we do not destroy the array // when the MatlabInfo object is destroyed. It is up to the user to // do that. explicit MatlabInfo (mxArray*& ptr); // The destructor. ~MatlabInfo() { }; // Access and modify the exit status and solution statistics. ApplicationReturnStatus getExitStatus () const; void setExitStatus (ApplicationReturnStatus status); void setIterationCount (int iter); void setFuncEvals(int obj, int con, int grad, int jac, int hess); void setCpuTime (double cpu); // Access and modify the Lagrange multipliers. const double* getmultlb () const; const double* getmultub () const; const double* getmultconstr () const; void setmultlb (int n, const double* zl); void setmultub (int n, const double* zu); void setmultconstr (int m, const double* lambda); protected: mxArray* ptr; // All the information is stored in a MATLAB array. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/callbackfunctions.hpp0000644000076600007660000000770312142261342024116 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 18, 2008 #ifndef INCLUDE_CALLBACKFUNCTIONS #define INCLUDE_CALLBACKFUNCTIONS #include "mex.h" #include "iterate.hpp" #include "sparsematrix.hpp" #include "matlabfunctionhandle.hpp" #include "IpIpoptCalculatedQuantities.hpp" #include "IpIpoptData.hpp" #include "IpTNLPAdapter.hpp" #include "IpOrigIpoptNLP.hpp" // Class CallbackFunctions. // ----------------------------------------------------------------- // An object of this class does two things. First of all, it stores // handles to MATLAB functions (type HELP FUNCTION_HANDLE in the // MATLAB console) for all the necessary and optional callback // functions for IPOPT. Secondly, this class actually provides the // routines for calling these functions with the necessary inputs and // outputs. class CallbackFunctions { public: // The constructor must be provided with a single MATLAB array, and // this MATLAB array must be a structure array in which each field // is a function handle. explicit CallbackFunctions (const mxArray* ptr); // The destructor. ~CallbackFunctions(); // These functions return true if the respective callback functions // are available. bool constraintFuncIsAvailable() const { return *constraintfunc; }; bool jacobianFuncIsAvailable () const { return *jacobianfunc; }; bool hessianFuncIsAvailable () const { return *hessianfunc; }; bool iterFuncIsAvailable () const { return *iterfunc; }; // These functions execute the various callback functions with the // appropriate inputs and outputs. Here, m is the number of constraints. // The first function returns the value of the objective at x. double computeObjective (const Iterate& x) const; // This function computes the value of the gradient at x, and // returns the gradient entries in the array g, which must be of // length equal to the number of optimization variables. void computeGradient (const Iterate& x, double* g) const; // This function computes the response of the vector-valued // constraint function at x, and stores the result in the array c // which must be of length m. void computeConstraints (const Iterate& x, int m, double* c) const; // This function gets the structure of the sparse m x n Jacobian matrix. SparseMatrix* getJacobianStructure (int n, int m) const; // This function gets the structure of the sparse n x n Hessian matrix. SparseMatrix* getHessianStructure (int n) const; // This function computes the Jacobian of the constraints at x. void computeJacobian (int m, const Iterate& x, SparseMatrix& J) const; // This function computes the Hessian of the Lagrangian at x. void computeHessian (const Iterate& x, double sigma, int m, const double* lambda, SparseMatrix& H) const; // Call the intermediate callback function. A return value of false // tells IPOPT to terminate. bool iterCallback (int t, double f, double inf_pr, double inf_du, double mu, double d_norm, double regularization_size, double alpha_du, double alpha_pr, int ls_trials, const Ipopt::IpoptData* ip_data, Ipopt::IpoptCalculatedQuantities* ip_cq, int n) const; protected: MatlabFunctionHandle* objfunc; // Objective callback function. MatlabFunctionHandle* gradfunc; // Gradient callback function. MatlabFunctionHandle* constraintfunc; // Constraint callback function. MatlabFunctionHandle* jacobianfunc; // Jacobian callback function. MatlabFunctionHandle* jacstrucfunc; // Jacobian structure function. MatlabFunctionHandle* hessianfunc; // Hessian callback function. MatlabFunctionHandle* hesstrucfunc; // Hessian structure function. MatlabFunctionHandle* iterfunc; // Iterative callback function. }; #endif Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/src/ipopt.cpp0000644000076600007660000001073612142261342021557 0ustar coincoin// Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. // This code is published under the Eclipse Public License. // // Author: Peter Carbonetto // Dept. of Computer Science // University of British Columbia // September 18, 2008 #include "mex.h" #include "iterate.hpp" #include "options.hpp" #include "matlabexception.hpp" #include "callbackfunctions.hpp" #include "matlabinfo.hpp" #include "matlabjournal.hpp" #include "matlabprogram.hpp" #include "IpRegOptions.hpp" #include "IpJournalist.hpp" #include "IpIpoptApplication.hpp" #include "IpSolveStatistics.hpp" using Ipopt::IsValid; using Ipopt::RegisteredOption; using Ipopt::EJournalLevel; using Ipopt::Journal; using Ipopt::MatlabJournal; using Ipopt::IpoptApplication; using Ipopt::SmartPtr; using Ipopt::TNLP; using Ipopt::ApplicationReturnStatus; using Ipopt::SolveStatistics; extern void _main(); // Function definitions. // ----------------------------------------------------------------- void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) try { // Check to see if we have the correct number of input and output // arguments. if (nrhs != 3) throw MatlabException("Incorrect number of input arguments"); if (nlhs != 2) throw MatlabException("Incorrect number of output arguments"); // Get the first input which specifies the initial iterate. Iterate x0(mxDuplicateArray(prhs[0])); // Get the second input which specifies the callback functions. CallbackFunctions funcs(prhs[1]); // Create a new IPOPT application object and process the options. IpoptApplication app(false); Options options(x0,app,prhs[2]); // The first output argument is the value of the optimization // variables obtained at the solution. plhs[0] = mxDuplicateArray(x0); Iterate x(plhs[0]); // The second output argument stores other information, such as // the exit status, the value of the Lagrange multipliers upon // termination, the final state of the auxiliary data, and so on. MatlabInfo info(plhs[1]); // Check to see whether the user provided a callback function for // computing the Hessian. This is not needed in the special case // when a quasi-Newton approximation to the Hessian is being used. if (!options.ipoptOptions().useQuasiNewton() && !funcs.hessianFuncIsAvailable()) throw MatlabException("You must supply a callback function for \ computing the Hessian unless you decide to use a quasi-Newton \ approximation to the Hessian"); // If the user tried to use her own scaling, report an error. if (options.ipoptOptions().userScaling()) throw MatlabException("The user-defined scaling option does not \ work in the MATLAB interface for IPOPT"); // If the user supplied initial values for the Lagrange // multipliers, activate the "warm start" option in IPOPT. if (options.multlb() && options.multub() && (numconstraints(options)==0 || options.multconstr()) ) app.Options()->SetStringValue("warm_start_init_point","yes"); // Set up the IPOPT console. EJournalLevel printLevel = (EJournalLevel) options.ipoptOptions().printLevel(); if(printLevel > 0) { //prevents IPOPT display if we don't want it SmartPtr console = new MatlabJournal(printLevel); app.Jnlst()->AddJournal(console); } // Intialize the IpoptApplication object and process the options. ApplicationReturnStatus exitstatus; exitstatus = app.Initialize(); if (exitstatus != Ipopt::Solve_Succeeded) throw MatlabException("IPOPT solver initialization failed"); // Create a new instance of the constrained, nonlinear program. MatlabProgram* matlabProgram = new MatlabProgram(x0,funcs,options,x,info); SmartPtr program = matlabProgram; // Ask Ipopt to solve the problem. exitstatus = app.OptimizeTNLP(program); info.setExitStatus(exitstatus); // Collect statistics about Ipopt run if (IsValid(app.Statistics())) { SmartPtr stats = app.Statistics(); info.setIterationCount(stats->IterationCount()); //Get Function Calls int obj, con, grad, jac, hess; stats->NumberOfEvaluations(obj,con,grad,jac,hess); info.setFuncEvals(obj, con, grad, jac, hess); //CPU Time info.setCpuTime(stats->TotalCpuTime()); } // Free the dynamically allocated memory. mxDestroyArray(x0); } catch (std::exception& error) { mexErrMsgTxt(error.what()); } Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/ipopt_auxdata.m0000644000076600007660000000370112156621430022146 0ustar coincoinfunction [x, info] = ipopt_auxdata(x0, funcs, options) % Wrapper function to implement auxdata functionality using Matlab function handles if ~isfield(options, 'auxdata') % no auxdata given, call ipopt as normal if isfield(funcs, 'iterfunc') && nargin(funcs.iterfunc) == 2 % check if iterfunc has only 2 inputs as before Ipopt version 3.11 funcs_old = funcs; funcs.iterfunc = @(t, f, varstruct) funcs_old.iterfunc(t, f); end [x, info] = ipopt(x0, funcs, options); else % remove auxdata from options structure and modify function handles auxdata = options.auxdata; options_new = rmfield(options, 'auxdata'); funcs_new.objective = @(x) funcs.objective(x, auxdata); funcs_new.gradient = @(x) funcs.gradient(x, auxdata); if isfield(funcs, 'constraints') funcs_new.constraints = @(x) funcs.constraints(x, auxdata); end if isfield(funcs, 'jacobian') funcs_new.jacobian = @(x) funcs.jacobian(x, auxdata); end if isfield(funcs, 'jacobianstructure') funcs_new.jacobianstructure = @() funcs.jacobianstructure(auxdata); end if isfield(funcs, 'hessian') funcs_new.hessian = @(x, sigma, lambda) funcs.hessian(x, sigma, lambda, auxdata); end if isfield(funcs, 'hessianstructure') funcs_new.hessianstructure = @() funcs.hessianstructure(auxdata); end if isfield(funcs, 'iterfunc') % This assumes the pre-3.11 convention for iterfunc. If you would % like to use the additional information that is available via the % third input argument to iterfunc as of Ipopt version 3.11, you % will need to modify this section by uncommenting the line below. funcs_new.iterfunc = @(t, f, varstruct) funcs.iterfunc(t, f, auxdata); % funcs_new.iterfunc = @(t, f, varstruct) funcs.iterfunc(t, f, varstruct, auxdata); end [x, info] = ipopt(x0, funcs_new, options_new); end Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/MatlabInterface.site0000644000076600007660000001106312057446772023053 0ustar coincoin# MatlabInterface.site # This is a config.site file to set appropriate flags for # building the Matlab Mex interface to Ipopt. Usage: # 1. mkdir -p $prefix/share # (where $prefix is your build directory # unless you specify a non-default value of --prefix to configure) # 2. Copy this file (MatlabInterface.site) to the new share folder # 3. Rename $prefix/share/MatlabInterface.site to $prefix/share/config.site # 4. $IPOPT_TOP_SRCDIR/configure CC= \ # CXX= F77= \ # --with-matlab-home= # Ipopt configure will choose CC, CXX, and F77 automatically if you # do not specify them. It will also look for matlab on the path if # you don't specify --with-matlab-home. If the following command: # which matlab && ls -l $(which matlab) # does not point to the version of Matlab you want, you need # to provide the correct path in --with-matlab-home. # If the g++ or user-specified CXX compiler is capable of statically # linking libstdc++ (and the libgfortran.a of gfortran or the # user-specified F77 compiler) into a shared library (4.5 or newer # on Mac or Windows, 4.7.3 or newer built --with-pic on Linux) # then this script will set up the Ipopt Matlab interface with # all standard libraries statically linked. This way the same # mex file should be usable across multiple versions of Matlab. # If this causes any problems you can disable this behavior # by setting the flag --disable-matlab-static to configure. # # If you also specify --enable-matlab-ma57 in your configure # call and do not provide the HSL source code, configure will # try to use Matlab's MA57 library. # Note that when using Matlab's MA57, standalone Ipopt executables # (such as from "make test") require setting the environment variable # LD_LIBRARY_PATH=$MATLAB_HOME/bin/$ARCH:$MATLAB_HOME/sys/os/$ARCH # (DYLD_LIBRARY_PATH=$MATLAB_HOME/bin/$ARCH on Mac OS X) where $ARCH # is one of glnxa64, maci64, win32, win64, etc, in order to properly # work. If you're using a compiler version that doesn't match Matlab's # (see http://www.mathworks.com/support/sysreq/previous_releases.html) # then you should compile the mex file *before* setting LD_LIBRARY_PATH, # otherwise the mex file may end up with conflicting standard libraries. # First set the recommended flags for Matlab interface compilation if test x"$enable_shared" != xyes; then enable_shared=no fi if test x"$with_pic" != xno; then with_pic=yes fi if test -z "$with_blas"; then with_blas=BUILD fi if test -z "$with_lapack"; then with_lapack=BUILD fi # Unless user specified --enable-matlab-static (or disable), test # if we can statically link standard libraries into a shared lib if test -z "$enable_matlab_static"; then cxxtemp=$CXX f77temp=$F77 # shortcut: if CXX and F77 not specified, assume g++ and gfortran if test -z "$cxxtemp"; then cxxtemp=g++ fi if test -z "$f77temp"; then f77temp=gfortran fi # make dummy test programs echo "#include " > conftest.cc echo "using namespace std;" >> conftest.cc echo "int main ()" >> conftest.cc echo "{" >> conftest.cc echo " cout << endl;" >> conftest.cc echo " return 0;" >> conftest.cc echo "}" >> conftest.cc echo " PROGRAM MAIN" > conftest.f echo " END" >> conftest.f case `uname` in Darwin*) $cxxtemp -static-libgcc -static-libstdc++ \ -shared -o conftest.dylib conftest.cc && test -z \ "`otool -L conftest.dylib | grep libstdc++`" && \ enable_matlab_static=yes ;; MINGW*) $cxxtemp -static -shared -o conftest.dll \ conftest.cc && test -z "`objdump -p conftest.dll | \ grep libstdc++`" && enable_matlab_static=yes ;; Linux*) # also need to test if libgfortran.a is -fPIC on Linux $cxxtemp -fPIC -static-libgcc -static-libstdc++ \ -shared -o conftest.so conftest.cc && test -z \ "`objdump -p conftest.so | grep libstdc++`" && \ $f77temp -fPIC -shared -o conftest.so conftest.f \ `$f77temp -print-file-name=libgfortran.a` && \ enable_matlab_static=yes ;; esac rm -f conftest* fi # Set configure flags which depend on enable_matlab_static if test x"$enable_matlab_static" = xyes; then ADD_FFLAGS="$ADD_FFLAGS -static-libgcc" fi case `uname` in MINGW*) if test x"$enable_matlab_static" = xyes; then enable_pthread_mumps=no else case $F77 in *ifort* | *compile_f2c*) ;; *) ADD_FFLAGS="$ADD_FFLAGS -static-libgcc" ;; esac fi ;; esac Ipopt-3.11.4/Ipopt/contrib/MatlabInterface/ipopt.m0000644000076600007660000002372712142261342020446 0ustar coincoin% IPOPT Call the IPOPT constrained, nonlinear solver. % The basic function call is % % [x, info] = IPOPT(x0,funcs,options) % % The first input is either a matrix or a cell array of matrices. It % declares the starting point for the solver. % % CALLBACK FUNCTIONS % % The second input must be struct containing function handles for various % MATLAB routines. For more information on using functions and function % handles in MATLAB, type HELP FUNCTION and HELP FUNCTION_HANDLE in the % MATLAB prompt. % % funcs.objective (required) % % Calculates the objective function at the current point. It takes one % point, the current iterate x. For example, the definition of the % objective function for the Hock & Schittkowski (H&S) test problem #71 % (with 4 optimization variables) would be % % function f = objective (x) % f = x(1)*x(4)*sum(x(1:3)) + x(3); % % funcs.gradient (required) % % Computes the gradient of the objective at the current point. It takes % one input, the current iterate x. For H&S test problem #71, the % definition of the gradient callback would be % % function g = gradient (x) % g = [ x(1)*x(4) + x(4)*sum(x(1:3)) % x(1)*x(4) % x(1)*x(4) + 1 % x(1)*sum(x(1:3)) ]; % % funcs.constraints (optional) % % This function is only required if there are constraints on your % variables. It evaluates the constraint functions at the current % point. It takes one input, x. The return value is a vector of length % equal to the number of constraints (it must be of the same length as % options.cl and options.cu). For H&S test problem #71, the % callback definition would be % % function c = constraints (x) % c = [ prod(x); sum(x.^2) ]; % % funcs.jacobian (optional) % % This function is only required if there are constraints on your % variables. Evaluates the Jacobian of the constraints at the current % point. It takes one input, x. The output must always be an M x N % sparse matrix, where M is the number of constraints and N is the % number of variables. Type HELP SPARSE for more information on % constructing sparse matrices in MATLAB. The definition of the % callback function for H&S test problem #71 would be % % function J = jacobian (x) % sparse([ prod(x)./x; 2*x ]); % % Notice that the return value is a sparse matrix. % % funcs.jacobianstructure (optional) % % This function is only required if there are constraints on your % variables. It takes no inputs. The return value is a sparse % matrix whereby an entry is nonzero if and only if the Jacobian of % the constraints is nonzero at ANY point. The callback function for % the H&S test problem #71 simply returns a 2 x 4 matrix of ones in % the sparse matrix format: % % function J = jacobianstructure() % J = sparse(ones(2,4)); % % funcs.hessian (optional) % % Evaluates the Hessian of the Lagrangian at the current point. It % must be specified unless you choose to use the limited-memory % quasi-Newton approximation to the Hessian (see below). % % The callback function has three inputs: the current point (x), a % scalar factor on the objective (sigma), and the Lagrange multipliers % (lambda), a vector of length equal to the number of constraints. The % function should compute % % sigma*H + lambda(1)*G1 + ... + lambda(M)*GM % % where M is the number of constraints, H is the Hessian of the % objective and the G's are the Hessians of the constraint % functions. The output must always be an N x N sparse, lower triangular % matrix, where N is the number of variables. In other words, if X is % the output value, then X must be the same as TRIL(X). % % Here is an implementation of the Hessian callback routine for the % H&S test problem #71: % % function H = hessian (x, sigma, lambda) % H = sigma*[ 2*x(4) 0 0 0; % x(4) 0 0 0; % x(4) 0 0 0; % 2*x(1)+x(2)+x(3) x(1) x(1) 0 ]; % H = H + lambda(1)*[ 0 0 0 0; % x(3)*x(4) 0 0 0; % x(2)*x(4) x(1)*x(4) 0 0; % x(2)*x(3) x(1)*x(3) x(1)*x(2) 0 ]; % H = sparse(H + lambda(2)*diag([2 2 2 2])); % % funcs.hessianstructure (optional) % % This function serves the same purpose as funcs.jacobianstructure, but % for the Hessian matrix. Again, it is not needed if you are using the % limited-memory quasi-Newton approximation to the Hessian. It takes no % inputs, and must return a sparse, lower triangular matrix. For H&S % test problem #71, the MATLAB callback routine is fairly % straightforward: % % function H = hessianstructure() % H = sparse(tril(ones(4))); % % funcs.iterfunc (optional) % % An additional callback routine that is called once per algorithm % iteration. It takes three inputs: the first is the current iteration % of the algorithm, the second is the current value of the objective, % and the third is a structure containing fields x, inf_pr, inf_du, mu, % d_norm, regularization_size, alpha_du, alpha_pr, and ls_trials. This % function should always return true unless you want IPOPT to terminate % prematurely for whatever reason. If you would like to use the third % input to iterfunc along with auxdata functionality, you will need to % modify the appropriate section of ipopt_auxdata.m. % % OPTIONS % % The options are passed through the third input. What follows is a % description of the fields you may optionally specify. % % options.lb % % Specify lower bounds on the variables. It must have the same number % of elements as x0. Set an entry to -Inf to specify no lower bound. % % options.ub % % Specify upper bounds on the variables. It must have the same number % of elements as x0. Set an entry to Inf to specify no upper bound. % % options.cl, options.cu % % Set lower and upper bounds on the constraints. Each should be a % vector of length equal to the number of constraints. As before, a % bound is removed by setting the entry to -Inf or +Inf. An equality % constraint is achieved by setting cl(i) = cu(i). % % options.auxdata % % Optionally, one may choose to pass additional auxiliary data to the % MATLAB callback routines listed above through the function call. For % instance, the objective callback function now takes two inputs, x and % auxdata. The auxiliary data may not change through the course of the % IPOPT optimization. The auxiliary data keep the same values as they % possessed in the initial call. If you need variables that change over % time, you may want to consider global variables (type HELP % GLOBAL). See the lasso.m file in the examples subdirectory for an % illustration of how the auxiliary data is passed to the various % callback functions. Starting with Ipopt version 3.11, you must call % ipopt_auxdata(x0,funcs,options) to use auxdata functionality. % % options.zl, options.zu, options.lambda % % These fields specify the initial value for the Lagrange multipliers, % which is especially useful for "warm starting" the interior-point % solver. They specify the Lagrange multipliers corresponding to the % lower bounds on the variables, upper bounds on the variables, and % constraints, respectively. % % options.ipopt % % Finally, you may also change the settings of IPOPT through this % field. For instance, to turn off the IPOPT output, use the % limited-memory BFGS approximation to the Hessian, and turn on the % derivative checker, do the following: % % options.ipopt.print_level = 0; % options.ipopt.hessian_approximation = 'limited-memory'; % options.ipopt.derivative_test = 'first-order'; % % For more details, see the documentation on the IPOPT website. % % OUTPUTS % % If the solver successfully converges to a stationary point or terminated % without an unrecoverable error, the function IPOPT outputs the candidate % solution x. In all other cases, an error is thrown. It also outputs some % additional information: % % info.zl, info.zu, info.lambda % % The value of the Lagrange multipliers at the solution. See the % "options" for more information on the Lagrange multipliers. % % info.status % % Upon termination, this field will take on one of these following % values (for a more up-to-date listing, see the IpReturnCodes.h header % file in the IPOPT C++ source directory): % % 0 solved % 1 solved to acceptable level % 2 infeasible problem detected % 3 search direction becomes too small % 4 diverging iterates % 5 user requested stop % % -1 maximum number of iterations exceeded % -2 restoration phase failed % -3 error in step computation % -10 not enough degrees of freedom % -11 invalid problem definition % -12 invalid option % -13 invalid number detected % % -100 unrecoverable exception % -101 non-IPOPT exception thrown % -102 insufficient memory % -199 internal error % % info.iter, info.cpu % % Number of iterations and CPU time (in seconds) taken by the Ipopt run % % Finally, for more information, please consult the following webpages: % % http://www.cs.ubc.ca/~pcarbo/ipopt-for-matlab % http://projects.coin-or.org/Ipopt % % Copyright (C) 2008 Peter Carbonetto. All Rights Reserved. % This code is published under the Eclipse Public License. % % Author: Peter Carbonetto % Dept. of Computer Science % University of British Columbia % September 19, 2008 Ipopt-3.11.4/Ipopt/contrib/JavaInterface/0000755000076600007660000000000012214537465016617 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/JavaInterface/javafiles.lst0000644000076600007660000000027610702557412021306 0ustar coincoinorg/coinor/Ipopt.java org/coinor/examples/HS071.java org/coinor/examples/scalable/SolveProblem.java org/coinor/examples/scalable/Scalable.java org/coinor/examples/scalable/LuksanVlcek1.java Ipopt-3.11.4/Ipopt/contrib/JavaInterface/Makefile.in0000644000076600007660000000705712141450650020662 0ustar coincoin# Copyright (C) 2007, 2011 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # # Author: Andreas Waechter 2007-10-08 IBM # $Id: Makefile.in 2276 2013-05-05 12:33:44Z stefan $ ## Installation of JDK #JAVA_HOME = @JAVA_HOME@ # NOTE: We assume here that there are no spaces in $JAVA_HOME. # If you are on Windows and have Java in a path like C:\Program Files\Java, # try setting JAVA_HOME to the DOS equivalent C:\Progra~1 or similar. # Java compiler JAVAC = $(JAVA_HOME)/bin/javac # JNI header file generator JAVAH = $(JAVA_HOME)/bin/javah -jni # Jar utility JAR = $(JAVA_HOME)/bin/jar # Java runtime JAVA = $(JAVA_HOME)/bin/java # Java documentation utility JAVADOC = $(JAVA_HOME)/bin/javadoc # libtool top_builddir = ../.. SHELL = @SHELL@ LIBTOOL = @LIBTOOL@ # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = `echo @CXXFLAGS@ | sed -e s'|-pedantic-errors||'` # additional C++ Compiler options for linking LINKFLAGS = $(CXXFLAGS) @RPATH_FLAGS@ @SHARED_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` -I`$(CYGPATH_W) $(JAVA_HOME)/include` -I`$(CYGPATH_W) $(JAVA_HOME)/include/win32` -I. @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ -I`$(CYGPATH_W) $(JAVA_HOME)/include` -I`$(CYGPATH_W) $(JAVA_HOME)/include/win32` -I. # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ SRCDIR = @srcdir@ VPATH = @srcdir@ ########################################################################## ORGDIR = org/coinor JNIHEADER = org_coinor_Ipopt.h JIPOPTOBJ = jipopt.lo JIPOPTDLL = @JIPOPTDLL@ LIBJIPOPT = lib/$(JIPOPTDLL) IPOPTCLASS = $(ORGDIR)/Ipopt.class HS071 = $(ORGDIR)/examples/HS071 SCALABLE = $(ORGDIR)/examples/scalable/SolveProblem HS071CLASSES = $(ORGDIR)/examples/HS071.class SCALCLASSES = \ $(ORGDIR)/examples/scalable/LuksanVlcek1.class \ $(ORGDIR)/examples/scalable/Scalable.class \ $(ORGDIR)/examples/scalable/SolveProblem.class SCALJAR = ScalableProblems.jar $(LIBJIPOPT): $(JIPOPTOBJ) lib $(LIBTOOL) --tag=CXX --mode=link $(CXX) $(LINKFLAGS) -o $(LIBJIPOPT) $(JIPOPTOBJ) $(LIBS) $(JNIHEADER): $(IPOPTCLASS) $(JAVAH) `echo $(IPOPTCLASS) | sed -e 's|/|.|g' -e 's|.class||'` $(JIPOPTOBJ): $(JNIHEADER) lib: mkdir lib .java.class: $(JAVAC) $< .SUFFIXES: .cpp .lo .obj .java .class $(SCALJAR): $(SCALCLASSES) $(JAR) cfm $(SCALJAR) $(SRCDIR)/manifest.txt $(IPOPTCLASS) $(SCALCLASSES) test: $(LIBJIPOPT) $(HS071CLASSES) $(SCALJAR) $(JAVA) $(HS071) $(JAVA) -jar $(SCALJAR) LukVlI1 100 $(JAVA) -jar $(SCALJAR) LukVlE1 101 clean: rm -rf $(LIBJIPOPT) $(JIPOPTOBJ) $(JNIHEADER) $(IPOPTCLASS) $(HS071CLASSES) $(SCALCLASSES) $(SCALJAR) doc: $(JAVADOC) -d javadoc -windowtitle "JIpopt API documentation" org/coinor/Ipopt.java .cpp.lo: $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `test -f '$<' || echo '$(SRCDIR)/'`$< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(SRCDIR)/$<'; fi` Ipopt-3.11.4/Ipopt/contrib/JavaInterface/org/0000755000076600007660000000000012214537465017406 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/0000755000076600007660000000000012214537465020677 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/0000755000076600007660000000000012214537465022515 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/scalable/0000755000076600007660000000000012214537465024263 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/scalable/LuksanVlcek1.java0000644000076600007660000001451012141450650027417 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: LuksanVlcek1.java 2276 2013-05-05 12:33:44Z stefan $ */ package org.coinor.examples.scalable; /** Implementation of Example 5.1 from "Sparse and Parially Separable Test Problems for Unconstrained and Equality Constrained Optimization" by L. Luksan and J. Vlcek. * * This code is based on an Ipopt example file with same name. * * @author Rafael de Pelegrini Soares, Tong Kewei */ public class LuksanVlcek1 extends Scalable { /** Constructor. * Here, gl and gu are the bounds for the constraints. * The original formulation is obtained by setting gl and gu to zero. * Using gl lower than gu allows the obtain a problem formulation with inequality constraints. */ public LuksanVlcek1(String name, double gl, double gu) { super(name, gl, gu); } @Override public boolean initialize(int n) { if( n <= 2 ) { System.out.print("N needs to be at least 3.\n"); return false; } // The problem described in LuksanVlcek1.hpp has 4 variables, x[0] through x[3] this.n = n; m = n - 2; nnz_jac_g = m * 3; nnz_h_lag = n + n-1; // use the C style numbering of matrix indices (starting at 0) index_style = C_STYLE; // none of the variables have bounds x_l = new double[n]; x_u = new double[n]; for( int i = 0; i < n; ++i ) { x_l[i] = -1e20; x_u[i] = 1e20; } // Set the bounds for the constraints g_l = new double[m]; g_u = new double[m]; for( int i = 0; i < m; ++i ) { g_l[i] = gl; g_u[i] = gu; } // set the starting point x = new double[n]; for( int i = 0; i < n/2; ++i ) { x[2*i] = -1.2; x[2*i+1] = 1.0; } if( n % 2 == 1 ) x[n-1] = -1.2; return true; } protected boolean get_bounds_info(int n, double[] x_l, double[] x_u, int m, double[] g_l, double[] g_u) { // none of the variables have bounds for( int i = 0; i < n; ++i ) { x_l[i] = -1e20; x_u[i] = 1e20; } // Set the bounds for the constraints for( int i = 0; i < m; ++i ) { g_l[i] = gl; g_u[i] = gu; } return true; } protected boolean get_starting_point(int n, boolean init_x, double[] x, boolean init_z, double[] z_L, double[] z_U, int m, boolean init_lambda,double[] lambda) { for( int i = 0; i < n/2; ++i ) { x[2*i] = -1.2; x[2*i+1] = 1.0; } if( n % 2 == 1 ) x[n-1] = -1.2; return true; } @Override protected boolean eval_f(int n, double[] x, boolean new_x, double[] obj_value) { obj_value[0] = 0.0; for( int i = 0; i < n-1; ++i ) { double a1 = x[i] * x[i] - x[i+1]; double a2 = x[i] - 1.0; obj_value[0] += 100.0 * a1 * a1 + a2 * a2; } return true; } @Override protected boolean eval_g(int n, double[] x, boolean new_x, int m, double[] g) { for( int i = 0; i < n-2; ++i ) g[i] = 3.0 * Math.pow(x[i+1], 3.0) + 2.0 * x[i+2] - 5.0 + Math.sin(x[i+1]-x[i+2]) * Math.sin(x[i+1]+x[i+2]) + 4.0 * x[i+1] - x[i] * Math.exp(x[i] - x[i+1]) - 3.0; return true; } @Override protected boolean eval_grad_f(int n, double[] x, boolean new_x, double[] grad_f) { grad_f[0] = 0.0; for( int i = 0; i < n-1; ++i ) { grad_f[i] += 400.0 * x[i] * (x[i] * x[i] - x[i+1]) + 2.0 * (x[i] - 1.0); grad_f[i+1] = -200.0 * (x[i] * x[i] - x[i+1]); } return true; } @Override protected boolean eval_jac_g(int n, double[] x, boolean new_x, int m, int nele_jac, int[] iRow, int[] jCol, double[] values) { if( values == null ) { // return the structure of the jacobian int ijac=0; for( int i = 0; i < n-2; ++i ) { iRow[ijac] = i; jCol[ijac] = i; ijac++; iRow[ijac] = i; jCol[ijac] = i+1; ijac++; iRow[ijac] = i; jCol[ijac] = i+2; ijac++; } } else { // return the values of the jacobian of the constraints int ijac=0; for( int i = 0; i < n-2; ++i ) { // x[i] values[ijac] = -(1.0 + x[i]) * Math.exp(x[i] - x[i+1]); ijac++; // x[i+1] values[ijac] = 9.0 * x[i+1] * x[i+1] + Math.cos(x[i+1] - x[i+2]) * Math.sin(x[i+1] + x[i+2]) + Math.sin(x[i+1] - x[i+2]) * Math.cos(x[i+1] + x[i+2]) + 4.0 + x[i] * Math.exp(x[i] - x[i+1]); ijac++; // x[i+2] values[ijac] = 2.0 - Math.cos(x[i+1] - x[i+2]) * Math.sin(x[i+1] + x[i+2]) + Math.sin(x[i+1] - x[i+2]) * Math.cos(x[i+1] + x[i+2]); ijac++; } } return true; } @Override protected boolean eval_h(int n, double[] x, boolean new_x, double obj_factor, int m, double[] lambda, boolean new_lambda, int nele_hess, int[] iRow, int[] jCol, double[] values) { if( values == null) { int ihes = 0; for( int i = 0; i < n; ++i ) { iRow[ihes] = i; jCol[ihes] = i; ++ihes; if( i < n-1 ) { iRow[ihes] = i; jCol[ihes] = i+1; ihes++; } } assert ihes == nele_hess; } else { int ihes = 0; for( int i = 0; i < n; ++i ) { // x[i],x[i] if( i < n-1 ) { values[ihes] = obj_factor * (2.0 + 400.0 * (3.0 * x[i] * x[i] - x[i+1])); if( i < n-2 ) values[ihes] -= lambda[i] * (2.0 + x[i]) * Math.exp(x[i] - x[i+1]); } else values[ihes] = 0.; if( i > 0 ) { // x[i+1]x[i+1] values[ihes] += obj_factor * 200.0; if( i < n-1 ) values[ihes] += lambda[i-1]* (18.0 * x[i] - 2.0 * Math.sin(x[i] - x[i+1]) * Math.sin(x[i] + x[i+1]) + 2.0 * Math.cos(x[i] - x[i+1]) * Math.cos(x[i] + x[i+1]) - x[i-1] * Math.exp(x[i-1] - x[i])); } if( i > 1 ) // x[i+2]x[i+2] values[ihes] += lambda[i-2] * (-2.0 * Math.sin(x[i-1] - x[i]) * Math.sin(x[i-1] + x[i]) - 2.0 * Math.cos(x[i-1] - x[i]) * Math.cos(x[i-1] + x[i])); ihes++; if( i < n-1 ) { // x[i],x[i+1] values[ihes] = obj_factor * (-400.0 * x[i]); if( i < n-2 ) values[ihes] += lambda[i]*(1.+x[i])*Math.exp(x[i]-x[i+1]); /* if (i>0) { // x[i+1],x[i+2] values[ihes] += lambda[i-1]*( sin(x[i]-x[i+1])*sin(x[i]+x[i+1]) + cos(x[i]-x[i+1])*cos(x[i]+x[i+1]) - cos(x[i]-x[i+1])*cos(x[i]+x[i+1]) - sin(x[i]-x[i+1])*sin(x[i]+x[i+1]) ); } */ ihes++; } } assert ihes == nele_hess; } return true; } } Ipopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/scalable/Scalable.java0000644000076600007660000000403212141450650026620 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: Scalable.java 2276 2013-05-05 12:33:44Z stefan $ */ package org.coinor.examples.scalable; import org.coinor.Ipopt; /** Abstract class for the scalable problems. * * Implementations should derive from this class and * implement {@link #initialize(int)} where all problem size, * bounds, and inital guess should be initialized. * Besides the initialization, the abstract functions for evaluation * of objective, bounds, etc need to be implemented. * * @author Rafael de Pelegrini Soares, Tong Kewei */ public abstract class Scalable extends Ipopt { // Problem sizes int n; int m; int nnz_jac_g; int nnz_h_lag; // The bounds double x_l[], x_u[]; double g_l[], g_u[]; // the index style int index_style; // The initial guess and solution double x[]; private String name; protected double gl; protected double gu; /** * @param name * @param gl the constraint lower bound value for all elements of g * @param gu the constraint upper bound value for all elements of g */ public Scalable(String name, double gl, double gu) { this.name = name; this.gl = gl; this.gu = gu; } public String toString() { return name; } /** * In this function all problem sizes, bounds and initial guess * should be initialized. * * @param n the problem size * * @return true if the given size is valid for this problem */ abstract public boolean initialize(int n); /** * Creates the problem based on the already computed problem sizes and bounds. */ public void create() { super.create(n, m, nnz_jac_g, nnz_h_lag, index_style); } public double[] getInitialGuess() { return x; } public void print(double[] x, String str) { System.out.println(str); for( int i = 0; i < x.length; ++i ) System.out.println(x[i]); System.out.println(); } } Ipopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/scalable/SolveProblem.java0000644000076600007660000000413212141450650027524 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: SolveProblem.java 2276 2013-05-05 12:33:44Z stefan $ */ package org.coinor.examples.scalable; import java.util.HashMap; import org.coinor.Ipopt; /** * Class for running several different Scalable problems. * * @author Rafael de Pelegrini Soares, Tong Kewei */ public class SolveProblem { public static void main(String[] args) { HashMap list = new HashMap(); // adding all problems here list.put("LukVlE1", new LuksanVlcek1("LukVlE1", 0.0, 0.0));//E means equal list.put("LukVlI1", new LuksanVlcek1("LukVlI1", -1.0, 0.0));//I means inequal if( args.length < 2 ) { System.out.println("Usage: ProblemName N\n"); System.out.println(" - N is a positive parameter determining problem size"); System.out.println(" - ProblemName is one of:"); // list all problems for( Scalable s : list.values() ) System.out.println(" " + s); return; } String problem = args[0]; int n = Integer.parseInt(args[1]); System.out.println("Solving problem " + problem + " for N=" + n); Scalable p = list.get(problem); if( p == null ) { System.out.println("Problem not found!"); return; } if( !p.initialize(n) ) return; p.create(); p.OptimizeNLP(); switch( p.getStatus() ) { case Ipopt.SOLVE_SUCCEEDED: case Ipopt.ACCEPTABLE_LEVEL: System.out.println("Solution found."); break; default: System.out.println("** Could not solve problem " + problem + " for N=" + n + ", status: " + p.getStatus()); } } } Ipopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/examples/HS071.java0000644000076600007660000002377312141450650024123 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: HS071.java 2276 2013-05-05 12:33:44Z stefan $ */ package org.coinor.examples; import org.coinor.Ipopt; /** Java example for interfacing with IPOPT. * * HS071 implements a Java example of problem 71 of the * Hock-Schittkowsky test suite. *

* The optimal solution is * x = (1.00000000, 4.74299963, 3.82114998, 1.37940829). *

* This code was based on same problem of the Ipopt distribution. * * @author Rafael de Pelegrini Soares, Tong Kewei */ public class HS071 extends Ipopt { // Problem sizes int n; int m; int nele_jac; int nele_hess; int count_bounds = 0; int dcount_start = 0; /** Creates a new instance of HS071cpp */ public HS071() { /* Number of nonzeros in the Jacobian of the constraints */ nele_jac = 8; /* Number of nonzeros in the Hessian of the Lagrangian (lower or * upper triangual part only) */ nele_hess = 10; /* Number of variables */ n = 4; /* Number of constraints */ m = 2; /* Index style for the irow/jcol elements */ int index_style = Ipopt.C_STYLE; /* create the IpoptProblem */ create(n, m, nele_jac, nele_hess, index_style); } /** Callback function for variable bounds and constraint sides. */ protected boolean get_bounds_info(int n, double[] x_L, double[] x_U, int m, double[] g_L, double[] g_U) { assert n == this.n; assert m == this.m; /* set the values of the variable bounds */ for( int i = 0; i < n; ++i ) { x_L[i] = 1.0; x_U[i] = 5.0; } /* set the values of the constraint bounds */ g_L[0] = 25.0; g_U[0] = 2e19; g_L[1] = 40.0; g_U[1] = 40.0; return true; } /** Callback function for the starting point. */ protected boolean get_starting_point(int n, boolean init_x, double[] x, boolean init_z, double[] z_L, double[] z_U, int m, boolean init_lambda,double[] lambda) { assert init_z == false; assert init_lambda = false; if( init_x ) { x[0] = 1.0; x[1] = 5.0; x[2] = 5.0; x[3] = 1.0; } /* x[0] = 0.9999999923240762; x[1] = 4.742999641809297; x[2] = 3.8211499817883072; x[3] = 1.3794082897556983; z_L[0] = 1.0878712258676539e+00; z_L[1] = 0; z_L[2] = 0; z_L[3] = 0; z_U[0] = 0; z_U[1] = 0; z_U[2] = 0; z_U[3] = 0; lambda[0] = -0.552293195627571; lambda[1] = 0.16146777361782; */ return true; } protected boolean eval_f(int n, double[] x, boolean new_x, double[] obj_value) { assert n == this.n; obj_value[0] = x[0] * x[3] * (x[0] + x[1] + x[2]) + x[2]; return true; } protected boolean eval_grad_f(int n, double[] x, boolean new_x, double[] grad_f) { assert n == this.n; grad_f[0] = x[0] * x[3] + x[3] * (x[0] + x[1] + x[2]); grad_f[1] = x[0] * x[3]; grad_f[2] = x[0] * x[3] + 1; grad_f[3] = x[0] * (x[0] + x[1] + x[2]); return true; } protected boolean eval_g(int n, double[] x, boolean new_x, int m, double[] g) { assert n == this.n; assert m == this.m; g[0] = x[0] * x[1] * x[2] * x[3]; g[1] = x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3]; return true; } protected boolean eval_jac_g(int n, double[] x, boolean new_x, int m, int nele_jac, int[] iRow, int[] jCol, double[] values) { assert n == this.n; assert m == this.m; if( values == null ) { /* return the structure of the jacobian */ /* this particular jacobian is dense */ iRow[0] = 0; jCol[0] = 0; iRow[1] = 0; jCol[1] = 1; iRow[2] = 0; jCol[2] = 2; iRow[3] = 0; jCol[3] = 3; iRow[4] = 1; jCol[4] = 0; iRow[5] = 1; jCol[5] = 1; iRow[6] = 1; jCol[6] = 2; iRow[7] = 1; jCol[7] = 3; } else { /* return the values of the jacobian of the constraints */ values[0] = x[1]*x[2]*x[3]; /* 0,0 */ values[1] = x[0]*x[2]*x[3]; /* 0,1 */ values[2] = x[0]*x[1]*x[3]; /* 0,2 */ values[3] = x[0]*x[1]*x[2]; /* 0,3 */ values[4] = 2*x[0]; /* 1,0 */ values[5] = 2*x[1]; /* 1,1 */ values[6] = 2*x[2]; /* 1,2 */ values[7] = 2*x[3]; /* 1,3 */ } return true; } protected boolean eval_h(int n, double[] x, boolean new_x, double obj_factor, int m, double[] lambda, boolean new_lambda, int nele_hess, int[] iRow, int[] jCol, double[] values) { assert n == this.n; assert m == this.m; int idx = 0; /* nonzero element counter */ int row = 0; /* row counter for loop */ int col = 0; /* col counter for loop */ if( values == null ) { /* return the structure. This is a symmetric matrix, fill the lower left triangle only. */ /* the hessian for this problem is actually dense */ idx = 0; for( row = 0; row < n; ++row ) { for( col = 0; col <= row; ++col) { iRow[idx] = row; jCol[idx] = col; idx++; } } assert idx == nele_hess; assert nele_hess == this.nele_hess; } else { /* return the values. This is a symmetric matrix, fill the lower left triangle only */ /* fill the objective portion */ values[0] = obj_factor * (2*x[3]); /* 0,0 */ values[1] = obj_factor * (x[3]); /* 1,0 */ values[2] = 0.0; /* 1,1 */ values[3] = obj_factor * (x[3]); /* 2,0 */ values[4] = 0.0; /* 2,1 */ values[5] = 0.0; /* 2,2 */ values[6] = obj_factor * (2*x[0] + x[1] + x[2]); /* 3,0 */ values[7] = obj_factor * (x[0]); /* 3,1 */ values[8] = obj_factor * (x[0]); /* 3,2 */ values[9] = 0.0; /* 3,3 */ /* add the portion for the first constraint */ values[1] += lambda[0] * (x[2] * x[3]); /* 1,0 */ values[3] += lambda[0] * (x[1] * x[3]); /* 2,0 */ values[4] += lambda[0] * (x[0] * x[3]); /* 2,1 */ values[6] += lambda[0] * (x[1] * x[2]); /* 3,0 */ values[7] += lambda[0] * (x[0] * x[2]); /* 3,1 */ values[8] += lambda[0] * (x[0] * x[1]); /* 3,2 */ /* add the portion for the second constraint */ values[0] += lambda[1] * 2.0; /* 0,0 */ values[2] += lambda[1] * 2.0; /* 1,1 */ values[5] += lambda[1] * 2.0; /* 2,2 */ values[9] += lambda[1] * 2.0; /* 3,3 */ } return true; } public boolean get_scaling_parameters(double[] obj_scaling, int n, double[] x_scaling, int m, double[] g_scaling, boolean[] use_x_g_scaling) { return false; } public void print(double[] x, String str) { System.out.println(str); for( int i = 0; i < x.length; ++i ) System.out.println(x[i]); System.out.println(); } /** * Main function for running this example. */ public static void main(String []args) { //Create the problem HS071 hs071 = new HS071(); //Set some options //hs071.setNumericOption("tol",1E-7); //hs071.setStringOption("nlp_scaling_method","user-scaling"); //hs071.setStringOption("print_options_documentation","yes"); //hs071.setStringOption("warm_start_init_point","yes"); //hs071.setNumericOption("warm_start_bound_push",1e-9); //hs071.setNumericOption("warm_start_bound_frac",1e-9); //hs071.setNumericOption("warm_start_slack_bound_frac",1e-9); //hs071.setNumericOption("warm_start_slack_bound_push",1e-9); //hs071.setNumericOption("warm_start_mult_bound_push",1e-9); //Solve the problem int status = hs071.OptimizeNLP(); //Print the solution if( status == SOLVE_SUCCEEDED ) System.out.println("\n\n*** The problem solved!"); else System.out.println("\n\n*** The problem was not solved successfully!"); double obj = hs071.getObjectiveValue(); System.out.println("\nObjective Value = " + obj + "\n"); double x[] = hs071.getVariableValues(); hs071.print(x, "Primal Variable Values:"); double constraints[] = hs071.getConstraintValues(); hs071.print(constraints, "Constraint Values:"); double MLB[] = hs071.getLowerBoundMultipliers(); hs071.print(MLB, "Dual Multipliers for Variable Lower Bounds:"); double MUB[] = hs071.getUpperBoundMultipliers(); hs071.print(MUB, "Dual Multipliers for Variable Upper Bounds:"); double lam[] = hs071.getConstraintMultipliers(); hs071.print(lam, "Dual Multipliers for Constraints:"); } } Ipopt-3.11.4/Ipopt/contrib/JavaInterface/org/coinor/Ipopt.java0000644000076600007660000003262612141450650022633 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, Beihang University, - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: Ipopt.java 2276 2013-05-05 12:33:44Z stefan $ */ package org.coinor; import java.io.File; /** A Java Native Interface for the Ipopt optimization solver. *

* Ipopt is a solver for large scale nonlinear optimization problems (NLP). *

* The Java Native Interface (JNI) is a programming framework that allows * Java code running in the Java Virtual Machine (JVM) to call and be * called by native applications (programs specific to a hardware and * operating system platform) and libraries written in other languages, * such as C and C++. *

* The user should subclass this class and implement the abstract methods. * At some point before solving the problem the * {@link #create(int, int, int, int, int)} * function should be called. * For simple cases you can call this function in the constructor of your class. *

* Once the problem was created, {@link #OptimizeNLP()} will solve the problem. * Objects of this class can be reused to solve different problems, in other words, * {@link #create(int, int, int, int, int)} * and {@link #OptimizeNLP()} can be called multiple times. *

* Programmers should, for efficiency, call {@link #dispose()} when finished using a * Ipopt object, otherwise the nativelly allocated memory will be disposed of only * when the JVM call {@link #finalize()} on it. * * @author Rafael de Pelegrini Soares * @author Edson C. do Valle * @author Tong Kewei, BeiHang University */ public abstract class Ipopt { /** Native function should not be used directly */ private native boolean AddIpoptIntOption(long ipopt, String keyword, int val); /** Native function should not be used directly */ private native boolean AddIpoptNumOption(long ipopt, String keyword, double val); /** Native function should not be used directly */ private native boolean AddIpoptStrOption(long ipopt, String keyword, String val); /** Native function should not be used directly */ private native long CreateIpoptProblem(int n,int m, int nele_jac, int nele_hess, int index_style); /** Native function should not be used directly */ private native void FreeIpoptProblem(long ipopt); /** Native function should not be used directly */ private native int OptimizeTNLP(long ipopt, double x[], double g[], double obj_val[], double mult_g[], double mult_x_L[], double mult_x_U[], double callback_grad_f[], double callback_jac_g[], double callback_hess[]); /** The default DLL name of the native implementation (without any platform dependent prefixes or suffixes) */ public static final String DLLNAME = "jipopt"; /** The relative path where the native DLL is found */ public static final String DLLPATH = "lib"; /** Use C index style for iRow and jCol vectors */ public final static int C_STYLE = 0; /** Use FORTRAN index style for iRow and jCol vectors */ public final static int FORTRAN_STYLE = 1; /** The possible Ipopt status return codes: should be kept in sync with Ipopt return codes */ public final static int SOLVE_SUCCEEDED = 0; public final static int ACCEPTABLE_LEVEL = 1; public final static int INFEASIBLE_PROBLEM = 2; public final static int SEARCH_DIRECTION_TOO_SMALL = 3; public final static int DIVERGING_ITERATES = 4; public final static int USER_REQUESTED_STOP = 5; public final static int ITERATION_EXCEEDED = -1; public final static int RESTORATION_FAILED = -2; public final static int ERROR_IN_STEP_COMPUTATION = -3; public final static int CPUTIME_EXCEEDED = -4; public final static int NOT_ENOUGH_DEGREES_OF_FRE = -10; public final static int INVALID_PROBLEM_DEFINITION = -11; public final static int INVALID_OPTION = -12; public final static int INVALID_NUMBER_DETECTED = -13; public final static int UNRECOVERABLE_EXCEPTION = -100; public final static int NON_IPOPT_EXCEPTION = -101; public final static int INSUFFICIENT_MEMORY = -102; public final static int INTERNAL_ERROR = -199; /** Pointer to the native optimization object */ private long ipopt; /// Callback arguments private double callback_grad_f[]; private double callback_jac_g[]; private double callback_hess[]; /** Final value of variable values */ private double x[]; /** Final value of objective function */ private double obj_val[] = {0.0}; /** Values of constraint at final point */ private double g[]; /** Final multipliers for lower variable bounds */ private double mult_x_L[]; /** Final multipliers for upper variable bounds */ private double mult_x_U[]; /** Final multipliers for constraints */ private double mult_g[]; /** Status returned by the solver*/ private int status = INVALID_PROBLEM_DEFINITION; /** Creates a new NLP Solver using {@value #DLLPATH} as path and {@value #DLLNAME} as the DLL name. * * @see #Ipopt(String, String) */ public Ipopt() { this(DLLPATH, DLLNAME); } /** Creates a NLP Solver for the given DLL file. * The given file must implement the native interface required by this class. * * @param path the path where the DLL is found. * @param DLL the name of the DLL (without the extension or any platform dependent prefix). * * @see #Ipopt() */ public Ipopt(String path, String DLL) { // Loads the library File file = new File(path, System.mapLibraryName(DLL)); System.load(file.getAbsolutePath()); } /** Callback function for the variable bounds and constraint sides. */ abstract protected boolean get_bounds_info(int n, double[] x_l, double[] x_u, int m, double[] g_l, double[] g_u); /** Callback function for retrieving a starting point. */ abstract protected boolean get_starting_point(int n, boolean init_x, double[] x, boolean init_z, double[] z_L, double[] z_U, int m, boolean init_lambda, double[] lambda); /** Callback function for the objective function. */ abstract protected boolean eval_f(int n, double[] x, boolean new_x, double[] obj_value); /** Callback function for the objective function gradient. */ abstract protected boolean eval_grad_f(int n, double[] x, boolean new_x, double[] grad_f); /** Callback function for the constraints. */ abstract protected boolean eval_g(int n, double[] x, boolean new_x, int m, double[] g); /** Callback function for the constraints Jacobian. */ abstract protected boolean eval_jac_g(int n, double[] x, boolean new_x, int m, int nele_jac, int[] iRow, int[] jCol, double[] values); /** Callback function for the hessian. */ abstract protected boolean eval_h(int n, double[] x, boolean new_x, double obj_factor, int m, double[] lambda, boolean new_lambda, int nele_hess, int[] iRow, int[] jCol, double[] values); /** Dispose of the natively allocated memory. * Programmers should, for efficiency, call the dispose method when finished * using a Ipopt object. *

* An JIpopt object can be reused to solve different problems by calling again * {@link #create(int, int, int, int, int)}. * In this case, you should call the dispose method only when you * finished with the object and it is not needed anymore. */ public void dispose() { // dispose the native implementation if( ipopt != 0 ) { FreeIpoptProblem(ipopt); ipopt = 0; } } protected void finalize() throws Throwable { dispose(); } /** Create a new problem. the use is the same as get_nlp_info, change the name for clarity in java. * * @param n the number of variables in the problem. * @param m the number of constraints in the problem. * @param nele_jac the number of nonzero entries in the Jacobian. * @param nele_hess the number of nonzero entries in the Hessian. * @param index_style the numbering style used for row/col entries in the sparse matrix format (C_STYLE or FORTRAN_STYLE). * * @return true on success, otherwise false */ public boolean create(int n, int m, int nele_jac, int nele_hess, int index_style) { // delete any previously created native memory dispose(); x = new double[n]; // allocate the callback arguments callback_grad_f = new double[n]; callback_jac_g = new double[nele_jac]; callback_hess = new double[nele_hess]; // the multiplier mult_x_U = new double[n]; mult_x_L = new double[n]; g = new double[m]; mult_g = new double[m]; // Create the optimization problem and return a pointer to it ipopt = CreateIpoptProblem(n, m, nele_jac, nele_hess, index_style); //System.out.println("Finish Java Obj"); return ipopt == 0 ? false : true; } /** Function for setting an integer option. *

* For a list of valid keywords check the Ipopt documentation. * * @param keyword the option keyword * @param val the value * @return false if the option could not be set (e.g., if keyword is unknown) */ public boolean setIntegerOption(String keyword, int val) { return ipopt == 0 ? false : AddIpoptIntOption(ipopt, keyword, val); } /** Function for setting a number option. *

* For a list of valid keywords check the Ipopt documentation. * * @param keyword the option keyword * @param val the value * @return false if the option could not be set (e.g., if keyword is unknown) */ public boolean setNumericOption(String keyword, double val) { return ipopt == 0 ? false : AddIpoptNumOption(ipopt, keyword, val); } /** Function for setting a string option. *

* For a list of valid keywords check the Ipopt documentation. * * @param keyword the option keyword * @param val the value * @return false if the option could not be set (e.g., if keyword is unknown) */ public boolean setStringOption(String keyword, String val) { return ipopt == 0 ? false : AddIpoptStrOption(ipopt, keyword, val.toLowerCase()); } /** This function actually solve the problem. *

* The solve status returned is one of the constant fields of this class, * e.g. SOLVE_SUCCEEDED. For more details about the valid solve status * check the Ipopt documentation. * * @return the solve status * * @see #getStatus() */ public int OptimizeNLP() { this.status = this.OptimizeTNLP(ipopt, x, g, obj_val, mult_g, mult_x_L, mult_x_U, callback_grad_f, callback_jac_g, callback_hess); return this.status; } /** Gives primal variable values at final point. * @return the primal variable values at the final point. */ public double[] getVariableValues() { return x; } /** Gives objective function value at final point. * @return the final value of the objective function. */ public double getObjectiveValue() { return obj_val[0]; } /** Gives Ipopt status of last OptimizeNLP call. * @return the status of the solver. * * @see #OptimizeNLP() */ public int getStatus() { return status; } /** Gives constraint function values at final point. * @return Returns the final values for the constraints functions. */ public double[] getConstraintValues() { return g; } /** Gives constraint dual multipliers in final point. * @return Returns the final multipliers for the constraints. */ public double[] getConstraintMultipliers() { return mult_g; } /** Gives dual multipliers for variable lower bounds in final point. * @return Returns the final multipliers for the variable lower bounds. */ public double[] getLowerBoundMultipliers() { return mult_x_L; } /** Gives dual multipliers for variable upper bounds in final point. * @return Returns the final multipliers for the variable upper bounds. */ public double[] getUpperBoundMultipliers() { return mult_x_U; } /** If you using_scaling_parameters = true, please overload this method, * * To instruct IPOPT to use scaling values for variables, the first element of use_x_g_scaling should be set. * To instruct IPOPT to use scaling values for constraints, the second element of use_x_g_scaling should be set. * * @param obj_scaling double[1] to store a scaling factor for the objective (negative value leads to maximizing the objective function) * @param n the number of variables in the problem * @param x_scaling array to store the scaling factors for the variables * @param m the number of constraints in the problem * @param g_scaling array to store the scaling factors for the constraints * @param use_x_g_scaling boolean[2] to store whether scaling factors for variables (1st entry) and constraints (2nd entry) should be used * * @return true on success, otherwise false */ public boolean get_scaling_parameters(double[] obj_scaling, int n, double[] x_scaling, int m, double[] g_scaling, boolean[] use_x_g_scaling) { return false; } /** When LBFGS hessian approximation is used, this method should be overloaded. * * @return number of nonlinear variables, a negative value indicates that all variables are negative */ public int get_number_of_nonlinear_variables() { return -1; } /** When LBFGS hessian approximation is used, this method should be overloaded. * * @param num_nonlin_vars number of nonlinear variables and length of pos_nonlin_vars array * @param pos_nonlin_vars the indices of all nonlinear variables * * @return true on success, otherwise false */ public boolean get_list_of_nonlinear_variables(int num_nonlin_vars, int[] pos_nonlin_vars) { return false; } } Ipopt-3.11.4/Ipopt/contrib/JavaInterface/jipopt.cpp0000644000076600007660000005020212151613040020607 0ustar coincoin/** Copyright (C) 2007 VRTech Industrial Technologies - www.vrtech.com.br. * Copyright (C) 2007 Tong Kewei, BeiHang University - www.buaa.edu.cn. * All Rights Reserved. * This code is published under the Eclipse Public License. * * $Id: jipopt.cpp 2313 2013-05-30 09:04:32Z stefan $ */ #include #include #include "IpTNLP.hpp" #include "IpIpoptApplication.hpp" #include "org_coinor_Ipopt.h" using namespace std; using namespace Ipopt; /** Main structure for Ipopt JNI implementation. * * All functions will receive a pointer to this structure as * an integer argument (the address in memory of the structure). */ class Jipopt : public TNLP { public: /** constructor */ Jipopt(JNIEnv *env, jobject solver, jint n, jint m, jint nele_jac, jint nele_hess, jint index_style); /** default destructor */ virtual ~Jipopt() { } /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} /** overload this method to return scaling parameters. This is * only called if the options are set to retrieve user scaling. * There, use_x_scaling (or use_g_scaling) should get set to true * only if the variables (or constraints) are to be scaled. This * method should return true only if the scaling parameters could * be provided. */ virtual bool get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling); /** @name Methods for quasi-Newton approximation. If the second * derivatives are approximated by Ipopt, it is better to do this * only in the space of nonlinear variables. The following * methods are call by Ipopt if the quasi-Newton approximation is * selected. If -1 is returned as number of nonlinear variables, * Ipopt assumes that all variables are nonlinear. Otherwise, it * calls get_list_of_nonlinear_variables with an array into which * the indices of the nonlinear variables should be written - the * array has the lengths num_nonlin_vars, which is identical with * the return value of get_number_of_nonlinear_variables(). It * is assumed that the indices are counted starting with 1 in the * FORTRAN_STYLE, and 0 for the C_STYLE. */ //@{ virtual Index get_number_of_nonlinear_variables(); virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars,Index* pos_nonlin_vars); //@} public: // The JNI Environment JNIEnv *env; jobject solver; jint n; jint m; jint nele_jac; jint nele_hess; jint index_style; // some cached arguments jdoubleArray mult_gj; jdoubleArray mult_x_Lj; jdoubleArray mult_x_Uj; // the callback arguments jdoubleArray xj; jdoubleArray fj; jdoubleArray grad_fj; jdoubleArray gj; jdoubleArray jac_gj; jdoubleArray hessj; jboolean using_scaling_parameters; jboolean using_LBFGS; SmartPtr application; // the callback methods jmethodID get_bounds_info_; jmethodID get_starting_point_; jmethodID eval_f_; jmethodID eval_grad_f_; jmethodID eval_g_; jmethodID eval_jac_g_; jmethodID eval_h_; jmethodID get_scaling_parameters_; jmethodID get_number_of_nonlinear_variables_; jmethodID get_list_of_nonlinear_variables_; private: Jipopt(const Jipopt&); Jipopt& operator=(const Jipopt&); }; Jipopt::Jipopt(JNIEnv *env_, jobject solver_, jint n_, jint m_, jint nele_jac_, jint nele_hess_, jint index_style_) : env(env_), solver(solver_), n(n_), m(m_), nele_jac(nele_jac_), nele_hess(nele_hess_), index_style(index_style_), mult_gj(NULL), mult_x_Lj(NULL), mult_x_Uj(NULL), xj(NULL), fj(NULL), grad_fj(NULL), gj(NULL), jac_gj(NULL), hessj(NULL), using_scaling_parameters(false), using_LBFGS(false) { application = new IpoptApplication(); // the solver class jclass solverCls = env->GetObjectClass(solver); // get the methods get_bounds_info_ = env->GetMethodID(solverCls,"get_bounds_info","(I[D[DI[D[D)Z"); get_starting_point_ = env->GetMethodID(solverCls,"get_starting_point","(IZ[DZ[D[DIZ[D)Z"); eval_f_ = env->GetMethodID(solverCls, "eval_f", "(I[DZ[D)Z"); eval_grad_f_ = env->GetMethodID(solverCls, "eval_grad_f", "(I[DZ[D)Z"); eval_g_ = env->GetMethodID(solverCls, "eval_g", "(I[DZI[D)Z"); eval_jac_g_ = env->GetMethodID(solverCls, "eval_jac_g", "(I[DZII[I[I[D)Z"); eval_h_ = env->GetMethodID(solverCls, "eval_h", "(I[DZDI[DZI[I[I[D)Z"); get_scaling_parameters_ = env->GetMethodID(solverCls,"get_scaling_parameters","([DI[DI[D[Z)Z"); get_number_of_nonlinear_variables_ = env->GetMethodID(solverCls,"get_number_of_nonlinear_variables","()I"); get_list_of_nonlinear_variables_ = env->GetMethodID(solverCls,"get_list_of_nonlinear_variables","(I[I)Z"); if( get_bounds_info_ == 0 || get_starting_point_ == 0 || eval_f_ == 0 || eval_grad_f_ == 0 || eval_g_ == 0 || eval_jac_g_ == 0 || eval_h_ == 0 || get_scaling_parameters_ == 0 || get_number_of_nonlinear_variables_ == 0 || get_list_of_nonlinear_variables_ == 0 ) std::cerr << "Expected callback methods missing on JIpopt.java" << std::endl; } bool Jipopt::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { n = this->n; m = this->m; nnz_jac_g = this->nele_jac; nnz_h_lag = this->nele_hess; index_style = (IndexStyleEnum)this->index_style; return true; } bool Jipopt::get_bounds_info(Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u) { jdoubleArray x_lj = NULL; jdoubleArray x_uj = NULL; jdoubleArray g_lj = NULL; jdoubleArray g_uj = NULL; assert(x_l != NULL); assert(x_u != NULL); assert(g_l != NULL); assert(g_u != NULL); x_lj = env->NewDoubleArray(n); x_uj = env->NewDoubleArray(n); g_lj = env->NewDoubleArray(m); g_uj = env->NewDoubleArray(m); if( !env->CallBooleanMethod(solver, get_bounds_info_, n, x_lj, x_uj, m, g_lj, g_uj) ) return false; // Copy from Java to native value env->GetDoubleArrayRegion(x_lj, 0, n, x_l); env->GetDoubleArrayRegion(x_uj, 0, n, x_u); env->GetDoubleArrayRegion(g_lj, 0, m, g_l); env->GetDoubleArrayRegion(g_uj, 0, m, g_u); return true; } bool Jipopt::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { jdoubleArray xj = this->xj; jdoubleArray z_lj = this->mult_x_Lj; jdoubleArray z_uj = this->mult_x_Uj; jdoubleArray lambdaj = this->mult_gj; if( !env->CallBooleanMethod(solver, get_starting_point_, n, init_x, xj, init_z, z_lj, z_uj, m, init_lambda, lambdaj) ) return false; /* Copy from Java to native value */ if( init_x ) env->GetDoubleArrayRegion(xj, 0, n, x); if( init_z ) { env->GetDoubleArrayRegion(z_lj, 0, n, z_L); env->GetDoubleArrayRegion(z_uj, 0, n, z_U); } if( init_lambda ) env->GetDoubleArrayRegion(lambdaj, 0, m, lambda); return true; } bool Jipopt::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { /* Copy the native double x to the Java double array xj, if new values */ if( new_x ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); /* Call the java method */ jboolean new_xj = new_x; if( !env->CallBooleanMethod(solver, eval_f_, n, xj, new_xj, fj) ) return false; /* Copy from Java to native value */ env->GetDoubleArrayRegion(fj, 0, 1, &obj_value); return true; } bool Jipopt::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { /* Copy the native double x to the Java double array xj, if new values */ if( new_x ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); /* Call the java method */ jboolean new_xj = new_x; if( !env->CallBooleanMethod(solver, eval_grad_f_, n, xj, new_xj, grad_fj) ) return false; env->GetDoubleArrayRegion(grad_fj, 0, n, grad_f); return true; } bool Jipopt::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { /* Copy the native double x to the Java double array xj, if new values */ if( new_x ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); /* Call the java method */ jboolean new_xj = new_x; if( !env->CallBooleanMethod(solver, eval_g_, n, xj, new_xj, m, gj) ) return false; /* Copy from Java to native value */ env->GetDoubleArrayRegion(gj, 0, m, g); return true; } bool Jipopt::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* jac_g) { // Copy the native double x to the Java double array xj, if new values if( new_x && x != NULL ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); /// Create the index arrays if needed jintArray iRowj = NULL; jintArray jColj = NULL; if( iRow != NULL && jCol != NULL ) { iRowj = env->NewIntArray(nele_jac); jColj = env->NewIntArray(nele_jac); } /* Call the java method */ jboolean new_xj = new_x; if( !env->CallBooleanMethod(solver, eval_jac_g_, n, xj, new_xj, m, nele_jac, iRowj, jColj, jac_g == NULL ? NULL : jac_gj) ) return false; /* Copy from Java to native value */ if( jac_g != NULL ) env->GetDoubleArrayRegion(jac_gj, 0, nele_jac, jac_g); if( iRow != NULL && jCol != NULL ) { env->GetIntArrayRegion(iRowj, 0, nele_jac, iRow); env->GetIntArrayRegion(jColj, 0, nele_jac, jCol); } return true; } bool Jipopt::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* hess) { /* Copy the native double x to the Java double array xj, if new values */ if( new_x && x != NULL ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); /* Copy the native double lambda to the Java double array lambdaj, if new values */ if( new_lambda && lambda != NULL ) env->SetDoubleArrayRegion(mult_gj, 0, m, const_cast(lambda)); /* Create the index arrays if needed */ jintArray iRowj = NULL; jintArray jColj = NULL; if( iRow != NULL && jCol != NULL ) { iRowj = env->NewIntArray(nele_hess); jColj = env->NewIntArray(nele_hess); } /* Call the java method */ jboolean new_xj = new_x; jboolean new_lambdaj = new_lambda; if( !env->CallBooleanMethod(solver, eval_h_, n, xj, new_xj, obj_factor, m, mult_gj, new_lambdaj, nele_hess, iRowj, jColj, hess == NULL ? NULL : hessj) ) return false; /* Copy from Java to native value */ if( hess != NULL ) env->GetDoubleArrayRegion(hessj, 0, nele_hess, hess); if( iRow != NULL && jCol != NULL ) { env->GetIntArrayRegion(iRowj, 0, nele_hess, iRow); env->GetIntArrayRegion(jColj, 0, nele_hess, jCol); } return true; } void Jipopt::finalize_solution(SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq) { /* Copy the native arrays to Java double arrays */ if( x != NULL ) env->SetDoubleArrayRegion(xj, 0, n, const_cast(x)); if( z_L != NULL ) env->SetDoubleArrayRegion(mult_x_Lj, 0, n, const_cast(z_L)); if( z_U != NULL ) env->SetDoubleArrayRegion(mult_x_Uj, 0, n, const_cast(z_U)); if( g != NULL ) env->SetDoubleArrayRegion(gj, 0, m, const_cast(g)); if( lambda != NULL ) env->SetDoubleArrayRegion(mult_gj, 0, m, const_cast(lambda)); env->GetDoubleArrayRegion(fj, 0, 1, &obj_value); } /** overload this method to return scaling parameters. This is * only called if the options are set to retrieve user scaling. * There, use_x_scaling (or use_g_scaling) should get set to true * only if the variables (or constraints) are to be scaled. This * method should return true only if the scaling parameters could * be provided. */ bool Jipopt::get_scaling_parameters(Number& obj_scaling, bool& use_x_scaling, Index n, Number* x_scaling, bool& use_g_scaling, Index m, Number* g_scaling) { if( using_scaling_parameters ) { jdoubleArray obj_scaling_j = env->NewDoubleArray(1); jdoubleArray x_scaling_j = env->NewDoubleArray(n); jdoubleArray g_scaling_j = env->NewDoubleArray(m); jbooleanArray use_x_g_scaling_j = env->NewBooleanArray(2); env->CallBooleanMethod(solver, get_scaling_parameters_, obj_scaling_j, n, x_scaling_j, m, g_scaling_j, use_x_g_scaling_j); jboolean* use_x_g_scaling = env->GetBooleanArrayElements(use_x_g_scaling_j,0); /* Copy from Java to native value */ env->GetDoubleArrayRegion(obj_scaling_j, 0, 1, &obj_scaling); /* Copy from Java to native value */ if( use_x_g_scaling[0] ) { env->GetDoubleArrayRegion(x_scaling_j, 0, n, x_scaling); use_x_scaling = true; } else { use_x_scaling = false; } /* Copy from Java to native value */ if( use_x_g_scaling[1] ) { env->GetDoubleArrayRegion(g_scaling_j, 0, n, g_scaling); use_g_scaling = true; } else { use_g_scaling=false; } env->ReleaseBooleanArrayElements(use_x_g_scaling_j, use_x_g_scaling, 0); return true; } return false; } Index Jipopt::get_number_of_nonlinear_variables() { if( using_LBFGS ) return env->CallIntMethod(solver, get_number_of_nonlinear_variables_); return -1; } bool Jipopt::get_list_of_nonlinear_variables(Index num_nonlin_vars,Index* pos_nonlin_vars) { if( using_LBFGS ) { jintArray pos_nonlin_vars_j = env->NewIntArray(num_nonlin_vars); if( !env->CallBooleanMethod(solver, get_list_of_nonlinear_variables_, num_nonlin_vars, pos_nonlin_vars_j) ) return false; if( pos_nonlin_vars != NULL ) { env->GetIntArrayRegion(pos_nonlin_vars_j, 0, num_nonlin_vars, pos_nonlin_vars); } return true; } return false; } extern "C" { JNIEXPORT jlong JNICALL Java_org_coinor_Ipopt_CreateIpoptProblem( JNIEnv *env, jobject obj_this, jint n, jint m, jint nele_jac, jint nele_hess, jint index_style) { /* create the smart pointer to the Ipopt problem */ SmartPtr* pproblem = new SmartPtr; /* create the IpoptProblem */ *pproblem = new Jipopt(env, obj_this, n, m, nele_jac, nele_hess, index_style); /* return the smart pointer to our class */ return (jlong)pproblem; } JNIEXPORT jint JNICALL Java_org_coinor_Ipopt_OptimizeTNLP( JNIEnv *env, jobject obj_this, jlong pipopt, jdoubleArray xj, jdoubleArray gj, jdoubleArray obj_valj, jdoubleArray mult_gj, jdoubleArray mult_x_Lj, jdoubleArray mult_x_Uj, jdoubleArray callback_grad_f, jdoubleArray callback_jac_g, jdoubleArray callback_hess) { Jipopt* problem = GetRawPtr(*(SmartPtr*)pipopt); problem->env = env; problem->solver = obj_this; problem->xj = xj; problem->gj = gj; problem->fj = obj_valj; problem->mult_gj = mult_gj; problem->mult_x_Lj = mult_x_Lj; problem->mult_x_Uj = mult_x_Uj; problem->grad_fj = callback_grad_f; problem->jac_gj = callback_jac_g; problem->hessj = callback_hess; // (use a SmartPtr, not raw) ApplicationReturnStatus status; status = problem->application->Initialize(); if( status != Solve_Succeeded ) { printf("\n\n*** Error during initialization!\n"); return (int) status; } /* solve the problem */ status = problem->application->OptimizeTNLP(problem); return (jint) status; } JNIEXPORT void JNICALL Java_org_coinor_Ipopt_FreeIpoptProblem(JNIEnv *env, jobject obj_this, jlong pipopt) { SmartPtr* pproblem = (SmartPtr*)pipopt; if( pproblem != NULL && IsValid(*pproblem) ) { /* if OptimizeTNLP has been called, the application holds a SmartPtr to our problem class * to resolve this circular dependency we first free the application explicitly */ (*pproblem)->application = NULL; /* now free our JIpopt itself */ *pproblem = NULL; } } JNIEXPORT jboolean JNICALL Java_org_coinor_Ipopt_AddIpoptIntOption( JNIEnv * env, jobject obj_this, jlong pipopt, jstring jparname, jint jparvalue) { Jipopt* problem = GetRawPtr(*(SmartPtr*)pipopt); const char* pparameterName = env->GetStringUTFChars(jparname, 0); string parameterName = pparameterName; // Try to apply the integer option jboolean ret = problem->application->Options()->SetIntegerValue(parameterName, jparvalue); env->ReleaseStringUTFChars(jparname, pparameterName); return ret; } JNIEXPORT jboolean JNICALL Java_org_coinor_Ipopt_AddIpoptNumOption( JNIEnv * env, jobject obj_this, jlong pipopt, jstring jparname, jdouble jparvalue) { Jipopt* problem = GetRawPtr(*(SmartPtr*)pipopt); const char* pparameterName = env->GetStringUTFChars(jparname, 0); string parameterName=pparameterName; // Try to set the real option jboolean ret = problem->application->Options()->SetNumericValue(parameterName,jparvalue); env->ReleaseStringUTFChars(jparname, pparameterName); return ret; } JNIEXPORT jboolean JNICALL Java_org_coinor_Ipopt_AddIpoptStrOption( JNIEnv * env, jobject obj_this, jlong pipopt, jstring jparname, jstring jparvalue) { Jipopt* problem = GetRawPtr(*(SmartPtr*)pipopt); const char* pparameterName = env->GetStringUTFChars(jparname, NULL); string parameterName = pparameterName; const char* pparameterValue = env->GetStringUTFChars(jparvalue, NULL); string parameterValue = pparameterValue; // parameterValue has been changed to LowerCase in Java! if( parameterName == "hessian_approximation" && (parameterValue == "limited-memory") ) problem->using_LBFGS = true; else if( parameterName == "nlp_scaling_method" && (parameterValue == "user-scaling") ) problem->using_scaling_parameters = true; // Try to apply the string option jboolean ret = problem->application->Options()->SetStringValue(parameterName, parameterValue); env->ReleaseStringUTFChars(jparname, pparameterName); env->ReleaseStringUTFChars(jparname, pparameterValue); return ret; } } // extern "C" Ipopt-3.11.4/Ipopt/contrib/JavaInterface/README0000644000076600007660000000331612141450650017467 0ustar coincoinThis directory and its subdirectories contain a Java interface for Ipopt. It was written and contributed by Rafael de Pelegrini Soares VRTech Industrial Technologies (http://www.vrtech.com.br) and later updated by Tong Kewei Beihang University (http://www.buaa.edu.cn) The code is published under the Eclipse Public License. ----------- You can find more information on installing and using this interface in the Ipopt documentation. In the best cases, it is sufficient to run 'make' after Ipopt has been installed successfully. With 'make test' you can run two example problems. With 'make doc' you can generate javadoc help. ----------- Usage: If you want to use Ipopt from Java, all you need to include is the org/coinor/Ipopt.class file. At runtime, there must be the lib/libjipopt.so file. ----------- Comments by Tong Kewei (2007-11-11): This is a revised version of JNI of C++ interface of IPOPT. I changed from Rafael de Pelegrini Soares's original code. His codes are originally derived form C version of IPOPT,which has limited functions. I derived my codes from C++ version of IPOPT, which is much more powerful. I also fix a bug in Rafael de Pelegrini Soares's code on function setProblemScaling, In his original code the function setProblemScaling has no use to change problem. I added some useful functions in JIpopt, such as get_scaling_parameters or get_number_of_nonlinear_variables or get_list_of_nonlinear_variables. You can add any more functions as you like. Follow my structure it is very easy. If you have problem or you need me to add another functions, please contact me. Authors: Tong Kewei, E-mail:tongkewei@126.com Beihang University, website: www.buaa.edu.cn Beijing,China. Ipopt-3.11.4/Ipopt/contrib/JavaInterface/manifest.txt0000644000076600007660000000006610702557412021162 0ustar coincoinMain-Class: org/coinor/examples/scalable/SolveProblem Ipopt-3.11.4/Ipopt/contrib/sIPOPT/0000755000076600007660000000000012214537465015173 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/doc/0000755000076600007660000000000012214537465015740 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/doc/sipopt_manual.pdf0000644000076600007660000074513211550670353021316 0ustar coincoin%PDF-1.4 %ÐÔÅØ 3 0 obj << /Length 1240 /Filter /FlateDecode >> stream xÚíWKÛ6¾çWè(#5+R%7iФÙMŒsjz %Ú&ªWEÉÙÝ_ß!‡òz 7Ø¢è¡HŽ8çñ‘¾Z¿øñgžG4'Œfçîñ\)ÙÉ“éÅ›õ‹?œ™ÐÐ endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 1 0 obj << /Font << /F47 4 0 R /F48 5 0 R /F50 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 10 0 obj << /Length 2799 /Filter /FlateDecode >> stream xÚíZmoã¸þž_áû¦ 1ËwI»X´·ÛÍeïºÛ pÒ•m%ªŸ%'›ýõ!)[TèÄI÷n‡~’HކœŸêíÅÑOe2a”¤4e“‹ë‰ŽIª':Õ„R>¹XL.£‹e~<JD³¬-æöµÍYT·EWÜݽëëÖY—߸VQ­Ê¼Êë._ØŽe¾>fIdxñ¨h·<{‚¦¶Ïnéh²Õª,æYWô#͵G!¢³ )ŠÎÒŸnê¹!¾ºøn2eš¤B›§j+JcWQO¹Ñ¿¨¢g§ð`¶£kܧÀ—óó û2oêEì[ÛÆÅx”?¼ÿpÌxÛüÖÑµËæ®¶¯…{žÙ|î&ºdW'ø¦A§½B‹Ü};ÏÜ37G3ë²¢FaëÚÈÒTF`êDÕVÔ H’4j›rcˆ­»¢[ºþMÑe³2·-«“›M™­9±Ï“Ú•³_éÆg÷Ûn‹úÆ6ܬ%¬X}ÎvSuÁÓª+¥ Xp¡ ûn悦™ô'yÕžX΂ŠuÝãxn<ô\¡ˆ€7jérô ¦£¬$ŽØssÄIO{ɯ,ñ]nŸËìÖ¼ÅQþ©Ëë…ñP臵·ŽÄê¢Ý”]ëÆû…õMè˜eëu:3U^g¥Ù(ШònÙ8–þ6ïÑGpàìÃß?\ÇÝÉ´[kJâ˜ùJ±:U4ºnʲ¹³Ö€f»™µù¼·!tÜ9:+ %©*´”q)hoYU™ñVeŒ3ÏWcÑ÷n WÙ ¤4 5ŠVtÂI•â¨h0ŸDI界À>c”Òèm¯äñc¾‹%k. c–Ç;§XôŸÖ±Î@³k QØ®›Úº¡¶{åˆl‡qÈ!ƒëf]½²Ó3å9 å$á|2•š0-ì*ª¢¶´\N fÆÔ²„°(Ñ"¶„ŸœDlÈ’)Â9ȸ#»ͬ‰‚禫B¼$á’÷DŸÂl¸Ø²yæ‘È´§X…x("“d°ÜVÖ îêt ±t’Î` €ª-`ƒº û³·jÖ¶wÕT’ƒ*N£¿5wù­Å:°z¡¹{ðÅxᇀNŠÛÌ/ì0@ gn` ½àLOž òg‚CL;­tªIÊBˆ,hHïÎ’ÿ Š‹¯€5N§‰ÖzGDƒëµ¯ýw|TÅ‚ ït¹Ê¿Í)Ld¤| žë‚C2Ç¢#C÷ÏßÊñ°°œƒó²µdk…7,(¸0êMœP%øí…`cÔFYòÔ3R$Ú~¸ëŠÐlU ¦ ¨öe[LHãƒlK@E%êK!ÕÙ–ü}e[~jƒ×OWÃÌ'†…kéç>ßb )µçW*¥4‘ò½gBêaèÕžDMîtH²¨1üõœÜª`Xh aD!P¡äöˆ‘ꈬ´Û¬Ü`Y×ê{îÙ¼©VpœÛÆöã¾^ ŸØ’åC‡„ Ô‰AÄ.J,ú‘ ÂDJ|û–‰mÀAd-˜A»ÂÞ½‰á;ô׫fDs T£¾úFó1…[qKÔ{ÌÑ_/Ž~>ÂÝ@'l"•£O…Ì6“yutyE' ûò„©w†²Âm&Íþ('?}Ú=„=cø}Vßd-Þq×ÓS÷gsWtŸC¿;ç> endobj 8 0 obj << /Font << /F48 5 0 R /F47 4 0 R /F50 6 0 R /F15 11 0 R /F24 12 0 R /F41 13 0 R /F42 14 0 R /F45 15 0 R /F25 16 0 R /F21 17 0 R /F43 18 0 R /F28 19 0 R /F22 20 0 R /F27 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 24 0 obj << /Length 2731 /Filter /FlateDecode >> stream xÚí[KsÛ8¾ûWð(×DX¼ˆGRs˜Énj½“d2×d«’h‰¶Y‘(E¤-çßO7J„ ú‘xÇ““ l4ºî¯Í_÷þõLšŒQb©eÙáq¦4±*SVJyv8ÍÞŽž³ÉÙ¬h«E½?æ¹-ŽñWÚÓÒw4eÝTmu^µŸü?ÂlG,WÕ¼˜ù‡E=õÓ³®ë¼XUÅѬlüƒuÕžúÖjŸ™QÙ,÷Ù¨œ´èbÿýáÿ€qÖg\hA8ÕõL/Øhq†pk»õbÝñ†“,&e9m<;Ǿg¾]ËÆÂ"%ÏÆL)rO¦š/gÕ¤r¼ÑÑñY=éEñÍ…_ÁÜw¼£9=xv?ÌwKx»œ†á‹Ík¾±X¶(¶ V:š,êi…ä›ðüxK–÷ˆ¶I¡jy¾# Î2èÖÔ É‰4–G”Ð~M‰Q-xÖEöÇ‚ÑÑ¿Ëw°iêª>ÙYÇdz¢nñ²yœâlÌ%Âèl,%1,l»~(ËûC#Z‹n ¸îAI8¨) jRtr˜¼™w”«%Eò-COÒdŒ´×‰Ýx±«HìñL(v‘õF¡ÆƒÖµýæýw¸ Td<'A¨Üíd “Ù®Ku]ŠXúdjLºã›ßäÆ{“Ô‘p,Þ@¸âJ?‚ÝŠÌ—éÈ|ÖѸ¬£èhlt”˜”S"톯_’²¤·Ú¤)†Ð\ÜÙ^—÷BŽ<²lŒ»å&¦ÛlŒß7èL1ÂÝÑëôo¯ñum޾‘ÍIêËI”°ÂÀ´{˜¤È æÇ½qt o棤@ÆFÃjƒŠÂ ¦UDU÷Ð^¨íóžMqp+Òâ° >ºÙgÿOÑ´ÄØû¸ÏníÛR ÜnÙp^Åe—¦.-O!Æ88èv Lv³"±špPÑX¢a»»1ˆ`S’ÃX02Æ0?öeò¤h¥"¡,„¢vdò™®á΃Ø/Üá±6 Ï¥‡;Áø­º´Ç÷Ws±L\’sÓ_ÎóÔ¢5‘\Þ7x+¿)rùãÜÀcÇ}3í,ÓkЊõçž pÈoH/Ò"å"0±‡³’pâ,`›H4u@Ápçö‹ì7‹ GlG=Ù3¦tÒêr GPDk¬!ŠG{1im Í™úls³_À@€Húæ†nÈ%ÄM„Ü97Â(€2¹6‹—wçh9#F˜]G›§­Í­³>-}þ$™Ð}êÍy3.0ÌþH¤ì©Ù‰Ù©Ü$Ϧe½h1'YÈáaã¿eÓTEô•T‚Ò6¶qÈÇnò"‰¡(xp~#?y;z¦,(&wM…M"Î º¿kX:™hèfO`&.ÖóâdUÔ'(/øo{‰A|Zž³³¢ÅÄþM'ì8Uþ ÀúfïGÉà0§`5`'\Á^0?œ÷UHš_FÒôV¸7µð*¿;dÅo¥œä®Wµ1t½s8œ8WŒXõÙCÇ_y aÆ<¿2'Á”Ý6?'-?¢© •iUœ$÷%%z«¿ãk¹¹H‰Ôu’6îlkyÂ}€4ÌnNâsWË6×.»‡Q:×¶»rjÄ•+¤÷¨wK5)¶[ÝÅÓÁ³Cߘ•Å´én±Ò—<ÌZعØ#ïÓ%Ï÷z`‰28‡×1Óf 1ªíƒ¸HÁ{ÿ9Üû¸‡Ë¡˸pR3 ?\Ùl2ß{ûžfSxa‰K¯ÝÈy&¶ fÙë½?ö~uWßñyÖ˜¡W™ÌÁ÷uÈt™Š$1T1²{Eª\$Ç¥r"iXÅO˜šÐ††y$´Á„!ÛÚw’1ü{ÏNÀ9î'¹EÅ“!’ÌÁ,ñ¾LT/|5”pðcŽsw=zZ¢Á4zôüàé|óu»ª\)ƒ1£§‹ùrVÎ˺-Vþ–ßhGùõS$Þðøêëß_?õÍÓÅlšôÅÜJØ÷³÷Ý¢ß4ãÎýQ[ÿ]5^öõ¢nªúälV¬"uõ.Ðã*bÆ¡lDSWLÅ(®Z¦*ƒÏœÁ±•]‡¯¹éiW‘’t­,§DYð¬`—,•×úþ@}…m &^ ¦ž¡3ea>Nh˜²:v¥7P"½A2òŠá²x/Ê0r˾ücX(Šëkë¼m½y45po6GŽÁˆ<ºØþW޲²wãÊ¿vÍ]ÕÜCSlSqiç-àxÒ(¬ÓÎ[RÑ%”-¡9t„éPl1°ðEëûº_oó¡Ñ,fg!D‚.DqmžÝREӜ͗]9Ÿè¼€^;NËÉç`øÑ§ùªº\µU±™.¥Ì˪];±‹kÜ¥uë^ÖålÖ±é{-&ã½¼„Ô­v !ëãÅjÞ‰RA‡ÿ=xõû«CßDa4eéÿ¼UïQ.XzÅââ ø]¤»ñëœkþM…pÙ¹Š”s†É É(pw‘13©˜ ? ñCžUu1xÈCü.¬p¨P(ð4ÖÅ'ßa6cºß.ZN»×[ÿœ>Ä`¾=­šÓoUsê;ŽÊv]–a¢Þ§dø×¥æ°±,VżlËUCºâˆ‹u >OÏð= l–þ×£GhÌ‹¡«=uüJ8 uø¨XÂ4úÖ­ïÁ¨Í=™NÝwQØnó@ª‚ßLM*ü{úìà ž}ä¢ÄvUTu üsMê;‰B1'hD5ë}Ö«ª-§kÏ4 H J…¸N3:¯ê„!e¾Ž"º÷²NÆdÂížÞÀãëÆ>¯’g=PFÇŒ¾®ì8–>8¢¶è•3šœˆÜ¸J7Ù}7¤%àÐðº«ò†[®ñú Žˆ| ž¼g2Æ<:=½%?dZÀ ‹| =ÊáŒ1„·`"™¯ÓÅf®”úk¹ ˜@ĵ ‘˜ãç£ç Üš'=£©Ñê X­…-n‰^úä£]r‰u¡ 4^> jûÙ%èvQ9ü–Ï*:¹qï-ü/N̺+$¬0s7øbÛ#dË¢ù¿êó3Wqãõ¿ø: †¶Vv'ST4ašÍ§£o0µöéò·£¿ýv˜þøõCðîëW»ýúõr)BÆs»âAI÷y©è.þÅ{ ì endstream endobj 23 0 obj << /Type /Page /Contents 24 0 R /Resources 22 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 22 0 obj << /Font << /F48 5 0 R /F41 13 0 R /F21 17 0 R /F15 11 0 R /F43 18 0 R /F42 14 0 R /F24 12 0 R /F27 21 0 R >> /ProcSet [ /PDF /Text ] >> endobj 27 0 obj << /Length 2393 /Filter /FlateDecode >> stream xÚÕZYsÛF~÷¯à#X6'sJåÁ»e×zËqTn’ª$ J¨M€¢œ_¿=Ž!‡’¨(‰ò Â`ÐhôôùuSÿš¾úê=§#‚‘Á†Œ¦‹¥q#FRJDM磟³íø×é¿zOùH!£°#4Ⱦ1!H2é©î<'C~Q)Fª…§"bH%‘€ ì)~Á§XqD9k‰î¾OˆTÙ>ÅŽD´ð#ã ¥4{ØF'& Õ}ü9:KðâHQ2bÈ㉦i}H,F“Ù}J¡OUÊCJþS‘R™FjÈ '%óË+•’ „"¼%ṳ́tÖ²Ó;©&tè$çƒcDNaàS¬f œaÜ}ê4Žlþ?–çø±<ÏOÕ<Ÿó—äÆ1+ëÆº%r:‚˜d#Š´ê$¦2õ… F\ÀábR‘öqféã ib¿:uÆ  xeäã³”Þ\ø¤íI™8pG8Ë}G¢L‚Œñ‰f÷œˆ!ÍÚ…êóÓxܰ®Ï²"%µ.K£a[Þà/–g~¯<ÂhxŸŒ>ŒÕçåÄMÚ)1= Ö,>JÑe4áÒ i3 5`ýà¢ÖÀ‘‘¬¹)k»¢Ù^Át]6eµNÊ"ÿшˆe×H÷‘·©‹uS·2^Äùõ6__~{µ[6åfY[ÿtVmë›j=/Ç$[_û'MuÀ¨ø¼ËûsÆÒ3"ëƒ$idP¤zLÝ#â™l 2™îƒh¦ ­\Öx¯ÈÜtaöOá(…‹=Td ÒQ½M©ˆiDÌC.®!¥w9ôC²J ¤ú/á$D£ÂÚKÅnûXÜbµs÷¶L\>àSXœ Þ¬ i÷dPÈKSùs´ð´þ\¨èÜ®“0B²$_4ÈæQAHP0ÖqH¼Mè¢2â1þŽõ)1b:àÏßüÕ:M5#ÖCjF,[²¡20TTª¸½FqÚP ‡hâ±Q~H}ø„2}Ö›H*Eš+!)ÑÅÕOIXKî;:ܺCœ“Xšt–¶0ƒß›¦(ÒtZ>P6¿ê‘âȘˆÙ1ïŠuS‚îþ2ß‚ÀÞØÛbÛì¶Wn*S§4Ÿ¡<˜_1*ýíb>&Y±-o·W…ÙÒmY퉰:¼°t ÷ºœžzönìè)¼f'J1çþ8ööØVÛ1`(4ž¦²ÿTûâ¶p;à6Œ +\"ãÔ•³¢Ù,¯í×ìr¶V¹õ$!³«°Q®› d¬&‚Õ,ño¥€ÙõÀb(«e¶iUôª°»-›Ü_êÈ|–ûz]´´'¶Ó¨áyB¦(îò•û0t}^½Œús¸|Ýø•S(<Ú …“Çß{Ál¦{íuµÜšáQi!_‡˜ëô Û0zVƒÒ†£{T‡¿N³ÑüpPªï\|^v^øDSÅØ°õ4Ð:nèµèº¥]íµP§ç¿Â¾÷×:Ù p M4{HzIâ·P…†ïÂO.wÝHa“hóì›Å}êºS‚2蕜T„i‹æŒ TÖÓ“ÓU‚”¤€ %£íˆÕåJ•û• Ñ©Kã I¾ªvnJMŒql7Á/o¾ífýsåtiÔ?²9ß?˜— ëÙ‹¢wpK°-¯oO©g¸CZªÓckŽxßqJÎ ”‘Ú6§ÜÙ8Ùá“1FΚ+ý±ÓçyéÉ£‡1v*Î`)EtÂwŸ‘EÌ݈öݰ÷©j oÇæ&o,~À’ù,ßÕa„Ï”xxàq.ožåKï!ùÜæOÂÀ/nÃ#û5îËÞ.rÏåï®xaÞø}ÿ°h³§-F J}ãé¬gÛÇPª¾øÕì¦È7þ¡ËѰU]5¹+­aÊtF¦Ky©ð´H4Ny'Ó#©£In]@}nÊ[ø+j[a1É~Ûâgc*ȵ 5€NØ|wñdqGÈvù®ýQ¨=:À­Áï%³<<ŸÛä¹*×aßc-Xä2ª;€\”jÕ]º`a±âÏHäÑ”l†r¿ñ £’£Ë›d­çš‹Û-¯9 È^Þÿ[†°óˆÕ³Öz~o­?U½Œ¯^ê(<ØQõ"öÂ¥9j˜ôé3à<·½ƒóεÑCà@n3mëï1ýÿêüº8Ï5¢˜ à9c-Þ`Ù¢Z.«}À!¬…Ý€õj¿±tPÝfÛò*ÜÝTûžÿªŠÿ©CKЇ·Ëï.§IÈö!¶,¯¶¹KpÀÚE´]´…\> endobj 25 0 obj << /Font << /F42 14 0 R /F24 12 0 R /F41 13 0 R /F15 11 0 R /F48 5 0 R /F43 18 0 R /F50 6 0 R /F21 17 0 R /F47 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 30 0 obj << /Length 1426 /Filter /FlateDecode >> stream xÚíZMsÛ6½çWð(O"X À™^:SÏ´é´ž©nM´%7œ±¥T–“ôßwIH)ƒ$øeûЋ‡‚—ØÅÛ`ßJ?.Þ¼¿:œ9îD²¸I ®Dd`d²X&Îî²õÙ_‹_Þ_(Q¶•– nî¾{‰aÎð‚æ:QLsí 7¢7æ¹áÇ„±‡aBc z«·¡üãà`X¢-Õ€ÜOm«© çûŒ·ûÄ5@ƒ˜Í¥ÆA&sá˜åß¹…­˜äòöyh2ɸ|\Ø.<(hœƒàh{ M¢™Òª=sÁPš¾˜¤dõölN>"[M2‰²›WèâÆòzž2³dõ‰sÞJÎ/‡„¾µ1à ¼dõ-ÓØYÐé\p`Z`•…qÞ!Ì3#+Þë·Yš 8VB¡÷ÏTWµÜ0aU$ª…Ohc^­d šÖN©hI뇳¹@œRÆ­Œ£ t™SÅ jªˆ‚"*ˆöú€(¯;í->„}™µ”ipÌ€ó¦ß²ÝgJ•³¯é6K¯nWÁSÝæ0–EØ’¿f씬æÆ6ÎùŽVäÄ,]/C!P¢Pu[Kð5ÌÒk%«Üaå—t›Þ­v«mLËœÓm§§ ‚9ÞÂãüÆÎÎæŠ»ÙÙúzåøùò÷ËEþ¨fË qª\ovþa™Ýï²õßÙýòo¶gÂÎ6wEA3¤³Çäç2%÷ÅÎbZ´fö†åÃ5Eêÿ¹úç!Ýe›õýaÒtçÿAG!|?ñÔÌ¥iO;9 ,ãJ²0”}ÁŒ½³›²Ÿ;Ôe‡»Ï“æœ)UMÁ‘m)©šSö©ÚOoý‡¯éíCø¨É/ùRñß º<ŽVª¸-GbZ =rƒqà ‡½¶Nט “ù@ys…®dœS%¤ ŒS6NI¨bÊ”uÄ`1¥z‹©gˆ ¬¦„·8US2­—S™F;šœjUS²]MéV5¥GRSØIM©‘ÔvRSê¹ÕÔ‘-§Ë9U=üê£Îöœ½:rö¤Hª•vqâ+\D4W‚ªÊ:ñ…c‰/Œ_8¢øÂ(ñ…}Å—©auLƒ®²àºtÌ)Û‡-ŒÅcC8VP\íRWèæë$my’Ý“e&œ”ØÏ… ôÅ„B2LV<Ä8M©åpÝ8¦­Õô² Ô8šþ<\zB¹ºwo9¡âŽl ÓÀ+~ë­.6ûzÜ›çÖïü@!]ò‡þáz³^f{Å“N½¸:W¤T¹ZS-Iá%j l¿ÕY9qœ÷Q'éõÅÝêq½§èè¡c#¯iäÔ× c*¡¨:Ö'¥‰²æRrTÕÚji¢j«ipfß,5ý™§úwçåkd^ƒG5Y£9š-0 [ôs±%¨FS]Ù2ÖNÅ„‘ÓK¥ T £ ãZW S·(KGºî dìõ6^ê&BÑÔ„ŠtM{‚bG¦5ß‹ãÖã­¦Û6ô—€ÀU°÷u0 ?¹¯ƒQ}¹¯ƒQ}±¯ƒqÕöãŠ«ß˜Ž¦ÑéKõÿû:/Þ×ɳßDàt9W&ð†ÓY24}8 :.k´Òþ½Ê ‚$O…°‡@L<;|ðRðA|Šqõ¤4h©;µ‹ZÄÞd¦`Í7wZ>ölº‚(§F^=ˆjåˆ ÊW¢n¨(8ÓFíý½_9¼÷g èM¶ÿò›¦5ýˆŸ6Èѧ¥jmœ eþªM cÂVˆ‰Ç8È\t’¢uìðV„òæ§Å›ÿ6[Ä endstream endobj 29 0 obj << /Type /Page /Contents 30 0 R /Resources 28 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 28 0 obj << /Font << /F15 11 0 R /F41 13 0 R /F21 17 0 R /F48 5 0 R /F42 14 0 R /F24 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 33 0 obj << /Length 2412 /Filter /FlateDecode >> stream xÚí[[oë¸~ϯ0ЭYrxh œ¢Ý=EóvÎypb%1êXiìÄÛþú^¤H6%[–’´›<$"erf8óÍ…õýÅÙoÿ"Ì„Qb©e“‹ë‰d„‚˜(«¥0¹˜O¾d³Õü| ’f›Û<4®Š‡‡sf²|}_¬æ‹ÕM¸ýC¾Ý«Ð^oòûÐZ¬Ï¿]üñ:#M¬“)gDø€7¡“)³$²Vå-E¤P‰{òûe¬Íšh_ ÁdLªñŽB 6°bõF Iú!_)È0 ˜ƒ—¦~"\qÄQ\7hí05Ärt…ça*ů̖,ïü$Ƥø ¨šp\\mØWJiJ2ƒeÉ‘y%N™æDãÄ)SDpYò™j&ãçxÛ²0v—/3–0ôжÿ‹"ëe‹¶½DMqCÄ'XÃŒsŸÜ­ºÇN‰íêÒ5FqO¯ÅGIø¾ÊÓƒ%¡ßÉ|¨êR‘Ü­’ô^•ızÝ<½PưŽD  “jÄBŒ‹¿>Ÿ@úÑ+ OÎö3ŸÞË|£ §›Â¥¤òÍ#‹­®g˜”84Ÿ·®Pô^aòÞžúk¥c‘µtØŒšcT?¥DYqXÿS‹¯¯N8?8Y1>dáHTxÈòVÈò# +^ÌŸŽ±æ+ÀL¿ ÌäaƒNÝó9©"Ìø80³=tÆ»a ˜Á0³ýaÖ7 §AÇìÒ`T¤Ù¾HãÉ·OJ M µ Øxó0ŽâàµG©’ás*¨ÛÚÈ£²íÈÄ5eŒàë0r¡q°üé#Uúá€2X1î¤_5°b|  H¿b|É dðš’ñ˼û„T¡–=Ñ’;ÎyìŽsÇóƳû†ÕÑa:J1övÝ{`R“* ,i *} @ï(8Ìchõ¸c‘#ˆÚ(áuÉ|7Kêszçéýxz€×ÓCsÛ|Š µ­§N.ùÄá ‡‹õ¢g¬­Vx4å’0¦ZÏŒ´ß‡tõ†ÛÒWÕe]ñÐÕîƒj‘I¹s,̯ãã•È»·ûJ¤yIƵW"_©D·ÂÿñТ@Ühm±˲tÜÞæáLúÎYõ‡ÅÍí&4o«“ìëÅ<¯N§ûëÃì"ôf›*ëbù¸Y+D–Ô½’±RBt Ì1ÕR°ó)CÉþø÷Ï ó?­6ùÃõì*O-çƒÀX¦Zch1ÈÛÉæZëüÊñmî®6Û.–Ëøóm± ­ª±)Âõq]2ÔSÌ]YTûõ§Ï?~¾HIæ6àP¹óæ6èèñæ¶1°P×ZT õÝ/æ9Ÿ*.³‹j9嵚} wǯ æÁÌ€aBhÞ °wùæ¶@+rK³ëâ!4×þ× KÑ"ûMè_æW3§߉*ÅÖl¹,¶ërvüµˆ×Ù¿âøÙüi¶ÚÌnb·¸.Éø,Ëš]mÂ= ˆð°Ž3×@Ëe»ð‹›#ÎÊ@W[Þ^<Í6‹§ÜãQFOTY•]þ'ü1©²»bž/ãÇ2[ÎV7(*ª›ƒBuÇQ•`an¯üjÝ­yú‹ÈxûÛ‡Å&op¬„º\æwqÒjG&„ÄúJé¢{E§sÈß‹,Vå§%¥g.ëMõi óŽwö狳Ÿ¹÷òèî½Á™3 wWwg_¾ÑÉCö„c©·õ#ïðnôd9ùçÙ?š”§ ‰Fwè æÓ= ñ{™#(Hjý©¡ …§‡‰¡0~¸ç_ƒtá´ Ö}TÁº)D˶IÑŸÆ÷îK$Tk%®DQÁ2†øw.ݺï.ëFo“ _Ü¥ªï¾k…hhÔ°E QŠ¡°.’uß›†×}3? ª¥²H Ók™¬å¾.áÙŸœºyÐ:Ï®ÝEd‹Ð[U¿Á{‚e³pq¶PöîB/½M£G®Û­%°\e­Õ›F ¢ K”¯Zèr+;Åé–iýJÊö]Kze¢J¯¸~ë€ìþca#f0•u—£Ìf bzÓèPî‰xYÈŒ¤ 8R w:b *Јb0«‰dÃ,ÒŸF‡c©'{öa+²‡ÉàhÁyñrnÆÞ*\fáæÒ)ßzƒòp“‡éϽ»ÐËCoÓèáHƒ¡ãɳ~‚Kï¡÷.y¸´;=3Ì8H¯½i¤ó’Æ4ÎŒûB6Vün-Òo=˜lIE ‰ä¬ËÕ«E-a™^Nùg²:fö>^¬ˆKT7ÈWA]%†©²/‰M*K¤f#hÆÖ$;¨IaШ@£ƒ» ñ0)ú’h9Œ+â-õ.Põ>Jؘ*Œ2Vû‘Ï7/Ãe.y²=ÜöYÙÖÙ˜ûyxqሉ w­îSÕK–ÂÿôÿW8sßF:Zû°†5ÌÊÿÇŒõ¡˜ì.®Ô‘.{ÌÇ6w%³Í\H…â8õrB,[iW¤sß4ð˜êM#Ó­… J@ÅH÷äTá–i\NO{'Æúç×FSÅÚ¾-ô¯ÿâÀ?¤œõÁt9"í®œP^q£Nû! …‹àú‡ê “g5íãÆEX²ö¸`‘Æ ö$Ða=ÊQ¢ƃwg<ƒ“æ½I´Ðhœ'ÿb HƒiÍ€˜=•x2Å BÔŽ©8Ûþ ã$0Q endstream endobj 32 0 obj << /Type /Page /Contents 33 0 R /Resources 31 0 R /MediaBox [0 0 612 792] /Parent 7 0 R >> endobj 31 0 obj << /Font << /F48 5 0 R /F43 18 0 R /F15 11 0 R /F41 13 0 R /F21 17 0 R /F42 14 0 R /F27 21 0 R /F24 12 0 R /F50 6 0 R /F47 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 36 0 obj << /Length 2948 /Filter /FlateDecode >> stream xÚÕZÝoã¸ß¿Â@VA7,¿?ZÜÃõã€;\{[\€>ÜPŦ7ºÚRÎ’“MÿúÎp(Ùrä$>û¥X¬F¤Èrø›Žóë;1ãðOÌ´c^Ù™ œigóõ»Ÿ~æ³|ûnÆ™ ~ö˜F®q´eZ™Ùjö㻾ûu`a¬fÂê³xôËpšñpÞ*Neñç›wøF»™à,ð f7Ë™ÌØ¬ãz³ŸŠß]]{-‹æêZYÜù…H$2G"ŠŽZ‘‡aHЮXBËèb‹Ä5‘9uvÔªˆ4ÔY_ý|óÝ»¿ÝLèÊ8f9OY'óHÚ2üP[Rͬ•ÌxKÚZ_]k‹['ìR›ü¾ßÿßÔqƒp~Ÿ¥…5x\lb†ªð"éÜó¤sh-‰ü‘ŽåËÕµ…À>]|’‚Û”…¼ºv"¿‡¯&äAò-ƒÔÄ \ñ§ãÇ¡“ò¼Óøí,úEHÍœ?'óxÁ‚d`NØIÐîT:T§“ @«¥VG­ µJjU£‘µÚãÁ=SgªàTSV!™ôÀJ( ¤Ü¤0Éø…Mp†Ö/ÔŠDæÔ ›ôIÜ+× ªc{5A° ÎÛì9<úe8ÃÀ€ÏZÅ©,tþ@åà4ŒçLg§@²:ù à+¤U¼°ÙåÈÑdxÕƒËùĹštLÌ›aÐàtÐo û°ªPS¼•gÁúßÀ[ŽxË‹òž\©€xàô7>ÅMÀYYÙÂЖ° OPFðÅ=M„Ì ×Oúj’¯b¼FÂÑ_˜\®1Ÿõ™è?™ÇqàYÅ‚3#äÉyÞÊ‘¦dzÞOBQ0õÕ#ÝÓÕ!…7~ÀЄXªêµs–ž ÐÍÅ`£YÃ’Å$H$æ¢Ñ’Ù3SÊsxôË–AØ:o'ó8˜ X£àfÌΫ⯥R$‚ù•Ò)øB«¾n)Z箊‘"qá^{ á.å¹ð\À“óâkðÂAxÞÃÓ ©\Êxö!éˆTDò·šÈ÷.¤ošÕ¸(™&@zxG¤"#ƒ¢œrê’rê–HD±ºx¼º†˜ ë®Ñr”Oà+aYï É FÛ€ŒàY§g‡OÚOÛâi[·%9Í·î…„ÅpH’Ô™=™Ç Ø;µn—³‰Î¶º!‰$$eakEäaOg¢ÓÉIêœÍ)·žS«¢Ö‚Z‘Z5µ:j•DVÔ¹¢Ö¬Ì›´$P2΃ÓYS«¡Ö\‹rÈE*‹¤Jlj­ŠÈr¯•îc{ßò<ËÁ<$`#ÙIw=×wÞY‰DZÂŽÂü1Sü<q:éÌ•ÃPÏ@Ã,$s%KÉ1“ûëôÞN¹k`æÔàÑQ 2¤ó‘¤ I‘¤'™0æ Á‚’fÔêžë€—–­Õ‹ €|Üaä;Í…©ŒÐ’èHñ)MòCÄGí ñ²ç™öé<¦ïèÁ€z¼`~8QoQ£ž|[Â;<©¿ž:K ñgÈúð,]ÕéEÐ5NP`d°‚,F$Óv ½±5\þ_9Â×uv~²¹pæÑÌã¸WÖÚ§ìi±Cñ#Fe2'EXù¤n•<°7ä¹!"mˆ4DÒÕ“&HN˜ÆÐuôD¤ƒ%œy"'ó˜öL¾kÈuÐ;Ãä²wù+ ƒçŸB1gÜ w¡p(aåî•r&¸[ï¦ d3õ2šÏŸ«M0.õ[8`äFMñ#î¼e §w¢.&ܪäðŽZád‘ü—f1äÅ÷UÛUõgj¸0)ȾþûÇï©g> \6zù¸¹¾hnWqg©]g€™v~ g ·2õ¯+*ÃJç‹yYÓKÝ<ÒË=1›Ç¸ÀÈ?ú°nÕò‰Þ»»<¿¼mzV´0üšg”‹žE?¼ªaÑ벫š^,ˆ!A»iÛ¶‡ëÈü5ìÊ«¯í·øx3…keh7cÄ󛤫´òª%ÝhëÀ‹;P[þ1 6i]ô†«B:Oz‰e—G¤=á˲Y­šÇtbØl·KW?ù%¶ ^;]ÜÜÅ6¬V+z»Í=°ßCYÍz½­«ùsau³®ê23(ë<ï>nºíæØàÎøxKåjÁ9( ééÊü ã¾Ü”ëØÅMû: ;'ž0¤\µ i›u¤¾¼vì‹›‡Ì¢lé#^ÏËÏYPÚ tVõ¢ßÆÐ« ::byWÍï2#ÒðÁ ËMW¡2çl{{¹˜:oê¶Û”Uݵþî®ìèí1ö±hŒ 6u׎²&‘Sý6Öw§˜öf7 f”:1¯˃<ÆŸX)•²íPKÏÓ9Žñ[\D,díÌq5–;]ŸH¯½ Ý ÉÀYÈ¢ÊG =t¢àNêí:nòA§'÷ð•ǧÃÙÇ’$;À±=ŠÁhŒwÅ·]žSþ'fÁ;,ËbIŽjM-‘7dÜè„Â*ÖŸ»»OÜô{#¯±Á¨]R7•Âö ŒF|ÈÈB›!èe¬õëÄ÷uùD/u“qy›G:ïѧàžÑÏÿ£éâ!Œ®Mš°ˆÙí£1•Ze n <*Ï$ô¯Ñ • Àkõ0†I£/bÀ /Xo2€ ˆ `_®x³(Qô´­ÖÕ üUjæ…y¸#¨¡Ê;­R Z—â2›“ îõ›” À`ÂØËÈ5€ HÇGrùó1CiÃÅí¶ËšÍ4å!©#Gެqò(ð²gØLIÐhÀÈå@»ìPX¸Î)’‡ÔÈ»qPÉÑôZAƬŠamKõH€Þý0Ÿ{îší*Ϲ+StìSŸô¹\Ç=†™MÙNaGâ/QV¿ $sRΤòÌ‹pÖ!* !˜ÄËö)éðh˜µî"rµ„üTÅÅŽÙËéð0R|À”.LJÕîÅh‰|}| àp!ý qß"xvïœTÿûâ+ÞûR{ç=›Ô8!bS‘ §¥¾9d€O¦@,]Ι°'Ýs€Ž²|Bè€/:à=Eùý»dŸšƒ»Ãîúh8áîJ¤Ü“AÌ0õ^°G+ù.Âí¦*ᢙ¡;í¾Ǻ¹|%öq°P¬—é÷—³B\¤—À Ü&%ôÁX9s¹Ê0‹(Ø—+^ }Ó–,–cü)¦l<“V\Ä–·’„Vu5QX:U.!ËÉ:Œ…Ò5nò:o˜ÓþÀ°<]F¤Wég hÒõ“ºrvY}ˆÔ¿»50Û»m¢ó¼ˆì3û0$;Ü9ú•=NþÌS5þùïÁ#NB0áäAh‘pРr¾Y®Ñ­¹Q˜f”t2-@y»Q_aÊã§cª„µñ¡PRÕ¤‰q1Éã½ÞpÁ1ša1ƒÃ½l™chPéF1tð# ï]H5Œî%7~Ô8½Jßš\Û"‚«ªsrü2”ÌzuœÇ¶-7O´tJö©àÝF×ýê9&f2àÚS•Fúƒ*}ÎI|½±¦>X:f²ÚSåzÖÛ¶£Q±FO9UÊ’XÊææõR–æLîŽèöiJB”‚ Ÿá «ÝýÜ´ÙNýù¤vL* èóà OMäŠsO]0+ÆÎëîäþß4¦ lêßS»øCË`>O±=ò‡AÖó«Úæ›4i¨ìrÉý­ 6!FÁ…ú>&á £ðR® ¶ÖeW=ÄÕu¥(ªzÜ*N¶£úô;îƒÿÔD­bŠÏ¶öŒ‹ å¡(ªa7(m;”­ÔPP¹ìtñ>/—*µ±mVyì2Å~òD©lÑôq{È4ãªÂ‚â®è{“‚µaqHV­ºýÐÙˆ.ª6Á¦w¹žqs·í¼±Œ‰‹ÃŠv.ÍJü“Aà~™÷ùg:×øIo\ endstream endobj 35 0 obj << /Type /Page /Contents 36 0 R /Resources 34 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 34 0 obj << /Font << /F47 4 0 R /F50 6 0 R /F48 5 0 R /F42 14 0 R /F41 13 0 R /F21 17 0 R /F15 11 0 R >> /ProcSet [ /PDF /Text ] >> endobj 40 0 obj << /Length 2177 /Filter /FlateDecode >> stream xÚåZÝoÜÆ×_q@_(4ÚìÌÎìGŠhÑHú¨OIdëÜ8äÆ>;NÿúÎîw¤´ä‰^¢Z¾Ñðx?ÎÎ÷ìò§ ØYù; &:¿óÉkq÷òþâÛïíîV¾ûzgKq÷s¹ó^þ;ãbØÝí¾¹øÛÅOc_’´ ?·OŒEzÛd»„·&…&!<ðÔ¨ˆ¢Ê û°ŒÞãy)Vcüáúâó/Y.Š"l‚Ýõ«£aŠd(…ÝõíîÛîíå¸Ô핼›p‡ËﯿþüKŠc —Œ÷^V~þ›|ËÅŸ®+‹ö΀ƒ¶E7` b7bÁ61VcÝS˜èÄ~iç…zì•ÿ«Ë«ˆÜ}#êܽWòjD|÷Z¹JöJÄL‰‚Þâº7™`¶d ¶˜0År§%åb*`”ô܇ ×÷‹€!‘DÀ*¹ÍÄw7Ê”ÛÏ{€³}£¬Æ¨»=Q½cI¨ª/žîÊM ÷J¹×Ê}¬¹¿¸Ú0¸Fñ/B”¼{ªÀ ‘E—`9a8%4u¤‰àÐxO—ãS±‰› W±¨Ö$ÝDž`õ<•Çê£?SNÍÑ8Gƒ ¿º ÝŸkš66Â3 8±1ÂWc,¸™¬/pø¯º™ˆØoãf—ó)n¶…<ƒ›åÿœ›q çB嬛­ÇXp3‹Æa{6ËÜŒµt°ºǺ›y“¼+"0¶f38bM–ÃZ‹XÝìÄUÝÌŸ{½-äñQ°ÂTž*ÁJp§ÜûYyÐ’Ôú¸‰àï&`uÿYê',…y¥Bæê?üä î~[-‘Ѥ8ëöèB ä.šÚT¹bA“.˜a[½I‘¸µ"á¬"e‰Þ6:eÆ †•ÔÙvN²b!ãX6£|#ÿGí±÷µÆûáø(~ØT¿Q’3L Ã{ñ…’»Ñ~}vï?ÀîçlaíŒA;Q î1¦|÷¢¸Ê›òù¾|>·¹- NÐN槇òy›ûš’ÊÍ™dN§Ã‰ƒ’ØòÅ»|ÊJ>EÍoÎ9±?(² iÎE)Ÿ®-6×cÔËyJ(XÑxÏÇýœX–s9¯Ç¦$ú!|>^^y ÒáQœa:Fäïj!+ú€ãNn=Xó^Àñi6kfè•æÌ®Oy;>ÆÎd«…2VK¿ËêdóYÁùPV×dÃÕ 6 (3ƒ ñÿÏ„,]“o ÃÕ &d6!µ„¡ûŸ±¡UÚ³6tÒ¡ac6` b€´7©Ñ•VcÌ—g‡Ò !ŸNÒeZÿ}.`eêFè«hU+“üˆ{9án”Ë/i±Ôé¨;?Q‹ðéâ åî”Û+ÉÇò–JmIJ›v_ÉÅî¯ù#O+Vÿ¼Îå9>:×+¤\LRæ:¸ü ƒKÞ”ˆ~au>qÂYQ*7úØjŒ…³ ‘N™EB'o&Ô¦»•ì•äíã¤!'Ük%Ž· ¯ê°¾OìG«\~Çj-Ö ÖÓÎû³FsR¡mŸl=FÝ_YÚ1$kõ¡*IˆÊKKò)«Ô}ù{|ý_åú¾æÍ^d8m‘gUDÐ\k‹Î…{¥ä 5ËКË5꾓Tž=³çd~-ßÊø=4ϸÉUnŠ2—-Ä$‘Ùµ™£cÃbyÕ¢IŒÕ 1dE®Fï¹Ñ䘅&Ç,49féû#¡ãý±ä|ƒ(ÉÚL±£¾!„’?$)":º¾ä¾ø´p?*·WòR/ò€¯¯ÕH7ñf~¹ù˜Æ óŒA vÆS£ÖWcTŽöDëʹ6wz»Õ“¾&D%g8Ûù>óàdc Œ³íC×^äÀ’p·t™ÏChÌH ƒ–ŒsmÛÙë1æK2Ød¤[ßz`ŽÛöÓà ,† Gu¬‡s^· ¾kš†%6qô¼À07®Ï¹Z ¢el2ñjˆÙ<”äÓM+Ÿ[HCÕh”$ÁÄËÑH’8ñyýÒOI±¿»’tëcÿþbôùo8!0 endstream endobj 39 0 obj << /Type /Page /Contents 40 0 R /Resources 38 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 38 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F47 4 0 R /F41 13 0 R /F42 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 43 0 obj << /Length 2367 /Filter /FlateDecode >> stream xÚíZKoäÈ ¾ûW4Cd`]SÅzOÃä±@`‚ø¶»-hw϶dOæß/YŸÔnÙýˆ¬ÞÁ  ˆf©D±HÖGR]¿ž™™æ?3sQ%f!kå)Ì®ïÏ~úEÏnøÞ3­lN³Ïeæ½ÌÊY?[Ìþ}ö¯³_7"|pÊ÷ ¹<{ó½K3£UÖÙÌ.ogžT2,Ê+çÃìòföSµ>¿`ñ•y{~‘R¬jæÈU-ÿrùÛhbuœçw)Æ”áÛŒS¤©ŸÂ2s‘|%¾¦ê¿,ºêOòìÙß/·ÝÛ-:¥ó4³½^D¯„*x?M‹Ñ2à¼8°¸Q>äY¤|ê¼÷‡ó‹˜lõ7v”µÅmLn…¸jn¹¹—u¨梭V G„#"¹T]±h/Oóõ†¯ZWïÎ/8îË•G^ÄdŠ8eLH 2éî-Añy.÷ˆd0k*$]ÝÌAxfæU\Ës^´1Þõ™ÔòZW}>¿°Z˜²è´¼¯,—X­?2É^Ä'~ ÏYñuY®­\±,]–¥Ë²Œ,‹4ž¢óÞuFM ±"D† Êx³‰Œdrq ¯t Rƒ” (¶nò¸™’..qű™`}3ñE‚K˜›ƒ»Wƒ[‚kÁ],0¸÷E0Æ•ØÆò;çÜ Ü#ˆèb£H!ä²Å›ÂÍAn·8/šmÝëž“×j‹(Ï%®…¬Ad9öƒ@ 5Hƒ)jS1MDˆÑ2J<ÃdRšQ&PVÑt!,»!\àÿ1¾,ÿ7»Ð›…E»x1åâ‚!C°•Ka|²píKr`ðÂsQ:›ƒ°Š¢åÿö¦7“’r& ÐàÕ]J“ø$_`ˆóÐÔ£“²]:VÄ.•=ÇðÚÓÆ¡)”Ü d+áÎWŒ/w¹Rpa“‡Å¦ ¼10 s È ƒ p µv•èÕLæ³9æÁ£6›"£W#ru“¦i1VÄ~LöIsH>A2Ù˜OÙV’u¤²k"’5î%§K®—2’— kpË•l'\½L)ovâP(œ+YÕù"q#SïAXÇ™‚ÁŽ Óàñ ·×í›’áSí¨L](Jš•<2ßJ.0²AæèUBvpØ’¬àGp5È~´õ>+í&†Ùh<¬ÊÑ?Õc\Ÿü£¤œâ¹@(ZR_Õàdë$»Š¾ƒ]W@§%°jNòe—»jr¶–‘ª#GA(µL1¨‡}§•QxQÜe*2 2¡ p´-á{Ñ£nˆÕ>Bæì¦È’IÔÛë>G*L,êÇËØ,£·,+r#ï-àšb±ŒdõJ)0ç­žF¢»E¬p ¤éJ®e?ø2ZR¼ç‹"Ñæi ÐFV‹j:^mq¢ÜKuBVžívu¸ù nhc½«™4^é{«¾•ô{zʤ²5ýLƒh;“Ø_¬Å´h› £WCçcÆ<®Æh0‹[óŸ «K@èÈRˆ/sG¨µ©Ì$*„p ˆ€?š¶ Ôu©´…–[Š7覮áÝ;+% àJÅ¡w ^0_ ¦\¶Êêi3^Æ~˜r9)îp¾œMœu'Á©Áª^ T'ѧª>æ«"•‹AqšŸpdôj}ÌšÇÕ-c?R¹à• nëkWªÞË-D¬EAl(6WƒÁƒ™7òí)–¶Æ"À, T¾÷N‡[þòeD à%4Ïò=­<€ïOÜ=¸\;àÖøÖõÆbª~Ö^J?ï·÷€¦dʾå™üèÜr\æ‰a4ZÆÜr¼ (Á-3€-nƒ½aÀ)¤Æ½e?¸¶ C&s<µ¼bTÍq¸¨æIIßÁ–î¹°•”ö'Ò'Z¥Ã3}Š,À=ìÕ‡¸¬ÐÚŸDâ²B?Ôg7Œ:•S£N>ÌjÄ€®<¾NUâÂ3LD³ 2z5ŒaÛNû&1^ÆPåyÚçÉ-k¦çEí-ÒEZi›²l»Hëê¸p¼H³™Óv¶“ì:^Æ~°³9«@§i&iR‘&š$²')Ò«ze‘v}º"m ÏIÛI:V¤ÙÈõ¡Ÿ¶‘§ÈèÕæ˜5«1ZÆ~<±!pü»ÿ÷“´?r×±ib䌖qª]?9Ðç•ýä)ôéûÉ>'í'~–£ÈÅæÄŸ“§ÈèÕl,3í¤Ñxûa”8ꌳO¿k£2å—bÂ"áæànÜõ€»'?w‡‹új®ÿ=¼×n¨ wn>˜Ù‚Ûd‹ת1N³ähûØ¢Q§1€fÍ&Ò‹)LeAHRƒ,ûÁ—ÐÁ²tE…¬ãD(ãínÝp9ó·ë ÷*h{E‚VÑ™¡"×xõê™E:} Yï‚—¸Ó ¿¬X^–›¸ŸGË8…ÖÃNŠB7- Yé4Q¸½œÑQx Eú(ÜVäÛ‹Bcí·ãQ8AF§†Éñ˜Áª1^Æä¦I9½•ÜLD3‰v?DœjBåσ5Í—3ŽºlÂáZ&Ò1tÝÇÒrÔxŸGLâJÇNóÈx»q[–åUîO 48•ÛÑ]àÄîæ¨î®s‡Zé¸ Çýqh¢?¬°U–ûä:Éùñ–>û…ÕØXäþ rCºá2x·ç8MÞy#M± {¼V†'˜`Tè«æ¿®njéuõã¼içË`è-¾¥½ûçû1r½™x»Z㟦^6óvþ8o¿`àáÓÍUÛÍZÝ‚¾_Ÿnt?,ê{ 0.ˆÃgŒAŠ(Î.œ)骨óî¶­»~í]€W‹«õ¼½»ÇøÝUƒñëÕý§EÝÖ7݇ëëºin‹/ç† Çïd<õr¨úT¯Û‡õÌçÚqµxhç«e÷±±Ú´«¢p/u¾|¦Ííj±X}†¡x¼¨,‡wNæ»èvvÆÃ­ûYkúOݼ-‰·q0\|§nbî÷Àoáà endstream endobj 42 0 obj << /Type /Page /Contents 43 0 R /Resources 41 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 41 0 obj << /Font << /F48 5 0 R /F50 6 0 R /F47 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 46 0 obj << /Length 3344 /Filter /FlateDecode >> stream xÚí\Mã6½÷¯0°fÈ*~boYì‚>ìbgNÙœéÎŽ·íívg’ùõ[¥¢ÜR›’¬ˆ{ ‚†¦$W=«‹%º¿ûpóí{§WF«¤“Y}øyåŒÒ`W>y¥5¬>ܯ~X??ìŸßýøáû›¿¸ùïYiúgV•®y´Y}z¼ùáG½º§{߯´ÂW_š'W¨ }Ú­þuóÏ›ï.•¯‚‹o”v—:“QÉÙ*:“SáÎÓæôp©Õ˜¨bJUÔeôõÖùí{{O6IVóȇÏÛçw·„xýù°»ÏOŸøƒ_¿ï ù½\ýeó´Ýü´{Èmrûåa·“§7ý¯‡þ×?öϧ§Ív’§_v§íq·}xjÅï^ZÙŸ·Œ}uë¬ ä ·Æ+‹N0_D¨Óëí^ZQIا¶§í/ÛÓorA0(±Dßf·Ȭ@­Sö:§$8èm§$QÆ»+œ²‚ÎÖ){:'œ²‚Ú³Svõš‚Nˆ ¢©£rÙlg_ :1(ﱎNKŸÑ÷uÞƒ ob½öåçw&®ÿM‘û«\i£ñìÁÙáw‡/MÀÐÇŸ/û|õ5–žËžn4(­«›k\æ$‘}j¸:‰ dâiW¯ ³uõžÎ W¯ öìê]½c®^Cgëê]c®^Cgëê]‹®Ž*Y³Ä×_ŽÇ+|}u½J&oGKöí÷þfðë‡_7ǯÁÑZ%?^v÷òqs<¾3ë‡}îÊBB~>ì(Ö¶ûÿÈ7?îóÓAÚ»íóé|äZ³QKÊiˆ÷ zºÛ~åø$«]úépúüFãþð¸ÝovrŸÂä%/´ô±Å{Kài{Ø#öØdÓåu¸så¼(ö¬*묺tT$=Α·`óM~‚1d/éIð,ÁkÁû__HÈiâœNÄX’A_Na ÏDnÚ¢±¦5”ÛÁ¸„<³ƒ(fËh׆7 ¸ó‰dye0ç:Éq =ÒVÚÇ6l)JñÝmŠW|sþSÎR9ƒá ”1û°ÌáfËq8HʧÐ:Ümˆiýw·ÓúIš-7q½—ñc´¡éé´>p×Òl¥É÷6Ò#Ò‹!¬‰óŒ—/PCM â“ÞIšmï‘=+²,…èvßüÏÿ7ÓÃÅFý¿oþ§ÛÑëLHlº¸“ÞIz[é{÷¶Ò{Þ“ôž‡gPÓ:†f٠Ζ12ƒ´’ƒÿ“2þ°”a)ýŽÉ/r¸ù2 É¥£šœÖ&O w¦Œ{ŽrÐ7M”Sï(½ô6Òû­”…’È`°õÍ_™c,ååÔàúŽçÐ^„ÒE<_L›~¥# !Aslsa´³XÿuØæ6b~YÏ—1bóÈ_„Z6÷)ölbsX+i¶b×£ôÒäÞ©°ƒq^yJå¥Ks+eoö%Þ5¦þˆ¿ŠêÕ6‰&ÖQQ9J¾zªóà_ÚÁ7Mã…®µ\ÚJ¶Ã’íÀ‡f—[chj)œ®´$­t‚:ª“UQûÙ¶Ã+mWô; ©ÙÕ×ÒäGÚ(\i;«ÉM½¯¢Új¯t¼Êtƒ|åíÌ®³e”bH[ÚÓ`<Òþ//L¾VFa…j¬L¹•)·2ÉV¦üµW¢ 5¹8ƒv~!ÕehÀ=¬_Eu‰j"¹8@Õ‘Ònkûªóà_zÖâp ²~¡GÐÂ8º1!ä ]Kœhñœs¯Ä8D™!Æ*ãŠÂ¥ IuÁ„¨ù«¾ŠjÔŽ"Ï]šec!ÖJÚ-ó¦¢w:lÈha€Ÿ2Ç4ŒÙ2F² 4DH¾V¶µëf‹)À2xâReÍ›g¸+'¡ŽjŠ"˾êAˆ¶5 šÎL›,åñq™=¿ˆPniÎêl#ñ” ?^Ü·o‹ûþôaÐ_ŒQfY2[ÄÈDÑsÚšYïѼ,¿ …V€&lABdM©jË=^šÇ{´!ríÃ2_Ÿ/cØ„’òÚýéë…©â§]6SsE /5\ô1¡ÖJc|ï]DpÍJC 'œ´b´‹Uà€I*RN×…cJñJСŽJ$ ô Pø) X­|9çE!hÛÓøQ¬›«Ù=¡ãžBìÞN»'§ý®ÒtpÞïßLG×=±˜HXË^ýÖËê÷{'†Øüð¬ >âì”w"müÐÚ:*içÇ_˜pO«­‚«¨ä˜4‡eÿZÁ ÿü×/[ÁæËH— ×Üø@Nr=¾Çe|¯2ÉÖáû.ºë ¿‚–ð f3~Љ8PIg¢ý$ÄI'åÃÑ1™*:­1”¿…/\ÍÔ,<é1_ÆÐ^†3^¤ÖÙõã2ê'‰\ªBý]t×S -õ̦þ xÎÔßÅ3Fý5tfê画þ*3õwUN•Á©pžªÙ2‚ uþËV&u^Sæ—ö¾wö)¢ñלmHÍÑ8c¨5qñ{J`Ïî‚ìžmðCo*1b¼sò©ˆ ›iÓ;éP¬Ói_Õø/Wõð«ä঎ ¸ªæÒƒ‹8 LÄБù±«óîõ‡ÍïUb[›éuËY±}dß^, bs>ºdDTÞÙKW!Ãõ,ä¥(TBÀKQtEÝ‚VîÅb~•tóÇØªàá×nÒW­F•RøàW!¦‰µq_µ”XkWg˜–ÿ Ÿ7¾š,Ž (´- DdÑL~Äl箣#×K¯çÖÁ]üÍ¥æžS‡õ§^2¶ï¤Š¦ÍˆžziÒ¶÷$ÿˆÇUý[N—›?CwKÙr ÃI èÖuþI‡É endstream endobj 45 0 obj << /Type /Page /Contents 46 0 R /Resources 44 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 44 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F47 4 0 R /F42 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj << /Length 3063 /Filter /FlateDecode >> stream xÚíkoÛÈñ{~…>ô Dë}?rH÷š ¹Ëµic´’| $ÊfO&}"mÇýõ}"©•LÙr{i‹!wµœ÷ÌŽyA&þ‘ WH39‘#Aåd~õâÓZDh÷A﨑Ò?V ”FŠ ÍQq jÿH{£l 5ô8øP Ì—|£^žL¤ ÷裸GA@%VÇÁ`hÁäj} % JüIÜc‚#¦Ž„0HR¾ƒ{[[7†Gq„ÍÓìΡ bª€b’,ƒ0ˆs×T°§™ €Héq,E¹ñ–â4†"‚ÀÁ†âéè´v¢‹NÇNæX§XÂíƒ:ÖÁ¨ò£Ì ?ŠÙ m–æ(¨‚2`«CÊ¥G j&à+}ŒýÅàüDtÿÚïŸöFQ#A‘"ê(èÐzE·8g¸J¾Ûc#0R˜í×p†Ö¡2@0øÜí÷xÛÊÀÀ!lÈ^ †„ÕÓÐhÝ´ˆ©³H£$X)ƒ¥þ¾\€bP“÷yUçÅ…°W'SFpröÓ‡÷~fÞ.¬Kÿ¼^çEí_o®i-ü *W7u^Èrv0ƒ°É”Äx`þYá×f_Ó«ëUœÛ׫¬¨Sû¹Ÿ+—aÓ˰(•·ÍúªAä„褼Í y1øj‘»5Ù¼.×÷¯|¸(L—:S~UÓÉ”Z«ÐüÍ»úp~ú®OçeQ¯óÙiå'êÕéuºN¯2øiQ"àŸ›"´€—¨E} ™Ôs °82ËahqˆE¿ÔFmô‹Â‰%ðü<ž=1ãૌpá°—[jÝÆ8ùK¶¸™7ôüCVUyZÄ6ÂŽbdsÃX*-/Ëu:áì>0 €†)ÇYxzÁK•U^ç·y}ï'æéj~³j„Á­Â³X–ë«Îž¹« ƒhÙ®ÚÄ·~Ÿ^¬ÓâÂYA{¢7¸-oй߉1ž\gkÐ’ÌžËí>îi!Ù—*1Yø÷Ò¡µÈÖ~hÈOÀY° |“€Àö¬~”'@Xúçg,0ÿˆÞ…ÅéEš-ð*o·ê ãi:Ì$4©î«:»zØKzY”B‚ðFŽ~²Âa’~%=‰ã¹Yø:‹0¤i ë~ L(°’Ø­€ÐE @)ˆN›`Œáä2&yƤ³‚fX’:úñ@1ë<S6D‘"¹M×y:Õõó`ÅJÿ¶ôr”ùQ€#’YyS8ÓbgÛÃn9ÊP”r ÔB)Ñ÷k8®êW:' AV£|Ÿ1f1ÚÂ+Vu³ôõÉ”k“|ŠZB’²µ3ß·óy# Q? š ùu5,øYì 2µô/1ÎO¶Q%í‹óÝeæùå˜Wò8fôÎö0@0ýÎ!~å)E\¶G•2ª–ßîIE˜‚5;÷(@f!©êàþÚ‹=Žñd"6NfÊÁWœUÕÍ•$ŒJ*ëkÿ>/[¿öF&­iûø½µm/ý„7ÊF&ïÞž=Ç`'œ½òï7UØK:PÜ[I·3÷ð2ËšH„#„ëIMk$_w—×—¯¢"n²¡)ä‚7ö0ÆXŽ4Þ²„l E>‚ˆ<¿Ž¶Âm?%›) ŠÈœ<ê:£Ã¾<ªøQ86·¡B€÷·ˆ„Á ß5áàÄ’ˆÚ5â–‰±ý9è/{Hy\†c=[Të3¦"®]”Ð1fÚB¦=ÈNcÔ„ãàVs#dTo!±‚Ôx$é#íà6é³Ñ‘=‚Žgтب¾GÆÈ–`j¹xnú -t÷)^3 ùK»è]„°¡‘“‚BžÖ¥ènS y çzÖt§$óÞ¾³å.Vÿ~þÛHË©9ÐÌ¢V@!ÁÙÿžèQpœ˜Å·$ÇsFO1S"4m¯g iâ8Æ@Ä(Qs¡ ¬äàùõ·jhw Ò€&vËaÚ²bwÔ…÷_ r;Hâåh›$} \€ìÃÄM+­ÝKãeÙVÙ ¼UƒÖnl’1åœã¸Ã!ƒàˆÀ møˆ4hj9(#yÜÀ2W/í$CÍ!4C`ↇˆ -Á—ŠÖ2ý5‚3$\ZÁÒEëm-Îd< ẫEšîáÄ0#ÑQc&ÛÛJàVF¢"Y…ŠdGZ×f$"F[å ¦ƒ²æÓày¢å)ðĨcgeòÙ3µƒ³²ÑzŒ´Ü]Šô ˆ{l”’Á.Hr,÷T7¦ö]X×2fØÞMõ¸]Uo׸ò'¿iÇ Ò¨øL5,Õ}¿6ŠvPEB$G>&Ȩ“„}ÕØ}EŸ€lXB®)psoAÁé@Á#U(ˆOTëlÑ6 rbäC¥g9,=SÓ”ž#µ»^ ½Û ÈoÝ ¼‰RÀßém9ÀáÓ[¤ µ¿v¯Ô¿xS®µ¦+µ6¤£º °&SçÑhN%D4&Ð[?f«šRv?±HòÚÏ»0giuïgÜMÌTöÚÂM\¦u¼TÇ¡mNð€ÅV£,¶ØˆØ[_‡Ø+˶’ŒÕŽàΆ5|PꎡhUŠé±v‘õÐ\Æ Þ’¨=hêÝh"X)Tr~™U™gBçfɲÂÝ Ùy_Ó†™UZÕaê®ôSžïwá_´öŸøÛŒen5ÜïM-›‚QáD÷UÈ/¼*o³ÅK_Ì^e颽ԯËWQc ^΂Ò:ÆN²!îJ«jèƒJÅúh™£]ÜÐ7ôèœT±Ä©ȼùXú±GÒogª©{Õ .ÉŽ²¢ÖHãAjµëÐdܡůáÐæ×zd~­;YÝaN§¶g 7µÙîkv×fõÿ+‹ß~e1~½ ¥zÆŠ"ëKÁÔV1¢cBº~¸²~×Þô<®jT.6.“]îÈdÉÑ3YÛ]þŒ™ì¾Œ’ Hu8'cþÝ^›o–í+ÒPŽÌ~õ@¶ÃŸ’Ãp3áRPñ: š_˜ÀHÙ ³×=aéÛÒµ~IÛ×kóË²Ê ÿ^eµ)ãí*pÑÚœ"*8‚û˜[›žþ÷íˆABXÑ®ùâ;Á6‰Èþ ¥£þ†1m#šŽ@ÇmÜ´d\EC{Öµ¼y±È®3ø¯¤ëöŒÁÐ6‰ø·Ìw´¸y"ðMãŸ-c¤Ð›_‹–-í/ÑF2[¼à§°ÕÅ\·vOo]¿ë‰âI¼C â~EF9·–¥¿Ò»?é,+l;bqq³Jwo/Áâ6TxÝ^júà僵CL ›ãáɧèeH·ŒþG¼ïJ’q7é­ä;j[~7ͺïvûiê:Åw·¼Y¨¼[ä‚è¯éo†—«ÔöYù¼Ó€ä"PßѤB74<7E›ª6-5Al›†_…;í²0˜7/³°ÛÒ6D6W!iˆwänÓm½r[,™…gU®nm>3CaBGuš±´ÙßjJi8´ÕtSï{ ÕÔöº1“œUþX‹¬š¯ó™£ží -üóýb»D1kšÚØ€Ò0±¡4 æÍË,,ϾÖët^7‹³´Ê’.7#ÃÛaƒ{_+"…Wc`r—°íùjXVZÑê‡&9¿¼ `ëôgWj`¢§‹Û´¨Ó‹¬ÝÑM×'$ñ]¸j«Ûß®ëÐÑ]s³-eóÍ0†~vé\ž4ŽÛ‰YZeA>9Ø3(Tú¿V¨\¿¡vÍÔT›@{x)gµk«¶ï~N'éuè_ÿš·}çvéÒ?={a]Ÿ½ðˆ½0¸ÍSÿ2Kç?[Up ŸåÅmPŒ.8“,SkÀó†Ó ¢<÷…§ý_ýß[Pn˜‚B*H¤Mˆ iþ4á_°Õ¬Ý endstream endobj 48 0 obj << /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 47 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F59 50 0 R /F41 13 0 R /F15 11 0 R /F24 12 0 R /F27 21 0 R /F43 18 0 R /F42 14 0 R /F25 16 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 2363 /Filter /FlateDecode >> stream xÚå]sã¶ñÝ¿B3}=wFðI—Igš6™s'm¯SwúËLi‘>³•HG¤ì»üúìbJÔQòéxOí‹,–‹ýÞìïn.¾þÁð…ÐLé\.nîF0.õ"÷9ã åâ§L_^ ÎyöÏ®xW]þ|óç¯Ðn!8óÜ üˆ/®¤c’+¿n.¯¤TY_Ñä®]­Ú§ºyGË®ZöuÛt¸ÒÙSD*«n¹©o«ƒo·áÐ0mïF{:Û\ —UåvY•´óºêººˆÇ/‹Õr»*úv“(  Ôÿð—7?2"ö¯K/³.V]‹‚¢d"gZ’ì!œØ>Ö%"žUï‹õêêh„‘ÈÃä/^ФnújsW,«´<@Ó}•ÕæÒꌑºÑF‚ycdT·RÌhÍÃD4JC®‡óŽ˜ >âž¾¿A&”²IÕ8EIpìÓÞHÕT‹¤j°*ò¬îh£«×õªØDbíÑ®jºº¯ëþCäà¡,ú*~›"XܶØÊXXž0 ÷5ð‚:Y×W8“Ù}Eì¼îZV˺$—èÓ}½¼§ÇbS·Ñ°S¯V´q›(4eõPÁOÓ`ô…ÌŠŽæ•YûÐ×ë¯vµEM,J”¥ƒ'Ä98†áY±“*¸Rtª?¨ßBø†°ÈSÝß8\·½ÃëýÎÇv>"­bÎ8`)°²R€uñýÍÅ/ €¼P|rarHÊ.–닟~æ‹¶@¦¼[<ÄõB1 ³Õâ¿ø.eÝiJ&Åäœ9åèÌûèa¬,3Æ'æB@L@³VŽuxsOæÎÇÈ^4Gœ:ŒÉªf»®6ÑŸqƒ";OúËm“ïló×èäÛH´ŽMU•„‘Æâ¿Ø^Êè¨e¢¹ÚF×@¡¼Ê£p9 wG¬IEÂŒ  RzT‘ˆZû(†i£Æ«WQÓý-ó–!YyâJ°ÜE³\O4ïåbëeô¼!ô&ÎWŽ ¯SÇçåÜó§ƒ7¿zݸ;Øó¶ÚŒ³ôñð ‘É)1âÆ"vÝKòuóXmº¸—$¼Þy1Âø¹»hÊ/<æމõ" _ÙÝ%R5QÉES(urð'â12_VPÖu“ˆß~8 >|ãHÞn¸¬—¨&jä˜)ê°–"ßXRÔ)ÍÇÚÀ®`Ãb¯ŠtyŠßaèàL‘6ÒU=MˆsO9¶”n°X½k¡(ܯiYwûö%WXãGþ³ ñã<…”sÑw0Ž ìâÐöÙÐ^i™GÔe[ÆÙ]ètaÒ_ŠŒê,ÒØÝ·OMEÂ?Ö]Oq@ _G¤¢,ktmL2~×Ä yÔaÏr4ÿÓPÝ=¬Š §mަ¸˜á¶}».Bo·Š«è[è”Sº~ó·77_Å›v0@ØöŠìã€Ðº|¡…gÚŸ ¡œá0"# eÓºÓ…ßó(Äû×'P0ÜÃ@MÑ€.ÊÛyläpAÈõ¹fZÏ4ÕÙ4¦"T0)‘Ï =Æ7FàÞ1}$ÍדqÉ¡É9C²ÓA24¹Îû - ãÜÏRÃù4Ž«.aÐÄa-Ègµ`ÁU­ž§…4Ê£šiŒ³i\ M$·»Èµ*{CŠ-H±›ÑjMÃX÷qµÁp–Ù#†¥@¾¢Õ–†Š†ã!+•c–Ï´ÒÙ4¦‹ª…®[j­~ Y”Å„—XaŽ´ŽÚwQˆø a ׫‡© ¥ †÷9 7Ïo'/¿Žùqê–æ”Çý@æ3]íl't)¡MÊ/­Iñ¬&9”75Ó+gЈlõÃÏ3èù4Žç莙’þ3Ê>(?ä ó½ iÆ[êÀà- +*BéhõÛy™=¡•UøLHBcãè`ï6¸K~·á· ®S†y‡Ù.$6èAšð‹w o˜\IޤÓJ„ì†@àÌC>{‡ ’œ¢~UÆ‹&?‘ë„oÍçyÕù4¦ë²Çg} |¥Âüˆª@1óÕt|:7\àÊ”‹é??@¬I?Dåï§ÂÎÃ#á·GÞý¸Nã¨}3ÝîCS«v/„Ÿž8vŸÝ„²˜„r˜cÑÉŽgarfä¼>ü|'l˜ ¦ŸaCùÿgCè+9ÜzgÙðl'l·p|ü|ªÿr²!Ö†ú433gÐHlphqäLW:›Æ‰ -$FÚéð÷:á%ÕV™ý‡†Š|bótÏöô~æ©¡'¯m(é†ÞÏL¨›8, ØÓª¦¡%`sÔhž3;ó ãlÓag@ßÞ0+bæ\ãß•Pøµ‰ó}ø¯>ùŸ7p§RnðhÔƒAᎅÃꎆWd“T>¦³·Rpz²„NXÊ^À.´É)?’š@rÐ;}CÊ…Ë|Éá ’–ImB&;ýÔÿ§£ endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 612 792] /Parent 37 0 R >> endobj 51 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F15 11 0 R /F41 13 0 R /F24 12 0 R /F47 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 56 0 obj << /Length 2467 /Filter /FlateDecode >> stream xÚ­YKsã6¾ûW¨j¡kFÞfkÙìNíLÍf½ß’(‰Ž™H¤BRöøß§%z(9Ú®b  ÑèþÐÝ þ¸R3 ÿjfSŒŸù(…Ó~¶Ü\ýô‹œ­ ïãL Ãì‘Fnp´Ö¸ÙzöãÕÿ¯þèE8o…òv’Œ½©2NÓâRÿ¼½úö½MgJŠ(£šÝÞÍœÎG…ÔÀYÍ~Jþv=Ú&Ëë¹JMR!±IÉ­†[-·jneÜ*#[n5׿Ü~¼ú÷íˆ\*¼sÓLp± ²“h¡ÈòZ¸àÙ¸Oå’Ÿ,¸õ·r&KfÂ>ƒŠ´]iÁZ'·k•ÐzÚn¿^Ä^ mE&ÚübŒ»ðÌæA¨(RÕ™Áäm¢˜¼»žkodâÑ 0[fëE½hâÏRšnÔ` /‚ë}¾ž{…½‹É Þ$fL¶ "úð²õ@¶~UÙ£š*À~j¤É1iÊ ëõ~`7Xá Æˆ!Ùò¤á‘0Jx•î'ýcT®"G7DbÌpÉßOÃ_a&ïR§qÊë0€îa¼˜IÓs;ŠC%”6/ûóÈPÏq¨‚ =€F–ðFØh^r²BY÷z˜±"ê^e5Š-”{M€¸¨DTÓ2EÆ^ÎK˜¦Å¥"Nçe¤°‡´œ“ü 0c %! wH,¥^h•}_”žsu—ÀM²fòÀ$ïx°xêp6—µÉãõ²4|ˆ¨£—¸y[’¶%i[ ·¥%Ï÷é™rÅ9(‘ìD|^,ã 4 2ÄÔJ6É)°×šI΄`@ÖÂÖšÉC?$*IN±äÚ¨Ùþ4ôF`§.î µâVέ’[-·2&kf®¹õšG*•q¸gíŠ[LP“¢mœ£ t$÷h¶fÄh6“&ˆǨऴÚ/M¸€Ò1’Ω9»HÐ)¦½“™\…¡1ì¿á•s&ˆNí( A?“y´pU™æÑ‹eŒy²—ë@õ¥¤ë]<š4pp#¼Ã“ùå˜3-¨Ò|è Å75Å–Q|‹SœXÅ'FÑÑN¡z9_Ëø’_¶ÚP #§9ïr§Ã²A@púš” ž¨8\q´dá&þ z룰Ü3ÜZis&¥Ù®~š /—1ÊRgf6(ÑUå¸ÇÑÆE%_Ô¼N„p\W+£¡è¢ |S«f’3s5 ŽÚÓÊ1N H‚:ìòh÷ƒõn5£å´æp3|ÇŸÆËj¸Cu¨Í_8¦ÖCi&ž 2öjXó’_VãbgŽ© tÅ9Ó˜üˆþá´g¸P2N¡B)8.° r¬™TLèëOÐ’“–˜'=¢!aù‰¹XÆø©SˆW¸ÊÙx”A¡ë*³5×i}6–l¤iÇ38Ô yúÂ'SÃ!ƒï$˜óx¾üÒlJHmÿŠÌHÑ™1pb:MÞ{Úb$Úh ïh‰W¶þ÷Õ*Ç«šL>M[”¿rÃB81På÷ß›OÌYö漢_nêk’j±Î7Ì€ëû!PÁ–ñ#¬ °ÔsØŒóÝ·;‡[ã÷oÞðìe›×wÙr3rW6¡¥áÉ·÷ Œ G³ñ¥ègs³Aê’‡¼~bNSl¶ë®·­˜fÛíúé˜7™’Ûùçμ¡8ütb!²÷yäöڶïÞÝþðéfLuÈv2ôp'-6yÙfmQ•/§&¹½V ïÈ%›|³Èk4›8lÞKp·+—8uL1kE*û/?¨Ð;øû5««}´¨™Ž‘Žôeil¸¬J•ðPPë`´úCV¬Š_[à6û*«F'4TóƒU—l˜áªZ9ádx•U5$Ó”ìv´ê&o³UÖf£÷$/¼î¿‹/(Ð3üºåcôP¬rm”XšaÇ]žµ;êÌ™ÑÞÌÅ L ‚.RDQÖI­î˜Ò &0iŒBÁÑÔìîpŸ¥ÔŸó†Ž/&øu|à,\Ú|‹jZŸ´ÙïyÉ\RX`1'c b,×YÓð+ï)[=ñ (Èß5€Höý> R±ü(Û#¼ùpó¿›Û9Æô”ciÕ›Ö8ñhí}Õä{uò3‹²;PX(¦A Ã9Ü$ißâ{ s›Õ$¯¹ù­wèhêƒ:رÊÑ %®‰ÍÇ¢½ç·¬n ìZÙšçÁÙ*2ˆ»M7 ìæú›¶Î ‚+!š„䇪íÄ· |[äË öF[’Ý^: #jtÄÁ@uÔÝ6€õ1[V‹Ã#¶xIèÿOÞ4=wYm¶;Žl skºŽÔŠé"ç¹Ùê·àiÕ‰\.+²Ç PaY)*Ê-TTï‹2[w¬·øUÏô"˜yež¯Ûë\ENv¬€Áï…yË ’Fp³³§¾ï‰;«ÝzÅL:Ç@9AbgÖ0Nñ².d/ª‡Ã<x·dUšÞpïª*»åö؇×.ЀsÑþÙæÎ‡{m„OÕNÛiWC€pŠdíÎ…{¨Ã´Õ¯³ªP¶ V ÷*•"H÷:«âæÝúUφ{ »ÿµDpÅŽÇ"§§ëõ*£%Óüs†B3æp£îK‰ýÐoë|uÇp¤†B%µ¯c ‚˜nößnGïÙ#`¬ÙÍܺ(ŒK‡(î7ՅͺXŽyj*ü• ö'CœèaÐp…C<»-áV‘|;^ëâçØ”Á®“ç»Z÷„gdÙáDÿ…*¢7È,]ˆ‚ Ìoΰö%±³eÕ]ûxHx®+Š9=o,ã:¸6ºþ;o[ïÊßOüœ˜úÞ6P©4¸G’L¥PNÖP[¿íøå2߯½ˆÏãAI•ôÕøPC0™Dêg…ÍÉÒy¼/Ⱥɵ¾ñE¡;¹$å›ý¡=v_Ï©¯C²[îs^•²®wÑߘvå³cÎé‹úÖë걿x=拦hs.Ä4h­½s¨ë-À?ߘýyøþž<Ð endstream endobj 55 0 obj << /Type /Page /Contents 56 0 R /Resources 54 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 54 0 obj << /Font << /F47 4 0 R /F50 6 0 R /F48 5 0 R /F42 14 0 R /F59 50 0 R >> /ProcSet [ /PDF /Text ] >> endobj 60 0 obj << /Length 1568 /Filter /FlateDecode >> stream xÚWKÛ6¾ï¯Ð¡¹¨i¾ôÊ-4E‹lßÒ ÐJôZ,ºwÿ}‡R¶:ȉ#rHÎãã7£7Û‡ÍÛ¬J%­X²Ý%YNdQ&y•Jy²m“éÞ˜ã«Íæ|>“FwÃZDÏ›wG}4›V7§ƒLm:=lVŸ¶¿oÞÊòúHƈ,y²æ%vÆùºŸôj-d–Ú(+å©Ù×çºG³÷K;Ý÷úÜ Ï8V8Ž+V¦j§F€Æë—q&H!XBñæŸÞ=¾ÜÆì”‚PQ½zº±áP³Àšî,dú LäUzÞ+4ÅÛ±biØå‚äÕ¶ûΩµõh^VŒ18 Ð`#Í“5ƒð‹ -xsêúv»ªxªu?¹3XJVk–Ñ›Á¯¡]ÖnQ¦õl‘¨Ò^7µQ-¨gØ´C•}Âås7íQ2—N“߉îƒðúÏÇ?p­Œwu£üµ‡ú‹×™N—KËO˜‡‹F”æàC˜ÎvÃdê¾w(U^¥5B„Û ›þÔª ç;cÝ€Ðbhp²õ£ÙwnBç`jPªõ‹þ¼VŸ‡^×aÖyÂëàzß=õi´2{\´ê”I!å2 çYbÏ‹Á¬"’Š 85cw4ˆx%¤,‹e`|êVk.rû0bwW$Ë—øÞX¬!Î6wì`¢ 2›-&ö†"}Û uøíg÷¹¤îÁÙûëi‚ÇŽš˜^;ëBm§LÿÅÞçŸ,’qÆ¿PQ†@!© AR×¾=°¡½I¾Ï7&ô^|$#üÂv.6Víá×íÿ¶ Ò„AÍ 3Bíâ,i?Ѥ…5xƒÊ29;ÍCÔYØþ¥O><üõðæÛæ˜Âž•“’û‡;©aвJNX9s—:VÜxijªŠFü©»÷ûÁ¼ÁžÄñXðYèÐ9–Khß*!€·*’gt×Ðþþh_~Ôzê€ÎÁYôùG@òìB-’ç¨ðÐ[¹•AQÐþl÷-•Uv¼b§žüQ“ò+Ýt£—ç"_$›ø„y˜¯.¡§¼·ýŽÌ«Ù’,mÐࡼ¡hؾþÚéÑ»±CŒ a[Ø›ªv¯MªHÁ~ [øÒY¯Ñ­¥·’Sm{;üèK œG=šz0øyaz|•Aùu5àsZ,#¯:òwÚ;¼u^?êɬí5‡º9 ”I*V.ƒòݦ#çìÆ_Gç{5ù§üˆ–^ÜMàй}vб÷‹ú–gÒ-o‰•íé¾væÅ·ÈPOøï?]u³è ܧ>ªý ^M]=üm÷MCê\š´ì¥g Œ]{j”ï‹~C °`pû;eã¢(ñF&cþkqkœ endstream endobj 59 0 obj << /Type /Page /Contents 60 0 R /Resources 58 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 58 0 obj << /Font << /F59 50 0 R /F48 5 0 R /F47 4 0 R /F50 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 63 0 obj << /Length 3169 /Filter /FlateDecode >> stream xÚ½ZKsÛ8¾ûWè¶JUŒ!^|Ìž’ªÉ&3›‰7ví’h ¶X‘HHÙãùõÛnðeÊq6ª= l<èn|ý€^_ýôÆF ‰,Êäâêfa¥ˆ”YÄY,¢H-®V‹OËíÚí_œ+-ë][ÖUCùÞýüâËÕ¯?½‰åphq®”‰¥éŽ9ûåêì3 }ÀnaS¡Kb€[¼(¶gŸ¾D‹ôýºˆ„ÎÒŽ¹]h¡ ­Íâòì_g¯qÃcf±&‹a)-R•ÇÆÁ1MS¡µ> ÓLŠ8²¦­Û5$“ëTÈTÁr~Ø» „§Ë[W¹}¾y _‰^‚„‰|Ø­ò–ÛEÎc¯™°ª+n5Ú2ßlˆrSï©‘WL©ÛkÇÄú³å.ßçÛréZ·oÄ‹sÛåÛúÞÝÁÀÄ,_âþçe*ç2F³iýÌ.«úþE¦`蹎bÞ8ïòM¹¢æ>¯n™ÚÍj×eC­²jÝ­c2Ùw°ô¤JO)´•A|’%¬Fêí™0â3Øïœ¤Fu£fŒR›T˜8]Ä6æ|ŸLt"LŒôkéL=e–ŒH)y¶ h,ӶÉM¥Âªt$70ÙÉx´´Òþöð`Ö~^­‚zYá+w“6mg×)×ÿJA&¦m$"›ŽmìbãòƸ4Ž—®`)5Ȱ ±…†L—…Ih{b¨àêDü!¥|JKI"R@™ˆÈØÂŽT ‰0OML<¯ëCµ*Ö®ø:'úÄ7;¹AÙØg‹ }M“l6œd"!»9n™d&bu ’¤›ŠÂåôLû*+úõ:Ç>¿{¢õžÔQ„©f™onë}Ù®·4úsd#¯\컄 JCÊŠŒä$l2"25Pk¹ÝmÜP0ïíc—ïÜ8HÄ6-¯Öa»„`—h#7½°áµû²ºº;f×̉YkP§ê]Õ³rÖ[ÌA ,PÍYÄy Â?2ÚyEÊÈ’bÃØ|§dÇleÞ+³°X‡}ZŸàS½NÁ×€¢&l©T£ëüMÞ SC¨Ae¹rDB±ëd™7ÔGÄ|CTÒ¡‚|NïËÆa(ezÅ᪈¨t™aæ¶¼]·»¶¬<@Ç>6„8#f™š-³åÍa³!ŒÌµî˜J8 Ä5n)×ÎUD*ê»p&Ø­•12ޢߔ-)‡îû D»¡&rŸ±2º2?ž·/Aìa¸5ZÄR?¢gƒ>q-£Ÿã¶be·ÁpêNZG¼@’‰Ÿã¶’NY°ŽTh,¤.`‰#†èîmˆNgÁ`kÁO¬æ\ÁÏs¡ªÌà:GÝÆ¢¹˜ .ij‡ª“;%níÓºÕ*Jg 1ŒÌ~ìkî¬T°V æÿ4vho üNÂðGÆñ˜ï±`U‰8NÆÁªJÒ#Áê(ÖÉéjÀóö[AÁ|&"ަ΢%ëò¿DdIÄ(ìC5-28)ï4 å` 8Ò´;ž;ƒ‰$,58˜ Âm¾#pˆ IõIB‡H‰45Äs›ÿ9çâ¤WÅ)˜J„ ,sÝ­ âkgìÝÍLd- žC„é?vþÂ×l4“H-ß]|¸¸¢^ä†Z%$ëmó “ i%øëm‹V.·ˆ#Ø^Bk›Ctù'­é7/Öˆ÷ƒ€%QN2£k×¶˜3k©Ñy±W¹uUá½ AY”]£¢ÎÙ˜~ÿ´À$H‡Åa±¡ìñt·]á¯inÞ:,ÞRˆ Â+&b‚†Ç‰f£w…ƒ±!—÷°ú’Ia'‹»Àº!µÌ•W ’ŒÎ¿y2¦«rKt?LÍ™rØí¨¸¥ñ^Rû~]kÑm¹"R§BÄÛü:×ùóˆõé’°,ãÕ›¥Bƒ/IÅ;"Xé½!uÀ ÎEÜ€ì«áñ ÑòëúŽ—`§Äî\ÚôáÄXØ ‚V“¤Ïv¿÷ µ›ìbßúGGšs0Ú°wÂ:8aª2Ä\<H4xf=òÌjà™‡úUG=³†´£FŽxf«åsM˜K^¢pÒæ_Ý5š6æ*UI,dïòâw§¥Üát+‘õAܔڭ)¾o>UT–Á%:¨àJQÂ,¿~m'Ì'àòåÓ½kJÌG›£Ûô•l ÛH˜$M.Âð#6~ûíŠz =]•á_ÐѬëÃfEmÿ cþ¢üµ&ª/Ä÷ki]|òìç×›.糉_«Ï9‘‚°*žX~ÿ ƒ1cÃWG Ù1Vl çÉj7;W„·sèæWjµÜäœW‡i}u€(üà €åv¸O„OzÃ,à’mË*Äm@(öxñÊœw™9&3‰òÊÝ•ô*‘dˈ5h/["°gNð¹ÎqÐô2ƒîÀË' ' £)L'T…FšG#?¬îÖ%B€·¹Ç/•‰ÄÊï*×"¶¤áIúȶ’3aç5ïó^€œP›Lèi@]V~çç Hxýty¼«ˆLñk, š‚ ð³ÐÖ¬^G¹ân¶ÁD 0ð»²} |`aHU¼°³ Nœuäq.yò]Pæí&l{$7ª|c42½,Ì¡'¸fìæˆt5Aû¼iÛ@mëñœpsYñÏC€râá{ºÆgVÌGwãöX¨š5ü¯P*TÄ/ Ÿä*]½)Qxè8Y¾ÿ~!U¶/çj)¸Ž^N殺v¡0;]„–š~/‡ºƒ4™«ZØÓæ×å†éfùªÊ7÷ÕÆxÁßßëj!Y¾§ÉÄévŸo·hXsõ‰Ø¨¡á@w€i[GkÊØR#¸Ïñé¼VS;)½ÏÁ ¨/ ö½%{æË¢¤¢àH¥¿T·°m·?²I™Â&û šôªÈWn[ôuÁ×¼ì5?Ð ú?édél iA*Ó‘sÆúĽvò'ŒOŠíà¢ÜWÐÊøoÅß©ñO??É„Á0ID*äø*6 ñ|ÐWïÜ_ç¿»[FLÇk~ kv{]ºÛMçK<;q…_‚??t>ÊÿGe 8=oº‡£j˜×‡?YMˆ>J; @¤+Ÿ-@cð¶ÉQ*ÿI‡{Tï>m…ƧÁ´ñ°`—Ë40í‚î×/¡‹‹½Éò?¸c‘<ò½x+¸ W LªÞs!¤.«–šï]»®W }Ü„ÃËŸ^€å_9ùöË7p±£î°—ï^½çóBÈ›Eñþ?‚»t÷³7ÐøZ/c dž¢Ü=€G‹RÓë!RßÖ[ÄnÇÇ*ûY©Øf iŸÈ­WP&Ò”-QÚûýk|8› endstream endobj 62 0 obj << /Type /Page /Contents 63 0 R /Resources 61 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 61 0 obj << /Font << /F50 6 0 R /F61 64 0 R /F48 5 0 R /F15 11 0 R /F42 14 0 R /F59 50 0 R /F27 21 0 R /F21 17 0 R /F47 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 67 0 obj << /Length 925 /Filter /FlateDecode >> stream xÚUMÛ6½ï¯ÐQb–¤HŠJOÞ¯`“µ³ˆ ,ŠlªÍ•ˆÈ”!ÉIÝ_ß¡†þŒ l{1ÉáÌh8ï½ñõâê·{¡#FIF3-^#Éå"R™"”òh±Š¾Æ_Å·ÑXR_[ST¦¥"~7óTÅdáOäÝèÛâ#äJOsiJì(f™Õ®²ÎädñS3b:®‹&_¯­+ÞÆ‰äñMí–fÓµ!ý¤*êÆvå iœ»†O6›Ê.óÎÖ®EKWãzSš5ÜTgŸYš¶5m(òìÁIƉJ²}•Ãæ“ix“¤§îc!%aREc¦ˆH$FqÊèPrΈfú˜\¢q’‘,ãјK"-–¡Å3(u•Wþ¹P÷G_£áÙ4‹Ÿ}·[”]𘷞 I¸>¼j¶]›&4Ò}Þtvmÿî»7T6£šH™œö¤2Í¡ápþbZ&±,±:,®î­ËÝÒî¿wç @*pE(›ƒgß žH¢”>o§YYÿï+i<ßøÀ#íÀ43?qóÇ(ãqÝ|ÄŠ Jhvx§T½$ä¥Z^ ¤JϽ÷@йF‡¨ ã!=c~9Üå˲;>BÈxBpÍ݈Å+Ü_( ,G…õÇÏί"îJƒ†‡õ¦2kã:D³¿¬_qÍqyjì:¯Æ·Û0<8¨ÄÖM¸®­ëp{o+_#~ Cëü3ö¦ïÝ9d¥".¯}r؃Jâ™O XДúeø*qF ˆ˜ _ß³ÚÂÁ %Ì>›;¼m;а)vx…0Á¦5®Íý°@Ån·ÿr^íZÛâ©ç$¨ýìè›ÆJ“úg[Óµƒ°1MX*.¨òpSÞ Žâ&ñA®I2,jEupb™Nÿ(š{T8üÉ!,”¬õ…Øu€å¾ÞbO²Ôñò»ßdÚnÄÛÛoÉtƒÈí“iŒìÜŸkòìÇÖðäæ0UDv(}2}z|a\¦õÊTžáýé1wÅ6/ žOïtÔ Z¡ñ ÿX’òôb èˆäÆÛí_n›Ý©ú€h¡ÕOùÒ9øðË?Ì¿ÌiH{Ô%¿uN«„P%½®RØd½N¯îWÿè`7 endstream endobj 66 0 obj << /Type /Page /Contents 67 0 R /Resources 65 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 65 0 obj << /Font << /F48 5 0 R /F47 4 0 R /F50 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 70 0 obj << /Length 3192 /Filter /FlateDecode >> stream xÚí[K“Û6¾Ï¯Ð‘SåAð˜ª=8›M­·’Ø[¶l(‰3ÃZIÔêáÉø×§)‚¢(Kdmªvs"€Ý@£_7¡îo¾ûIÑ “DHÍ'÷Åår¢SM(…žùäcòúöŽQJ“÷ûå2Û¼ÜÞqE“òÁ?ßïn™M>Áìßòííçû|÷“´FIJS†$éäŽ[©ðÔÞ¬nïSÉî©ØúÖ6ŸíŠ2t?ç¡Ó1+¾æÕl×Ðñ ƒÙηVy>}¥N+zy˜òPnªžÕ¶Ø_ŠÝ‹ïدçÙ.ß¾‚_‚%Õ´ ²ËçûYEùïùv[d+Ü*îi"…ò{›e‹Ù~‘án¶ÄËÅÉBBuÅûæPšmø¾K˜Lp¢­BÀοèäãÎeídéy§ÍWuJ„©^ÜìÝœ›¿Ýßüç†A/,s€)l¢™%j2[Þ|üL's‚‘Úɳ›¸œS¡µ˜¼¿ùçÍN"^Üh¢¥p”ež' ¼kO ЬV×±xÆ ¨e˜òÒ­h,%ZÔ¢qòÕƒmKmAîœX¤V.QZRi—:y. ?êµ ûP›°gÞ›çøÊªž¾øn Ð±ßæ›[#“WäS±o–0g8e^·ü@¶ß•K8yСE ÷˜¯ò ¨ä‹ßµiîZ*A4l0l{ûæÝÛw÷]âp$œµÄ£¨!œ«X)ýÂÊ/õ.ÓóbK…7~xúýBãHŽÐ¤‡ÓJÿœ†ÙÅjžÿV Ö»â‘NhAäáÄÂÖœ£ˆTªšQøLE*OŒ­ë{àglºØT²¦õ \`CƈbmŽ1¡ˆãNK™#:†( 8L¥' ”—¥ÃLQXàÆ-Ð3KUlŠ1[IÁZµ…­„Mjð71Û]¾Þv‰ ŒÓðZ‡»ÔO[´÷NŠ4y½ØÕZ•»¼ÒI ‘v΋;¯í°bÒ–¶{]!ˆ[™ÌÊÅ~ÚÓ|Q>û&†+|‚mÏ}ËéµU¨Ï`¶nu¯L^ÿòîçðæCy Sšæâ{‚ÓqÜ|µóä+‚‡×ËÅÁ2yÊ]¬Â™ë[–dÛ°>åÝRx±#Z2>~”þ‰‹&¾Yyÿ«XAà\fAJhVUäq‚Ö, ]ÓðÎC¹_Í«×ýó£ýLŽO’‚¶C°ýj'Sb²Ö»K( ¢Œ@tì¡“½ššKãØeæR0æ4Ä®wâõôóGÛQ°QïâÕIh͆HDZ ñÏœ]ÚhC$­ÈJS’*Ä€YZEѦÉ€™LZÄ?A óÿ±hZî1˜‘`놳»±ÂñG9•ØÎ6ź›{¥—soëRà߇è€Äæì]„´Ç,R ø –£4a<í #Œ"ÀõãTÁí¥a„Ƹ0€˜ë}í1[ ‚²|¶Òà"âK{´ü: ·p0`1klÌôͯ=ª= W%I*AI 'JKÏõÞ;uf|Ô3 Qz\¨@Ã[í—ž†î§ÐXg›l™ï<Ê…y! ÃHrÐrÆÖùf·ßLó9é Po0e“<Ùeÿv©4¿d‹½o³äÁÙ¹ô#,Ì-ýs‘¯wOŸ¨¢HNA¨9äë€ÃÚ”S a° Ž1ͱr9),ä°(ž,³ßDâS|ag‚Xp^àc#Ê'˜_ÒäWe\hÍŽÒ;÷¼ ÛU^WKq1·ŠË›[8¿Y‘-H£ºX—ŽP@਄U„Âs˜£R€Áõ±XT¿£‚)pè8UR3ÐQ!Ìf-¶§<•|-®ä ‡y* ¡[Û-N{ª+EÜöT23íóTãp­<竚ŽJé¤zn‹e±È6þG]LˆÎʺRíS ¡)0 .Î-ü¬j0|¹KsÝ'4CXLÇõ8lS p:=›YaF¡l2Ýï‚XÃsåÒ ìÉNwð<:öLÚ•Ù¼Û“ŒP*c·çßg t®;ÿ{?o¹ß†W«ÚŒÿUVjA­“g³§Î„$úlõAþoV¤ Bi§@̦ê«NèÙ9÷¢Fa825W’6æÚ[{0gk*ªœuÑËÝÜqTüÜöéÄ×2Ûj=‰Ú__J¢Ç]ãÁ"–núkyTÁž§r¿˜ûÒçSö%÷½¡¦ ÃÙ2´jílÛåá1@¥<í÷ñ˜YÁõ%ùZ ~[3ïõ„W`€ÜªQø*tÊÆ|鷔ϵ_;;|ÊåÊ}žð>2D&¨<€nüÅâêÑÐ ‹5VžÝi t#å¬*$u"]º±±*ã T ¯OÛíõ㱯P Íè X4å\ Ö ã40 ò Åz/åD#ð…(GÕ0ÜK¬›µ¸žÀ½<% qïlQ{›lJt°,g®eÛBÛH´Ùö¡íkNµ»*±ìÅÚ#ð¬\·DCmn=ÔæiU€ç gV.—ûâÃ[æ*ÇÐç-&Õ .qÅ«Á&΃q‡ ï:‚E,Q§ô€YÊdÐ}@€Ø_V ÷åÇOa>¦QÔæÿöI PM\kñÇÄ]T‹+Rp¶¶3WÅ)¡°Å–+ú/À¾ -îØùS\]U%®]͵븘FŸó f•>”ò0 ?eÛ2T‘z[ÝdpVEúü\ÌßÙtQ…ýnìÇRî6Óý KPvð®T ‹E3Ì—š>e *Ãí(|…կɗ}ø;­Èt(! €Ú8 qcœ³aE@HÄðxñF‹²ýE@8 n§šþ¯uçQ ¶™‰Ù«b×…˜‰-8ImÌvV®¶»Íihr¥˜»ÁIĹœŒÃ5x€„rÞ„'àûÿäIæÙ£ï 7Ÿh–±ü@îû½Ø²bµóÑl³+U`?H€䑼ê Ù™ˆ0uùè¹3ø3ùÐ!hÓΔ PŽ!°Ó…Ä ¤&gh#oºcîT3 Œ±‰!FÃ2³þâñ =qŸŠ3Q#ü‚OuòÎ'€Sx‹|éû0ãcÓ5ÌTòæÁxNU$Vpú[båÕM= 7 `ö¶õ©ÙÝæ’º]T,£¤UåƒîÆQ±zŒ?Œ¬òY¾Ýf›¿ò“nñr¥m»E¤€š:Ä- E„µï61…;`¨åÔݧ qæ£`¦ã–Ù ‰]¼Ø#‰ u.%?+1ÈrK‡åÔš(ÅŸ£ª?Œ¤>¥›Ée:0Œp—vE\ËEWï`ù8LdÉ€H"¦'òxð¿@Ìul[µŸ1íI§¯;ÑvÈâàœã}¾ýpß²Æ`ZE,HM¤UqÄÒÉS¹˜»¦©‘·‘çþG |]èш|]ÿsŽ_Ôñ½Ì©Nýog6}pÊXFÛ/vÅzQT_—›%6Èì×û]ÞºÎuÀèí›Ìž{ŸS½T¬GöÍäq9(kB£RËiôhCLSUrß®òVRtªt¡¥êðë²ö›+z¤Ê…ý¦Ê…îû`…t•u²ã—WÔ[×e5àòøN¤à¥SmFá*A=¸hþÛ²`!¶V‡p撚m×÷×{ tˆiøά<—Nž‹áX’3‚]j[qh3ĵrÅ[)eß™Âj(z˜‰_V‡ ž¦-®Qœwïu®¢¸¶-®§/ÌÁ”ëØ¶o¡À1¡Ù4ÙvrÀR£lS)7%â÷µ«ôχŽÄi¨–ý|¬\©ºÝh%bÚ WÆa[E#ÃÝäè® m»ÅºžG0‡È€Â¢|®ÐÄôpü4¶}èâ»æ ô0ˆ0€F}(Óè;P~­ÍŸáˆ²Ãï†c@„æ1œ#p­!BÄö†L#@  „„€q1"€PÃaLë~7D®hQßÐoçÌUIb®Ý Œ•ãpe)˜‚iq=Ï•lÛAKy̶"0BÓqv Sè˯ݤaãðÔ‚ÙÒ¤=(á:í=šLûQÂ(l«€$¬ËÕ(a¿^_.Þɱa!í0”0€F}(Óè;ÎàPìŸ(ᔲ“ÆŽ‚šÇp%ŒÀµF Û?% 0€`”ÉK>tý‡Rwßð«n‡0S-ûw>. í endstream endobj 69 0 obj << /Type /Page /Contents 70 0 R /Resources 68 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 68 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F59 50 0 R /F47 4 0 R /F42 14 0 R /F41 13 0 R /F15 11 0 R /F63 71 0 R /F21 17 0 R >> /ProcSet [ /PDF /Text ] >> endobj 74 0 obj << /Length 694 /Filter /FlateDecode >> stream xÚ­UMsÓ@ ½ûWì1™¡êj¿7Çèhn¥7ÞL<$Nˆíÿù+c'&Ð’‹wmkõ$=éíÍ<º¾Õœ!Ï=²ù’i.3Þç‚Íö0ù’r’é•Ð|ò!äygÍËÛx½(×q‘n³|6}œß]ß*×w‡F÷–ñÆÓ}(šƒÅ*4›í®:ÜÕ¾Ôx‡ƒ‹ífW¡²‹ÞÏ£ïÒ œI‰à¬Ùb=G7uîD)5i†Éï)ñST­A {TíÀ 1WmG ªh¥»²۱ʡ¢°5ùòQb<Jµ5‚Ó¥ºÒÓ gTžˆR‡ { f Z{ÎYð^÷‹t.÷à5Ü@îÚn*—St“¯T·Ÿ§  õ`…¹¾Gp‡øïÒ}…] Ä•µâ2HÊÆÉßÛâ‡|±OwãèšDޝ@?éCaX÷_=€ŠÆàlŠ|ðA †ÒäIJZ@ ª„?3HÀ¥&KI«{ét@5E冨½ùüCϽ.ß!å‚[pöúã§3vT­À+¢Œ …U ê|•æÓ+%ܤ[˼ºªi­~²rö1‰tóyÕnÒ, »@¬h><Çû4~Z‡ü ½[I–e缨’£ ¯¨!1Xƒg!$d „®±ê5þšÝ¶Á$4“˜4ŸãuÚ#ËúÏvÓˆ êãÛ µìT[¡ÄÁ…Jôv6kE™ô•fÃòNo ÷4×Ñ4ªÝ`iÓ³¢É'q–Œ! ’ƒô°¡»Àý×Òu`û¸iWÎU[E¢î‰JØTtY“@ûjúÕ‹™Õý} ÎHЋûòD‚ÈCÕŒÿ.AcÊy}wêŠtl)w]Ø¿˜ó | endstream endobj 73 0 obj << /Type /Page /Contents 74 0 R /Resources 72 0 R /MediaBox [0 0 612 792] /Parent 57 0 R >> endobj 72 0 obj << /Font << /F50 6 0 R /F48 5 0 R /F59 50 0 R /F15 11 0 R /F41 13 0 R /F24 12 0 R >> /ProcSet [ /PDF /Text ] >> endobj 76 0 obj [389 389 722 611 944 778 833 667 833 722 556 611 778 667 1000 722 611 667 333 606 333 606 500 278 556 537 444 556 444 333 500 556 333 333 556 333 833 556 556 556 537 389 444] endobj 77 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 78 0 obj [600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] endobj 79 0 obj [826.4 295.1 826.4 531.3] endobj 80 0 obj [611.1] endobj 81 0 obj [638.9] endobj 82 0 obj [458.3 458.3 416.7 416.7 472.2 472.2 472.2 472.2 583.3 583.3 472.2 472.2 333.3 555.6 577.8 577.8 597.2 597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 833.3 1444.4] endobj 83 0 obj [413.2 413.2 531.3 826.4 295.1 354.2 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 295.1 826.4] endobj 84 0 obj [547.7 681.6 1025.7 846.3 1161.6 967.1 934.1 780 966.5 922.1 756.7 731.1 838.1 729.6 1150.9 1001.4 726.4 837.7 509.3 509.3 509.3 1222.2 1222.2 518.5 674.9 547.7 559.1 642.5 589 600.7 607.7 725.7 445.6 511.6 660.9 401.6 1093.7 769.7 612.5 642.5 570.7 579.9 584.5 476.8 737.3 625 893.2 697.9] endobj 85 0 obj [722.2] endobj 86 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 1000 777.8 777.8 1000 1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 500 500 611.1 500 277.8 833.3 750 833.3] endobj 87 0 obj [583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 465] endobj 88 0 obj [619.8 639.2 522.3 467 610.1 544.1 607.2 471.5 576.4 631.6 659.7 694.5 660.7 490.6 632.1 882.1 544.1 388.9 692.4 1062.5 1062.5 1062.5 1062.5 295.1 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 826.4 531.3 826.4 531.3 559.7 795.8 801.4 757.3 871.7 778.7 672.4 827.9 872.8 460.7 580.4 896 722.6 1020.4 843.3 806.2 673.6 835.7 800.2 646.2 618.6 718.8 618.8 1002.4 873.9 615.8 720 413.2 413.2 413.2 1062.5 1062.5 434 564.4 454.5 460.2 546.7 492.9 510.4 505.6 612.3 361.7 429.7 553.2 317.1 939.8 644.7 513.5 534.8 474.4 479.5 491.3 383.7 615.2 517.4 762.5 598.1] endobj 89 0 obj [833.3 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 722.2 583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9] endobj 90 0 obj [611 611 167 333 611 333 333 333 0 333 606 0 667 500 333 333 0 0 0 0 0 0 0 0 0 0 0 0 333 227 250 278 402 500 500 889 833 278 333 333 444 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 444 747 778 667 722 833 611 556 833 833 389 389 778 611 1000 833 833 611 833 722 611 667 778 778 1000 667 667 667 333 606 333 606 500 278 500 611 444 611 500 389 556 611 333 333 611 333 889 611 556 611 611 389 444 333 611 556 833 500 556 500] endobj 91 0 obj [605 608 167 380 611 291 313 333 0 333 606 0 667 500 333 287 0 0 0 0 0 0 0 0 0 0 0 0 333 208 250 278 371 500 500 840 778 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 606 333 606 500 278 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 333 606 333 606 0 0 0 278 500 500 1000 500 500 333 1144 525 331 998 0 0 0 0 0 0 500 500 606 500 1000 333 979 424 331 827 0 0 667 0 278 500 500 500 500 606 500 333 747 333 500 606 333 747 333 400 606 300 300 333] endobj 92 0 obj [500 500 889 778 278 333 333 389 606 250 333 250 296 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 500 747 722 611 667 778 611 556 722 778 333 333 667 556 944 778 778 611 778 667 556 611 778 722 944 722 667 667 333 606 333 606 500 278 444 463 407 500 389 278 500 500 278 278 444 278 778 556 444 500 463 389 389 333 556 500 722 500 500 444] endobj 93 0 obj << /Length1 1617 /Length2 6722 /Length3 0 /Length 7759 /Filter /FlateDecode >> stream xÚvTZ×6)! Rˆt J‡twÃCÌÀ0tw§¤´€ t‹4Ò%HH JJ}÷¾÷¾ÿ¿Ö÷­Y‹™³Ÿ½Ÿ}žgÁÌ ©Ã%m ·‚(ÀaH. 7¯@VMÞÈ àååçæååÃefÖ…"!Ùq™õ!W(&öY„¼µÉ·Žjp@ÙÍä…Ä€Âb¼¼>^^Ñ¿á1€Èj Pã(ÃaW\fY¸³jk‡¼Íó×O+˜ æüv‚  `  BÚAœn3‚AŽ8 Azý‹‚õ‘é,ÆÃãááÁ rrå†#l%Ø8P¤@â A¸C¬?%ÔAN?Ò¸q™ºvP×߀ÜéB@·G(s½ qƒYC€Ûì%U€†3öÛYõ·'àOq@nàßt¢Aa¿‚A`0ÜÉó‚Âl6PG@CA•é‰ä€`Ö?AŽ®ðÛx;겺uøuu@AZ ºUøGŸ+uFºr»BjäùIs[fy˜µ,ÜÉ Cºâþ¼ŸßÖÝ‹çOs`p˜Ï_'(ÌÚæ§ k7g=ÔÅ ¢$÷ÇçÖ„û›- äå@\O°ÏϺ^Î_ ð§ùVƒŸ3Ü`s+âµÜ~áú¸‚Ü!$ âçóOàß'\ ` #V[( ÷?ì·fˆÍïómÿPO€ ïíø¼??ÿ2»0k8ÌÑë?î¿ZÌ#­ª¦&¯ÈñGòß Œ ÜàÃÅ'àââÂÂ|¿ý]‚¿äÿ²j‚ ®÷J%˜  ú[ÅmùþRâþg4Xÿì àßÔá· °þgþMyyÁ·€ÿç-øòÿþŸ,ÿëüÿ÷Üᬿþäuôúãq;ÐnÈÛåPƒß®ì¿] ¿7Z b usúoT º]i˜­ãß…„º*@=!ÖšP$Øî÷ýÕ‡[zG( ¢ w…þ|s\@^ÞÿÂn×ìpû®¸Þvë¹Ýª§”‡áÖ?×OPB @^¸·Í¿= |€·{j ñü5Þny¸•ç°#pöTÀc… ·o£ Ò ùþü ¹¥ùáý‚tþÂÿ7ò«óÿ¤ü7ôO>à¿¡Þfr¾}»`¿îµýÛücÿ倈€ÇÕÍÉé×3n uuvyýÿU5°â6ùk²oKú×ù× xBÀ¸³Sp°x¨}mhëYµ4µ×úÈãÌël\>³ˆ6·X©lUÙÁŸ'Ò©Ý„ «ò¬ÇRsôW>;ÍõXožjµ\ø^Z$i­·àÎŒ’÷}(Ú‘®ë¥Å¡áÒ•Úð½rñÕr@oFíPfÎwq!Ð|NræñVѳ®÷Õüûð©u­*!•»—¯Æ¹âôbMƒJ&˜ ¬r&)ï ¹h±Ù‰<ïMŸ|$ÎûpC¯œÄë·Ç_ìc¼Ì>é½X®ËçÚIõ€Ê˜’ý˜øýØC™Í4eŠiŸÒâ¥Â †xçEI“Ý ¤ƒ[6‹ ¹ž&ømØ„»Rf@&uWΛ2Œÿ^Ž} (TøÍ#o‡ú¸\VÍZ‹=ü¡©‘®“{9¾Ó õ޼ ðEÿOxÁü&½ÅaÏ„cù{sÈź©˜É¬á(Cˆî\»_t³ŽDVFQ"PÐàÁt0f“E{áôÔ»,“]¸ØÐÍÝãÙ[üØ’Ùð3Û‡S1åz—û¤rÒŽ˟&êèöh×ú'5s<Å ™Í9DRE˨X7ñyDŠX©•Ë{ëþ6?”BwDfÎ}ÜSÔŽžŸœ}nbÌò/ÿ‚™¼íñ̽üsÿDÄ5°açúíŽ ž“²¡Ã}ŒxÒÉ­^A ™\n\äeŸÉÜÙqÕœuï«8Ù¸GðÊ#ƒ+ ÃBœRrç@£g€Ð;óäýÓ+ROÑÁé/Y”ÈÆöR~t?÷j ªée[²tS*$’Nò…ï2cÃÒÖ˜˜/)ÙT5«*ùÈ#_[•XìRš¥Ãô9'~œ’Є´Ù›L=©¨ÓSK¶·)Ö˜ñGˬ?c=Û„®Ûdsµ5˜hâ(±už=ưÀý·ì­=Ö¾Á2Ho/-A`ªpgêhHÉûôIØËj¯éÏ 0ñê©g¹yj<í‡Eø³±Žç÷W$B¼%îo´Ý=UËvçšûæ^¸Ìv©«[(ÇNÛ¢¤ê—×èBSý¹tÞÊsZâô„ÖÀ¯-±òá–ØÈÎcG³IºÝÌ1¸XSS}Äv‘üÓ˜ è|ÉžI‚´yÚ‡«üÈ~“tž{ëòÚÃâïµ·âÄSû„X{_Ö©PKÊ2 KˆÛÚ±µOâ)‚š¿âˆÂ´^Ò/v> –¢Ø8Ïa%¡4‡—EíËÎæ7©Ù7AÊ÷ðe5]š‹øòÓª]mãfϺ Dé‚+R§ƒ6w/”¶ö彯O1˜>ÒÆË=N€·ò¢{ÇÌ]#Bòp1ƘøCÔ :“Ò~% ª©è‚ÇÀEO˜f%ºsÂ÷kÌ7–ÛmЊ] Ö5¾!uL*To›âçߪb¥[“L$“ÎoüÒ> «Ï³õr!ÙŠÌËä•XÍ’ÕLî}Œ·½Þѵ)5ißé ò^ÜòÉ_¸‹ ”â«ì0úþ,Û[ÔYÜ[NWvn³~Eqî>«ÐÝ·Õ•±5·yªAZdP~7Œ°_eÑöKÔí`sæ)D‚úä\½9,q:õŒ¸üý©K)pF‡{hê9GB+ﻨ€G+§%fïÝs+§œ°ŒO÷‹óð²ªè/·èÛÝ{¨}íSÁÀ0¿ÐºÉ²£Ž¢¨I°ŠËw(²¡œ{9¶Š½U}MžGÑùòþðÊK§T$°l…¿Á‡à@Me11ÐâäÂbö­"hQ·CÝ u0z˜×¸TÆg­¨ßzj½íŸòIZåšÄ@Xû#vÔˆJ¹pì FÆtB"öØ E—.¡ø»êÍÝ D™ïì(4©Ø.þâÂùu·ÿh ‡H¢éœ¶<œæO-[:4Q]ß;/;90gñ‰½ÔdÓ_ï_ Ùä56£Õ½ˆ›”å#…ˆ?–ú(¼ûQ%„ëK•w“^‹h (T—Œb¸•3@“…랯9÷LðaS®aÜ3.¹uî´oÙ`äC‹4ÙÞ¹«9Jfr3}e¯Xž'„&|=‘SŒÐ¹óVëÁx 3*õ«ÉÐ,¡G7_Ϊý±å¶:l's¤Ëäð ‘ï•A+ F9mÁh÷ ³9*?ŒnWWœŒ‡µGµw‰ÙP”©u-ì³—ø#ïø{ƾÝ<—r¼²|NZs'eÌæEgذ]G§u$¤gvØiÆg Ž}æ¾Ëˆüšy^íe7†t²ÐT¸ºO@Ø;æ7©fq”rµ–âJ;­u…}ë¶ Ù²:ÐÍ™ž ¸Íh¿-E´#¥›œ?ß+Vï`ñùô)(“¼Ks—åér”M™ÔJV¦ûÌçòèkã«*û»ê2µf!ŤÜ^¯¡Çü=8‚>‘±ï0¢ˆSoM]š•Å[æ3@‡>—µ5ơհ{¾ßQÊCõu8Ý«„z?s÷ƒœø®2“ÎJŒÞcÓ íø’6áÀX˜ÄOOº ¯•b×֛挟Š\{DÍ$Ð-€më)×wð.&?…œ§óQ b‹H¯|fæñe)÷8KVúUn*‹½YÁã‹ HÌ#Ú}yéžÇE5#bCj ¾q}ÓÕVœ‹´N YöæhÊäa!Ñtãèj³Á¢–ÖÈß*KºÁ’¤ä1H÷C…Íç3#>¶¾QZú(º)ž5®Ut ÷Aô^¢.)¯€—1Á¢³7L£7¨Ócïο£zú‡û |eÀ*ôxdŒr çFZõËØ¼¹ Õ¸ìŸ;Øý¼šy¼\;Ò×OªÂ®Î|à¿CKPæc1þÐj6×ñˆf ü€d£ø´ÿíÚ9Üè;¹¢Ü»Lôñ¯›£Ž;ä­o x©0¯Ä«/rë$ŸÄ©S4ù,÷ïm ÛQçõ)¥/09Bë¿nzÕ=¥˜Å~pƒ ùô¨I• 5Dõäï} ½Ã—÷èª.-Ò?ÿ,8p8*Ai-l ÿåò4YlìºÙÚ9Êê.Nt…ï§bÕO f’§ðÒžèì“AiÞ%Ýî¤KU$5Z=º }óM±Õ{%ÊÇÀEh²ö¶DZ”(Twn¬á‡˜uÇëH³Znðô^Õ`•»*†îÝTÄ©¦Dk‰T^<([ ß·õ]¦àÞÆàÏþ‚~ ›™ºäošëÔp°å“_ÅOÞÕwÎLÜqú~ĵ†³2”ŸG½F!Q?[!š8I^£Å»OGìÇÉóœ1¥Æ`aÔѪ¯(ØF›J$gP„J?V’LWÍT\Ï¢k]5= w÷®½|6Ì–öù[ÄýãìE¾g­ö8ÏlSð‚Äó ¬^6Ë$ûvÆr(x(ÖAÍiox÷6ZðÜ s¬9“\5çJmØl÷¥"‚Ñ5T¼Sq×6:›qtž›¤'sÒkOÚ$î6^Ëw›fUÞ@Q«Ý_ꥉ‹­5Ñ:Ôþ¸.:Cã€bÝ~îÑ™:höêA2EõY˜¨ÙvUÃd¡n=×0Ô)Y.\X-ã›~¹öub Ø£UÚÍí„n¯œ™ð››ë•]Ÿ§çØãT«H²o!jÎ$áùй V’‚SSN |gc3‘¦ŽžçÍ`G ùû»3—¯Gј¨Ï§'>Ötu7oW<{lf$LÌž?…Ѻ0h-| Eô¿:±E]¶V¥ëü»ÏÞ¢Y ¨o§‰GË^޶úÄZ¶%óÆã„ïD ¨m§ayFŽvnzš1,ãö Èð&Ï!è´B>~|2-™Ø»E\“ª—ŠíOê¼õ^>˜æÞæÚ 2îr‡€~¥§•Ë`ÛGS[-kó2ÛoÎwL;ÐdÈèÊÂí‚sá÷¨ä óCɬÍIz=^uG£ÍBšœÏűŽùð(%{·qÍ,-jÈ_(±D4éPM·FŽ<2²Ù‚hBD™Eó‰(¾gY‡êLPÆIú…Çr¬æª•*0÷’žnÐvXí|ôjï_ŽBj©œÊö8x¬×2h£'hŸß—ì¶ÇËÖ÷ >IãÃÝpÄÕ¨w´bU0V$úñ©fO š»¢C€RkVú¨¦6™ÔJÊçý@‘4=*·N$þ€D,¼óDµ°¯@(gñKGJO/‰Æ“JˆôJQFÿÑ¡˜ýþ:n½ðÝâN¡†{4Fk£æÚî´ˆú-IÌz õ³)ýq¥±Yo`à OóMé­‘É›Oþåg¹*9ô˜nÈd›$KãeEmK:ÝT[þÝ']+9Ó,cm|ËW A9MeKT+K„Dö¾+Í ðå–'êšw\ˆ£‰”mGïŒìm-úœ3Æ~ASÇ>ÄZTþ:7ýuøýhy”^nrâEâ^“Ä­”£ÓÊ‘Ø/JHf?¢W¯jÍÙðÔÆ-¥u¨ø­¿“VA ]«â¡ÚˆÕ(Û¶¶ßÊ[‰J/>ë¨Ç¯CF¨Zôî¥b@övf.¿5£ˆ„K±?b—lXÛ`8NHäÞõÊ3Ó´‹§PŸ-’¼w ìùº0"±Ý¯­V‹¯×îÿÌC@¼Ý…{da803²ÖÒ¾ƒpc‘þäì!áºoi„%á0øf¨Ø*dý5ò´Ý˜0¿ã¼Œ‚Ÿ½Nqƒœr|ø#[·ùìùÀÞW‹ˆ°n{ó®1XÌ‹LøPLcízBR/>åU@Ib;¿·¸´òŠ£Ä/‘Ç?‹kyT.^Ë@£±¦Å3X£:r"•÷r†›AÏsô›ÿ=ˆ¶ýc½Ç#År.5*/>%?ÌuݺÀvÉ‘{$ö ÐPC´¢jÕÆÍßzx ^»Ædžó4+›ŽǨ¬èz‹Žw@ѶÚkÌÐö Ïß7ž›ŒëqLŠo?1:‡M{0 ñ .õb_ M¾Ø`ëµÓhJVÃR³~;Lؼ‘p=…·8®ç1¼ˆjrUSò2îcH—í”7ôC™+ÉŽñè2ê÷¢óy"9c‹ÕF_ü^¢1v1½’Û`»ÙÜ4†¡ô`\R#Œ/±a±„mó?ÀEÄÇ ~.÷Ú1óÒÓL¤±¾ñšd O¸zaþyvUµ¤ñ.PÖÞ=ÂûÈ.zœfrKt«)¥2z#ZxŠÄøXÖèäêz\]`ó{®åWbœ MÉWz¤a²ØçìLƒº™Qâ65ÂÚ™8мž¦ 1ŽJhks‰1 ª2wå’=O‹².«à4YºsY^Y¡ð\w;¿((ÒvÈ ù¡pãÜ;Q?L0zrÎÓOCWÆp}Ýç¦ða÷Õj7ê÷{µ&ôýlw•â>È$p¡I?´Š÷‘qíäÞÂ\X2ˆèéöy’³äÅçOØ:¹_Rñ¡k{êÜ9±½ñõäÏÓ·Ý|´P . ì¡l×n‚|Œ{¿ßHC( )v¿Ih@Ÿxdû‡|³^ØÏY¶~]'ìtt2ë«'½”ôbÜêïZv´ß%2[µôosxpÑâ•ØÊŒ0 &©ƒ`Ì8â¹²¾¢“OLUeÝ¿(mÆ;„ï‡p{¶ïFÃÍ(¨Ãòd§œ|YTY¾¨²¹Ä° ¬£·}Y:å.ÜÔj™ÅD¡ l°÷yå%ϳÃ$5濘G'¿P!GƒHS—ó¿S6gFÔÇäE"Õ@§ŽCwQ Á7\û’]`*b‚M¡ÌÖKú›-æÜw¯Ï Ö,gF[ú{õ%¹u´vé#HPJ7RªÀÏÙ†o+O~®Ð§Dœ%Œ›Ùέ|B~rÕä?…[–\Ý*\âO@åZÕ†VGÏÛ63±$,Ъz­ö5}™ È.Á$§Ø ø„ÐpüaŸëë$Jwì‡géÉÝCkâÔÛk®¬qLš2³í;¸’9Z9¡¥§‡Òm å„`‰[ìòð(-r>$ÿæ!duݕεJ¾¨oô>•=óZs;Ë=…½ØÁ [ðEîBh#N²ÜsƒÙgž¹i´Jþ{iTÿ¦3ÿƾïciUsIŠfaº§É³“»_G_ÂŽˆ4§ç€´LX£îÅYÒ"KBÖÞO_ç¨î"÷­5/s<8¹sÚ˜l[î”…Å^*ˆÍvî£\‰¹‘ÈèŸJh4ÖÓ:ÛmÜÄtñÍ|àösReÐÏnî¬Û2Á7, s4–>¶HÒø\oÒУ™8{4½$©òãË?ÝiŸªùœ=ŸÀfM6¢ÝlŒlr½ÊÛI^X¨;¶ì¥DÄu«År2WÛ/'ͧ/,颾6k°5×íwržM²Êr'õWÔÕ`| ð€v³Dò+' Уؚu)aòílÛ-UÜ!yqúЃCþ¨E ŸÇ¸6æumxªàØ’'Ò€•Æþ¡Oc¼+~gó«Ÿ¢*¯Z‹ì´#V-mù YÜHà‚A`'--Ùç—'”åÔí~\¸§:Ïúò§¶]ªxí¨.%`+zëéî4“³ö }+ÁÈÙÈ/6 ;*lÈ ¬«y^ê/ oÏhò×GBˆ$¯pøžÆqÔi&ñ~:ÖsGY»wÔ àë ÙZ¸‹¯¿Yº³ô[´ªX^_ÿèèëóÆÖ7s92d‚ÿ›mÙ¶Ðòw’¦Ì¤<×Ô¸Bs ú Æð%Ìoý,Pkix„´_ ñL7-ñaaRŠn˜ªY…Ðà/†âµºMÓj¯;*fî`oI.;¡$W™.ˆÃĪ·f*ZD"Ó‰;“Ï["a¯ZK–ãæ¸‘%æWd<6K*Øyh Í6ëÒðÍã 8Í0J¸K!Új¤ØB}è5¿×y˜%µÎ‡nűŸDy1œdØqäA263+>r(Dvë‹_fRÆ¡¯´šíh½‹óùк0Ä8þ&a&ùÍj×G~Á¡¶Å0Qà‡ä&ï+×êdUN)̈˹l@M¦m® ½K¢Å§“´Zñ³€žY(õ±Æ(äA¢Xôƒ®±QÇ×õµ× ûRûÄ—É^ŸQpø¬Ê÷'×¼2ÍÇMjŸ¼´]å·èU:šÎSYªú¬Hx±wìŸæÆZ?z×^Ò€²’õÖð=ñûÌ% zS¢øDð줻o~°‹¨VxßÈæ†ÿ Oý¬²gÔ,y¯V­å†Î £'ãÈT-Iò½:~ )æûòÍ©[o’¦8!— ¤÷-ßawGÜÈÂ@aÔóõ“‘4çÝXÝ÷Ä•é'r†êïïøãM¤Ìù &Ä•<’ók22ìw1éüB;'<¢Æ"Þh²‰J첬“¹d°U#Tš‹þUýì~59©Ï&}.¤Vß°)ÈfÎOjn6ŸyÛX’Õ)\GW™ïe¶5?°¼ðá1nv7¦B¢àÕ†üަzŠDÝÇž8æ˜ ÀÈ»Ý{ÒW ÔL^hPØJ†ÈÉ3-éa–£ˆ×¾nœP8ESæRB'v·ÁÇI0ßWx";‚ñ©ÿ3CCŒ!1”jÊéÒÖP,ÖÑÍÕsŸ)Ó¶VÜw5w–c­~XÕÝ™m1½FêãÔ"ÿŽ©EÚy¶»Ì]ð›]NùkYól¿<©¦ ¼¾Ç>Þ¿Ép{K©ü"{00¸­&"4Fô4èé> endobj 95 0 obj << /Length1 1899 /Length2 12771 /Length3 0 /Length 13954 /Filter /FlateDecode >> stream xÚ÷P\ÛÚŠÜ‚Ó ¸»»»\h\ww‚{pî®A‚ ‡àîç’½÷9Ùç¯êÞê*zÏÇœã[ÕP’)«1ˆ˜Ù›%ííÀ ,ŒÌ¼1f33#33+"%¥:lü‘Rèä ²·ãýW„˜Ðüj7¿*ØÛd]l,lN^.^ff+33ÏíxâÆ® 3€#@ÖÞèŒH)fïàá²°¿öùÏ#€Ú”ÀÂÃÃEÿW:@Äè25¶(ƒ-¶¯Mmjö¦ ØãJPó[‚Á¼LLnnnŒÆ¶ÎŒöN‚4ô7Ø  t:¹Í¿)mÿPcD¤¨[‚œÿv¨Ù›ƒÝŒ€€Wƒ Èhçüšâbgt¼v¨ÉÈ”€vËÿ@øçp,Œ,ÿ-÷OöïB »¿’MMímŒí<@vs  $)ÏvÓŒíÌ~Û8ۿ滃lŒM^þÝ )¢0~eø?gS'Ø™Ñdó›#Óï2¯Ç,ag&fok ´;#þžOä4}=w¦.×ÚÎÞÍÎë?Èdgfþ›†™‹“†ÈÑ(#þOÌ« ñÍp0ss±qs€Ž »©%ÓïêÀ¿œ,¿Í¯|¼ìæ¯4€> sà뢗³±+vrúxýÛñ¿‘…`2L€ ;Ä?Õ_Í@ó¿ñëý;̯ܺòc0ÿþü÷IÿUaföv6Âÿºb&y--Mº(ÿ×)*jïðb`c0°r0X˜Ù¹\¯>ÿ[ç¿'ðöY•AÿL÷¯Š2væö€ß-~³x=¾ÿ0qýGÔÿì à[(Ú¿  þ£=ffÓ×?,ÿŸ·à¯”ÿâÿ]åÿUÿÿw"I›¿üÔüÿømA6ÿD¼ Úüº ö¯+b÷Cµ€o´Ð äbû½2`ã×%±³x: ;#3ûßv³$Èh¦ ›Zþ-¦ÿÜÆkPÙÞôûÅóšÅÌü|¯»gjýúrq~½³¿]ÆÎ¯‹þëzcàëªýïv¦öf¿w’•ƒ`ìädìø*‰WÄðby]^3 û_š01ÚÙƒ_S¯œ}æöNˆ¿/š“À$òÛô7â0‰þA<&‰ÿ".¶WAþA¯‘ò€Iáâ0)þq¿æ©ýA¯yšÐkžÖôš§ý_Äóê3þƒ^g1ý/âø^ßü¿Ï’Éì_Àüd0™ÿ ¾Îdñ‡ç«Óâ÷[þU B^ô/ø:›Í!ëkuc[³ð:“퟈ך¶.¼¯ËÅd÷ÇûÚßîßÞ×zöÿ‚¯ÉȾ¶vx] ûÑcyÎù_ðµ·ÛÈúÚÌý_ðµœç_ð¤cêâäôª­¿vþUWÿÁ½Û@w )✽)_°U]pÇm¡Ãö?ÌiÚ­6+ÃD¡êcN‰ëa¦—‰–ð¡ÙÀç5š”Û:Å Ë­‹C}2ê¤.K£$óh–#Ï;b ‡elÑ4§Ü‚H³¥ì0R¨æ!ÁÄ_Κýé é¾ÕÊŸÄÖ²a!r‹³ýSë.r©2º“ƒÁÔô Ï[G>”1®æ¡mïkR0¶$èp³h|̃ò)l>-ßP‡Ìj±êr§Yv¨ /ó·ùkc°±¡¸‚Òª4P™w‡àŠtn¼<ÙŸó/»ºD©«£ìb0£=×ë—½3 óîOY˜¾6˜¦×F‹yºÙnÜxW»oèËÙÚùTzvØr¯ÏcÄFÛóH³Ëº#ƒcðÛ"È+—6¿„_“T@Æ™A”*æ~¾¿ À´ï€`Ct- ˆ¾?ô|:„Ì(":4x”+ãðiNw[på A .пœ ¶¥*ù˲ۊ0=©²5͵Òb{uÑåã¶maò`l„€\¶'’¶”„Ñ,}°–¨cQ±U†ƒö>Fwˆ¬_µæDÑÌÔÎ#w” À3ò”íf^±Y\f  ’êv’¾˜¼Ø✉i®ÝŽÂ5]h‘“ãCn5}Êì[7¾Ø·ÿ é¬OœTHyjÆzÑê­Ø^9#-x-îs}¿ô)~@'µã¸¡–ÅêCUE)*l7‹IWk–l¹±·Q—eL‰‰M¯›NЩ©.³UÒY6—Ç­"Vš%¾ZsH>ŒŸ¦Ã3ÃôùœÀøaÎq€Ð†ÝSsÿrÏNõr½›Ø0(\]O é韬bl棉JÏ U‹]sf›üøÑ:—Þ Ú$!ãÌs´Þi4„ÝPvó sùapâžå”njcæ Ú‘Vc눃}–øCÖç¨.wÁóyéú{]R}u‰›^« ÕáH_&º¤­-Ü@FúŠ ÷–§ör‚CÝUNæ'i2Í_ËfMdMþ|fìùêEh ¼ô›÷®ØïLå>Ò.ÏñÑyNâÀiGWcz¢Xު̬¹ ;špn³ÄÈÜ·NÈ¡S…¿}ÿ/~`ÞÚÄf%÷;CaÝbs³JixeK¡žÎ³Éð%(wû­µ±ü¨Áò]šú¤2‹×·,l»ÜˆØïÙ’‹^&êcæ°¡?s+½"ä§©Â{zG´?ñlޝßÿ:i\ ÀZÜjPÏý1l¢ê–1³Á‹F’ l=Edº@ˆhÛ#&êÅÃõx8nAõ Î ï,j絑sù_8‚ƒ×Íï}z0w¦’hjB¹¡ÕTg´“=Þbòg97°Z%+tlµ¡Sö ÔøÔ²î%8Ô[Q]&fk¿¶Í< ]]#CM‘WÊ™îï""^ >~}T·Ÿ(¤%Âjù:zïQè¿ðÎ –"]c‚ȸؿÎÿ‡ ë6^¼OÍ„Ãü:RS^,·/¦š2ø5PœÔ†N ä·à3ÿ •rÅÃPV}SñÆ ûå‹À)ñ¸Sz»«ÇRµ¥m¯´ÜB­·ÞÕ7¬F…Ã6zÚÆ/‘®>ŒåE<ÅokrÈ9;0P:û>qPœe¬>rAÌ'†š5¸íÑpKcL%œ=¾£ÌÖ¢ áƒÏ6'‚n «Úü?¥ubj¡Ý]1;±|ü·$(2É3M°É¨=­ÅUTMÀ|õC¨ûV…-_>Y#m)âß°WÎÀ²ß¥_­Õ/¿X‰ÐfYL‡©”×Ö!PïòÔ¨ h‹9˜ì óÝö‹Að÷©$u©£óCîâ&ðbœ "Ó:Ú ¯ªBà0¦Í•àµV¿An–攺Ü1¯üбfJ¨¢ªæ¸Fþ:]z×øýB@-Ú¼Žæ‡r“#vílÝ1f—1+\A‰Yë:ÿ:2íù¸®¦Û¼¡xÔš›ÌM€B˜Í½º4ѰÝô³Gæ ÆààË£sˆôrV¤}é„·>) Z?}k‡Ð³5`E±Š*™ I껋pc(#$ßД̛ƒIIÏ$Šâ.LrP6óæœîŽë¹Äˆun>µÒÒLõ´”÷K&ÉÖ‰Õ:µöîßš¬ªNRÝ êÔ:Ó ô<iìÞ µekîÊ6á“ÜÁÒ‘Z‡äêâz.™§Õúc¦Î›ËЮèšã @*`â²ÍÐPvœ—U¡':–W5)QÃtë1| ‹Æ'É>”íG”¦!rR¹‰k$Vá¸)ðSÇ3‘÷aœà°Æ<Âû% â–¯ôÌ…ËñþŽ7yž>_ÃW^Y(¾qhä­¢XÕŽšÂÍwÐéw”EÁdTŒÁÉ_áÛÈÛçl´óVï´ú?‰pïEQ\Ìx_d“5KF®ŒE¶<ì/Ê'òú!š©¤ÈÊP4µ¥ôë SÿÀõUuÜÃúU «‹—àk>‡ÅCŸò™³þç[C–û‚_7Rûa‘=ŒËG¡ x¤Ë9‘Ù5êÀMù7­“àö\R¨S8Ì“£=„ü϶ÂÓ´¸qêØ¢^XZìîtäŽ$ Q|cÐ>‚à~ÙDN‡ªàÏ«&ì:˜|òîcôJ5­ ³¹eŽ-§.Á]ôƒO£;'j!ZøÐòì@ :G7.Ak (O”ޱ… Y{»ZÈS^SÝeÚP0Sº[“=‰¥óúóìïN0´ûXûÊO ïWô¡ŒJ |1ølùã€Æº:³„Àm2+ìlðöÖ]ê…1>íOéWhƇ¨«êMIlõåŽo(ôƧAªK5÷ÎæI …?ôlýM­YìkévüàÃÆvÖ ý{%ÂLN£èŪ/û©BŸ´±e 2gÓ :õ–šú¿¾ü|PÚ¹&l´9™½u:šœ­ªÎ2ÿ.6[[6תsã:{i ›41,’KŠN½ ¯°…?†€Ž}³gP9õ])¹Öfeò›‡ÑU©'‡Dt¾'Åsà¨éñ*ó¨µZ¤ÃÇN‘3HË'g¤Îp#ÙñÄg먎Ö1) ËYª=!œ @Öz¡Qò§Maž(²4{=aùDcõT}U0Òšgwõ{ÚÞ_|¡ SÛ!‰öíê&?Wº9¶ª›»;Y“º?ɹ;²õ­5—WfîÇ}óžÒš§ g.Ø‘ˆ®nKbiÖªÎ:!›î†:SlÌ­gå¢_Wd@ø‚¥0Kì&¦¡xþÐäÄå'ë¦m¯5Øý©$û̉\¬àãƒP›GEÜR”_›Îyg’ïížú(LÕü 9Èʲۘ“#. ‡¥4ùn‰#̼ãæCöË»hx¹t†&Î18¨°;ËoXºÛ;œ÷„ã‹1ÔOìpò}ýw^:±:‚ üˆÔ¹Ç)VÆ%eÛšv÷•íNT€‡âî|è"“¶™3þú~ØÒ íš,XÁ·7Šê?­5ÀXjæûKê™Y"mc¢pU˜e«©(ÆT©Yîˆ?ÖRý9©}Îa×¢Pñ›‡þÚœ^Ö²3«£íɳP6ã"¹¦û>¯ëkõVö@ôОœ¾%Šù§³èë°]Ö‡ë_ÌÖÝ{e,%†‚J‹ôôê =>(m'2Ç™¬+øUïPŠÂ ÓŸtjR¿'˜º7¯!Ìb`]©39u?“VŸŠ|19è*hxز© ´ñ¼bÎ0öuÞMWSd—ÓkZ¹Ø’xw®j7ý+™ü`ÃúÝJÎU‚°Zî½·,ÍË•´4!,¶}Ò´«†8?ÿhÊ©~aæSáIrûYBÅÏÕ}©oC½‰0Íê{2 7QܸìL ÄÞ5ÍÝïrŒ8 a aâÁ(XÜÖ#$ ü=X~“»ä¬œÖ7ˆ›9xát$|(™ÐRK~~žÜè\jNT¡uÖ×[ã›ðÅiQÆ þá})o±ßÔ½Ò®Lª’¤#!ƒåø§j™SG½'gº”HhÖ¿m£K&ƒR”r ÜëŠÚ`¢Q~î ¼$¢?Ñ¥VO+ñl‡ŠøŒáåé!mx Ñ ¸F÷~Ö€iÿس–Ç©f%º¸É-"¼»-ÓO¤{å!ž´Ð g«Ulø.Á$Êø%ÅÛCÆh­²dlìm<èÜÉÀ(ûIÝœmXD˜jÇC¸ó÷çL ,ldOŠ=ÓÍGð’;Ròå5Ý.-WÓ©ô¤á­ ÿ‹«³’kú›ú%ëï©fÚÎ÷)Ò±µAfÖZ\ÛŽªÓüC$îHW Y®áÐR“Ø>5:­'ž¦é³WÕ“ 4 Ès[͹5ê ùŒ”M-‹¨²7ÏNLµhÝT,’ê>úçlyk%j”DT -1:b…I&w›-Å1t"n8rˆ¿:D•ñYœ[Ä6ZNaü°ìÏ· #†úêáé¾ïÓ\«‰„T<­ÖC¾en$ùõ"¥y3ԘʣC_5¨Ccäœxúc`@f½Êß„rÍUJÑ}èÍ®]‹ì>h§¥ PçúÌíë÷.mz}°Û&¹›§‰´n ³ÅRö¡¹¸7—(ŸÚ*æÅd›WÀMHo:ÈŒ9ÀlÓ|ZÓ0îÌ¯ÙæQ1Ä2ô+”–ô£$~ÐE*CiÿRý†Ÿ§=GÐpÑòçz³ (t ¿Ä‡ª~ìÀ°ƒ%…·~ò­ŒBÌ + ß7ÕŒÄ!¹ê…¸%ü&EHàºæÕé°º–’Q(Ñô;£’;…{‚û.Æyì­v ~nŨ·œ¶á s=YÀœý•g±VÐÙØ(ˆwV«ƒî:U®¾£ûqNÚm·ÌÙ1L½¢Ë2ÓiñàB>‘ŠWK'òKGz<`Ó¢¼°QÞL0:" R.Eøí»Þ‰š"/w^î{ èýâ5x ¡Uš­YUÊ©‡Eûèfÿ´=ÁHN”Í/C¾4iJ ˆŸË†´Ý8Æ™ÈG7¼­ÓK©øLx«²Ÿ»¤ZÖI†®{³‰˜®íßY:L©ïS~¹Ø~àšK-XD;q0]z4ÌÊnÙ±wÚæ-ÃÈáÒk¤¢\ðk.Æè¼,UEe¨iŸúî{"^r½AIÐjp ¶ÂZµ}81<‡­‘иª¤B)Êz¿ÿó÷1‹Í؇óÅ5H;¨gˆ.ŽA4³ŠÂÖøc¹/‡˜ºòˆ-Ž ¢=MýÂïñÃG8÷É´×'âî%pšeZO9oédÔ{)Âbž'<2ÂNßH§8€Zw^4M-³õñl¨–Öò$ûWx[ûЕ ÷)Þ G“‰ó–BDa@„PÒ@Âaãmf*¸'> ‘Ê§Þ õ™aÒÞó†Í1Ÿ²ês¹Sµ±; U)swÐ1B»rg;šð_ÇÖëË«„2ŸÒÞ6É'ÏÓ5 íËg>î=‹áWá£A§ä úÛŒ ŸNéùâ«ÒáP¸öÛ§ˆ¥/Z„®Á?{Üäîc-yÛå$Ò²¤äÕ”ÀÞy[ºF‰sÔ‘ã(ƒß½¿Ýîj`|#•/q¯&;©5šòöªšÆ¯ªRG3ÐøÚD¡~/o(#/ˆïâ );CåÏ¡µ†R­ $dH ‡ýQnz1òK–Åú¦ GäÌ¿¡¢éÇQXÈ4jÒ¯aZÊñï¸‘ð¸¾æØ¡ X«ª„édÈ+ð²‹T|ƒ+O¶ƒ£á>—¯õ,Z0šƒü é§Ó°ïüNÎtçÆ¯Þé%¤"¢æû7áB´)Ó ¶Aê]mœ.>ÃU_ë ¿L,È&ýJ×Sú ”SV;Ë—£÷™ë5¦pSå‹ÿÁŽöU®=»!n¥¢¦- -©Úȶ"·ñ"’ÛÌuV‡h=/JÒò,$ïMºÉAWIs‹6MMäP.t ò £Ô §ÈM»éT¿ìà]‰ž°ÔXŽãWGRÑJi]¬%gƒ×øŠ†£ÉŒeªSîv•eõÕoS‡TgäÓ'@Éf6gÈM²$iÚŠÚõû¶¼óïRå²íÌ“¥ØÉ>¬Sí>‰ÄÎà¾=£öIËxÄgýb€™X˜G6!lKÁ` »pÙª?âë0GÃS•¹*[y…›¨¶ä5…EjK4˜Z(ì–h±œyÙZ¯pÅÞ/Có•&Økz"ÊU-ääÛŽ¼ŽgtÊ~}K½]Ë$Âùö˜¦ø’KŸ,Ùkk{\SpP£$>Ûr¶Í/ãۈňíŠüè±®úk² ÞÞ_ƼI|Ÿaµ0mèK=®ÓŒoø]T–êá–Š*Hœ×œCÕŒéc’–ý¼fYÆÄ—4®šÕ°Qü’S8Ï…µÁƒîäcÖ‘ºÄ`ž43 ß_§ïz¿²ˆxó°¾Ç̽½V€hsŸ1[J­e×í[@P/t3A$Cɱ•î¡åh~Pâ^éHÖ8¸'°4Øóˆâ` @ü‰êãü]åüy>kÃ'wk ü M2È"çpzÊéæûø |)ƒâ%}c¡€ÿ²Äʇ ¤.ÎØ7ŽéÙâcäûtBŸg>è,„c‰YR³IB…ÎÓs&œ¿«ÄlùBÚÎÿ‘,Õ嬖)9hùI-!O9¼>œ7ukš ñý¦‰wN"{-ãæߢže~mw£¬X{GUÿ$a_ü9î¹²ƒæ›r[ÚP9ѨVŠ>7n‘øüfÐð±ò!·S÷i®!š·v+œ.L!dk  ­ŠÛˆÙÔnb4oÛ- ÓFÒýð"0's#¶Qð'ËOxåÃïÔ,ßZId† ÌòV+ì¹e|û¤©vR_}‚Þ’öAœ=(ëVb6ÂÐþ²bòŒäË’»ˆbhœwµåbâPÚP,.ÓßÚæ&£;´!è¾”èkp˜–mλr—ay›àÏ‚’´ŽGBvk׿_èøÃ|bùk,¤I¨ ‘­Ù÷›,èóˆBzåžãM Ûû7A³åß*cŽSÕãd=˜ÔRöËQÃI_…wË5\UI"SeÛ@ W¦ó½ ù@_z£ùU½Sª!g©iÖ;Ö½Œ%%‡nõ0Å3ÓÕ±©1ûñl¹Ìuó½w>¿£á¥0·«‹Ýü‰=5¾þÖÂõÃ’§ë©'ò£¥n†°f©;Z’Ýò$aMÄÐu]”¨Œ­h¬–s—Qˆãq–å“×ÎðÐøQŸ=á“úËO¹óÕ <…Áåa[iád©ÂM»°úœÇ· ,N‹ŒA™r5Ç-sôUFzã°öÜŸ\cß Z´„,Zï‚p5ÒÜŸM}âã ù‰¡W‰Õkû´³³•¾Ï5¡†Ë+bJ$_Œ­“G•Óµ×úßd|:桾Q¥*4ÜA£&n/Gì)EÕ`Äã7KÀì¹>·ã+¹ÎTNK‡—¶¦ñprciä'“M¤r _&L\‘%Ú+h§‘~]M”@p€ ‡t¾%ý Ò€+mÆ¢/¥æ)c+(‹Ý¦dü@óŒ»è!‡ëÒÙuMÛA˜äº“B®×†»½i°­áøØòn?ØQ¯ù|zì›à}„Ò9í«úÐÓÊŽN “{c+1ê.M cè¶wAÞÃóôL¶«,Œ³SðÅú¯qÿD ¼¼`ñ´Ž&”i'µT'°£Xêv$ðÁ¡(q4!­Äî×0ª|÷YOd6)hÈŸQó<-cMÊEàO]ãüˆ…©sRëÄ…<â~µ_hõu·‚úœ¦eÌ`콑"EŠKðQwHšÑZßóðÈÊWm %F׫«†Nô,Ð{¤7ûÏ#›ÔßÛ½\Aù¼àƯ‰@ÍVÂ/Œ#°ÿŽÿ?؉  ¸(´§»dÞ‚†×å¡7øJXb»àˆw’ÅQÀ›]¦§;‘pwî75W°2²mo!‚;FéSڈǷ­' 3Ïœãv ä1’ß=Ï%^è¬@i‡)A+sÒëÑ_=œÛÑÆ Óñp°«Óõ=úPÄL¡XNÌñ¡A*î¿kÀÔP˜[Ãõ¡þœ¨Žÿæð-¯ŠÌs’@"…eöË™\2ªŸÐjCM•GÃO²Ïå©Áµûm åÒQà6QsHv•Sô‘7m¨æò{`éVÒûÚŸ*à\òÁbm™ÓRsÂ+ŠC_:”IÁÐd甯ÄZàzÇyjù  ák©å¹]˜[ÿëî¥ö¥Ÿ’š$÷‰'lâ'˜‹4ì;hßú"œ9èjhX®Ÿ‚Éî2Ú7×=éf¼.÷ÝϽÕÒÅ”ë_9 ¢»ú‘QwПª‹ï{õÆÄëF­Ù¿1Àî$åFEjå˜Õ"L¿Ýû¢â-j£*õ«&¦T¨ù‡vÙg,©¥÷Šë(ôQà+UG˜¨)™!ÒŽså:Ü <“õ ý‰¼„w&ÍŸD-IlJ ·ï+Žxh&C¬==d9¤8Š:ðèe¶‹1Jq$…¦}‡Á‚·µÄ+&ﮌkï£\|ÈZHðãåìFMµ‡›‹š4·îœyº1^„œ+­föeÇ}ÂJŠ$(.¸]B6;LÃ&õ°OÉUì¾ÑtÌBié©Z—®¾X}ªP`}ˆãÇñv…ö={°UC¿72iCÂÅS?h¤ªÉ¡DÉVI’3)"˜j>=LÚêèâ?rÕX [÷)à?ju*m!¯j Ó.ÁɯÜÒmˆE Á•2…__+JãÒmÎxîÈ·è&[¸«oïÖ5‘“m€^Ù9¨-¥´3+}"”*®W¢Ž¸0ü¹Çݳ²0°\r…kègzÅvùÌfE‹’ m.>^èÝ‘‹¾:)ê [”ûñäNóîséZþ$— ³yÍ!×ÂÀtB­b|¡||U-6®¹äÁlf>J÷exð%Cþsýì”Ü›ÒSK;ąñ‡R°0û/OÙdˆ…ÔQªÇXBz£LÊ®ËÓÖ±“¿+ýêÓoöS6FÜt—AL¢Q36§’Gb,.Þðý†Í8艵Y>Öû ?ûô 6#2ç„?–âBl"H46?s›Ç~˜žÜ˜Ûë$~›´‹öÁ±d´sÙÙƒD¥h í3¡ÎQñ›uŸ£üï×ÎOèå±û2`M°šÜ~LìIø¯}‚¥ÎêÝná6ð~ø>´žè¥2VòYxô¯Š ›ÏY”¢´ÿ 434zÃ!§e~)m›mwƒ[ž.½Ãh»süâØÍ\ϰ;Ÿrê‘öM8žëÇÃ˸/‹çV!î Ì\ý鉉r<ÞÅÒjn˜?„ÍôÀh3|¬HÔ[/9Aø„Z6hõî=´§ð»i'ÃPÒkÖA–:§õ‘hFïÛÈ,Š!~Êq«ü°˜E•ï‘ÆÒù“6'f8´Qà§ä7Úåä¥{ä’õ˜û²ÄÌÔ>:|%3p²o{{À´„(]’æ€NðAâ±1&YüŽˆÄå늊讕Rwj\j–Rµ †qw‘ÒB¡±ïV· #ŠÀ½]ÔZ¨Ú´äc.õÓAL^çNm"mÖÕ¤ Æ¹õêzaÈ×C#ƒküÈÃyQñµêG?Èò.±’7둊80Q¨L¥9Z\;–f%c¾©ËêÎ2û`( ø¹"©¯ùòð›´"쥤}34Þr叨ðJ“­û/HLxo¬ìHÉÿÐ&‡kÐynÅ›þó$j}}ÈP1<¼œ®M0ë­IŒœLË‚Йesã$ •’†Lú1û ~¨”ÖÅÉjŠò±÷ ´•+ÁÏ/XMeLœÛŸ<©ÝO.kÌÞã”pmX:d–m¨ãg¶Èt%úÉoÂz‘y¦G¨}FÊB1„œçD?xW¥+>Qá˜~ íV —¨Žm1CмáœS›kúà^‚ Ð¸CÏÔõixXüÈJG·~…êö@)à;D˜y S¡»átŸˆ`&ÞŽq÷…§Í…0Q,m¦ç›]å #¾n+Ó›•«cÆM­V"Ó•<;¿íë–º‚ÁÌLö•œ­Ê1ÄžPÓBŸózwHÛ•³åiaü“µÂÇ&Ä0"Ú26=› NAêÉñÖ¨‡¾×6üBÊü’üc3ÔbíŸ#¦²%‚¢iõË7èøƒÀÝÙ4*7ŒÜÚ¿YˆÒÒBÝIȶlýôC&Ëï„Oo°}øÃ£v—;­ï„M¿D³ä ±°ó9¿…GôÀ£äKûµØpßä¡‹ÅÛ“OcF•+…Ø-Yòg+~sF“jw¤&gׄ¹@¹:|‡›#I”ÄdÞ1©ëìë…\·s0U眕œz¸­¦gþ‡ŠšsKú@x(¥ÒÓ‡‡ÏpÌ}Â(oÈÂ/Es¼4¡­.4=ˆkJ@@ÎݬòÙÐÑKäŽSŸ}et.kèOóT¿7Üí7îæÚ 8ê‹BÚÁH'»b½aZ2«ô®µýàåÛ¨fÀ‰;í#&áh_æ\&B^¦únà  ]à©w@äšÓÞ Fè¨  G†ÄÊ·£¨†¢=~á:BØ £3¾ÎüpÛ8|kd5œy¼3*”YOhÚÏ@f»’âtªM#HÊ HéõÁä;›ì¡ââî²LÃ/ĽՓ–pÿ\À‘µa&²þ S½O¡‚£iï˜ ³ÜAxçþk`¦Éǵf•ªÕhçP˜¸¥[±Gg=_nm¾àÝÌüí—àpÿ² Ëœêfê †{*؇q6‡SWȡёJVyÝ4 ½º3[ÊGj݉Ì]!58W•“ØoË˜Š¯ }N[|Ò“X6×8A¤£Îlë´­nlÖ]ú-ˆe¼®Â~¥S„U¿î6ç°'n-(™5õS¦ ¤èK.L†¥j:@wxÖl‡½³LCã~dJúƒ@’H8«$<4åSÜ¥&QW f=é˜ ƒx^QFÇ1ƒ²/ŒŠ žE— m Ê™JÛ× ši«‘™QË»˜Cúù)ÇR»$óD}²M—þpöÛblN-½G:ÓçC‹­mc¶¹–"ñuÍ hH½k϶ ôáj{Ù¤3,B~¸jA¥qT+•†gvµÒÒûlüh “Xê›™O•;<‰kXSHb2)žš…;õ¦6è×Ãl““ÚFìë<—,×6‚,À²£¬Ã0›ÄužP©N¦³íÖ<ê úi˜àÛä -q]9iž†_ÓT|0¹ H|Å­ëS÷k_®äÏ]yï¾Ø‚ƒ#ö¯dâA„(xa”É~èhÑ+ Âl^|õÂÄAÝÄŸNËš’™5æ+ ½éÕøŠ!æÚ(+«}¿¦Ðà)`èo¹Å«„D‹Ž™æä\äÎ3´æClp+¢¸úà¿6Žc'ŸÞÙï“P•k+¡ËQbòm@s‘éçåͶz¤r“hq¾8;hòFd~CR‚m‘vX™$ëW£ yªÍfA`‡{„ã R©‘A#m?‘s’Ošw¦9÷»ÄÔn¹ƒ`Èv¼£~ž…os,? ~Ô.‰\íκkº’ÞÇ÷Ï?¥ ”f½Ð'sCS…FÀ!,-6 1Âø¤)d»;V¯Ï§ÎòV4ò[>9cø»û:Ÿï!3¤\Ÿñ+PIÐú>âMv‡üˆC¤‡ÝKÙH-êTwJT`õßr'u-מ…‚ ­Æ04ŒÐ/Q,²ï·Á‡ÐOD|ÜØ–uïôDùg©DC TкûNš¦ž·ëŸÅç@ø¡hÎ𤬻è`•T=¶#ª:vŠ÷GA·èµÃýºt±:ùÏ(O6í–Ú;r!+?”œ‹¿3’øÍ. [n•ãï!–;’B»¸¾J‘7ñ{]A3ð†,GöcpÑ|—«u=1HÑÇ„ÊÏýY‡ÜÏËÉ4@H/±#3Ö*ôbp>LwêoÆã“© ݧ™T±îȶ§×¤³IMéÑŽÌ­FûöbBS Wù;B †)(…zýâôH)ùæ¾,[gFë%"Ò‰'«çÁ?Ï~¼%Ý䈕~Ô>Ü(L ³ñòÂG„8æ+Ü4l¹U8tgä•ã¸8ÃÊ€(×tS~5 wºMm—_u]žžÂÏí¼üõG¬zHÞ‡^X·5aôsÉX™' r¼È~¬©{p ´`W>îöÛL‚h›•k“qÞ´®}sÒ'\™ª×©ð5ç¾û0-{º I+]-c{,/§×vn*Ž "ˆh‘®ú +ÕŠõGUÑ2nò¼dìµ;¯iŸçœŽQ´{ã 1€¹×Oï'!y_åÊ®LÁ˜ú (˸šC "ÇÈNª'ƒ¸d½è{Cˆ„Jõ>ã¶Ÿw ëËC¥à›ÖÙg¹£r/Lœ>M„¥ÜœÅÉv4BI :ÛZê †]€öSJ,ôYÃû°A]l¿æò'¥çU1«ÝÌm4ÞŸP? LïÒü÷`F-bŸÜ`ªúÞÈ@Wí ™®|NI*!†v~y$ ›ð ‚–š(DóÇlÓ„ôët§b’+;ƒø®íäÁÊ̾hìNuÁyMb__ÙÒ†Ž­(‹xÒpaŒ‰«& â]®x†&³*Çlޝ96˜Æ•,•i­²UΨDõýtf£OÞ£ûŽ vv‘Uɉ†|åÜ'Œ$ß3½a„‘$çcnñ„>Ÿ–F|–è¥åYISêìOgß´©ïªNŠ¿à´V7úäAt·I~DñF‡½¿> Y2/\§.Œw‰ ŸúÊ*)NùÌ~å°¨äÍç6¡ýô<Œôm?}Á9Y–ø<#pïëà”0˜qÙŸ??}…Ϧ²l²‘ k£—×ÄðUMÉCýø`™€©óç°Ö7M @Å…Ò= Ó’kúÍÞW[29‡~­e} 4HàhÈS§JàM„®HýÃOí¥m²ÎQ!9;¹{ÃiÕx%hÔ¢ŒvèéÃ^òò!Éá+ÌöNwX÷§­úoQh·ßí ˜ÆMeçŽNP(,*tc‰R„Å].9åC¹W¾}öM4P{6Š9Ø’‹z&Ëéhqûù¥•_lÀ­òŸºKÓúå-nø²Ný‘V %[Î÷_z]ZÔºs;ìÆŒTŠDô¨—æ²rèæ8¶1ÃOìÎÕ[ê-bÜiš¶TìoÑ[¼ Pë!‰Ï¦¢©àœ6oÑšÒãøÚpRí­Öâä_ˆ° O5jߢ-¡ÐÓíNMœË¢½¡†¹/4µr.ùD¶9U…6Vp;Œ7Ñà+ߌ†ú¾¾ 74§‡ëÌ**¢K·ì#U®qÀ9dWêïéÁÑËB*æ'ÿ©1ð¶L'2³CîÛ›@2i§J ³TË·ÐD†0Yßya¾¤sFaEÖ3„ÅA‘.n|¹w&J1áUÒäy¼Ÿo^;êéê«^Ýú8±I¨ì/ÌøýdžNH;Úã,‡JMüp€“®MÙjmÿŽœhÊÇðþ<èLbY;+ö Wéq–Q" 6‚VŇË®4¸Ý{n%,GÈÑ´`„÷´ 8ZýV}?ÌM²k]·Ç_ ©mÜ]2ŸÆûÃLÑꢲ¿8T&Üè¿Éw6n:´Cï|ÀºÀ‡–‡1‘Kâoâ|ßXßO¿ü|NcE%ñÿí†K± endstream endobj 96 0 obj << /Type /FontDescriptor /FontName /ILWWVQ+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/A/B/E/I/L/M/N/S/V/W/X/a/c/comma/d/e/f/g/greater/i/l/lambda/m/mu/n/nu/o/p/period/s/w/x/z) /FontFile 95 0 R >> endobj 97 0 obj << /Length1 1465 /Length2 7022 /Length3 0 /Length 8006 /Filter /FlateDecode >> stream xÚtTÔk×/)(J7ƒ´ÔÐ)’CH·€ÔÌCÌÀ0tIIww ÈHH RÒHƒ´ ¡” Ò‚|£žóžï¼÷®uïšµþóìÞ¿gÿöÃ΢£Ï'AØ@A8ŠO(PÔÔTÂü@ ;» åýKMÄnEºÁp©ÿå ˆ„Z£0:%kÆO¨»;…‚bR‚âR@ @”üÛ”(Y{À M~€:u#bWD¸x#avö(L™¿.07@PRRœ÷w8@ÞŠ„­áMk”=ÔSlíÐG€aP”÷¿RpÉØ£P.RžžžüÖÎnü¤,7/À†²èAÝ H(ð 0@ËÚú?;ÀÀæöG¯°EyZ#¡ŒÂ †ÂÝ0îp Àè«i´] ð?ÎxÝ @_ð?éþŠþ•ÿl #œ]¬áÞ0¸Àæhƒ4øQ^(^€5òËÑÚÉ ‰·ö°†9YÛ`~wn Éë¬1ÿ‚çFÂ\Pnün0§_~¥Áܲ2¢ˆpv†ÂQnD¿úS‚!¡`̵{ ü™¬#á ÷ýK°…Á!¶¿@@Ü] á0Ww¨šÒ_.Ñ?:;( ”–@]P/°½À¯ôÞ.Ð߯ßj _„ Àê³…bþˆ|ݬ= Òêïû¿ ÿ–ˆ°ÚÁàDÿdǨ¡¶dÌð‘0/€Ã=Að×ï?§'zAp'ïÜÏW@OSUOEçâÿØ^_LM>!Q @PHD Ž9øÿ;Ëðÿý·VÇöWoÀªÁmAà ˜Ëû‡Ç_´àúke¸ÿ.¡…Àp àú‡úæ@Q óüÿ^€ß!ÿ7ÞÿÊòÿ¢þ7rwrúmæúmÿ?ÌÖÎ0'ï¿0TvGaÖBYø»Cÿ¬²&swþo«Ê³òp; ÅùEø"ô07Ì Ñ¡Àöˆô÷,05œ`p¨ öëÅÁDÿeÃlØóª¸a&öÇdí†YAÔïáþ’¡˜%ûwÊp0òk…DÅÖH¤µ7†IÃÌÚB ^¿ùà‡#P˜³?À$ú5fqa€€Ú/ÕoIR `óI(°ýGĈ.ÿˆB@€€×oñ_Ý‘HLË¿‰„i÷où÷c…zAÁDó3°t¨CmhëÙ+yzO¾õQüýŒ3!¾Ñ焨^åIËÕ$ýÜœ…GhÐ| È¡CKÁõ,ïãìwßÏuÌõÞ"'|Ì -;f›„™ëì©dßS†{3¤MX…Æi LReÈ^,Æè;oo>„Øõ곓úqÖvÏ%{rP¼‰«‡µjµ¿}õ"GƒŠAÒhwMÕl3`°.zDÙ¿æò)Æ<2]+ëÞ#™ös¢$Ïê;+ýƒ‹w{;£ƒÔ=‚׿±=CÝU–`P!¨6Z,º}™_汓Eæk£B®H¥¯YÈ¢GC4 X”Ò¼Oc~ÉJ`âiŸL´CCÚV”µYbxš~.,Ú"‘ž?u/Ü.Ê"³Ò{ÚÞ<>8I}:¿2øÙ‰øíx W«Ÿ}Å‹ÃÀ€!yýh‡Œ*°)¿qt†¼°‡ì¾'H|Ú¬"˜.ã•×ûü0£=LÊОÓü:ÍÜL¡cd\@Ø$L›qí½Î Úpƒ2§…ÓQF­ïÐí3„Ö%W´·CÝ›˜™p娥+K-¿ §‘ܸ tË'6ßÂñ4#ë \Fî´)q‡”Ç ÞÇÙÖ=kù@¸È¦|@³W²Tò"öéëQài‡h¥:ûC\ló1»Ëâå$a2Bw3‹ £>„sÐLP]áIý½ù¦;!ò°HM4Ö}r.ñ§Ž$EÏ<¶§gu=ä•™õ›ûiç}9Ò–¿U, „š/DsÉ«¾«T°%|¢-ˆ.—3J.œ_C¢¤FèªÚ¬”jÏ?Ç†­c…€¾?1/f> °³ß©¦„qŸkà.bÐM-ßþ"‰Œ·”©,y³TLRI ÈPN»V°–I[¦i<ãjŽŽq{ÒíË€Òà^¼?n«§÷ ¼#þá¨íâŠ/’Yj bî_3:P-R³'™®ªÄÊÀ<ý0.àflmrløô0]•:Cg®ÈÉÓcÍQÚ½É}7¥ iI•úÐNËi˜F›âL¥Ã¨ößq³ñ‘ ù{KKR÷ìºôàãÇf‹{Fvrû0Œ›Ýæ$ëbCÝÁ~ ØÜaÃðHZš^ìOj Rý¤N:ÇËáoà{©†g5ºZ;0ê&¦•Ò°!©Š /”aSPf\JÆ~ò–qª_{P·8ÑêC¸iö,G³-Né¦$ê6Ý“*±<óè È’f)¼‹›‡Ú›2\{EùZ@~›Èþ:ÂKÇS£Ðg+æYç϶ŒQí/—«8rÁ|säÕ»x®BFµgG”ã`ÏБ½¢`lS“‡¢û1x÷¾D^µê÷ \ux%mz"u³OðÊBa+ôýרÛyÜÐ/'çH]ž4' ЬM¬'µze©íª;u¦H ±þô28ïb_Ï÷MÄ‚r¿—4 V R$»„€x4±à +z¾È´·Ás§9mîàݦ^E|°h;, »½bnT/´ÏÅî­AÿBKMüùgÙFãnê Ô ö±ÃFƳk• î©OytN¢$=Y”";Ûb…h;[kêÖ¦ãºÙJIRûêDgÜu¼ãe®F»—%¶½ª[PÃõ¯q‹h•Á44kR¤DCübô)ýõW~ƒÄÒu^7<Þm:–Û}7ÚBë*ËâQ‡šï«]ý1е-8¢<«·¿XçJšDËjU\ä$9íŽ3y;ÝÀŸt0§®P=]Õ¨>I8gíôµàîO'à|Â>GÄ\d„²çREGÈ¢Ëð'™35‚®è¾6Ó»Öƒ…6ÜÉæ îÐ:>:œ.Õ•yE¤ ßbjYΤðE“­=ŸÅL‹ª#°S)ƲÙ,ϾҕÌd×jšÙÿ`¯U‘+JÑPz—yc'šGw¬åwÎö“³ÐÞ²ºLßÑ|Ðly{Ç"'<¿Ïñä·Ú‰× [ÍlBržŽ×Xax0Z¥²|Mh•7øGð"þ`ïéÒnéd¤à}Æ>ǹIÞc±ô/D— ËqŒ½£ §EWâìôöÊ¡Ô"}+¬-´†÷‹¯8!ïZŽíè³NêÂòj‹ö˜íYVÞ˜g ;/›¹j-Ý–²\ç ½” °e6 Æ9à3›ËîÐÝñt\qIw“|]8­¨Ò?ëy³~ê: ß]JÚÉšP…,½m‡w×—5‡É¶À¦iãíTY€IŒ’Z*{…”£óJRS`NmÅa´÷6âm\_ktÊ`¹÷…Æ¡ó„Úx^‚€É¶êð¦PÛûÖŽ+–êo ´Ü=WfÐ2¾£Éº7ÛelgWÙ¬”F_í.ôiãµ3TŽìuýhé~$âéÕŠ»SìmºÇT%)õºîòyÅÈÐë^8[×9;SÛ‹,æ9šë™‰§*+Œ$S]Ñïç ù>!oÃ4“ÎZI²¾:{1!«ŠÖ£ixIœ½Ö k¬^ùx¿§7Ã~¡Í{˜7¡Uï;ùç†Ï«% ev÷Iqt¤§[ä»|Ÿ ù3ÕŽŽG?—×ÝûT=mÓ+eKýÒä®fg呲ìeò¼–e¤@zd %V5EºöJ%÷½Lͽ›Oá êéiߥé‹$$yMWónEU,´’RÞ’/VJx£„âTËjï–«]NóVœN †¬ìÑu¤¬S>ÏZ{êL¡ý†! ·Õ˜ùLñ*¹SžU=I†6äiQ0ï/dÄÃ1lNéæ›6DzXŸ9Ð[—î'1›É2Jܼq˜¯~)x9’ÈèBm´Áì ®YêÏ#T<Žò9߬¥^ £{?õµä5óS‡yc¾K‘Æ÷¼Ú¶Ma•}^|™„}žHÃ/Þαgˆê;?=ô—é §Ô&F>½ O9gÎãî¹ÅÙÖn\S¿òZ[êJu5—!;÷êîÒ:®{4EkK»¯r“UsZÞò¸‚x[a²“Òqüñ`ÅÍÇü‡Žž_R‘3Ñ==Ó?ªJï‰Q¯<"Á(ØÖ,>@ŸNóZ©m&zm@¿Fí”pçŒ6iT©fC¥óé&Úêå{cË6v‰EÂ#˜ I}Kò\æO”­9›¥;åÔ·Ž“CÅ]£¾FA'î6.8ªkÚ]S¦ ,t‹OÎ+BiÀè:°;Û‹°O• ¯´ˆDˆeW"„‡sì©õÆ[_EÍsÒƒu¯Õ¯o¹gÇ|YŸŸ½×ÍîNðOt}^ÑѾã‘áÓIJ™Åš˜7:ÒNÍvïügA·üÖyi¶ñ0Ï ÈNÒÑ-^@«4ÍYÁª"ŽÛà‹ô™dÒ<')‚æ#®„θ(Ë7±Äž½èÔÐ%p£\1›ÄæJÅ'XfC€›1áy_|sƒ2‰Ú zÏ»5ò2<Ø«QIËLÙ¼©óEÎC4rLÙ†¸÷ÜŠ ~Á½²+aÚe½cŠÿ¾àx"/Š3SÇä<š8nTn¥ûñ¥ãÒu¹˜"çd?è>× (ÆRªãûa1}(Ï‹ åm´ÌÕ0 ]dï?ÁÖ¶*'ÜìÙê>~ׂy=š· ÑRV‰-RoLæýÐ.N…§ü»ôÍ+¾×‘jŒYÓ/ÄVÓÕh¢¨[T™t×Oϱcêê™Í´wAqiòòŒlü1*›½»X­^âÔGê€uî’ÁL»!cÍú]³ñ¯‚^Kê€äAzVcwùCÔf”u+Îìø àÝ-Šrv,åß=F®Õ•)ܺ’k£™VA*y(“àÑ ‰÷Eù¤Ïží SßÕŠ¼£&¨ª&O~A'…XÌ+< í8¼;ês)„o6@›ùàKº˜b×K¿|kAQÊ5mö‰i‡ú“3³~;ÌÿÇ×(\~eú¥Í)ÝË7F½Që,"åsüΖ¼?u×Q^J-u7¼J€S†'¥ KFêg°-ßâöƒRs^²aßRƒ•‘ â£èõdU‰Ãòëú6; cá@êQï’SKiôÊì…ÀÚCB9JÐ…`ß}MäØý`nÑ—!Sª¯(ôˆapÏ ÏúM¹›-Ž=lb÷–7¤}¥rÕî7¸À 3Û~†Eð/ríW‹qÔGŒ9·^?w.9JnÖ¥3µ(V…96ØÑ~ (Ž©‚øñ®•<> !¡ûN¾Q™šu`5~!Ô©l•–õi‹ û¬Õ¸yS“Ý9~“Píüùèì÷‘H}jì<í·e$¯øª¨nº€.\_NÅ}Zmíl{úú齤)äÖÓGD£»ÙW¤i¶†Ù¼Å²Tæ147ˆø=ºóšñä·ORµè ànz=eËõ:ýÄ¢ ´ŸÞQ¦‰ªï0,¢ÓêoŠßêaoÍhÏóÆ‰§Ä ß+±ß7ë.ÉÛti:E›Ñ7¿os Oݬy|?xôF%që·ùIM°ÂÒèú˜i,oàFk’×ÃÃWßLƒce+yK!Þò¤gS~ÛDÌ(câèfˆâ2l®ù2_E>Ç»7tÿ2qÓhÆR±áQ ››ýx@é,lª?Y´GƒÉžé7v²Hi€~rùŽRîÍÛé|q)̓|“åî» K|Oh˜ã[w‰•Çõu"ÉXÕÈ?á…>¯Æþr'6¤¾ ¹„ ª¨vutz—ù(Zäjšx¤:8#O>õ[qô§XÈþ@%ô{p¥:W4žM{¸^#BîhQƒ™Ðõ³þõžéñÄ-(µ7Q‘Rñüª„¯R÷óÒ¼]¬}NYÆŒÀI&þ-ª‘QñÕšˆ™û§dÞ¾[³¯ïJf}§óÞI=+ÐÌÆ’‘8¹f±}¸õ#ºäéx{ºÎÑy£Ï8“c.ÜE¬ËˆN?ùÎz¯ôËÏ£D60žR&7U—õàùæY‰“ “ñ¢é§ÑpÎ ¾g—)ŒÍ ê§ä/}ÛEomFKÂÏë–륩[!ùX ?LaGEº‚dÎR”Ï/…vä>ó{¨eýȬ}ä~»1ÞØƒJ ¬ÃAmƒ-Î9\Nú‡²VøÚyä½®uGe‰IÐR×ÖDHÁ½Ælºl//ë~‚À¡[>28Šô{¬[_©Ù;"I´ ÃÆì›q‰bbËe*/‡-©h˜ÄbgƒñÜ–~²²¸JÔq¨4¼Äθú1‰ßÚÛß©ÑR²)¼–é h»odÏðI?çÑÞ\o²p~ðù9ü5¨gµ»&â²#ÛÒ¶Cõä›Á"®UwI>²ø…_yÁÁBöÔES¿=ˆ(X…wÏܲ¥³|à-uC™oÏ1z½Ül«eUf“d¡ÿR²€Ð¯\áÃÍgîÎTÝõœ<|“g}¢ø‰w8 ìhŠJ×5í›úà $Ÿˆ^êNëåN°ê]ªåòžý™ôs惤‰ßu‰}9H¶«]³sò–nŒï^‰Q{8I¥é‹Zà‘ñˆ —‰b¥ªù¸Ïq/¦Ò†Î‰ãÙØ·›‘Ì22€úxšOÈ8O«[?INl#Ó=6¬è‹L°[lì<ê<ÃÎNëÁ·ÑÃ}]¨òÓ?}Jlž%O{Kp|ÚF°6t‹im8Å#è‘üÏ‚²W¾ev¶Lî¤'M=±ç¥fåppûÄÒ««q1½‡'­Œ¦Ž†„-+¸«‘™#3–W)ù¾f‡sƒgDZóXæ…tÃR²š¦DK]ñÏSëçGpäA*Ÿ[‡H ±yj%Í``öǨ5ToÂÂvYºrAêC3õhO-ïb—‚å(D`ë=½rQ«MZ‡ŸF>rŒµ5¡ÏlÝOjñå­ŽP\pêã<ªò³g<ô¥P‡ãö…2&äh°ÆÎM#HÙʨ…'\û¾AC 3ŽÍd‘B˜‘Jvï€Ý÷9ÔðãÐAN7«X>âˆmyS %üŽ'ä»"fbÕ%_})²zõuüZ$ì¹Ý­²”’àÁÄÖ b|V7ruHêݾY¾U½Lóèªw9¯]­dÇ# x³Ðñ^;ŽÔ Í d~Óƒ&.IM”Ý£;{õ-ÏþI87á²8Cô:‘[¿ ñHX"ÂËÑÕr÷¥øPÎvõLNlM‡ÔÜãIÙþñS•'mkg/ù·.£„ämgü¡«*]¤wVmC>û1Wÿ\Þ”–QQg~º=W¯dŸrE[ßùȲc»#>ñyáÅÔÑLÿaë•ÆÖhòÒÎr𠬹™Z€x—î „€ìÔ /@‚Ë/±”÷EúâˆG>1°Š°:½¨};ÖÓ*ΡÜxùªñvQBØ%_nȶ³Ú™ÿj¼”Чú’˜|ƒïü±7QsÒl>Oؼz÷Úñv{pí ­fIDtð:bóE&~!¸‚*·Ém´Z¯¶z‡"×'ˆ,S`ÐDïö¦eFá¨Ü²$g&°Q£ÞCEs_¯ÚÌ9u¥”éÇi1šÕvü^í3ÿ·[„”¦]‚¸fÀ¶öÄVí%}!óˆ¶ »#4ô™œí÷ëaÍ›J´ìúS?'Ûâ¬éòD܉Ô|*Fa)úVà”ñœ£Ç’ð™™gi‰ o°q ¸Ëîå—Œ„—ê2JKð™ÕkôΈŒ¼f¿3Ÿ“êU·u¹—Yr¬ÌÀÒ$ßÕ•w|¥¬tÊ.1\Ù$/¢8FZLñy~)µ¨)÷Æ÷“°±Dp!—˜HF –ƒy4ÓÖX×{\®¦Š6IñÛ„V²/º¸æL^¨Zöíó…¶°”’5¨òÑ…ˆ¯?b^t–T@dzžÆ€º&ÍÓ•WÎ)ÄÎ4™îÜ b}Tÿî²<éwí ´0R»o§¨}ØTäQ ²¸::dëÙ#cÖfóFò‡#ñ¾"†;²¢wJüVÒ¿v64©6€æsø[²Æ~RŠÜœ–U°[x^œ·-¯X ¥%Òê/øFšÐ^Eo°o´^Þ•ì9n‰OË´]@ ÿMðÚs&œà…ÄÉ´Ÿ‰2Vó,jÅÝÙCûwàƒÔ?ÊøK‡fË• ˜@Uª±z4dd¼¦ŸR¾K‹tÃxåö£îöË q%tOÑ$~#`AkL‘SÖ,˜kÛ9¿­î·.ÁN¿EþÄËDô««&üRsºþ €DX`«êåœõš¹±\Â$Ñó"Þl\ƒ½gg²MÉÏé=jµJâÓr¨C1ï¦Óbq"Ô]ïQ•@$†N;‚ÈÌ.W¥Jï~Dˆí½ŒÃûÞRnö`…‹ëúZãz ÿGÁÁÙð íeŠ/ÚÀ½O%^I©=8w‰o"+BMš—C+ëjÀì<;mï³b5à6±ItÏžžŸTF/QÏœr­ä°qwŸy†KLú|.¦òõuŸVpZÚaSáóvçW8UE«£Úi̧6>xNÿ¸½—jñ–Þu5¦•8‹6¹¼.ÉÓ,•¤¡— ¯ââ;KSO½¡íðq1Ÿç¼‹+ƨb6ÓbZjrøt±êsK#a!ròlîçʦwS>I Àîm[Þ}õv¶B tÑx<—+m´Éó'…7%ÄJŸúM_ü R„(Z>ŸH”…[ a·iö)øŽMRs&ìIgŠm8smš,†ùÊ)·¯y¹V?Íöº¥v[îÂLÙðx«<òch]BGÙ¼Í!…ß^¬Ÿ9› nA9O î¬^~¿Ý8t¥ÕÍJBˆ:>Íõ6áòb™Q+ËO_¤† ÎVgŒž,þm|èì|‡°«ìÓ™ÖéÑΡƒÍ‚]…Ñb £j¾Æöú5´] ³>@¬/>NÌ,ý<:zá֋kÍ$%ïÄÏ ›78Ø[Ê“)ä ž”ù¼†Uö>úDœâÅÃqDæš’-[·è>+>Uë Âúí­ ÆÂÔ0Pª&%q}÷YÕ3ý² QæñÓˆÆO¥®:àþa:$ðPçö ?€ŠÆäÂYÁsVØëë®ñ øV¹uui¦2þÍyV«ç˜Ô~–¶m[JìíPU2ô㫘º2æz~ç|b²ŠòÍ1j­ºYU«§YD«žb =ÝÆ~GN³;e%î8ªD!{Á&L!„BÚx_kjiÍ$Nc<Øu8:’ÃH訣Bõr]h²ÔZhe;èÌûuŠœ©Nf&‘~¿o{xÞ=ÈòV{úåAÆ”$ÛŽ‚'­P‚ày°õ¸FMÅ;[¹¸µ]×à¦D€Wpc99Ð+çYwI¿PP3#!L;=˜cî ‰"Èè’vvä0De“¥·B$ú± eläò“'d:'’½«Ü΢šë¥E;ÁÉDfïïXÉO~<«é½ƒçg!ÙRãÂɨœUû3s•.<ÏI—Fµ0Õg£“Ñæÿ݃­ÆÙÛóó]% ¢:ÖqJm¥Tq²Ç¶S:WÆ"ÎGT„~7ưIÓ"vQø9zM·Õ?¬kÇÆÅ–¼Ö ¶Ï!×yÊ麠V‹;Y2§õ‘+ðÍ ;¼quéFa~& endstream endobj 98 0 obj << /Type /FontDescriptor /FontName /RMHRGR+CMMI6 /Flags 4 /FontBBox [11 -250 1241 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/I/b/f/p/x) /FontFile 97 0 R >> endobj 99 0 obj << /Length1 1724 /Length2 10170 /Length3 0 /Length 11286 /Filter /FlateDecode >> stream xÚ´T”k6LHƒ¤„ÔÐ 3tIw—”ÔC3C ÝÝÒt£€‚ˆÒ)Ò- ÒÝžsÞsÎûþÿZß·Xkx®}í¸¯{ï}3ÐhhsHZÂÌ!r0(œÄ H«ª* €@N “AÇîùˌɠ qqµ…A…ÿå íÃm2`ø£Ÿ* Prs€x ~a€0à…þãsÈ€Ým-ªœ%âŠÉ sòr±µ¶?–ùÏ'€Ù‚`ÿ# éq±µCª`¸ Äñ±¢Ø  ³°…À½þ+³¨ î$ÌÅåááÁ vt儹X‹±°[ˆÅãµ{qýÙY{(Ìêó°²…ZZýaéæÄõjëìQ”ùËåÑ„ùÍðxygÄÓ†ëwz/'È$è·ùQŸÌ `õ(âgkyü‡éã v‡à.n?Ÿÿ0A €¥­`±¶…bþ“ýÑ ±ú?6ßÅÖð ø8{ ð÷ßß_Æãe ƒ:xýãþG¹T¥44”ØþTü7'%óøppó8¸ù€<~øýwš¿/à?âÿ°j€mÿ:🌊P+à1Ë"oï?BÜÿš æ¿v†ðß%Ô`à 0ÿ3ûF@> ÅãèÿyþùÿüßYþo³ÿ¿’sspøƒfþƒÿÿÐ`G[¯¿gÙ þ¸ª°Çí€þ¯«äÏ]V…XÚº9þ/«?î‡$ÔúqÆ9@¼œ@Þ?í¶®r¶žK [¸…ÍŸ“ôŸ^<Öp°…B4`®¶¿ŸœÇ( ð¸Çµ³°|V\;ö'v}ÜAøÍý![ößç…ZÀ,¯#7?ìâöÂ|ˆGÄð=î­%ÄópqBaðÇÀ£f?€Ìów›ù\2¿M —âßHÀ¥ó7pÿAqæ#>!×ãËàøÿ[—å¿ 7€Ëê_ð1µÍ¿ €ËöoÈ p9€Í-ÿUŽÿÑôç£ñ¯¨ÇªŽÿD=Vptû‡}f.è?ì£2è¿ÙGo§¿!ÿãqœÀ.p[°ƒ¥­Õ¿Î z$\þ+zü¹Kxþÿ«'n..Mûc•öüÇ{ xB,0g§`"¡vB›/k%É=8Ö‡DQ2.õ¹9†ŠMÐá=²c¦ËIÚoræ”+åf»Ar&vmjRΗ¹‹Ó'>kuÔõ^¼çÔr[ÖÔæ SçˆÉ>´S¸ziRTÂe.=”1xíâ–Ö=Ú ¸¾Lºf’=‰Ê唚ÕZÛkËsTˆ)„t­hÁ?›÷é¬ó’2å­8Ƈ¬ÆE¥«eÑ*‹¶^a&yÔà-}íï›Çï¦ìˆ Rr^?¤‡ãËŠôQÈð¢ÕèÎ>½Í+sßÍ"ð1—'”&ÖV- Ñ"Åì“.Lù|@jtK‡¦o—e“Œ¹KŠÛR˜µYb L¿âáë LÏ› °Žö±]Ó lý<Ñ?Fr1‹²Ô¿æ€Õ>ÒÄœCçkó¶ü8À@R;Æ.£ÚƒS/2EXÐMÀêaĺø,JõÌí)>Îh ~i¸|¡yï’~ìeFåAQŽËAî¦h¿/éž×ç§»üÝ6¼€_£œ]×&†âÙjÄi%UÔÔ*™0£ì4Ó”$sY„à\¹OZt¢öÚÙ;*"!j×§/r-)}ÌW$¨W óé\ Kɲèñ—Ôô¬ÞÐIŽ·]M3.xPºR1µé°7[Q®‘LûAŒ(ú‚'M”ø¤§·?j?œó|)ÈHoäjk3{/ŸÀ#pªë@Û8·p~eŽR9I¢Ñ ”PnBÓµÈÕ ”±ªÜ½9+Ìwò^ÍÏR9È–{`<¹–ÑÜìøŠÜàö¼`ëj²Þ¸+åprmzl£k6­ÚS:_»û>[YÊ*Úí”çã.~mDÑ$ß–n|¹½#&À ƒÇzYJw ø$„½zîÒR¸%Ï`™I?ðÒm ­L6Hù§W¦lÉÄ(š£ßŸ¡šbñ³¿~!2cQ;STͱK0½u×…!¬3ôáÛ”õiÚ">góé‹.öV¾uHf©‡„vc œãY°Ðë%÷ʹs··3ÉÁ. sû|½ !9gƒ"žÅn,³ÔYÌ¡¬–¼<ûC¥õæhŠ“ÎF›º*—Ï«&ó}eš^î] %ùµÉ4œ0P¦Œòýc‘åîXvö»°w; Rš|<¨~íš­®Z€¦_^Jp÷瘪šÈ‚Ó Ô|ƒƒàzÓ±ˆÃ¥“rÔóläÑç–0¨x7¥O‡F¯øÔ¼ýUÿ]ÜG/“šã³C8¾6. ɆW:TÈ£ø^¶Ë·oÆBÅvTµH°§qG@,–ι`vÑé`j­´Ô±N©2ƒ€YÓ‚iùŸ>O\‚D u+¾é=»f5Ö¯¿Á¿@§EP6lŒ G°“Ðd ,6ÁWô›>m5ŠÎ?¹ú²›j¿çsþÍ•Ã)¯ÀÑÙ9Ì¥[‘ÀqaÂÎ%Î W#ŠAµ¶0< ž‹°ª¦”ñu(ßQI0¸ê²»°~wV›]ægVs¼šSkCO’µAŸ¯£ÐÃAÀ$Úem*§ï-ì¸v1xqÓFÿê ™ð'ÌFå²çkgãUæ_ÑPpÑvg+—=Èê_{Ü1ŒdÒøXUú1{<é§ÚÊ‹N(E Dš+ÜÛíY¬e,„ ¨ÖJe<HÞz*¼6%eàÿ4ÕcÁ÷ä›ç±Ò5òèwÅ;ÿF|£ëDf UTïy{mæHÄ«Æh¥¢QÉK»5ó-H?w0%[°xã NMãÃÇ¡l‹þ1׫æ»"÷ŽlïOÊG­±Vt;Mwh§ól®r "ƒ~Àreͼ#Ò¶ùBC¼ršAiÿ-^†‹À?ð(–äðnäßâ©Ýrï<”$¬˜0!µHÉÇL·zóv‘Îp‘‘–)ü|®Æ?¬Ãúí«ÍMÿ§AËuM+ È,~{Úã!S{{ä^¬…½*Ñío#}¾,f=òËú3WßÖ>œ×çqúupù<7.N˜r ­nÀ -ç%¦×t—×m¡Xê5È“ØëDÚô£`cº¿{‰<&ëý¹ø jѵÒÝÚ2¹«ÁžÆŸ°¬¢0 õe I¾ ©½=5ÀÏ#–ÅS/•ä ò!éÛBlžºqùU«”¢ô“µà€Z_XÁ店Ùãíù'ÅZï%8¥òüÊŸ”Äò†s÷鄪—÷Ü““}:Â1ÞHÒUû*¹Æ¨81È­:¹™ÁŠ›[(oGÊ#£þ%dœCb¿à&òU/IßF¡'ú­ çÞ ƒŽ…‹?…kß+é,E­AÒOÑõýLSú3–CüÕLi&Çb1H‰ç‰ZKínºÓžtÇ9b^Ž1_¦²—PÏ<¿ æĤ $äP¢{å‡Û_5´>LØ{*Œ ð˜ÆìÎDM~4'h3,¤ÍU½H·CõäÓ×3É)ÜB£‰e¡˜ÐxʃI‚ù£cÇ4ƒñНƒP"€\ß…‡8Km_ê'!Ý”¯¨㬥qv8„Ö—s©di±°•õ$CÕ»€0NIn}Bã vSïf; løð¢¥ –(w«™Fƒ¦uØ!ô‘ë€ï0éïç&6m*#u˪"O Ž-¯ÃϦ"™oò4y¨í ˱02"³w x?äØš S1zEºö;HNô§ó°F® IxÚ³K ùz¶¯Íså‡ÎŽŽ÷§M³¨O‰J†u’áëŸêNêÆ> w0¶ëäuв'¸Æõ rNÈ-6Ú¾Ãs`›Q'o¾—K1hGë}ßWp y³SðÁÈ!w C@Ì¢‚õF"[Bå‹au[›(ïþ”ŸÐ%4bäiÇKÁ]Ú–î7#TŽ ³ððÎæ$^ò“•tß$RÎAaßÒ¯¯|hù°í.µÖ4‚ï&1ö9Í„?åqnDµµé< Üù¿b|Eûð¥Š@Š=hŽ“Ç:‚,Ð}Þe(Rwš&ÞO˜×ðw öPÝéM#áä¶š‡)w=ËY³¯º> 9¥‹ûH€yƒ¿Z<ØX2«›¹» º&t}ÝPfÅUÕ‰ýecñvࡼz"ËgÈOGvëÇÃÔ^úé]·êPs©øq’õĹś Í­òúíWœË œ´doC›êJ<1)¢í [Oß/Í00 šÊ9)•i¼¨DþÜçP…1´´Ë4×Kf™ˆÏöóU]XÙ]eˆ°È BÏ€¸úo¾ ¢ <õWÒ^lÍ'âuÔ{“‹îOÐ!•:„’KÒo ÑêÎ×3!‡­› O1¥µ_EÍVAÉdv1Žcn¸f¹ßÒzëùÚ½WhØt"6¾Öš{?LZ ¯²øž3FpÄÑ0ùÐô.Bò“‡÷ü1NüœåˆˆçãÊg:¥=øOeˆŽ ÿbh[ wñäœi*e[Ð ªz(ÿU:ç#Ù‹ÀKváÇ’g‘ . WØ1Af°/G€qLg (B¿Q{ Ò8C§hÐŽ\^~"—™J½lRÕœ´{ÚñÐKjÇù:í:ç\"'5ÑOóðþ+›cžµÐ¤ÌdÁ@ÅaõNœJa1MÅܺvÝ]8T ¹d-8vc%äAÏÉ_¯è™hæ¶c…MMPÝç'ÁƒùK4ú!dñ¯`{ߟyÜšîh«$–ÖF Gqó•xó#vÆ\´eßÇfC¨fÿHLû.ô¶4MFï^îmx„ôÃw ÛùWéÈ{þ‚A)ÏÏ=áî ¹•œÑ„V/ëèq°L<»}·êÌÂ_G_SÓmþXgÿ~t§ys¯õ!ÿÝð\Ó^œ¨ÀHÜjÀ† ªPí>‹=àr“|aáçÜø†Èû);µ‚ç®^»m L'†Æx’žuý†S;väòsÕ{âKÙùÖaç?ÛÞwŠŽÙK”2¸*™™I* ¿—ãHUØEZ%¤07{»¼ ½´–1üÐügâ”=ÜÛíìjœR§Í›ÍUGN2ïÖ&¶]wÂ˃K¤mè|èd6ZMVtí S½”2– äåÐò˜§¦ ßÌìt>»§ö>ìˆf'•Wù®‚Žîv;V¥l2¥6òú¡Òü(•e©-~K3–ÚÏ÷átõeÀàÕ¼HÖaIùrÞNK‚ãë휽ï9/ÌF~„(Šžà±ê¾{Á< XxIÇvɶî%°-a‘ t-‘·˜!“ûlùžÙ„Õ®/Ga÷êe4 JÕÕWëTg¦Ýd])A~Ëä:F¡àÞì‰!»ÑÕ}ÌÍ᯼s¡¹§B—–jß$x²„ôà¹ñY5S:*ø‡ Â{kÄcÙ¤3E#úÈBgøÆñ>Œ¦W çæ~ÞŒáUt¼ÆVω¾=çc®u­ÀFýŽÙ.ÃÈaLX‹˜?.ò>Q½'C‹ÿ¸5yø4}G .R””I{Í@À Fäåjêàxå}ìdj™^·¢ýu{ý§=¸Eã5ŒÅì.0·ša/0ã/“Á×vÄ7C’0–Tlu4kH~‹qнOQS\©T\ ûmòä[’ã§áp*XLkŒ¨ÓZ’žÄçêA†žô……\{‘›NøÚüx\ 9ÊY¨í6Uâ)”ž.z —ä@¡cqa«8ˆ¾ZßdÕ1åÂ>µf‰@µw<8Oû>t÷À¹å’-ÃõV Z\NÐâÛw%“„Ÿ¡[sŒá$= x—s³’ô:Ö«\ZvàþHégá̈gÕXM–’ëE6MÙñÖ-óeêD†ØÊœµ«ñÅ ¥™H6êÄ;b]„ ñ6öÂÞ$Çë )]žë«°¦ šÌzïZ@2ã>Œ†É²Tj¥b·Ñ¤ó?éñh8*[9¢&ÏžàIÃoabâ§uýÖê¸B©höhÁ`=âybuH’ÈÍl ÚûGÙÐd$yF‡Ÿå©Ûp‚ìn ‘¯@ö0ažp3)ÿêâ€~4ËH…¯¿0hèzîf!Óª‰«—_ýüÜ+%q4*DguP(Ã7îÆX} å«YŠÝ»íÙ:[dD–Þ³&ËRµ¬ÕÙ.æØ2‡Ÿ= Êj©os2¤&ÆËEÍÞèÇl*¼µ ôðBÍÌ—Θ±T•gDòYÉR¤TÍ8óɺ’LûÚge·Îãø©Øvîë—!,¯‰ëx÷kžŽ?‰i&ÂøNRØö´‘;˜¹á‡pÅl¤ ÀšÜÄLgêtXL´QF9¨Â ~wìX‘†j²ÏF¤Ok.° °â´P ½;'Îyš/](G®{è±÷ï¸Ã¾k)ˆ“p œÂJóè:ØÔð:IÒ¯ bÇE.¤?Nû¼Hw¯$ž T@9ªjKª»W´yßÏv6Lø|šŠ+18|EJÒ¥¾oZ"[ñÓ66oÛŸŒ•@Ê3 Izj$“®bÙŒîEoÇóáDœ³ä®^}£²¾)¯%Í¡¾í_•¦wNŒZ|QÚJS&€¬¡µ‰O.§©úmnÓdÑ…¯qr’Vß²äô¦€Þ²K• ìãʇ¾WŸ”ùŠ+ X²o0ªTë+;6 ‹•¸´f¤ ³•mÔGKhŠg¥†|Ô%• Ô>1ª‰¹®Ø,Ìä¯å•Ô†ÖHב^Ÿ„¨Úhj&çyª§gʸÏoÇ6åOŸ_W•V-+U²~ÖY)¤›§=³ùA6}d«gÊGØŸ™úœ¬ü]§¼òù ý4]BÄgN”}@Poú!–2Åq3°ëRÂ°Õ±Þ ]71aü6¼×ŽÑÛ!LqI_‚ žÔó³q©!%àyP-ëõÁ~ “˜™K'—>eÞG]æ=dWX%r˜|h§V BØQ;ú$„©¾så:¿˜=7Ùÿ5D‹˜Ïaéæ~Tc¿¥sð)cª@Ô׳ê²Yç¿0e“=Y ² Ð.ÊégÖ;{JÛ—ãÆ Kó÷rOö*Ã@)|}¤9FbÏJÇÏmjé6@£rƒqF¹f’ïìѾj‹Û5*¬¤Í³icË|6fS(Ñéá#!ꌱz–h¤/lÔoýî ØwP]±HQû÷Ã쪇ÉtÙã»>ˆ±M|#¦ê–™¹œ¿æûé—ê°»¬Í.qPhÄÙq®Ÿ¿¸Ð·#¼=,B™ÕðkÑÃ;]ÄRüÅÖ¶‹¾nva¯†[w÷ÒsËk꞊üõ•êî¢BèF(Ë5NʇhÊŠÓéñ]?ipT{³ùE¼HD»ÇDN[ú²Ï 6ââÖÁÝ7[á^)4tµjí¸9æË¡kÙØˆ,HJ¡!YCa}cùK!JvßOˆ×¿ÒžnBÞ·Þ4I®n¸Í‰È /û%·Û³"ÊÉ8²6¦³œZ°ƒë[G|±7‰ŠöY‰RGQÌtÄö¸ƒAQüš“êŽþ#%\Df”ëâEÎdd¸<÷êÉí§*+ÊÇŽKÃÔ|Ý"›:žçYвÚœÚ7Ô5g1¢™Ê¯ãÁ;u†¬JóØ:æx~z#Húž3žµnnJÁ%¡E—QÊn#æ‘ÈtU1œ“öËO›){úN.³¹ÏÚÑRWaþ4RAËö|ÅKJv^íܹåfƒÅŒ‘ÔˆÌ6‘×Ýiš‡Dn'ÓtD¸#<ýq=@ügnÄù¿mK:°å[Ÿ–‰o:{•¾t§†z~“Ñ©`cuTy!—)̨÷ºÂ$¿½8ˆ{ÁË} Ë3w'à:›ë3”:²¬%ãz§¯_Ü=ßµýó!47ÓBÂGú¸%ß"Ìš€õ&»š‰sׯ²Bx±@äfꎴäLµ(v¥P¥+­–o…ÀGê+çVI4"R?ì%ÄÊ;Q³g“%m¢š†*ÒÃíþïü!^¿(¡2¸êÍÒ:òɬ¡ƒ~mc;K·©c³Ý_(÷ñ«A᫨ħ_=ú»gÎ:.7Ô>%¶ t-‰6Ä„Ê4û»C É0©þ˜alDB{ÿö†Ì¼vÞ\Í‘8ŒXUçãCò«$ +(yå“b¯åÇñejî÷o5߷Ŷ/ÊÚÞ¾­KFŠž:Êsc|C†ð‘ªõ[ ikИQacþ é§kõ›ËÝhÀiü7àÞ}gãK`aPÉ’Áéb+OYîÛ›Ïð¯Û¨Ô_ÏØ÷8_ïC»ÙjZrab™^íÍ-U3éßÖÍ«Ò tË 'ëÏåW™Mqê;Cw Þß1½{k)¬cŸõ¼ÕêeZÔ8+£Œ~ÓÑŒ¨_ˆB|n7ó¾Çè:!ˆsT_*_¼aP âÍ­ùþnÆ”Ñ,ÙY’@™èíÅDW·Ãñ‘èÕ:Â0g /Ó b §ÌÉ‘!Ñ æF¯]lÒòÍŠ”¨þ½o2Ÿ·Ö÷yµ=›ûZ€J«•S<¸ÙÛà(Ûôk€Ã^æ‹{òéFåFHŠÑÍ¿ Ç ˆ8×,NdTôßû‹>ui‘þ>°R¦X‚œx¥í/ÎËš¡B¤}ÂÔµlµCHÎÐÖÆ½ânB—½/ÙÇî¼æýÔ[Ñ;ºG‰Ë­T:u"ë,yUmÌ#wD»Áà“yü”´ñ@?.ât[ù»–Ó,Õ.|ÔqIï+ÉNjq\¤n‚½M‡±É¼”eW®â€®Ý¿Gk¨,V>)z¾ªò¡>®.÷Ý%·. Zça\ RÃÐŽÙû^]}=Êò•÷×m‚ç¼"/ÕYºïò‰¨e•›¦Ä>„ð¥rMIl zi”À7gQ¡]ù½Eê%ô˜cb^7C¬{œ¢Û{ž1/Ÿ)ò */9]#òWLÓÑÉ;¡®'s·»0ÐÈ%H¡ÙÊìvt!ó5|Λ"qžÔ¢Šâ¾2?’dšÿ¤¨a–iѵÄy5Éþë4w·¦.)—š!HüÓBq¾L-Ä´{ÅÜþ^îèÁ@ª«¤H(«½M’"`^Ä‘PÍ„M[!ÖPWIBû"n++Y⥧3lŽ–Ê}FÞ–w0¯ÔÛØUtÇF¡·*ù¼ÖÐ̘ y„Îç+–i\^õK}y>2žY±L®ï†VÔOoe&PϽ¬ßÅq ‘> ˜mú”j@Q™W›ÙlCá¶­FŠ€Àî+D€˜¿Ž[dôyª&ô°âWPA´¸%}g>v¨;cö™Ë¯¸$“òùÕµ‘ºc›§KYíù©¾N•`›¬7ÍçÑ?ßÐÓŸÞ`Àâ$›oôÊßa qZ`Í?)—YoNò´“bUzêV¾cûm­(Xaæ†Ñ 2½«T‡Ï±‰%C™%øò ˜¥•ö×PB­K¨å'Þ7aLá멈¼æyƒ^.1.=S}Mþ:9u¾>l4¾…×›k3Î #TkxבI:_0[KVxÓo5“IèÉØ\´mNDÇz}oÆ*I)–÷!9æ§o Œz#ÄÍ)0 ÖÏ%*ÑuÊ(ƒvHEW3Šô¡\-ÏÓºM.å˜ùyÄ£ Íšà\j&lqºÃiHïø#мÄ|3ˆ}‚bAoùmu‚æÎ²É)îÄñHS¥[+Ìò'·mѬäàu_ÓÙ‹3;‚TíHÊkÈOTæŽ\É‘ÝJvÐ,ɱç“Õrn-Ã8”Õdˆà“;Isù<§¹a u“Â/·%¯ësˆ—TK¾^” ´*ÇÝÌÅÓ¸àpüA_ÛÓx¿+ —tÄû"Iíý]ˆ²jÓ¶ˆR‰ÏiåKà¼Æ¬ °#µŽÎ=ÝéQ_RŒéþ.‹IŸ‰£”² Úê¶“™Ø ±öp5vœZ#L¿Âd”¬”‰‰Žk1ÛpåJú¾ú0NM—5úrq’ž)`Îp‰íy;B1á(ó[vÌcXm‹-Óë„*ØDùsb•[4Is-Ð; Æc…LŸ¥JõU¢Í—4µ²oÀÕrn,c¹Ã2*{ ú§u;ŸT¼AõMîÝw±Ï£šÙe$ïõ²ÆqóÈwGßÍÆUTj¢bnáû[âÓ³Ä]_ ©˜ 4%÷–¢¥Í&µ¨” ßÎxÝqX(°”ˆÇÅ‘×$Jà.6+•…ACK$悪XöýF, ä8ýÉ:$w¬]û&Ìkt €*$âøU¨|޾gñ‘özüÜÌ!ed˜ŽÚŸÑ+ª4Vз-ùùqˆéãÁö›„6}‚.ìõV¨'ñuçIt Aº.ãƒZ9Nð躧÷)ÜWø6V}>…‡Æ…ž{¬dÓ>iÞ„VÈc¦)Û#FD0ì[Ø3ø†çõG­¸«ÌM¤È£Ûïãùæ·G𠶪* ç:Ty—­ÆÔ‰_”vXô Â+¶LǰßÑïMÕL·#|P­0kÔ„„ìwbõƒ{ÌÞ¥:&ŵší%ß5™Œyfêô 1áùL©œÇ€+ÅO§â… ›V®÷‚l0¡“ï"·M¡MgäæƒÕHV l[µï^™ÊÕMyù‡Ôá•SV¡aŠ˜WËö ‹$¦¥0êl#Nç q>á¤W;`:ŸëµÕ8£KÌ}°b†±CkU€+ǰ»/±¶lœ(vpÃŒiï›çâó³u^k8a"LÈ6ý‚¡ÚGm±‹NºžýŒ±–Ó¼åÔcœ?ì×´ŠPk“ðÙûDªÉ;J?ø¬Í[À_ó(sÜÉ×OhEjgÚi ÏÅÃB©{Ç=jA¬Ã>¦èýä§;ʽ‹O³îjËP‰hPzÌC[­Iu²MóQP©0YPWæ­óœ£r¡Þsq‘?ï¦{8&öE_x7(nðlW™}M<Í€ïø-Ñ© Vê²î<¼ŽxhJ2ªhÓo~!VB_#ígtŽ02½¨jÑ`èú~m©d°TH„/æ ª[ØA¢™žazNâTïêÔqw$=tII±¿öMä%jÀ©y0û¬‘P(x ´·(R”õðJEf´m 0„wLOÓ§!…÷ít6RŒgf:Ý«YCÂ^Ò{+qŠýHJ$üéU ¶AÞšmææ)¾N[Yáng¹öÌÛñÛN¼ñ"¢yz¹vºDc¥ Së‡ý uų–Žùº’d[WÏÐêÚsˆa /Y¿¨Ü&7‰VÕ 1ͼ.)PßJMäLƒ+fÖƇJrd·Õ}XÐ'Š4/dG)ε-½8]›¹„X1– 8%çÊ4˱î‘f@¤Sé÷è éEÂ8ß~• ܶ˜±Þ!©ßgK^^[Ûý"š²ru¨âñ$p8 Âžÿ ÿ阒÷TwHþ‹€òù|µõУë÷ ÿ…ö/áˆ_¼~Ya­¾`w|†)ر£Ê–²«÷¾–Õ­ÑPÀxnDùºTÇÈóЦIH ­¤æå/­ôÅì‰"N7ú<ƒ>äó Z-2˜ØkÉzµ¥KÉ·ÔfÓáQusº-Ú¡¡›àªÏ¾qVª2rÒ!9è7Ñ+µ"fà›‰ ’‚¯¬ê¤JäˆÁ&x¤¢èÚ ½Žy ÔdO Ö æŽ ¢âA"ŒÕ//pvM5üKãðù&,€GŸ÷yìkëC™‰)œÊ«ÙË9nGNIÑá,ª~«IÐ2É)ùj\±1¤É3½1¦•æôÉÂi¤¸+‹¯¥Ó]4¹ì›6;ËÅVÓEœûkµ§yˆó~aÈŽUøÄnAÊú„¤ø³¡ãâ…CÜ£ÙßWk\@%OËo;O6µ»Â1ÎÍÍѸR‹­ù ‘\´.µñsqÞ­ÊÄ*Ó_˜ÎD+n 쳚òPL±-Ñä <Y8)ß™Õç¾?QhÉ~pîDÂìüÞP³!GƧê«Ð Ü⬒ޝ© ›0Îì±’,ǯõÓ·Þ7#'Ç  "foRmÙ±+£bxº¼-UÕc&üÈè–½ë!ÂTÔÚ-Ow ¸Êÿüh)d=<´•ÆùÁ²† {C_Ÿ?1úÝ"/y|1³º'<Ó8(1™] û¹þ³2©ÿ®]8À> endobj 101 0 obj << /Length1 1734 /Length2 10779 /Length3 0 /Length 11901 /Filter /FlateDecode >> stream xÚ·P\Û.Œ»;‚»»»»Ë`ÁÝàNpwwM 8wwM ¸yäÈ=÷Üÿ¯z¯¦jÏî¯õ[ݽª6%©²ƒˆ¹½)PÒäÂÀÂÈÌ SPea03³123³"PRª[»Øÿ‚(5NÎÖö Þÿ2sš¸¼aâ&.ov ö €¬«-€… ÀÂÉËÂÅËÌ `efæùÛÐÞ‰ nâfmP`ÈÚƒ€Î”böžNÖ–V.oiþ~ИÑXxx¸èÿpˆØ¬ÍL@+ Ý[F3[€š½™5ÐÅó_!hø­\\x™˜ÜÝÝMìœí,iéîÖ.VU 3ÐÉ høM hbü“#%@ÝÊÚùO\ÍÞÂÅÝÄ xl­Í€ ç7W9Ð ð– &#Pr‚þ4–ÿÓ€ð×ÙXYþî/ï߬A8›˜™ÙÛ9˜€<­A– k[ @IRžÑÅÃ…`2ÿmhbëlÿæoâfbmkbúfðGå&I€ÉÁ¿è9›9Y;¸83:[Ûþ¦Èô;ÌÛ)K€ÌÅìíì€ g„ßõ‰[;ÍÞŽÝ“éÏÎ~Ù»ƒ¼ÿ,¬Aæ¿I˜»:0i€¬]2♼Aÿ`–@333èz˜Y1ý¯îéüCÉò~càëí`ï°x#ôµ¶¾ý!x;›¸.N®@_ïÿVü[B`a˜[›¹L–Ö „¢¿Á@‹?å·æ;Y{ô˜ßfÀüû÷Ÿ7ƒ·ñ2·ÙzþcþG™äÅÔUtäéþdü¨¨½À›ÀÀÊÁ `ù=d\o/¾ÿóŸø›ü¨²‰õ_ÅýWD…=€çOo‡÷7·¿Æ‚毕¡ü;ƒ¢ýÛ,4ÿŒ¾>3³ÙÛƒåÿyþpùÿ›ûßQþo£ÿ¿IºÚÚþ¡¦ùCÿÿQ›ØYÛzþeð6Ê®.ok¡`ÿ¶ ÿ5Õþ¹Ê @skW»ÿÕʸ˜¼­‡ÈÒö?Çhí,ií4W¶v1³ús†þîÂ[x[kPÙÞÙú÷e`xkØÿèÞÎìÃÛ…âüÖ«?TÀ·}úwJ ™½ùïÅcåà˜89™x"¼µþMâx³¼m¨9ÐãÑ01‚ì]Þ\oô|öN¿;Ê`Úº˜üFÿxÞS'³À·KÒÂåœí?øŸ-ý[ÁÁ `2³·}#ð7ÂùèèúÖË¿f“õ‰<&»ÿˆ¬¬o’‰™Ó…`y›k¦Dö7û·‹õùMëðv›þU";Ë_è¿ d«ÜÁÖÕù¿‚¿UóÈñÜhgýoìoèÛbþãÄ `ú/Öo¹\¬œ€ÿÔôÖ!&wûÒ¾‹ÐéOà_=3suz+Òå­zkèßò7'è4CX^°7ã ±i麯yçΰ?!0K¹¯õ‰–Á{Ùé³ë# l mmVЦӭHÊH/ÚÚ®Íð ɳ÷ö&ØðŽ$•Î_>OF ªÓûKS8ƒ“E?Dˆà Ô…|ž}4?@¶ƒwËRæ9ºr£(`Þ»÷Ky4T¬Ž…-ì«ÔrÊ!>UÌ0ÄhDë–ÎQæ›fÏã‘Á¸0Á½Ç8÷@»¹ÅÈ|%‘M Cð=‰a+öÖÝb}˜÷Z¯RguîÁ§À×Å#‚¼Á›¦ò=J•Å]ô.+^\òhç/&ÉE¦O[c@cŠ"¹héN&É‘ç~¡AáSûh¯Â?q8‘†ˆ8mìןMÌÂ\î—þÊßylwÖÔú°”µ1bu¾‘²Y}×Ü\W—)4‚o,tÅ•úÑh,Z/åË·‡2?;Ë<Ñ•€Ëä½4Ø *2gz{›¯“œ+Ë1Û¯ 10hë œ&i—ê†éYß[O<â…?3bJýMdzýŽŽv%v7R½L£;™Ž‚º³ÆÚ'ìÁ³(æM¢ÊKÙ…\檱87oÎM¼äýû>„S®ãH¾Àdr¶úŒŽãšÞ÷Ú¯ô¸R£rÞ&bº¢R9Ÿˆ‰LÝ PöWwO`»ool³ØWômjŒž…d¬¾¡ºå‹Úý”„ÁåmfA[J5‡+öä¼ êYÙI"—…àɃ8Ô.Ý©Ê~ÌÖÕæHyÝ—ñ|ǦNÜ£{î’y²R|lZðÞS |b”w3›·Ã†¶n.é¡&S8ùn×/ܪ5VWTm·fJɼü úý£qÆØþü¤Í$&‹›¾lÛϔʬù¼Äš"´j¢òLü8?90+ÄrD 7ï²mùj¼¿õ Òw,iCƒ$aÉà¢À>…p{«.Ù'¢íWÇ¥Ù3Ò:‡0yñ—ó±W@4Â\˜MÓBß|!LøŒì¹§pôÊP™WoøùÎÄ%‡NX‰åG>S6˜äIr ›'1yú®ª‚Ââ”Ô€îóº¤]Õk‡×d´¤? <†mÅC%Y¯¬` jIS4NK”Ð÷P“6jMmxÕŸ>ÿ,p£ôL§ §øs§dÌdÅgålÆ£ÏòPÓ÷P%xFzÚšè¸CW×*yµÈêʯ7nÁyÀQúD‡—‚`'«¤Ç¶$Wœ‹øhc:[o¸; ÊÝB¼‘°.'ô¦²‰Û´¾Æ8¶Q]î8Ö n% ñûн¡ŒÚ8º!S‡€0>ïõŠ1øÀj6œ#MM¾¥ü®ñˆYdŒ%F¥œ-kú.nîÊâà“¾°PË\}-a2É­G9É{õ|Ó_Ÿ¾hÆÚÒØZÖ|Í^1©ŽY'm;ª˜Oÿ¦¿ýü`®‚[7æ¨äÙqÔ,n++$:~8-p6Í¡x%|…ƒ­.<,â] ”ÏñÂ7ˆE?¯pBŒ,.¨vSÿ¥ ÅÅC!#oýB•$²dùndËé . '©Ô|É/¿ÿCy¼H)VDoÔ-,Écƶ€ê°ù^g±‰zyLkej?˜ª§€9Pð‚Ád o½<ã ošCÐ+†À=Ôï%"]<ŸËŽàÉx©—çѾ³îÂ"âZ]‘ä 2ɨÇ^¨¶ÄjêžLgp)/ú©$À³"kXG K'%öÛ«ä£ãrÐ/r÷ÀÇÐÙ‘B0\ç¨_;JÂÆ Ì5ZkO•j¾Û>? !A²mÅœþÉb¼ÆíÊxåJ÷sw™ìñJïœÞßk¤išÁ¾³v3Ïr˜ù“súÂ0>†‹¤ÇäϹ£´M€å‹]BL³‡¦çMó út6™¹—^Z©ƒÛåWäl¢°„ôÛ¥2F'QžØ 6±j1–Ç~— saò»2n°©ŠásQruày³|…=ßç’l%i`—¢¯"KÀù¶¶‹Í_ªz‚'V£=m¾ïŠä,ÉOÙÀ Á¬€tî)ááo–ŠC“0Õ<.°Úú<ÒO‰­’4!Yl¯ü¹g=ØŸ¢"þ3Ù4[×2Ï"ωnŒ3O88µñn51ò‰ÓŠÖ¯brñɰóìÍPr+‰0ŒE0R–!‘Öz(+»;F¹­âÅ«Öfƒûzèà‰éká>™RI.æè¸Vß{I ƒu¦cÏŠh•zøˆ‘d}•”Þw’ï+Ö¬Õq.bŽ ·æF… ÆÁEaj”êŠr\qµptªé 'zNÅ™OÃ:7˜§:Ž@ß®ú%B¤â¨»%påÇk„ Ip ‰‚“«—èóY¹àžyTéhê†fAp]á T™å-ʽ×Ô¬½2Z®~ª/OyV l¤zücê¹U“Þõ¾ jm'ÿ¹Ít&(RV>Ž&U¡á0ïÛTBu³"‘·œdóæê¹á‡LÓ^Ðw?œScùÚB¸U“"|ðöï§ ·3ùÍµŽƒö¤k–Oþ˜Nv"¯?S°z¯.Aº›ïÓ;ÊïFoÎí3±L…½<áHÅÄH¢¼qÍàµüu[NΈ˜qAˆ[¦¡–ÎÊŸÌ)¦õok'æ2©äùº¡0ÚPm1‘|Úý2›¸GúS[è,&†¼<ËÜ‚I¶D½jFÃsîY…Üæºà` ¾_uÝ,†÷iƒ›’rãÏÙ!¤®†ãYº/“Â"ÀÝsíKÂë{ªø]„æB¤W?ØÚ‹.W%Á“¤f»‘2?µFJ&!­o>þ,—Ø4Ñ‹²¸Wö`ÍÃöù«õÔÄ·*E¼€…¦ƒIÆ&zͱ|õtp¿-­O6[©sÏ’:‘~jÆ¡xÏSá ÈÊ%Û)ú|ÕìÌù3²Å’æºÜ[…ÅEP¯f‡{Ý6·¶éô7Ç"Ì-RÚŒ‘J9‹R’~…%1zh‰â; o˜¸ôOØ‘msËGi4X#G X†­@]¥³ äHçQÃ{&ê<ýV÷õB8©/>äª)€+]Äß,2ìØÖ^ ¼Iæ2Æ ¬µ”|Õxq ¤ãm³jÌæc áFTcÜA-c›÷ì¿UOºßô”3«Ü;zâ\#QûéL`ÂÁäÈ1pÉê‡ÒHãìÖŸ™»÷HÕÜ®žkN—©ëW)®¾fŽ}t_=ýHŸ× æ³ßÝ÷œ hÐWƒqÉ£=°æ•¾Ìû¢Ú¿JScT <&’Ôüòâ8ƒ#Xåz´ÕÏ Å±}Ñ)­«O§qê¶ÔFŒ<åµkˆ·õM4Æ“2@Q}§­…M¯FûÇ–P—–lâ=Ã,[È‘õðZ| Ådðó‡6UÆ™7ÏnÔCvŒÔãj»½âc˶žO$x\I8H:7 bÕvÇ͆-µR®FR™°÷ÍË,%¿P]˜¢ç_¶bÆvζØ?Ö³Tƒ"Œ~‰ ú:ÀÐXTXòXQ=– €Ÿ)</δKÉÝòqT¹ýè„Ú“qr<)c³ ÚÔA·v­ è]ßë»ü<}v2ƒ¡ã„vL$~s˳bN «Z ¹HqAGúÁPOE»ÓaRQ4Òaµ3É£7Wêú §vˆÇ#—ˆ‚Þ¯.Wn¢M±çn9’Ô¢¬·áõÎq(¸ÐJ†&õµËC¾´B¦Ç¬Ù×ÇŠ¸‡"ÁK|Sc²7Þ½S'†îós•.ïÄÙaÿdÑ@K÷e³­ÿ2°çݸ±ë½0TÕ öÂZÄQSÆ á 统L9žÓ¿ŒMÎó1J†‘#õj'"ÑŒg¾ŒIäöº|…>1!~‡”ïu`})o‚‹ák3Zw8"ü«0rßwÀßõàL«6}îû‰ôÅ¥ÖVH·Üë**e#J°íû”ÄA~šj¸ð䙜± À¸©Œ²×8µàçz÷ˆs…P‡Û·ÎACý§ï±žUF·ËM-BéV»¾l„䨓ÁÇ,—jÀwyM_Y~·7Ù‹wm’Ì›NçïÃÔ~ô\o«¨š‚x|ß1lyûÊ.¤ÍjÐÏ^&1^¹x™aøuÊQhßõIãôÊé®81qŠKð„v°è*]ŸÑQV-ÂEvì-¦ÊÏÄêò¬00týà¼_ðëŒöu¢EayÖ4äÎëäó/:Ìåm‰“ÒT´aÆïÛ¤=S}dïeWÕ¸PzVtˆká ÏlV‘‰¨f–EŽd‘è*"ºÛ;á0V0nRó÷)8ÝÔÔuÐ?’¯âÕȧ½²O”þ<Ê›¤¾=¹ë{ð—Ä5×”’_ §;ÄqÆ®’z)Ú2dj+wlꃹ·Š@­zxÐ%®ò /wFb»bddæ), ÚÐòkYï)tE¾.Œ¼úm·N5Åeç}Ò::´Q}§KÅœ"‡qÕ‡E†-ðž!>&&+ûòAG’ÍvÉÝÎ’O$¨çµ¢HÞ=ê<ßÎ%A@"ò¥Ã÷ø|Wˆë÷!K»Îq¾ª QÔÚ‰ÍCá!R¨ hœ2ˆú$é!‡k·‚O¼#šF¿ FçKxÞË0ûâÌ6ë“y/añi¬x ^Œ¸îIfY@Ž-…Þ(o–ÒJÄGp£=ig=ºÓÖœ[bF~ÃvœãÝ2·!/n¯]ÃŽ°‚uB,Îêr¶GfhNDƒ”âŠÛ%«öQ™ ‡8¨xÜè^z9û„ùöËÏ7©aFóXTÌÛu•öаÅ-œ«!²ö à',è5š·.%=Éfé¯5âW^☬à<= úÀ|sùbÃ2=˜)rèô‰]Ó3]ó‚?&ëÖK/GâÙ:™¢¹Ÿ…ðé)S%¤Iomƒ_ã«6/!TÐʪÝ-åV=ü©b皨OØ}ð×F𘊲¾…þ¬FË#õã®õ=CÓr­8˜Uš†÷€hw˜ªû#ZìÈè¤ÝPC,ER§ê>¯bþâ0*\§4>s±wÆL¾ 6pN/ýo¶—¨cÏ‘YrìïÇåð×µŠÕö•£ÆkD*¤¨ƒûqú×q§fÆ$ÎX—¦¤•¹¾âÖŸêìi04HŽ`H($,d ‹~ÜÉ¥À3¸`¥äWi?Øñ;€´2Ü&Þ=;©ó/"_ò6/qpŸ!³~´þNbÇã”4®á òúæË©fp% l´{Šø±YÐ¥¢î R¬¨ªWy§d_ô¬¥ÄYÁh>¸]M Lz¸˜v$bHPƒ{(‡X³&ÖÊGé²6¶ÚÉ} Fצ5hªGÐ(ú!"ŽÜNk•IW¹ÑS‹ÞT ˆàW€u&™ºšU­íÙޤ?n§ô᧬ÎA¨×Q¼‹Ðºõ/ã­„g\ZèUíÆ3“•.#ßm”¢¤¤@ŸN­Ù5î™àãd^¥Ý˜n¿ :3i¬‘UõáÆ ·nôµ‰¼<‰Týxv(W™ëLƒš—ù–ä7»&(x…¹zÒ˜­Ek‘‚.µÅ~€Õ%¼S®w’N„]&Z2u‹­Ô³÷à—áJîÆPf„zR…Q4›‚¾„”%¶qIõµô„ïôôÕà¦/æï Öò®MÈÑj”¥ 8ˆ-ºÂX&¬ ¿}-7GÞF¿|ƒgÒ’¨£“kAEó=ÔìJ÷ø(|òÍæ®jÃK¦T!ßDJ;ƒA z#³¾„WXê;`}gæùû³ôvjŒµ.â$è> 2,:ù쓲‹ÌîNixK¨ƒ䘱r$LF‹÷8nørEµkÙzr³¹£2ì—¯=å±·*â§êÆ ‚8` €P„i}½Ë&"€æxÁÙà_Agrja}yú6kødˆŸ ¿ê®;so”çÍWNÃ,ûQã<ÉçTR8¼åêBÜwý+ä­‡*#ÝVýgÆ!ºÞõªcÝð°O3¸i–®#Ó×.>¡™™ËòÛŽ»ª‚º×@Ñ0F K0!lã÷ì¶8–yØ”ÔÒÉ ê´èaᛟÞÕ~ç‘%wÿžPú+ópñ‡Î¢ŠÞl‚¬,i7OÎöJ¦î@/ÂÓ§gʼ®cAY¨ŸJÊõü®0—g$›_Ô1GåZrE›¦Ê´ï [ÍÜPq ÄÁ‚§ÇÚôêø:ã›%Ë0é¶žî^ Y#bnÊŽM…•ç6W(3i$çÞï®pFœ„Ì-L<ˆ˜?Ù'V\ ‹­n¬Ïµ¿j¹<<ѯ¥çqâBõ´fe£ ã&Ôj4Ÿ†9v8ÉÀ-¦¾ÊnGâ©F§ðñp+ ô ±ÑW–¬[|ešÎeþ¨à CBɳ1ñœow™¨(3ŸQÒ¸›<ÿK©åÓåì”h²raNžHovŽ0Öî¶RÞ¢ÞÌ4­ë¯!"W#ÿ>ð-ˆ¤C9\ê“wY{ŽhZ„6ÔŽßa/ZÑöÄqÍòCaw?1Ya/¯r¤©ËXÓÖXz`QÕh³¯Ñâ®ôÊäA %Z=v•?oÒ[&¼D¡€pÏŽx7ÆòKCĬa=.s‹q¤™OÚ„ a…°ßÚŽÓdïN­Y—˜SeðÒ|[em&ª˜Ö€!"¥›[:@H^5@ýCº7®Ò¼PÔ;dŸëzõkÉ{è=+WÞ<Ïã%øT†¥êA©Ž÷ øÈ8®Â†„Kõ¢J"k—Q§§e —9‹ÃCÏñ|UåßâOóº‹Ñ ´"_5Î_I>¼˜± ­m+hÎÆRámssz”‘4ÓÁ,¹úA¢2 –P Ÿ E ø¥X~‚+7”ød4V ‰#×ú§p礷o?Íp„Ý´ÐÙuÜÝ‘ä6Êeq´rem…ê‰ÍO3<,®=ÃÅ^´JëYZÊñ ðþXÜ bD.ÓÄ]’äëQTT•YŒ³.d}[ùðJ#ÅCÙ»‰s;·ØŒ¢Ø$‹ö]–©<<»ö¹Þm¦)Z«ݼ™› C`kë â@1•‰8ë×xÝš‡Ñ#$ Ô™%baý&Ó»‹åëîÕ‘íõCœþ%tg_)½ñ±<0¡í_¨°Øi§Ì|ßvpÏ+(#¦ÂTiâ«\u–&zÞÿø^t«yÜEÞG´‡å“G¦â\G8Éó-W/ƒj R4•;‹üh·ÂM¢äCí©#eQç•ÜsRs2YÇm2o:£YÏê®UÇÃÎ ÷êªÎJÚú£édFÏ$”úK¡\¡`î Li»Ÿµ8âr%ïRš°Kæý¸&‹ççÊ<öhÉîÝò’ YÄH› ìÝôSñÍWR\±98ÅËï»åˆŽYÔ·`Nº—ÑÑoDïV¤‡¼àÌ:ئUq€äßE +B½ sãÇ:ÁO¾„À)‰ô²(†ý¬bÛ›(×ÙõÈw‹Ñ?iœ¦ÑTQw³ÄÀÉ*¾óÕÚdB‰G¥&vò}šVK¼÷ÝÁ‘oÜÓ;ŒƒÛK¡ö]¥€×„‰›’ˆÁ¶›ó?÷Hp£ÈQRæK¹fvÊè襧( )ØJ~ŠEÑ›ôFs Sµ¦Óˆ³àæ7½whðAû0¥8™¦†² ÒZĆªàü‰ñugƒ­±)ëJÛs Ïuʘ£?HbûÚØëakëcc‡PóÝ)Aˆ.>Ü^1Ip´ŒYœ§Ü9$ÖæxmÝi=žÑf†*‘"Š×±N©BUIàê`bÏû‰M|Æüñí¦B‘ãF‡Ívv?߆zó@7œoü4˪èXåXcxælÙjI.$·> ñ« N§AÛÀÆ® µô\tð³Swݬ`¢"ï¹<ñd¦.QáñþBØøò8Æ¥[é²Ð]ü@Bò;tð™_í£OÓ©‡%j°(Vˆ¢§óʘÂóŽyŸ'õO/åöÎJ*dLÑß“²ÂËÁ<”ˆU²ûÄ(§>ÑzjHj¹q·¨-–ìø¹ðs­‚Ó]mâÛ-–ôa¬§gp.ß)×Þ#ó˜9ª}̪ˆ·Á­`'õò&†Õ•kOø®19=MßA¨Æ°ß\ ã ç‘—y±VJ*é§öÊ­y«âFc 8ì/(“˜"&°àßÃTØUäíCVJ/)Ä?õÑVØ6\È-x܇ÎèQ”.nÚÊÅ?´MªÔß î-kú9y:9ANœÙñøÃˆðG šŽïøþNPî¢Ä°\X03‹;îχTPi˜ìmÕ¯Pü6 UI´%å#á*;²{ aòx@ÆæI[X¾'„Ù—¶«¨Þ=Y<œ§`<ìö šA–SnC’µVwmÝØ1)R8¯éM!ž>å¹\绹ëÜkTŠÎêªg ï'?¶ïd®–ªM†cÒºùÆnQV+e2Ù5©Vè²ôÕ•FQµtyl¤U¼`1†ïpªÊå#TFévŸžõ…êî­ Ps] ¢ö»ÛÙBMš^ؾ6í‡Mþ^6ÛßúÅàZAèWàå=3ü diìÔQWJS™¡TsÚ«`‰ %w^³\[ФƒRÐ))^:]—[gPæÙΟiKçm° 82ªÓ‘ Pˆ%ÍpJð$«³Œ f›©¾-¶æÑõ5ÛÔ¹O6cår'&SΟ4Ò"ÒDÞ’ŒÉ¢KùjÚ™ø3¦æ´? uä–&u­õ–,k'âËg`ðÈœs¬éÍÁÒa˜Èhxa“’Ìe_+wxÜÎH€8ŽÛw∂1<;ئCÁp”Áq³g8u'™a×YFäƒn/_—:Sµ_jfÍ¿æ1\†0c“:*`j+­¥G,‹…3(¬H®àã¨E·Œó_‰rÃR”ø °d¿|¼"EùtÍ Á¹MÀŸmž†ª¬sW”˜vŸìK;U]ÚËߦc¥]# S|U—¦b•ŸWó¥í3FYDÚR.F¡S§DUX;P+É@ªåuv•N£-˜9Û ’ÂNGf¨û´ô6FK4Cî%£%"Á‡~úasÀ»‹É—¿ „½N˜s¤Zóàžë¼Ã\¦§Æ]³èrËåp2ßãG«¾vû^fó¹2Wü×q`‚ÐEqïz³ß}(Sµ>ÕèS«¨H‚ôëi^¢¢‡utÄ2´ÁOvˆ£ÅNŒvÐm,ï!5Æš‰\¶2­KcüEY9JKÈV.§ŹÛ_{o̘X»RbpGH×ý^VãоÀ û \1#OˆqÕBãb!³9À0²„ß8YSm‹ì,|LYG(~ðÍ^°A¨v\=ˆ AåÙèO€Öƒ)¶fîq½ò>Tn†xBxŒ·¨› ¸;{½|ÊÙÝ×P t¥Øq 厧{ÝÉØËØØeì}šàŽm4Û#Ù%ð[Ù;Ãz8@‘îkõà67AÜéµKAc˜p±}7vmsŠ;áãÿõªþlª~‡nqÐhMñ…ÉCj‰—8_#+C"½ ¸w É8'[x\yL·XDþ¬2ó@O•òC<Ò!»-Vl+qhWóñ;r?îp2QHÎÞ3õìÕX›óø@§\·•Mº²,½°Å>ïËRöÏ[EOà/–¢Â·OzK.$üò¹ˆb±Vøõ‘C‚€ûç[·-Qyƒ¾ æ QèHxáÃcœÈ$…²Ð£µOMÓ\‡aÉŸO6oÜ䇨aGsÏ£†aÑòËÚŠ/ûÜ õˆ¹T7Mña4^ù€ç÷Ýcúcƒ€Lõòéç»”cMZŸ™Tž0 Æ×ÒcD§Ë¡Œ% Ísu#k“úcºä(ÛÎ\0ýY ¨‰œ~¢3T!ôÇHkƒæQJýrá¤sˆü!Íw0õE,Í KÛœÌDå,ET`K”ßÕó|8ƒØr™ãw¼$_(œð?~d†WLBsQ„'XßÄ8cNÏȃZ¥+Äè+C½e‡Ånkb \ªŒ8×ÛøÀx覟†¨Ÿ–æüAVÞDGA\I/†U×äÑ¡–aŠ®™:y–x@ýiTøi—™3å‰IÁG‹!3›_R#!p<—™OÄVç‚-ý]1MŠ¼Ñ§w_‘Wåýö[×*ÙtÃJS{¸“:ÌyºÐ_T±nÇöjâÝŸdÞé-Gþ”¼`øáòÕ“TÆ>±A | kù½À.èCa¸’Úyx´ŸêQy©cp£4›&SâLuuSv?g& Ž;ôŠÝ^¨ `]J” &›îº&#1õo%“Ûrô‡–"ê™-ðŽ@·Ôÿ˜“ §\ùÀ9`Tv„ÙwÝÖÉ‹QJ¦Ò†‚ß²¶a+›ª¶ ¯\KŠõ#l¦J‚;Ûsoºˆ ~:̧x²…€­ëãÿ³eDÊ endstream endobj 102 0 obj << /Type /FontDescriptor /FontName /LCTQYL+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/Delta/bracketleft/bracketright/colon/equal/i/m/macron/n/one/parenleft/parenright/plus/s/semicolon/six/t/three/two/zero) /FontFile 101 0 R >> endobj 103 0 obj << /Length1 1380 /Length2 5947 /Length3 0 /Length 6887 /Filter /FlateDecode >> stream xÚW4›ÿ»·EÕ(Ú#öˆ½©]{S«D)’ˆ ±kïÚ«v©Ú³VUé°·¢¶j–5nÚߺ¿ÿ½çÜ{Þsò~¿Ïþ<ÏçyÏ ÍÐDPÙáÕ@ÀÑ‚"B Y€ªž±$DÉ@SÚ ú‡”hEyÂpÙÿ¦WEAÁhœL ŒÆ™é!àm/7€ˆ@DRVDJˆ‚@2"P²5°7Ì 'ÐFÀ¡žä@U‹‚9» qYþ:x ¼)ßîew( Ãz`´ Ô—v˜ 0(û¯<ò.h4RVXØÇÇGìî)„@9+ò |`h€1ÔŠò†:~ÁèƒÝ¡¿ ‘¦.0Ï?Ä&'´àn0î‰sð‚;BQ\n€‰–.À …ÿa¬û‡àÏÖD„Dþ÷§÷¯@0øog0‚pG‚áXÜàsƒ 4t…д wüevóDàüÁÞ`˜Øgð»p0@CÙÆáû'C¢=…€-ÍM0÷<½G4 óyxÈDáµšë §Q.Íc¨aIà?M§fLÆ*\D8ÃÙŒZ¥GŽfæÕ–ÀžEEüX­z–xW â+XÊþ0=~ÕÎJ~ŸÖ9wßêÕùæÐÐõÆòL(ÉR~~PÐd~ˆGZ”p Énku‘²›}>ν:UÁ©T÷)E=éF¹ZT Fõáí&–ÄHsWz:ç‚Âa•ÆwÆYgüÝöðT ·ø†Ôê²Ø•WÀ¸§DFŒö³¤î§ˆµ©·O”ïnÅÞ–á$ì´úF;鈵uC³$ ®Ð(ä3fg÷+ÆÑÒéÇÁ×D^Úìð ©?3©³ø>²à‰âÑÓLj’œ ä›V—›zu9ªÚÍTT¾/r„•(]xÅíÒŠu"¯ó¤¹6+$ýp¤V¢º£Ñä”pí꘺]"ϦïÌ(Ú2]:}š!°ÿ6'eôHÓ|3u¹^|-p _Á–xÝ*Ñ>ަh'%‚o• PŠb=ºàÊ£Ù8Èê‡#ŸÛ –B‚Ò˜s3?Ë\¸P¿Fë•aAU©åS#[fûçIeDÝzúl£$) ‡]ïù¬Ëî­6ËE «²?0æ¤ðÛ:'ÕnÐZ½§ë ¿ ¿‹‰Ó§Ä¦FÛ‘Tš¿Ó¤@]¡´ó^ô%¼yÀ< 81§4^3•¯Ùo-÷Fm„wn{üIRÀF¨|üsÞ- ò2Q èrC| »ÇÃE’ÔÑÓ!Š¡O”¿ÿ¾Í TNC‹°¸°ÙX5ë«Î© ÓáƒöÃŒyßaÒÍ…c£,ó€œÍ­3—ÏqžüË|)Lf‚95¬KÔ6oÏynu)¨Y;òÞ9[¡ƒÓy9žÍ$GëÍd(+œHès>c1Êp­¢v©X}{ÝÿVMÐK^«^Èî<ýt{¬B@bÚˆdç}‚AŸbn¨×{'â»5”H6ŒÐA')»'ÛÉ”É3ä‡zo}¼+½Xé´ÀÀì¼ÈðQ:»m÷÷jÒ=-Q¨õÚ¾—X /»®Ï“’¯­š’šÈÌ{loYV´ˆ*ÛÉ«ÚÞmðÆë§¶ùCvæ†ˆË £ðíÂ.›@&kaýém1áb"^¹÷aVÓ¯Nf6äžÒÐ×v²Üc³þ2ó¡€(Áþ¤Ï›Èé›ÀGãÓD2qöX’@^/úmï«KêœfY6±Ï-ä6ãò˜Çu@UW%_pN•”®Æ&Vº*½¾À^F‰‡·ÑÊÿXXÜHöPPÕäìÝHo¹ã8ÓUGÜø½OYÄH:DYÐ)ÚAÄÞ·ªî 11}î陕͵"¡ÔnÙÕ‚À/=ž¯²ØŸ;lܰ5Æfeeq¡zÕ@×\t³M&y7*}%õV>eÐ^°s·¬¥_tãúOæ'ÊŸÆymâ  V~zùEò·~ ûõ'ïßõ‰Ô+pï%æL-¸”½ùêÚýhfSÕI=ç¡Ä©†mÌh,6îâkÐñÊ R’QažW\_; kKTdž«^b‚ãdÈO7È? Èä“âÓŒ\ÑÙšØÖeÌœ'ò¾EwW ŽNqÕÑA#Á¢á Kóùi`Uu6…ÂmæÊ ­ÞðžB×SÕ³í]éÚ;ŠF,á…ÖD´ßË|¿s# ¸L^âñ™5r²4|Hgy‚—¶7ÓR˜ÌsÜöNµcý`Ã2g‘[v¤²ÜvXgGûR¢©ôÜ:k‰ë›ÙÆyÓ=XÕÞ§$ý5¯áW¨=ïëZ¶æZÏ–ª#lLvvصªIV½©‚ò=ÉH’=,‘9$#†¶—þ—„þ(ƒÙhü`|d]Dÿ=^Çܺ`3Büh¤ ~€üôtÓ³OZ¹{íEnÆWªÏCÏ/ - Ä·&6uW¾^mªy»G£Ø]ØÑ0¯óvcoªÛ]­Êá³Õ5xc¶õ¼'UçU•fßmOÿ rwí'¯L 5É#»O•½iå™,Ww„Ô ZåmË.Q (ЫXnT^¸–/gnAÙQhª*êê¢à¾íÓw¥õD·¶–}f0Zv€Chƒgt3ÍÇÁLº1¯¨±ÄÝNì"w ´fÎÑtº:†Ïc_Èw²/ü¹]«ÞÏgO–ifÿyù6~׆6¹è'xÌ_xj_!½ðñŽÜG«Â }æ^‚›‹71ùß-¸—÷œ•ñ“–9 ½;=F´) w*(†X:;ŸÒÑõÒŽ`¿˜ÊVd—dÎÒØÖ•.A‘^ú¹{¢Ç9¹1yøºåã ÆöœŠ1ÎÑ‚­ªà݈¢›ÝþO%[³üYW²{i>¢ÓÊh¶ëäêqpÝBlÅ•ËôZá˱’°÷DZ¥Î·Ìò$®„Bƒ«z»ÏË”_Öà)¸.pVú÷+ƒ,ŒéJ7dÏÅJÖíÕzÍxÈUyl©÷DÂüÒßk^Ùnv™ 5äN_¦WX‹7ÓÛ‡[«ØÑ÷ЦÛÆSÝ{e*éŽ Ð«Y˜Ñ ^ĽǴà1)x¤q¸7¥IÞžÀ(SÞÆÜ'6²úɤ#{´Íçwc$f²0¾KfÍg‰Íh­Àzª@`âó›†Re}Ø©Žh¤7‹k©éìà´©1?ðÞÎÙÖúy¶èºYF§ãF j€³æâ2^®ag¬¨’ Ö¿ÉXûùâ<£hKŸ Ý-«È¨nÐo©­½«M|Yœl•R¾~©rW /Û>΄œŒ¯Äÿ\µ©˜¯“ç¶6¾áãwœÜ5ÅUÊ_L›šo”cØ›Þ8dŠŠÛÞ£šl[Mî8º)S-c*ÿò}~ÿc Â'á½ù2 ÖZ~™†§Š¡Ì¡TÆ^.žr† ùrï\šúý‚|¹=¿u±s QÀ ; P‘C>Ô¢`‡¦¼Hj‚ÙRÑfyRq±•µöÑoîEçzóZNÀ’W>p ýºjßÇéq9rSüÆQèpó¡{ûŸ†(lƽž¶©¤‘¾ÛþnÆ£êÝMè£twšìú2O-¿˜ƒÞ>m;Q7L¶îÅPãULÇׇŠ6‡ðVñ/76gQçSõ×õaÂśʨ%µî:×"Ô§¸#‹>ÀëVo¾µq«ÔMvlž9S•ë¸n˜g_,ª‘yPIrðÏ­3Ê H‰+w^Á®ó8c%ÜLb÷#[~úuôRX½f5ЦŒkå>wÉÐÝ1z]€¦‚?Õ$x”±ë¼tßt«0Âõ{xÍXž“‚~èËB0ÙGÑKð®ñ- ù?(”¨¾/ø±[ûQ˜R†Aª‰£¼þS`·^ìáaμi]§R£Š/ý·i㱡ւ"#ºzߊ²iÛë´ž±å¦›{†w ò¨ÈÂ5{Æ2z¯‚W|«V¾¯ðŠQ'fïèµÿ -¹[•GйùúÒœ›4¹Dˆg³öTnyÀÉŽÄÀ42ôÞæ¸Œ=‹&qØÕ3NC‹™b¨ånèþܘ‚“:ð}±3SÒQ­dÁýÀ·—¸lê­íÇVúˆúçS%ľ‘:©üD-zsWrÒ:Ùƒ½6Ò÷±iñ³rKóŽÂ“Om-Ù­zgE{¶OùzЦŸÈ|¦‰"BŸ0Jp Üg?q«OC©œÃÙE¥i ãü¾Òpa%øƒ±Ƽ1ž*Òé·< ÙO ŠúP¬ËKjÀ!"l+Ê­¾7ÍGožÒ¿ÕÊz±ñ¡žßÔµqC¦:sN–z©ÏÂæ$Ê;Qè6XY‚>uµûµó7<'[¥’¼—ݘÇåØ96ýGE±Î²¢¹±ÙQ;ñí4À¯^“êö;ÕÛx*k˜ Ÿ£+< 5}Ù\T÷³¿…ä†ÐÅê?=4Y«›Ë+QîU¡tåç"x}§{d,3ÂóuhD[„\iVe3]ŒÇ!]ÙyK®ìv»ÐŒ,ïN‹õ³‘ÃúþÞSÿÎ÷†3îݯ;…£¼j–9¤”ÙÍ*Þð6…™ÚL[a6ïR¢ѹ{ùcoÀÂ'Þû/ª‰¹š¥XwŽOó3 lVÔO½aad ¼b@±-\Šä$¦½Ë}ö®N•„FøzãESlÑÕ¸³¢®I"o…ÖÝ€õˆVÕ¨òœ¬½¤%•!_ËêÁ#ÂÔb§4)Î!IYm30ÙWibsT&½"¹Yekt˜|ËYÌo*s$ºTÔ‹íj½¯ÿ h‡ªËZòNZŸÕó·Wå8\\æu¤¾rˆÊÕ¨.4…ü¬¥ôQ½þ¨&!‰}‚µÛº«V¡Ý+À1äô:Ú*,ÊœO €¡YÊÔù"—›0šŠðN“‘ÔâÕb'ãdKz;)üìä¹tÇ!"™Ç°k¼ÑÕHjfòÄžŠZžõ„ŽÍ)&Wóéh´?$t•G5¤ÁK¹öµÓ¨Ûš)ÄË:â8íÁ”Â#õl’ýÉ|&ÑcUqàÀ÷Æ ÊZzQ~G”ÑNÛ8C°\WRAâlÒI€êï?¡w‚ü/¹ aï^íÆ‹üÔê%¸eІ/ñq‡‹2„M¥g—R»ï¦:6óø+u0s1ý´>5ÇӞĄqªTEo~½Å}‘¯Hd´Ýçš„­*ÐÌ0øb(-m7.¤½r?2±Å¹¤ÃJ$ê‘lpxà*Œ'Ù-.泂«G5¸¦rO¨S„úK·EnY9Þ©E[qÖ=MÉ^ÈWÝå:pèÌ}¶²]*¼úèdö/†<ÖÇŸÈûrJFTGŬ;B"Òçøó´NNM >Q’…^Ò³æ¥bçyJÔéù:*¾ªä^Š\ •ˆ¢dq¡ 3ÎX°X;ôF‰™ÞN0ð[º|)FoÐ1w¾›kן ¿96¡¶ÅOVz‰¿èB¿È]/ÆBÛB+ÿq&´±çs—Y¶vb˜³ýЍÏÃæó§ U;,:ˆÊ\WÎÜÞ륯øä¢õG‡R\$tÌeGã?Öh Å㩊|QVJ}7ú8¾s@ö ®ïÖé%®U_—Õ'ÔÍÙjíÚQ ôB‰?úC!LÌj=VûŸÈÃZ/­`׆7ꎖRÞ¹dÿ,°–g1í†ÖûÂfãMy‡Ù+o¼üðQÄ‚OsÙMa¾mÃb›ÿ$-¿£DéE®Þ­epÔµC–c¯•A¯ðj™h¦Ù‚/ëëgß.Ö¤Ç6t¹ãÌý˜+Ú¹è&z¬XŒ49ºfΑÒå%«øÒÉ~„ŠÝN%OeóÑïÈ Á «J<A9(Íâ=’ú9|牸¹Dì$ËÈæÍÕU…ä*qá’mý?¶–oö=‚ÞÞ¯’HµBšQó*É7î’%Ô§MD×Ù˜Yr ú.¥<³TŠJš, P/èóU®Z[¤²x„ü´Ÿº;ƒ´j;B*ôùå#‚Þuú}åà.?lðÒ£YK0­[þö&í‘uˆów-¿7ŽºÊúÉÝAd„· [ÂJ”Ê-¶^¹SÞ}]+Š=R­ÅäGÄõTL‹é‘àæe”þKë*PøÒ™A0­¸Í\1ÁZM„ ¢»eðs¶F%Å£gx¹çs{ŠÉÜïH«á˜výŒDصW;åÅÇM“ ¡µEžrí³>½?†’ðñEKF±y³D7´TE”;=Î'ÂD5²ø52v—7?¦Á#«›t¶àÝBþhkt9›<-¢šócèäéïum»ßÈÄÿë(:d”£ƒy O…§É;åÈÑäÎýú<:ûÚùýNm¼=ì'Û .[Iêëo¶Yf¯ìž×¬$!>¿@êZƒ¯åߊ’½§É X³©¿Bwáš4üLÆt&@M¾áÇäÞ,~¤Ó£`®™ióg‘j‰%)„ú}±+h¡b‰ÄÃcó=È’êÍÈ¥–0·ÐÅà×Jè>+êí~ÖìáÁ ãôïâ2^É–»Sô2 '!‚™‚ì…{)öÔ7xÒè‘u9RwñêZ±®p¸s|æ/Fê endstream endobj 104 0 obj << /Type /FontDescriptor /FontName /GBCRXR+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/zero) /FontFile 103 0 R >> endobj 105 0 obj << /Length1 1549 /Length2 7416 /Length3 0 /Length 8447 /Filter /FlateDecode >> stream xÚtT”]Û.]Ò€ Ý1tˆ€4Ò%%H 00Ì3t‹tƒtHI—€JwJ·t# JJÈ?êÿ÷³Ö9kÖzfïë®}ÝÅʨ­Ç+g³)Á ^ Ÿ€$@^CW Ä' ˆÇʪF@@PÎ0g€-’Èl BþáùÀ-ÝA„«ÈÏç þó†lÀÖ€È Åû×;Ùþ¹#+ï ö˜ øõûçô Ù[60(Äë_õßÅåW2QSÒxÊý›ð?¢Çaž^!Q¯ ˆ( &CüþÓË?üÿæþÕ¶ÿõ6=ªBma‰?¹û›†û_=Áñ׸pþ3‚& ÙÇ Ç¿mo& "`üÿ¿›ÿ·Éÿ­çyù´ý¿GÉ ù-åø%þ?¤–N`ˆ×_rd»!¡CÎô¿UŸ‚þ ±ÈìæôßRU„%r2ä v’†+=A6Ú`„µýŸú»H÷0¤ ƒƒ­/P@à¿dÈY³vD®8²R¿E ä(ýgHE¨5Ìæ×Ì Šˆ,]]-½ð…GÞD>@äpÚ€<÷5€Ÿ C MHz~[˜+Þ¯zŠü 7dÖ‘ðoDDÀo ssý–ð#÷Ù¿w¿3r‹@! [Ä¿(ð/ôO¹ÿ…0Ä þ¯{¤78È l ƒ 9ÿƒ"­ö® £ ó#<`ÿ:ð{ƒ\ÿÿ‘k7WdXÄïEæçïûïy‚¬ñægaÖR/j_¶\ÖÈÑzðnJO±n?Mãäõ™wmu»"ÄNæ¬Îz±êz.—<ØE¼´©Èq&»Àpëó¥±;¬)I§ùÚ÷Æ"Awb»ïÓ8eßXṺ^z\:^}Ùß[_à GôFÔv5Ö\7qBí|²KeϺ޲ÅáÐÙmjÑ'÷nÊ&yc ¢Í‚ЧYó¬²g¨™°¼ô8\¤ÇžDÓgçS¤¯ÇîÔ¸ñüb„Þø˜¬ Æþ˜ñ^®Ð„wаИPÓ£Ÿ‘O°ù<ÞMQ£šó)y³ê:œ:CÙ:²îô ÙåðÞÖÔ½tÝûnÎÆ:&ÉACÍN®½Ú¤’èT̘ˆ%œ}¼¤¶ê©ú]¬Ñ Σ•¾Ó‚ˆÕZôœØMÔ¥µÂE¥v’»´S³Së*ý¤žõ<ªîj‘B=Æ(9ËŸa}Ç»–^:ô/{ÏNñ9[eÃ"¥‚+9Ìᙠͯ=xýêN=ö{ÿHŒÞ¥*;Üj…¶¹`Î? •ËW»Ý9™RÓZ‹¢¡ªRn¤øììíãþÍn&N}û„¢1sy"O´jÝM¯dž8'·Êj”Ô¦J•ÌçG*Y­Laìš1ÍRâìV' 8ÊXd1&ÝÉIVý6kæà–ʆã¦Óxð}KbÐù+x•õ`%Nˆ¤ßƒ»j¡-#¼Lz ÷KôVeÍã¶¹^*žÉ¢V~ÿçãL™èj˜ÄñZ‚Bâ ñ`,@4ï3UåÖ[­¶b[ÓEÃßçFî',øé~î#(í–=Áeó¤ §§\­#·Ç{I1ïcgY/B·ªØ?ãÁî!­ÕxªNmmw©½ñvß=Aâ­ÒP¦÷+ñ‹²K’— ßÛp­Tþ)«£àjš°¶O×ûû†¸åAO6ÍzBŧÚrjTv„D‡n>ÄAsZň)‘þœ’@—HTé§e|f¢7Jþù“v°íˆpÍt'}šŸFD¦vÑà®àx-h3¼¡t6º—Aøu%ß™ Õåƒß÷hŸ÷ÅMI(èDÀjZÆeFfDÐI"IMÚèYÎW€"‰_ÅP×ü©±wMrPÐèJ’Ç‹ˆ y B:'œdЄFëJ_²ãü  o+hÜ(!3$ãÖ§ P¾uÎñR ¢Ss÷ôq$µV§ÄÈ¿z´ìvµ-O’ÞÀmPÚÓдãÐCÜ„ÉLsb4ÉHµÈj >Ö\­Pn3:‹SíÃСøÚUóz-]zF‹ ˜¦Ž_ΣãìúMYÝ'do ÌidŽ?NØ F6ä }»8`ô<4@ÙínujŠm={îðÆzбžÅM²K·Œ|>$¬øÙ ‰¸y&o”øõÖ÷3|æÆloÓCéâa+´ðG…?†º›Ûš¶ñªÅÚ¼iT§÷äSYaÍS7å±ZPqÚïºvÌ)R -)C´9ãÄ‚ jÜÁC'¾ó8ÊYIÅ»3‡Y_È×%jgƒÉO@^ù÷InKø$¸yx­„<%žÆ_Š¡ùeÏí/I¿xϬ4Ò5¼ù92UzßÀëVßùª1wÝñÍâ&YP¸ä³¥è$¼$1ì3%#Ö´V&€y<ͲRg¶&wâìÊï!òªÄŒhÈžn º:Û˜ B;1!º[îߣ„£-ç—Ü›¦Ò*ªö7õ½þÞQžÑ¢íENI!”ØFçJ†‘¯Îåµ<ÕB¯ð”œŠ^ÚsÒ ¶¢çÑÍŒ‡E‰¿î§ZØKñÙtÃî&ˆ ±.àÚ–*É,Xm¯ö£@ +~ú^Œ’ÈöLð’äÓ9|‘³Ýx×fxcušW‡K*ަ½hSë@-̸gØÒ”¶ª=s4qŸ6áM†bÈà™ ->íU.Äúá~·©'óß;ꛯ1qUósÁÑ?vwrŸÝ.·Òè!•´ËY?ìì;Çí1ÔúBÝùœ´PFô ’ÙwÂËé‚Wx„—gè[Ö=Û¥sϧW„1­å­ïbœá FŒ1¢.¼q/5ˆØÈnózãV™€ý}<'MpÏÁwªz©™=Y—¤†wLæ‡bÛBYŠÝ ±ÒÓ90òõÍžœóæ;ÊDüš1•È·.eãÃ9³îŒóØž ‡[¸b7ÎÍ÷Wmù.Úºä•SÒ©‡ô¬ðoyñÞl ŠeŽp;³ Ÿ;¤SlѼ?×2o¾}£ïì£bžOÞӃͱHpêÉ’öîÛrºå™˜@“·#ÖY-½AÔ}D{ìJq¥Aæ ^[xvGZ0b”"_´2´Ä@¶ß‰+H€Ù×d¿qS¨0¿b—Ù\Žu¹P^îbw^câ×´pQá´þ˜Jš×Qt³eõìÚåpbÂAE}|ÃÊÕÅØ…Æ õÙh¹ ½]ÿ| u¡³XnR~¥ä[Íy9 Ô–ÃЙãäoA_u9|)Æ»,.ô ø†.Ä-“  °²ÃÜ™ c+ŠéíEtdâNòÊ8w"“íØÔòXŽŠÉI§‡xÖúôžQ°}(¹Œs ìs-epÅÆË aßõl5_‘¥ú¸˜ÐáV³£Ëö¯Ù`\B!ô >·LOzNóQïz3pg…‹úÆqDTwF~Âö |H§…˜ì+:ƒžÒ6þ7rÖM\ãd(¥rfÂôRšS>õX Âw‡y7"g[êÕóÒŒ†"|÷Ú²ý\QŸ¬_ÓS¾qy±¥—ŽÎÅ®{%C(Ù6ˆPBµð Ò2ä¥>¢ œ'¾ÍPJþ¶K/Åeòº9æåJgn$±2,t§;§À#Çr;I›þ±H„,Mw/ÍQWwa0Žj Ä’$CnµÒXćûü¬Ïyœ(ËëÀ9Ä;zkp JªÆ#ÈÉÈòN|Á•ÉÆÌkJ¬ „Zv9…Kz'¶ÚiNÞ+G·Ç^µÌÜe5¥@•uË/VÕc¯¶#Ò3¾Ÿm÷Ý{jÅPóŒS'†dÎÁŠ7älD¼¨L—5‹_Š>—Üçñ ¯­•¾EW#R 4}Z¥Ðä£Ð+¶ÔL/ÑyNË®¸’s1¾}Í <:¤JN@¹Ï0•óyæzÇx’)¶É ðŸB-Ë/”TïôUÖâTèBž'¢œg¸gµ%)Ý–fâ³ÜñB}Qé¥ñø”±UÏÍÑËIäí¢‚7Þlñ-»ðýÁ‹ÕQ”—:¾l³%MSšt©­…Ù¦ZæÕrsñ…F NL?u˜& ØûŽ>£Ï"ÙZÆ“P{?Óø`àlfv O ’pfóµÝ÷-šN <:èz»Ï^‹ŽÜL(zqi£²]’ªJJô3lE‚5„' °€^Ãì»Û-Â’a8Cf›ú…Æ Øð‡íu¹ k)Ýš2kx¯ð öØk>Z¼çÍÐgÃp’7sw^§¿,y_n1K£J@rÇç&§9DÕ'\5½Ù}ã–‘¿óÜxušr ù£ÜÝzà ´ Çe½¢#®Jyøk¡ØO…S-Ú¦bñ~ƒ¨Ä£ä©›1•Ðûr©3Ô­ ‰ÓJŸÍñªÜé!Ígísý¤Èèë{¶v9Rª?[W;“eò™ÒOÍN)x×â«h<ÂS\æé¶.šíôÝûï—@Nˆ¹-}õ¹†üýˆ'…Õ“#Á›#´–Èkóí#ó§r†bUž:þ æ#Eµa[~T]Áb|‡Ì•~Âúi¨,šÑt†*…oS27r¡Y™‡6i–pdëIÎ2v>‘?œ£‰|LPØ”¨p™àÇ$þ@™¸"$3×—áߎ9KFVH ¯Éî‰Ó ð3ÌãN¼&¼: rÃß [v\_*ýÆ8ÐNýú㡟'@ZÌä»_0iVý^Î3딢/Œ³þe12~läÄVF…i .s`Å(!*t2ϧÛѸ×&¢3EЧbùuòÛÜ’O¦÷#’Þ®ÿXöW²Áд+â(6í°ž£'¢ŒÌ•¼zw°8¶²Õ» ôÚ¨£ZÙÆ*'òh•‡`î”U¼Ív*uêØæ1Öz›£’%Ì’¿îËvµd~f@[Øæè §{oA§H1^wËÚð–ßVÍ;bxÓüÁ½ÌzöäºZ´ãº€zÁ‘¸PË—-”ýÁùGƤ„³¡& y§·&tÁSv!6ݸSü›¾y§S†c­ú¤”Ël÷Y,2+(C¤é×Þd£ÊsÊëžý»øühLµï‹ª•.Î`˜%uy¸bª©>Í3σÍI®Z²Å;È/S T÷¾q;¤>{Òú¼¬fÈ­+sa€Îžåvåa©ˆˆÉi0Cý^œÄ—ß[¿ÍiD¾ qøšNYÌÎ񵧾%Šá{`O^"c¥ñÖ÷©Âº:Žhì¼×óŠƒáÜAéq¯â‡æpƒÛFò'‚óúGg8ñÒ%¨M¢æÃô´Ÿ…,µXÑǦt‰¶ñ[£‡³)W²¦ðYG”€ aGµæcYþ*=­²1¨±š“ÓÀýí#o`^&mÌ«w?1³¶¹Ð1ÃÕnžÍ'úbp´åCÛ<äÉfƒlhm­Ê$+|ÕÆ±•7V¦Çj;âÅÉÔÇb\LlŒ(££Ù¤—1l,ß|”ÅÉ<‡´¿î.ã Ž–bóuÕ ¤n¾ìèÎ1;Ï!ÔÓÃQ, T‡;îò݆÷LhæÐưÉ>G%žÔˈ–8 Õ§|« ˜‹¢L}Ÿl•° n͹×Å?DmCmk=b¢ç:ûY‚îMΡɑ3Ú}]†žþü(ƒƒ«¹lÒ!å‘|d*K~0£dU•4;‡Ü qíæ€fúÔ¥í(cª fxèb³>U`ìqtNœQ_¿Dì æ–-Û ~îW4 åvìiÄ=˜z’I0Î}o‚ss\£*V&¹C5’ýkX·ÙaåqÃ|>}º‰\“¬ •4<£umû[¤óÚ}a´EX¯”$‡ë–ãmïcàš:~õyütèf®i›€VÔ’m,ŠŠrÏñÓI‰R[ü«/y"7º·¿fPÛ"·ô〠J’ ÛSì‹G"×ë?âEéWËä2TÕ¢Øã|xå µ,öR_˜+uˆ0ØØÜwâ.c˜•·*;3™"œˆšö¶?îy&µCô~=—@?üAMÓ„_[ÔrPËþ‰×iüë÷ŒØZæƒ"{RE¢«}Ó=ªC ÑéN¼}ž²'hS‹ãà“¦í‚(-¸ÑštqòóV)iÜà€æÌ|îÁèËò(‰›ßZöëèªãè#H ù«W ï¤-Ðspü"æ—¸€‘B2¥ƒ®"“ÇÕIõ¼Þ™Y 𢀵ÛúL:´E½c?èåNª|ÚG­¶ œzVùÆëŸ÷ÐL1,FÏë|¤«–±¸©mÊ/ju:~þ]1Š»"3‹£e|ß^sÑòó´W'øŽ‚F R¾ÝcU¨ª5PM6¾ÌùÉäà( 'vò•Ẋöå½qºä$lhÖ’öÃÙîNH~åi“Þî¹¹`Ì0÷érRª+“óÒï_vßG)—øÍõ,âÏXNª§Œ±‘Ê$ñ"ð5¶n³ø°*Óò[_‚ÃôõÇ,Ù(œÏ0³H1vÛ+Më*[w¥Em™}|ó6tõqþ]Ī ð ÓW%æÂ•'Y•êwŠ\÷œJé–<îå/[ó ÖØó¼~ÈlÛìÉú“ûÁªºˆpn²×õ^». N slꉼ!6„{ûÔ¡Œµµo`}özn·ÛÕeûµZMvP{|틢Π-Â4ÛØ*©UAÏ—°Hô|“ÏØ-)ÅLÏgMØù»?‘öñ©fW|EÙ:/Z]þñX_Ô®+ªGÄæw8¬¤ž)â ô3ÚÍn–‘Sé¯^¥×ÖâRfµ˜ÁÒñŠ ãq[Qƒ?ú­IŒšé¥Až(ÊV|d¥Âê-ÔašÆÞZ99d5T8)¨ˆŠmʤÜiô:d — ,vxÎWÊð!yŸã‡DíÒÆ .cñ+©¸¸~SÔž¨“GÌ.° ›ØgÙZ:°¤½y9ËïÊßÛÐ_Ù=…øBqÔgjq¿m*Å)ªLfšùCØiï'_&‘7®û:ºïv½)jP *ê½ 8R®zÜý×õDc8"ûF‹þ::tz³Œ™8”ð¥ÛPƦ+âõRf9Ý=·§Áä§,{ýw‡“WšÈ–ìIçœIŠÞã=—fƒç^#x‚k8y?ýiØdGê5RÁѹ?/¥ÑGkîÇ-œÁ¾t¶s—=é[Ì Š‹TêîE„x÷ððÖu øñÌ›'Ò-!ÔÅVÏ<¿œ<æÎ뺇­¡Â //¬Þ»ÀÝhŸ¬é‹›¼àºjU.á–ÿëÓûvÁé‰péK&çm–âó\&]޽b= gÄpÏç= í`¸©ò‹¶gžl #É$Ž¯ÓšDoJØño¼c•œR¯ÒŸUF/9éwûŒ½°Oô˜D&¤qô=¨&½uÏBhuÜ ™ç8žOM“)£9îÔ¾óŸÎÇ/ß}û"µu±\·üs8ð¼îÔKU6#2–Ñöøƒzèi±¢hÁÉÃàQîåM¬Ü ~‹ 7ÜFš'¡†£ê{úª2Æ;Y4nŽ¢ }®kv%M–¯Âp).Ò?ˆ?kHWÿ”¹rû,ìo/fé |Wê:›Z8T0“^sk%þÉWl¯;`wß‚,™´Uî{ÿ;Aø#ÙC×Oޱl,ÐíéÑ0Zhå|ûókò¨±›' š¶!¹ Õ[¢}ÂÌÍl¢Igu«UÃS?ÏFÖH7”«´ îôª ƒ%JsØ3Ø”¢™ ÆÖe £O[;]1~€49WÅÊF†‰OsÚQ|è­ÖcÎv uôÙS}k¯†?,2øÒ¬Ë³kYÝš©9³”}¸Ý Œ"ñƒÁ) (\÷BA·÷¶)ßôí…7e3ë¾¹¨-{'›½NÙ­@‚Zj+ã-jX9¨©çe~ø0Þìà†[¼÷Cé&aB„äS¸ß[Ü©"³ð“½9ß"µüÃ>¯2¢ÀUÂEIOÛÁ‹£S­{²EY(i·užêÖ¶=y_$´ØÅ,KÒÎ3„äpgOÊýÐýµ³ž–ê3›<=>KïÀô)d™©‚_•R ˜ŽIænDi µT Òx¡¹õQ/¸ïKĘE²?ÏTæ…£òáሠ˦җjå—ӽë¦+Ý}ôºLiWÈ+ò bÀ×àó‹Ø!È#´ïtZW•òÂ"ó³†.?*Œ3d»}X$:`«‹Þ²9’8¢ÕZoA?q¾Y‘Ÿ/ ®I€ùF~&$¦Ûš ¢Ð¨Ä½Ùm-ªÉ¤¤L%¯*Je1íkƒðc¼+¿°ð'ßÉÊL>¾ê ïÕÉaÔhšHì Ä %U6Ên²ÅÐÜÔc»45Snª[½¶ÂhgZ.¸îpïæoÔ±Ïæ‡~HúB~úȾy8qŸâ“JceÓc£Ú}`?rJÍ0‚=³˜“éí:´^ணí)н-\ð*më#‡xGж„N7¹n¾ ˆ¾ ¿V@—å ¥4ç"IÊ›kÅpG¾Fñ.G¡žÆàZL@˦$þíUîâ'"îw—CÆžæ¡FR†/®òº¤£1-,ÝI®2?¥™^ {æÙYD|+ù°¦óF‡²Ëä -m{oc*±·¹T. ªOc~ùÒs’ñaÑ’¤•«ÝÖyæþ€¦,>lfHHA:ÆÇS¼KQÌ.2²qnï£ÂIÑÐ&g‘  óèÞ»c­ ¼¶1…çu}ü†ŠÀ çÕM‘U‹#eéIÕ*讥[)bÎê³ pQ2 îÃo_®]?§!`býtÚ†1•}´àå¶4ÿÒ7.á¾-:A½R™öÖU8#D³8Ñ×è?ÊÀ¯§+}ŒÆŒB}üå+ufÞªøò«=ÿœ0[úú‚- <ÛýœæóÊz¸µÌ…§§¢KCb•‹lÞÖö.°' •¯&Tu€Ô9”;„£©Ÿ×ä!ÎþÌÆÚ³E™k@º+#ˆF"þí{¼%ài^Þ=éåfã硜Y»5.ôñ©´6o[j!Ñï†×Æîí›&‚Šû© "É)°¶KVv —Ì.ãý_¶sÞß{ – OöOÁãÜ9=ò=²—UK•zœý$ÚðSìôÝaÄÛ>±>y÷%Ó|Þo­X=±T 4hÀ*{wiäˆÏz‰ñLÙèYîotøûišn>Ÿ¬ûP˜R®ðY"ú© µu!`0À6î·ÎY8ùˆ¡iu"åE`ðà =ùe£E £>FïJªÍÓ0WV˜÷’ÝêFœ•g9oo5Ÿë~³û5ÁØÖçú²WŒeªâ}ȱEfÁ²­FÇâ¯+*í³¼Ç|E_ü$rb1»°.@÷~ëw|ïUv;õ¥`}»ëlý¤‚ú¼GpúÁö/ŽV¯ºVâ"Œm ÷,= mŒY«ŒgO;£ùžZ`w?w ¨ý(rÊè"›É±Ôq2œ²ecšZi0îx™ð4×Ó—&ú›ƒ³Q Î:“2EFvÛü`ıºS]"ÍüBU˜mî5 È™Ù7T R£Ò;xÑsÏÖôÒ«Àà‚#gñ³†ÀâWÀ|¸¼ õReàƒÿ¤„Ê©šL¬O1óz’b³êO2¬% ×)Ú÷⊴óD/?(è¯ÓcѹXàò‡}€\ËØ’+¯5 Î9œñ;¢ñU ï/fÆË¡ì¡â¦Œ’{Sµ˜Ø ­¦?/dX1N“4njQÅCÇwÐÐêž­ؼ[÷q4Ëñª£jòÏ'u;ìÔÇ۲Ვ›-t‡“÷©ÓåçyÔ×kòø}Š)²xi¡® ÉzñÍ8o£Ùø¤À*üªûzæ…Jm9+Ö¨½#€V‘e˜+ÊUzzÚXŸaR¨½>¦€gDiñ¢?åd) endstream endobj 106 0 obj << /Type /FontDescriptor /FontName /FZJFMW+CMR8 /Flags 4 /FontBBox [-36 -250 1070 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 76 /XHeight 431 /CharSet (/equal/four/one/parenleft/parenright/plus/semicolon/three/two/zero) /FontFile 105 0 R >> endobj 107 0 obj << /Length1 1665 /Length2 7740 /Length3 0 /Length 8836 /Filter /FlateDecode >> stream xÚ¸TÓ}7NII J ¤QR@º»»$Ç€ÁØ`ÝÝÒ H‡t—´t ‚””t¨ïôö¾Ÿç~þÿsÞ÷ìœmßÏõ¹úº¾¿13hé>‘¶Yƒ`Pä^.€¬º®1/€‡‡Ÿ‹‡‡Ÿ™YŒ„€þÆñ™ @pù/†,d…DarVHQ¨¸B¼ü^A^!ðßD\ g嶨sT`PŸYæì ÛÙ#Q~þþ `²x………ÿVH;à`  n…´9¡<­ ] BzþË›˜=é,ÂÍíîîÎeå„à‚Áí$ØÜÁH{€‚»l¿RhX9þ¤Æ…Ï Ð³#þèÂl‘îVp@À@Rq…Ú€à”w€®²@Óý‹¬öá1àOq¼\¼ÿ˜û£ýËú[Ù „99[A=ÁP;€-h*¨q!=VP›_D+†Ò·r³C¬¬Q„ß¡[¤µV¨ ÿä‡ÂÁÎH ù•#÷/3¨2ËCmdaNN (ÿ+>90DÕÝ“ûOs¡0w¨÷ß'[0ÔÆöW6®ÎÜúP°‹+HYîáÿ³!<‚‚¼ ä´çþå@ÏÓô[øFåàëí sØ¢Òù‚mA¨|o„•€„»‚|½ÿ[ðï>//À D¬Av`(þ¬£`í_gTÿá`€)jüx<¿^ÿ|3CM˜ ñüýw‹¹UU4Uô9ÿ¤üPFæð~Â' x",Èàåå |ÿmçŸ üýoTË ü'ºÿ²¨ µ…„ÿJU½¿qû3lÖ†ðo0Ô<ƒlÿÿç<<@ÔïÿóüVùÿ›ý_Vþ¯ãÿ¿)¸B ¿ålþ?r+'0Äó5Ï®HÔn¨ÃPý_ª!诅VÙ€]þWªŒ´Bíˆ4Ô5çOxŸrñ<ý #À -0hÿ×,ýÝ ” Ò‚!À¿î”ÏÿÈP«tDÝ-TË~‹@¨Íú·_y(fókùVp¸•'>jP'€7/jWm@¿GÀÍ…!Q*T޾[ÿWcùùÜ(-˜û_íBÉþ‚Q(U 0ÂÕûp^A·µü¿¡ß€5ä¿0>·‚ [äÁüàûB¥ÆbþÚô0>^·Ý¯{¹¸ZýÇöSa7ŠZv0jRþa£,@PUú7:¡®ˆÿÀûÀ EÝDVÿ@‚¨œApÔˆuWÈŸÄþUa +Ž í÷* hŸßx ˆ¿0І8Ô†´_UKÓ¸?ÙÃ^]댌7î@²|xåm¯†“©8í"ciSI9’¦5_65çCÃqt5îñ¼;;p%U)‰&ß¿!sò$oèÛY·ˆÎFm7!”¹Azœ MKliŠeÊšd8w*ÔÿýæsÁÏN͉ð>À PtAÂJƒŒ•ÎéÜLj6f`ZC?'yqnšîª§¬?ñ#üâR¦=†ê›ç†é‹ŒáååwÙýiü§ùª½U‚•adTä^* 9#‰ƒT÷²Ušh,2²¥)ñŒT…Na,+˜–B+?fòÚù]ì4dïjú6ºÖÁæÄszVNZlfé}ã&¤lNŒ´\Æ$Ã\eƒv1œ~\ÅÉíÅz@À®ë\¼UŸ—\«a|lŒÁñ æ7ÿ\sÕÜN{Ëb VäÓxpã~üõŽŒñtà‰ÐÜJ®Ì¾¿Y‰ßó\ÛØ/¾nŸ7çI×E˜@"“»¦ý7,^Òv˜ ¼x˜þvò ·ƒ5eÛC©áûÖ ™õ°¢È cH!¤¼1N Uvyà~¤¾é€•Zûy3.¼gÔ¶ñü¯é¥èÓÍ@gócçe.2r€{Ĭó¡Âü•ê,ÂÞXþr„_ŸÝ#´šl⛃r¡ÙÛ6âoB$U?>Èß7eŠnŽ"­û®è|rÑûp™¬µæ!·Ê ð³0HáÙ7-þ¥OÜFš‚ï<¥a]5G~ûÛf†.4rAê-ØÆOW‹ÏšIóãfGó´äOÔ~òmXðµÜ­l)…)¥xãóRxLS‘í±vµ»Rù´Á¯.¾jÐÓêdÊ'Ÿf´ÄÍ`œÿ`IÞH‡Ð+Ü>xî¯FŠ¡cÏû†N!ÇúKQå„/g8„PöÊ PT¸ØÃ†òÐÍvÌi;A™­¾H_ç{ ‘|äX‰`<ª4÷שølVæ¶Iò\¢Z¦94ý‚AùnLíLímʯ:¤7ÈCÑŒ®Ñ/郮RlÊ£Åd3wõ_e{ûl|ýªíkÅ¿¥PÁLé<{æUAƒS0LT2”.é©\­cøh°2yC(Û:Ll«K[tkÍ9H”ì©K¦MήY’x2°Q\Þùœ±ü[cJ&Å”Îá7Ù”ùB¬lm9{|*¢)‹Ç9ƒF²‰;ï=ˆµ¶…lK+_i™c”Õe¸/d’Ù()y9²/ùƒ=~ÄÓE èëk)×Ùz«Ž—Ž!¨C ŽÆŒ«Úó¹ܺã&LóZ~ÌÓ5«1kæIíg(‡%Ý[Ñb}¡òzdÑß-aöñS=£½~±ºäyݾäZ’3Ç\ˆÑ ñE-^„ï†"q’TF¢€ù J¤ÞVÝ3ÛÖ0µ§vQxp‹&{H=aÐÌçif¢P¼E‚‚ï‰:^¯ÉÎÎlw½Ã'ÍIåì—ÎÅ6ó½32ÖeRFöæ|¿¿XÈAðٲʞy®¬W[ ¾™y#e¤{–T¥ra ¦úŒ®qýÔQSœâð¦\jNX²y¼¬“^¡øìˆñ>ƒƒH×Óô#öÁå÷¦ñù™ç°¶ óLM,1[g§f¤Ï )q›Mˆ–nîøõusöL½­¾+Â3ŒµŠ£…ɺµºŒy¢q;)×®æhº‘øÒ§‚2⤋ùnÐÅ ½ ÜÊŒ¸š‰vÆÐ©ËR23nì±'þ¾ÞSCR¹3©œÑ3ÁDè?KVãÎСÅú™O³Þe„¥AhÇö̈oe»'9´–k‚6·* >nŽwY•fšïHÎ>&À8<µFæA’ÒíIn5#Üz,бuvGë„ãuæ˜Z‡ ÚΗxÝñ4—-pÁËönÑÂ:“Ô®M·y:aGOÒ”=E©å†>l’¨y³'ENtBÌ*–³¬½e%™ƒ|@Ë…î ;5©c‚±#…:Z;LŸ›ZDn;Þ³u¼4¿ShÃZÑ»ÕE󤥑à7M?€ùË ßð….š˜ù% §‘Ð*“kê¾|5¢goÏb#g 0òŒŠ¨,5¥Â÷­ªKçg9ìé_q\r8?,=SúÇÚ s³ÐñÉ,ÔGc~Z>‘ªÃá¹g€ý“†õ<{¢fò¢©[2T@l#¹\ct‹Œ-Ø88´ïÒQðÁøí¡Â¼ØŽŒo]ê®cÝb/ΪÎ!ÛÇÙ s¾yf éëŸN!mh1ãÄ»§`ØÌ»ƒÒ§TÚ[­÷+Cò<_’ù$Å}t£¿wÌé_K×—,ß|ñ¾v3Q}`ÿwåíƒ}ä|(æµ(3lAK¶~×Mãh›QQЗ è€ð'7Ǭ7Oš"þmL2§Ïv5Ûf‹Áì—Õ(Å’ ˆPª-!¹× <×âPü‡"£7kÙÓ‘0#u@[eoJMØ1•÷R]ã‚×´Z¯IˆOK¤:ÝÀÓ'ÄßÖx䣨Mt¿7ŸI®…WàFÔ½[£šo–ÞLnéî@B:kÆ•~晢éz ÆÕóiCµ"9ê_@¥qE¶EhîŽÃ)é®”xÙ…pKâÀŒ±“½ÇAL<´ó7õå½’à®{÷"½Î¶Ÿ ôûtJØÜ:xêeÆö68 ~N[£r)µ“¦J8K8žÛš‰.ìu§mK/BvÅŸ»éךПv§FËq˜&3Ÿ˜UŽÎƒ9Téª^y8äµrá=Æ»â´æ­ž«ýBЫœ‘S;Ö6Áä¼lÔz…·Ÿv°ŠMw¬bƒžðr_Åä ÆpÈ Âþ&`²o;¥µç¢è{y=í#~“‰ú=Ó# é£Õ‹½ƒÈþRL÷Âws+‰Ÿ–ÓÎY:àqõãnq‡r>RÙ¡ ¡¬¯³‰Ç©U ióIü¹v¹Jhh†ZFxòS‘:Ùk­Q\ŒÝAöÔT]DZ¯@›sNΧG*á°z©êšõÔÀ[‹“=éiþâuíû»]2tç~L'Âòù­âÄñ£Í$å;/½ÝïTY ð_*ÙÍtÕ=})“±³™u ]R~o­Ã¥vâd„˜~õíÊÔÓœ(ºð‚øÉ#Þ7Z¶”ïñ*ÎÏéöç žo´ßyø ^Plš°Üífù‰ ½¡æG,Åy—¿Ç¥"Óm.MHáÞ—o^ËøÝÑ䦊¥‰N…±Œd`uMfB8ee·-:=ÇHG6÷¶;v_¤Î³V6©……èL/B`s‡T¯‹²SZÎòk #†wN) /ÃRãD†·ŒÓ²J;W/Ÿ½w¤˜M¸#æy•­áJh•Œ³WXÒÑÏU4pŒÔ¨/ì‹€ðÕ’4;J+›…³S¨_û7êæ¾5N]€6PÅbcgÄͲ”p˜¿ L`½J¡¯S^³4 ùˆ­Ž÷¤]vÒMQVß»Ý[(ãLU4Šåùy²: Ä2ôw…,:1еÛ?~Ýd-ÒÈR¬?^»“.A„Ñ_2öÖÁ¬þôŒßHB%ÏKrAî0@\ã*½ÃJHëíBamÌ&Á¸ðŒc'ºsẖēÿ ¶u…¶8‹TÚè!Œ“s_o¹2+ è ‰¿¿oóÊ[>ñþpao´{àÕZ)Ó}ƒµm{jdö…—#“£#“ÙÓýªûX'@Ûæ¼ïU$m²X†©R§#g?ø_^¤9ÓC´«^%iΈIJ^+¹Ïí|†Þpöê¡^’K§ÂÔ3,‹›YiÒÄ.è>™ö{œÛ|'ÕÞ,^¢b³]9ØN§¦`¡Ñ‰õûÙ¯¿°r<øéb ‡=EŠÑÌÆ8žrãJ–ò9Q±çŒLØž·T¦¬­ç_y>bÛ¨²dþè]FCRÌЮM—ÍÍÂXõh9·Ý–)笘…G˯›"§>Úiª>ŒÕ~Íô©VœœúSЇlÉ=)~ ;‰u*ÑÞìÃY4fu_¥‡½Ô»…9¢²6¯×Òï Á;¨ªyÉ~æ*R“tEC´È”CEÖËuÙç©­ÎìX•ìØ7Ùô™¤ùì5³l-ß³ ·â7Ô…º ¸±4V _Ê®nñk 5ª™ êÜõ´\½ Ú['ª¯´r¢9Ÿ¼¬,ÍÓN«Qøª¥Åئ:ÆYÞ>mÜ "“ä)gK¹ÀÛÐÐdªÕ‹Ú9âwßc3V~±|óõHÔröþögéI\%‘ú7¯ÖŒ•h­y“ÖÛ”½›Ýƒu̧2©ˆã¿bR(yŸª$·pj@-é|Šã9•ÖB®µÂ¬ ÞÔ38 Ž}±p‘§¨:¯e_ç§QoÚŒ¥GÛ|«3˜«ŠÿK’½úS·µ½®sÕECïlõ™~Éq±¥ê§fßD ©DÉIÝèãCIÒï­‹Þ ‘¡OÄ‹,6"‹ãÒZS•ÌeÐ+ˆpÝmB<8À¼Ð7Û|œ(>eus÷g¢@ýÛ¨x€:RÂS¼*Œc#ÐZ³ÓÏœ°ÙO# ¯Éƒ°6^õ¥\Ÿ¡??¿œÏz¨ˆ±œ§•Ä"„Dc\¸*z‰ªÚ=ýx6K'ÚäÊθ['ú}I7%µÇ­cääú«¬_d—Jpw¢£ >W5Ä66Æ9ç’ªöLãðLù”ø~àÄîÊa°LÅlíCèûµ æ2—otNrÄ_€ô$ß`}¤´Ž³‚´°©¢òí5­PT>"(óÍ\é€çöÖp_Ž^nŒ¬Àµ"Ün]»D`”).<-†Å§:®¡+ ×/eY±lsþYNÚa^¶ºÛÖ*›²8xc@øe"úå0Ëlܬ_cÔ2Ts>:‰ˆ+æõ‹Ê<ÓNŠÉt˜†˜Ã£Ï¸7¬AÛ}í¼•dóDoE}é‰OBŸ«û¿α‰Ìƒâj$/BÃ6ÈL2žÒ©FØ…c•öïô”n“IÅdëU$fY­.™T},µU}?å¿Û8u• ËNŠ$ò=c øÙ÷L˜ëç\qÛ¶5µ› Ó_¾‹S’`H (‚"|nÔ¢%1 µ;ÇSVØ‘ìA&ÏÇcëêkŽˆødL ?•k I:~w,Ì/íÀ1ªb ®=¢-zM|¿GL¿¸öƒÆâ35˜Ã"â?I¸AÆ#ê/©SHV£›ûœòB5'›Ø¸61ϼûÍNcœZ^r‡SÝøB’ÓöáÅýBj7ªhcŒ0lãÔ‹zw˜3ÙùnC†|ŸÖK!IåDŸƒ±ðúi%cV·]’LÔ˘ñþ­£ç¢2æÚqš¥Iüߺ8dîò×»BÛ0™šV•ˆöns-4±A7–ïñéÓ™Þ®Zù>¾¯ÍÝW¸¥^ È‘œïÚ›®n@§#9°ßÄ4‹*²>éÂû¹Û¶Wn±Ç'6u5–:À‰Er€|ØSVm:‘]A¥’wSª)UÀ¬ž ´²Kˆ,j˜wÛ}NÝÂm½1Õ{ªn p˜GàvœÓQy‹ÏPXÂ6Õ·´ @2yÕ×xÎ o,¿mÍs( +êõa,®ÿ|~?‡Ÿ;8dzF-Ê>ã…ñ½ûuìó0!Çû«7I˜ýq”Ÿ£=®ð÷9GT!< •rÄTI76ÃçïŒÚßm1œ¤ Esz¼2e¯ûÄÐä^æ¸ %kSõå°xÉæ’»ÆÖË:+H™H$Ó•¦ÀªÖfˆ{¯Åd¤± ºŸnÕÊ’tÉ©ÒiâPu‡Ûf±ÙI¹›ÙdŒô˜îùûíÇð*|Û¥3'–æw«À\×Ìr›®zØÈ‡îF€ïõ}K¯yåûÏÂ2¹õ£‹,tÓ,/ωÄY&,oÅ¢ã¬@šŽô%[¨”w¼øOC‰®“ˆM‰ï UÛžRŸûo[ô×¾ãþþK¡WItèz"æ)c-T a`ñˆk=¹#Uþþ8÷‰MÖb‡ëæÞs´ž1ŒÏŒéþ—¬®GÃ>÷$ùðÔÇRô¶¿6Ÿ}“LÉ>›ñÄ»I3®¥Zsî;‰NIO=±Ç»}\úí~Üsw»É„õöŸº?Ûr²?”A²¬O.¼D[jÒ•=gŸË¸Ó=²é /qT'h’–ê±¼}ÅŸ’éŽDê^~îc¦ s&—³\¯.ÍÏOÅì‰ï ÝK6¦Ì¨¿¸zw²÷XZ:¬¼ª•Â-y=•±Fhf…àª×ྑmà BR,ýT UàñðÑZ ã¦éR±|Ë®ÀÝ äÙ‚w~*W)¦S H¸xŽ¡Qù¼KÒü)ëQöŽuéPÛý[VÕiKwgà„YjÃÒ¢Å-Á…R:MõUTKìrTXÂÙ ­wjÿƒ¾7J]N&HXò§ø•=¡áòÎÕ„\íœÁ¦Îk°ÄR¶‰fA1Ý«¨$›V…Ù. Ÿ‰±<ý®Ï ™=ж® +õó—˜ucäÌ£‚=›µü;U*ì8ÒAvµœz=§‘eoНÐÚÆcáÐUâ µƒ$ÍŒnød©y¯m%8S© ›Oëew¶WĬЉI€3‘ÕÊR>wSã=#×3­f§•½$G†‰åC­¢Éê°Žù·Òê¬Ë©œðü°m 3¿*ºe†°îc–‘}i/î^—Y­l2t¶eúôùúÉ„-sҾˈB²ýÓ‰Ù³†Ãm6ÄÛ…Sxþ…r ïX´Nðg¦G%âkïv ÒÛÐѯ°š÷bË7'¸0±SÁçÃÆÇçõ5Ö–¬RÊF \Ó¾¯®šyõ|ÜeW=Ï9 _z“ɨÉifLÛ«†tß’¯ÿà’s8v%gdgèìå&‰˜€³¾Û(¿Â_¢)ÉÚ‰tšé/×ñ¼å3Ä8i˜ýž¹QK±qf¯G·z÷£Í8hB÷¥ó‰/ó#’BG­šªÜô…뾸l—údå‰vµgÏ@Ãé£â²_¾GkdeÎ7<2̃ZâQçpˆ±ÕÂH"õyÚ;ˆ¯š0-z¼‚?…²=xÄ_Ӈѯï·>¸°„Á(ÉX³YÁ½$²®]3Iïý º]º´¯}×ÙüUåd[ãròt­÷ïðä0ÃŽÎOh£Ñ¬I)”kŠëùh.}°3áëS>Nçˆhà*&²fŠ369t’'oÓ¸Lä…ú‚_ËÚÆ= ¨éºÝ ­UTý*Huî˜>jÒ6‹k »èØõê­ÕIô‚Ã^jh”roŽfÏ+y2ðn)Ýí&y÷¹Nvä´à~š ôœE%Ý…W‹’ÊԞؤª3gØda¯ÝIOBžñ8Ž™^±žy¸øO&¢!&¤º™mÎuGm™J|ñ~lwýýuüë;ê@éò‚Ȳìb;UöÎãI›ž¯ƒ7ïÄáÿ8T3¨+vsJ#¼aZº½€mC8³¾j ¬]dɤpªhV‹Ä„Ü–zY¨ëù4/eW©Uä¾ÓIŸƒ04a’2šµÉIØ(ß  z^Ô£ç/¤6!­^G³Áôª»ÜI¿3'‰Î3Î7ö­¥dÈÖ¡rßì+÷µqêâ* oñÕ\äbÛ« ‘8+#ìñ‹‰ u ˜/(¡w»?q¢p ]yþ¸QƒQh‹¬ RBñêúÝ×åCèZŸÅ>áÄøó-íNuÊŽ$œn.¥d·ÝYÎ>Ó+“CŠáo¨çg—N§ØòÆS¢E]îÎò2R ÿØî{gïe‚¤]cžŸát¼ö|A³ªôãúVβÚù— ²%’EgõQœæ­Bœb“‘gŽ´É¢°þBùüº®—8OfPOH•%|tFÏš¥Š¤¨Xa¥=Q¡çvÍMv]hw/Ý·Òƒ‚»µ¤Ìzï2vf‘#ÅtNÏÑï}öÑ9¶ßaɤ@¨/FmÚú$–Åek†A~‚G‰ú5,hGqìYÂAG6š~a#ÖQ 4 ·ikÍ$}}ãš»æoM26ñìð:燴gY=Ëöª%Ôäk]~êuDß²ËúÑóî¥AiéºÞæz¢Z,Æà0ÇÃåŽ vi>é»…*ß0\­Ü6ª‹¢s£›2çÖz)<¢–Ìg¨¿©eݘã,æ\ÞnwÙu¥|6§ÔÏ‘­´¾Gå‚.æ¡ËiþíA—uy4Ù©éZ4ƶ¨É¡Õ{äQz÷¿éâüѾ/‘gvk½äñ>B¸ª}´²‚ÎÅ>7^ZVïBÓZUÈŽ#ÿñ ¹Œ’KûÐå»á~¢ŒYd·ÙŸJ}Ã*ýÙl–,é.Qrå‚tx­mÊ–J0c mzäGPX*·³:•¦zÿ*JÕpI¸Š²×DÆ÷ë‘qf’·»Ýô¡qÑd®ßÛ3ùŽÝÕÏ ¾„ß¶áܲð© ÚµÛ¤)±kNŒì±¹¿-­y)‹!l‰©$°£9¬Ó4yÞÚæÍc½>ñêç£<{hÌÀ¿»ÿ—á…ãGp¼í„nc{8fÂÂÉ-}`òe›ð»s|h¢Ÿ}ãþ¦ÝÁa™ÎŠÊÝb·[›Ÿ® ã/w©#G‰ÈQ3âÓ{T²á¿“ <ï;o½ÚKç¬Òq•ñçKN¹@£ZÝ´«–m•õä .ð“ìõÈ /À‰­ÄÂßM¯$1œù?Œ§Û¢»$׋ü êc»þ.%×Öx]Z#šñ€¥ªâÂBGpŽf𣠿úÜáYÐÿ/×K‚ endstream endobj 108 0 obj << /Type /FontDescriptor /FontName /KJFOJU+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/arrowright/asteriskmath/bar/bardbl/braceleft/braceright/element/greaterequal/infinity/lessequal/minus/nabla/perpendicular) /FontFile 107 0 R >> endobj 109 0 obj << /Length1 1399 /Length2 6085 /Length3 0 /Length 7047 /Filter /FlateDecode >> stream xÚvTSkÓ.Ò«4Ò!$ôªÒ{oR ! $¡„"(½÷"½(]©Òé(M¥ƒÒA¤üQÏùξ{׺wíµöÞïÌ33ïóÎ3{m^.#SQe(ʦBbEÁ@<@UßÔJIA q ^^38Ö ö—™‚׆ÆÀQHùÿPEà X¼M ‚ÅãôQH€Ž§,K˃eäA €8$÷7…–¨A¼àP€> ƒBÂ0¼ª(wîì‚Å—ùû à(ËÉɈü(#`h¸# Ї`]`|EGˆÀå‡aqÿJ! è‚źˋ‰y{{! …v¾)(ð†c]&0 íƒ~@°?Ì€¼38æÝå„õ† a¼Á îCbðžH( À˜jë ÝaÈ?`½?À_gÁÿI÷Wô¯Dpäï`ˆ£# áAâàHg€Ü 0ÔÐb}°"ú qàðñ/Ü â€üÞ9 ¡l €à þE㈆»c1@ ÜíE±_i𧬎„ª¢‹¡øµ?58æˆ?vœØŸÎº"QÞH¿¿Np$Ôé ¨§»˜9îá ÓVû ‚7Qücs†aR 9iiIÌóqtû•Þ çûíÿ2ãø¹£ÜNx°¸ ÿ ðÃ@¼`,Úà÷¿ÿ^Q€Á(Ü p€9ÑÿdÇ›aNÖøæ£á>^{`è×õŸ·»xyAQH7Ü?ðßýÓ47´4ÓþÃø?>”ÀOT *')‹—«¸@FVðï,ÿáÿ7÷ßV#ü¯½þI¨tBäþPÀŸÝß4¼þR…À_#øw^Ê0€À?Ê·Iñ7ðÿ·þ‡üßdÿ+ËÿKùÿ½! O7·ßnßþÿà AÀÝpðJöÄâ§B…Ÿ äC-a&Y…{"þÛ«…à§CéŒW¸(X’üc‡c4à>0¨ëèòGG·_Ã Ž„¡0ð_|ô_>üÐ9ºâ?*|Ã~»`ø™úw]u¤# úkøÄ¥¤4‚£á5&.%ðã§ óù-o€‰ÂâCxŽ'šâW[%b ž3ãŠï‚Ë/'Å¿ 8z¢Ñøéû­|õ¿×¿Gó9RLO¢Bî׆´×(³y‹. ‘Ì/¶E&XuGHaù>äû¹è‘fjŽy¨ØC+¯¤M= ôgúv<ìcÛ™ýp.M+K ÞýEe[´ ïÇ^§3ì:uÍùLzäúï‰Æ´ö6Ä6üÉ–“§¡2]+UËOÎÚ0+Ör äŽ+ «œÛ¶AmÅucÛoeKwm“ái¦mþîŒ0w¤ÒÃú÷Å&îqÿìloöÛît‰ÝBÝ×ÕÒ•a ¬Œ¾:\¹I=¬L‰Ù: >©CÕg© ܬň0¾9"Dí8˜ýFÜVPÊ~@q) ­•¯t}ó~•R«bâ bòé¾oêÚÚHŽÛ¯L‡Ö`l¯%¡©|©~š±ÞØk™ ’­<¡ëe<—[m­)äS°ºé,} ò³s†žÞ}^iæ~) —Ñ›äzj²(ÄÔLÖ¢ûJRÎÜ $g°±sa¸ÄÒÿÚä4ÒÝk›Ê\‡YmÕŠlébD@ ÝÃÆÖú^÷$ÀžQêN¥üã·Â÷#^qJHW>»Ìд£Ôã:ÒiÉìùbKò¡Ë÷Q7¬šl±éÅ*‡®Ç}-jÿŸˆ’ya§ÄÍ€‚ížJ…䌰®ÆEŒñç–—µPµœ¼®¦óQ*òš¬(åW|rÁ‡5Óëa\RÙéI¶*ZBZa+ÀY‰ú¨.^*‚‹²hç—%†›Á9ŠºÆÓñY-;œëÆ>ú G™_ë¿çÓMçêÑV»õÒíômÍrQ6‹Yµ­Ô(®¡ã´  Ê%u” “EåQÔç¯Ó´9aOâT¸¾…(%,wF{ÙIfÖ"0‹Ë2å‹k—GYßë‡8HتŠ1Ì£,#©è®×ÁmÁFP6´yOË=Ï.ð zû{“ÈZD”âúÔëGY”pºë¸;?-±÷Ò>©'@qa8²´ˆb©WŸ»¶b~r®Émî ¤½…c+¦µ±7zîRêß\[ŒZ9–upûx™}m¿êS”´~õ&+Ÿn9K)÷ÌHzZ=žd"Ý£0¾O #fÕzUvØùðeû uò¢ j˜ÆžÊ¾Ù丮VçHôhTM ›,Ã=H$d3~2ˆåÍpǧ:–ð é#Û—ŠæýbÎú(D¤j¤H¶‹nú³w÷¥h2~Ò»HZ¬’V[÷9u}˜X=Kû5L0‰çƒP·i !Xíûý×~¶ŒÏPÛdùܦe«é¤/J½*<˜'à`YË=Í“I¾^ÈøÅíf5X’¨ïÃ?„*ߨKåe©88š\>1RÐïÛÉ÷Õ¢ŸÎMp;faý°c²»Ê}š\ÃÊìû­×ºsƾ«Õä}’• ¸Ê}s»Lå!Bqz¼}´ Û*u+‚£ÇuUÁ¡ÇÊës»—‚Ù³—$‹…`w‚RnN:ÅI ºÊR¦¾?M½bwÃ^æçËôŒ{´)Å zNNäS¢ÓíËÜJ¯P¾yd UºÊÕÓškçîñ)#Êçœð°©!›|Ú–-z•¦Ž]ŽÞï)·á˜”Ÿ\ϼlÅ1ƒH¡÷:«Ù¥Ôr·¶ö½d’Ef¶£5m&ª/ ä».ö‚S ·Ïü©ƒ.i&Ùy’5ïøç)s~èA‚jÔ#‹¶7\ÍÖá‹ýÜ~cø;;œÑäÒëÀ‚•-½q¯ñÆÃðÞn‹›l¶mká`b[q%µ˜âNkÓ_z¾ô¶ß㜳71 M,[—>ûiPó Ò3@ý¢jR7îu×v<žz/¤³{£ÑN6g·˜çèºy¼4”®»‰™c1É,UÝq‚²R¤!ÌáRÍ+ \Z¡»ëˆP–0D¦ÂèUíæ%¥f‹‚«dáÊL¼LCs¶y ì âls?§Ù÷AÅw}Q­G§“ ¯A‡c«ž}ò6ç•…—Ùëµô¿ž¨UU?Ofxý2mVÓ¸«í[AHmK„Õ$IJ>ÂÃ_wò¥ÌášY×èÞyèW…Ž!>ž€Š‹Áa2íRë¾'Œ»t±,yÔíWÃ’ºu§ŒÕ_•ïu“±W¶ËÍõ‡7Ì3ÐòðÅySÙî ø ä weö[s`4næj¼ŽUüæÿ)·#ò’éÌO’çãé§–}ì7ý¦$í£X!2ÖšêÜì}a£,Š”µdR%ši ¥§ºàëf¾RpÇëʼZSùD/¡Ž5Ò-EÖû¯õÔ„~d Úö9š{Û°^kvŸÇ­0¤ÎÌ>¼46ñ gýn¹ãåÝ] tŸ‘ÒN×à'۬׺̕zr‡>®¢ ˆä¯²%°§Þ%ßeú$îv჌"qQg±}®/Ð'¾iôØíDßùmp=«æLÀûiñÛ7r÷o…<’uZÛÝÊZ c|±‡rnaœˆïJ Ž´ªãв/ <"QD¤6{„3ü(¾—I,7WK âi/ºOùfÆðFÇ2×½@³An·¬žŠ;ði…ŠÄÏòb-"›œ°ûD³U…@ôôåúkœ3–o‰¬u4¥8S·<ÜyÄòšº'—ž:+Ð^s sÜx pÚ¢j²gL5~ì[Xós©…z£øl•õµjöN±eèÑ4ÑÎ…qÇ ÅYgN&ë…m{áú Ä\œ\jÒÊWyÏÞâ®ÍÞ/\ó¸Ûƒ­ÖÍc€ìÎ1p·Ð3¯Z/ªF˜ < 9P ‹/Œj ðÎì:éOõþ0t'bÐV8VCRv£þ…šªeE`õenÕ³ý/½ÛXEÉþö¤)ýnP‚[;S¥Q,«jâ\¨Z*Å›±Íã;§ [ã!W|é±ÔôÒgLÞSÓÓÊ„QzpuK®ˆ»ÇYÜ7QBü©ŽoÎòˆ,TCJóßzjМnV­Iùv6Ó4)ÒÈçàœV£h»|ÿžšÚØ©öñ;„ßÉš"IT%OƒÍ0)èœr€7êpM{"¶öÂ}>¥G¡0þj¯õçLú×#Ä\ƒéû]àSy$_ uâˤõ~âã:QSñ *ŸÊÁç­N5 ˜°¤‹Dd𔸵 ç¤È´¦.9·rAl¿üH(=óÊ0Hð>ßœ0f„Æ#Pé‰7tmV“Ç5¡xÖnokûb4,(kÀk}¾©§~ÜÊãô(ä±²Ã]{^Òr„8¾¾0ý^7o|ïYj§¸¦ ¸/‡ÌÖCeáGÊ õö…{Ë묫䓄c][r²{¥Z“æïâä’rX,ݲ+hNûg¥‰Å¸Þ±´eƒX ë_HÊË, Sn¡4üF„‘-•ù™ÐT„̬éô¹çeõÏC±^ê [fa–;s+Þ?ÑSA¡ â•H šöõR2¢líD;îW.-´÷ äÛtßUàï ¦¼’\{Úûc¯nõõBì…®¨€c>"[\¢9Ùa?¯ôÍKÉQïg³Þ»Ì»ÇÇ>!®&´b~ÐMÚü®DM¦11-´°²¾V4Ÿ K :;û&­£ÑÀ`’‘ê:žù è2ã¦Uô°ErhÏÀƒÅÀØä«ó±fç ¿Óå§1ÌyJ]m¥ö ªµÁU( ×_rHJzŸWy–ÒeÂF2É%ME,Z_~Z¿¿Tp?ìÔF*’ës2Uë“¢où¯×s|bV飭Î*Ž \´Ý¥bzPØzaŽÙ ÑÞŽÐþX¿7e®ê$·UŽIPf¥¥YÀ‹à2ôAo>ÖÌ·"yîZéP^0Ÿ~õú„ì˜^ÎölǪ_`iÿgÑ.Ö¶ciçþ§³Fá²:aåiF%´„ÃBçú#î\`>©^Õe‰xöYgCZ©-ÍÏ|¼ž²âóЉd$àÝ÷žA¯{gî¡díÆwέŒ4‘y³Ä…zíƒ_ëóÇ©e©fô»Úã.‚4…¼•÷>» ÚQ\™O+ Ð]3a„õJïJ-/;Ë;ÿê»›A.}dáþÜ}½ž>jçÍÒˆÔè\Ø [~¡Ù'2â­÷tH%ónì^Þ™‹}í6M>¢}©à'íbÒµô±é–÷ÖUB©§“t÷f¨U>¸‰al…o|0eöÉí˜$bN¦./~rŠKKÅôX™¹‰Nä÷æ/sÿAÍ¿màÂ˲hk׫£¿ûÇ|¹æË‡HènϳO;¥iÒm]¢ì+ˆaÔ®úœújLÕK`Ø/Mpéî#‘-¤®¼Õø)2G¾Ÿ×”Š£ òÁd´H­*ÛÇ8¾Îï[Lû:g•‹îü ´‘¡o]¸TgåØUóÍ@êÃ^¥[Xû@çÊ©Ùâ ŽÅ'Z™[”ƇXM¤Ô¯Êëý;Õ²Î;fiL¾}˼?fv&‹ ®HÛ§>æMúAÓªtw“åV²ê|ߦuXÕ}«žš—4”<Ê÷6¹Ý¡iÏW'ÐΡ}Ñ'2¹ÙªÉ¯ÒMÎr¦êÙrW›¬…^_qå´GC;9Ö¤ª!™ ‘æ³?L®GV+/=ÙÕ„I™Ç2Ëö P ­wÚȇìñI§¸v[YW~j®.ìJÝ .)»O &…!z»çÈúŸÝÕÖEÉÖk¹Æ#ï¥j}aiž¸cX¤sùásÑ©Ëés*×¶}ØO4x_è;*#mÓ‰:ÌSö®±µ–8Üès„ëµSC*v$voÔyÝÉÑ.† e3Úw¹ ¤(_œäCÓ“ÞÌ·ÇgÀy³3WË.,«‰cÊ{ÞY!Iú'õ|íl“Ñ’1'@öo­5ªÍ4 `¯¾ëzšOF61ß–%:ø!#¼&¿½¢Xi`žV 1ÈJY™4Ç©Pô3ó¬“Ë¥ßûèÆyÄ£®…9œkºHní7$óªg5ÎN;óÑ9€U,ñ´\†lÊtd +lQ6áEŒ&‹BZ<^‘y™fT%rx¿DÒÇ›]yü°Ö½¤hóÁlyH”ô¶@¸S_Áõ¨9Ñ"9øîšç,Ÿe»âÔÂQëó$»‰ÐñÁ˜|DrAçý¼Ðõ÷o²¥¿¶ŠÚ‚9¿„´ G;7rˆˆµûÏղʙÄ8.0;¹Â x€ 8ìm¯¨r¦háI[“ßfä÷ªeÉr"ùNRû¬ÌÝõVÊ›„a¦É)úaßÓ«Œï–C7ÞÖ eáT!vËô7?®§tmZpŒ “Œ¢½®2½$|¼ãßxSöGÃÜÔtÒt]¤Î5Û,ØiêãTElŸ¬/ñMŽ£¥ÕØwö5Ò ¯9Œ¯Ø‰§ÿx.ãiÑ_–KW7£Çâ7£,•…Îj~`¥Å÷\EoLÿù 1Mµ× ¦_·âæ à‹^²)€œÂZ:7ÔŽJ÷ÕmÒ½Š$ùù åÇ픟Zô¯J9e$† ÓåŠ,qÕÖ´JÈãI(ät ¤P2C<ÁìAf–‚†³••[ójK`Jß]4,t˜_P'•ætƒD[ûÉVI¢ 4›ðË€¼q¯Ô{dÛîô FÊù1Ò§Æ)y]!“w@X»\GÒ<¿cœ!f#zKð9™{»ô›ás×Ã¥6˜ý J–XbhÓúÂóòÒ)¡U4ðæ5Ö d=V'üÅÛy1§ºElªñG³$SÅ‘J½yÓX.ïgC¡¹ü?wkW³`"jYî»'†ßаS6£F‚4]}G' ¾–ôÏ궘ŽëoC›JÍ|U¶ö6úÌÐs:[&(gúÊš²qÁåCoä…ëyÒZ²¯’d¢‡µtâ=AD&ø`#×ÆÄ Vßœâ„/£ýè Ó½|ll óÇ/»žÔg[¤ˆðóCJJ·ËiŽb×jÆèlס+E;o˜ˆunš“×¼ú¼’µJiï»ùå–‡gÇÓw%ä/Xf_¸W°·kô÷×frÞ:m¤Zô`ÍTŠbž•ÿd·hê 2x!ÚæaÔ•m2qþö,»í(&§^²;ä¶(6à0Úô‰»iÇF‚ëvYÝ^oÛSëèlé¶yíÖ…LE«¦=K+4ϤŒ]\}a9ÏÄì¥Mç]‚T¡Q†…{Ɇ™ÇîŠO·ð~“® ·9‹ìûŸêwy^OÚ=}3¦ÅæÁ‚C¡¸ªgîh6Ož£Kõ׳”‘‡c\%ÛÚARŽu]¾ÉÆêÜ‚aN «šqP’.7gä¤%«ã;ËÙ¥l9Ž›î-Ѫ¾~°îrÚw‚âígÖ7~°õaæiäÙ8%î®á²ýCÅ„¸ç®GR%âÂ|ýLî²csFÛµÊêƒÞò}ÛØ;ôà¬{‚Iw–߇o‡7E4÷žõ4“\n[ZfFÝt¥°ì4_¯iرgÜt÷ùlZîÐ"ËÞ8>%‰“ªH /ä—M½Î\eéØzï'$¢,zJè$7L°•7nP‹s½GüÁ²¢`îAQ}²‚ó#CŒ¡ r—?v™9GYb:ñVâòQUÞ³Ñ÷u¡.°Dž Þ·+Z^„ëÏ·:·ÄïêOËÍÖ„Å冨¦63*_S&[h¿Àð’võh´%o§³ÁaöÊâkîÑŸùQ-ß ám*ؘ±s9^£Ø[×ëâ7bêm„Sʳ²‚õÒߘìw¡éd‹ãæ’Ð+õØ€‚“¥)cM—±¥IÅÊIøòäóËOzʱ&5‘÷lz5uÎHæ¹}”¯ÉmiÅ„1_+τަ—¼‰«šoºŸÝ×ϤfŒ{óÒ‚Þ‘ÇzàcnìǺ>:¤l¨B…ã µKknk‘ #Õ>²ðJ>|~§#@ª x9ˆÛ¤±ÿ3l0­éÐN£ ¢RµR8æYäÉŒæräšaë)MBIrFáv›m´¬vçɼ½"oÍ”4ñs?¸ÇpÉÈZ1Þ=:_«Ê¢'1ï0ài‰qo•9Âæ|sÓlÓl™L¥x¯’ˆT™*Õ£sô&‹ýPð8ì²Ô¡V endstream endobj 110 0 obj << /Type /FontDescriptor /FontName /GUOWTK+CMSY6 /Flags 4 /FontBBox [-4 -948 1329 786] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 52 /XHeight 431 /CharSet (/asteriskmath) /FontFile 109 0 R >> endobj 111 0 obj << /Length1 1417 /Length2 6123 /Length3 0 /Length 7088 /Filter /FlateDecode >> stream xÚuTÓíÿ6-N‘ etÑ)´t‡ŽmÀˆ ¶ÑÝ) Ò J(!© "% ‚”4‚H£ H7ÿ©Ïó{þÏï}Ïyß³s¶ïýéëþ\×wœ¬úF‚J0”ü. ‰e€*ºFR@0X‹89Xø_f§)A 2ÿ+@ ‡`q6U§‹Bµ<\€Â¢@a aI0(KÿˆBËU!žPÔB!á§ ÊÍppÄâÚüýäò…¥¥%~§•\áh‚êB°ŽpW\G(Äh„‚"àXŸ•à‘sÄbÝd„„¼¼¼@W …vçz!°Ž@C8Žö„À¿ïA\áœ@cGæÝeõ‚ á@œÁ…#1¸ $ Žâš4u€znpäŸ`?À¿î( þO¹¿²B 'C P”«éƒ@:í.p Þ]Ö+„ a¿!..â A¸@ìp¿'‡ï*!8€ÁÃ@Ñ7,„A¸ü‚(ô« î–Õ0”«+‰Å~ͧŠ@á¸k÷ú³Yg$Ê é÷×Á„Ùÿóp2A"Ü=àšª…àL€lp,P,-!!& „»áÞPG¡_å}Üà¿Â¿Ì8~n(7 =<aÇýü0O8‹ö€øýoÇ¿Oaa Åíà$àŸê83ÜþÏ·|4ÂhÆqOþõùÏ“ Ž^0ÒÅçŸðßû2·P6Ò5çÿƒø?>ee”7ÐOP ” K‰%%¥ÿ.óŸ øüo«>ñ×pà*j"íQ@é?p—÷7Ï¿hÁó—dxÿîp…ã2Èóõ­Áâ`(îKøÿ[¿Sþo¼ÿUåÿEýÿ讇‹Ëo7Ïoÿÿᆸ"\|þ ÀQÙ‹“…. '䇚ÁÿHYCx¸þ·W ÁÉC 連¸ °,öÇŽÀÜExÃaú,Ôñ‘þ^®‡  ×Ga¿Þ8¸,0ø¿|8ÕAqo na¿]pœ¨þÝW EÁ~©OD\A£!>0Žd"8ø ãd ƒ{ÿæ7P„Daq)@Æ = øµVQ ƒÃŒÀ8ã¶àøËùÛ ¹"˜ß†u„z Ñ8=þ&nœ¿Ï¿Å‡{ဩqT6ÜéUxãQ•“—àòG’/_›c’,:£Å±\Ïüu®d©¸+?€•ßìKן,‰÷gâûq4àmÝš2—¦ñ‹§Ö¹¨¼-˜×{¼Ûê¿ C1: J¦Ç,Rn=2¸EþÀŠÈŠû±ÙøY„d›èjÅJáy3fÕRú;Ðøâ€‚5 ûP)·ù;Aœ+ÇWì kŠ*´U†‡±¦Éà9A"áP¹1žáØgÑ*!óÃìlONWgºèN¾v{¥Dy$5¯kn_r7í£­: —²øJIjÃs×H®9BHgû”•týûu,„!çÊíG{wëî²)2Y5OŽh Âì¶;_Íê]u¡n܌΃&ŸÌni­óÔ’,+š%ü{Åt wçÅìM™Éw«“’å1ÊN÷×{7´:6)9À¢ÙƒJe^ö–NÈŽaöUj?ôô®Þ'!¯¢ŽŒS04‡GVæSr15ŒA&Ò˦ZœªûHnøÈî[‚îíy×¾¤L3Ò‘ssweÞ‡zůµÃ ˆ|ØbÚOzE¿Ï°à­$éˆ#Ù‚­Û„é¶K\Tú…ÊÊZ“»Öš¸ž-ì*²¾_ï9ë”ý<¡î'Ìy¢ïGßµ´;]B_?±YÖðæ§Š_¤ÓÝžn$ h§·ý8Ÿ*¤ðÍw¨}òZøã´oå÷-wüûBBÐ9²ú‰#þ¹çñäï{B.-âæ§EÖMÞ·Wû9´)Q5Gñ(“äÜÃú>$xõ¨è ° < ô]Ï×hsüÈ)ÎÂõãgWHYP,q¨c’H§¼œÔ!‚r‘ý‘ï4žíªôUé½ÏòúpéuärÑГ^~¢dѧöl,eÂÔñ"m"Úwª+mäó<äŽé£´XYÀy$A&¡[2W²:φkìŠdαU¨+«í”xùïКX[è¶kÓcn]Á“«·ÏÎÐ @ÛÀ¤¸ÔûV• M-”™aª¾Ù­ž€ì&£M›šP$¥©7)¤7öÓ1¹°SÔF¶Áñµ×þE" l­éá±k–xŒoQ´³þc¡˜Ì×zÊÉÁH‰}iè–²D­Áh4ÃÀÙQˆÜ©ûWæVŠXî„C꯮A¯‚]$}À¯¿…Èj˜ô€Ž]z)ù8ÓÀb#üÙÂVÜÊ^R¢×mlŒ^H§ þÀHꦡÀáözß@?¸C”Åá †Î ßHÒ¿-#‘¥{™ÕrE:bL¥Ã”%Hå‹eP䈾é¤)NrQ~šÖCKì$?}Üá:šµäŸO_-¹ÞãñóÁ? Ù:êŠ"Õ1Ðvã¢7 Ç /üw­ÒôgwÃVLÕ»ð©Bóµ¦)«å¼VC~"¥søœtƒ1DVr7nÞì°±Á®c ó <Žýžh”>& Ì£*›zÂZ¼êör5\·”DÜ䣇ž| ¢ßÊ!ÄDѱ_²®Ÿ<Ò>Æ3(2”@_³üË~ÖÝ÷Ý·ëĸ}U.ŠÏ‡ÎFy2ï÷i¸Øüv#¡;‡eóÇ#–\èéLQqMaâ×Ï«ÁYÂ|‰­Ièåó¨¹pîЯ„¶Mãƒf}-©T›dÖ®?- žû4d±ªÅaœyÉ”Ú3ûvã—Eûµ¯¬5dÔk6gÁ-Axå: Y×öJ¡¹÷>ÕÆ¯’Y†ú]¶:”[ q³]«½·åvZꮬ ¤"瞌9š¡å~5÷1;ˆÒ<ù¸ã¡sáŠ:‘Aj—~MðúôyU‡“Xt‹m"yÓZýpFÜüKÎYËO¼bå¡í1…þZkM¼÷]¼¢8¬X–·òLSVIÜŠ¶§¼í¼óùé¢3ÂÅE¾Ä…åë·r54 ÃP!tÉ=ÅÛ4´ý0åÚèÆa–ñ.{XÃUÙqx)µŸñÜ¡°F×f™Óï–usq†ÅS†±ÈRˆèa6µYÎÛ¾î/;ªÏJ&¸^9²vM…•ÄÄO1nº_Ú«‰LµÚ§dJ‹Ï‰%MûFG;Ó”S½ICGz‰tUE$†™O— }ªP™oer#X£â)ÙT²Ô®ì;»YmÜx ™f*zk ×­!çþËÒ %õÝÅ8úz§ÏÇ!KKó‘é†!,•Ûo]·¹_½ê²ùõiz³Z°ô\œ«ñ†ÛùåÄ£õÕ‰ŠƒSð‹ÃÉáj‹ŸO©8º&{g*rwTé佦 ÏBºƒ-£ ïri–¥:[õ1Å32¼GñlÏÔ$>J°¿õj+vh <Ê嘑8ÓÄ0“¹vJ¿×ïà áMži 㹸f±M쥸ÐÞ,êhÕa’ÒUßt•=²e/üàz’4³ÀÛÌ š¿ÕÀ¸66lQ÷àk,9t€¤7]i®-”ƒÐ«Háæª:%f@ÇIIYe¹^I­â*T~$IMäÆÌ¸f¶ÍÃ¥îþž¤v {™«ù˜«LzÍâ3 Îl/á9½œ%yÊIÖÝ"xŽF$÷ÅM'ië6/÷‰§Og)Ÿ,¸Ã½’#˜W ™[ñÊ )ªÛ‹l×y Û9„ßç.Š}yZñ¼"]¦ÍÜã|déeÕÊû·¾µwÙ˜gØèžs›Š ~sC¶ d]ü|mÊ”ý‘g‘H^ØSÿ6—ˆK!s쎈&Ý-íótUì±9[P4 õÍžò£j7#¹n%ó<Ô°ˆ5U+ÜEà·>Qî0Õ&4eÍ&5.o[q 눰xó‚B“€ò4.ÚåÍ7¾‘«ŸÞ k…|†G¿K¨ Íñ$WXž|Õ‘þt_‘’ÁÂ]þYƒwÑ-¡ÜÔµüt½ÏR9•¥·IØä³Nö‚ËJì_ésSßäÒ¥·È6<û3;«x½ÏÊ”»1¤x ôƒŠ5š °Ë=½Ø¼S°ÙCýIýÃì—§[ˆŸD­.<”yôO~ˆ<ÆZøÀ Ÿ—ôéÞìæ7±Žˆx*X£vá›Ý3¿—Üò€fU@”x [9øà2§¼,R šÈzšNQöå‘„>å÷©ƒ´ºìyRŒ™ƒf­èš–÷ÔGt*j°öÁŠÆýÉ.ǫ́¸çÉIr quMxšó3w2 PQ%þ°bµ“¶ îøE¾ä2‡}ŠÏôÁĉÁ¥ÆaW®§–K9$È÷†–jÇ_ ªÎJæ|$¨žÒæ¾ÁúmüÁNp˱nz”õj]j=ü!£PëE£½ú¾ãÄbstRu®Ap^U"íÅgßBù³¾7á-ÉY…VÈP’Ç „f¯»‰fÊ 1* ‘LÅ*““Æj]gêþ1þg»_¢œ^¯8à©àÕº!-g¢¬¿ûVÙ¢ëćåLšè‡Ë‡ån“Úæ›àþðÎû»ådÚêǵ)üÒ£ÙÖ­†Ôö³Sl 6Ï4áñ\T¬HzŽó]Sy¯íæ+¶lå‹\íùª¾ù±“.¥ãç0(G7¼ëKPpHDÝÇBéŽ{t‰9i®¤¶q´ÂW^Û©—þz‡>Ó—‰ÎÎÒ=:ce·O‘ÆÇPRœA•rx_[O꤂sS×Ú®kn­qº³Y «î¾vÕÃó%&ͯ”sÈ’W1eaÞÕZ¯¾ŒWà@騚>ÀYûZé.^òc¶1~ð­ZšœkÍÇáò™…G¤†«Krä^#OýÙ<»ñ Ï7—éÔ® Wèï^IZÿ±¾Rƒélü0ûõC*UÕϯ;ÞfÕ<óä`iX$ì ß·*š\ú¢1b1Ähí« BÔ…%óÔ¥ž†>M…4fIÒT›wn,|½<­Î{¨De<¹Qië“.cò1á÷ú ;Lž¸òâZd+:Ò8Ôê¤!SŒöšù>=;âäÜÓBù–¹ìøÆ=§\ÏNçë2Æ‹3}…7.ébe ¬{ügÈ£§MÂD+ûó øþd‘óZÑù‹jšÝµ‚9‡zˆao %çw¡Ý•eÕÏ-‰¯ÖÈw¦yäÝm”xë pu±¾^×Ä­³Q°4]áZ åZðêBDZæòÃïSuYО×à–…F^Õ|DMrè\Z^’(»xƒN8ŠÆÙ„Ý,aJBÛª¨÷ˆƒý”äsõ“Ê–^Av·­®þŠt­R Õª+éëSþÉK1‹ŒéAnA1k[üYû´øu²C'RöG) .^~©%úƒÔf¨Zßœ¼0Â'p®}Å.2¶¶ƒó˜ëTƒèM#ìZ­Ý°ÌÒõSTètàQ±×b“¨(ƒK­+­ª1Ðò"Ø(b²Q_½©P–õ– ¹SËv–—œ<Üï/-%fú®}GçåØÂ$wr–ãÓºýû"†g} 3²ÀùS°b›Ã˜¯c(šñÅzKþó“ØðókŒ™˜m˜É™‰‰‚4™JAÐØÈöª´ï_s•ɵ‰’ïÁôÖ¡4OB­ø3ÖÃÊxçjùæÛÄD/imwÝ›)ÝLßœ›0Ó¨º¯&t÷© õá£ß“þøf„ª ¼)ž¥Õ¹Ç‹ŸF¢}$—(­)ØUËçrÖÁ‘o\y=Hufÿ¹GÁ¹+ £˜J=I”.“€r§›®Ë ^–v§ "èälÛVí(ô4º«B“ ÞZu­[.DgTD:— žßÝQè8cÃkNÈ•qøIz”$CùãNÕEÖ†ë|>KA_òòˆÞ A‰—’ °¹êS®:mHN‡U§§øZ¤ã@dËx¿á&¿– ˆlÆæ01ަV:ÚS“,J)”£âpàǘ¨àŒ=*{4›·E²ŒmÝ{Ü8Í!ñvúÐr+N¹IÚ1:±+|Mgà†küÓûºóæ%Ù(ŸÑñ6Ì ï-X"¹¯Jî÷R½÷tÓ»bpȰ†ø¼œØì¶Y{¬\ÞŸ.{7æœAyñ ªùÝ}³±Ø|1[Žïs7Kت7³Ë•• Y?AÉè3 ¡«Sêî}y‡žaôWlF_w<Öàë—¤µØt“¨ÄtŽç ¦¾=Zb8àd5vÓ9Ä9¶Œ5Eˆx}4ù_8Úéz|üù^Ì“í^SNüÊ—€ã‰æûz¢$Kû` >ÕG¤ E{@ä¾ì$'¾¡Vžž‘€òøàFvÆSÏ„Ð]߀„JbªOUORM?î]¯âc;o}±ò»Læ÷|‚PBÆRÁéëQ—§py_+VëÇ2¥œU^$oØ>u4¾Î;Ø8,Bƒª Qk©1‹šyœ=gOƋΕÚã³L¶S8 X ÙBÈ+üZfiýœ»"tÚEj¶´LuÍDˆÉðµ–”íýoɼÐì R¦íç»9I¬ÞŽ!ÎcP™ d±í„HO¨>«´ê fHƒ¾áxÏLÌÏw¼Ë5 ôêç#½Òñ°|_‰?¢ùI oDµ›®”6g£1:\n6‘]ÛFœÛ1‘7´UÙ&ds<ßç?a€Ù¬ã B¥d.åéñö²¡¨£§žºæQYö¬¸F( §B`YÖ3»©¤<¸u÷cM?ËR¸ª4@J×ó­9EºPæhŽì6WZy‚MÛ¹éÎÄ–¢—´4òÆTۈɛÒ|À¤ºöê@§áÒ«cŠöKÀ;ÍfÖÔØ–vÆÇ÷ôG'õ£:Æß¯K\±ý¨ò®wgÑiÇŽM%ü°½^¢Àíš Ǻ«‰zu¶èdÄIІÁtZ´¹=’vÇ h=ÖKïèØàצ8K*°4r2UIð+¤• bx ÃG„“¡>wNÍî”Í{0\.ŸÜΟ <îgwXÍ™¡çjñx‚)¶ÐÄD'¶=Góý`‚ß&QY,ŸyÃ2Ø{g_ª¿Jï~tº…wØ'OzñŽ¢ë{¥h¡³uùþâÎ A±Õ™³Ì¿·§IQ+_dÛU¼žÁMqAY}}_€Ø¿ð¥ |1y~ÀøuçX@v žoíFí;¤±?¼R®ëÏn­_±SjÜ­-"Á˼¦fÞĆò«®yõþ´KÔHßl~r_ÚÔ©m–Âj^m9ã5yEDê½ÅIûã‡Ã×^Ü”¢!ª Ò’ûé×vr³K4ïö¼ñ9›øF8”br[éµý ³ÚŽ+}Ÿüä¢V»YÊ¡‚OʼäÌÉÚ PÍÕaƒø Yî°eÌ[{U…ó¶÷K¹7Ïjg&ôîOñÍz¾Õl®|øñ±»p=d¡ûG ‡0X’ð^€Úƒce”¬£0?ª÷gŒICuÌ.f:ŸìA_x¨RиàßÚoâ1 Û ® âþ¬ÿøzÈqøÝa º€Ó~k%Fr—ÛI¤r²ÖÛ‚Ùg¾¼°òhß‘*Òru*^oïéÜGñ&Ví´>q!CáLÜVM§K®}õ3U„Õþ_ÌõÕ¢üìŠPÞ¢aï“»g-Tnå¯î\ß¹#aìºÜïf÷)]W#4Ï;¢ÊG«Ü©þá§µü–ÜŠUb²5«Êã²ë»/™mG YWÉ¿ÈÝï]8YRl Ýê¹Ö͘°vÃðʯSÐXÍé÷UÜm ÷‹ÒQ {½Ž-éëb¼î™#êWQ/™²Q<î–¥®‡ÆÍÛ_ć*™i+<ÕùA…ï4(4×KÈ5Õœöëse –ß r¬×vÆnQ'ÕųޘJç¥æŠÍ¢^ô„ç$È&¤Ê¿ŠÛâ*i®Ù ªB_ÊÍEh&QÓ<IhÊø6½2­:æÛ1F*Ék¢2ÞäÖ4L`þ¶èv®ÓXòAùYÎΰÈS·IÚ dÂ&tŸçöÔÀ;†s÷7ñÌU »Q²à÷ý|âlud Ë¯ñî(ïozéF ÚŶŸQ䓟¹ac£çVÌQoœð™M>H=íŠ=Þ’bx¬àL¢H€÷…áZ*_mGÑ5|‘•ý£±ËâéEßÞžäL`]™¬Vbg<ø#7ǃ’ÕœKÀç¾¶4©'žtà'XÁèf>£ùÌYm!Ðòù£iañüÇ6>Hâ¹£¾{†ÏJµaúYvÏ94ö=·˜èö¾”vsâEèò\~¤”[:씟&¨gMQ7¼!¿|V| µÀc\œÃnb¬®_ÎÔõ¯4c’")fö¼¿þ¾Á€›/"¹.¡Õúž9_:[2‡º} ~ÑZÔüa%_Åÿ®ÖÄ endstream endobj 112 0 obj << /Type /FontDescriptor /FontName /XYBSMX+CMSY8 /Flags 4 /FontBBox [-30 -955 1185 779] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 46 /XHeight 431 /CharSet (/asteriskmath/minus) /FontFile 111 0 R >> endobj 113 0 obj << /Length1 1328 /Length2 1345 /Length3 0 /Length 2190 /Filter /FlateDecode >> stream xÚS 8Tû?q:œ‰î9=EéŸršŠyyåk<Æ»4HJe›Ùc63{™=Æ$Êó„t*RJ]½UR$œB¥¢$„ÂíH(é”p*îÇÝ3=Îý¾{¿ù¾=ÿÿZ¿µÖÿ·Öo/ðô2eó±@˜ƒ¡¸)B³^vt Ñ˜A26öFp©_Û÷…㜰®51ö6Ÿú˜Ç“Ÿ°¯7v&úcÚkFöHQȺY´M϶f$[Íj*(™,l7ÙZ7mÅàk™»œÑévíÚú&Êšõ¶˜{GÑ¿²aÉl“ÐÞŽ‡™¯œl~)Îýp^øVkqaEG£&%YKÏ‚©£WÊÎ,͵Ëc74–¹,’½_Yó&uçÕ§ŒÛ÷¬çOÏšLBÚ2 º»u%ný™Ý¶^–›ë»ÔãåŽzC»É1ý%qÑä@Yµ× §?C/]{y³Iþp°!:´=°éİ^ÌÉ?WÝó« W­˜eË mYlöD«yݶàÔ³ëgTÔø›éœiq H{¼kÛt{,ŽòØž^˜q(ç0{Ï%ÎÈ­&C·—igP’YÚžyŽcµ>Óµ)8©­îîGÁ¼´}–ïöp^¶¶Èφ£õ5Í‘- îoYÍÙ›ë4Iå!ÎMÛ ”‰å}¥gÚ®T6ݺ›j˜·˜S}ïD¾doçê(ç§Ïþò Ðı9×?úg5nÄÊ}¢=,ûOš×ô ½C:öd$†£ÇM?×ÚåíüýŽ~VFa/k(çU±öeJÔúù [O{WÙo¯h=ñÎÕ^dv*¬(Cë¬pýj¦ÜÚþ€=o=vªtê"VÃwÚ66éùwf†e…‹*ÄN²J…éÃ[ó\–Ç,aöLõÌÔ´üÝó'#—SWoTh$=h Ð|Ï]ÊI\ã²%ï3H¯:x×¥CM8×9òqpoL/¯²©SÖ~q­nKŠ&õD’“^Ê€M³_÷?tù»÷õå>ïœ{¥Œ ‹¼sÿ6c¹5%U3î5·òÔ˶1Mã\[µBùðy]î”ë &:Oê­·e8N6úÀ>å_ÇÊzç’*µ?z¦®ç%ìÖç-½4/±¤W1ÉÜ/w³§iÔã­o”&v7ZCR_oÐàžœžfò$ˆfsçûW¥ìh¥v£2é²Y¤¤C+¾±´]`èï7çÀ9æÆ•uÕâ┞Öù²ˆ¨Î˜׊GšÞœNÚctð¶wu5ò\½Ã`ÛL×á?zêSÁð=ëÄÌß]˜3ÃÍçuñ´£ÞVN+¿ºá‚rfˆw-)×ÀâXlÔü”Ðh·®á±aßý§ÓÚ¶Úü±ôî½û‡ θϚßi»kå‚ýûÂjº¹”*Ñpä™ýñ C3ž·H`ÄûtMK뻾qi³gѻȫ‘|Éû’SÛ'½£¥’¾·O·f9mÊ«üçóGa‰‘¿¦×»Ã¶YÛíš=/á’¯$[¸yû.hy<ùð«žÆ³]©ç>i=‰ôh¹³¸ƒ-—ßQ,šñ!»~jÒ&?P–¶sð´GQÒ•ÙûK>@m×iùkS˜QoÖÝŽ[ÿ`ù`æ endstream endobj 114 0 obj << /Type /FontDescriptor /FontName /QDTWCG+MSBM10 /Flags 4 /FontBBox [-55 -420 2343 920] /Ascent 464 /CapHeight 689 /Descent 0 /ItalicAngle 0 /StemV 40 /XHeight 463 /CharSet (/R) /FontFile 113 0 R >> endobj 115 0 obj << /Length1 1606 /Length2 8390 /Length3 0 /Length 9212 /Filter /FlateDecode >> stream xÚ­teTœ[“5Bp !èà®Á!8wwšiHwãÁÝÝÝ=¸÷à\ƒK ¹wfÞY÷›_3ïg­§äìÚU»Î¡y«¢Î"fno’¶‡ÀY8XÙJ`;3G˜¢=DEÜÞÖðä䯠¡‘€‚Lá`{ˆ¤)$Й$A@''€ƒŸŸƒ aïà [ZÁôšjÚ LLÌÿòüI˜¹þgäé$ l Ð>ý8líì@øÄÿú :€[`[@BYEWVI@/£¤ A@PS[€Š£™-PAˆ`aØþm€ösðŸÖ`¬OXb0€)悟Ž\€ ‡?!f€j†Ážþ`Àj ?ÍnC€¶Žæ<ù-ìÿ"äµʰ{Š=©ØÃà0 ìÕ~s€‚ÿ¢áC,ÿÅ€YšBÍmA0ØÌöŸéü«OÀëÞÔÁÁÖõ¯Óöeý0²µ`Åàà|ª „?Õ¶C0Øþ,Š,ÄÂÀÁþ·ßÜÑá?cN è_¢ÿ³3 O$LÍí!¶®s›’=ü©$€þ§2ë¿OäƒÄÿÿ-òþßÄý§Fÿíÿ_ïó?¡¥mm•LížàïðôÂØÞ˜ÿ/×Ôlëú?dÿ3Qô7Ãÿ Dnú41ˆå“ì¬ì;Á0i° È\ Z,LmŸfô—_b‚Ú‚! '-ÿ#€…ƒý1 +0Ðògè܇@ó2’ç/ÞlÚb ZÚ Lÿ|MÿÊRyR®áêðDì?úP´7ÿ/ㆸ¸½ À倅“—ÀÃÇàãåðüªýÃñ/[Ñ»ôŸZfçø«ñÿøþeþF ´7ÿ³%êpSˆùÓbý—ãOè…>éù×]jø?í¿Vr1ç삟¬“ÓRàÕÄYý£’ú=]ÈýEuù¹>•öÞÉÁëüe&÷U¬õã¿›]g¶åw»^ÚÒu&‚NrÈ<©ºsñVh[y™vüØŒŠ°RµÃÝOgÖPôxصv6FUÕŒ ïÑÞŒ·rAÑO¯|¨œr}©¯°½€IµQDm¸õøÕy‡´q߯¯èz‡úû:ÏQ»·I™2£žÓš{%¼‡»š@/뀿Qox±·;‚í=¬Çm#1e±î÷›ìž ™[Çš˜‚R:äÐOÊÈo£-J%D=¾;*ä´r!ë]×=‹ßœæ WÎQY­Bd®š7–‹gG|iÚ݉*§Žµ¬}Æyôعx±ïæôL1‡±áç°¼7µß€^e«Æbbžók._©zžsˆ*‚“]þþ½À`h?ºë¥;ôyª‰½©ÁtR¶Þ±\láwëÄ€¼ûív®ÀhÚe’Ë<õ= oÑúiâ_ì]ï³ØŽÜ¸P¶{2™¾œ-Ÿ$ ò‘X1Û‰ø, €Ç á­u•iˆ6ög’¨¶¡µ¸×çeôýõ½Ú“¯Ä]È”˜æ%Än†oï²ð–œ{Ƴü°A-‚?M$ß iMGÝ ľ ˆÖx'£ÜêqY/H" îõû™-m Í©IûŸŽÍ…€#‹Óû[Ë’õœ¢ÐF®7|b!ó2v¹%Q¶ô"•¢¸%‡Îh(-  ¨\\C4É>ÈÛö2 âU(ãݳGL䛸‚ÓF/ÙXú¿^PÇêay54ùž^ûQk¡¶F’£¨ƒå.¡j¨‹”Æ·œií3ül£#åÖØa›¨1ÎŽ^l_tEcÕ‡(ŽŽ*él€Íy?M¬Ï%>¼Ë*žxë}ͧ,ši3Ñ%cÓ0vÔœŽ"._Áèäú¢5¹ dʵl?`#Ír1ÝuC1˼ZtëÚX¦È øxR]²Õ \à+kÁ&ÐIO“X“þÖb¢ÏøV ]À²€xÎ{ÝÚÝ÷Ù8æWà\V¤A’JïÐH l[î#N`"-wßû(ßçÅhæÓ“5Ð# ¥’06|Œbƒ²ç€4~?ŒµVÇÒèõ&wó†µ&g· ‡"E{˜’P&ÿó†… œms ëEI&é(ÖDLs=„Ñ!}«A‘á5òµN²£qó­ƒ—^ÅÖŽ5ýiHÒ ³Hs4y ~!/'Hìp!˜•쯩~Kù•™$$ÈÀî"}xhÙÜÚö$TR‹¹%Þ…oo]5!ÐGÿõ‘ö¶Œ!ðÁ÷X4ÁöŠAX!nÁZúŠ*ùáƒö[} Ù£Ñ"•<‚î{•¥œÀÌ百¦¡9qûAëÉ÷’9ޱåÎ94.×C呪…™ìwUNä²ÓÉž;…‹aå9‚cí/w`àÔô ªœïó!;nÑwÊÓSÐ>Ÿ·¤\%}Vûö*u¿JÄ›ò›ºœ¨–…" ¥­¼{(IâH„ÂÐnA8Ü”À c€Å¯¨Û„Þãì¾j…Y½û*E•ãË9ÿIÁÿp÷Z%1qý3>G­C9ôQâ°Œ¿ êØÌùUxWµ.œwÂ' ëøI”¯ël·Óm]š°YàÖ•‘Pe“2{ÜAÒ‰pô¹¯ëLj=5×ÝsS«;q*©½R‘OËÞ* ´ãõŠÝ¦¤!'<º *;pmæ2‹±Ÿ„]ûó¢påž™ý^Ù Ã6„Ĭ_° =ÚÙ¸_Èý›gÕ‡dAÒ]áÞÊå˜Éõ5t9¥ôãkñŸâ`]Hþì7¸fÛ¸éô«‡ÇÚŒú.0ßѵKƺ ¬T=1>jøÃ+èÐÛCx"žö™Í¦ñOA¥`Ð0_`ªW#—s¶^ÿtÜD5ûû†ÚPÖ!·–xéé9Í™W$å_b¢ß ¶àRx[ž”Ž9ø\yVý/#¤š¦ÜuµŒÂ;šBãu¦M¡ïW¥|™I&Ê™ÇI‚æä$å>ð¦í€¸# z•7AÁÜD¡Lë[™4êäþï¢^#pìÖ*=ò e”£®pzÛ´}å·×é?zNyñ¡Yj£3Fk]…ýòÊBׯ |z‚} ¦×›î×t55üÅÓÝÏæñ<»ÌwðûŒÌì£Wö8k‚vv¬”¶wŠ[µ ‹^N¢öO¼}Mà›Ï07G+ÖÏ9ãN4.ñع™¤?ßÙ½Hrÿ¡\wÀ,ZázaHm‰º2+8!éæy¡7â+rZû ߨðñ—\Úþ>“§€h=$Q³åJ¾ÖF“†ÎÈÙJÝ’Åôû=Ù Þß ºdÞ%O/+Ó8ÞWú«]Ø]³Êq5µ¦9qsJG!㟾^ÌÄ —XN0Ù¶Ù »?ÄYz¿Y³ÿÓ0NGª¿ÿ¢Ý¹¸V‚çÈ{>ýžgf'·É‰@lÊI€âÚüÅð@«EØñüô C1«ïsQÒ)¸Ûµ¤*íƒ UwoMðØÞÜÔ̶ù=Äo÷ÍÝ)áÑ!³92ö˜àxÇaøy nmäÕù¤ó aÌrˆËé¸ß›JUrùA4ý*~‘Ûfj ¦ëÞ„Z#mÖÖf(Ëég^BʱI(Á`Ö!ã‹Àp5~0cÇ:5ךÇÂ÷=ÇV¾aˆ„ð…’g/»,§ËÇŸKSÊn~Ÿ`ãSTE½¾wQê0«8¦T¤ùãa\¾ßù6)“z;Ç‘œè¨‹hŽù Ib (Àš^z킃-'™ð•÷òƒx„<¨QCóÃUõ-Þ¹ ’¨O±œ(šˆ°LúòjÔ‹×:óºõªa:‚ÍÚ€4ÅMÖù>uŒÐÁŠöÑMtôbø<> ;÷ŒÔË^™YgÅø2÷Íù|uIp°ãƒt£¶ºdú³nVØwÜÓÌæw2Y($§ª-ü‡ ÏϾçk:‹›m„©œ\³1Õ5¬Ç†·Ga²G·SÔ•u”\ÅßçÆ¶öÿà¡÷3z)r ¸§ºÂ§Û¥§Vú~Ò«ì5OíÀ` ë{’é~BþK*ï7L7þÕÒGø@ƒöŒ[„‚jŒ¥H.u9¶‡ïRq>ó/0dÑÝ7ù)Ïsõß½½,óNöMÐÿ†1ý°N© -s~¼¸Ñ‡‰ð‘˯Ô'Å/t¹pÌ)T<^èÖßù𽈂ùq»ÿîi³ÁF¶O†ƒk~¸>ú"–°€³7cõøì®ïÞ”Iéžõ妥µ× J5‰éx^Á‹ü tô˜#ª}RÖ¦,俎°ÞöÝZ¤Ðæ )ŠÍ»Äš$Ý^„ª8,6cn¯ÕÕg”/êt¡Ê©UÎo¾Uþö‡Ö òÞ·(´ò ¹îVÇá¾xžrQòZL»0§0ŒmFí %OƒJWÞFYFTø'Ô2¿&v zùK"êåÎîÍœ¢cuÂÎMabL¥§¹‰j¡v8»«Â$–$I%°Q£ yŸW/—²¸Ot†N» ˈÖNÄÙm›.¸Æ–3m¾èá§fLã öŸb†¤Ègý £¡|/΀¦’öÚÊäÍ)Ó±EÖšµ8íƒga´{š3Õ*°Š¤Ûƒ0È6aÏÈM3¿ä5LHÐ`ZB¼ÐÏSµ2 o”žÀ}ŽJ:{ðøe¤Ë—žqÄïd‘ÑšX’I 2ˆ1TžqÛÝuù‹ ŸÓéT~Œ{FYø&hÁB©1Dâ±±6”W4€J˜¨žî5eÞ"%êžn?»Ð}³E˜­vÙC–žå€Œ €¤·¼žC…®uù…Ñ·xÛÑûçb-k–Ë/»2$¬_|ú0)Žíccmn¯ƒ.ç¡¥ŠÝ‘?ˆ‘ùUÉ]Wž™&ÍSkbC,„´Ë_îƒX&X1jïâN0´0§O™Måu4Á\Ã=ƒß6´|×Cër®I"°Pwü-B=!ý•º'Ð|!, ³s=Hß P‡¶’RD®ù$„¼b"Þh'ŸƒÃ×™?,þé+ÊÝxd‚ÒñêlàmæzLœÿ»çhlÁ\‰^˜¿¢!¿2NDæ´¶¶Ó³æÌþ[ªHcèÐ6˜Ü­&/—“ƒxe½Q/Á§á·Ûx‡A‹TTvBç`æíüwÛ`šêQÓªúîdÙÞ s®0ÖúB^€Ãµì½oPjñËeì*˜k“­†«ˆZº²}å˜Ø‹wÞï×%ýòÒëqqÝÛ:äEÂô`D" oÈÅ\ཀྵ)­ Ϊ¶9ÈYÏ6Ð×È[²*-ÚT>p™J¡ÜŒ.nš¥ïÔ¯¶ó¸—‚tàÙ|Yëwµ¯õvR¤rËt˜W%PÆYæ<ŠÝw+Ò-`5ëC4ÜóûZ^0E©JÅ )n»ˆÏôáUtSl{×%­OwJ½9ì*÷˾oKq” š9$ŒÂªW8ókÌçF«Ö‰…gmÒDñ=ëX´ÑÙ«ÖÆÛ‹ý±15SõNðÒˆ­j® ›í(Õ<ÅÈ16ú´xfnŠ› ¾úWñEmœr­ÇËKßãýì4¦ªKæÙa±1(Õ8\®®K(‚fÉþÚ¥‰Ñʲ'Î\IV¢ùóUȽt?ÒüPÎú¦öí%ýªß"~à$Ì'.êT™”â•”HÊÝý€~BàÙúJìümå—<.6!Ì ¼É`¿YE|¤)Í`Ükè“'Ü|Ù€ÜÔïC:w®TÖ ³xÛüÄö(‹2fŸã:` £YRx Ú_ˆâÜ袭ö•ò;î ~ °}LÑ=B?“_µÝÚ]ÕñinF¿Or½:rLä]Äñm.%ˆ¿äÁ^Ç.¯žVUŽâ];@ͯ‡Ü5û>2W´ô¶#ï^u”Ã.¼‡Ž”ÆÅçù òuÊЭ²Ð~<¾¨bÕÕ->\FÊÝü²$ÙYïrý1S2¬¼Çj}*!uIý'õgÎì]V½`³Gð2 g^úAèÄ—<7B•õÓ€1õ$™ílÓý5ŸL‹•˜J;ÌþÊL1Šá¢s£,wi²Á|Wøž¦ç›6áúúœò^n¼MOÒW¬ÂVÉSä˜Ç»ÕÊë>lU³±«OÔ’væM„ìPØ•ÉQ|½}©þ|ê˜n]æxÈA‹Á n!©ðÕÏ®ƒÛÆ8 “HˆëX~ZvXv6‚²í†K31¯ºSû‡i—í,îñÄÚ€GD¶7ìÔ|Fûqd›¬‘aÿÇHÆÎógÆÖ+ÁúIjm?«Q˜Çy$ú;•-¶mèI?E"gA“\>¦Žx÷¢°?Ú!TD…§I0±jæýfô‘}è.>õ‘ÁTeÃÛ»<¢.Ðn›éܼ0yÅ?0Í2•ËtÒUO»™c Js‰<«bŧýþ òã±ã±‰ªKi„?Aˆ„Q`­"ÞYccaÆCÅŸâ sax·s×a¡?¾t’ß›YÊü»–z¨<){”¡[LÿÞ}ãB>O)É…³›£­X{ø¨rg½˜Ç+ÐæÖ]…`÷,åø‘¾GÉÑýû¿ë\ÎOK+%5U­>?³ÛÉÜØ"0ÎŒc„ž)nE* ³–}=fúÜ'—„7®i{[zþÚð€§ßº˜ŸÌçˆû Z§£ 3 Ó“RäÛÂû!ÚŒHµQ¢AÛfK•×êe׉S >½z*sNÐ|æä=FþÉW%KIÏÇŒW4mÖvJfFkÈæ6?{FË :Ô[!‡³†§u|'E©ŠÀæü¨¼Ø`öC[Þ¼¯(®_(Q«}æ•pWòª–²!0LUö€kyDvWx¶‰õ–øe÷æ,úÈZ`‘øWÂŒ¡LÑÃYÆPB8Àœæ-%—É×­A/·H_¢§‹Rñi™Â„/ã?ò¶XupÕ ÚplIßHØýj‰ê$bŽóˆL‹Ç-Ÿ_w‹õ¸ '®Èh«\[+Ä"Û™â|“îŸê™>‚b„QÚk“5¡è®SÓ5š¦šù¬ø@¡5'‰9lãs²GUMuhGAñúl¶-=yŸþ™¤e¬BGç(Ö`ÓX†ZŽ hiä'){ºK%dÐé/!ùÍf˜21’[×@íèU&ãHÀàQ&L©š\²$Çò2çP5f¬+½ÏdØì¯ÍõÄñÜ|ßMå¼b¶Îã ßÖ=^6-ik±T ŒuÇ‹JG ©{5&à?‚AÓalCÓŽÃy©ÓýnÒ§qzaeáen„û’íéVÖfÖcWÈ<áX”%EÆÒà ’é·z—tW£¤Þ3‚6¦Àö<–1ðà·G7@YŠÃ„8m“‚–ÜzTé ¹â6:BL]iõG¬®ˆàÆq²9`'áû@‹Dݨ†ÚÜEÔ¥@20À3"ï-,rkÛ¢2T%l d°«t³¢U¡0¸ ý££¡²Õâ€õ;ôä»%¹³ÜútßJçiû|<°b‘D¤êË;rÍÄOvæ]IÞ7òPì¿÷²y#dœÌwÌ-IQ-,¬½½˜Ï¼´FÄLue!çU!àÂ× âˆ­¾ÆùLý¬Z¸fÎ9€À°[g’ߟýþmCJ›¡±+{”K‰©}ö8â·Æïy±µw3×ËÁÈD]'#:Õ‰XAºE¾?qUPKº4©©zs{/8 ßü~.N>Å#_ć_ŒH ìã_U»¡ÍÞüâó™CÄzV*iœ@]ìDÜÕSJ<ý‡K¯K…X]—´÷ßr1ŒÏiˆe¸y‘üõ$JËÕzL¹VMÞ ulÇääEàáÛmcÖ”ž“ Ê/>³„ö[¦|¤"ÒÕlì7ÞhXºÔ±êŠ…¬9l<¢¶ zÍr´­œÙÆ1VÏ?Cl+Ä>3"Ená€ü•û¼±¶SßÁ‹â|Hekº±Œ­§êÆbºÏcnrÈ8™ùÃeBÙùªy«>>_wÂãîÃßkCr1Nöü®ó=)öó¬„h>Ø®ü7Yé®·„j5Ô †œ*Ó.Ê–âÒΊFV}s:/XÆ¡¡§•ZíÇ€å«IùÖBƒÊ×kÙE¢-kC×&ÏXÈê¥^ŒJ%5AÞÓp7œ¾KrãÐ`V5Þ¦ß{L:§c¤eÿ„#@ŒÀr@Eeuvg#_°[0@™Dê ]Mpˆd#Žâx‰¾½9¢»dÅžþ”™ë¸ÏÛ–æ“´0Íõ­³ávÚ`½üœÎĢͷ£žQÌlzmG ¥Í>;zÜÇ‚í™TG§OÑÊ ÁyÑ…M{q'ŒœoÃÈõ ¤¾ß„¯5>Ø»1Ðq˜vlJ…=×á¿¶<ü 2Iâ÷T€»ÌV툢qaA—Sæ1,¦zKlL‚’Íp)²Œ“UÇ€•$M}âì¿ø¼' ¹¾sÓRÿË5ƒEÝ/­>ök,S©%õr‹¸…dyãºq§»Hwí².äþ ìŽçvq¹-ûðÊÜe}îç$?£ pŠ^÷µÛY³c0R$w¦´Í´„(Œ§ 6öª1‘«—I™,?Æcl¼¹_pn ‘‹ÀM¸!‚oÐ0$~÷i[­õ¹Žû}¾”B®:—OºÂŒêTñ®´ëØ×•ÌÞø ÃÇÝèåAô«_3ÙRŠhØXfs´ÔžË.D‚s¾2h½|Læ,ÃÞå並^œ6eˆ L Ítˆr7*}Ô¥]“®ÉZ¢ªÌÏ?ýÔ)мÞh95¦¾º ¢OïÙ4­u[vb΃‡kº{Ï-@ýì'³îl’нà|»¢„Êž1‡&kˆN^f12x3¤ÕÖTÄ¢±`…æ3útóð‹ó ià”ÿ²ð…ú—‰µ3“!Í ñ°`l“kw+ՈϺH¯ä‚KOxWHÀfu/·½\§ õ+/c)Æò§N†¬øŽw‘Û×2&hTÉùåa¿\&ƒ­†(±z8ÞšNeJäÿDÈ™w¸’L{¼Gp±8j^ ô[iŒWn T¯=ŽÎçZX‹?q(vhÅkÓ ¦’^ÿ aø/pExé‹¡'¨Hó*ºÒ n3™Ÿ¯F¹û^Wâü­âåÔÛíþà‰›K€,¾éf™ý%K+\Œ,ÔòÕê¨mÈTGÐpœ]Ws³PŸ:µ,ò˜÷:^þ9{/Ô·žè±×fÆåªÞ^±qHµ‹ç` ÿ¥Ñ`(f>Ò_a~v×¼gÃdÓ¾H-¼°…'/ÿMKjˆè.aM¬À+ùåò—™À‰H­ëî./-§%ÒÃ…a{€¦ÊGêttîÒ.}fšBo¬wø¦„+¯i´á÷~ñ/dÔ|ÏЧcß‹¾_¹®[vÿ´üº îi;Q™\§zxvN0MÛ¼“ï ±×‰ÝS_B;yÌPO„Š^ü=!ZWÅï½~ÏÎî|˪äNÑ×*¼ ƒí~ÙçÙ Wù@Dìÿsêt!Õó(•B6Ö¸9¹¹´*¡ƒ2müviÿ­¶Á¥¯Õg$â΋…å‡í“BsÉ·y__¥ñ¹#É;8ðcÅjª%J6ÎzôN®¸ÏÊ=뉂Sˆ?Zk ‰$_cïÒB¨¢_îˆÈ†ðb¸ÑIT!ç¶/¹=êZ ¦…/Ýüý( ÅkÓUx»4æuY;¤@å»éÅÞm $eÒµq¼ÎòÔª*Š<æšgUBÎý'šÞó6ûóqÑAòrÅ+ªV÷>K]lC«3ߦ;!YNåËÿÆŽ s'šïš/¾˜æzˆD¡½5 &¼Š7IÕç¦À[/'j€>ªÐtT„ÿœ ´†`lÓ®:³Ññw A_׋ÄñŽ‘Ãö'ž5¾ ôt-m´ò{tó»ÍmD’§ Ù[Ùj†-1W§X ‚\Bï—Þ¶‰ßWÚk+÷Ñäy¾ÛÕn®págzÕdA›ˆô¾IŽ … ä÷Yó6QçAA~C/5løÛreîð¤Åž”îÌ1] >ÚØqÈNÚddL‡жöãÙOpž^HkwŒËuðA ê¯Þ,¸ÜBJ ‘ƒbD¹­j¥Žó\ð»Ö½7rÔ×;Ï­êÒNiØÊy¸"óÙ¹rÒ©jX¾vWœŽ= Ò>DœÍù²Ö|rµf\ßÿj7º}ÞáB•(n­žD\SMxë60åH[5*’1\³„ñÑù½R•Ï<‹BWæUÆç™Ä¦<Ç©_WÁ6ϹªÏ²ø7¼ 9yÓ‡B¾·‘Sé[ô.& –àÈ~µ©gk@׊[:®j·μÁ˪WW»w»bL›®ç">sF°ôÑ2î:@Ü·-Ñ™P¦¶ÚûV+u”æD„p ’Y9oé½_l©ßµ>˸~¹‹êšÅ‡À‡|Œ@\©¹°;Ö§oWjkݢ9É.^g¿@¦W{‘†~|wSt¶B*¾kÙ¼S—„æS¢;„ŽÁUš×ÔVØ ˜RqcÉÈsg=È®­¢„¹Ò`|öD*¢-·è¤f¤eÄ=}™w9UÿZ‰‡é endstream endobj 116 0 obj << /Type /FontDescriptor /FontName /WALVWL+NimbusMonL-Bold /Flags 4 /FontBBox [-43 -278 681 871] /Ascent 623 /CapHeight 552 /Descent -126 /ItalicAngle 0 /StemV 101 /XHeight 439 /CharSet (/a/b/c/d/e/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x) /FontFile 115 0 R >> endobj 117 0 obj << /Length1 1612 /Length2 11594 /Length3 0 /Length 12423 /Filter /FlateDecode >> stream xÚ­teXœÝ’- !¸hÜÝÝÝÝ¥i¬q î®ÁBp \‚\‚'¸Kàò}gfÎ<çÎý3÷üxŸçÝUµW­ªU»¨ÉÕ4™Å-ÍA2Ž(3; ›@ì`îæªìQbÖY»^ܨÔÔ’. ì‘BA]%@ dàà°óóó£R$¼\ÀÖ6P¶†.=##Ó?-…̽þÓózÓl мþ¸ƒì@è+Äÿú¢&€Ú€V`{@RUM_^E@'«¢ A@.@{€š›¹=Ø ¶A\Aô+G€ý? Gˆ%ø¯Ò\Y^±Ä]@€«Èüz äirúËÅp¹8€]]_ÿ`W€µ }íÔ†XØ»YþEàÕnåø7!'ÇׇWß+˜š£+ÔÕÂì¼fU“’ùO¨ úWnWð«àhõiéháöWIû^a^½P â €‚<¡å2,Á®Nö@¯×ܯ`N.à¿i¸¹‚!ÖÿdÀpY],íA®®¯0¯ØuçŸuþ[õ@''{¯¿o;þõ_ÀPW½ *;ÇkN èknk0•õ¯A‘‡X9ØÙþa·tsúOŸ;ÈåïÑý53ô¯$€–Ž{/€%È •UÅúš@÷¿S™åß'ò¿Aâ‹ÀÿyÿÿÄýWþÛ#þÿ}Ïÿ -ãfo¯tx€,Àë†q(þÚ1ö@—ÿ+è¶÷ú.ük .è$ÿ8òPàk3Ä!Ö¯‚°±°ýÃv•{‚,ÕÀP €ÐþµSÛµ!– {0ôªèßÍ0³³±ý‹OËlaù«õÜÿp –ÿJþU¤¿©³*¨jèé+1þëNý;JíU{¨–—Ó+±ÿ(EÙÑò¿aHH8z|˜__ 3'/€ç5!;»ßÿíoöž•P°'Àðµd6ö¿ ÿïŸ'㑆X8Zþ5+šP Äòu¼þËð—ÛÂÍÅåUÕ¿_ükÁÿyþ{ÐA OêÒ¼£…`ˆmFV&´?opLʰ·›~0Ô©¬A«¸0°Ú±+ #bƒ¿Òì©&”¥qBàù«×ܡӟm†ïÝxö´]i “‚~”ô=…˜«4í¼Œ;A¬&eh™Gº1>§³JëâƒA¼…ͶÔ™?Ôrû¡šyxÃ%dó2Mô½lçãÓÓk”Fjnú–ãusD¦läkažŸ;q"žåÛžÑ\¿ M’ÝóQ<[Á¤”ýb};çmr¿ÝÚbísº—ak=Ìe>¢_Vpˆ_\*¹¬p÷`»A|¥ì7åc²uMë¾]¹ ô³¬UŠ w~2*]3¡„©‚|}¹yÞZ@¸Û.ƒ DLÆð8<0S«’™©vi/í-=ÍÖ¦¤Á 8Šô<þÓT‡¹¦ê£"\9?$—£m×·ðó).¢ó”LI‘;ôÚ´ÈP{%÷uÕ³¡ú€Ž‚”A5ëT„î§šw–B)ÔDzã¡|dzâ]'É?ÅÍ$>,îŽr,Å‘löË™ô–~×Þ–Jg?.è;êziv߯ïGBVpŠ+›\mˆýólaÔ-¹Ðz2DÝZ+÷L»ieŸXß²oÜ—§!`ÌYû—ù½%¦³!jÚmø‚ÉM*/ª¯’ ZÜï¿a¡>*KtÕ“f[%¢.nì´ã_»¨ŒÑöYQÖJÝîƒMÌ¢‹¾qò62 £q>ü“er Á“ÿ‹Ó7»ýg¦·¢ê/ÙÀ¨,C«²½šíÛ§ºV†F{4%_aŽ’X!ëªp*1ä[¦êÖy5z±òØ›1Æn~Ôwœ)ç«‚AT ¡—nH´†sŸ‰t¾O=lÕÞ$JYHzyã3ûp?qô¨\ìÙgÊ‚Ä ©§„õlE—Ó×?þòÑRú$ß§»ÖžÂÅøísŽœÆú8¸´CÑÅh˦M‰G‰g5 .Öù«·&Ý,ç÷üNÇ´Æ"™«Î'-Ç$gÑ53åO!~ù_WΉ¡ŽQšÁc˜×J$>RjœÃ´ê%õ4b*]¨²àPyø”mWDVÀÀ6~iÍM[㸧ܨM &<Æ@n˜4Ü»‰¾âëåGéóå‘ú+¡ )‹ì(®”MÀK4j½qªpu')Ô1í{¤0<ƒBh÷z}£ ÚÞU&Éîæ({±Eý…Ý)צÁ7Ì&¾¦œìf•³{ô ²îw©RóËay͘í‹ï謒ŒÑ(½d{Ë«’”NwVo,ˆž)?€_®…æ`æ§£@AnH*‚7x©è±:ï%l“4à Ö_îDœðÀžtÌ®Ý|”F{…/>°’u}Ý6ãGý—ûÑOÝ—Káy0ž ¯GQ[\]‹oóÒ¡{“@«PàÞè©8˜¶¯Z2¹çòdÏTê+hùq2ZGC×}ÇWå¿Èa𻱚ÙÚx}4[¹mŸîÆæ¢µâw±y¥¿ÕHn»¾u ;ÍTÓ\pR4]×UåYáßJ9C»J’—ÕlGJHLáãD¤ÖÞ ½ëãdÕù bŸ.“H0ÇNu cYÉH—Ú€ôüXäR/‡¡×µÂcô)y›-®S(21~¯µ«5è€Ôˆp‚ñ&dN¯£SÏUËE,’ŸS¯fI¦]Ø(^¥‰öDÃJ|ÓÈ>¿[#¢Ð;3jëEݾ{?xù=âÞ½S³|ëzšêù‰ù4ä÷C‚àÒûðÒ»¨ì¹Ï+gÌ¥†ø''V/t—HAð‘öɉ3œJBî>ØSzå=ÃÃ×#s÷7$0 ÏO;å÷.Þ,«ÔˆíÃ䂟ìeë"NÔ„‹Ì0ópø¸‚=£òÐzd“!Á,‚FyaÁÏKý…ŽŸüZJdMCß?1”»êÕm¢³ÊȾ »ÙHæV”.îÔ ™x5-8+v50T}Ñýê~¸/†d,ûél÷ÐØwó=7æåžÁlí ÉÊ;òw9³ºCcÊ–2|nBë/è¢ÌFnwck·v›Áôm•63¡íÆB…38&²Îá×°£©sŸøË õA8j­¶ÄÊ’ ²ì|`K}Å¢“¯ iÕpµmŠú^|¼αO¹A>G`רWcãxÞ¯êzzóéÅrRƒàT}6\4ÔFFêÅÇv ,Õ§m/ÓÈ^€šªôHþõ›`Š]3ÄÒV±&lXì2W "òƒ ¨`´öA}ýpâ/Câ˜e5’hS  fÞ„õÔè¾d6ö°”€G»3Ή«òÜHþO7’0ÿß½œ+ ¸å¬»¼œ(}Íœ¼h¬7µë0¬G«‹BåIŽÓÇJ­ÜË•Ž.þ±GTÖ=ä„Lxõ·ön÷¼Ê]O_COSJÁxC¾Ä8R‚³_tëc">ÓœŸ)ÅËqða9ªí§ƒ’ƒ^?Co´­RÝ1I‚•M¶Oll/šôÛ¯ßÛ9à*T-!N°ìU“0#εƉ+þXfƽ½"\ÞZ:;ž?vHBWtYžÉX›d8ó„oY\FCó(Ê ˜ž„u"(†¼ßòžœ•HzåÀ7àOŒó•Ï÷ûÐÄ«’ÆþCrëGyLKÒLwYä­w×S”ºÚ.9ý2BCáoë F¨ÎÏõçX¥Mw£æ¢Tù Lè—Ø~=ˆªv,ñpÄ7õ]ð7ßÁ ‡ÈËò[>ék˜¦tzæÁ{SÕžw!‹· ªS\, chƒ]ÄpÙ å'­T:¹)“'–Áܶ¥¼†òÑÍ×cFT¤ÞòNs.³n®je”¿R)|€´{®z¥3?ÌeËC¦jï3@Š5ʃ°Ÿ;ã>¥ÏøàS¡¿Ò¦•é ëç†Á¶ï(+¨ {ð}2RåQ×’ñù¾w KYv{Ö£ûÇèîµÞ÷ɽêìËŽ>+{vÐOŠ ¾˜Ž…:Es®ý<.ÂïÓ a+.'”>ï‘ldk­:ún§òÒÊn*ñбzn|#KÄ%lú¤V£3`¶i¹öIV$l»@¤)p¾§äÎ þ$í0]Á7˜¦Ît‡ælÅ©KΙ]Ù&ëwŒ¾ºWRgbð¬ÜôcŠ’nægOs ïÝRèj5¬éÙË9põ7€\Œ^+nþâ›ì…œx%¡n{¶nréD›ÿ›sï\`ÛÏ¥HyFWI_ØH¤°d_9\ÄÄ:üIóXü͘ǢԥkÑ %Ô3ÿ”ÛŒ}Yß¼óx­˜>}þY/¾ðÕ1/ˆ!7]l—ï0ïÛpâÓ–?,ÀK+Â?œJ¶åÐu3 aì²-¶gŠ·}C )¿’ƒ9A¶A)CßXÞÚ oÉ”ò"³ê@\ûû`ƽâ8Œô¢ ?s³?9PÚûi” }žc‘ðšX@s%ˆº*©?°¸º/¼.™Ý‘jÉ¡ø€Tv*T…Re°*!¶M4*Cž·C±:ŒçI LrE®o¡§ò^Y*ýf¥ãŸýX®ûð;½Úu@èǸ¾°ÅÚ­Ûà÷ :©Þ‚ô”2Ûº£¤Â´ÉÙ7eâÌtôsMÖ\pQëÖv7™Q¦ROmÀ¶ºp/³‚ƒü@C'%êuÕMuò§åÔôa-+$'ÀT«„ßå Ôá¾½“”¼µxZdMnÅ+' ¥²ù`‹ù‚¡çê#ÍsÙƒc6NSZ'>·Ql¾45©«íšš¥TW|Ùxd:rÅ/@bROæ?ƒafÍ_«ŸüRA$®Ã1ˆ‚0Ì×ó¨ýà¥÷%ë«c¦Cc²®•^1çÒ…¼À‘;Ò¬ŸS¾*5?p0¯]êŒ!îhKbb»×¹Sîn@“P )ãú ­#EûêhíÏuH&Ä/¾¤M‰ñ`GXhÉcdK ¾ßaE™æœ_™…bé£6¦’`ÓzéJŽçJÛÅåfrè¥j»ÚhíR"wsâ£B wÄæ%óAß ;s„™Nt>±Î ð¥&‚^qÔ¼RÌé<œæ“b¤¾Ô„QmùÝÑm’Ÿ «V&=:þ V)sRhÊO\½pÃùptšx„‚0ÐÙ‡O–^’»u禷R½ÁJ6—ù-ç‡ã&ïÑÈÇíŽüb½ø(‡‚g6‹¥( Ý?øw¤aÆ× ¿Œ&X ¸"’U®Ñ{ÃÐíjɲؓ²¿÷,žŽZ­c`]H[añàØ{Fúžv¾ñ®7ÑàýAèJ:aâOPN0¨à… î¬w¤ÿ¯"G¶Êàá…œ»©tâ–IGgO”,Ô¯ßZ )œ='ÞòábI.¥ ±/Át§'a¿¼½Ü‰ýÕ1áÙ™“j©Ô|?:3﬙`æÉð0`%}(=¸r^ˆ'vÍŸ6¡å_†3øH÷ÔKó„c|{Ÿ“·ZýPÍßü¦‹à›¶ÞMvÁ Ímyl˳©‡%0Ô|ù›_ëÞUà”îÇ:9Ë$#nK7¡ ®3[Ú¡òyro-îü¹9´wXJÑ+`øÑj6 sѲj1ÅC°_!§gF%ˆH¼.SGJnr¨äѽ˜×QÛp²dÍÑU» 1 Fáv§ÆT¡înϤ~CAP_;>ÄÜÇ'`‹Y´vÙ@=š5 x÷®¿”iÞ岸Oø(†¬Ô LãZîa,Œ*ñØÏŸÃO':Hrätv¹5 ‡µí’Îsí@ŠF/Üj ²oÀW¢£Ñ‘æ ¼ÊqF-a"ÙoãÒ}¦BÍð¾×55ü6íªn"Öcâb4p]óã@é}µ·ÓØ;ÂÈwÖö#ˆî=DĵöS¿`íÔ*Ìmk€êŽóìœI_û§;ö7™e¾çCR–âQ+#0õSü>±™6IS¥´Ï“$‰m´¥‡ûÇ¥™¾(Ä2 " ¥eÝb4~`;é7,ôóK¬ü9‡Õ¾Ém®€ûŽø¬„¾ftöOÚèéíï – X‹ÂsúVf9ð€aÙƒϙðMûõɽµ 5_'’¼Ëë}¦Ãrô=ªé‰\|‰«ëVÙ©§ è>°ê¨ÁoÐ-ÙÙ2Øa¡oÿøœ†AÀ¯–Ÿ]uc{ÿ9{9uQI¿•iaÙÆ/‚T¿2ÚÛã»V¦ Šó‡;áÇÑSé7’%tµ(\¤+ëaŒù×-–²~ò9õ¤Pâ0‚2Hì1rräù*ñçS‘'ŸLÞþÈäu騜*ÖnWaaõÌ H6\ô<*ʵÆ6­[xô$Ùß,9¬Ör]U/¢X=E|áaûÊd¬ÝrQK¨ö>¾Sºž6GìR¾‘:{ÖÛ<*ó´`ÆX…n'_ïòÔøpßv[»›U2´`»Ä¥`¾¤ÔS¯]Êíøa„Þ³ÝlŠÁ Ý¤ˆt„ñz¨À’òoxÿØ>¡_âø–ë,˜çPí'ñO‰®}Ø’•9;¾º°ß©Ihš—Ö0÷bÌ4\*¾„MN/¸ûÛS¼‹DzK<–ðr8£fóÙ`þ‡èSVÁ î=YOŠ‘—Éü˜„Ç­%m¨'!‘J"öíÒš-§ncWpË™|´É§`…i«=‚¸ 2ø}RS0.ÈQqs$(3¶6­5“Kaº=[¨²Fº%>—Ú]¥}ÒÿpRËFÿ«uf˹ÐÝwÆò“k¡½ ,o/òÏó2Ný»ÚJI—ïÅŽ—‰à]xà¾öôüÞyØ@ó TYwš‘¦ÌzcÙç@#ÿ7gXpO­ý®¢3C(%……šCÎ/|Å:² Œ°û.Ç*ØuèòZÖ!_8®6gà†&S&¦Åž¸éñ$+4Ó¬®Üe3쮦m°‘àÅ»v­@¯÷g¤w¢…Œ¦¾fSûê(0Ýôé¨áú—ª5úë!åÝÙGyúÕažãζ7üreÓ$šgX÷ï2Æ3.OÃâ[#oVuõ\I}škþ ^Õ Aó† 7k'ؾx¥I“ú-,>·Õ=ÿŒ5S0"à™eØ9M¢ ¶L*;—f¾×tñæ.®}2X·E­¦ÆÌw%Sz´ýøÇ²hbù¸ê)îÉÇ„ø%Þàb;~Mòvê-¥¦»(Á‘#êöos¡¼^:¸wMÆsÇÌÁÞaeÔÔQŽMQyuTàˆ#‰–˜Øuö‘ªáõ’¨óP™=™cæÞ7±¥ƒ¦5åbWjr~Ž0h@ádT@¬“¯Ù™ ïN3mçÜaÏÑo<­2e}¥/Ý ¨±Ë[¼ÐÒ 62†ÝµÒŽŽßXYÿø]Aôš.ð×6ðâÉ®´³;»G»¿n!có Õ𬤕ü\74âiÔÚÀ&B©˜Õ!kêÇwVÚ/EÞž±ö«áÖë9ÃÈÊ/*ãÍ¢}:ãã ®ÖÑâd£}K n0(öâš´›õ óWþ ø^®ÊñÖ^!ÆíÆRÔB 9¢„Ç^ošl>|¦ë¼Lyê“á”Yä_¥>ÜØê_úžž&lçºè¹âjhxE’q¨)w|›q¹w€äMÂ&i%—èY‘1e]¿ùZ 5A;ø ÇYé…\Rð”$׋\Cøï8)yª5ƒ8zø­`š%PÜÓT)²‰ð÷'ÝÄ ¸RHÞÈ_Ó²þÎ.€=‘Öô‡F “Ú«§È°>ŠÐgÏQ0¥F¤HÑx—¤ ʇ"5­õSçŒÉ÷bU2mxŽxÆÊsØ&Ûó–Ù~¬«ã»ó·ö¢ïâDj?5Ÿ±¿ÙMZ©ÖÖ—J#Zÿªzø¤`î ø9 HlßtÁ…·ésšw9;5N8ô¶;ànD=¡/}‘7õTÑÿñ={–~êÍ|Ž Ü>Õ¢p6-‘ËßN Ú²BÄ]:‘â­×ÊåÈdßäÌ$Dg,°ÌJˆ,s’Ìp'&h@`!e¤¨6.ƒ¢1·±°¸ùÓÌÉÇX·Ú>‰1Λ±¸ò›5Ô’©òÕˆ‚ËŽËM`£¿éd¶€VoµÓ`÷~’MÍ Ä7W1M_7›ÛƧ«S>.8Ûgw„X¼­¥'ÁœbU¢IXø¶§[8;æÝ›„ø,vÈSåN#§¥î9ñNJ+àN¾D€kaå*ö-Tп ÕÚDÜWtA“¬+ÞÕÉøÂ'×®k6Z0sºù¦*7\=ÿ²† i|ÅöÁ­«ŒL‹<²qc%@°Õ%;¾À&Ž}O¿bL¬H7oëWùôïOñ§Æ˜5Ö· l.…oóŸï¾& U-m©0C†TÚÞrÅq´æß‘÷„ÐÆ®}"Ü—OÏqõó“v][Ö{óýÏî­‚«õ7º0qzÉÆ·«¡aÇ"¿>ÉÕ/› '.\ZÊ3Ò¯¹­Ä.ï ¥þAγÄÉꮌ˜…) “?/:y(jü…ÛÁ1iÒË_1F5Ê„êBN¼°A@z<Û7´¤@†n¨K¯êàÄÓK¯ðoLŸ¬›1SÈõO˜ÑÂ8xÊrޏÅ$atÁ# zÎ{È&;ÕKÿ9t*7[!|Òa§ºÎû¤dﯟŸÜÉŠ+ ´žòYp°Øûá3ÊÕmNb\­Êè~Ïö×ûؤ%°‡FZ"’ËíO†×ýeB€ˆ¯dÂjd…y{T©eÉåhÿ½+Z¦ MÇÙ1Úô£Gõúå$g^ï4ÖUýïp‚)Et07’®1÷è“©e"=> Ñèð%éõ@ð)Zg±orY–”ßå%ÅV$†û!Œ*s`xNJz!bÄF×LrÝ=°gñK•‹Qnφ³r°ÊѪæ4ÐÇ~T/Hök®¾Â‹+l˜ž[u¬™oÉøFÙÒ_÷Ȧ¼tªG’ƒî h?^³êÄ %}}={]Mk…ää¶_ ¤Ö³S­6ÚÄëVdª¤êõ&úÍTî}6uGàb’í8­è®Þs†òÜËõð ÆO/Ûý˜ÀÐ 9éÛFÿ÷­é{'ߘß9øÔ²úÑ­p3#C¥ÐÐÜÆdìÊ–±ˆÏµãØ(ä:È‹w9#†p-t(_ç.Xk$$|J‘q/RÝõÄûê¾æ‰=V€‹+×ú ÉáïúÜJ•ÓjD7j¨4•ßå_ÎÒòz“G×ÝB&¼\¡¬V›[ 'ÞC ùëÌov4ÍŠƒ¼‚g-‰)ô](¿%ª¨{Gª’8bê­5wÅù«ßBáPÇ.R@tö ÊáDÓLs«H…Ç‚îÌ¿•Ë_•Ãä$ëOÚ¾º¥e–2E[;B9Éí@žïtÄ£½Æuà׌Ch¼ˆå¥ºVjžÁ Ã_(·ð¯>jý±ß”Vz`—ÑL.[kYFn€eÈ|dºyñÞqùð“10^“Rþ±'4é©Pê"•“$„Š1aá,P•®dUòü.1¶4º¾(˜ùV‰õä«“¾ŒÃ:vÞ¬Æ;¯¼ÊjNðb¤.ÇÍÆ^a®¢p†2ó I]&P©A¯Ôä(.ý$„c ­t” gíw/µX_$]Å<ÃoȰ“õSU§ÆÓPÎB ¸þYÏlàQÏ¿™ÜùÄ£¹îe3¾5èº×XâÈ&¥ä·zsP\xÖv°ÖPÓo†gY S‡TBùø½< {Ù?4Âäý%Ï¡Dö_’ZÀä“kÎy2‰UEAé,ÈŽA^ ¡«¬“M÷Æ«Ÿ>?”6ù»›r0üH¨?!!^±D­®½OÍ|'³°/ñFÔ ñû7XlåixK{üox‡¨c-ý$ø–±,SWù2l+zÙ g}zKµGâh¡qJ636¨ªÐ7_®©b‡/6± [>qk_µÝ†ë m8(Î|êΜlýv©4 §Ïò1š+ÔDQôÞ&á Îj•[FÆÜqsþ$û!l|Ð*ögÉÂÅ+·K)o¦Æë뀶·cBÑx^#×Õª œáñ•³š;6N :g¨†­ãÅh5ý®v‰ŠÁ“Òé!%õñÊœ[•òúœy°*6‡e7è·g`Æc>ú8Ýw]Eí;—…—ÔI÷Aé˜úe¿¡1™\ävA7ÿü1·5Ê$~p_ØJ½K\k¨×JRFÎCÕz ””üŠ{ù1.þžÚµúça.‹Ñ^ÞòiiaPù°6µã´‹DË«ÜSÆôþ+7jbþˆ)€@í²L$Ç[ÏϪGçõ÷qgªKÅp‚µÂãµÝuh-™qßÀ‰¶‡¸Â­8Kª¨ë Æè¶i!›AÙ‰¸XU.ô¾ù} 1‘Õ`ïÐæ9ÉÛUÎ?dåpøÞ"’úxˆÐv©©Nq…´·Tû²”’ÕwuÃëÁoûh¶Nظwã7#*ÓºHÉγ¦hwFo%.‰ñ±QÑÈãqý›…Ô}móÔÆ°½³†e,k¼†wÝ?Ã3†}@˜‘7„—§£7`u»ÙELoàŒ0§ŽŠ«U…{ó›¸ \­µ×<ˆdª%*ÕNOÎõ¾Î¤ô†[uº&Ú¡¶ÈTjt¨¬Y ^Bá:µ;3h úDsL. ' í§åŸÆÙ…7LGE'oàIÕ»¹È«-§ÅyoIVÈò¢o.´‰ò¥»JSÜ ÝA#J+¾F6¾èø–:sçå¾kTí6ŒPž7>Ì; ±ç±efúF¶F‹CãìÇ÷Ð%û/•ú³&»¿é©Nt+4Å<^Fý;i/l 8#ùcðrä£ D¿™„‹i#¡é…ÌÆ |gcÁWÛ[}ɈOì¿ê(ä>|Y¸lU "-?Ç eöy&-ß`”ƤWæ˜)ÃÀ,S gn/}£P|¿ª"ÿSe2©/Ô®N3”CÀâ_€e¾äÐ5KU®±u(%nw´š°Ø6§ˆV•©“5• €'´”¥¸JküiÀ2ÕÚ°#ý ÇN®,öQ¾Ÿ»tÑ–"ñÒõ—jÏcô8ÀQ ÐÎWÑùð$™ö Èo Ò6ˆöR5+d¤ç¿’ã¹Ç4þüKÇ3@J’ÃO —>Ù0Ùd®3Æ}âv>!åŠg?YÆ\;¾hÉt$ºuÌ~9eÁª áMÚýÌ’ÀåÄ=°âþ9MTÈ׿ù,ù¥\Rh¥l)ðûˆ†’Ùx‡@¡xA¦u¯Á·Ãóþtˆø έŠý¡ _Å{lÝöjb³?j—Í ¶º¥müâMNM±©å˜,ÇÖñÂqf{JïKâ—§l õ½TSÖîëþpMMÑ1êóö´IÅÜ æ÷4³BÑøÅy›Öc«>@à²TuƒµðU™šÖ¯¡œ;ÈASQ!ø³˜Ÿ:(Ô"'>+suÚP¬vù®Vìã¥5 Ø=i8å…¹ HŽ3ÞÓ¦U5ŒÕ5ë²åKR·ØŽIAéa4R }HFÉÛ€n˜!]‹Iò@UB”FTܶÍÞxÁVÒ]r<+ð%ÎrØBj¾ŠŠ’"T—bÕ˜nÚó›Åòì\¿7Ì·Øk“Û®A„{a'" $§•>;ƒspy†`¿V,·¡Åmšx«‰‹ßÁ?ªK¬[u½urO–Ý‘,9PÔñ“.é‚L ÙÝé+q¹‘ǧéU1Ö=y´“ÞAœXb.œÇ|Ë´cg@!¢Å¿÷/Ì|êíÝè6srßÚ*öôSØŸ¬KÂëÄ=PmüDùñ5óªKg ySs¬#­ÔyœÜ(m¢Â/t6úíLBùëâŽö½'•ƒÃÏæux1„µ!ÒdÒrGk—7jl†pµ1YB$“ÙxWŸ1ñl߈•%;˜¢|é:âZ0Œ·6* õ9ñš6pÔšUnóë>s ì/0õc ñP‘O\qQÂÓ&u9¸œTÓW3®ÊÆÚLætŒŽšTö£ê,~a`¸”"9ø}¨††Ë—‘=_@^%N‹_w^—ÈÐ!žB•¨×¿æÔ?`âaìt–‡ívÜW÷E‡åżï¿:JO‡\ÒÍãèzæ Ó<Ó26x â“Ú6â_/¦8(ì§zI(¬áQÓ%Æ`™ÞÑt&qêÆ0'ºvœ7DaDâÀCÏ£¥¹¸À:•Öoq jt¸Z¿VZ_S+|$G}™"ÄH8 iú6c'QÃCXàqœ0í7×0³ÖÒ9}ðI8EÛªZü¢HU¾²`Vuž°s¯Óir´w˜sE¸Ýên,ä|Ìn0MŒ;Ulþ;4\DºùW~w„ˆhªè<Å-€/¡^™%âª}äáØ÷nÑtœÞŠÐG\ ®k.Sªö‘{n­†±2ÂHÿoYÞ·9y Ã0„tçâ‰@ÈÊqTpŒH‘<Ì<·Ã,±žAôm!‡å¡Ÿ3âʹÙ7zßÝ«ÕÉ\”U؆˜*©Â^m2»¾Õ=âv3Q¬.VŽAœKÖÖ¦ü•Úœ²xA!~ì÷ÞÕ-Ê6‘´÷H;Cº3Â|°  ¾ð=•žÉAÅÀØ!K†.üN‚ƒ4õ¦_hŽ/ððwkͺ"Í'žïÍü»ÌÑŸy®2ø¥Ù8HIÔöHÓ†T†•jý> fiÌ­©lÖM4­nÇß<Þd¯%pøžJ2‰þ5úÑ endstream endobj 118 0 obj << /Type /FontDescriptor /FontName /JORXYL+NimbusMonL-Regu /Flags 4 /FontBBox [-12 -237 650 811] /Ascent 625 /CapHeight 557 /Descent -147 /ItalicAngle 0 /StemV 41 /XHeight 426 /CharSet (/A/I/L/N/O/P/S/T/a/asterisk/b/c/colon/d/dollar/e/g/h/hyphen/i/j/k/l/m/n/o/p/period/r/s/slash/t/u/underscore/v/w/x/y) /FontFile 117 0 R >> endobj 119 0 obj << /Length1 1614 /Length2 18861 /Length3 0 /Length 19693 /Filter /FlateDecode >> stream xÚ¬¶ctf]´%Ûª8OlÛ¶mÛ¶TœTlTlÛ¶mû«÷½}ûö¸Ý¿úëgŒ³æškͽ÷9¤„òJ´Æv†&¢v¶Î´Œt \E5ykkc ;iZA;kcÀ_3+ )©£‰³…­°³ @ÍÄ lb`b0rrr„ìì=-ÌÌ1(©©iþËòOÀÐã?=3,Ìld_\M¬íìmLlÿBü_'*™˜œÍM¦Ö&!9y Y1…˜¬ @ÌÄÖÄÑÀ ïbhma¶02±u2¡˜Ú9¬ÿc0²³5¶ø§5'º¿XN€“½‰‘Åß4w#û\4{G '§¿ï '€™£­óß8Û,l¬]Œÿ!ð×nj÷/!{G»¿6}Áä휜Œ-ì«Ê ‹þOgsçj;YüuìLÿFÛ¹üÓÒ¿¾¿0½Î¶NgwçjšŒ-œì­ <þÖþ fïhñ/ ' [³ÿb@p413p4¶6qrú óûŸéüWŸ€ÿ¥{{{k³íþúŸ,œL¬Mé`™þÖ4rþ[Û̆þŸ­"akj`dø»±‹ýú\MÿÅ?{†ò/ c;[k€±‰) ½¬óß’Šÿ;•éþ߉üÿ@âÿ'ÿ?‘÷ÿŸ¸ÿ]£ÿåÿÿ=ÏÿZÔÅÚZÖÀÆäß$ÀÞ1iÀ?—Ìÿl`caíñ ÿï‘j&ÿÁñÿ„"álðw¶fÅ` cø£…“¨…»‰±¼…³‘9ÀÔÀúï”þµ«Ø›8Z[ØšüUóßAhþ›OÙÜÂÈÊöŸ±³þ‡ËÄÖø¿Sÿ+пÄéeDÅå¨ÿ÷õß8ù¿Ê;+{Øÿ¥ö?:‘±3þŸ‹PíÜ^´Œ¬LZfÆ¿î/NfVŸÿCÅÿk-càìháÐúÛößÌšÿÏ­tþŒˆ­‘ñ?{EÉÙÀÖøïöúŸ†ÜF.ŽŽUý÷Äÿmú?×ÿntw#˜Õ%;#î`Ëô_ε?r‡&„µúzA‡BìK”‹ ü«íºýÒÃw8+ô?jB觸¾Z=Ïì?$©Gz0¬É»SM®òq}ˆ){ 7ÉÚÙ©éuKà3ÎÕ¢½®¤·Á4ÙTw'u‹? ð¦Ú™¡®Ÿ)ý‰] üÑHžì|ÒêãÐ;Pj ÏÎÉ’NžŸÈF‡‡»oÁ{p¨sâ I¹ ~ø¦œ&;{è;>4}¿¹²&”AËâºãqLPo)ÊFJŸ‚æžhø€ä¨ýä#¬æ=)Ã)ñûãÙK2µÏ1sãDaåù)÷ÍÈ[ÉzI;¿ï† ø$Îßh¢œ_gt>t.ºðÈ…fP'ar´’ÄM”ì¼ÝºNˆ%Ÿš8M=›<Æçå89£ųà3ß-²'-&ú —zµí>`±U8ÌJ ÆñW|öR~uD€Ä~—Ñ9…úWLJ÷ª8Ä4­ƒ@Vø÷בPJŸÀ»Ë€·ÞëÏ2<oë~Ì·i¥©4jζ jo\Õgä ¾V’àÎÑcà ÔÚ®ŠÎ¸?t‡`×s'PKM¶ÈJØüFȾ|À…™G ²~FG*¦ YÁE±]ï"ñÊ1%(q_¤y2±2 DâÕÔSDlÓ 8~÷¬rßIq P'™êÖÏâqBõˆÄšÛ‹*:›EÓÐxΚ¢ø»3Ôe%±{BŸZ'Ìü cÓ.¡–”:C³Lº gûISÅ Mwd^b œŸ§¡Æñ …—9š—âµ×†(ö1·=ŒO tQ¨Võ3ÿý%ýUg±‘mÌäX);,ß&Ä/Œ7ýçíè%?á²c° üŠlaŸ¹Bÿy’0BÄdT3(x*œOÕÊ&ârñnЧôw%±<Þ5ïKÇx‰·)÷`.--D¹B“€Ñ5^Ž(] ç÷Ë©]ÄEÔmÚ]·+ ëU:Nщ=2¿%¶ß ’ŽÄ‰;}ßUº†L¼8ò'`"v÷ùÄUBüiâgxfyü¨á(¸6µŒ¤´¾üŠKü4Âý¢êƒò¸EFT(ïOÕ¾b0»¦ð+½yíí´0VÂ2.- `hQÅêXYg;LÔ6é 92Ÿä­§!ØShb‰5–Tˆ,1Ë B,¿õ¸øˆæ…‰0r5ªBLƒ×Ú«ó];÷T­–äZ³…XÉæ¬ýy€¤\xº\¼h!x&ÒŽ‹‰"ùaâ¿4—'QË#Yàœí¢ Ý:ð5X`uÅÖrš¥j®4n™ónþA/bï(YŸ•…álØïi„•BFeî©ôaTÖÓelmóQäžSŸw¢tÏïüaü;¼œ?SNûžÖ‘ƒø"ÑœËê]¥ãÉÞüÁEÓ¾Žò§rJsÆàÅ4½O±9ï B@QBÅ9?&6ÔŸžeå*õ÷W²²lEçÆ÷G´¡:Ÿ-gÔ\ÝìlÄÞ[B ^V¾Wúú‘[?¨”Þ€ÝDJ@n€ªÛ0xæ@v´s]e+ve#nM(ûfÝ´ETh5–Ž{þRcÿ&½z:¡Ÿ uªELëð”2Úᗞͱ.ÒUsaBg û¯Ù®²¨•t¼Ù<ÖÅý¥õ룤97ŒWP>ÏŽ¥[+a/w©˜7pÇöW4Š[”UT޶æ¢Ú\wë0—I³ÓG=$ãXdø^RçêprfdÕ¯vŽ[®ß8 étVã?¸5åï‘F?Ê)L³láà²-–äx:±•¶úÝÝêhnƒÇt±|eË‘êÆ5–kId;&0Ëf†ýÔU©)™äØš¬v–Â&mþ~„ö³}ÓˆK|ZgÆç²—úüc=…L,·¹Æ›_Äò,¼ÿýé!ñe¾¥y/16Lø§ÝŽ…K8G$hkÛŠj!J%Ë}ÑmfÀ}CÔ+ ’& ‘ þv;o”cš÷oqé¡>àí°›[ðáôÀ% ô4ÿgüñÃæÔÍH Óýø#ñ‹Ñ›€M}ЩD‰Ø]íù8F ‰‰*ìœÊã Ìè‘Tßð¢B޹Fí‘Zb^¡XsmË¢`×ãD6üýŸû šþ™Ç2"›Ò“Vb“ž6Œö›VX/"2FKË-õy!Äâk!zÐ*¼Ý·jb2YW0‡· ‘Ämç$VÑ]âDºÈü¥¸ðìèY©èÆÖÌ2Ñ»v®e¼zª\ϰ%òRÝZÅu:jl?c/frWkˆY'6ä©e½§>6¹·T䨄VIô²Þ>-!ÊüºuCo/‘¶Du|c¦À€Œ —;ñ®ÑÅÌäÏö(„L‡Êïê½ß(YZu|M”¡ü}†9’¤ƒú˜Gœå/‚Ѥ(MŸé׈ϸ<åßJ¿«á­R8‰ÉÜø“¼4ï›)›| 87‹¦0Q2õ3[˜—óMÛLŸckÝÜ1¥L×êkÿ‘Wõ<5ˆ+Vøê^‡»ü¤ó‰þØ Ú»Íô[šÓëÉ‹¥œ´ÍíØ¨L–ÓÌûWQœU4YÏi/·s’ð{ïì_®ßýx C„~5 ”ôâŸ5 ¬õÌü ¶k÷¤¬½û0ç°‰ €!6k}Ÿª+ÞÔNlßhÆàîZ™÷#“LqgSþ€.óU#ÚËÖ°ÒÏÂ|ÜL#fŒ›ŠD!_Ô×Õ˜B«ÎÿB“ªéÝWÚOJ×° ¥²7)µ \EÌÂQìõ··esîŠÑ“BŽXiK©¦Tö°³®`t†?j´9‘‹ò<=05T÷Ü4qÈWry)‹«‹ÅãVBˆsˆ+»…ùågþ°ž¶±¥ò \Ì3·ePöÛ¹§@¼ºSs²i{L®CÃuQ¼q༆ Çç¥SKŒUŸÎ¶ø÷õL`ø°ã¡A~Ê.˜d3ª™¡ã[3^eØöá’ŠÓ—!utT‚‡¨¿®ÌþÅ~¬¿¸V¥C\Ú¿zå,¬ dĉ‰k G±å2Áûãh-jC>t¦hÕGîLó=¢DÖãú¡cR.'±.P(ýò) ÃõÕÚÀSʃìö›?PÓ¼ )‰·6f„VbºH­òÃ-«dG–l„d`ôÙ0(tçnfÅ=•p—uÖÙ¸“1³C%Niï„ð¡£3-{)÷ß©Ûf[ùèÞ>{`<¦›çN'Êo%ùe¨Ô©Dˆ}­¼¡•Ê3à JMõu¾4‰~¯»šCîиÒQôœ†òij¬‡ò;§ü²Oq/éÜh* '2mbÁ«œðA÷ÌË–B½IØ,a]rrÓ[K“ÙȆTU.Èn óê(^V…Œ>¤6Í¥I¬ö%´µÔ oQ踳MTÕåì§¿â·-jÏyy‚k^¾Fµf]÷§›ªî)#D~@SjI{Ÿ£þÐùUJصfЛãaÇ •‚¥÷T•UЃCìÙ}mŽz2Ï××A|¢K«`)$?—ÚåûˇbCôùë® Ñ‰^eƒ¨²K7ž¿y«ç¤Eà-¿“`kÓlÇÌšTZ7Í/ó-Y¤€7.]Á!š½ï-ßQlÑ¿g-÷ù¨[Í$G~³þ‰mf’¾&z¦7¤—MzIwów£iÁH¶•–dæÛϽi=(éãK€mß9Éø6þ»ýÓÕûÏ÷.Ö†wM%(æü„VãL¼'õ@Æ».YÚXÞjcÁ² ¸¦_oÂ×y, i|X¼jýŸ[I3û…—ë›ÅøJUÅ1< Ê“.é°h•Äp]¾fçh¯G†ü“5vè§eN>ðÅAWJÛ‰/Òñ=IãGG:m û{\¥#î:y’¿õZ¼Ã©§ˆ_£;v´ø¸rŸ®]àZ7g¢¸åí¢ýQ¥p•j0Aü¹kTÒÔ`¢­`%ua¤%ý:ß’B0 $ëÌØ¦=šd\¶®T`tUD r™x–ï¨Æð„+a¶zÈW¬h4Í‚µä —¢ÆÎ‚ÂR¨õ e ¥p¹6"Ô¿§òE%{>»Ñ];p #Ÿê{}! ~ôúÑø)ª9˜0™½>LýìzñSwMÁ V'ÄçTšô\‘àßéïóî{lYêôíB u!|ÔÊMÀ¢-&3ÈÁowX ¹Ãè§M¿šâÞÞÔ¿yü¬T¾½pÍÎÇÁ5ë¦õ ?úuëÃþ¡k°ÿ£aZÚ8ý1íl¤ƒ©gü$©«A«€WHµ—ô~‰ø!ðŠª2IÙ•RÄ⛀ԥ¬æábâ>ù@Çù00lÓq†&Ê¥S‰m³°ä±çŒ5¥“ºNØl­ÄŸZ%ØeÞÛžP¨.ï²V_²‘Õ²,Ki;”2ñé•v!ecdm°°Y}rÄõÒ΂J%îŒ~#gS“TØ#Zû+<ÖýæÜèzHM8 o¬ÎÅ­ð8Vä9s$e9Ñ|n5‚÷Øq-±”–é¾t´,ääN¦öB…®íB” §B®Â¾È¡°³FÔ%CÄÁ礵Xo*œxŒŠvšQ%⯠µÐ ˆ‡êà]$NzRà$©‹`a“¬);GHCøYå C:áH¸ž¤ª«hõ¬ ÔÏW$€“ÏDdGžªŒR|SB áJôŽ›íÿÔ‰ªò‚ø’‰D=¾ /MQ¢_ñMB­ ÇLÜÇA|— Üûa`ËçaÿЉQ”ö¢}Ÿ`4>Øâ"³\ì§<—ÂO=@ö‘ŽÕÄêcMzqÕ P »<í­ÉÞ¤â’1y"…,Ìä$¦“ÄiQüÎ ¯¼b0a«” ô³ t–öþ¾z9KÄÍv#%q»â1*çyyÚB)h6Ü<}Rý€!T€¢¯3µ 'rƒÂý¥réÀØ#¿C•Êvb¸^ÖZ5ûg‹¶å@d« ûÔÃ4›þõ1!›¡Q#eP¹³q½eMnÆm¨#ÀÁ|Ɖ¤ƒ‘ç„Ñ n÷%èjúµ0òTÿ–r«ß¶ûúžaxk¢x™Ÿ¦P: ¡ú>Vp½0þASª6&àP³åiÙ³R«ô‹1­ K¢ KâÈ~ÔÑÞ!ïÚVÎGÒà 9KÊÛ2efxµ€&œ£x;3(*’Q}»ñ¦þ†ðL妸žŽ·ÈT³Ó•¼©W¡Iëîĵ23ú¬õàéöµ §ûÚ>VõC6U¾N§zÓn2~”¾&eäY¿~h4ç™_¯ÐV8üîy$lÊÔøÒfÖÏë߆(uqmâ¨xp›ßdh,³-©yYû¨ÖD+‹ôžFWS{ÑèW•YRI™=K¡þ\dï­»VÞeîl{[ÄT6$(®§}=Z¥{žHdzx¨¾¶—Գ͜5"Èa˪²±¼¤í³¦(mcaí÷p8ýmûÆ2κ>:¶›™þ‚Ì¿7Ÿû‹“)™9¦âÜ&8Õ*ä·b)Ìþ‘.BÛ´-Óz}'Äi×+— „5]šÁ^){¿øìÒ%X°¾’Àˆü8Û–xÑÖæÔ“ñÅ'3.duŠ BV^›–òºðb~Ø DÓrýNj'ꃂ¦8­½C<#Œ'Q‘yÊìã“Þê19®‘ü'6þos±9Ò¦´—ûÅ‚‰Jk MÎs´(Ò;¹ K÷Ôqâ‡(ãFU?ŠÄôâ\§t,D27)ù™«y)ªõŒ»¼I¡î?[à:}Ñ8<‹Šoâí¬ºè›o4H²¨%”ÛM??‰ê@öÎAoü o[!~7ÕX÷z@:E\q™J#º€Œ©8YuÕôÔô„çÿü2é«)j5¶mÈ¥ãÊr%¢ñÛÔdf ÎChŽœàH i 0è\éÈQ¶?ŸÂÂAÄL QCåÿ4(Eú• TQ¤É($¼²Æ/ĦKƒ3ëêß¶¥1VýD4G—ƒù ¹›‚t©­ë¥r!`â†]Ž2íµŽãY ¦¹xBþ+9­ 0ß?öckøH\éz0ãs'úØ)b—®ëR,ò¡ñ6ɸ­Pb|Í•Ké%Q÷ü™œ¢Ø„½2ð†–¢í7QÖ­Ø{·}ø{%,N½zë 䣦Û:]ù=( ÝêèxS¦Ã´éÐιͤÛDö8«Å ˆ]ʼÀŸ6³'Îùþš*(  Ÿ õ z§øhÌ¿-¥p<9¦³ÂÇv3§3gRv:SÑQr5>`l—Ceˆá­¬xÀ4z# ÔÓÊ|Ó¦ëFrG§`.Yù>xé Ü!w)Ï^ëðgCÅ-–¦I4>3tRê¾æ¸R—e@)QÕ^‹Åî+ëãÁ¥=ri~Äñk)¬PtˆRšêá2>÷;\jv/“U¿ 4;–W¹?\†#à¢9» xðÅàm|u,dnX0êtý̪[‡û©ñæ¡^ù«•—úÔž„{Ù[³¯*Áâ}+ã:á016¨O»žŸÜMºUåììwâC’_+ÑŒ½Ã²Ëz«¥¼BR¯1ÊíÒÆõpcÈR´áùí rÓ÷G(<ñhòþD>+È 7 9˜òþ¯Ï_£ú·Ÿ"¢/ ¯â®;ç¦e%¨i IÀŸ]²6¦ <³0%>°t’ÕELe–“&磒ÝM‘Hñg u‚ƒfLš1ó—=µr·QÇ ?k¹u>Ï“Q¥÷BiŒ”7!ï¢Pæ1éÜm%ËÎï"Ê@)ÕU¦ÓòƳsœQP. }=)ea€Ò ƒ°Þ·)ÎĘ«¯gt×ÓÕ‰ ÜS£û³ `Éiàw·ágšp”Š/<ð'œïÃ2!‡ ­KÙÆlÆMÇ|™.¨ŸhúOŸ!MC2Ñ3H3™ºõÀº­c˜«ˆö?p¨¾ö¬åÂ<ÞV×(0Ì?ÑÝwNkeñÔµqóÁ“Ä 8z‹ö÷|œ@%]­ù ëD‰’eÈoL5Ù[¤$-èžéÌžf‹˜K gJн—ßÃMÝ//ÉUK9¥äfÞΑüÑ+zóÄ Œ­âIb§áE”1–¾cje¤rGþ‡,R©û˜‰ÔÛtÎ ¹`<Þ+otÖÎÙáîY*˜Kß[¸n¢9øÛÉ—ƒóåR±Ê5/ƒÔÃŽnØÎçIû…V’—#±ÃlÄÃãA¼ çK ´’ @—?’Î 5leÞ鎎K|æ~’!ªÊ¦NÌ Ú6Ì<ÿ:JŸ´ Qoð£ú²[‚²wtÆèldâò­Xï8§äÃXèÿ6žúr¿îÍO9 Än…Ó`“²@p\H¬C£G) ­×/à ¾‹ël3êËâ2_‹ø˜FE·ѹ;ÄÔ†R!™”ÌM!°Ùm(4X7†RågMÑ€Ïv{k·6mM¯ÙdeƒæÄZIJð¹Dão;®gðdW~>§ÆÄ>øÌ¢eåêZ°2—M?:à´6«ËÍd<;—3ºÄ€ö¾j¢$Ÿ›m•ÎQ´ï7lŸ‘” DWž%ôEÍšêÁM l–’J-e @x‘RóÍFžqíw7'׺÷ $ì¼eŒøÁ@<ýAÞêB•N+Œ?å,©x˜¤g;rðkÕƒQÜÖøÈ0_¶¦—<|Ga©™¹¥ÅŸ…ÚX‡Ô ·4ÙÊ}G]¨è8«ì•øÙ¨ôþ8G~ñRÌûïn<~>þ´²;ÒNW‡U .вÝB>Y¦Á5]“‰4p„·hšÚ Ç|af¶ÿÕ·——Gä'Á¥€õ‚5ç“|ØIõÈ#£Ë*T’èTÒÈbÖœÙË:#CGÍŸÖm2ÈZN“wlÕ¬ùÚ‹úk?æÃAóPW.È»^!‰íA›ÂSàU[)u°n‡µfKð‡¢ÄYê¥ü¼M¤ùö4i¸DqôIÂZÐM_rô럟°èÊýgrðx¥Gš3;Pïïrò¼Á_ §Osr4ÂC•mEóáÂx­›§³­Þ̼ºnFx±ÉöÛeÐ+ø<г¶bÃæÛ[f:|Šd´À`[f‰Ë¿Z=ß른¨BS¯¯ñ¼ìetªz[$•p¸Xü´Ÿ=0‚©æë$¨£f]:Q,ÐwØkr±ã½?ùª©'ÍùÚ= CV!ÀžÈöDoÁÏ% Íéø1þâ-Ìz2&¿ésñ‹·°k¡â Á;Yq’`VáUUØòüW¨u W¯Ëµ~ØÄ|ÏEgÜ®pðj™G<†úkY¿5bâÝ0ChÞ»A<1oyAéà &Hœ¸†¥:û¤ªë¾qœ¥C‡®ÓÊ Ü“BÏÜ—1ðßDmËMqKЭ²ÿj„goó§àÿ&7èQÑ•—ZÚ„˜:ýœ2åwÞ"…Ö­e‹\.ʸÒ>ÇE^É´n Ï–f¶ÙEöe4DFµùa nä=Æ„E›VG¡#=MRrtN9)'?ƒ½×ÛO¯\qÄ`HHY~RFww%ëå´YÎ ÊaÃs/E“éô“WüÜH²6íéX]±¿Ã»³㪓gù‚N‚:3—…í¢¬ñ“¾üðvƒ*Å&­ñ³ ȶi3ÔÉÛ$"ùZ‚r.øÞ^+ \ÜG;nQÀïÿ5Kó?/¼TÙ·=0NàQ3·{É™î ekæ¶îÛcõF0aÓ‰õkÂ(úפÆH)´eðŒöÁKú÷½-`lûä?Ë7³xZ`ù+Ÿy3x®|cmUžÖõ@ 3rù;6 ÚF «Û¥Ò>ØZ­ŸXŒ¸·sàã©€ÀضÏžn²„iêz‡Éš~lKµ}@‚5Ý6À´L'Ÿ¿ÊÇU•+ÇX‹§pžaãJ©ò˜º 8‘ ´2fL{^ìïW",‹I•ê`íwlVªºwlñ,ôϘ+Þ[ç`#ˆC:¦Ï¯ˆ&¦óÆ ÇË3дqâŸE¯OÉÊÚ·SÓ$W˜ãü´ J,Žvw ô²› ÐôÙ7Tìþ4Ê䤵8w™Qâv»7ñW BÙåcJý,Ô§­ÌVWJCŒ(gdоxŠl3ur¯á@Ÿ¸¸÷ÐŽ5ÐGŽ¿-•ñ*_CÝ jWý(¦Jh4¤sìÈ× Ð¨úN²,Ý$Úêx8ªµYÁ@B±r¢?ñG:èÝÐÂæÔ£¤ˆ©ʘ¾ñ×HÌ(Á™ZØAm÷O–ÒC4g Úˆäë « 4÷FĦñ™=úñTÇZýk.F©j”£ ¥? %pE6âö²x:RCçxûõîÁœÌàfx9ùDWlÅþ<ÀçÀ%*G+²Fß_wê¬Ó*š-I9ˆÒ“œþ\¬¤"É>úâ* Ë*ÙÝEZ-Ù ñ™Wë[jÛÌý<IJ©®ó½(èžùí®#Ó!->¢ýÊIíøÀC pkæ)zÚä¼Cr0#—éŒ];wa†5kW7{1(oØwËà@¦(¯ÆR­ùŠY UñM0ßyX¼mƒS·¦z✆ÆÇþ¡.²«—t³±Ò¢Äs{O”‡4ä9[)³Ãâ^[€¬“‰cÇf̪¦ÛöŽÂêI ’Wßaj-³Ü¼9ºXo¹à±UK½Ò>…`¢o½”BÆ/t´8‚fÕ¥>±£ãEò¶AýCv}²!¨TJ\w íù}©‘¡,ZçI͹ÚB[r›¹"06Û„›%øœÚÅyXßYu•M®À¸¦êáÕîƒ\C¿ \W3-@3Õ?¤Ô4gBËDž¬^dlóñ¤hÔr¼p!޶óqˆI$PJ?ô«”ÌD¬£yrI{¿£\f«ó± ³¦êÎü¡_°ïý÷­ï­¤peÐýL›þÞ õ ?ÎJ#ò< »_W„çþµU¹WS¤êyI†é5àIœqJŸ á×x|'¢% IPªd™(F²8]ltNÝ#•)tOâ# ²Œ ö Å^©Romðbje×*>2  •ɵË_»¹a@k,G ß%ÂãD‡ªØ5€†ze³'z\—]Ä)P+¾´e‘¢kD«å•ÙÑT‡{ ZŠugf§œ ¨„uX…Œ)Œm ‘(%{œ%AÐL.@ªš»Ó‹ ò ªFˆÞJbeå³Áîô]M¡#Øaî4é‘R-~f¸ßè^Ú·îpGüR.’œÿ •w¼yòÀ¥Ý$s+æŒxºñÖï®iBôG¹Sw|¸¾aØè,2â<Å£­:&éxõ¹G!VºÚ/a„08kC(ƒcÉœ™›{.–µ’[ÛŸòßMqZâ¬nÞBEÑ ÷í×ð"˜¬ %Nȶì=\Qº±Dø÷~hK‰.%®? ”¹XY.R‹‡¯ÐBô˘¨U­|À»òáN”ÿøð:ÕEîN•¦Û&ìíJ×ÍÞá‰BŒT0sd­=Nnô\)ûG­šÙ6_²“5›Î’ÐÙÜx<›%õ£Í är^!zz3\x†ˆÐ2ŒwD]¯-?¸¬e|kHÀãÚüC¾‹‰µlaöy‚~ 01?)rï€gÜm×eÈØ‚CãL¾1G¯üÖƒ{Z"Ásy¼=±ŒçÐèÌÀ,%´ªê\nÇ­”<6öd (òä~(âÃŽÆ<Ý©ÜõG„ ä‚'»Ö09Ñ:Ç=Øp"ÞÊãÈ÷‚.pOí.4ëo" 2‚»õ÷óLŒÈI‚vx/i«T~:ÔéÌsmŽ%à‰ö¸ŸG= Œ1üi:]¥‘š_m$Ôó¦‚E"iHÝvA 6Á™pò‹O° é*‡/·BõÚ~êùÐ` Sc«YLjŒú9£ƒ°¸ÐJ“°Žàbô[Kß;C\äk˜B/æÉ}`aI\ö1«õ¬‹d5Ú{«Gd†ŒB¾ÎAçî–´dµRÏzóº^Q §z?øH[Û(§§1½lb5Óý§ø ×ÂKLËø™­Ú^¥ý£‰ ð™†ÃÀ“Añ{•°1sX¡úØZ6pœ!Òq§7ÑÐñ…Ú„Â3A›*z§2zéqÄõ,.zœÜ÷¢Ü;]æ ÒùÅÔ`½TRíÔVúÍ;YîŽ9ƒ¶3ü,¯}Qsk²ÅDªÆ¶Í#m2w_H-ä,ªNZµïÆ"ªa{Fˆ v+7£ +®‰Î˜{ò Ïã9Lt8ZLÀ ŸìC0jÿ%!£[Îa÷éýÄ=îU |­öea¦—PPž»®g@4Ù Ö/•Né\¸1«µ?*)då¹ð–óÖ‘;Ö4œüE ‘Ñ-ðHÑÁ=.*õ*åW¾½Wt6j .'ضëL–š&ù$…|”¶¼#%-võµ ÖpÒz"¸üQ^«Ñ4s’MÝ2Í‹DNÆG˜×|ð{@¤%`ãY¥æœÜXß©Ûé8ËM"ÿrˆóUÛ5Ž"> ,²‡°d 3s™.ŽÆ\8±„Q(e1£³‹3yõ*M2Hîb5šopÌ¥ŽÚ¿|¿¬Æ83 ûΙúÉÇÌ­6Úb…^`ïÆ)<8©OKAxûí[#cža¬:™±&Bi÷•2&‰ã Vãö]´vŠxÝ׫} 8k½ãΆƒV+bm#ÿ>Q>yàÍl²éJLÈ´nWëó–fË —²F ‹Y¦È?ëš"wfí<†Â­Yšz?ü_»’WçÞ—,ö96¤= bƒkAD1@z˜ÒÁäxñ'ÛR~×)ö+x>ÏAxQÁV‹:îô _ÙI|^­ñ6Â’fë6íãÔŽÓŒ`‰›£Ô‡ˆ;ã¬â!Þ9Ñ0ž ‹á/3§4ÁáŒÏVLîa1$>K6ð81º‹ 2ƒëïJ·”Õ'Á$[äPá¬ÀÇyÉÆçPësžþ Ƥ[Ö~5WOÞ¥OW¨hÌýu‰ñÄ·§áZQÝy¾œq³´;<ÆCÿÚ×cÕ”ác[Íö÷Æ'ŸT‰Ö¿‚]SÛpTÔ+•˜Aô5Z-l÷ c麠)žùÇ™*úk|í¾ìæ5ðõȤÓÞÀOÄ:Ö¡=§±I€Ö™Kå–,¦à܉}Е†#%^\Ã'¿šË­7‘eR|õ’Ogh4Eãéâo-Ð=!×A£Æ§Ÿ³ãƧ’IÓ-’߃*œü޶à3Ê™§û !!5€¿NªU~² ˆRIФ¨Ç L4°x¨þ h£ GËÌA®J+÷,‹—W$ÃsPc €4÷ˆ€‡=Šen*$d’?hÌÆx¾GF]î–Q¸b> ÊM®š%-$LiO­Kdý„0ÁÈ žªó'ýQŽÈy‚±hC*= ýöHKLþu|Ê[îëæŒz „7#Fô§kwܶ]~‰6áÓ]QHNÔÏú«AÁ!=LCÚÖM`Þ?)H&;€€ (¼ÝùH¥3ÏíÔîù¸°eÝëYôDÇ~º’‚õ𝫉WøùªAH! YéGEEŠ› »*˜)wþj.3±»­D¨$êQÖwï¶{,ŒžÉæ¹{åôsÖIÂÉ`ß‹½<ϤwûõŽ æjL­¶š¹Ò×̧ó€Æì­)‰ÈM&läØÁ¯6³ìxˆöÐŽ’ÃOŽg™k75ŸÍ³¸Z>Å{Št¢vP’Yá=\òůH›ƒ©¡T_;;_­ fdõ¢÷J(1¨âŶyªãÑ™¶œ}ÝzY®YKÈ÷BÃI[[ï0ÔX*ܦ‰LÏUFÉû„ëýþƒDˆïlV¢×]?„Q¸FzÆ¢Óáë°â"Ðç‘ÎD”G5”|°{’•Qk¿“SctåXhz0‰ J­aô`¶3ÃGbàÝÑ~¦`¾&BN†Î•ƒé®¸Ü¯K²¯ãL1=ÁP9U`¦¿2­[„öù$Ýrw[¦k²=È#K|øxÊÞÓÅ}†•!Ï&2øÜ øÓ2¾â”ó7*¤§é…¼[%Œh"Ñ1."Ü÷,Ðy[@ûb0ß[Á'CÔ ‘ú[ˆÕ†KoBÈÍ€ßJX ÅæhìlÜÁtH¿3¼ªAÊ|rwïÚ¡{o 2ízE§S¥ÔyÉt*ÔÜá¸ëómF»H›IÃ¥yKBïú‚¿³‚#ÉÒE™ê¹þy;ŠBVÂóÉåt.ÿðT»Þ´ªh§N•·ï ,Kä#È‘;³¦ë¤4®a×`o7þáܿЅíÅ(Þçj€’&~‚ö9TäûIõÍaKŽ­ªâŒOhôBf¿ï™>q‰h)Œ·'0ÅuÔ¬pšm£jÌH>xgE¸òw«@ ‡O³ª¥k©jçÏ¢QDŒªv÷³ª7låüØ#ä#ᘩOé"5Hó¢Ñ3±VÞû¥Y¥ô°ÁùŽ’á­óW™Õ©ß™•ðeÈxm:ÛÐД½àH·áñtîù°‰×sŒÅOÔççãš½åýb»œØ{`þrWåѱByå:Ý%H<¢bÒlÔ¯|ìH£û'v7iRWÐ5›kX òÁ€¯—wIú¥†\J¬XjY×^¼“ o›òs {‡§ð¶WÇU¢üì窰{ j>=`ÌQ2 0BWZkÉ7`ÈÓ;gã”É~žèƒ'dsQîÁZUĬùi›ŽX¸F$¡—³X<4n`Db‰Û5öÎãƒsŸê$ë΃)²ØQÐNÕ.v¦CÞ§åÿúnì5dÊvÑ{ùy–j8lOdnRq¿°öM0NßüúP_ä­@¯Àœ[¥æ:þ6éÃ%ˆc²ƒÿ–£P…‚©øÛI>‘{ƒkeGÞŸ{βjl¿§YŒÒÂÑXÙRT°Gõ9Р‹–ûeáJœw‘³YhÄÌÊlšÚI,ýC*8T 4Þ\²”Õ¬cæzöÙùîŽ}DBCDªi:íédásu#„}‡§ùjÌ_3vÌá&²Ž,$‚RÅáUƒx3? £þÛ0—Ò«–¸áâû‘“ü®;ëÏÕ p@Üo»A ‡ìË\q~ï2JYªÏÕé•,ð§UA3j GøêJa|s¦”¶,ÕìÕL£Èž $|Êà÷VÑ”ÀêFªÓ}¸^±TÈ\B‚rEò]¼ŽËš>”eg<Ÿ©þ¡Ÿ6Z@kê,·¨‘aT£zè1½²­½Eé <ùSH°·×´Íà xÐjs§¸RñUØÃId ÍK³8z¬'|ð-†á{WâVL9½tú‰6ÃS!¬­ú2ᘠ“S±ÇÀ~š3üÚTÖGЬҴ ó†à£¸ëå]„á[[‘"Œ.È1¢ñ‘¸]žì‡ñ’pû¼+u*ÝÞYÑ /Õò!ŒM•¾I}E¤EZc¬1/2Ç4K¡¯fn·@VSªî£>-^ÕÝaM[‚{˜ß2ë´üF߀rT'GáÌìí¿¾´Ù:ø-«ËÀ”öíHr„.-ÌP/ù©EA|¶V|Dè!-­$µ-Éû[>·AYI$~cuÿVñô?ÛÝ  d.P¦z£Dp}D`A5ä‰zz?Bx¥8O/M~;;­E%UëK÷¡ÜEHƒòX#F’U,Iƒv\3Àbþmå-Òkæ")¦½£7n‡‹3I*¥°ÇÆ=Q6\ºùE÷Ú;èo$TÿôÔDTqßÊB_:nìcÍëÒ ñû”]N4#ËÅmîÿ®–­j7¶¨Cˉu΄R®Kc_&‘-cð›3rÀxÑ–‰Åv¤hC5pcÝ­¤ÃÒÚbìÏÆ‡ÓÌ,Õ8;Ö9ÀÄ ÿÁúôÑñn‹îˆÜ~>Ÿyäi(wý¢)ÞPH¸ÌX¦ ɘ`m™nDÖ)Ïçž,|UçZÈg/ÕºýøÙšU٧תûIš…²å){ûúçbÙn´5³iCáÝ,&êG‹ùébŽ@Ô)á«d±™îSs§›~ñŽÞ”l…ëIùЇ5o NãÄ cË6E«^]Áã|>å >5žhó¾UNÈ?fÖHïÅøÎÄ´Ì&~G{eàí´„Lœùë$"¤¤ 9à¨\¹3¹ódRiL‡#؃ûLtÈÄó½…´Ad©"¨O‘œjÄ»(²da~O7²Tѳ¦Ã c²óûð[¾¸AfÆÚ]\v¢¦£+kóMÇî*k ŠûÚƒ§"ovÍ>i˜8Â.ÁQZB¶Æ¤ÔðÏýsô]Ù?)‹d1’ÛW܆)¨äld!™]WÍ[ïu¥Är²„ã>À!fA9û·bÔÍ2úâVŸ+O”Kâö>œ)£no&g/¡ÊM„Òës²+5ñ^m‰?çɳ0\¯mžM½³9ëæÕû:jà¤Dqg• °aHL1̬±üFÊ?aÖŸ™ u(ˆ†S¢}!ÐbsŸºˆ.®W$J-t©ðfAÃk„˜á,•Ç$¶@ÔÚí»)ØjðÀj .†`EHÎ2‚󕛟ÄÞHsE_§uú„yá7½v-,áõ÷ËÝô¡4ðouñI"¬­£©<9»nš™á±¯sÕÙyèË—Ÿ8\3}KP˜ðí‚„ÞôϤµÎ¸Y˘B2_X©‰õJNÐû%§½šÑ¿Ès•”4h¨åÄ“1¼ÆŸ„½ÌKÄ25À7’ç€eÅN'ý\y°LX•tš9¿`³r@‘¢È#º½‡f´¨išÈM5éè#7šb=™‹]0ý x˜DUb %¿\ ¿$Í^žtÔø†9¿ý8¥ÑäuoüLS„\5ªcÓŸ ÷OiˆF õ¥R2ƒ:¾üµøkHúî¿8ÁNéH; <dg`%"U‚ÉI?Õ™³…¸~F'–FZ»jœt¦]gÝœ:fqCáNÍ<"qa‹8ø|Á¾Ä™?*¦c°5UÔ‘Å®ÿx$Rƒó3¿}Ò‹â=éo™œWÉ‚<™<ж}>èÑu4 ’°¹¡CjJ]Íll;×Lû‰Ü8”@´š@úŠöÚ©9}NÃÍ]WD€”Z`{JU?;º1<ªb¿uOeíúšIù{%ë^í-e£³´\Ù×åµEk“¨©ÞºŠúM´ñ`@ †Uê¡¢eK5"ݵ3óÀÿGeþ­è;­Né*ô8ÖsPû°2µV‰aN¡TH¦<óuŸ¡Øa’ì7ÒtñUß RÏG†Ÿ5®\J¡Yí€$hÂgˆ*7tQåUä«ß–#²’)9ÏòòL<ÁePãv±ÅN1&É©T EÁðòÕSãÐôåuË{%¶ÔUGE»fë«L…~—hÏY,¤&1[çIhi ½, Úùä·š[ÉßQI> *LúÓx`Á›sþ¸-ûUæàt“×ÂÙfOÛΠíÞ Øwôr*Ñ Pš”2–¨]Õ…þ㉅‡wcÿÍ|ÀÉܵöv¨¼ú«þJ.~•uU‰©Éñ$“+.ð`è¼w³d‡VŠ™òKÆ2¯Ã¾õ±´ùv'á}ŠÍÔÖáX4ì­îù ²”r$“8Ç­w\8!ä3trH«Š»t¡Ik¢Vä©¶#ˤúÅùVtæÁFÛhù¥áüúC‹,i ,k}v/=ÍÍi(ð:Úœcî•€`t6ÇQo7#z>lA@¾½lÎ&¹ãtïÆNJ¡„"Ãr&NþR“eŒ¶š]9r?ZVå´°ib¥ ŠG…ˆ9B‡D±]„ ¹SĚà ‡6w ‰·¨QdùIìhÓÁ‚úFëµ·)î".Im_åÖôîÐÃlx«ú¶›CmÏ‹,°ÏýIAÑ5\Ôr >Ù•ìj‘ òpQ‰÷tM(¼µèODu©! ƒÙ37ëÀz‰w·[)p)ˆ7 ƒâWt7·ùî!þ¨¶Üã+<À»@«RÚÝ/ä@îÆJʈØdbÆé—º7léøÁÃá@ÞÖ‚qŠ€šiêãŠzÏUðÏŠð!¸&¬llL»–¨¼Ê«(ù š¹, ´‚4~Ej²lèb©@L™’ßSÌ.%NŶ"«Ø§ç8ï7îÀT Àª;šO>E}¿Jéx6ÓÚ NäãHäó£v&&øba¾ËX¶sEï$•Ó­ÏaDd ‹Ðcì+iž ÃøØßJ^4Õ›vâb lÆ©-á0|óê3CWEè^¤À t¨¥úˆ,§Ì8ÇÃbçþ#Ÿû„Ý ÐãJüj9ÿ“Ñ'øž#t‰IPMÂ^´·=p^z i¸‹(:ÔÍòî=yÐQÌižK÷ïŸr—h×! _ o¿‹.˜Å»òËÚ̈ȚoþÞVµx§‹â­uÐÝÖ{í3ºžìOö"ò+©PŒ^„T×u Þ?e ½Ïü0 ªáÏ;IAÊáe”¹ï¹’£,üOFª³¥ŠîhEUØù$µâ~L©Æ·îÞ£çÑ6pøúÂÐBŠŒ†Ûà*½I}N› ‘fq‘ø)ë‘z£&þlÌ:^®›§_uiˆA †E›‘ì#Ë[˜ó¤¨—¾=Çf_Ý? G…ÌNìKDI¹¬ Y·U_Í9H\¹Òr•²~HâxîÆßùÖ6iÈçÚå#ª+®ÅKlL¼'¿&5±r(q¼~wLnÝ$³Ùo;ë8²Õû⤴RÖÿÂjaqð€íÅn]Õâ‹ÎÌä+²Wßô¹ŠÀé+IvŠH¿uŠ\ ‡U¬]šÕnBð@½ý@ДѦyƒÁŽ™D5,R`I;óx;t䢃öâf²¯µÙò§Ïê—A›’ÎGÛãš“ž]{ ZIþ£ÆQËSã—˜Æ?+S=Ú#›fUñ¸Ô9üVìõ1 Ó1‘áÿë ôÛEfzEËH`C´_+´Y¸…[AIÆL”ã[vbÙ;Ë©Zv6ÆÆ…rê×'p— ¦õë‡h€Ä‚T¡%Ö îß\.z‰óSmAz™6Ñ9‘ô%u§pÍŠa…KC¼OœÁcrg){¥²)ˆœn—|#ñ×i]yxæ £®—¿Œcî”øMKSRirµéÄ!mýÈ/ Éò{^G›&9L¬AÉÍ<Ì2€^ˆTM)ípÖ1•å‚·$ƒSzé‚”ŠŠ ¢ÝÇY­äË¢ÿu‘¤ÖÓ, w¾&ã²ÀÄÌtÅ»¢zöÃæ—ýL½ßN?óÕOånTº%TzÒX¬wÍ\cxÛè®YŸvŽk…Þ;ó1N ïýü4™ñº>ˆCÇ#›ìu¢N‰ü˜%§\øè÷Øs6[¹¸§f¾oŽû5BÀ™r5ƒ)Ì=ó€zò—Y Ȫ£?Ï¢, JwZ'ÈLŸÒ|zC4£Òü1Œ"]ó%{Vä+ º ¨:jfñ¿×‰¾ðÝhÀÈ{›ý—§ù-ž>¯Ë-Äù€üeQ ô\:бL}.¡ 쇒GÓÖ&|o½uä÷7SþÂDN>zQ6?7€Wù¶ÛHŒEnø´Ëó%“³³f¨^þq>AèuÃà’„ÁµGá5ó¼}¿ ïb«MÞËbüÀ{޽Íö?Àß÷–©÷qÞê0 †G1C4Û`[](+®-…dÚ^‹ÿ¬绥±Åq[ŠÁKŸ³ô½ ¾§´‰áùÛüû®"…ȰgèÂ̵ɥƒK0‹Þ_‚½êñi³uƒjæX¸6$I>Õ ¶Š¡‚Dà’Ø´OÒêóX9p|˜¨BP8êÖõ&"d—ö]@qcºo–’éQî! zPŠ4샱yä¡ð•xî ù8œ>ùž4‹Å™¢‚~AÒ¬;Ï;«Vøþou4ìyy 68j>¦˜ÚE¿¶ ÅÓ5ÜØKÙþÄ[½‘Bðõ½ŽYk%£wœÜШ+ŠüÇ‘zbÅ>â´ÕÝg­b±‡êÉþ–¢Lävs×ͽ•»øƒyh§ ˜^8üËØábÇe¼;8•øaâÆø@/#@K‰Çü­K˜”û‘ãL…c­cÓëx ¯v~ÁŒ*Îæ!5,üÅlØH5ØÓ—)›–3ä³Yµ½ÅC*™ü¨2 ÜF$á»<Û/±Š½\÷åN!e]òÿ<þDK•ÜÃj£0 gwÅTÇ%G¬%Î!«Ób’ÈXZb†È•):<4ÊûºA¥¯]^2Vlî˾>Üâ„«@ðž*‡Ó|þqe}õæÙ³Û×Ýb7™ÝÒ-²‘Xl½à$¢âx…£G'°cÁüæØQaÆÕV3XøEGâÚi#"€¹¸(ôÍV7yËúû^x2#V¹6GËÐ(ׄzFZì³9 4?Áˆn( ”lWª4Ë¿µwÃÓY½%À´‘€½Ç'8FsÈJŽ-åð•v¢AÓ2ü<7;2:~†Mjøq튜§hbWk’OJ6DOÒ<Ú‹N5¾Æ]*SÄê#oí‰%há 嵤ZÕö™Zâžu~tB¨ÀÿM¥{õôÜ LH’xf3Ë©7©‰Õ—j'n8ÛëÃ^õçWO‚±½#*LÃ%².¦Ù[úIIÍ!(õŸg>«TDÚÞ¼ú`Þ8#×üÓ\:/Ú?àÄøSËò€YGˆðêg29#MZòœK4ƒE=“/›ŽVà®ñwSÔ•m¼‹ ÜIV©÷k=ÅÄÚ %Ǽ¡Js´*Ò/(N — &^A0(@%%%d¾0@C]2' Âp,Å¥‡T¿ƒìv”\ŽíÊ:5ã¾]‡6˜¶§‚-*ö´k Vœðt‚æÂ$ä5PmH®ë¤J©ýGï@f2Cœ7S3ì$BÆV3ãÉéä&=7YI§«Wd´5D½«ay©Œ}z;³Fò -ÉÛÈŽ‰ï÷µő˕cêxöVJƒp&Ò…ž¸·Ð55‡sTD%=ùñ jÐÂÍ“€×—JÊÞYqÆÿ›DDôe¤Ÿ^ P½™1XbC +1R[™XeÝÒuýÁ€ÉÐ8ËHqž·›Mó¶{+„@tžk‹°ßȉ™À\™›øU°fFµª@‰>ã ò§¾âR÷,šÙ14&ÎÂúK-ûàGGÖþ®)±í¤¾ÂÑÃù'. º±°¨é€ ‘0A¤N!½®ýIñ“úpý_ªkk¾å‘LÊs’‡²Ïû÷­‹4î Ÿs´£;œ“x¦|Üo†ˆß@(ÚMÆÑ=wÞ—jNè‚ « Ãá4Eö•æ¢ê€ð`<Þ9×¶óâNVHÄ™«w) íP\Ý,ýôû+qB[ío&Œƒ!Ôø§Ó´÷Nf_#ëw~’ g¾7ðœçö9Ȳ|ßµ°áå6p¥_ɯWžEòz!ÈŽu©—þˆ[øt;ç÷/ÂRE\m™•¨µ#æÞn@â23áûm$aŸ×1Q¡´y~Fe5’d þ³§Yþ& ÛoŒ$þçÝBb¢2PMÁPF~dZÏë}qúæajÔÖEeK¶qt72'ñÚáCe—öŠ‘âʼz®oCyÒʨ³j!±à{1…iÁ÷÷s¬¼¨ªÕ(u:Ž úoÆênGQ}õ%úÉE%+z=‚ â§ß°·seÈÍý¬]ú¨Mÿé ØäöL?³U(_ÃH¶‘…šòGô¨¾ò­(§C¿`¾BÑ.Šº¦oÅž`ÊZM(Û¹6­ò=våiû?náU£-ItU±›Åí‚ƼÚ˼ÁU_ôYÒZ3³S.˜Ò!U@çï2¹ÎÂàtj:§kºÏ endstream endobj 120 0 obj << /Type /FontDescriptor /FontName /RNAFHO+URWPalladioL-Bold /Flags 4 /FontBBox [-152 -301 1000 935] /Ascent 708 /CapHeight 672 /Descent -266 /ItalicAngle 0 /StemV 123 /XHeight 471 /CharSet (/A/B/C/D/H/I/L/M/N/O/P/R/S/T/U/a/b/c/colon/d/e/eight/equal/f/fi/five/four/g/h/i/j/l/m/n/nine/o/one/p/period/plus/q/r/s/seven/six/t/three/two/u/v/x/y/z/zero) /FontFile 119 0 R >> endobj 121 0 obj << /Length1 1630 /Length2 6493 /Length3 0 /Length 7300 /Filter /FlateDecode >> stream xÚ­VeX”í¶FBJJ†îî–nDÎaf€af†é”î–Ai¤I) )Iú½÷¹¾³³Ì\ï³îµîu¯xŸëeg60âW#ì!ê8š_X@H`lhj„Á€`(B—_k¡0À-$NÀή‚„ÑP\ˆ†ÈL!`€*KKK°Tn>H¨£ÀuËÃÍËË÷/Ëo€½Ï?ÛHÔà¸}ð„Àn®8ú–âÿhÐN€¨<20×Ò×piè4 pò¶{Ð…‚ p„à€@`  ý]Jà–K Pnô6 â ‚¸ý†øn¤+…º}@QG$޾í€ÂA0ðo·vÄAnHÄ­‡ë-vKf€@¡Q $Ô ¸Íj ªþ—N´ý;7 z ·ž`ÈãwI°[š[ „ÂQ4Äý;—=†¢Ü`@ŸÛÜ·dnHè((Üñ_ øHˆ# †AP¨[š[îßÝùW€ÿQ=ÐÍ æó'ñÇ럠hæ @ ,r›„¾Íí…þ^-¸ ,ô—ìáöÌ‚üÓ ®ß;Ã}+FÀa>0Ä@P¾M àú¿MYà?7äÿÀˆÿ#þŒ÷ÿ7Ü¿Ïè¼Äÿß÷ùïÔê0˜>Ðò'ð{  ø}Ñ~ß4PÐÿŠºBa>ÿ.ê¿¤þ&û;ö·Üñv&üÒÒY¡(u¨7lEƒœ@Øm·þØá`…Cn§ú§¡~a!¡¿aOœ  øïö‹ÿAàà¿k¿Ô傿k¨›óþûÛõ¯Áí Ÿø¸AÿÈTþçá7“²2ÂàÇ/,)ཕ#,$) ø7Yÿ ÿë¬D#¡ÞK!!!aÀíÿ?~ÿ:YÿF B€ïß®Ú? ¿ay;á?oÿmáÿ8ÿYzÄ"˜F€dÜӳ2ÐuÔyýê–=]ÂXýáne¯žÕ :Ÿ¦G-KWÚýª h•¹nõù´ívõU›g}°‹ ÆÙ™ ù^𠀕»»l‘ã­$ïzˆ MQÆŽé3¿ý)Ý%l !“õ•ádž6¥¿î2Œ¾EâíŸq±zQ°º‚Ò(ÛH1î×mïp$or¾èïë<ÄéþJÏ››€Ï. ¤|±Íœ‚ö±CþxºÆ¹ô”DÕ4$âöž<ØuAa÷Z! µP†v ±$öm²K»r˜©ŸUøÌÁú‡¬x¶H8ùá#á¼#ÁêÄžß÷7Ô@W‘‹D£–³tõþ'—ìðzŽî:ªH¾âI—팴U8æ¢Pægm} –ýøQƒÙ^²sjscô͆ šu–¼kúý\«ßïñN\ƒŽå[iªóݦ|†z  JÎ5—y%„†T>ݣ͕ñ‡žÍ]Nœ–"¨¤ M}b7ÏîD²Ê:ïê´;¹&•ý÷žDîç8Ì@R™Îèw<ç……rÄÚ¾>´`Høžw2ÉGø“è(J=âœ<$üƒí>¼M†í@p½oÌjénÃ7^®FO¿ºù7¥‡hKâ¹Á#í6idab•χ‚/U´p›4<Ž[O:³§tµ,^Ï..®ZõáåBðë>»ì ±Á-ˆÇðÍËZ\NVÊŽt¼˜Q§%v&YžŠK…ï:-k7GË·Ÿê!9²¿‘&¯E<µ5ÒÅ,XÁÚ3¿iÍzBJèn*ÝSÑ,à»ê”4ÙeoÞuÚi¡Up‡9mª*ç6øKWÕ¡Ñ’ByÕóŠÜ«.B¦s‹)ø¯E»ÔR‡ÄîZ´¡¨­¸K+3°âZ4ºÊJó¼G=ìxÛ®Rqûž×ââY²"Îó7“Ù·)b'4µ7ý>ïË‘ÕW³ÂÆt—¨vðâ%Ú“¡õãOò›Wµî›ÌO¥qU*Å{¯Ud¿Õ8j6˜{K|÷Ëûà'£Ûå®^ÙîÉgÃù‰.c=UsÚ$­5 5(çÛû7YÒ9õµ:/KÜŒ1Olt?"ñª£\‡z&A¬‘î¾õö0”È7.òÊEâûCqF¸‚h&rQ}?ØêBµVrØB¥ö²zñÍ–Û›³î&ž»¾Q:»`HI°fš”À2¥á¢ý TaþB˜PÚÞc´ÅÂ0¯·1¥øwë^ß,’˜MVÒ±ñÐ-ݕ΄ГZ€ZFÚ«#%¯J‘Cñé¢Üߊ£Ëe^ôEž` FÂ&GmÀô÷UÑ]‰@•¶»·íDèi2‰Ù||4­_à "ùBƒ¥9ûY«”P'ˆi÷Ó×…°ÕšY.#“¢VwJtœÇNvx?É6g/­ö4~E¸¯“ê,Ø?“Z.«‡Û&G°Ï˜«ÛO€ßñ²TŸ(¬­Ãx=@ì' Ÿˆ¯ÀrT”0Y³¾½mþˆ²f½Eîü›WêNÍ ˜L³¤ú9û»?‘è:ûåñ™kiNRaI,[Úq;—²HßùÍ9[æK òy¯*„Ë0s{b'¬Ê Øø‰ŒU–¾~\˜1f÷gbûzµTr|§Ú&.í2Ï‘Þ.Z€Ž„@ó+†ôGÈ !yÑOÑ/šDƒ#tj±ê2„8£ÞéµÒ‘`ŒóªÈbL+uÈJö /ÍðzjøÖiw0wÇ´B¾ãÜ‘®ª÷‘‚nìSÜÊmúšæ² ß­Qš›S^Ò`>¸š`¾àæúUð+Ó ™o3‚zµø* ò[Çú$ZÇ.óK}5Ú±¤0• «ä$ë¼wÌÚ±SùUóD‰kîÛT<5÷DCˆ¢ÒAÄ¢Cg#$¡ÀЧ.Av=6A„{3ÊùŠñ'ª|Ü$•Å&ä4ˆ´šõ¸œ_^ä‘DôëyÕQµ18“n÷+7®[V$uP n±Ê¶¦”¹ ´Ëäbj`îǨ|¯²Ó, ¦û,â¼ÂPbÄï¶Ä¹;~Žc‚{l AÄ^—¥îÓR“¢%ôG|ÁúiQ¯º¹m_aRáöä¥Tá4õ©¹j*ÈqÑ<wi©Ñz`V¿×cW[|t>-ë‘9Ī]±9Ù¼F>¬=@ -ñÎ@<ôe¬L!'¼Ìg]¥óÌ`ú‰¨CrÑàŽÑþwvUÊÄGŽ%‚)IZCìöƒ¥D3Y<½µïseæ/u~ó% ¢sþ3ÞR!›Ã,ÞÊSËš1fþ¥„I9’än(¤sNg¨ëŸ6Èn×þªv=<ñRŸJ¹Ž¡Ø™âa˜kÝúðé"ü_ßÞ~­"˜µy³®Àµ×àøLA¬‘¼óÃÕðýœ)_1É|ν7™ç¨…Àžu]Lë–ʘÝÏ´#³BðU«¯ªûŒ=6Ò‰~Ö Àè¢0,1)ÊyY} “s,M>ÎOˆá NK\x]ŠlCKýÑwÖᑉ8Dœ%pÑ:JÀQ'&céeGpm1[ž¦½<¶q#Tæ©û#û¼ËŸGŽdŒÀ!F"¡á‚þ£I¬ý´ä9µÈºA)y倢]knßzR•„Ì—£sQî+næCÂþÝ#üË|¡ÙR/G~ÍRàœ%DíÍ÷>Äö­”©›ðvØÜˆ>,¨U#7NPoSú*È( (Hs*Oä×K°-œ,ùç–³o,R@e6ý‹øâŠ~–ºFS· °:Ï53 kž C’6¿?ò²µV/Íy É,„’³|­b8ÃÖœÅ?JQÞom€ûmµdH5£©Ð#>Aq ¬208FþÀÐåœ\_̤’E÷Î ’òïÔ“ótœw¯;"lw-Æîy嬅íÔ(°•[cH^?ß®ÀìÅif>g&Ž>ä{vÞæ–⇠¹3Ç ð§^bµŒmÜ 'Ѫv¯c¾óeDÂ/ml±P’$u‘f33(¼(©©¸ÊTD"¥µ§ý¥Hñ×WL­Þà©‘f቟Ãùø6Ä{¯_ß+ábÅ2¼‰WJaèôªÞ¿'«ƒÁ¸'’wÐ Iåœ$ ¬YÎô«Äù i£LìÙs°ÙÐã=xºÆRqÊúdðü‰EêëÐyýÒ1u¸‡“^Ûs•V£‰]“HØí7k™²^šÀ‹†!zcU„„&vÒ¥) ÉôôKæiAø˜‚Ÿ¸fȯÜÈî¾XÙ¦ÛEà  èšáû¼7âÝòãgªåf 4ž¤vÖØP˜·µ¿§Ð€ü  ºa{Ô­F 8ï|ïU幉ÃØMÛg£èì–óÀO­Žú´aݸƒWIá ½ƒ>5®Ê˜²ËËŽýF¢Ó£W°°—Úe[Ú®‘eRC0Ñ*Àå¼8Nï3îy ¡×ü¤Ì¹£ÉŸî*Dnœ™æ‰TwZK6§m÷X6Rí³ä…š]õ‡»œÕÖ™Rô€Zx]zS`3ÆÅˆ8ßidSh_õêðâ¿èòsÂ1ÔveãÊ;h"øQubawÿ¸ãMŽËµ ÇÏMUabÁêîëoÒJ©Ì±°Ê©-Sœí$åÉÞÔÃ-´°¤£——¾áV‰®,Qæ[b-Φ)òBÒ …«ë± C[ì‘O\ªMÛ8ØS‡+ÞÎl}Æî”jÇw±f©%+fƒ’ÞÇ”8hï° 9ÓÉû26qm2—óͧ~äý¼¼Û4dÞfÆHñÝžžu$šM­Èû:Å£8~Xûhï\íð@nU¼Íã”4Ò=¤¿uàS!“§eÎrÅIãN Àºå{ϧqÀ¦MtÄ}}Y«¹„ïuÙòv£äô™ÛÆß £žÆÕÉ»]l$”QÝ!QÝ+Þ¸Ëg"/¼yÙêñUhäð#bßïU?‡«Fñi¢ÿå‡`/´Íâ~–3‡ô\€W!Ö'ùÁ¦r3SkF:?R¢ë4v‚›‡Qà‹X+Ü-,Ÿ(ÿ:ý쥆á„vZ0“F¾­Ö{ÈrÑ7ñ ¡Û©…®ç ,4J`Æö'’ÎöCQÕ&O€Þc{n5 C‹÷°TmF¼áõØÙÃô–$kÛmö3‹Ñjq‡ÇSGwû[~Ù$Íe÷¦m+6.el,h}cJŠX! ŸŽKä6&õjö”D–;téi~V4¿ÃªxyâAȯJ›È0н QŠåð$œöÃT\§ITíñ“¨Ew¦¯lwwž è‰=\)¯«ê^¨~íвÍìZ®¨Ý¶J´í烰;ã§ÚðDMt;Uj^Ò^Pvžì-;šÇÓ'äof;\§=ö•ZB˜9¿ªÑv$ÖjtPß"Þ¯r–múø)Íûš€ÿR¸µ4j¬xÏœC±@ÿA&'½™õ)‚¥V¿Ï$Ô]‹ýáˆHƒÞŸ%Úl÷¸ûdWU€Bš^:nŽÕÒ·^f/^Ežúàà!8yÈa±à¦UËë.¶Î˜Oì&0Çê§ï§INl>w竳Ouå ÖÀb÷o˜* ?š’ò´¿4E ì äƒúw Ò¯`¢T©—{ëGÑr|…+Å^ŽH—O& ßI/(“^Šôc>+§Ñ÷³.ßûùT* ™÷}Étd|| h£H)¿b.Àž½[G¨Õ¸bv” Ìeõ?b\+0Ó4›^K¬ËÙGš hу =l2 –P3uç}‹ø‚ùfƒ,4œcý–´†–ŸdSg“É’ežNÛa(1ÚŠÎØRbmœŠû¼oÄÆôq»RyÅ?í>và@_¯¹[C3.])¤°Êâú—4«è3Ê.ýEè=õžþäèã,©ÇjRFNÔÒq]BËœ·0>¿ð/ùÑ1:Ÿ;2r¡ë¦ No _Hk‰gX­h9Óÿä‘F8\lLÃÁ7ñC›»r–Ygàx|Í­^”(˜©ÌY„ROzôúÛþ6å‹Gwæiǘ}9mÉó¨8qzg?ÄF#•}5F!}¦Ï«—2—jÜ&\߇:0mm]‰ReU?+ɧ1–M17Ëš¬¨éüNâϰ¬•r÷MtXbêu.–ø©%Žr «¡RÀ Ÿ(}˜€l6ÏÈЛzfY@ÝN'ï»üµ€Õ¥ÿ|ë¤Z™žY¥yÇöNý×,7ÚŽ¿,­XxÛX¬VCðPÎéÉ‹Ã婺@žšü‰ô‘Ä©«V¸òDTߦ@šyÃÝ,oÚ46;UÂútu{Ç^è Lo\o©|"Sz}hw,;ëQÖšCœY¢Å¥ƒ¢l×÷qô,֥ČPN)_²ÿ]× Öªx]Á¥Éć—Y“\s¼›øJÃ^ß3"—‹í͵’ó\Xó©evî^¹%Ù i¹Ñ>‚ÇaŽ· -ʹ|û k{ßËêF)I})·_•?c´Z˜bë]CvveÍÈ?‡âÙ÷ (~Ä–äR„ˆ+éÔO òN£seÊÖ£„i.ùWѨðç“Ç[Î6³y¬eYGÝõ/Ï}dx¹A\¨«&ññ[ü&`QpJž–?÷~,N¶ÜÙÝÞVöüeÆDöûi<»†û®kžFššxtìÁæ_9}‹6V™OÇ:Î2p ©+H ØÄ+*¬Ä°ÃÔÅÙ~ýÌU9ì=N‹:µ)™ØæJ_4н¬s¨ÿ€•=‹öÂèÊf6¸ÉSNMÁC^«å½Òÿ²@Ù¡BBŸþv³ÃÁ«c…ÛÞ ÂÄ %HQKUs½ë˜ËÐ ºNà¶7W'Ê–Å­Yº—±«ˆécqó)FËoÛ{eXFq¥Øs­8Ú Ý»i½½¥ÎÛ×?+†HJÛÚIÐ`‰6ϱРñ¶yX*üíx—ëŠås¬ï|*k¯»½[5I•8 yí’YdÀAúê«ñ«ê’è/K½IÑZ‡¹ßïvç¯wPçÊã_¤¹«Z£.Zd|É$^ŽFjø<$œ¡¥ÅŽàúØH5è/ŒœÍi¾(u¿ÓšÊ¯^úÑ»ûyOÞ…3ä~¹ðøÎœvÊ—î+¡¨²¼ž$ë]û‘IpØ0~¦ùðcŽ Û—¦½£,V$sþ„“’ŒùÏ,ÖãU9dI`…f?ä’†ª~/ûz^b?QCé0·Í6H’;ºœÌtw ‰›§>ŸyëødÔ{W´øÓȵôî¢Vå/Ø÷íô€“ µÅCöŸIÖîGÔeÚ„=#Ý~ô9wŒ:qñf=(?Àï÷”çð«ÃÑ”S.õ?q "ÄòdÔ1\0 ibýÒ1±nêŸ+iê,lZîÌN7:¿}Œ}CØÂäì{òŽÄßË©Ô/‚Á¶'ê)•xÅGΠZsëùËŽæî‹òÓ·û®ž¡Ÿù÷«6Ñʳk:"Áý2aoJ]È}B›Î— ù†ˆ=r„š}ØïVniwŒtà 3 N’*.#K&Ä1Ž5îqƼSÈs‰ðÎ"þxcm{Õ2TÇ‘J¹ÃÀE¤PeOÞÓØÕ/ù›ÔÃ3µ÷PØZÑ¶à°æ›ÒgúÏš¢”ÏÒx‡R9§ä­Êr÷åµÐõмȅ·ØÌþö ¾pæJ—„A‹§¬ ÂPÈA^̬áJ*51½±ž™h¨ÍuÉÉÒU٨ņœ¥Ë惊©®ÝBãòpF`Aà‰Ü{Uìd~r”DéûÝyk`Zzб¨$F‰ó=Jd+“'PäH*ɸN‹ÔäG]"wŠ©6Jvmi·éc¡/˪IÔ<0Mű.™¢ýYn ï’‚ŠÆ Éu™üôçõÄÅñ9Ûß<¥ò…r_Î)‚¿‘ÖG¢ÉË-d‹_Ñs/TnYFÚÔ~ÅÇ6Ö\…¤™í¥Þ í{·¾X›Aþ<¹eè-ã¶‘h—˜Õ ”©œ·Ÿ×ØóR#ˆW"gÞ{í‰ÉÂd¬)E-ÀNÖ¤<Ø÷çFjr§¥žgï d×Âávy×>›ÙR‡ï@m–››¹ÎbsL Cý E„ð´Âxɺù ÎK 3JÒWÜu×ùÔ‘éJc0P3áýî2SžGì`óäÕà¦^7ëxVQ¸GA˜IJS…È¡‹R¨r@ò ÞŒ hâðC’")OyÐ,ûè®U–ÉNùZº• íGÜLI!™Å)ê údÚE#™ÜG’6¾}_fqͳ4$«ý„Ÿ ɨ¾³ýu-%µHô™a‘<›mÕþ¡G)![ﮞcÕ?Ó’{e¸74SXë,½'7X6©¡8Ê”z¹¢×¿ÿÄqÑ›ÛV¦Ê3<ëµõPéÂéʉÇnŽÌ#¾NÂäTHx`{JAÝ>IÉ}ùÒÈsìDZ¾–!æóûZ#n> ýþ]ƒ!¶p¹,. ßî3z†U‚æ&JǑƹÒé뱆„ÀäÇ…µñè“6†Œ’Ù;¨éqíó•¾™ÙÊöÛFIâ©¢04"3{‘<„cí­‰Œ˜Šò8¹÷æQÓ»RW¬”5«ãïÔ¿Ê PX‹§ñ+6g-òÄa%uS9?T32Ši¡Rëfº!~fL³ ½(×jŸI}ÉЙð=2ç ˆ©-†øÍTWú`óT=αÐ~ÈF‚E…T5Ò˜=±®ð±<=@‘ÁÂo,ßà,,Ê‚/ ÒÓ=ÁšøSžÀ=˜¾{FNá!ÙKëœ_‹;Üçm×-æÚ'tï$©_Ò.£»IÃÛ™:q™‘Ç(c±ØŒ¸zò%ÞjB†)L²¨æC¥±¶ÿ*'³| endstream endobj 122 0 obj << /Type /FontDescriptor /FontName /YQQGFY+URWPalladioL-BoldItal /Flags 4 /FontBBox [-170 -300 1073 935] /Ascent 728 /CapHeight 669 /Descent -256 /ItalicAngle -9 /StemV 114 /XHeight 469 /CharSet (/I/O/P/T/i/s) /FontFile 121 0 R >> endobj 123 0 obj << /Length1 1616 /Length2 22753 /Length3 0 /Length 23591 /Filter /FlateDecode >> stream xÚ¬·ct¥m°&wlsǶݱmsÇV'³cÛfǶmÛ¶;N¾~ß3gά3ók¾ù±×z¯ºª®ª{­MN¬¨B/djo ··s¡gf`â¨)k(ÙØ™ZÚËÒ+ÛÛþšÙaÉÉEœ€F.–öv¢F.@€Ð 4°°˜¹¹¹aÉ"öN–æ.ª¿Ô´´tÿeù'`ìñŸž¿7-Íí?Ü€6ö¶@;—¿ÿ×U€@€‹`fiˆ((jIÉK¨$äÕ@; “‘ @ÑÕØÆÒ ki´sRÌì6ÿq˜ØÛ™ZþSš3Ã_,!g€ÀÙhbù÷ÐÝèð‹àt²µtvþû °t˜;Ù¹üí‹=ÀÒÎÄÆÕôíföÿrp²ÿaû×÷LÑÞÙÅÙÄÉÒÁð7«¢¨øðt±0rù'·³å_7ÀÞìo¤©½‰ë?%ýëû ó×ëbdiç pº»ü“Ë0µtv°1òø›û/˜ƒ“å¿4\-íÌÿ‹À hnädjtvþ óûŸîüW€ÿ¥z#oÛÿõ?9Xº8mÌ`™Yþæ4qù›ÛÜÒ–ñŸQ‘²3³03ý‡ÝÔÕá?}n@§DõÏÌPÿ%adjogã0šÁ2ÊÛ»üM  ú¿S™áÿÈÿ$þ"ðÿyÿÿ‰ûß5ú_–øÿï>ÿwhqWy#[à¿—ÿùÆdÿ<2vÿ[´‘­¥Çÿ)þ¿GjÿƒäÿFÊÅèo+„ìÌÿÊÁÄÀôFKgqKw ©¢¥‹‰ÀÌÈæoŸþµ«Ù™l,í€õü·•zf&¦ÿæSµ°4±¶û§ñìÿáÚ™þwî%ú—9£ºŠ’–íÿþ¦þ§øW{U‡¿ÔþG)rö¦ÿóðа°½;À“ž™ƒ@ÏÂÅúwåX˜Ül¬Þÿ‡Œÿ1ÿ×YÎÈÅÉÒ ó·l&æ‹ÿ¿ÿ:éý71;{Ó¦EÅÅÈÎôï€ýOÃ?nW'§¿ºþ»ó‹þÏ󿣺M`W—ìMxƒ¬R3Ò\j°r†&Duúz˜Á‡‚JêU óýªì»}SCw¸+ ß«ƒ¦x>[=Ï>¤iGz0m(»“WyøÞ¤Ô½ù(›휴‡Œú%iç‘ž× ²ÛÚLꇻJÊúÅïPSí¬NÐ×OÔ~¤nù~èd}LRêb0:@Pk ÎÎ)NžþPŒ vßBöàÑfÇÀóaù$'ºx:=Ô›|B¾º±Ç>Ç1vh”µ¦ý¼Šª#5ßö2ßù;޳¥¢R#ÝÁª,!o×KI8“K5÷·gŒõ]IÂ(syp8ù³v2ΕsàyhþÅ×5gÛ0?¸$YŸÅTÞÌiÆI¢hÄyOíÍÝ׊9¼.¬ :›'tA˜¸ÇHªÍ ×NéQ ÄÒ(^ po¦3„M©j#ÿˆìÌׯ…v$['JŸS©›†ëÂk†Tê3Õ¬qMW§›‰')'7ˆÝC`üA\œô…aµ­šøfôRÙ±‰(}ü=h/HÑQ§›ÏŠFØìέ®‹æ§-¢ùeÁœžô÷t:R(§BÒ5+;ÕKd·Çæ9ŸØúëÐÆJm©33@3túáÚÉ ó” ‰&fÞ>}¯ÇÝÑ¿eóÆ“àÚžy…¹ÂOò‹ª÷à) ²³9t?v:y!?*IçàÀí.íWg'¾eÒ5ömv‹ˆ 4’Ô½«éRü ÿGšó÷zÌg¥O÷B—@6´~aB…¦×ý`FROPj è儲¨Œ¬^9RYé.éä#Äî.ô@Æ3”b4Xaù †Et×· ‡Eé¬(èžât¼ XÏì!”Î,ôn£™\Þkâ$I[¤Œ.wú‰(Ô7Ý¡s`¿ËXo#zŸìô¬48àÏÖÑI°¦x™ï]-$¼gêðQYU[ºˆ‚4õXÅ5ö¡Q¹ÞØ»SÛAþËaì^í]±1}u{Å@g7u³˜•¶7YC!dx¾€A½íxJ¡5!y]_OU)!ï#= ¿ìö˜Z¹†ÕºÅ÷~[I‹~Ô“N 6PÛ–HåûùrÌhfl:²Ûîþkï¦ÿ¥ +¼ñõ½´"5=k þnß­!Æ^­»îèV ^G×[Ó­OÔ©]<ØÎM¬¼W”ûC‹'5Ý]è<×Ah||0¡_ɱ3s†nç´ÆLb=,óúYÂÜvøw[Õc–¸*VcíÅw‘Ë'î’iÂÙÝ1ð€2ó†,÷ SIûí£_ _¹ñiSÓobGàï?—¢Úr3ö£¦Â"ÅÎäîÂà“d¾eÌ¥8µÚ™C[¨¬‡¥¾ŒïH0šâÿ1ƒu¥>´NµÃ̹î)XI‰‘òÓk8%3¡Æ%S·Yü¡€W‰\†íŲJ a‰v]’ˆzjÉׯ€È¡¼ée@6äÔ·Ù(à ÔKÛÕ‰À̺X×oaWO{ý3ÞaèFÜ妗êrYžs[eš"‘@F‚Ë2+½H\Ðã!õ=-L£¿(À¿œ)ç’uŠº‚:ÀÞ3|·*<­ #^â™,Žg<̦=ÚÚï ¸FG7Š\ò«¨\©9³zc´·hÎè–äkÝ•\¢¾¥ÄìVy*ÀIZý7ÄïÈW†ÎÝXðâ˜QÈî€,b‹É>Ï »f6S×rfä|+þôcU¥‹÷’óÈ$¹ä–£Og©&bLè`*ˆa–o;gÇí²Ó¸Ç1r¯þúDœ@îÊsœVNd Út¾ÄDðzÚú ¬[\Ëcëâ!ýlDZjm¬Åµ·´’†Æâõ‘ ŽWäŽÈÊkÉmH𢦂³nåŠ+ø¼ö[2cŒNè2ä£ËPЮ‰\N0;“÷àd—@zöWI¬Ë9ôÏx¨ÓÂ5½¸ú¬þL‡HŒÅ¹‚›ÕépÆé2°ò7|R´þ;az…Ø|hySFD$0¾‹Ps36~U8åf*yB’\¯@4Ò1¼ÅTòqÈi¹†P3,Î lCz¡£HÂFpŸ 4dVHÕá_góA˜ççéðGU"G¶7±äoì‰ä·¶2$n~þûE••Cë¬Dжn£Ø QUS,ømwäå†j·”¥N5N¢?}—»l«wïç&ÞƒÓŒXfû‰+¾.àó‹Qd?ž7߆OaÕ@0gFb53}ßsìœòK–>RŠú×õRH?;)šé¿yž–cžx’»Öì©ëê\Bx‹üšøeT÷ºÿg ‰¾¦3=‘_`¸¬I¦ÒqæÆ•Œx0>!J»“€|tq£ svƒÈ›Ò²íî½8“Ó{+|8ÉÒVV"Kú÷üóܘ¦ ¹åœŠs¶~mš®wHF)2BÌ.ujkGèž0.v€–U;x¡ÀQ.~€Á,P÷gä¬&¿ïTŒnpc¯¼µa£$oôÇuÀøWJ5Çãøm6‰ ÃD,U µ£.¼È´/VEò)ÕäšÂÅýX6°m§Y͸|a¡Îç¾cŸ3Óð£ñ¼|MiåÊÃÙ:nž-Í`bÉúpOlêCk‰C’5âî.wšBeI‘VÈk^+!nÖr‹µ¼ädà aÕ·ÓŠãÍ£q‚¾(ïÝ ‹4keC=ªõ¦ 5Úܾ‰@IW\xÂáDVJeÕèV.!Ôw äØð· ß7ñ­C7·J”@©ø`£µ„*âN%¿•}/Gµ…êõ@¶Tö ñ“Ëw]z>#~{ A™ûÀ$¥v–`¦[ëµÉ5IIÑY½É’ ÷˜ºhJbå±E©SJ¢!B+«rbo'w2ÁqÖ¯xìˆÑÔsìáF7åøãbg¡° -Ýçñ(ü¸¡cx„7½y÷¹TOh5î¾Úy0†$•dÝÍÔU/ÈB`ŠvF—𧇩=;ÔMo€Ãû”aP¢ËèÚ¶×áG7¾/dÓ‰¢ÔIÈZ¡æ[@Ëê™õñ2¡¤jèCâ~ûÀüôlyZ—#Øç~V"ò»ì·‹ø+uiçCæ$pö¯Mï/ñíÓa83]žy°â³}e€DÕÌî£ç%4v>Õ›$TOÂéù#oÎb]xK~Üe·ß}‚˜gœ”¦‰˜ Å4s²ºät}t6É#›÷>}|6cK‘û¢PšlŸ&îe6«ê«UI,0]]öBJÜ%s#ÙO–žS;¶‡C4ë§x6þ†$ýˆ¶"4ÔÉ <Ø3ˆáfpŒË–¤,v%›1[$ÕîYºÚ:/º Ÿ,ßøø½”2§•€æ.׋s 3»Õ¸¢x~Çþަ[Âw•ÃYžö_›¢¨7c*™mÒ`I²uæJvO—QŒØ¶y…@¸Äê=×ÃÇBØA»v¾ì ŶÚù€©>'XKt‰qð> Ò>IcñùÛ@0ªŽTgÊvk,M«Úsæ€áÄOB!9}!Ù¦¬5㢼ÐêÛêC¢ºÙ l‹Í‰.&ЦåÏ?ð efÆ„{®HïÖ¨ü<Í«wб7%TL¢RhJü ¥Šk[•ÜrÐï~ºé©¥‚”ÍÉ,?%7?-þ|®E:Œ¾ßŸí„5§uðÛHC¡è©^Ñò÷¸•tÆÿ¡¯- s½„¼C»“ÐÒ±'ÇûÜÎ[) ú¿!‘H ñ0ŒÔ ò JQO X ReåVï9ZÝÏÂá‚ÁÅñ>3²ždÚfï™ùh\ùeõûlÓ/ùxBÖ<±8HST*ç·ž´¯[_{àcG0i¦¶ÐIïkª'Éþ/fG3›¾ª~ût>½SI™búÛ½o*É¡™…fÔNú1f_rï: ÌðÉ£C©Æ2 é¬p)ÔšÓ¯Á³XÚIâ¶ yª´.Ë%s¸PÖÞ`¼úŒœ–ŒC?}O²ñ³Á³Q‚ŠU0¢gM≕õQdR{š§uß=ýPl„¯‡±r»{%De\àÎŒYÉž e{œ¦N£F˜´’À–]ä,ùYiƒ‰ SXO嫈2¶¶[ž½£eòÄ’Óìˆ.E4ñk3ÉlÍÎể NrŽ÷ ¼H[¶Î½jwqf!²åÁ¥_).2°¦‚7fZ~ÒîïO³©à}0Ï%mVø[ÐÒ'#*qè™æ&ëq¹Íu"ÉC–E;Ãjö¬mpZ¥Bb«rqÝ\=kzƒe-ª  GTø.ÈÇù²=¹øo™h{ !Ùh¼dìc½„m˜ÃXAûNU‰KË\X¤(‚lvF¹Q ñŸIÂiw3Ò)QÐÕ‹´- ê±1ÛdÅF+!ó ¦Ê¥ê ñbá%¨VñIÉÄwCü €x8‚c§ºJˆÏm§bå6ðÅz\d=ïÂ:¢|=Ö J~‡jßßw.Ýó~² V·ïþ˜‹ûA‘Qh[ù]I³!6:”ksÒÍz5Ü äòk­ùú© Z™„Fþ1%ü/#âÌÑasO‰.avqÊê0ö˜±!fDP~?¸£Ò 3.Óì<6öé‹ÎøQ·c‚xô.è_FH>dÅ-Æ N±7Ik’4¢å([gW åÞ:Öôeö‡ ’ùƒ'Ä=n¿Š ,xXGz Ø…ðcBÁælðe¢d›ö +˼Üp`q¸rUaö#¢á/r·È–8æ£Z.ô6'§¿½Eå“RNôT=u#aunÃjÒI…6hõŒ©I¹–BèÞ4˜ê?Ä¢"Vº15WlsZsÊ÷×dŠ ROÇì¢1:÷š¼ejì»™ç /³î3ûªõ¡e†>™Ø¿¡hD]/æd}Ö¶l@†ßã ×K¨åY*Ø #ýBʮִIž$Øcº½pñõÁ©ðš[UÙÓ:ëA3¿¡ »…¡) ‹9yêôM¥£÷ßc>®‘IøéI^ÜŤèwòžžxypºœ»•(ÍBÙô;7ŠD’5Óû¨yÉUŸÿ‹ŽDR”ø<ý€'ú¾Ï0CYòEF‚\í‡-=t%9=éÓєߵnß‚O–Ä}ÈÕŸ1”–Ø„køô}Ø;ybÊ×?MBB£øÆ9Q U‡úõh§ÙUÞD¬LVæà1¿»÷9|¸S{ïšA›_Æž²p!›´ÖNWùZøý?þ¤q'—F2Æ<-•JŠ:?ÝŠ¸6–9WwÜ›0Uðá›i†zÏZoaúmâòhêtHó kl,!KÑFpÅ W5oûò%_†ªtlÎiiøhØ£Äìd¿<æ2ü¤“«xÅL*&—e°ºÃS°ªóÿŒU6†ŸîϤ3܈ /á ÃUµeñFÙ;¤x¼Uµ]fÈŒ‘àå3%3„§ß”§òhl³¶ÏÂYsQÅ)]P&ÙuáД¤UA?êçâ^»Ÿãó£zÞ“3ÊK ­ê&|Áº'Z\êÅp¶’(ij.¥JŠÞM`ÄqŒ§‘Ý MƒÑY/Oiânqf£L9®‚ËŸ8È^&±¹Ø×²ÂrŽêz’Fǧ$•{²Ûò ™µ*ùKë„ì¥1å­u+‘‹|ê_”cŒžÐ‚-¬]»{DŒ!IQMÏjFØ2þvºû«é[ˆ†U–Á^™ØÌ·¥ãKÛÐ9W¦¾vÆÊÁzé-(Ñžå¹·&þ]ñÝß0 ‚'¡dij¹i씇KÍ\Ê×a‡NtèÍ[˧å':H›“̇³ºhãÊ›rçiËZÝ‘:ƒyƒzÓê&¸ÒôÚ7úù¡å`°ÕàÔÞs33¦>ÂP»êž‹aCó¬E¡%^ ¾ ¯Ð\bÄñ«*Dgñô ”+6Ä•“ ŒµcX¿1¶j:¦§Eì2Êmœ*&‹ ¨ßô¾ ¥ëkц²Êð71BÖ+%_o—fĵ¬ÅYôF ),š1b_Rƒ!‚¶Íºòš‚Ó’¨ºÞ#R0^xqoÝ_QÀ1'tax7|潕Ê<|â’(Àû1þð&8 /­¶Îå¿ÜëúŠÑIW²3¨ÉçØ(M~ÿÓù‚&KÓd?{ŽVÈÈ)¡è^›f•<Ï“|™ÝŽ€­¢(q­ÙÌ‹‘®?€Ø=ü2 á‡ÁóÅ™ò„Uñg{…mà„beÌ‘ÝÆ´ýä«:¾"5\ä±a¨áæ!îK•O c ¯#3$lmR‚Úýž'Eok Â1üí©1í%LQL¾ßº’ÅzÆêž_£š‰ƒ864»Ùc%kèbš}Ö?y/0€§HÖ’eöÜå3>Rü(™ {Aœ>¢ÊíFÆ–è-=Mr¡±€8m=jW8-f׺œ ÓKŽæZ¡A¸J&äo±ðT\SipM+þ@/éT÷ÍvÙQÈé)j«Ò>—p#‡{òÊ/†]Ö§¹;S¹RÝx‡¤VëÕI¢ZH3å']zš¹dŠe èÌÙ1c¬-­h*ÂFˆõ”÷¨º¿®ùÎ{ðE*‹èáªrͯ¥ŠÀ°¼ÇËcGæ3¹&Û,^¾¶mw°ÐòjM°ïŸIÛóWqym ±– Îô ‡¨fò\FØæÎ`<‘˜nç•kqÔ7ÊS¤’Ðá"¶}¿%M‚÷o:ØI‚ôª‹‰›·ÙLk'ê`¸ÎÙy1ZÝõ{©Eg%ß’³§¨¼­¡EŠ/q¿/×þ±EXã†ÿÀceRjJ(uÎæÄÚ”=#^iÏþYâù(ke{‘¥g–§‘Õ1ÄŸLkað¬ {Tà”nžöáa¨M/x½JÔïi´U&tÁŽ#ìÇ+×±Û5Inƒ@{g¹Ím?ñ+ý:f¢çe,“„÷¦ŒDƒYÇ¿Ù[ñ94•‰%[!é„Ù­I21\ÕÓ{°øÁ”X–²êí%Éß"©5¿éäì~O&ê6ø^ºk%7¸d‹œ§ŽA ŠÜAì:ü;±{ù(É‹¸3ëq<¹á·k¶foŽᢸ­ä˜AgisÙf»<ÃÒwL‚§LÉ2ÏôV&‘Â’É»øš5‘±¨ÛYXù>V¼Â ééÉ6Z¶:Ôìà’ˆKý)´S÷;Kù‚å߆æ›Ítöá«æFŽrï|¢¨È#ûl¾-Y+ ìÔ(¥‡`džÊ"£oZc`œã.ñà´}™?p0ðqiƒ!™ƒ«l*uK ìûaŸYäj”5×®še®ðGGng{ÙÒ´eÐRa%æM$‡9áhM_{)ìßAwLz›åQ"­c¤â‚Å5—¶ì’!z¿vö½8²UhÙKs/è$Ÿ³³ÞˆE`¬%?MnméЈ¶0Ôêb>•á6öO ÞJøÎ9¯[ã·• ¼˜ KË#}Ũ¼ÔèªÒFñëвÂ[t÷÷nε^ÃyÂ-ŽÞ+ Ô#+—ê]efÍ=“fÌ–ŽäiК/)û߇„o¡/×ñôÎTË–„é¬`œj-¬ÌæKè¥X xEzGß.gf}«–\»C—wŸ¿8§„²P³ÃAž÷œÂ?s¢’#W¶N¨_ P¼Žã;;¬@ÂfPjÀo#¸Þ¾,çßÅpñk¬ ?I QçÿøÞ–ÿÊð!N$Ľ°ö#€•(¸¶ˆvøÍöó(æ»z–ÙŸçXnËþ•’7šØ|ÛG E!~­øº2&»„ûÎ/’£"7—5®éá/°™9›v!–¾xöÍdkT†{ásÍ©Ê ”ïh×Vìhi*‚ÅÔ íÎÉ[/ŒÁk6µ3 ¢‹#ÄÛz”ÅÁmöòº# ÷Š´ô 6¡-`Œ ñœd×–`ZI}ù/r`ŠŸ<6/Šâœ!rý2D{WeWɧ¥Žž™#µeÄÊžëð·iÍ+4®»¾Ê.ÉÖ`Õ2IX0":ù–mynË?›œzZ*18s‘¼==ƒz|¯á"‚Ë^9X?hX4Ð ‚¦Jô+›¼Â`+UÒÿ8_±õ^ƒx'ƒÝ£(M9qI•L4Ó[ Èæby¸V5M¿ÆD›øVhø êúñbžÛ ¤`š¶Í:¬{"£6…Øt 6o^É6<ÙÀfñüÛK¨£*Ì?WcTWyêéEõ¿kK`! :p¡šõLY3œ•uâ9†ÕSÔô¬=‹µðšØñlOšÒ¯l:EÀ?Äžæ™ZÅ—IÞ^h¹ÍÐÂã,ó5aÅÔV…óÁù†ˆÉ(¥jUóo¨,Šƒ¸¨iñ7OlïJ˜ÞGrC’cP ß/¤#=ç9ò£•|§hß\•óðOË:BÒéõ. ©ÂÂ"’}XQ^PQõè#y¬ãoÚRäsZëè,Œ ¼Då,ó »Å;jf¤ý~=ð‡‘ 3Ãp³í§bgÁy% ^äZ†¥¨yŒjvŸ\4WË(>[„£¯ðÛªßòa§TSß4 ª»JŸk õOÂÑ­ %‹·ûÈ*·˜£q{Ï ¶Ü}ô(³A›.Ç#­õ·ê%XBÃçõï<ëšZ33Øâغ׎h›„bY_ªt¾R õÀÏÖÅ .%úïï¿ÝÅ}‰gâÊÔÄSÕ;Ï9ȱÒ{Ä 'z¿¡ Lð2–¹%ê«Ç³*¶ÿ†šB»õLö†ƒ-×Ëoj+¦«¡ºE…Qq$éî˜_úN‡ç&, °ë0eØ*Ìë^˜œñKš¡¡kMD ¤Å$–Æå`_ÖñÓQ`£kZÉÏ´nÔº€MÞ[^(ð<gKAH Û±/wz$4â—=&Œ=!õñ ¶ÿï.$”Nˆ„ s#Oi&n›ë}I1'.‡¡#“j'ôk>šHÎÀŽ­§Q[:9ãîžd p_fH:tñ1³¤âo“ïl²{»ûЇբˆnl_žR&ºÖV ÞÈï䊻ƒ rÒ©HGøœ­ûœs§™›ÓÒYs ˜Ùè5LÔ5ô'q6)o®¸ •á«ÞæBûZ™Y%£o|‡TÛ¦§çY—…r?èeú¬À0HÃÀ÷Á&Dlpÿ-Ä|‘q"A_¾WÄ;/˜~)…ôR`‚‚œûëJ˜!_>ßÄËïfüÚÍÓ_Ï7“㳘ğ±G¼Šý+&UÉ*sþÌY ‘ȶÈ$àš§u'J N!¨†.ÃÝ£n/d˜}ÄÊVf` 4È~ÌŽpž'ï­ÌÃWžPA䔄‡¤BçÛ‰qˆâpò½~iqÍ^шcO¡hÜ‹PL.Q…»CcÈ|G±€¦úÜùz›$ÿ@œ ~šÐ Êcaþ©#¿÷”P¬Ñmu§üÉýÓºX9 ]Áѹ´³Å{ÃÔiKhƒ/)<évHóÛ@>Æ…°§>Z~ÉäùÄo×BQÐñÒÉŽ‰T =¹RK—_™â§“¶™nsñ}5ø#aLÓTžÈt”ÆÍ[¨æ˜Ù§Y†ÖR‚;½YuEÝxY«‰ôâÆm¯GäÓzÌÈ=Jâ5XÇ]%céº}QÍÿúæO‘KâšÐ¶rˆ½Î®øÊR¾ÜâÉÒ1Þ/¸BYe¡v'e ”ãf‰uÌMOÇ ˜ÚÉB¶Óún=0±0:ì8Œ¥2ª$å›ì›œ•qäñ‹Óˆ˜rð=‰Ô ;WœµIß6;\èàbçÞõ©þl¦b9'&^"dñý#‚¬Ìèÿ|î+ÊÏ2k:²ÉÉ1GiÀ$wRý­0ùËP±£C€IE¢ƒ££æ*s*ðfGA¥Ö²Ö)«Ä q†$¼pföŒ¼/nâ2C3 q2âë~fV`瘼WhÞ‚,l΂hl#èLµ¥Û„nŠÈBbÌ|§<¤É p[ˆ¦/ˆñO¯C†¤v–œ—X‰«æËãJ¨Ô¶™¢sº ÝNdFÔ~ëæ¤Í´ÙAÿ<8cœØÊ³Ë“‹"6¶£pÑÿ¥{hk€ žñ¸‡k©cv¢L¦ŒÉèt3e!U&óµý”=)ñÙúØš”gãûĘ‘‚a¾õÚe6ЇxŒ¸IHLuÍ+5aXÄeº;ÍAô럞…ás‡(öÇðqÎ$—^Áañëòq\é¢%ÒMf-/¼‰ƒXA±£Ë·¤Þsûw1çMZ»¯ë¿g>ÒêX‘ð#ί9ÕáìʺŒ7S ä¡cT2=øîÁm0A8pAX¶„ê$¾øV¥¼· ýq/²ºÁÝþD*'kÁB“À.^ÕÊ ¹³Üã– ,.{ÒžÎwQÕ#ùß"ê`öœ«Çªb7蜂Óa)O%¹‰1N­ÔyPgçA·¼.cìïÍa´ÉÀ5œŸ•ÖCmìO=à×+#u£e%ÈëäaÜUãmBc¾¼” <-BÜÑktÐr˜Ë†eyÙùä6&rݸ²HEG±ÉK˜ùè4Jö7`Öv8Äí^ÐWwSFsyç°FVü‚5òY+~`nZu®KÜ2ÆMí<<Õ‚{Ýdaì,ÐH kîa+è ‡'÷}4Ú¨ ݯ×[àµcÇi kŸ£› `¹ÁÙ3/K˜ÆEܱ!ˆSñÅ@Ïÿç FJ´2pÙ".87(ýÑ@Àg¤`ÓJhø–Ú½„óÓ"O³ãPáv?:;ðü(lk§åVújõÝ^/Iµ—JX¦}+w"Ý¿³&àU‰ pÇZ¶ƒF#Qß9ÈJö}Ayö“ çœwÉ©ä‘RÔ:¤ù÷"ýmÁûÜeöc 6‘ºïωâ$ê”O3ë L1lÇæ´tn÷?àSLî8¯Í£‡à_¥‚h¹Qc1iùXgtѬ„Ø/ ›}ßiæÃÄ5#ŒBÚéêb«u-üa·I,YádbýeæKŸáW3+3ß©?Ôõ,ºÃ:9ór›º =- *íäÔçÄÉùúS÷$/”ËÂ4ŸÍ®`Ô“Õ8aá¾€s]ø1 êÂõ}WFàÔ«6à?B>ŠÇ&ZÅÍ$’0n# @±ûÖ}Šd~ ~±iZò)ý^z¤¯©ó™÷"p9Gô ³È¯¤ r¬VXAhã.âò²Wî.{ydø#–÷wõGÉ*±Ìðýì¾C-+‚?Q‰ †÷äHt÷´ãêŒPõ޽®«~Ê-½«å4©†•2?«M0iùDh€êÏ!œf nˆ)Ëç®]˵Sø¦ —’Ó•H©åʧ¹ëf}AШ¨sÒprÕ/רÔîáHaŸhH¼´S=€öêb"’wZé굎þ¢T¤´E3ë÷|弓@ÑtN¶—3W ™6‹(«ç¨ÛêiB-™è)%ZÝÊØZNÀ5*3Lžâbu\6¨«q=ÎÌ'ËÁ‹Ä˜h}÷{`æT6};`Cs¶X]vhD%Ú=#åaÊp7âUú<:f( ?ð@ ¹ü3¯Ëø†5ˆ‡ãƒÌ¹¬-[H2?Zÿ,4xä ;·Õ„«ÕBÌ}qq:Éq“iUƒ€Q­9ErrH¤²¿w‘"貃 ½}E0Ál*4éÍÛ£ÔÞ- dãóú’2¯—`F >•#óõú«§ªÔmyÞºÕ'HuÍÝ3Ї¹hŸ\…OÆ 'kC—>¦@+$½[Iæþ™ðÒ̃¸®*"RñÄïù´^ãÏ2凰♋ˆ¿¥Ï`|…¾RÝCŠùÝa˜§Ä´ãOGºœ /Ùt›ö$€v9ÆìÂS†¹ ÞèÐ[8àç³ÑäÜ‚òµã*„G!Êõ'Ã#ltÀàséSy@³ã:Åø¹É%~†»\‡r2¸ÅcS‰*aGïô.n »0¯" ÆŸœ FŒà­ÿø×ãyä•Ò½ŸÊ-ÉVá}ÕÒ9|]bCÅóÛZy§ºeji ‘š Óù1xZ^PüF1 xE­ÒIóÈ#ÿæ¯0¨jü©¬ÛÔrǼt"áò§Áñ•.Ù0ÆÂÑFÛ(Æ™}i"×éE¾ËˆþWƺ&µ¥ŠyŠ®,bÁY¸àê¤bgï[ÀÔ-1|Ÿ.(6¾Á(q-ŽüŠ‹ô„ J\!êïÊïÈéüÌû<;¾}Í%tÏŠF }‘‘öˆ‡ó±Îïs‡0rÙ^·£6éÚ°Ê1€6þ6 -5Iz‚§Þ2\z\f>y¸v€€ØH°Ö÷g†TBWzÀ7žcgÃ,dnù¨{™ÐHe ¼ªC~óðp_¥ÊmïÑ®áºAWÙéwy—œ‚:§²r×óYž¢eÖŽÄ(Ha9ó#¾ù¢Þ͈à΋OJ‘0zíÑ[e '2ŠG:¸%C•߃=_ÆPB¶ ‹»¥ßWíõP5º*øÝž¿¸z 0RþÀlWU÷ O!…CÐéÝp†èèÍUÝt•ŒXZzU iÐþÕKKüdM²TÃn{ˆÿ½²4D.Gwõd(«0fX:(±R.……Z™¡Ù™Ô„°;ƒê¬‰€w‘Z1“FÂì«÷Áð¶RYm$üPsضn§þÄYÖÐ’ßÖëp­á+ê‡$ Ø2×û&(¤|+PÛ¥’ûŨ õ¤+¯ÅÞ'¥ì>/âã¿Ì¹­“?é–Z0b?Ä{CÀc…\ôÉ•{ƒv>þEC8‡I»]å—–ºÓÔNwK{’™ þ*¢X¤<)åòWœ»!"cùÇMžÏ³"v+ŽIJ´â°¬È><eÅq{#.ô4¤ÏdÛœ¿ÄÚO‹«KDùn|‚Ú:„†0)i¤ºJAwÕXç”ý=–TŒâKZÓF :ª¢SÆ€¹"iÀ…$â󌋿 b?j¬SUÑp4=Li ü ù=1íM’æ|,tŠP¼®ï±³ãïÒÍ ¨qo :5ªÜÕ÷W©ÂuŒpk“Ý ?iëAëì™#òûMËœÝSº2ŽãèæïÎê@A•9x_¦¼“Ù5ˆ;ª³Ÿ›H,, @,k78K®äŽâÚ{}AsDó–Oh¥Z;G2tÖÏ" ,7ô¬ÏNý¥¡tŠ.}“W¥KÏ"_eN­Ë[=]iEuTøùŠJE¡nÁÙnŽ*¨†ù󂩆×CuÒBR½ï}¶· ´BpGyèjd-jhÖ|­_E¡+ Ä)æC}vOÈ6˜ÎJ)År?ëòʟ $ðDçAÚ aê" Þš¥§yiye_Kx%âÉþöåOôÏf:Öé•R_Çñà{ dœüÛþïœ §^qgv¡Åf7WFáig޵3îdílqŸAÅÌÚÏ`NÝ̵}ãõ:¢9¨ÌQ1T¼Ã~xtþã A—yõ´U …ëÇ^HüîÕúfŠ&Øó„ãs͉èÇV[\(p}ÉPÁhïk?ÒæÂŸX²ÂÛ¼§áü |ùùUÑ‹ÓõÕê÷,¸¨a´U™F”߰׼Ϣ-ªY£eÝ×°>$‘ihKã°½”÷½XÏ×ùW4²ÏnÔ½0Åmf–Þ¯¾ÇÏ ï¬7“«ê¾ò%âØ%à±”üß¶Ï9á¢þ™_‡áF´; ȱDë|ØH—!z¡¨:ƒÂÏ ðª8Aæe‰U'Nð½TemOæw„¢1U¬™–õ$Ñ®å’Vöž¿h4£9UNSüßèÝ_Ë­ÔS)·n,L{²LßP¿u~Be•­ÉL? +©“”vÍ­E'°cI~߇ ¼!`Vé´^·L!·«]»™IªY•ê爸Gƒð®s ˜;ìð6ŒO%ÍC ó¿_óøv󈽷µ ¯ûË®3C¨BÒârʼàÉÑ ý¢[.M\ôÀ‚=3òà‡’E¬9\”FêŸÖ„s0œ¶ªp-î–$V>¨›U¦UDÊØš?TžsZ‰çù{.\|.-¾¬¶El’ yUØdòQ”…QÑרFA|ªXO¹÷P¤eêñ9ÉÏ·¿W4Ô#ÕNÊèˆï`¡—ëá¯k´ˆ¶NµbÈø²BÕǹÞ+ªBúöŸM¼´Ôx~7bz±¥íë[Yïûï4Гt)(¦}­l3ˆÑXÙ J™ýZÖ<réÝÎeŽ´'Côlûx µÆ¶âd¿•›žš6Oõ&Æ·HEù;cýAø˜IRÏ›²ê?Í™ŠÄ¶{Ü¡ÿTcH>;˜!‡‰9â'e_ê§NÒ#R‰üè¬ÃÓP:˜¼ÒùÈà‚|6:*¢*p¨xÓb¡ßRÓ]æ4’nfM­C´ÖÞÎQÆg•^9äì_'±0HWÒÂc1\m&Ç#òö¶Äq¼‹®…¤÷>G/‚â‹Ïm`Çw6•ç¬ø£%÷µÇ±Ú¢×:i-Š›ï&Ø»EÅjˆÏÃäÚ0Ꮕݺ2ó©kLÖÊ9dtö(A9rÕsÜò«éëÄd‹FZßGœðÃCþ0ü‰]Å=-9µ &°ú+{` ì׿B˶5ÅäÑŸb.<90!H§ž*µyåj´ßNz»bš4Š=vóM—üTÖð?\çmQG¿ÄÀäz±þ´xÎ)ˆ8¶ÆËqÂyÎê‹ü,ÿ•ïè }UWl|M)ÅÙæT|)D†@KnAȨ1Õ]ý­`-å`Á|SÊŒ÷÷³¬×ëwvµgQ¦ßî%×XO»Ëµ‹ž>¸f¶Ã«[Ftò¿I%óãHÏøNêL(üÙ,Ök=«¹[UÓöî×U›de:vfs÷ôDK‚Ù3ÅC¤Rã ~TبøàbõÎñâ— àJ÷¼É6õ‹Dåc—ŒÀ­ö’!fI¬² ãWV<$„Lk“¢s ŠyNÊv'ýèŠín²簱߽X<­‰BhÁ\CÖÒ@âàJ‡¦ hã*c<ß~Ÿ8ý2åSÅìÐIŽcˆ{DK§˜ûæaÚd_­jo˜ù9NX,sp¦-Q¥ûþƒŒ£x4_çÕwµ4±˜ûÈt@€ÈPi–Øafyp‚`­tÚ L\y„B%&À´ø‡ÇÚ¾¦€‚e8YßÓ¬eQéÎÞ›ëL-Íó5åR ÉÃŽ_,pë*°r¡5<²ôó.´m.ÄÉ,* üëÁéõL«(Jq"(™-‹“Å:æ<?x_øvOQ_Ô<8$4¤Ìµ±ö‹¦¨Œ¡x»4© ËaèýdéßCu¶(xQá|«`ŠˆºšºíÏáoú[Ý®n"Ù ½ª1ƒå®ûü8’@ÔXaÙ~†¥!(ü\¢?¾—u«¸ö™!e5®wã~ÄÞ>Â⃒¬‘,°.·›n5=Î~õ‰¨\¨¥D¿fl[ã~, K+U”#ûm>n8l;8µbfE‡+§8RSDJû›ÉTúq >Vñg®IÒ•&«k¿)êb¢ƒéž>ØEû,€±.·„“¥¯´¡‰Ka“yÉ%¨–åPû Æh$Èj¦.´|5®Â—¤¨cßÏ?Þ°·À/°|úËs²ûuiùÿ(×ä1‰DÏĤ#¼áäðÓ›kx§i…ćìœÊ±@Šq:*8L’Ÿ9ß\¥HÐÐiq¹…‡­ñ‰sèjN~ãkƒV¨t½FNˆ´"Í‹.?»TqÁŸš© }^æHá/ê½}ÅÆÌè¤IJ¢ÌO?œy.vƒºòDþQù&Rd¥ûX l¹DÓ~Ðù%ùzíÍ©Xü2D×KÍ²Š•ÎÄ·íºTõŽ Iqðó™ºÜ.#±z¨òÄû‘ú¢âDqz,°F=U!=Ö cR3üÜmð4F2ªm¼ÒƒÂåÁÛóæ3æ£1>Y¤Ä,|;„FÊ@ßŃ˜|M‰HäÁxâ1Q’Û–X3‰“Å”àÅùjR¼­<&v·+W³Ô@¿`d/äesèŸUÍm³V‘¤8*Uó™ùhÖë÷†ŠÿúXÇʺ$’§_Õ¦OY°hNå•âu£Vë|1©´¾/ƶ[ƒ¶±óm¡=aeºÓÍì§ö„O\4#3³W6(ãÐýj)™æ&¤"Nëz¦hxY~ÜÉŒ0Ér„)@ïêÄS’à?ƒàœ¶–ª|1ÈsÌ ”-îF=PŠÐ“89Or<{/ FÏÑe/UÔc¾Bކ­Ÿ¡Þ\}M„Ç’”ð®OxŸCÉiVpOöfÙŽÖ; å çôÞ¯©qû„ÿõÞ³‹…µº—7jjÙ÷¶lòýTŽ%ðSú(\ý4–&Qä.Td¥O/‘çHEÊÄ6œÈ=ŠàÿR×ä”XÜI/€³ïué?-ÿ0™“§Ù€£þ28}á/vtå[%¨â7»hŠBc 5xwmÛ.+PšE¿X‘(Wá赞¯ºF3›qi4rï=“ÓêµÈòÓv!÷jÀ˜œ^Ä¥J©:_Sç¶ssÍS‰ÕõÁ©Ê‡o=4(À³ÄR»|ÖÊ+leß>XÇÔWð]©YûJœŽOT1ÄIZâ­ñ‰­À¨¥'†Ó§OQPM8b¯ jkŠ*dRg“’ÙÀ”ÔÛ'âWÎsó‡çTÓçX¿l/‹·p ‡™dìÇv£0@ÚèŒßö›çÁAð _—í_÷íENFÉe@˜<>T=\ô'ã 2ssùáì…4ŽàiFt¡QƒhV"Dµ]€EªÂ²œË2̽Nï‹’Š~Øi!¤]€Ñgß²НÜåÓQ‚3—m…aìåýèÚíž§¸tªY“5EçÊü÷•\CÃÏiÑ\9X6Jä¶n‡òXWsàäb¿Œ6›Žs-K#­æL{-Xå”SÖ‘ªáêFÐ#Rì0àI}¾TŒ2•L`ßÓ«Å j~í¶^µå1SÑÉ þuØ®BpD^o¢Å(Žj¦¾^ßk#n°´1Ct-?äh{âÞ{wåÐ~G§k̤Yå&=ÎNRF ÒvòàjûmµÁ·­¡þµG ²ôή ʳR"¬üI¥I+÷`P¢3A~ 0ër»|jÏ! ñÇ_f=jnÚžÃ~VÏø^ ­i6|FqHÂ)aûЯ}`Ú™6P5ëljßEÅaú1é#7éÍiJÀ3/¡—ó7™Â˜:•¬Sü~ZjÅ‹ž(uþëœÛ @LÂÖìâ(úŸ‚Êñ=ð”±æ¢<È'A/Ñ0÷Õ³qÙ@'"ýðæ „Ìx%˜5Í­©Ò¶šIŸÊÜpºQú%3ùgźÑÒÕ2p£žÖçCߣØò–­”ìîçsd§Ø{Ýü]%æ)P7m#œ)óÜì×B’5? ò»’¥Và\Ä`Ú_X}u½¢¢oª¹ Õ[ #f¡1ªÀ¬ò²0å¢õF¼’cvGщ|?tÛ(T´R9ëØÖpUl ãu7Á&SøkdŠ{%ËÿøßTl›…?¢†7vR®Ë #A/ëô()3gÅ?þ Çl4þ‡‹@—ƒ£<ñ˜~Hœ·¨Uâ±€úÉ, IúçЂtw±õLòéÿO"ß÷«‰ÊœÐkö›B×~Qþ›®ŽYþÙ §‰ÍH DÎ.³>ÁÊÝÉ>ò@쌱‘yµ½?‚¯}“ÑçÉr¾Ð*]VMY²?zMke³èƒßK‹¿iu'|ëìæÎ-U ÃeÏéÎäcå¡þƒ€Ïl-¦ƒHA¬«³*Šøò=J*¿ÜÿµÚôvð+>XrM ]¾Úø*O¿\âüý¦7`Vpûf¦÷æ8yú£øg±†§¤(}Ù&Î1¯b–šhìÌ*´7FÛ8ß`- uwÝ ”¶á¯jåÓONX|#D¹(:³yo%Lñ¦“cХݾµhy¬g’èBÁ%oü®8Âôú3kÃŽ\Žºpɨi”TEÀä¢î„ãÛF_øþv*ÔÀ…{c‚Äôe&mÑ7W φ”ùAzÈZønƒ³%Z¸ò_lÿ®>¡ø÷‡Íj¦’÷Ä]F}þÛ6©ÿZ¢PõÉqéûg§ÁUlúªñ]êÜ’`zý¨J¦–*¨ ¤=È*š-j­¥T™eöù_ižw€À2[YL{ÊÁ/cÜpkÄoOæ/b8kX|9ªK_#JÉÛ#pÊ‘I+]û‚ä`º"ˆìNy _t4òl·ÙTR©¡©šÈ±Bƒn¿!7T‰×û}QŸè /·y£ì] z)Æ"è ›½ëO+Ì’ ¥Ñ°fäQûß»èɾÊîn‹°4ç·ÌL§Ûúé×[Æ’ ’ròïJ„è‰Ñ·¸ü Ù¯Ô»µM”äÕzgÏ=ˆ7›oyµ€¶a~PxŸùÞ ÀîKq•&yyhxÇc`Ë;›PéËgû .?ÙÀR•vÉc†“gñP¥{¼ÿû¯ó´Ãü©¿ ¨’AÑ+}w¿¡%ô;NVàÄz©Õñ1ƒeFz¡O˜˜6„ûü`ë¢Ån&×'KAw—f†[V@ˆœí§HÎ^â6/·¬…3Ž4¿N7ìhï?ô|lòFÚ±d{®dYh8ö‰ñZèÚÑ×Ï9JαŒw)ˆ¯ûB^#|È Ø†ÑJ¢òRþ5C v;$üÿ¨=aÞZ4_¾í"_õ¨¦©I˜µHˆÞ÷C go'ŽnïÑ8[/A"ö hfz²½ŽŒÛªYìåT•=ëcØ!!üô˜ÁjMïÆÎsö2¼é>¯ëþ_;0wž7>òñútæP1*žôÙ ¤Úò äÉN¢‡#tÁïŠmÝu'’]4 =³!?Aèãôÿ=Y‹Ûæ>™©EëÊT»ø´£-VÞ¤+cW ®UYç3:uP÷eòÖÒ@?¦ú:ê÷øQ£ÌEg¯Òš÷›$­ìL1½µ©6¸,hÓó¨¦ÄÁ³圿î< m« ޹Ptòƒ/NoªØ yZFØ(ã• ïgT~'<÷Rþ¡ˆ~SÛÇïfÅxëjæiSá+ÿ+lü\†´vEuJߌ¤jueÆË3ý¹L»÷ N:0÷ÿF30!(᫨réµQ- §y6˜²GpXã] ´Ï оƒXÜ2§¾v'±"±±¢U7ܘͤ”Ç‘ZQÇ´ªþ)[wº¥Ÿ¦\ +~…mûÃuvL“ŽËUª_¶"¯‡<œô/JK.~:MNžX§ˆU©J´ÛùhÈûÉGIJeèi>qÄÉ®¸Ö3@ð¡ÍLL~zì*‚ÍÙâöÃ…#IÙû*ÄÁ<3µ@²¢PÃAÏóõN¢Ü2P›å®9PœÆÂ¿u5ÃàÑŸÛm@ü+øÑ¥¬â«¬.f›Ó,”‡ÎP‰÷keªioƒ¦3â°‚óvœ‡|rq&Pv=ˆâðmÉ+|,wôÒ7µ'‹Îæ—î0Š®>˧ÿ*ËÞ)¿ÝY4I™qWâs¢Ê]”$)ûŸÌ‘ ›@ŒL†1 ¨Þt«×¤Èч3ÔÑ|þHm`xuv)´)ßà¤Ú†ÈF³”F¿”x ‚ <íÝÄÑ­É­Tã}2ã:²]ÆΗ!X¿™Ñ>ØØñöž¤(Àä+ô /ÍÁ)JÂõ 9ßç¾-N³ÂªµåØkÏò‡Ã‘û×&ÑÛÏd*BÅpp°ª†Rk-˜‘Æ ´›üh”¯ô^ÚÍÞ÷S\&‡¯§vÜð‚úg¬S3Ôa¯åQ>¾®‚å€Å¹Ì§œ_½of|ßÛ ¾Üâ7[€>ÓŸ¤ÀÑ7¨0ŽE3ã-ÁäþV]ÛÔZägëñe†àüñH–^a×9À?.y«ƒ~0VüÞ¶6Ãaw»ù8Ìrb™…ù‡Íqn 4êÀ¶R5_/—^Å»ù0žYï­y›qFÄ¢Þ<<ªöÖ´›* ?©Yòëç<î5ÏKøSÑm/’€Fhó°Œq_àï‡íË3Q’ ‰OfKß…Åš]ÀBu!žØ¦¨'Ÿz“#¦Ñ‘ã ¤/g=’ƒ™ƒõ{šÍÐO¶s¼SØpï@˜´¯—#á °Jì;É¡ã¯gx::Èè’•iâåÛtBÏl"ÒhZ` ú#Ýð7d8F%ï³ó¹À-k‚;ƒž"‡×{+Å8¥mþvAÌ»(GêÍq0¨ö_ º/~V!£›&âÌÂ#&t’NÄÐO«Þ4QÁivw=5yüÞ^ZiàIã¬@$\Dæ†ju3¼šcûk±«a•”‘Ö&q…D§7ä»WL2þ¨ ïyŒäƒR)¶îÛ!õWpo®¦¯ïì ©ö1e³n¶ª¸,¯4áÜYl½†Å7<çz¹É“†´÷¢È\¹ øÛ¾y´Œ#:°â{ƒ)\ÄžØÈZuŸxIPW„ÑØ n,ö€éLÌ7¿]Ä»Œ1ò»Äºož¨HùýìÆ`Ú;›P}•H…‹š%W¹»ÊÈI…¢õô ߣý¹¨Ö £Õ,–kšš ª4Øö¤Ùò.^˜ü“Ð.ÜÛv1U »ËŒnô[=ZˆMjÒÇš)kcù¶V)¹ t×ÙyöZm4ZËá'¸6ZÇ®Ÿ«ª‰o‡“W'».Ô ¡`âè:$?j6_ㆢØxû%Aµa ƆD&ÖŒìëxF—•v_¼Ç‚Š'ÛEâ4r™¹¸øë×RH¯™òŽìhößg\jŠÿ|(œw³ìæºWbÌ¿ßzƒÆ¾Ä¬¶‡‹ª¿ziÍà鮎°44}H.=ê(òÝãGØ”((GvtxÂ,Ü6üïjûø`6ǨN~ù ®¨oQ%×yEêû;p‡j6šÇçnM*ºË¨svå Ìâu»QZ<+ ¸o"@Å?4‹;‡Êч¸è½zb"•qÿƒV– V(iU•mWoLÝþÎçöQ@è!Q„ [wËd7ÁŠoæ3Ѱ›¹riÎÀ\R‡ëE›owÕÐr£“',½.ZGÎÕ¤öí×+À«WÁ}è6t0$™¡!.R4µ¸KÛ&ZWΉµÍR¬°òP6 “0]¹»Ï5^§Wæ:ÇÆõAÿ KK1>1çÄ1–EpܪwëТ?åÆÀ>¼cìvŸÈ©c©ÿ”ašåóH¤#CR•>PœÖßO™—ÁB4>ß>…šØeÉ,úwtpÑÿà8Ë«»ûW;ø— îÐònˆU.žƒ…ã0|K\ÿfE™O›%ñ#XÜŽî#š$CPó7ª÷+7‡ãôe©à¾;òçä‰ÿAÈcVöU‘F™ÓÚe?®€¯ë' Þ‚I5E;¿©ÂЊïe´š¢ÿñ&îaë>"ÑXjò¸£¹ŠW³Út{ ,eÖ”‡xÓÇ» ¾­dÚw|ŠRS]›n5þ`ÿ‰gb땸u,%çž©ødÎ…ŽlIä=EÜ_¼ñCñ£€4ÏnâÚ÷¬ì|xo!D?hß”ûç_,a÷ǾUcÝG TŸ(Ž¢Ãòt^ý†]’©TVE ƳW»î°”4ù¯¯é,Ù2üOÚ5y/€;2¢ëY ’“—­•v×bíúÒÙÆå䪞,¶‰ƒ¹“ÞH·ó2NéQò.“Ý0 ¢´ˆ5r¥¤2ÀK’Rsc£NÛQ÷8²(Šà)c-Ѝ`+hˆškÔ>Ú§Ó¦»ÛøáŽåfÊÜ;øeü}(–êÊŒr+\bî¼J¶4ÒÌEcÐ2 ÚÕ“'+ú÷Úô˜þ]â+:Öëž®±Êš}º?Ñ¢ Z9WøÅ¿„ÙÎÛL¬£U=?]ä´¥'Ó!¬—ç.¿£ù%û…ÐȬñNQß•ºò%ª`>UÌÁt$;Cð§{è†6‚t> Ló;nÚÿÓT½ç™ªø1:°Ž+„ïç¹µ°ý;°ú¶ ëa4€“gáù-øÐ¸ïòªu‹F… &ÀÝV¿BŽÈo)YY è]ïøÍýŠä¨‹/DÔñ›È®šÍdóÇ“<,= ô*ÁÓÇМ4÷uÊ«1y,öqå1M€•¡‰ýzì9œp(× Íx­¡«ºðD°•×Uu$[Ž­¶V&#}¨i  3DwMhå9ǦÞgÌi´t8תýfå¤ñÅÕ7¹M¥«II ÍZ¾Z?bÃ)úá\\nGm¬iÒ:UáŒ@O¤uùºQ.±»`2‘ikÒGñá*Ýç£ØœØ¿ ¯oèÍAoÞ¤#ÏÍ)¤tWÕ`$NÇ) 2kÎRbÁ¸q(ô r³Ë» ßêÒš,puÉÆi9¹z½ÆV¡Ý–åEçèŽZ)†`ÇÅ¡×m93eâègý¢S¿|ªƒªéÂ'ãëÿô¨’| 6¬´¸´@#´QÄ>µ˜™‡Ï©t|þîV(P&•ÖS…3?äŠq¢ŸRᯇ>‹š"ŽÊpL,wöH‰É­û_Qz5¢'ã¬ùàƒLÊ÷å[ÚJC £§3vSÃi0Û¶úï{£v”‰IK>V$%—(Ko©hX»7 } endstream endobj 124 0 obj << /Type /FontDescriptor /FontName /VSQAYE+URWPalladioL-Roma /Flags 4 /FontBBox [-166 -283 1021 943] /Ascent 715 /CapHeight 680 /Descent -282 /ItalicAngle 0 /StemV 84 /XHeight 469 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/Y/a/acute/b/bracketleft/bracketright/c/circumflex/colon/comma/d/dieresis/e/eight/endash/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/plus/q/quoteleft/quoteright/r/s/semicolon/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 123 0 R >> endobj 125 0 obj << /Length1 1620 /Length2 15311 /Length3 0 /Length 16155 /Filter /FlateDecode >> stream xÚ­·cte]·-;[;¶+¶mV¬dǶ“JŨØFŶm£*¶mç«ç}¿sÎmçÞ_÷žkµ5G£ô9gk‹’TYQÄÌÞ(ioçÂÈÊÄ ÐPÕR6¶±16ÙË3ʸÛþš9()Åœ€Æ. {;qc /@ h𨨬<<<”1{O'…¥ €æ/-==ÃYþq˜xþò7Òda úûá´±w°Ú¹ü¥ø¿T.–@€9ÈSRþ&£( ‘RÔHí€N›Pv5±™äA¦@;g -ÀÜÞ `óïÀÔÞÎ ôOkÎL¹DœÆg )èoÐÃèðÄp:Ù‚œÿ~@Î 'c;—¿3p±€ìLm\Íþ)à¯ÝÜþ_98Ùÿõ°ý‹ý%S¶wvq6u9¸þfU—üw.–Æ.ÿävý…öæ=ÍìM]ÿié_Ø_š¿¨‹1ÈÎàôpù'— `rv°1öü›û/™ƒè_e¸:ƒì,þ«€ÐÂØÉÌèìü—æ/÷?Óù¯>ÿK÷Æ6žÿжÿ—×ÖrqÚ˜3!°²ýÍiêò7·ÈùŸ­"cgn`eù·ÝÌÕá?07 Ó¿DóÏž¡ý[„±™½'À hŽÀ¬hïò7%€æÿNe¦ÿ9‘ÿ$þøDÞÿ7qÿ»FÿË!þ=ÏÿZÒÕÆFÑØø¯ ÀÜ1yÀ?— Èôs7¶ÙxþŸþ»§ðßUª-\mŒþ;üoz;‹¿Š0ò0qüÛ r–yÍ”A.¦–sc›¿³ú—]ÃÎ èd²þÕô_ã0²²°ü7LÝdjm÷Ïð9þ íÌþ{ùeúWñÌšRêªÊ:ôÿû½ú/?å¿ú»¨{:ÿ-{³ÿ\üÃ"*jïðfdåb0²³pü=vÏWVßÿCƱþ×ZÁØÅ äÐeabaaü}ÿÇó_+ýÿF#agjoöÏŽQs1¶3û»ÉþÓðlêêäôWÛû¿MÿÇú_Ûôš"üY²7å ±JÍHs©ÁÉš×íëa…úîPR¯^˜PeßퟶÅSnôVý©aŠ÷£ÕsñÄá}O–n¤Û†º;x‘GèKNÛ›¶NÕÎE¿ÄlP‚œvªå}¹ ¿ ¥ÃÉ¢¹¿=¡¢jPüC4ÕÎîwùH@î–€IñàðÅÏ4¥.«µ ½¦àä”*áèñz`txh°ûºw€>;ž’ÏÇ/é„4ÑÅÓÈé®ÞôúÅËq ñ¥ /Õ2ì-²BîD× 7èZmS E‚þ¡_JåJ²8¹3¢åô§–¦ÂÛY«é7|º¹/Ì Š¼Ýq_šKJ…ÄVÍ ÅúÝ0 Ü^W<-“–h1rK$?ị®6ÎWxÓLja°Æ81Oû¾F%óî›Ó›¨`Wo ¹«3þM1JBTsy"M¨4Éý<ã–uÁ§G!Ÿ+ÄÖ°íŽö½»–Æþ>óê!;˜õuÙ›½w²w[ØÕ5v€¾Ê~¢j¨ð4‹¿Îq« *ëyA LV–¼»ñÐ"Á4-„þÇêÀ놫®Çf5U¼P¡"š_.•¦x4ø^c€r3 X};†'#Žñ…Z‹ –fÈE*'lØèºiNuòܪ ~Tò$ŠTÌ:^k£z辿bårv8’#]ùô*ð­£òŸNsª0Ò. ´oÔ‰¶˜f/rÃR¡ìÓ M«¬?hHf¶Þ§hÄ`ÑçŸÖðŒ !,T9çßïü²EÑúèÄýâ'O熪™ö@©AVgïÆå‚(;©׳íýŒƒ˜Aá‹tÊ6ÿ{Xn 4$±±p ÖB0ý°Z—™#ìÔ3\ɦҼž?A~Ž#:<¡Ñ´,”|ª-Û,EDãOˆÏúfƒ vÚglöò[Ý)@à[)uþ”Зöû?vÞwª±Ž·uæ2›‡nw×[CÍ-ày/}Å{7GR9ÞÉ&–«)*AÚbÕ?hm-ÂˤOÍû&§_¶q×uÄzWµ(rXe`bÐ5»ø©11VèÅŸ¹óÙn]ÅË*JWJmx@øm]$ž{d)‰!,=Z¯Ëc$fʹ¬¥¤ÍÈ-Ù­b3?ŽºKh×w/ ;(aÄmÛ`(OÌh›ôäÅ$ëõ‹›õTÙ9Çî'„ž²f±Èü¿ïSÔ©U”¢OÞϤ¡è6‡Y2¹f¹¥5!{P½¤‚tJIvoQ‡ ­+í¢¼ªãfO`µ:ùòô´ß¤Xšàľ{ÍrBè93Ë/>Ä lžé¢¯„¦áºtob›5Ô½Yµš}3î×èXŒ¦³a—  ]Ñ3ܲ±ó§Èør_1 b¦k=OGÊzÐwE¼Qe”_˜Ñ#kËOЇTqmAfß]¡FÁ(<ÊX÷(žî÷‘œÙFƒŒ¯ ?Ðê „?ðuv½Ê§ƒ|šà,Ý3‚$OËbï¯Ûç”öñ’ÓǾ™r•J evíØÕkäÒ‰Y¯ð\_Ú†à€T™)ø¿Ý%ßmSÎ7“uÀ¢¹ïâé6ñ„"Í›Š?^#B¿Š.F.háZ„-G¼|¥WNs.Lh¯óQÙÈhÜ s>µ¥T‚Ëd½|µªQR[~?à\LÂDº³¹%œWñJfɆ˜YÚlùl«Â¯W({g+s4gÁˆöyøŒªv¢³–ÎÜžÏjæ}IµºdÔ×SIžrIdèSš¡<ª»lÙ àR‡™f‰„òYàu¶r*@ü¹½´]Õ-:LQÎfû»)ÊÛ·Ö‚šxå uîWpcþ4ô$%É^3ʼò£–LÒÜÕð?]YÖ0ÓñíË4óïµÊ®ÛÅw*)ZX,£ á¡z™íQÄ£ø=/æöV"Æß„²¯c%Z«è¦_¹D¥œdyÀßÕm%ueeÄãLÜ*ô™ÈA¾ƒ›OÉgQxØ‹L\wnÏ!pµnùñ§ÞN¬Ú¼z•8x5J+ŠžÂoÖ´j͇¿µ…Jçñ4À/Bx%[9ID¸a\á[2±l½tu6 ;±‘º¢¬4_Œý¿‹K=p¹òWh#PðA°ÝŽÀ,›S‰º¾‡•_Ÿßu;gÔlÑÿˆÞ«Øæâ ¤+[<¢˜¦{aïò"Õ)ò.ý¹2ú™ã™§:,ZZÙ²#ƒ0xÓ ¯S‡éVBoL±£@÷Q÷.æm ç´¯öÂ'{ä5Öá–Ÿßö®r|êFîëe\¿……ÕÎ/§‘Ýo}™Ù WŒÓÑÕkŽÉA3O'/}S]6Qµ\•û½5ìÔت«;q»Õ]mduõÉ ùõùhÑÿ=ýîÌëɺ¤f¯J™šVáøb[“ˆ%#Áø0ýnUÅ»]ÒÁׯR^ýŒ<&YZ»pù¬^'YÒêHÛßÙZàÒ‚´jSàœ›—ÊÎO‹­^žŽ%\¿È¦%Œøô ÿHêe ãM5I§¤Æ˜ð+С ÜŒðPïStjvc^ñ±^—A~û°O™°‰é>ã/3qyQuž¦› ä‹&ï¢4|ûíð²‡ûjÖǘ)–Bæ—Æ5z=zÂÊžß§ºFU›Bj+—dêƼåÉHO%R$úŽòÃ~£ýÖãTGŠ )Çöò5x+”],Ë¥‰Ÿàzšþ-Vÿ}dêâ³Êpïf `ü¤d¡,ÜŒ þReÏ#mCçhQ= }йê¨õ]·†ðØõ Þ $·»“¸‡Ë^«YšlóaÍØ¬ÓeÚÁ† Íž¡4èñ½¡ßسS‰~u°}·Iî±V%‚n”¶}‡-¥‘ñIÉ­$é¦;ßBÌ¥ ¹{?:랢·7 M´?þÙÕ as%ºReXfê}»Íyå•ÒöÔ¡¡£îGžÈV’¶Ó/Õ€ÃÈ3È«Í]ª;sÜãù©à~Aü[w`š¶7ÍR°ÌÆ/+ Ä-Æq¸®—{µ‡;n!÷ä¤Ñ_  í®Ñâ×Án®ìßøõÆ “ÑIÀzsçÛ'A¯À"Çñà5½ü×w*h„7¼8™XAÓõÌø,ÞÉnö#6¤z"µë´L8èl 0+¥ñœß’_—Ùd/ù¿ÌÑ =ïÂÁÕÀkG¼Èn´g~]ÜX{¬… Í*Á<úf¤7PÊ4PüxiW½ Sãè»rCŸ;@¹º‚©2õ¶6äX½.jë,N!ÃvwQ4¹»Þ·¼„ƒo0˜aHÚ+,/=‚&ÄhOáø¤·Œ’ÝHêZtÎø ëåœÉyöSt1W:m2JÂÓpL–M²µñÕNè Yò„yº%ýQGÎ9$)7à¸ns«5(*ªÒ !4ýç6¡‹ žJ aæõBÓÎ÷#J¨ Sv`û¿®=œMê"w'·ÃO”_¼:re•Ű9¢÷`ÚTÁfe9 ñêæUm»‚ôÐêu±¦‚F§ßòjò_t·ò8 vðítgÏPÖZEµx5Í¢âj-æèjqmPK†æ5³ ÖÉu:eŽeF®Ó°  ZƒÙÐQR’Vµr&÷aÉ`ù_FyÞ•ë éÏ—j(O8GÐÁ{uÉ2pë>á!Œ ™6TQñ0©—«m½ ã“¡= ì¦Re\©”ÜŠ’…Sfs1@Êí¾µ”™Ÿ… ¿7ŸžHC†$&:,DíÂ|qrgE誉cÑ:XˆýÖçÇuç"N·;¯ì¬E•ÄT®*Î6×ÇæÀQ´²®2ái*]p"<ׯܰ ­†¬ïåo&I*éþ 6þ^dUìй&R=¢¢•;Ñ ›Óøçœ MsO§‹–vœDJû[`övI¯F€£˜)tæ<·íßÍ”çŽM‰m”VÅæ¥ò£4A%çÏøé}šwKG¿kÂ6¦è¼Ü-'t§–Iô}{°Hî#ÔdsxªŠhi;Úceø}SØ…gär8f<7-àU_Ðð(› Ï±‹o¶ 7râÕÿó¢XÙjf•çKÈÿ|Ò6BÄ«è:CsÛø {Ÿ<¯ä‡± •Îã$ý6aŸ±@>èÚÅŠ,¥8ðÓÜ ¤aM¡@‘š UWÏ:‰ä›ÏlX¶a½ iF*ÚCâIA¾e¦-·»JõÔt%ÊÌ.LŽàk:뱺cïWÛ!_/KNØ™ªÄmÄųM1ÄõïF˜ ‡r¨JÉW aBmYå%Чsó„'R"JL ØŒè‘" I~™aÿ4!MÌØÈÐbhEqõéO .‚ÖQÀ÷T—ðÒž?PLÈ?T>ˆ&g»g1*@.¿SZ.ÃyâMæê{âS+!ôV¦Õƒ —'«úîQõZp „>3Ek6aC@~eš8»å-òT*¼dùkwä» š…¢âSÓò\ìö-” -íÝŇy›dùï†.¶í¬Á˜¤ö ¦N£ßÝJZ§vÐ>ƆÏ^GºèÇp#´À¤}~(/¤7§(<áiNk¢v_“5ê>¶X,߯œY”?~¡@nZ 8qÍ–H Œµ%/·ät“.'=aIIÔ.½AôJ.XÍ9r ¹6º¼kè@Z¼ƒ)05 ÖÚýØö¡GzU«…+ ‰p”ØG_ûÖ”8’cú|¯çLh>(1{Óãë&ÅÆ{h{wÈžy5MÐCÓ§lR4Ü%žÉ­à½èwÚùëÿ®•èQmÜÝó%É™g r\Í…=ïÒÑüê´Ï-9¸×9"“OB»J~5>„Ð…7¶µzkªHŒf;t[9šè»ªÜõžñ?/­ÐÃê¾7Æ_ îÑìˆÞtfC5lÒ}O»Ù£‹WF3YM—8N…é)Ý*ÂïöµLG…K1qé*Áùñ{¯.$ž7d,Cyˆê&`O$Y¼¾˜ñ¦p]ÚZù-qÛsFn†œ­Ö¢õu5W{·w¨‹ñÛp&ßRAæa×§‹ô©ÿñì)bzÁ·°5ôäè7Ò+¾ªEµ¦¾3^z\è×Ooòwlœr`ý_XܾH9´âþßûsÍ8 6î„ÆKHZoR_ç .<ŠöiÙCZxMó’Í©Vµ™›+|¿HÇ:ìט9¥8Té=pHßfÆ'lÇ[>'/`‰ìA/vxŒ8KVJ'k$3J"N0€°¡ ñqΰ;YÆÇ«L¦õ­B‰sEBa䣱VGú­Ïœ3VéËÜ*’ƒë®ÞÆ­^ŒÀé6¥²Mú1?“”÷`Îú‡5àÁ ãÈØë¾Üô͆¹ŽÛâMžÒ¨¸%z´“0qí™(‚#~þ0á¼s,<˜aÉWšžBÌ´©{¦¨Ñ1º²Úl),)ˆ–_§œ…›·þâV?÷‰zÃcbLö"+9BG/îḛ́qÇ#óXü@}ÿLÎb²wb±?2|ŠŽü«Aö›ID±ÙSÏNÎÍòà[ªß¥5ˆªÂ[÷&…ð&±#²¹y±«ð‹>gÑùëÄ™¾¥Ì}vr|y˜0Æa`®Â­®–_W‡ñw÷ü³“åŠè,Ϭ œ¶èÔJƹPe.¡VùÚò¸öŒmmSÑ4O³X¡‹Ô{Ê•£!™0 á×È”¿ôLiÖ_p³˜fõ»Ã*Œb û¾ÆîéyL¢ê[|Á¶!¯ µé3>Íf5wk?wj".ãê`däÇ%7<¥fº(ÚFNX°Aºúôldäân·PÆ¡nìÔEÙ»Á"™N«V$8k·°çC“3’ßaÀóF6žBŸgh¦(Ýœ•SKSJ· uþº³òå5ýò‰°éÕcA4âNÕËýRŽhni‚–,JŽû¨ûôIζŸçû¹nÂa ¦˜ð{)!U“ƒÖ&`ýçäUùašñèêš¿¼¸ÇÐ Á¾ƒŸ±Ì:b¼Äzw\Qí4-½ã ¼l&„7Õ°+^•㹃ÃèÜ;Û´lY}6èÃBJe`™—$x[áé<¬e„a´Ð±HY1uýn5X .ÓÄvX¤i~™šŸ&̦j¨ížü4!f.±Nmµ}éÞ ìœëÛŒæîR'—ÒëCÅH©.¸›,=*ÄΟ;ç]Dún§åÛ£2iEr}Fæ$ kûß4_H™Eœ*ud¾DÿºçL¦tß´‚Z‡“¡ÞZhP¯íú=)8¬F…ÃøÕpë"”†h®8 ÷+àÍôNžâÑLlEý¾G+Y}v¯â„Ó aãtȋ·f=|À¯z=bÊÿ<$bÆã`Îèe{/pù«Ï q•uíu_¾@­«¾by§`ûrÁ«ÚP©7É'•z*é`-_éÐÀ}'¼Ö©:ãõ£B Ы°$Ú?êÕk möX’’ž«Ï£¬?h%»wm×_jö›Ûdí¹?¶¾XßÂÒÛ6sôo*MQKÏŠ©>ÑÊ X%ÕÅs§ü,ÅÉ9ÃSwmå9ò”>-’ êƒ$1ÝûÓ£•7±ªÔÇïDÊ¥]lã×MXüU‰' ‘Ãnº[º…£’±LÉ/"™BùW:™ÇOð¸YÔȹ¥¥3Üt{û9{#ß[PŒ¶®ƒý¼¹¼>¤ÆSç^Jq4î™[º5ÑeÿhÀsÓ÷² ‹÷û7¬Ë‡9PñÝä.©ÓuóÉôÔ¸HíZÄFâÕ Ö+j¿ÓÛ^]¥Q¿ªK]Ä|¹‡½œ·fÎÃ|{*ŒùâBjÓV“|À¢QS«®†›•©NÚ*—óÆQf,hÓµm1(7pÿ2 ôFPSÃÅä3hý«Ö˜³V~@u;¾SqÇ"Ðר68®Óþ|i±ïy€Gá㣶 A’¨ oX_£ÚY'U=ÞV?€.XÿMWßrsQ¢XÈïÞ¹ò Þ ËcÂ5-¢9ãF Ã*ÍI‘}^Fã‘/ÆÆLÄ|¢0ëÆL`|Æ„ô’9Aïã(T`4tg[Æ’µ/×ûôªœ„^/¥ho Ý ½œÌFkÁ`_Áª€¥ÕûUÖªØ*@gúÿo{è;KâÝÍp± |ËoÙ…R¤/Wù£Äp¹(ÎXßVXç £ãê¯ë/u\µCdVêê„xk¥)u#ÚñµAì}RQñÝ;&«Ïôpl}+.ù³Çߣ3©ªSds¤:ã× ·5tÏ "OmqFHkE¾ì„»(Dr²„J7ð.^<Á¶ó”¨OjM`Íá‡m>”«YT^pÝÒ&_BÁ 9Zæäy|eŠËâ ¨-Îɂֿæþâ;&I‘(æýèW±†¸l‚q~OòD«ŸN•ø_þð¬õÅ+è†õ"sÎHäÊì‡ýpó£\ê2wð`hôGÀ˰# g´úÆ:Œá¹kå’Y÷ãPAšÊ‹#­î–l‰nÚÝå,XD‡óAè…ü}ÉÏTNÙ‹uÀ/ÌŸq›WqYkSô:—TÕÞ‡I4÷Ôˆ²/¯(f‡k„¯HG«­HX (•²PÉ–%oÆ• Ÿ¹¶™Vl<Ÿí»e@§¼üíx+g‹ÈÂSËßt¥»Ø.§‘E0z0,3:6zø5¯X.|_Pönöª‹.m¡ÅïDÏ3¾ÔO<_ùlÇ,o¶FØülÐÿz† Ö4ƒŸŠ3©Æj Ðìb>jÛ ' Fjüq^J5_ò3ûù¶-ìÑýÆé]%×â/0Û<Å  :Õr) Üéó„áfyŠ¡G^·<ƒ†„=‡–ánXEœO:2ŽkÉs©ÔB’ U­K¹¨øEIWeüí*¯¸–ñé-žþ•[&ÏœÕR´|ê3u¬CLÃ^” 4Bcºí ,…"r@ÀHµï@`ñõVÄQ‹ Iª_2u6ïɇ宄Ô!nù²Í¯; \y™Ëj#á\!3fý}™‘?†Ëûpøß ‰äm F5hN™{p‹ÓëÎÒJuœåÒB=—Ò2e£…Ó4MIÌTQG%æ0T=~ô¶7«˜vÅʈCò! LÝå®Ë$:¿²Õ¸]Ba°½ˆ:‰¨pFÒ”2’›sgýË{4>z¶ ë YUóÆÖ¬jƒ‘|òŠk“üÁphlæ<»îljXPÕ‡Œ+¡j°)XTÀéù¶òe¼½Ç]û>BZ¦­è˜ ™Õ^ƒ®r:"ªþ!,É‘oìÃå´èë¾À˜´ú#8QÌÚ2k^¦ HIW\Ô#…ʫĞvW> Æì #ç¨Ü'’£§¤ÛŒ¯Óûë˜ïAšœ˜Tm:¼Àþ’dÆPÊþ¯ ÷üO4¡~ɦU·µI¦ÛÆÔ´”®eÑD_ï¬Ðï\Ú ëY¹¾b¼ 1c¯TÕà‡{…ÖQTªQåþ|*8ª$ˆk/9¢¦Å,mì[h0|ÄILj)§òߦÚQÈîw”6äÌáÎC}‡%8Ha²rEÆÜ}›‰eNxga‚ïoø@ºðcù²iY¨§ [÷t´Ìo°eã(`Q>Zô«hÍ^K¢(µ…°h¸þÄPfA¼ ÛÔo;XÀ”8‡•Qt%—%+¯ûH4 $i­ê‚FG¹5pC˜7}¸Ê0_»(å@ƒ¶‹;•IBë9Q!¥\ƒèE×o£1$7î}¡ïò˜èzR¾®Cvƻ͹Ί/f§[˺ š ØøoÙTØÏ ™‹ÖÉßK©Æ&\`v)U¦-]ý*w—ÒÏ>sH¸ÈD!ÀM`ÈE/qȃïÃäKŒt¢QxYû¢æÝäsÁm™"¤f\ün†ÂJƒüEæy ³ ¼9çtŽœ ‚“ê“ó(ùæÖ©˜^â¤ÆæhŸ¯GS¾ï}‘Ç´9/-òV_~iBÞ(P°§ÊBaË«©aD)€¥S¨ÖÀ ÑÏ™‘ÀB|ÁЭºH†ÑzUmà™Ë‰!e¯ÑŸËþåuÆEøó¼ªNv“ÚÒkŽåØøù0#ÈLJ‘P<ÙÈŸužÛæÊ~hÿÉÊðPYeŒWŽ#¯ÚºÆÿê†(5P¡ Bx|[’­HÊ•“”Ù™-œfÄ7^ÓJ·,†ñ¥éI´©0<&ŸÔ5óÄñØ}ÝוÙEx=ϵLÆPM¼®9¼¾ì¤ôØùÚ}wCk³úY˜ô*>Ùã98 ñÀ%3ÄK±ÓÚ&査²0ë‚©KoÜ-c•öQm|2dD2o œ¶¡Ôü¥vëéF©n‘ØîÎpKÐh6ðÏKGØD(V ªk~é¨K4 #nq…ÃW ¡¨Ë È#\ ½>§‰§²@Šmö¸Ûhƒ³=Z®5! J|¤®ŽŸâ`÷Ï!¼ðÔ]†ñtËmòvKý´|,½ƒÙ$įÜ_;Úw[Ç(MþÞªRÜY¬UuE€¥WCèAHV¢f[ÙÝv~XaêªÌ¿îÎo UõiQ4^FÈ\̪Ø­“ÁÐNHÇÍm4ák¡ëÕñV·‘NH¶³Á^hqn ¿eŒâd˜CP5© $LJ8¸×ºãž@ßø%›Æé”Ü—Ý¡¯êÕu˜Ôx«`þÉr6¶j¢I¸¯UÑŠ&4±ÑFG¬^$Rw9»¥zÝP˜+~ãêœßÜ$FÀòbšY™®TÜ~­5Ãâ+…Oå}I”ùÃvšÞI!zK§ÖóK˜ú8d¹¯ÕÙ"š›NB€fº£ˆ˜QN-QŬærÌ^žüQyD‘íá“Á@Ö:ú¯æÎÐt™ Aꛪ~éÄGFºž 3!pOÚS{¯*]ß#l‘õ ö Ĝ޴D [éMž Yžã¼SVã¾gˆ'5ã,5:þšôh€ä¶³x>"YÀ‘H°ä;+ý(C”|¿Iw„Úmx¬gí/êè¼1áoèc^Í|¼f"Ò ,OäWW‘ªÐ #6¿‰û*(Ȳ‰‘#WlVFz|c®ÑNÈz=#´îQ/f³Ö®ÚlÓx¨Œ@2ÉÇ› ìQJ©ÍM'CïxkôÙþdv¼‰n7IùZ4 :»À¹hÓ, €[-xß÷IuƒFµCƒtÞÜ8¾ ÞñÔ’ÏŸYú>¼|o"ýëÇ…C¶ãv.|ôä<£2žm£îˆ$ û€*^²{xÝKé>J| ê‚n£GÒÇB{ü™ŒèV§Õv\¦ë¡ÏkDâ+É\ƒK¨ ÖS\«G„VþBG"„$)ÔÎR³„³åÅh¯ÓÁ‡šV€—û¨m(knÿ‹Äò—Ð4åê9Ç[ A¯I¯n‰UQìà®!WnÝ—À T‹‡CUA“°J\Á…KuXd—”pÔMU¸K¢^°Lâ,šf| k(þ=EàÕÐ9?ÑɃݬôÆuéžÚbhþ‰,祫J瓤ã7œ/N êiÙ^§+#¾”­©4²ö¡ÑéöÙdûæ÷ÜBjYüšà_Ð |»÷€Y„Á7ïìó€Í°ŽÞg:pqN-~CÓ¯o¬ø Þw$]#rˆ2iÁ‚•—i¡½‡Ÿâœ“³—¾gN4DLFÚH0èkØÒÆB “ò‚h;úØ5 üXÜ3™” Òæ’dÙ<‰ ’ƒ‰=ùc$Úö·ÄËOµv~›XhäóŠUƒÔñ¶3‹6™£~× /dVÒßâ¡|ê²už”LpèÊÈén= ]f]'Âb`–\rjGÁ Ñålû^Å‚öXëÏ~™½¶æD\;½ûö¯Ó.ú/®Å°¦QrEiIÅGjAÞ˜ƒëCþ6®=n°$*a±ƒÅñŽ(Ϻ*ѵxʈ›mWFÌŸfO¦“‡YuC5Ÿ(Ô2‚É5-ZP¨4Ê‹¨º?(¹i˜¬I¯“ÚGÿ¶¡–Z9®ý+ }«8ý1 ˪–öúñFÎEIBì^µ×Ç™8>hx(o‘áÅ-5#¿ÏÂq‡‡#?Ü£C7–ñw@?„‰»{»{Ù´`vó)(ÆQ9MƒÂ*ƒÚhŒŠÂ‹‘|~§Nb£'+º1ŸîûS·IyÇmÔ@žó¯Ê .ÆóžEn™S¢^âÏ –š/cn%ä¸Jc´ëȽ±7¹?‚üÏe¾Ïp‰zžu)a-QíÌ›§|ûj§ÇNŒH'H Ò·†QODjªÂ)·Ç7µ-9cÕÛa?’†ë0ÓéÅÃ2ƒ¹rvvRÒiC‚\ @Õ̉Øù ”?êUÐÞp~@<ð¤8ý$»mþ  Gpß “Ó)--ûfÔî9N¤*ÊÇ› ß ¦©`‚ê» ¢”VÜn˜?_àÊ!ïiÂ+àâ@Véî“ÑÚòa=Y~V12 ÛL˵|™G—É᣻ÙL_yµ­ä/´„;ø¶ÐlNfc²8§ ºü²…_X›kR$—äeË”j²ˆK’üºýœäô"î^eógw¦;øÕ¡biöŒW¸ð{°€–ZG |–;µ%ÆÈç~¶óżÜ_T~ä€ÍöѰ9‚ÁO™ZŒ-dTTõOŒîñ•F(Sqçª9 sÇñ~·ÑšEÁt›ô$tÞ+:‘lÁ04¨‹ën?U,,ÐWRÉk—Îv€åžôÞÕ¨ÇìÌAb=_ç"ïˆ+̽ŸˆöB ;TûÁ¿/ö«Ïgò.מÃ0 j4ŸbÌaë¡7‹¢DØâu‡4Xš€ýZ{YI̓°þ&¬%¸ìÁ ïå•ÿ•ÞßAp´í³ß²®«€H¤Ô‚y¹8”E>© žÑ•Ý )Èt³‘ŽÌ:/…ÍLk±þ“¢qžõ=€Œ)ù×LªÔí#ßÀ9¬ÄEÕ~Ul«ÙËœ&HMÈ-9 ²9+ô1/ˆ°à£í‹¦²L¾½å;ÉãHdlð‡!×¹1¼z±æS²"_@ë[s¸{ ? ˜òJªãÉGI§¼_86ä8Ÿw¸'ÔU]jP§8¹.sÙœ#ßsÓê4ñìþ§YXÒ€fC×|éU½ ­TI<šÔ7ƒ#¾­”%“˜ N"C‚8Tàk¿z˜Ñi=܆ ï|ª¥0·x1®VÏ×°ªè0ÉcŸK‘ØOqÚ"3Æû)HMqö—_o -Ø:L^ï¿G`÷mo~pÛÖ.îe|ËCJ)¤B¬c ~yï}ŠÊÜÔ>ú þ¬Lð'¹e=šÉ$Ľ×Ã2»Á0…kø†Ãç‹H»QrÖêLˆ,þ”í0›r®Î!`=†Fâ“™²ƒ2µ°V›˜CòSVl1öšˆõ€ê6¢ ìľ@0^–œ½7@›ˆŠYÍÉÔuβ+À³/ðHË˨Þ>Fê7õµá ù D¤§žÿ§>›!Ñ‹˜,î(ËEkEKWSÿ¦òŒáÒΊDå‘§Ì›N‹ }b®sïÂF{q¬'µ!cÏ ÝÈ2CKÂá eüž÷ñî Y¼MîÔ¢ÓÆ3¡€8„~?_›?ÊK¢a_°&ûnðBV?Ze8W¼É"˸°·B´Y÷ÍÍúÒ0jûœÙ;¢Tþgö™ JDÖÛ_è9ëPϹ¨¹Ug€,—Í7kë\–CEÄÝùC“ñZ¢ìý:Y×d“;¶óxwN›§”QJ;tgT™2PSôú˜Ößrá§Ÿ%Ú ·íy=ÙµP·+¢E£³Ø~’hVuŽºÎY‰…œ@_I_ÛP&]âT"Dþ‚U( õKÎuÒ‚ÐðzߟW©“z2ÃÍù4¢Ë,ÑÒa… ƒxg±;k,-¸Ä7Nh€Gżæàyl¹Æ¶¾†K<ÎpÍhÇöŽë³áòþ+÷”rœ†9ÿ|†”ƒ–€¯¡Þ%»c÷*aຸ5 ÞÔŸÜâ°§Æ[¨,«ð±îQ,lŽå§:P µ¤·?&ŸÇÇçT{kž¬7Œ–U,7h6´É;2#š§®GÞá' ¢ô r¶XØUiñ"ê Ób[çæô~ÁùgŽ‘$ {XBÅq Ó¾Ô6[½½·Jt¹ô@_w¦O®îõ}Åd‡+ù„¼#•7s±áEEjDåî4ëANƃ8¼¼ Äÿù,¯>ÌK— UÎâ1¾…—›¥MÍ ¥À…¸ÌÐÜôwÞqMòã»!ÏŒºÌ̱JaëSÒ`2çoÖøÍ™^èqûR¿:°w[Lpr½ïq.K0Q±,þYÒ(dÃÔ ô6@å:E=ö&Ž>©°Ý·+äÀa9|†°Ù^öyp›Aâ-Ïõ‚z–=g?ë*LUó¹Ýr™©±u:­b•^TgYz›æS^Ÿ’ÂM ¸88!¼Iää”"»¨ ×̬LŒ£½À¾ÞàÞKÁ2aÙ¼­dT4Q·±ænë‘ðÇ“L’{$þó>—oo/jšÙ¼'ìåïOš”PªÏ­H1.A)uwú ¯U=ÅäÅb(kÒ¯—³þ‡‡ Ó™¾fø¦“íöÖ„ûGÒY`£·l×Hðæ§y3©†`’ràž)Ü›EŸ‰xä0V ÄÝ ÷d„ÎÃmŒ89ï9(ÝbuëVbˆ¤‡):›å%¿Þ‰Åí÷õ’ ³9oµVáKµÐ ÑÚ¬X…{ˆãý¯¨žMÉxÉ­G$ë_ñIÎok±«Z &0B£-È´÷NQ(]?x‘/¥Ëßi„Ñ"uï 0bæÄžQ Žœa£­èr°Ý… ¤ží¹á­¥ág]íÓ:(àw–!µÔÅ™GsÈâÞ´¶â)˜IŒ¡!‹ }cÄ+êd RÉÒ £½&ª"a$/tñ6éÄ’Wn-©ÆL ¢0åʼ*À½awäÙ„ú`ˆ"»&XénüÉ!ŸÂá†îQ2a˜Ȱ'YYÓ´@H“šøðî ¤ùÍmÓÅøº¢ºÐæcÓ[ô‚7c‹öU™‘Ð*• ®b©æy1rj«pü nÓ³ak¡ÔÁÏ~"P€Ñç~:msÓ`÷ó¼17•â'<»oO¢ âÿðù³Øá¨Ù@~èÏÿÕˆb‘j-³—ƒ‡2b†›ç×!±”f!jÑÃr<Þì…¨n¬:JŠLÿ·KjÊ65LíI3:y¿ö9yžñ+»¬«þƒÂ Êܘ‘YRKIÅ@?°ó¬ŸËYø Oµç£ @·ƒ6ƒdXÖÎŒ Xg¯]ÿïâÄŽnJ*Ò s‘¤p„°†¸ƒûCæ§Ìºrß6ã¯æ?Ø*“²¯™SÎ5žD­ÝðŠè<…—QÈ$†·reÉrŸlÆQÅFvË>¶=5e½)c9îøœ×šÉßi±¢¤›ûŒþæÊÇ5ˆO>™Ç-ÎNÂ-ö”Y.U„;¥èëÔ1•{'/dtÍ §9\d½îxr!V€C­Ò°û£GùVmg`ÔìrÎFø=›h¦ˆb)¶}›~!¬_‹£%Ë~•iP ü ¿^³ JU²œiŽ»ï•{‹ÚöK~£bwéþ¡ÏU~™˜¸ K®#!™ðÁ²bžVw¦‹Šõ€ o¡x>ÙÙ¡-òiÐz/,6È W)q°€º–¢ èÑ®»]þCIrÄ$]q®W0r¨P~ñN<®C`ØYô´ÄJø“b@©ÂúÞ2–û°={ßbõät,ñ,ãg¯Eý qåL!^9jKD—9}”Åv%!’f bPåoyÿWLX…ý×NžÈ§‡k9ÕH_Ƶ‡ç4ØmÓôŸîÂ3«9³ÈM_Iã óðØ*¿ÌV øn¥œé½A' Ú'X¸-e˜´Ä206'†]µÇÌ¢o]—@©I•"7h"{×ÍëvH ÉޅЗÎlŠ‘ÉIsâRÃÛ Ù%¯t»èsSü"”¿ñ“àÓ3ì?ÉÙ“ñƘ]ü–ì|ÇðÕ[wnÕF¢;íƒ~vD¹Ð­7˜lØ1"f^FB³`Úàž!2©ãïÜ#û|ãGo‚‘fØY5žL;ôÿ‘¤5hóÝ9Ê…¨:‰wy¶äÞÛÚæEHêºÕ JëÍL¨¥%ûÕ–sÿ! dù<€Ãl©5 ÓFê‡Ù@¦Ø¥`F ¹¡P»»þ ]¯;}Š@q87AoI¹nE2)\ÕO¦7`:û@]ÍÉSjJ“G6Þ|Éœ¿y0ª•©BÂtX¹Rž©‚Ç$*é…z_$è@m‚w½Õç _ÿVîµ 'R#E*éŸøŽ½áq0O’xià7ÏR? ¾ö9T4…k…°Œ»ib)þÌìRyœ˜û7Ã$6§Z­E^™iWGÄ›úbËÑz˜¾A‘ö jšƒï¡ai·õ"ÂÐþ²lqY3Ùß aˆL,Å 3+$¡ù¨ü×àûóØ.¡sçeRúgRL!®2WL3f% ‘¹øO°SƒÛÁµC5Z=ø]êOELe¢ªªŠ?`‰E« ?gH!S€PsFÃј„0š³+–©6ÊöÕöÝÚ±A ^õ‚è÷õï7H°¯XãeÎvÛI×¥‚/@D2á…æ7L|Fq §‰¬-Jêí²ÍÖ´ ¬öìÁhë­(í+·€œ¢²ô·dÕßP]À ^0_ûvÅ…Ÿİyí÷ï'U³¢Lª?Ѿ)gÓˆ¾9²¡¾=ÞÇà럋˜¦–M6WÐŽÏi€¹<¢J$5Í8ËúJ ”gý*| zûbf9'½ý>µãLX-&rS¡¢ó%—¦VŽ1(¥ô©¹V'+Š;ê0õ=ªJj-al³?æ]np~R…gûn£"BÿûŠYd|v½ Σc®¥þ{]k×çÔŒ+~°qÿæ1"?‹ãËãnÁÂÒñ+¶Z°Ö|_å<6ü–[<ÕŸöÓa ÏwW6†{w-óQ“l{£‚¾Ð}Š$¿Eœ¶¼@ï¾Ìf¬OU9²)‚ílE^}©ºt;ƒŸ¼žõ ˜.R1'Ð<ÉÎP]uߊ&£9Ã)m2éúä™Ú·;ÝûÓ£’†§ OÛ~Áˆ_ö­£-÷W5Ü.…$JGh'=ÝÂZGµ">þöûÈÿ%^X+û—<â’0²"d©aM:Unr1ÚAW È­{æƒûkfÚüy=FlÓÐU.³Ý„ÞÏÛ;Ò‰\˜ç½u ìßÕ}¿>ŒâLbi|­÷»¸êñ¢Â¶Rê–8±/ÈÛÔQÙYUÂa0rVæQÌ r®"gäKºòúþ‹×ò¯žÞL#ÃU·hÛ]„gà?–Ì?ìè³¢ Ïe”T"ï: ï¶•—)z©l10íÑ܈JˆQuàQØ»­¼ð#°…"i\bÍèô98¦ÀHQ·Qi/,ï+Ð^ˆ8úÁî©Å­C[àª<‰xm˜¬›)¶¦Ò™¹´e¶dåyZ}ÅŸ½RZ¦ô—™ÙŸÃµútóœéH–?g+Nt]ê{%«î³ÉÃl s#0k#b» -w^­?Ù£‹Ÿñuë†{“µ&g^·øc½n°2Ql70²¹Í°ø<¼%ØÐrîŒ6BhÄôÞ SµÂM:>TØ2帹v¬~ôB·Ð5¸ºNÝÃlld‰ˆ!'d%?/f&,îp/ã*˜<­³ñô|×û6íÁðûƵ&óeGCµX+êuH5ð{Kâ8GÕ´ö|èÛ³ÿ”Å>§ñ¼rÆ”ZEÉc˜¯¿„åõR-úQ tìCtÓS›½7°’1YT9–ï¾êÕëàˆhþ€øíö` YïSÆ UÅÈ>ßaµÏI³Â†Öô÷Ë‹?‡eÅO\ú>Bq]Ñ-¼ô©÷T¶«ð¢³k¡Ñªh{(ìÅÝdp#Åfm,³¿¯Dk”) ê{K-øŸ¦¶“¾÷–%CföþZäy(Ì•²R‡±SØ^óÑ4ÌÙPø]KŽC› &®ò„ŽÐ»‡´ìÏ2(º7RÓÕ]ÑÄ Ù„ó´¯ÿN¤ Ì endstream endobj 126 0 obj << /Type /FontDescriptor /FontName /VGTRPZ+URWPalladioL-Ital /Flags 4 /FontBBox [-170 -305 1010 941] /Ascent 722 /CapHeight 693 /Descent -261 /ItalicAngle -9 /StemV 78 /XHeight 482 /CharSet (/A/C/D/E/H/I/L/M/N/O/P/R/S/T/a/b/c/colon/comma/d/e/f/g/h/i/j/k/l/m/n/numbersign/o/one/p/parenleft/parenright/period/quoteright/r/s/slash/t/two/u/v/w/x/y/z/zero) /FontFile 125 0 R >> endobj 75 0 obj << /Type /Encoding /Differences [2/fi/fl 35/numbersign/dollar 39/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 61/equal 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W 89/Y 91/bracketleft 93/bracketright 95/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 136/circumflex 150/endash 168/dieresis 180/acute] >> endobj 18 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ALMMEG+CMEX10 /FontDescriptor 94 0 R /FirstChar 0 /LastChar 88 /Widths 82 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ILWWVQ+CMMI10 /FontDescriptor 96 0 R /FirstChar 21 /LastChar 122 /Widths 87 0 R >> endobj 16 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RMHRGR+CMMI6 /FontDescriptor 98 0 R /FirstChar 73 /LastChar 120 /Widths 84 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HMBPPJ+CMMI8 /FontDescriptor 100 0 R /FirstChar 21 /LastChar 120 /Widths 88 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LCTQYL+CMR10 /FontDescriptor 102 0 R /FirstChar 1 /LastChar 116 /Widths 89 0 R >> endobj 20 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GBCRXR+CMR6 /FontDescriptor 104 0 R /FirstChar 48 /LastChar 48 /Widths 80 0 R >> endobj 17 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FZJFMW+CMR8 /FontDescriptor 106 0 R /FirstChar 40 /LastChar 61 /Widths 83 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KJFOJU+CMSY10 /FontDescriptor 108 0 R /FirstChar 0 /LastChar 114 /Widths 86 0 R >> endobj 19 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GUOWTK+CMSY6 /FontDescriptor 110 0 R /FirstChar 3 /LastChar 3 /Widths 81 0 R >> endobj 21 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XYBSMX+CMSY8 /FontDescriptor 112 0 R /FirstChar 0 /LastChar 3 /Widths 79 0 R >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QDTWCG+MSBM10 /FontDescriptor 114 0 R /FirstChar 82 /LastChar 82 /Widths 85 0 R >> endobj 64 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WALVWL+NimbusMonL-Bold /FontDescriptor 116 0 R /FirstChar 97 /LastChar 120 /Widths 77 0 R /Encoding 75 0 R >> endobj 50 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JORXYL+NimbusMonL-Regu /FontDescriptor 118 0 R /FirstChar 36 /LastChar 121 /Widths 78 0 R /Encoding 75 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RNAFHO+URWPalladioL-Bold /FontDescriptor 120 0 R /FirstChar 2 /LastChar 122 /Widths 90 0 R /Encoding 75 0 R >> endobj 71 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YQQGFY+URWPalladioL-BoldItal /FontDescriptor 122 0 R /FirstChar 73 /LastChar 115 /Widths 76 0 R /Encoding 75 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VSQAYE+URWPalladioL-Roma /FontDescriptor 124 0 R /FirstChar 2 /LastChar 180 /Widths 91 0 R /Encoding 75 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VGTRPZ+URWPalladioL-Ital /FontDescriptor 126 0 R /FirstChar 35 /LastChar 122 /Widths 92 0 R /Encoding 75 0 R >> endobj 7 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [2 0 R 9 0 R 23 0 R 26 0 R 29 0 R 32 0 R] >> endobj 37 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [35 0 R 39 0 R 42 0 R 45 0 R 48 0 R 52 0 R] >> endobj 57 0 obj << /Type /Pages /Count 6 /Parent 127 0 R /Kids [55 0 R 59 0 R 62 0 R 66 0 R 69 0 R 73 0 R] >> endobj 127 0 obj << /Type /Pages /Count 18 /Kids [7 0 R 37 0 R 57 0 R] >> endobj 128 0 obj << /Type /Catalog /Pages 127 0 R >> endobj 129 0 obj << /Producer (pdfTeX-1.40.10) /Creator (TeX) /CreationDate (D:20110411232058+02'00') /ModDate (D:20110411232058+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) >> endobj xref 0 130 0000000000 65535 f 0000001438 00000 n 0000001334 00000 n 0000000015 00000 n 0000244758 00000 n 0000244590 00000 n 0000244248 00000 n 0000244927 00000 n 0000004512 00000 n 0000004407 00000 n 0000001528 00000 n 0000242936 00000 n 0000242795 00000 n 0000242514 00000 n 0000243354 00000 n 0000243771 00000 n 0000242655 00000 n 0000243215 00000 n 0000242375 00000 n 0000243495 00000 n 0000243076 00000 n 0000243633 00000 n 0000007652 00000 n 0000007545 00000 n 0000004734 00000 n 0000010385 00000 n 0000010278 00000 n 0000007805 00000 n 0000012161 00000 n 0000012054 00000 n 0000010548 00000 n 0000014889 00000 n 0000014782 00000 n 0000012290 00000 n 0000018200 00000 n 0000018092 00000 n 0000015064 00000 n 0000245034 00000 n 0000020704 00000 n 0000020596 00000 n 0000018339 00000 n 0000023374 00000 n 0000023266 00000 n 0000020819 00000 n 0000026997 00000 n 0000026889 00000 n 0000023465 00000 n 0000030351 00000 n 0000030243 00000 n 0000027100 00000 n 0000244080 00000 n 0000033078 00000 n 0000032970 00000 n 0000030527 00000 n 0000035860 00000 n 0000035752 00000 n 0000033205 00000 n 0000245144 00000 n 0000037731 00000 n 0000037623 00000 n 0000035975 00000 n 0000041191 00000 n 0000041083 00000 n 0000037834 00000 n 0000243912 00000 n 0000042467 00000 n 0000042359 00000 n 0000041354 00000 n 0000045938 00000 n 0000045830 00000 n 0000042558 00000 n 0000244416 00000 n 0000046983 00000 n 0000046875 00000 n 0000046101 00000 n 0000241933 00000 n 0000047111 00000 n 0000047302 00000 n 0000047416 00000 n 0000047778 00000 n 0000047820 00000 n 0000047844 00000 n 0000047868 00000 n 0000048413 00000 n 0000048563 00000 n 0000048870 00000 n 0000048894 00000 n 0000049551 00000 n 0000050129 00000 n 0000050747 00000 n 0000051391 00000 n 0000051867 00000 n 0000052553 00000 n 0000052923 00000 n 0000060801 00000 n 0000061146 00000 n 0000075220 00000 n 0000075526 00000 n 0000083651 00000 n 0000083877 00000 n 0000095283 00000 n 0000095570 00000 n 0000107592 00000 n 0000107928 00000 n 0000114935 00000 n 0000115156 00000 n 0000123723 00000 n 0000124005 00000 n 0000132961 00000 n 0000133303 00000 n 0000140470 00000 n 0000140701 00000 n 0000147909 00000 n 0000148147 00000 n 0000150457 00000 n 0000150674 00000 n 0000160006 00000 n 0000160275 00000 n 0000172819 00000 n 0000173160 00000 n 0000192974 00000 n 0000193360 00000 n 0000200780 00000 n 0000201028 00000 n 0000224740 00000 n 0000225267 00000 n 0000241543 00000 n 0000245254 00000 n 0000245328 00000 n 0000245381 00000 n trailer << /Size 130 /Root 128 0 R /Info 129 0 R /ID [<2C37EEE33A1BD96532BA13A6B5C30019> <2C37EEE33A1BD96532BA13A6B5C30019>] >> startxref 245648 %%EOF Ipopt-3.11.4/Ipopt/contrib/sIPOPT/doc/Makefile0000644000076600007660000000053011547161450017371 0ustar coincoin# Copyright (C) 2009 International Business Machines. All Rights Reserved. # This code is published under the Eclipse Public License. # # Author: Andreas Waechter, 2010-05-26 DOCS = sipopt_manual.pdf all: $(DOCS) .SUFFIXES: .tex .pdf .tex.pdf: pdflatex $* bibtex $* pdflatex $* pdflatex $* clean: rm -f *.aux *.log *.bbl *.blg *.toc Ipopt-3.11.4/Ipopt/contrib/sIPOPT/doc/iecrv5.bst0000644000076600007660000007403111547161450017647 0ustar coincoin%% %% This is file `iecrv5.bst', %% generated with the docstrip utility. %% %% The original source files were: %% %% merlin.mbs (with options: `ay,nat,seq-no,nm-rvvc,aunm-semi,xlab-it,keyxyr,blkyear,yr-com,dtbf,note-yr,atit-u,volp-com,jwdpg,pp-last,num-xser,jnm-x,pre-edn,edpar,bkedcap,edby,edbyx,blk-tit,pp,ed,ord,jabr,varand,etal-it,nfss,') %% ---------------------------------------- %% *** iecrv5 *** %% %% Copyright 1994-2005 Patrick W Daly % =============================================================== % IMPORTANT NOTICE: % This bibliographic style (bst) file has been generated from one or % more master bibliographic style (mbs) files, listed above. % % This generated file can be redistributed and/or modified under the terms % of the LaTeX Project Public License Distributed from CTAN % archives in directory macros/latex/base/lppl.txt; either % version 1 of the License, or any later version. % =============================================================== % Name and version information of the main mbs file: % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)] % For use with BibTeX version 0.99a or later %------------------------------------------------------------------- % This bibliography style file is intended for texts in ENGLISH % This is an author-year citation style bibliography. As such, it is % non-standard LaTeX, and requires a special package file to function properly. % Such a package is natbib.sty by Patrick W. Daly % The form of the \bibitem entries is % \bibitem[Jones et al.(1990)]{key}... % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... % The essential feature is that the label (the part in brackets) consists % of the author names, as they should appear in the citation, with the year % in parentheses following. There must be no space before the opening % parenthesis! % With natbib v5.3, a full list of authors may also follow the year. % In natbib.sty, it is possible to define the type of enclosures that is % really wanted (brackets or parentheses), but in either case, there must % be parentheses in the label. % The \cite command functions as follows: % \citet{key} ==>> Jones et al. (1990) % \citet*{key} ==>> Jones, Baker, and Smith (1990) % \citep{key} ==>> (Jones et al., 1990) % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) % \citeauthor{key} ==>> Jones et al. % \citeauthor*{key} ==>> Jones, Baker, and Smith % \citeyear{key} ==>> 1990 %--------------------------------------------------------------------- ENTRY { address author booktitle chapter edition editor eid howpublished institution journal key month note number organization pages publisher school series title type volume year } {} { label extra.label sort.label short.list } INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { s t} FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {add.blank} { " " * before.all 'output.state := } FUNCTION {date.block} { skip$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "\emph{" swap$ * "}" * } if$ } FUNCTION {bolden} { duplicate$ empty$ { pop$ "" } { "\textbf{" swap$ * "}" * } if$ } FUNCTION {tie.or.space.prefix} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ } FUNCTION {capitalize} { "u" change.case$ "t" change.case$ } FUNCTION {space.word} { " " swap$ * " " * } % Here are the language-specific definitions for explicit words. % Each function has a name bbl.xxx where xxx is the English word. % The language selected here is ENGLISH FUNCTION {bbl.and} { "\protect\BIBand{}"} FUNCTION {bbl.etal} { "et~al." } FUNCTION {bbl.editors} { "eds." } FUNCTION {bbl.editor} { "ed." } FUNCTION {bbl.edby} { "edited by" } FUNCTION {bbl.edition} { "edition" } FUNCTION {bbl.volume} { "volume" } FUNCTION {bbl.of} { "of" } FUNCTION {bbl.number} { "number" } FUNCTION {bbl.nr} { "no." } FUNCTION {bbl.in} { "in" } FUNCTION {bbl.pages} { "pp." } FUNCTION {bbl.page} { "p." } FUNCTION {bbl.chapter} { "chapter" } FUNCTION {bbl.techrep} { "Technical Report" } FUNCTION {bbl.mthesis} { "Master's thesis" } FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } FUNCTION {bbl.first} { "1st" } FUNCTION {bbl.second} { "2nd" } FUNCTION {bbl.third} { "3rd" } FUNCTION {bbl.fourth} { "4th" } FUNCTION {bbl.fifth} { "5th" } FUNCTION {bbl.st} { "st" } FUNCTION {bbl.nd} { "nd" } FUNCTION {bbl.rd} { "rd" } FUNCTION {bbl.th} { "th" } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} FUNCTION {eng.ord} { duplicate$ "1" swap$ * #-2 #1 substring$ "1" = { bbl.th * } { duplicate$ #-1 #1 substring$ duplicate$ "1" = { pop$ bbl.st * } { duplicate$ "2" = { pop$ bbl.nd * } { "3" = { bbl.rd * } { bbl.th * } if$ } if$ } if$ } if$ } MACRO {acmcs} {"ACM Comput. Surv."} MACRO {acta} {"Acta Inf."} MACRO {cacm} {"Commun. ACM"} MACRO {ibmjrd} {"IBM J. Res. Dev."} MACRO {ibmsj} {"IBM Syst.~J."} MACRO {ieeese} {"IEEE Trans. Software Eng."} MACRO {ieeetc} {"IEEE Trans. Comput."} MACRO {ieeetcad} {"IEEE Trans. Comput. Aid. Des."} MACRO {ipl} {"Inf. Process. Lett."} MACRO {jacm} {"J.~ACM"} MACRO {jcss} {"J.~Comput. Syst. Sci."} MACRO {scp} {"Sci. Comput. Program."} MACRO {sicomp} {"SIAM J. Comput."} MACRO {tocs} {"ACM Trans. Comput. Syst."} MACRO {tods} {"ACM Trans. Database Syst."} MACRO {tog} {"ACM Trans. Graphic."} MACRO {toms} {"ACM Trans. Math. Software"} MACRO {toois} {"ACM Trans. Office Inf. Syst."} MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} MACRO {tcs} {"Theor. Comput. Sci."} FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ { pop$ pop$ "" } { duplicate$ empty$ { swap$ pop$ } { swap$ pop$ } if$ } if$ } FUNCTION {bibinfo.warn} { swap$ duplicate$ missing$ { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } { duplicate$ empty$ { swap$ "empty " swap$ * " in " * cite$ * warning$ } { swap$ pop$ } if$ } if$ } STRINGS { bibinfo} INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ bibinfo bibinfo.check 't := nameptr #1 > { namesleft #1 > { "; " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ numnames #2 > { ";" * } 'skip$ if$ t "others" = { " " * bbl.etal emphasize * } { bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } if$ } FUNCTION {format.names.ed} { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f{.}.~}{vv~}{ll}{ jj}" format.name$ bibinfo bibinfo.check 't := nameptr #1 > { namesleft #1 > { "; " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ numnames #2 > { ";" * } 'skip$ if$ t "others" = { " " * bbl.etal emphasize * } { bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } if$ } FUNCTION {format.key} { empty$ { key field.or.null } { "" } if$ } FUNCTION {format.authors} { author "author" format.names } FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } FUNCTION {format.editors} { editor "editor" format.names duplicate$ empty$ 'skip$ { " " * get.bbl.editor capitalize "(" swap$ * ")" * * } if$ } FUNCTION {format.note} { note empty$ { "" } { note #1 #1 substring$ duplicate$ "{" = 'skip$ { output.state mid.sentence = { "l" } { "u" } if$ change.case$ } if$ note #2 global.max$ substring$ * "note" bibinfo.check } if$ } FUNCTION {format.title} { title "title" bibinfo.check } FUNCTION {format.full.names} {'s := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { " " * bbl.etal emphasize * } { numnames #2 > { "," * } 'skip$ if$ bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {author.editor.key.full} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } { author format.full.names } if$ } FUNCTION {author.key.full} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.full.names } if$ } FUNCTION {editor.key.full} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } FUNCTION {make.full.names} { type$ "book" = type$ "inbook" = or 'author.editor.key.full { type$ "proceedings" = 'editor.key.full 'author.key.full if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem[{" write$ label write$ ")" make.full.names duplicate$ short.list = { pop$ } { * } if$ "}]{" * write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {word.in} { bbl.in capitalize " " * } FUNCTION {format.date} { year "year" bibinfo.check duplicate$ empty$ { } 'skip$ if$ bolden extra.label * before.all 'output.state := ", " swap$ * } FUNCTION {format.btitle} { title "title" bibinfo.check duplicate$ empty$ 'skip$ { emphasize } if$ } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { bbl.volume volume tie.or.space.prefix "volume" bibinfo.check * * series "series" bibinfo.check duplicate$ empty$ 'pop$ { swap$ bbl.of space.word * swap$ emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { series empty$ { number "number" bibinfo.check } { output.state mid.sentence = { bbl.number } { bbl.number capitalize } if$ number tie.or.space.prefix "number" bibinfo.check * * bbl.in space.word * series "series" bibinfo.check * } if$ } if$ } { "" } if$ } FUNCTION {is.num} { chr.to.int$ duplicate$ "0" chr.to.int$ < not swap$ "9" chr.to.int$ > not and } FUNCTION {extract.num} { duplicate$ 't := "" 's := { t empty$ not } { t #1 #1 substring$ t #2 global.max$ substring$ 't := duplicate$ is.num { s swap$ * 's := } { pop$ "" 't := } if$ } while$ s empty$ 'skip$ { pop$ s } if$ } FUNCTION {convert.edition} { extract.num "l" change.case$ 's := s "first" = s "1" = or { bbl.first 't := } { s "second" = s "2" = or { bbl.second 't := } { s "third" = s "3" = or { bbl.third 't := } { s "fourth" = s "4" = or { bbl.fourth 't := } { s "fifth" = s "5" = or { bbl.fifth 't := } { s #1 #1 substring$ is.num { s eng.ord 't := } { edition 't := } if$ } if$ } if$ } if$ } if$ } if$ t } FUNCTION {format.edition} { edition duplicate$ empty$ 'skip$ { convert.edition output.state mid.sentence = { "l" } { "t" } if$ change.case$ "edition" bibinfo.check " " * bbl.edition * } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages duplicate$ empty$ 'skip$ { duplicate$ multi.page.check { bbl.pages swap$ n.dashify } { bbl.page swap$ } if$ tie.or.space.prefix "pages" bibinfo.check * * } if$ } FUNCTION {format.journal.pages} { pages duplicate$ empty$ 'pop$ { swap$ duplicate$ empty$ { pop$ pop$ format.pages } { ", " * swap$ n.dashify pages multi.page.check 'bbl.pages 'bbl.page if$ swap$ tie.or.space.prefix "pages" bibinfo.check * * * } if$ } if$ } FUNCTION {format.journal.eid} { eid "eid" bibinfo.check duplicate$ empty$ 'pop$ { swap$ duplicate$ empty$ 'skip$ { ", " * } if$ swap$ * } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null duplicate$ empty$ 'skip$ { "volume" bibinfo.check } if$ number "number" bibinfo.check duplicate$ empty$ 'skip$ { swap$ duplicate$ empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ swap$ "(" swap$ * ")" * } if$ * } FUNCTION {format.chapter.pages} { chapter empty$ { "" } { type empty$ { bbl.chapter } { type "l" change.case$ "type" bibinfo.check } if$ chapter tie.or.space.prefix "chapter" bibinfo.check * * } if$ } FUNCTION {format.booktitle} { booktitle "booktitle" bibinfo.check emphasize } FUNCTION {format.in.ed.booktitle} { format.booktitle duplicate$ empty$ 'skip$ { editor "editor" format.names.ed duplicate$ empty$ 'pop$ { get.bbl.editor " " * swap$ * swap$ "," * " " * swap$ * } if$ word.in swap$ * } if$ } FUNCTION {format.thesis.type} { type duplicate$ empty$ 'pop$ { swap$ pop$ "t" change.case$ "type" bibinfo.check } if$ } FUNCTION {format.tr.number} { number "number" bibinfo.check type duplicate$ empty$ { pop$ bbl.techrep } 'skip$ if$ "type" bibinfo.check swap$ duplicate$ empty$ { pop$ "t" change.case$ } { tie.or.space.prefix * * } if$ } FUNCTION {format.article.crossref} { word.in " \cite{" * crossref * "}" * } FUNCTION {format.book.crossref} { volume duplicate$ empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ pop$ word.in } { bbl.volume capitalize swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * } if$ " \cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { word.in " \cite{" * crossref * "}" * } FUNCTION {format.org.or.pub} { 't := "" address empty$ t empty$ and 'skip$ { t empty$ { address "address" bibinfo.check * } { t * address empty$ 'skip$ { ", " * address "address" bibinfo.check * } if$ } if$ } if$ } FUNCTION {format.publisher.address} { publisher "publisher" bibinfo.warn format.org.or.pub } FUNCTION {format.organization.address} { organization "organization" bibinfo.check format.org.or.pub } FUNCTION {article} { output.bibitem format.authors "author" output.check author format.key output format.title "title" output.check new.sentence crossref missing$ { journal "journal" bibinfo.check emphasize "journal" output.check add.blank format.vol.num.pages output format.date "year" output.check } { format.article.crossref output.nonnull } if$ eid empty$ { format.journal.pages } { format.journal.eid } if$ format.note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.btitle "title" output.check crossref missing$ { format.bvolume output new.sentence format.number.series output format.edition output format.publisher.address output } { new.sentence format.book.crossref output.nonnull } if$ format.date "year" output.check format.note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output format.title "title" output.check new.sentence howpublished "howpublished" bibinfo.check output address "address" bibinfo.check output format.date "year" output.check format.note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.btitle "title" output.check crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.sentence format.number.series output format.edition output format.publisher.address output } { format.chapter.pages "chapter and pages" output.check new.sentence format.book.crossref output.nonnull } if$ format.date "year" output.check format.pages "pages" output.check format.note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output format.title "title" output.check new.sentence crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.edition output format.chapter.pages output format.publisher.address output format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ format.pages "pages" output.check format.note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output format.title "title" output.check new.sentence crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output publisher empty$ { format.organization.address output } { organization "organization" bibinfo.check output format.publisher.address output } if$ format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull } if$ format.pages "pages" output.check format.note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output format.btitle "title" output.check new.sentence organization "organization" bibinfo.check output address "address" bibinfo.check output format.edition output format.date "year" output.check format.note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output format.btitle "title" output.check new.sentence bbl.mthesis format.thesis.type output.nonnull school "school" bibinfo.warn output address "address" bibinfo.check output format.date "year" output.check format.note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output format.title output new.sentence howpublished "howpublished" bibinfo.check output format.date "year" output.check format.note output fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output format.btitle "title" output.check new.sentence bbl.phdthesis format.thesis.type output.nonnull school "school" bibinfo.warn output address "address" bibinfo.check output format.date "year" output.check format.note output fin.entry } FUNCTION {proceedings} { output.bibitem format.editors output editor format.key output format.btitle "title" output.check format.bvolume output format.number.series output publisher empty$ { format.organization.address output } { organization "organization" bibinfo.check output format.publisher.address output } if$ format.date "year" output.check format.note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output format.title "title" output.check new.sentence format.tr.number output.nonnull institution "institution" bibinfo.warn output address "address" bibinfo.check output format.date "year" output.check format.note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output format.title "title" output.check format.date "year" output.check format.note "note" output.check fin.entry } FUNCTION {default.type} { misc } READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {format.lab.names} { 's := "" 't := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " " * bbl.etal emphasize * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " * bbl.etal emphasize * } { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {author.key.label} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.lab.names } if$ } FUNCTION {author.editor.key.label} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } { author format.lab.names } if$ } FUNCTION {editor.key.label} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } FUNCTION {calc.short.authors} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ 'short.list := } FUNCTION {calc.label} { calc.short.authors short.list "(" * year duplicate$ empty$ short.list key field.or.null = or { pop$ "" } 'skip$ if$ * 'label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := nameptr #1 > { " " * namesleft #1 = t "others" = and { "zzzzz" * } { t sortify * } if$ } { t sortify * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {editor.sort} { editor empty$ { key empty$ { "to sort, need editor or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } INTEGERS { seq.num } FUNCTION {init.seq} { #0 'seq.num :=} EXECUTE {init.seq} FUNCTION {int.to.fix} { "000000000" swap$ int.to.str$ * #-1 #10 substring$ } FUNCTION {presort} { calc.label label sortify " " * seq.num #1 + 'seq.num := seq.num int.to.fix 'sort.label := sort.label * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { last.label next.extra } INTEGERS { last.extra.num number.label } FUNCTION {initialize.extra.label.stuff} { #0 int.to.chr$ 'last.label := "" 'next.extra := #0 'last.extra.num := #0 'number.label := } FUNCTION {forward.pass} { last.label label = { last.extra.num #1 + 'last.extra.num := last.extra.num int.to.chr$ 'extra.label := } { "a" chr.to.int$ 'last.extra.num := "" 'extra.label := label 'last.label := } if$ number.label #1 + 'number.label := } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ extra.label 'next.extra := extra.label emphasize duplicate$ empty$ 'skip$ { "{\natexlab{" swap$ * "}}" * } if$ 'extra.label := label extra.label * 'label := } EXECUTE {initialize.extra.label.stuff} ITERATE {forward.pass} REVERSE {reverse.pass} FUNCTION {bib.sort.order} { sort.label " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {bib.sort.order} SORT FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ "\providecommand{\natexlab}[1]{#1}" write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} %% End of customized bst file %% %% End of file `iecrv5.bst'. Ipopt-3.11.4/Ipopt/contrib/sIPOPT/doc/sipopt.bib0000644000076600007660000003312111547161450017727 0ustar coincoin% This file was created with JabRef 2.6. % Encoding: UTF-8 @BOOK{Ascher1988, title = {Numerical Solution of Boundary Value Problems for Ordinary Differential Equations.}, publisher = {Prentice Hall}, year = {1988}, author = {Ascher, Uri M. and Mattheij, Robert M. M. and Russell, Robert D.}, series = {Series in Computational Mathematics}, owner = {hans}, timestamp = {2009.10.29} } @BOOK{Ascher1998, title = {Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations}, publisher = {SIAM}, year = {1998}, author = {Ascher, Uri M. and Petzold, Linda R.}, owner = {hans}, timestamp = {2009.11.01} } @INCOLLECTION{Buskens, author = {C. B\"{u}skens and H. Maurer}, title = {{Sensitivity analysis and real-time control of parametric control problems using nonlinear programming methods}}, booktitle = {{Online Optimization of Large-scale Systems}}, publisher = {Springer-Verlag}, year = {2001}, editor = {M. Gr\"{o}tschel, S. Krumke and J. Rambau}, pages = {57-68}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Bartlett2006, author = {Bartlett, Roscoe A. and Biegler, Lorenz T.}, title = {QPSchur: A dual, active-set, Schur-complement method for large-scale and structured convex quadratic programming}, journal = {Optimization and Engineering}, year = {2006}, volume = {7}, pages = {5-32}, owner = {hans}, timestamp = {2009.11.09} } @TECHREPORT{beltracchi, author = {T. J. Beltracchi and G. A. Gabriele}, title = {{An Investigation of New Methods for Estimating Parameter Sensitivities}}, institution = {NASA Contractor Report}, year = {1989}, number = {4245}, owner = {rlopezne}, timestamp = {2011.03.29} } @BOOK{larrybook, title = {Nonlinear Programming: Concepts, Algorithms, and Applications to Chemical Processes}, publisher = {SIAM}, year = {2010}, author = {Lorenz T. Biegler}, owner = {rlopezne}, timestamp = {2011.02.15} } @ARTICLE{Biegler1992, author = {Biegler, Lorenz T.}, title = {Optimization Strategies for Complex Process Models}, journal = {Advances in Chemical Engineering}, year = {1992}, volume = {18}, pages = {197}, owner = {hans}, timestamp = {2009.11.01} } @ARTICLE{Biegler2002, author = {Lorenz T. Biegler and Arturo M. Cervantes and Andreas Wächter}, title = {Advances in simultaneous strategies for dynamic process optimization}, journal = {Chemical Engineering Science}, year = {2002}, volume = {57}, pages = {575 - 593}, number = {4}, doi = {DOI: 10.1016/S0009-2509(01)00376-1}, issn = {0009-2509}, keywords = {Interior point}, owner = {hans}, timestamp = {2009.07.25}, url = {http://www.sciencedirect.com/science/article/B6TFK-44HTMKP-2/2/1def833c57d912e4aad7027ad582dd2b} } @PHDTHESIS{Diehl2001, author = {M. Diehl}, title = {Real-Time Optimization for Large Scale Nonlinear Processes}, school = {Universit\"at Heidelberg}, year = {2001}, note = {http://www.ub.uni-heidelberg.de/archiv/1659/}, file = {Diehl2001.pdf:Diehl2001.pdf:PDF}, keywords = {agbock NMPC chemistry multiple shooting optimal control}, owner = {rlopezne}, timestamp = {2011.03.29} } @INBOOK{Diehl2007, chapter = {A Stabilizing Real-Time Implementation of Nonlinear Model Predictive Control}, pages = {25-52}, title = {Real-Time PDE-Constrained Optimization}, publisher = {SIAM}, year = {2007}, editor = {Biegler, Lorenz T. and Keyes, David and Ghattas, Omar and van Bloemen Waanders, Bart and Heinkenschloss, Mathias}, author = {Diehl, Moritz and Findeisen, Rolf and Allg\"ower, Frank}, owner = {hans}, timestamp = {2009.11.09} } @BOOK{Fiacco1983, title = {Introduction to Sensitivity and Stability Analysis in Nonlinear Programming}, publisher = {Academic Press}, year = {1983}, author = {Anthony V. Fiacco}, volume = {165}, series = {Mathematics in Science and Engineering}, owner = {hans}, timestamp = {2009.07.26} } @TECHREPORT{sensumt, author = {A. V. Fiacco and A. Ghaemi}, title = {A user's manual for SENSUMT. A penalty function computer program for solution, sensitivity analysis and optimal bound value calculation in parametric nonlinear programs}, institution = {Management Science and Engineering, George Washington University}, year = {1980}, number = {T-434}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Fiacco90, author = {A. V. Fiacco and Y. Ishizuka}, title = {Sensitivity and Stability Analysis for Nonlinear Programming}, journal = {Annals of Operations Research}, year = {1990}, volume = {27}, pages = {215-236}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{marlin1, author = {Forbes, J.F. and T. E. Marlin}, title = {{Design cost: a systematic approach to technology selection for model-based real-time optimization systems}}, journal = {Comput. Chem. Eng.}, year = {1996}, volume = {20}, pages = {717--734}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{forsgren, author = {A. Forsgren and P. E. Gill and M. H. Wright}, title = {Interior Point Methods for Nonlinear Optimization}, journal = {SIAM Review}, year = {2002}, volume = {44}, pages = {525-597}, number = {4}, owner = {rlopezne}, timestamp = {2011.03.29} } @BOOK{ampl, title = {AMPL: A Modeling Language for Mathematical Programming}, publisher = {Duxbury Press}, year = {2002}, author = {Fourer, Robert and Gay, David M. and Kernighan, Brian W.}, address = {Pacific Grove}, owner = {rlopezne}, timestamp = {2009.06.12} } @ARTICLE{Ganesh1987, author = {N. Ganesh and Biegler, Lorenz T.}, title = {A reduced hessian strategy for sensitivity analysis of optimal flowsheets.}, journal = {AIChE}, year = {1987}, volume = {33}, pages = {282-296}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Hicks1971, author = {G. A. Hicks and W. H. Ray}, title = {Approximation methods for optimal control synthesis}, journal = {The Canadian Journal of Chemical Engineering}, year = {1971}, volume = {49}, pages = {522-528}, owner = {hans}, timestamp = {2009.07.25} } @ARTICLE{Huang2009, author = {Rui Huang and Victor M. Zavala and Lorenz T. Biegler}, title = {Advanced step nonlinear model predictive control for air separation units}, journal = {Journal of Process Control}, year = {2009}, volume = {19}, pages = {678 - 685}, number = {4}, doi = {DOI: 10.1016/j.jprocont.2008.07.006}, issn = {0959-1524}, keywords = {Air separation units}, owner = {hans}, timestamp = {2009.07.22}, url = {http://www.sciencedirect.com/science/article/B6V4N-4TFH2GW-1/2/061dea994c5a92b4e6dec4029f98c871} } @BOOK{Jongen2000, title = {Nonlinear Optimization in Finite Dimensions}, publisher = {Kluwer Academic Publishers}, year = {2000}, author = {Jongen, Hubertus T. and Jonker, Peter and Twilt, Frank}, owner = {hans}, timestamp = {2010.01.12} } @BOOK{Jongen2004, title = {Optimization Theory}, publisher = {Kluwer Academic Publishers}, year = {2004}, author = {Jongen, Hubertus T. and Meer, Klaus and Triesch, Eberhard}, owner = {hans}, timestamp = {2009.11.02} } @INCOLLECTION{kadam, author = {J. Kadam and W. Marquardt}, title = {{Sensitivity-based Solution Updates in Closed-loop Dynamic Optimization}}, booktitle = {{Proceedings of the DYCOPS 7 Conference}}, publisher = {Elsevier}, year = {2004}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Kameswaran2008, author = {Kameswaran, Shivakumar and Biegler, Lorenz T.}, title = {Convergence rates for direct transcription of optimal control problems using collocation at Radau points}, journal = {Comput. Optim. Appl.}, year = {2008}, volume = {41}, pages = {81--126}, number = {1}, address = {Norwell, MA, USA}, doi = {http://dx.doi.org/10.1007/s10589-007-9098-9}, issn = {0926-6003}, owner = {rlopezne}, publisher = {Kluwer Academic Publishers}, timestamp = {2011.03.29} } @INCOLLECTION{Kojima1980, author = {M. Kojima}, title = {{Strongly State Stationary Solutions in Nonlinear Programs}}, booktitle = {{Analysis and Computation of Fixed Points}}, publisher = {Academic Press}, year = {1980}, editor = {S. M. Robinson}, address = {New York}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Kojima1984, author = {M. Kojima and R. Hirabayashi}, title = {Continuous Deformation of Nonlinear Programs}, journal = {Mathematical Programming Study}, year = {1984}, volume = {21}, pages = {150-198}, owner = {hans}, timestamp = {2010.01.12} } @ARTICLE{kyparsis90, author = {J. Kyparsis}, title = {Sensitivity Analysis for Nonlinear Programs and Variational Inequalities with Nonunique Multipliers}, journal = {Mathematics of Operations Research}, year = {1990}, volume = {15}, pages = {286-298}, number = {2}, owner = {rlopezne}, timestamp = {2011.03.29} } @BOOK{nocedalbook, title = {Numerical Optimization}, publisher = {Springer}, year = {2006}, author = {Jorge Nocedal and Stephen Wright}, series = {Operations Research and Financial Engineering}, address = {New York}, edition = {2nd}, owner = {rlopezne}, timestamp = {2011.03.29} } @BOOK{Nocedal1999, title = {Numerical Optimization}, publisher = {Springer}, year = {1999}, author = {Nocedal, Jorge and Wright, Steven J.}, owner = {hans}, timestamp = {2009.11.02} } @MANUAL{askkt, title = {\emph{sensKKT} Reference Manual}, author = {Hans Pirnay and Rodrigo L\'opez-Negrete and Lorenz T. Biegler}, organization = {Carnegie Mellon University}, year = {2011}, owner = {rlopezne}, timestamp = {2011.03.28}, url = {https://projects.coin-or.org/Ipopt} } @UNPUBLISHED{pirnay:2011, author = {Hans Pirnay and Rodrigo L\'opez-Negrete and Lorenz T. Biegler}, title = {Optimal Sensitivity Based on IPOPT}, year = {2011}, comment = {In preparation}, owner = {rlopezne}, timestamp = {2011.03.29} } @ARTICLE{Vassiliadis1994, author = {Vassiliadis, V. S. and Sargent, R. W. H. and Pantelides, C. C.}, title = {Solution of a class of multistage dynamic optimization problems. Part one - Algorithmic Framework}, journal = {Journal of Industrial and Engineering Chemistry Research}, year = {1994}, volume = {33}, pages = {2115-2123}, owner = {hans}, timestamp = {2009.10.28} } @ARTICLE{Vassiliadis1994a, author = {Vassiliadis, V. S. and Sargent, R. W. H. and Pantelides, C. C.}, title = {Solution of a class of multistage dynamic optimization problems. Part two - Problems with Path Constraints}, journal = {Journal of Industrial and Engineering Chemistry Research}, year = {1994}, volume = {33}, pages = {2123-2133}, owner = {hans}, timestamp = {2009.10.28} } @ARTICLE{Waechter2006, author = {W\"achter, Andreas and Biegler, Lorenz T.}, title = {On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming}, journal = {Mathematical Programming}, year = {2006}, volume = {106(1)}, pages = {25-57}, owner = {hans}, timestamp = {2009.08.03} } @ARTICLE{wolbert, author = {Wolbert, D. and X. Joulia and B. Koehret and L. T. Biegler}, title = {{Flowsheet Optimization and Optimal Sensitivity Analysis Using Exact Derivatives}}, journal = {Computers and Chemical Engineering}, year = {1994}, volume = {18}, pages = {1083}, owner = {rlopezne}, timestamp = {2011.03.29} } @PHDTHESIS{ZavalaPhd, author = {Zavala, Victor M.}, title = {Computational Strategies for the Operation of Large-Scale Chemical Processes}, school = {Carnegie Mellon University}, year = {2008}, owner = {hans}, timestamp = {2009.07.28} } @ARTICLE{Zavala2009, author = {Victor M. Zavala and Lorenz T. Biegler}, title = {The advanced-step NMPC controller: Optimality, stability and robustness}, journal = {Automatica}, year = {2009}, volume = {45}, pages = {86 - 93}, number = {1}, doi = {DOI: 10.1016/j.automatica.2008.06.011}, issn = {0005-1098}, keywords = {Nonlinear model predictive control}, owner = {hans}, timestamp = {2009.07.22}, url = {http://www.sciencedirect.com/science/article/B6V21-4V28T0V-6/2/2f93266b2f0847c9a00bd59bf4788157} } @ARTICLE{Zavala2008, author = {Zavala, Victor M. and Laird, Carl D. and Biegler, Lorenz T.}, title = {{Fast implementations and rigorous models: Can both be accomodated in NMPC?}}, journal = {International Journal of Robust Nonlinear Control}, year = {2008}, volume = {18}, pages = {800-815}, owner = {hans}, timestamp = {2009.07.22} } @ARTICLE{Zavala2008a, author = {Victor M. Zavala and Carl D. Laird and Lorenz T. Biegler}, title = {A fast moving horizon estimation algorithm based on nonlinear programming sensitivity}, journal = {Journal of Process Control}, year = {2008}, volume = {18}, pages = {876 - 884}, number = {9}, note = {Selected Papers From Two Joint Conferences: 8th International Symposium on Dynamics and Control of Process Systems and the 10th Conference Applications in Biotechnology, 8th International Symposium on Dynamics and Control of Process Systems and the 10th Conference Applications in Biotechnology}, doi = {DOI: 10.1016/j.jprocont.2008.06.003}, issn = {0959-1524}, keywords = {Estimation algorithms}, owner = {hans}, timestamp = {2009.07.22}, url = {http://www.sciencedirect.com/science/article/B6V4N-4T1X2DR-2/2/816f809d57e3f6e00359b4163849b4b4} } @PROCEEDINGS{Bock1983, title = {Numerical Treatment of Inverse Problems in Differential and Integral Equations: Proceedings of an International Workshop}, year = {1983}, editor = {Bock, H. G.}, owner = {hans}, timestamp = {2009.10.29} } @comment{jabref-meta: selector_publisher:} @comment{jabref-meta: selector_author:} @comment{jabref-meta: selector_journal:} @comment{jabref-meta: selector_keywords:} Ipopt-3.11.4/Ipopt/contrib/sIPOPT/doc/sipopt_manual.tex0000644000076600007660000010660411550670353021340 0ustar coincoin\documentclass[letter, 11pt]{article} % \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{graphicx} \usepackage[listofformat=subparens]{subfig} \usepackage{setspace} \usepackage{theorem} \usepackage{palatino} % Bibliography related \def\BIBand{and} \usepackage[numbers,sort]{natbib} %\bibliographystyle{achemso} \bibliographystyle{iecrv5} \usepackage{natmove} \usepackage[top=3cm,bottom=3cm,left=1.8cm,right=1.8cm,centering]{geometry} % proposal \newcommand{\RR}{{\mathbb{R}}} \newcommand{\vect}[1]{{\left[\begin{array}{c} #1 \end{array}\right]}} \newcommand{\matr}[2]{{\left[\begin{array}{#1} #2 \end{array}\right]}} \newtheorem{property}{Property} \newtheorem{definition}{Definition} \usepackage{setspace} \usepackage{listings} \renewcommand{\lstlistingname}{Code Listing} \lstset{aboveskip=22pt,belowskip=22pt} \usepackage{array,multirow} \newcommand{\sensKKT}{\emph{sIPOPT}} \newcommand{\AMPL}{AMPL} % Citation related \newcommand{\citetcomma}[1]{\citeauthor{#1},\cite{#1}\ } \newcommand{\citetperiod}[1]{\citeauthor{#1}.\cite{#1}\ } \newcommand{\citetfcomma}[1]{\citeauthor{#1}.\cite{#1}\ } \newcommand{\parens}[1]{\ensuremath{\left( #1 \right)}} \newcommand{\bracs}[1]{\ensuremath{\left[ #1 \right]}} \newcommand{\curls}[1]{\ensuremath{\left\{ #1 \right\}}} \newcommand{\bars}[1]{\ensuremath{\left\| #1 \right\|}} \newcommand{\func}[2]{\ensuremath{ #1\parens{#2} }} \newcommand{\norms}[2]{\ensuremath{ \bars{#1}_{#2} }} \newcommand{\expect}[1]{\ensuremath{\mathbb{E}\bracs{#1}}} \newcommand{\expectc}[1]{\ensuremath{\mathbb{E}\curls{#1}}} % Folders and directories \newcommand{\ipoptf}{\$IPOPT} %\newcommand{\sensdir}{AsNMPC} %\newcommand{\sensexe}{ampl\_asnmpc} %\newcommand{\senslib}{libasnmpc} \newcommand{\sensdir}{sIPOPT} \newcommand{\sensexe}{ipopt\_sens} \newcommand{\senslib}{libsipopt} % options and suffixes %\newcommand{\runaskkt}{run\_nmpc} %\newcommand{\statez}{nmpc\_state\_0} %\newcommand{\stateo}{nmpc\_state\_1} %\newcommand{\statevo}{nmpc\_state\_value\_1} %\newcommand{\initc}{nmpc\_init\_constr} % %\newcommand{\sstateo}{nmpc\_sol\_state\_1} %\newcommand{\sstatezl}{nmpc\_sol\_state\_1\_z\_L} %\newcommand{\sstatezu}{nmpc\_sol\_state\_1\_z\_U} % %\newcommand{\redhessopt}{compute\_red\_hessian} %\newcommand{\redhess}{red\_hessian} % %\newcommand{\selectstep}{select\_step} % %\newcommand{\nstepsopt}{n\_nmpc\_steps} %\newcommand{\boundcheckopt}{nmpc\_boundcheck} %\newcommand{\boundepsopt}{nmpc\_bound\_eps} %\newcommand{\maxpdpertopt}{nmpc\_max\_pdpert} %\newcommand{\eigendecompopt}{rh\_eigendecomp} \newcommand{\runaskkt}{run\_sens} \newcommand{\statez}{sens\_state\_0} \newcommand{\stateo}{sens\_state\_1} \newcommand{\statevo}{sens\_state\_value\_1} \newcommand{\initc}{sens\_init\_constr} \newcommand{\sstateo}{sens\_sol\_state\_1} \newcommand{\sstatezl}{sens\_sol\_state\_1\_z\_L} \newcommand{\sstatezu}{sens\_sol\_state\_1\_z\_U} \newcommand{\statei}[1]{sens\_state\_#1} \newcommand{\statevi}[1]{sens\_state\_value\_#1} \newcommand{\sstatei}[1]{sens\_sol\_state\_#1} \newcommand{\sstatezli}[1]{sens\_sol\_state\_#1\_z\_L} \newcommand{\sstatezui}[1]{sens\_sol\_state\_#1\_z\_U} \newcommand{\redhessopt}{compute\_red\_hessian} \newcommand{\redhess}{red\_hessian} \newcommand{\selectstep}{select\_step} \newcommand{\nstepsopt}{n\_sens\_steps} \newcommand{\boundcheckopt}{sens\_boundcheck} \newcommand{\boundepsopt}{sens\_bound\_eps} \newcommand{\maxpdpertopt}{sens\_max\_pdpert} \newcommand{\eigendecompopt}{rh\_eigendecomp} \newcommand{\senskktresiduals}{sens\_kkt\_residuals} \newcommand{\allowinex}{sens\_allow\_inexact\_backsolve} % Define ampl language for listings \lstdefinelanguage{ampl} { alsoletter={.,:, >, <, =}, morekeywords={param, var, minimize, maximize, let, solve, display, printf, suffix, reset, subject, to, options, option, =,:=, >=, <=, s.t., IN, OUT}, sensitive=false, morecomment=[l]{\#}, morecomment=[s]{/*}{*/} } \title{ \sensKKT\ Reference Manual} \author{Hans Pirnay, Rodrigo L\'opez-Negrete, and Lorenz T. Biegler \\ Chemical Engineering Department \\ Carnegie Mellon University \\ Pittsburgh, PA 15213} \begin{document} \maketitle \tableofcontents %\newpage \section{Introduction} \onehalfspacing Sensitivity of nonlinear programming problems is a key step in any optimization study. Sensitivity provides information on regularity and curvature conditions at KKT points, assesses which variables play dominant roles in the optimization, and provides first order estimates for parametric nonlinear programs. Moreover, for NLP algorithms that use exact second derivatives, sensitivity can be implemented very efficiently within NLP solvers and provide valuable information with very little added computation. This implementation provides IPOPT with the capabilities to calculate sensitivities, and approximate perturbed solutions with them. The basic sensitivity strategy implemented here is based on the application of the Implicit Function Theorem (IFT) to the KKT conditions of the NLP. As shown in \citet{Fiacco1983}, sensitivities can be obtained from a solution with suitable regularity conditions merely by solving a linearization of the KKT conditions. In \citet{pirnay:2011} we have extended these results to the barrier penalty method implemented in IPOPT. In the following subsections we have summarized the main concepts in the paper. \subsection{Barrier Sensitivity} \label{sec:barrier} Consider the parametric nonlinear program of the form: \begin{subequations} \label{NLPsens} \begin{eqnarray} &\min_x & f(x; p) \\ &\mbox{s.t.} & c(x; p) = 0, x \geq 0 \end{eqnarray} \end{subequations} \noindent with the vectors $x \in \mathbb{R}^{n_x}$, $p \in \mathbb{R}^{n_p}$, and $c(x; p): \mathbb{R}^{n_x+n_p} \to \mathbb{R}^{m}$. Without loss of generality, only the variables $x$ have been assumed zero or positive. However, the following derivations can be extended to the case where there are both upper and lower bounds. The IPOPT NLP algorithm substitutes a barrier function for the inequality constraints and solves the following sequence of problems with $\mu \rightarrow 0$: \begin{subequations} \label{IPNLP2} \begin{eqnarray} & \min_x & \; \; B(x; p, \mu) = f(x; p) - \mu_{\ell} \sum_{i=1}^{n_x} ln (x_i) \\ & \mbox{s.t.} & c(x; p) = 0 \end{eqnarray} \end{subequations} At a solution with $p = p_0$ (the nominal value) we compute the sensitivities $\frac{d x^{*}(p_0)}{dp}$ and $\frac{df(x^*; p_0)}{d p} = \frac{\partial f(x^*; p_0)}{\partial p} + \frac{d x(p_0)}{d p}\frac{\partial f(x^*; p_0)}{\partial x}$. To calculate these sensitivities, we first consider properties of the solutions of (\ref{NLPsens}) obtained by IPOPT when $p = p_0$ \cite{Fiacco1983,forsgren}. For NLP (\ref{NLPsens}), the Karush-Kuhn-Tucker (KKT) conditions are defined as: \begin{subequations}\label{kktc} \begin{eqnarray} & \nabla_x L(x^*, \lambda^*, \nu^*; p_0) = \nabla_x f(x^*; p_0) + \nabla_x c(x^*; p_0)\lambda^* - \nu^* = 0 \\ & c(x^*; p_0) = 0 \\ & 0 \leq \nu^* \perp x^* \geq 0 \end{eqnarray} \end{subequations} For the KKT conditions to serve as necessary conditions for a local minimum of (\ref{NLPsens}), constraint qualifications are needed, such as Linear Independence Constraint Qualification (LICQ) or Mangasarian-Fromowitz Constraint Qualification (MFCQ). Definitions of these regularity conditions may be found in \citet{larrybook}, \citet{nocedalbook}, or \citet{Fiacco1983}. Calculation of the sensitivity of the primal and dual variables with respect to $p$ now proceeds from the implicit function theorem (IFT) applied to the optimality conditions of (\ref{IPNLP2}) at $p_0$. Defining the quantities: \begin{equation} \label{mdef} M(s(\mu; p_0)) = \matr{ccc}{ \func{W}{\func{s}{\mu;p_0}} & \func{A}{\func{x}{\mu;p_0}} & -I\\ \func{A}{\func{x}{\mu;p_0}} ^T &0 &0\\ \func{V}{\mu;p_0} &0&X(\mu; p_0)} \end{equation} \noindent and \begin{equation} \label{ndef} N_p(s(\mu; p_0)) = \vect{\nabla_{xp} L(s(\mu; p_0)) \\ \nabla_p c(x(\mu; p_0))\\ 0}, \quad N_{\mu} = \vect{0 \\ 0 \\ -\mu e} \end{equation} \noindent where $W(s(\mu; p_0))$ denotes the Hessian $\nabla_{xx} L(x ,\lambda, \nu)$ of the Lagrangian function evaluated at $s(\mu; p_0)$, $A(x(\mu; p_0)) = \nabla_{x} c(x)$ evaluated at $x(\mu; p_0)$, $X = diag\{x\}$ and $V = diag\{\nu\}$, application of IFT leads to: \begin{equation}\label{sensfiacco} M(s(\mu; p_0)) \frac{d s(\mu; p_0)}{d p}^T + N_p(s(\mu; p_0)) = 0. \end{equation} When LICQ, Strict Complementarity (SC), and SSOSC hold, $M(s(\mu; p_0))$ is nonsingular and the sensitivities can be calculated from: \begin{equation} \label{sens:1} \frac{d s(\mu; p_0)}{d p}^T = - \func{M}{\func{s}{\mu; p_0}}^{-1} \func{N_p}{ \func{s}{\mu; p_0} } . \end{equation} We note that at the solution of (\ref{IPNLP2}) these assumptions can be checked by the inertia of $M$ as well as other information in IPOPT (see \cite{Waechter2006}). Moreover, in IPOPT, $M(s(\mu; p_0))$ is directly available in factored form from the solution of (\ref{IPNLP2}), so the sensitivity can be calculated through a simple backsolve. For small values of $\mu$ and $\|p-p_0\|$ it can be shown from the above properties \cite{Fiacco1983} that \begin{equation} \label{init1} s(\mu; p) = s(\mu; p_0) - M(s(\mu; p_0))^{-1}N_p(s(\mu; p_0)) (p-p_0) + o\|p-p_0\| . %= s(0; p) + O(\mu). \end{equation} %\noindent or % %\begin{equation} \label{init2} %s(0; p) = s(\mu; p_0) - M(s(\mu; p_0))^{-1} \bracs{ N_p(s(\mu; p_0))(p-p_0) + N_{\mu}(s(\mu; p_0)) } + o\|p-p_0\| + o\| \mu \|. %\end{equation} Finally, in the way IPOPT is implemented, it cannot distinguish between variables and parameters. Thus we can make this distinction apparent by adding some artificial variables and constraints. In this way we write: \begin{subequations} \label{NLPsens2} \begin{eqnarray} & \min_{x, w} & f(x, w) \\ & \mbox{s.t.} & c(x, w) = 0, x \geq 0 \\ & & w - p_0 = 0 \end{eqnarray} \end{subequations} Note that the NLP solution is equivalent to (\ref{NLPsens}), and it is easy to see that the NLP sensitivity is equivalent as well. Writing the KKT conditions for (\ref{NLPsens2}) leads to: \begin{subequations}\label{eq:reform} \begin{eqnarray} & \nabla_x f(x, w) + \nabla_x c^T(x, w)\lambda -\nu = 0\\ & \nabla_w f(x, w) + \nabla_w c^T(x, w)\lambda + \bar{\lambda} = 0\\ & c(x) = 0 \\ & XVe =0 \\ & w - p = 0 \end{eqnarray} \end{subequations} In this definition $\bar{\lambda}$ represents the Lagrange multiplier corresponding to the equation $w - p =0$. For the Newton step we write: \begin{equation} \label{eq:reordered_K_3} \left[ \begin{array}{ccccc} W& \nabla_{xw} L(x, w, \lambda, \nu) & A & -I & 0 \\ \nabla_{wx} L(x, w, \lambda, \nu) & \nabla_{ww} L(x, w, \lambda, \nu) & \nabla_w c(x, w) & 0 & I \\ A^T& \nabla_w c(x, w)^T & 0 & 0 & 0 \\ V &0&0& X & 0 \\ 0 & I &0&0&0\\ \end{array} \right] \left[ \begin{array}{c} \Delta z\\ \Delta w \\ \Delta \lambda\\\Delta\nu\\ \Delta\bar{\lambda} \end{array} \right] = \left[ \begin{array}{c} 0 \\0 \\ 0 \\ 0 \\ \Delta p \end{array} \right]. \end{equation} Since $\Delta w = \Delta p$, the step computed by this matrix (without the second row) is the same as the optimal step stated in (\ref{sensfiacco}). \subsection{Multiple Sequential Parameter Perturbations} \label{sec:multirhs} In the derivations in the previous sections we considered changes to the parameter vector. However, in some cases we may be interested in making multiple parameter perturbations in a sequential manner. For example we may want to perturb the current solution {\func{s}{\mu; p_0}} using the parameter vectors $p_1, \ldots, p_{n_{\mbox{\tiny pert}}}$. This amounts to solving system \eqref{sensfiacco} with different right hand sides {\func{N_p}{\func{s}{\mu;p_0}}} (Eq. \eqref{ndef}). Note that, because we already have \eqref{mdef} factorized at the solution, it is very cheap to obtain the $n_{\mbox{\tiny pert}}$ sensitivities. With them and using Equation \eqref{init1} we can determine the approximated solutions {\func{s}{\mu; p_1}}, \ldots, {\func{s}{\mu; p_{n_{\mbox{\tiny pert}}}}}. \section{Usage} In the following sections we describe how the \sensKKT\ library can be used through the \AMPL\ interface. However, we also provide examples for the C++ interface in the examples folder of the distribution. To help illustrate the use of \sensKKT\ the following NLP, taken from \cite{Ganesh1987}, will be used: \begin{eqnarray} \label{eq:ex1} \min&& x_1^2+x_2^2+x_3^2\\ \mathrm{s.t.}&&6x_1+3x_2+2x_3-p_1 = 0\nonumber\\ &&p_2x_1+x_2-x_3-1 = 0\nonumber\\ &&x_1,x_2,x_3\geq 0 , \nonumber \end{eqnarray} \noindent with variables $x_1,x_2$, and $x_3$ and parameters $p_1$, and $p_2$. Since IPOPT does not distinguish variables from parameters, we reformulate the NLP as \eqref{NLPsens2} by introducing equations that fix the parameters $p_1$ and $p_2$ to their nominal values $p_{1,a}$ and $p_{2,a}$. \begin{subequations}\label{eq:exr} \begin{eqnarray} \min&& x_1^2+x_2^2+x_3^2\\ \mathrm{s.t.}&&6x_1+3x_2+2x_3-p_1 = 0\\ &&p_2x_1+x_2-x_3-1 = 0\\ &&p_1 = p_{1,a}\\ &&p_2 = p_{2,a}\\ &&x_1,x_2,x_3\geq 0. \end{eqnarray} \end{subequations} For \eqref{eq:exr}, the KKT conditions are: \begin{eqnarray} \label{eq:exr:kkt} 2x_1+6\lambda_1+p_2\lambda_2-\nu_1 &=& 0\\ 2x_2+3\lambda_1+\lambda_2-\nu_2&=& 0\\ 2x_3+2\lambda_1-\lambda_2-\nu_3 &=&0\\ -\lambda_1+\lambda_3&=&0\\ \lambda_2x_1+\lambda_4&=&0\\ 6x_1+3x_2+2x_3-p_1 &=&0\\ p_2x_1+x_2-x_3-1 &=&0\\ p_1-p_{1,a}&=&0\\ p_2-p_{2,a}&=&0\\ \nu_1x_1-\mu &=& 0\\ \nu_2x_2-\mu&=& 0\\ \nu_3x_3-\mu&=& 0\\ x_1,x_2,x_3,\nu_1,\nu_2,\nu_3&\geq& 0, \end{eqnarray} \noindent and the corresponding Newton step is \begin{equation} \label{eq:exr:newton} \left[ \begin{array}{cccccccccccc} 2&&&&\lambda_2&6&p_2&&&-1\\ &2&&&&3&1&&&&-1\\ &&2&&&2&-1&&&&&-1\\ &&&&&-1&&1\\ \lambda_2&&&&&&x_1&&1\\ 6&3&2&-1\\ p_2&1&-1&&x_1\\ &&&1\\ &&&&1\\ \nu_1&&&&&&&&&x_1\\ &\nu_2&&&&&&&&&x_2\\ &&\nu_3&&&&&&&&&x_3 \end{array} \right] \left[ \begin{array}{c} \Delta x_1\\ \Delta x_2\\ \Delta x_3\\ \Delta p_1\\ \Delta p_2\\ \Delta \lambda_1\\ \Delta \lambda_2\\ \Delta \lambda_3\\ \Delta \lambda_4\\ \Delta \nu_1\\ \Delta \nu_2\\ \Delta \nu_3\\ \end{array} \right] =- \left[ \begin{array}{c} 2x^{*}_1+6\lambda^{*}_1+p_2\lambda^{*}_2-\nu^{*}_1\\ 2x^{*}_2+3\lambda^{*}_1+\lambda^{*}_2-\nu^{*}_2\\ 2x^{*}_3+2\lambda^{*}_1-\lambda^{*}_2-\nu^{*}_3\\ -\lambda^{*}_1+\lambda^{*}_3\\ \lambda^{*}_2x^{*}_1+\lambda^{*}_4\\ 6x^{*}_1+3x^{*}_2+2x^{*}_3-p^{*}_1\\ p^{*}_2x^{*}_1+x^{*}_2-x^{*}_3-1\\ p^{*}_1-p_{1,a}\\ p^{*}_2-p_{2,a}\\ \nu^{*}_1x^{*}_1-\mu\\ \nu^{*}_2x^{*}_2-\mu\\ \nu^{*}_3x^{*}_3-\mu\\ \end{array} \right] \end{equation} \noindent where the right hand side is zero at the solution. \subsection{\AMPL\ Interface} In this section we will show how to use \sensKKT\ through the \AMPL\ interface \cite{ampl}. This is the preferred method for using IPOPT, because this allows us to take advantage of the exact first and second order derivatives provided by the modeling language. The first thing to do is to write the problem in the \AMPL\ language as shown in code listing \ref{ampl:ex1}. %\begin{minipage}{0.9\textwidth}\centering \begin{lstlisting}[language=ampl, caption={\AMPL\ code for Problem \ref{eq:exr}.}, label={ampl:ex1}, frame=single, captionpos=b] reset ; # Define parameters param et1p ; param et2p ; # Original parameter values let et1p := 5 ; let et2p := 1 ; # Define variables, with bounds and initial guess var x1 >= 0, := 0.15 ; var x2 >= 0, := 0.15 ; var x3 >= 0, := 0.00 ; # objective function minimize objf: x1^2 + x2^2 + x3^2 ; # constraints subject to r1: 6*x1 + 3*x2 + 2*x3 - et1p = 0 ; r2: et2p*x1 + x2 - x3 - 1 = 0 ; # Define solver and Ampl options in this case we don't want Ampl's # presolve to accidentally remove artificial variables. options solver ipopt_sens ; option presolve 0 ; # Solve problem solve ; \end{lstlisting} %\end{minipage} We can now proceed to modify the above code to add the information needed to use \sensKKT. For this we need to create the following suffixes. These will be used to communicate the nominal and perturbed values of the parameters, and also some will serve as flags to indicate to IPOPT which are the artificial constraints that were added. \begin{description} \item[\statez] This is used to enumerate the parameters that will be perturbed. It takes values from 1 to length($p$), and the values may not be repeated. Note that the order of the values is crucial. \item[\stateo] This is similar to \textbf{\statez}, but it now indicates the order for the parameters at the perturbed value. This suffix should have the same values as \textbf{\statez}. It takes values from 1 to length($p$), and the values may not be repeated. \item[\statevo] This is used to communicate the values of the perturbed parameters. It has to be set for the same variables as \textbf{\stateo}. \item[\initc] This is a flag that indicates the constraint is artificial, e.g., $w - p_0=0$ in Problem \eqref{eq:reform}. If the constraint is artificial, set this suffix to 1 (no indexing is necessary). \end{description} Once these suffixes have been set, we must enable \sensKKT\ by setting the \emph{\runaskkt} to `\emph{yes}'. Note that this option can alternatively be set in the ipopt.opt file. In addition, to ensure that \AMPL's presolve feature does not eliminate the initial value constraints, we disable it. Thus, the modified code is \begin{lstlisting}[language=ampl, caption={\AMPL\ code for sensitivity update of Problem \ref{eq:exr}.}, label={ampl:ex2}, frame=single, captionpos=b] reset ; # Suffixes for sensitivity update suffix sens_state_0, IN; suffix sens_state_1, IN; suffix sens_state_value_1, IN; suffix sens_sol_state_1, OUT; suffix sens_init_constr, IN; # Original value of parameters param et1p ; param et2p ; # Original parameter values let et1p := 5 ; let et2p := 1 ; # Define variables, with bounds and initial guess var x1 >= 0, := 0.15 ; var x2 >= 0, := 0.15 ; var x3 >= 0, := 0.00 ; # Artificial variables so IPOPT sees the parameters var et1 ; var et2 ; # objective function minimize objf: x1^2 + x2^2 + x3^2 ; # constraints subject to r1: 6*x1 + 3*x2 + 2*x3 - et1 = 0 ; r2: et2*x1 + x2 - x3 - 1 = 0 ; # Artificial constraints to pass parameters to IPOPT r3: et1 = et1p ; r4: et2 = et2p ; # Define solver and Ampl options in this case we don't want Ampl's # presolve to accidentally remove artificial variables. options solver ipopt_sens ; option presolve 0; # define an order to the parameters that will change. # In step 0, only et1 changes, and has position 1 let et1.sens_state_0 := 1 ; # in the first step/change et1 has position 1 let et1.sens_state_1 := 1 ; # Perturbed value of parameter et1 (in step 1) let et1.sens_state_value_1 := 4.5 ; # In step 0, et2 has position 1 let et2.sens_state_0 := 2 ; # in the first step/change et1 has position 2 let et2.sens_state_1 := 2 ; # Perturbed value of parameter et2 (in step 1) let et2.sens_state_value_1 := 1 ; # Artificial constraints let r3.sens_init_constr := 1 ; let r4.sens_init_constr := 1 ; # solve problem solve ; \end{lstlisting} After the algorithm has completed successfully, the perturbed solution is stored in the following \AMPL\ suffixes: \begin{description} \item[\sstateo] This holds the updated variables as well as the updated constraint multiplier values computed in the sensitivity update. \item[\sstatezl] This suffix holds updated lower bound multipliers. \item[\sstatezu] This suffix holds updated upper bound multipliers. \end{description} For example we could append the following code to Listing \ref{ampl:ex2} in order to print both the nominal solution, as well as the updated values. % \begin{lstlisting}[language=ampl, frame=single, captionpos=b,caption={\AMPL\ code to print updated solution.}, label={ampl:ex3}] #********************************************** # Print nominal solution and bound multipliers #********************************************** display x1, x2, x3, et1, et2 ; display x1.ipopt_zU_out, x2.ipopt_zU_out, x3.ipopt_zU_out, et1.ipopt_zU_out, et2.ipopt_zU_out ; display x1.ipopt_zL_out, x2.ipopt_zL_out, x3.ipopt_zL_out, et1.ipopt_zL_out, et2.ipopt_zL_out ; # Constraint multipliers display r1, r2, r3, r4 ; #************************ # Print updated solution #************************ display x1.sens_sol_state_1, x2.sens_sol_state_1, x3.sens_sol_state_1, et1.sens_sol_state_1, et2.sens_sol_state_1 ; display x1.sens_sol_state_1_z_U, x2.sens_sol_state_1_z_U, x3.sens_sol_state_1_z_U, et1.sens_sol_state_1_z_U, et2.sens_sol_state_1_z_U ; display x1.sens_sol_state_1_z_L, x2.sens_sol_state_1_z_L, x3.sens_sol_state_1_z_L, et1.sens_sol_state_1_z_L, et2.sens_sol_state_1_z_L ; # and updated constraint multipliers display r1.sens_sol_state_1, r2.sens_sol_state_1, r3.sens_sol_state_1, r4.sens_sol_state_1 ; \end{lstlisting} An example implementation of the above is provided in the directory: \begin{description} \item {\tt \ipoptf/Ipopt/contrib/\sensdir/examples/parametric\_ampl}. \end{description} %\subsection{C++ Interface} \section{Reduced Hessian} An important byproduct of the sensitivity calculation is information related to the Hessian of the Lagrange function pertinent to the second order conditions. At the solution of (\ref{NLPsens}) we again consider the sensitivity system, $M S = N_{rh}$, and partition the variables into free and bounded variables, i.e., $x^* = [x_f^T \; x_b^T]$ where $x^*_f > 0, x^*_b = 0$. Assuming strict complementarity (SC), the IFT sensitivity system using (\ref{mdef}) can be partitioned with: \begin{equation} M = \matr{ccccc}{W_{ff}(x^*,\lambda^*) & W_{fb}(x^*,\lambda^*) & A_f(x^*) & -I_f & 0 \\ W_{bf}(x^*,\lambda^*) & W_{bb}(x^*,\lambda^*) & A_b(x^*) & 0 & -I_b \\ A_f(x^*)^T & A_b(x^*))^T &0 &0 & 0\\ 0 & 0 & 0 &X_f^* & 0 \\ 0 & V_b^*& 0 & 0 & 0}, S = \vect{S_{x_f} \\ S_{x_b} \\ S_{\lambda} \\ S_{\nu_f} \\ S_{\nu_b}}, \mbox{ and } N_{rh} = \vect{E \\ 0 \\ 0 \\ 0 \\ 0} \label{matdef} \end{equation} %\noindent where $E$ is defined below. From (\ref{matdef}) it is easy to see that $S_{x_b} = 0, S_{\nu_f} = 0$. These variables and the last two rows can therefore be removed, leading to: \begin{equation*} \matr{ccc}{W_{ff}(x^*,\lambda^*) & A_f(x^*) & 0 \\ A_f(x^*))^T &0 & 0\\ W_{bf}(x^*,\lambda^*) & A_b(x^*) & -I_b} \vect{S_{x_f} \\ S_{\lambda} \\ S_{\nu_b}} = \vect{E \\ 0 \\ 0} \end{equation*} For a chosen set of $n_I \leq n_x - m$ independent variables with elements reordered at the end of the $x$ vector, $A_D$ nonsingular, $E^T = [0 \;|\: I_{n_I}]$ and the matrices defined in (\ref{matdef}), the reduced Hessian can be found directly by solving $M S = N_{rh}$. As described in \cite{pirnay:2011}, the reduced Hessian can be extracted easily from the rows of $S$. Thus taking advantage of the implementation described in Section \ref{sec:barrier} for sensitivity based updates, we can obtain an approximation of the reduced Hessian via backsolves involving the factorized KKT matrix. \section{Usage} In the following sections we describe the usage of the reduced Hessian calculator using the \AMPL. We also provide examples of the C++ interface in the examples folder. \subsection{\AMPL\ Interface} The usage of the reduced Hessian calculation is similar to the sensitivity updates described above. The critical step here is deciding which variables will be independent variables at the optimal solution. Theses independent variables are then identified with the suffix \textbf{\redhess}. This suffix provides an enumeration of the independent variables, thus it needs to take ordered values from $1..n_I$, where $n_I$ is the number of independent variables. The columns of the inverse reduced Hessian will be printed to the screen, and their order is determined by the ordering of these indices. To enable reduced Hessian calculations we need to set the option The algorithm is enabled by setting the solver option \emph{\redhessopt} to `\emph{yes}'. Using Example 1 defined by Problem \eqref{eq:ex1}, we illustrate the use of the reduced Hessian calculator. The code for this is shown in Listing \ref{ampl:exrh}. In addition, the calculated reduced Hessian is displayed on the screen automatically at the end of IPOPT's normal output. \begin{lstlisting}[language=ampl, caption={\AMPL\ code for Problem \ref{eq:exr}.}, label={ampl:exrh}, frame=single, captionpos=b] reset ; # Define reduced Hessian suffixes suffix red_hessian, IN ; # Define parameters param et1 ; param et2 ; # Parameter values let et1p := 5 ; let et2p := 1 ; # Define variables, with bounds and initial guess var x1 >= 0, := 0.15 ; var x2 >= 0, := 0.15 ; var x3 >= 0, := 0.00 ; # objective function minimize objf: x1^2 + x2^2 + x3^2 ; # constraints subject to r1: 6*x1 + 3*x2 + 2*x3 - et1p = 0 ; r2: et2p*x1 + x2 - x3 - 1 = 0 ; # Define solver and Ampl options in this case we don't want Ampl's # presolve to accidentally remove artificial variables. options solver ipopt_sens ; option presolve 0 ; # Define free variables let x3.red_hess := 1 ; # Solve problem solve ; \end{lstlisting} \section{C++ Interface} The C++ interface is very simple to apply to an existing {\tt Ipopt::TNLP} implementation. The member function {\tt TNLP::::get\_var\_con\_metadata} in Ipopt provides a feature very similar to that of \AMPL\ suffixes. The steps taken to make a TNLP class ready for using the \sensKKT\ code are similar to those used in \AMPL. First, the parameter values are defined with artificial variables and constraints. Note that because of this the Jacobian and Hessian computations have to be adjusted accordingly. Finally, the suffixes need to be set the same way they would in \AMPL\ as described above. This is done using member function {\tt TNLP::::get\_var\_con\_metadata}. This is illustrated in examples \texttt{examples/redhess\_cpp} and \\ \texttt{examples/parametric\_cpp}. \section{Installation} The first step to install the software is to install the \emph{trunk} version of IPOPT, once this is done installing \sensKKT\ is very simple. IPOPT's installation instructions can be found in the following website. \begin{description} \item \texttt{http://www.coin-or.org/Ipopt/documentation/} \end{description} Also note that in the following we refer to {\tt \ipoptf} as the main folder, where the Ipopt, ThirdParty, BuildTools, \ldots, folders are located. If you wish to use the \AMPL\ interface, make sure that your IPOPT installation also includes it. To do this you need to download the ASL library, with the {\tt get.ASL} script located in {\tt \ipoptf/ThirdParty/ASL}. Finally, we assume that you created a build folder to install IPOPT in {\tt \ipoptf/build/}. In this case, to download the \emph{trunk} version of IPOPT you would type: \begin{description} \item {\tt \$ svn co https://projects.coin-or.org/svn/Ipopt/trunk \ipoptf} \end{description} Once IPOPT has been compiled and installed, we can proceed to build \sensKKT. To do this go to the {\tt \ipoptf/build/Ipopt/contrib/\sensdir/} folder, and type {\tt make} there. \begin{description} \item {\tt \$ cd \ipoptf/build/Ipopt/contrib/\sensdir} \item {\tt \$ make} \end{description} If no errors are shown after compilation you can proceed to install the libraries and to generate the \AMPL\ executable. To do this type \begin{description} \item {\tt \$ make install} \end{description} This should copy the generated libraries ({\tt \senslib.*}) to {\tt \ipoptf/build/lib}, and the \AMPL\ executable ({\tt \sensexe}) to {\tt \ipoptf/build/bin/}. \section{Options} There are several new options that can be set in the {\tt ipopt.opt} file, that determine the behavior of the \sensKKT\ code. The more important options are the ones enable the execution of the post-optimal \sensKKT code. These are \begin{verbatim} run_sens yes \end{verbatim} \noindent to enable sensitivity computations, and \begin{verbatim} compute_red_hessian yes \end{verbatim} \noindent to enable the computation of the reduced Hessian. \paragraph{Other options are:} \begin{description} %\item[\selectstep] This option determines how the sensitivity update is performed, and it % can take any of the following values: % % \begin{tabular}{lp{0.7\textwidth}} % \textbf{\texttt{iftsensitivity}} & This option calculates the update using Equation \eqref{init1}. % Note that here we consider the problem is formulated as Problem (11) from the % implementation paper \cite{pirnay:2011}, and % also we use general upper and lower bounds (see Section 2.6 from \cite{pirnay:2011}). % This is the default. \\ % \texttt{advanced} & for the full advanced step with Schur complement and multiplier correction \\ % \texttt{sensitivity}& for the Schur step without multiplier correction, \\ % \texttt{ift} & for the fast back solve without Schur complement computation, but with multiplier correction \\ % \end{tabular} % % For parametric problems, the options \texttt{sensitivity} and \texttt{iftsensitivity} should be used, % whereas for advanced step problems, the options \texttt{advanced} and \texttt{ift} are more suitable. \item[\texttt{\textbf{\nstepsopt}}] In general, the update can be done sequentially for any number of parameters. However, for now, the valid range for this integer option is $1 \leq \mbox{\nstepsopt} \leq \infty$, and the default value is 1. Please see Section \ref{sec:multirhs} for more details on this. \item[\texttt{\textbf{\boundcheckopt}}] If set to \texttt{yes}, this option turns on the bound correction algorithm (see Section 2.4 in the implementation paper). The default value of this string option is \texttt{no}. \item[\texttt{\textbf{\boundepsopt}}] This option makes sure that only variables that violate the bound by more than\\ {\texttt{\boundepsopt}} are considered as real violations. Otherwise, bound checking might continue until the full active set has been covered. This is only used if the \texttt{\boundcheckopt} is set to \texttt{yes}. The valid range of this real valued option is: $0 \leq \mbox{\texttt{\boundepsopt}} \leq \infty$, and the default value is $10^{-3}$. \item[\texttt{\textbf{\maxpdpertopt}}] For certain problems, IPOPT uses inertia correction of the primal dual matrix to achieve better convergence properties. This inertia correction changes the matrix and renders it useless for the use with \sensKKT. This option sets an upper bound, which the inertia correction may have. If any of the inertia correction values is above this bound, the \sensKKT\ algorithm is aborted. The valid range of this real valued option is: $0 \leq \mbox{\texttt{\maxpdpertopt}} \leq \infty$, and the default is $10^{-3}$. Please see Section 2.2 of the IPOPT implementation paper \cite{Waechter2006} for more details. \item[\texttt{\textbf{\eigendecompopt}}] If this option is set to \texttt{yes}, the reduced Hessian code will compute the eigenvalue decomposition of the reduced Hessian matrix. The default value of this string option is \texttt{no}. \item[\texttt{\textbf{\allowinex}}] This option is used to enable or disable IPOPT's Iterative Refinement. See Section 3.10 of the IPOPT implementation paper \cite{Waechter2006}. By default this string option is set to \texttt{yes} (do not do iterative refinement), and it can take values of \texttt{yes} or \texttt{no}. \item[\texttt{\textbf{\senskktresiduals}}] The residuals of the KKT conditions should be zero at the optimal solution. However, in practice, especially for large problems and depending on the termination criteria, they may deviate from this theoretical state. If this option is set to the default \texttt{yes}, the residuals will be taken into account when computing the right hand side for the sensitivity step. If set to \texttt{no}, the residuals will not be computed and assumed to be zero. \end{description} \bibliography{sipopt} \newpage \appendix \section{Summary of Suffixes} In this section we summarize the suffixes that need to be set for sensitivity updates, or reduced Hessian calculations. \paragraph{Sensitivity Calculations:} Set the option \texttt{{\runaskkt}} to \texttt{yes}.\\ Some suffixes will need to be defined by the user, while others are automatically generated by {\sensKKT}. Moreover, some of the suffixes need to be indexed by $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$. Also note that the direction column below is used to indicate to {\AMPL} if the suffix will be sent to the solver, or passed by the solver to {\AMPL}. More information on this can be found in \cite{ampl}.\\ \begin{tabular}{|>{\centering}m{3.5cm}|>{\centering}m{2cm}|m{0.6\textwidth}|}\hline \multicolumn{3}{|c|}{\textbf{Defined by User}} \\ \hline Suffix & Direction & \multicolumn{1}{c|}{Description} \\ \hline \textbf{\statez} & IN & This is used to enumerate the parameters that will be perturbed. It takes values from 1 to length($p$), and the values may not be repeated. Note that the order of the values is crucial.\\ \hline \multirow{2}{*}{\textbf{\statei{\emph{i}}}} & \multirow{2}{*}{IN } & This is similar to \textbf{\statez}, but it now indicates the order for the parameters at the perturbed value. You must define one for each $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$. \\ && This suffix should have the same values as \textbf{\statez}. It takes values from 1 to length($p$), and the values may no be repeated.\\ \hline \multirow{2}{*}{\textbf{\statevi{\emph{i}}}} & \multirow{2}{*}{IN} & This is used to communicate the values of the perturbed parameters. You must define one for each $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$. \\ && It has to be set for the same variables as \textbf{\stateo}.\\ \hline \textbf{\initc} & IN & This is a flag that indicates the constraint is artificial, e.g., $w - p_0=0$ in Problem \eqref{eq:reform}. If the constraint is artificial, set this suffix to 1 (no indexing is necessary). \\ \hline \multicolumn{3}{|c|}{\textbf{Defined by \sensKKT}} \\ \hline \multirow{2}{*}{\textbf{\sstatei{\emph{i}}}} & \multirow{2}{*}{OUT} & This holds the updated variables, as well as, the updated constraint multiplier values computed in the sensitivity update. \\ && One for each $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$ will be defined. \\ \hline \multirow{2}{*}{\textbf{\sstatezli{\emph{i}}}} & \multirow{2}{*}{OUT} & This suffix holds updated lower bound multipliers.\\ && One for each $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$ will be defined.\\ \hline \multirow{2}{*}{\textbf{\sstatezui{\emph{i}}}} & \multirow{2}{*}{OUT} & This suffix holds updated upper bound multipliers.\\ && One for each $\curls{i: 1 \leq i \leq \mbox{\texttt{\nstepsopt}}}$ will be defined.\\ \hline \end{tabular} \paragraph{Reduced Hessian Calculations:} Set the option \texttt{{\redhessopt}} to \texttt{yes}. \\ \begin{tabular}{|>{\centering}m{3.5cm}|>{\centering}m{2cm}|m{0.6\textwidth}|}\hline Suffix & Direction & \multicolumn{1}{c|}{Description} \\ \hline \textbf{\redhess} & IN & This is used to enumerate the independent variables, thus it needs to take ordered values from $1..n_I$, and $n_I$ is the number of independent variables. \\ \hline \end{tabular} \end{document}Ipopt-3.11.4/Ipopt/contrib/sIPOPT/readme.txt0000644000076600007660000000146711551611342017167 0ustar coincoin sIPOPT Toolbox for IPOPT ======================== This is the Sensitivity with IPOPT toolbox. Its purpose is to compute fast approximate solutions when parameters in the NLP change. For more information on the project please see the implementation paper, or the project website. See the file install.txt in this directory for details on building the code. The code has only been tested on Linux. Documentation, tutorials and test examples can be found in the IPOPT wiki as well as on the project documentation and website. Contact: The sIPOPT code was developed by Hans Pirnay (RWTH-Aachen), Rodrigo Lopez-Negrete (CMU), and Prof. Lorenz Biegler (CMU). Any questions / problems / bugs may be sent to the IPOPT mailing list, or (hans.pirnay@rwth-aachen.de). Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/0000755000076600007660000000000012214537465017011 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_cpp/0000755000076600007660000000000012214537465021310 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_cpp/Makefile.in0000644000076600007660000000551711576071414023362 0ustar coincoin# Copyright (C) 2010 Hans Pirnay # All Rights Reserved. # This file is distributed under the Eclipse Public License. ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = redhess_cpp@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = redhess_cpp.@OBJEXT@ \ MySensTNLP.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ SRCDIR = @srcdir@ ipoptsrcdir = $(SRCDIR)/../../../../src senssrcdir = $(SRCDIR)/../../src # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) # we also need some Ipopt headers that are not installed, so we add $(ipoptsrcdir)/Algorithm and $(ipoptsrcdir)/LinAlg @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = -lsipopt `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libsipopt.lib libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lsipopt -lipopt @IPOPTLIB_LIBS_INSTALLED@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(ADDLIBS) $(LIBS) clean: rm -rf $(EXE) $(OBJS) .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.cpp0000644000076600007660000001110411573147064023724 0ustar coincoin// Copyright 2009 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-10-04 #include "MySensTNLP.hpp" #include "IpDenseVector.hpp" #include using namespace Ipopt; /* Constructor. */ MySensTNLP::MySensTNLP() {} MySensTNLP::~MySensTNLP() {} bool MySensTNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // The problem has 3 variables n = 3; // one equality constraint m = 1; nnz_jac_g = 3; nnz_h_lag = 3; index_style = FORTRAN_STYLE; return true; } bool MySensTNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { assert(n==3); assert(m==1); for (Index k=0; k<3; k++) { x_l[k] = -1.0e19; x_u[k] = +1.0e19; } g_l[0] = 0.0; g_u[0] = 0.0; return true; } bool MySensTNLP::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { x[0] = 25; x[1] = 0; x[2] = 0; return true; } bool MySensTNLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { // return the value of the objective function Number x1 = x[0]; Number x2 = x[1]; Number x3 = x[2]; obj_value = (x1-1)*(x1-1) + (x2-2)*(x2-2) + (x3-3)*(x3-3); return true; } bool MySensTNLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { // return the gradient of the objective function grad_{x} f(x) Number x1 = x[0]; Number x2 = x[1]; Number x3 = x[2]; grad_f[0] = 2*(x1-1); grad_f[1] = 2*(x2-2); grad_f[2] = 2*(x3-3); return true; } bool MySensTNLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { // return the value of the constraints: g(x) Number x1 = x[0]; Number x2 = x[1]; Number x3 = x[2]; g[0] = x1+2*x2+3*x3; return true; } bool MySensTNLP::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { // return the structure of the jacobian of the constraints // element at 1,1: grad_{x1} g_{1}(x) iRow[0] = 1; jCol[0] = 1; // element at 1,2: grad_{x2} g_{1}(x) iRow[1] = 1; jCol[1] = 2; // element at 1,3: grad_{x3} g_{1}(x) iRow[2] = 1; jCol[2] = 3; } else { // return the values of the jacobian of the constraints // element at 1,1: grad_{x1} g_{1}(x) values[0] = 1.0; // element at 1,2: grad_{x1} g_{1}(x) values[1] = 2.0; values[2] = 3.0; } return true; } bool MySensTNLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { // return the structure. This is a symmetric matrix, fill the lower left // triangle only. // element at 1,1: grad^2_{x1,x1} L(x,lambda) iRow[0] = 1; jCol[0] = 1; // element at 2,2: grad^2_{x2,x2} L(x,lambda) iRow[1] = 2; jCol[1] = 2; iRow[2] = 3; jCol[2] = 3; // Note: off-diagonal elements are zero for this problem } else { // return the values // element at 1,1: grad^2_{x1,x1} L(x,lambda) values[0] = 2.0; // element at 2,2: grad^2_{x2,x2} L(x,lambda) values[1] = 2.0; values[2] = 2.0; // Note: off-diagonal elements are zero for this problem } return true; } bool MySensTNLP::get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) { std::vector red_hess_idx(3,0); red_hess_idx[1] = 1; red_hess_idx[2] = 2; var_integer_md["red_hessian"] = red_hess_idx; return true; } void MySensTNLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // here is where we would store the solution to variables, or write to a file, etc // so we could use the solution. Since the solution is displayed to the console, // we currently do nothing here. } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_cpp/redhess_cpp.cpp0000644000076600007660000000276111551616635024321 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-10-04 #include "MySensTNLP.hpp" #include "IpIpoptApplication.hpp" #include "SensApplication.hpp" #include "IpPDSearchDirCalc.hpp" #include "IpIpoptAlg.hpp" #include "SensRegOp.hpp" int main(int argv, char**argc) { using namespace Ipopt; SmartPtr app_ipopt = new IpoptApplication(); SmartPtr app_sens = new SensApplication(app_ipopt->Jnlst(), app_ipopt->Options(), app_ipopt->RegOptions()); // Register sIPOPT options RegisterOptions_sIPOPT(app_ipopt->RegOptions()); app_ipopt->Options()->SetRegisteredOptions(app_ipopt->RegOptions()); // Call Initialize the first time to create a journalist, but ignore // any options file ApplicationReturnStatus retval; retval = app_ipopt->Initialize(""); if (retval != Solve_Succeeded) { //printf("ampl_ipopt.cpp: Error in first Initialize!!!!\n"); exit(-100); } app_ipopt->Initialize(); // create AmplSensTNLP from argc. This is an nlp because we are using our own TNLP Adapter SmartPtr sens_tnlp = new MySensTNLP(); app_ipopt->Options()->SetStringValueIfUnset("compute_red_hessian", "yes"); app_sens->Initialize(); retval = app_ipopt->OptimizeTNLP(sens_tnlp); /* give pointers to Ipopt algorithm objects to Sens Application */ app_sens->SetIpoptAlgorithmObjects(app_ipopt, retval); app_sens->Run(); return 0; } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_cpp/MySensTNLP.hpp0000644000076600007660000000736611551616635023751 0ustar coincoin// Copyright 2009 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-10-04 #ifndef __MYSENSNLP_HPP__ #define __MYSENSNLP_HPP__ #include "IpTNLP.hpp" namespace Ipopt { class MySensTNLP : public TNLP { public: /** default constructor */ MySensTNLP(); /** default destructor */ virtual ~MySensTNLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md); /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ MySensTNLP(const MySensTNLP&); MySensTNLP& operator=(const MySensTNLP&); //@} }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/0000755000076600007660000000000012214537465021123 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/nmpcresults.inc0000644000076600007660000000703611545642541024201 0ustar coincoin# =================================================================== # dynamic optimization formulation of the hicks-ray reactor # create results file for matlab # victor m zavala march 2006 # Adapted for sIPOPT by Hans Pirnay 2009, 2011 # =================================================================== printf "clc\n" >graph.m; printf "clear all" >graph.m; printf "\n" >graph.m; #display variables and parameters printf "c=[" >graph.m; printf "%5.5f ",c_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",c[j,k]>>graph.m; printf "]';\n" >>graph.m; printf "t=[" >graph.m; printf "%5.5f ",t_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",t[j,k]>>graph.m; printf "]';\n" >>graph.m; printf "u=[" >graph.m; printf "%5.5f ",u_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",u[j,k]>>graph.m; printf "]';\n" >>graph.m; printf "c1=[" >graph.m; printf "%5.5f ",c_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",c[j,k].sens_sol_state_1>>graph.m; printf "]';\n" >>graph.m; printf "t1=[" >graph.m; printf "%5.5f ",t_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",t[j,k].sens_sol_state_1>>graph.m; printf "]';\n" >>graph.m; printf "u1=[" >graph.m; printf "%5.5f ",u_init>>graph.m; printf {j in fe,k in cp}: "%5.5f ",u[j,k].sens_sol_state_1>>graph.m; printf "]';\n" >>graph.m; printf "nfe= %5i ",nfe>>graph.m; printf ";\n">>graph.m; printf "ncp= %5i ",ncp>>graph.m; printf ";\n">>graph.m; printf "ncp= ncp-1">>graph.m; printf ";\n">>graph.m; printf "tt= %5.5f ",time>>graph.m; printf ";\n">>graph.m; printf "r1= %5.5f ",r1>>graph.m; printf ";\n">>graph.m; printf "r2= %5.5f ",r2>>graph.m; printf ";\n">>graph.m; printf "r3= %5.5f ",r3>>graph.m; printf ";\n">>graph.m; printf "roots(1)= r1 ">>graph.m; printf ";\n">>graph.m; printf "roots(2)= r2 ">>graph.m; printf ";\n">>graph.m; printf "roots(3)= r3 ">>graph.m; printf ";\n">>graph.m; printf "h= tt/nfe ">>graph.m; printf ";\n">>graph.m; printf "index= 0 ">>graph.m; printf ";\n">>graph.m; printf "nelement= 0 ">>graph.m; printf ";\n">>graph.m; printf "for i=1:nfe,">>graph.m; printf "\n">>graph.m; printf "nelement=nelement+1">>graph.m; printf ";\n">>graph.m; printf "for j=1:ncp+1,">>graph.m; printf "\n">>graph.m; printf "index=index+1">>graph.m; printf ";\n">>graph.m; printf "if i == 1">>graph.m; printf "\n">>graph.m; printf "time(index) = h*roots(j)">>graph.m; printf ";\n">>graph.m; printf "else">>graph.m; printf "\n">>graph.m; printf "time(index) = (nelement-1)*h+h*roots(j)">>graph.m; printf ";\n">>graph.m; printf "end">>graph.m; printf "\n">>graph.m; printf "end">>graph.m; printf "\n">>graph.m; printf "end">>graph.m; printf "\n">>graph.m; printf "time= [0,time]'">>graph.m; printf ";\n">>graph.m; # plot the results printf "subplot(3,1,1)\n" >>graph.m; printf "plot(time,c,'k')\nhold on\n" >>graph.m; printf "plot(time,c1,'k')\n" >>graph.m; printf "xlabel ('time')">>graph.m; printf ";\n">>graph.m; printf "ylabel ('concentration')">>graph.m; printf ";\n">>graph.m; printf "subplot(3,1,2)\n" >>graph.m; printf "plot(time,[t,t1],'k')\n" >>graph.m; printf "xlabel ('time')">>graph.m; printf ";\n">>graph.m; printf "ylabel ('temperature')">>graph.m; printf ";\n">>graph.m; printf "subplot(3,1,3)\n" >>graph.m; printf "plot(time,[u,u1],'k')\n" >>graph.m; printf "xlabel ('time')">>graph.m; printf ";\n">>graph.m; printf "ylabel ('cooling w flowrate')">>graph.m; printf ";\n">>graph.m; printf "print -deps hicks.eps\n">>graph.m; close graph.m; printf "output written to matlab m-file: graph.m ...\n"; #-- end of the graphshicks.inc file - Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/hicks.mod0000644000076600007660000000537411545642541022734 0ustar coincoin# =================================================================== # dynamic optimization formulation of the hicks-ray reactor # model declaration # victor m zavala march 2006 # adapted for asNMPC by Hans Pirnay 2009, 2011 # =================================================================== # define indexes and general variables param nfe >= 1 integer ; param ncp >= 1 integer ; # define mathematical model parameters param time ; param jj ; param cf ; param alpha ; param tf ; param k10 ; param tc ; param n ; param alpha1 ; param alpha2 ; param alpha3 ; param c_des ; param t_des ; param u_des ; param c_init ; param t_init ; param u_init ; param r1 ; param r2 ; param r3 ; param theta ; param point ; param slopec ; param slopet ; param slopeu ; # define dimensions for all indexed variables set fe := 1..nfe ; # number of finite elements set cp := 1..ncp ; # number of collocation points param a{cp,cp} ; # collocation matrix param h{fe} ; # finite element length # define the decision variables var c {fe,cp} >= 0 ; var t {fe,cp} >= 0 ; var u {fe,cp} >= 0 ; # auxiliary equations param yc := tc/(jj*cf) ; param yf := tf/(jj*cf) ; # states first order derivatives var cdot{i in fe, j in cp} = (1-c[i,j])/theta-k10*exp(-n/t[i,j])*c[i,j] ; var tdot{i in fe, j in cp} = (yf-t[i,j])/theta+k10*exp(-n/t[i,j])*c[i,j]-alpha*u[i,j]*(t[i,j]-yc) ; #--------------------------------- # This is specific to the asNMPC code: # The initial constraints have to be defined as variables. # They have to be set explictly with initial constraints. # These constraints need to be identified by the # sens_init_constr suffix. var c_init_var; var t_init_var; c_init_constr: c_init_var = c_init; t_init_constr: t_init_var = t_init; #0.7293; #--------------------------------- # collocation equations fecolc{i in fe diff{1},j in cp}: c[i,j] = c[i-1,ncp]+time*h[i]*sum{k in cp} a[k,j]*cdot[i,k]; fecolt{i in fe diff{1},j in cp}: t[i,j] = t[i-1,ncp]+time*h[i]*sum{k in cp} a[k,j]*tdot[i,k]; fecolc0{i in 1..1,j in cp}: c[i,j] = c_init_var+time*h[i]*sum{k in cp} a[k,j]*cdot[i,k]; fecolt0{i in 1..1,j in cp}: t[i,j] = t_init_var+time*h[i]*sum{k in cp} a[k,j]*tdot[i,k]; # objective function... minimize cost: sum{i in 2..nfe} (h[i]*sum{j in cp} ((alpha1*(c[i,j]-c_des)^2+ alpha2*(t[i,j]-t_des)^2+alpha3*(u[i,j]-u_des)^2 )*a[j,ncp])) + h[1]*sum{j in cp} ((alpha1*((c_init_var+time*h[1]*sum{k in cp} a[k,j]*cdot[1,k]) - c_des)^2 + alpha2*((t_init_var+time*h[1]*sum{k in cp} a[k,j]*tdot[1,k])-t_des)^2 + alpha3*(u[1,j]-u_des)^2)*a[j,ncp]); #-- end of the hicks.mod file -- Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/hicks.run0000644000076600007660000000113711546215775022760 0ustar coincoin# Copyright 2009, 2011 Hans Pirnay # All Rights Reserved. # This code is published under the Eclipse Public License. # # Date : 2010-10-04 reset ; suffix sens_state_0, IN; suffix sens_state_1, IN; suffix sens_state_value_1, IN; suffix sens_sol_state_1, OUT; suffix sens_init_constr, IN; option solver ipopt_sens ; option presolve 0; option ipopt_options 'run_sens no'; model hicks.mod ; data hicks.dat ; option ipopt_options 'run_sens yes'; solve; include nmpcresults.inc ; Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/hicks.dat0000644000076600007660000000473311545642541022723 0ustar coincoin# =================================================================== # dynamic optimization formulation of the hicks-ray reactor # data declaration # victor m zavala march 2006 # adapted for asNMPC by Hans Pirnay 2009, 2011 # =================================================================== param a: 1 2 3 := # 1 0.19681547722366 0.39442431473909 0.37640306270047 2 -0.06553542585020 0.29207341166523 0.51248582618842 3 0.02377097434822 -0.04154875212600 0.11111111111111; # mathematical model parameters let jj := 100 ; let cf := 7.6 ; let alpha := 1.95e-04 ; let tf := 300 ; let k10 := 300 ; let tc := 290 ; let n := 5 ; let alpha1 := 1e6 ; let alpha2 := 2e3 ; let alpha3 := 1e-03 ; let nfe := 40 ; let ncp := 3 ; let r1 := 0.15505102572168 ; let r2 := 0.64494897427832 ; let r3 := 1 ; # initial and end transition points let c_des := 0.0944 ; let t_des := 0.7766 ; let u_des := 340 ; let c_init := 0.1367 ; let t_init := 0.7293 ; let u_init := 390 ; let time := 9 ; let theta := 20 ; # initial guesses of the decision variables let point := 0 ; let slopec := (c_des-c_init)/(nfe*ncp) ; let slopet := (t_des-t_init)/(nfe*ncp) ; let slopeu := (u_des-u_init)/(nfe*ncp) ; for {i in fe} { for {j in cp} { let point := point+1 ; let c[i,j] := slopec*point+c_init ; let t[i,j] := slopet*point+t_init ; let u[i,j] := slopeu*point+u_init ; } let h[i] := 1/nfe ; } #----------------------------------------- # AsNMPC specific part: # Here, the suffixes are set for the advanced step computations: # # 1. Define the order of the initial variables let c_init_var.sens_state_0 := 1; let t_init_var.sens_state_0 := 2; # # 2. Identify the variables at first sampling time let c[5,1].sens_state_1 := 1; let t[5,1].sens_state_1 := 2; # # 3. Set the measurement of the variables at first sampling time let c[5,1].sens_state_value_1 := 0.135; let t[5,1].sens_state_value_1 := 0.745; # # 4. Identify the initial constraints, that will be relaxed # in favor of the new measurements let c_init_constr.sens_init_constr :=1; let t_init_constr.sens_init_constr :=1; #-- end of the hicks.dat file - Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/hicks_ampl/ipopt.opt0000644000076600007660000000023511551634067023001 0ustar coincoinn_sens_steps 1 sens_boundcheck yes #sens_bound_eps -1e-10 # Turn off the NLP scaling #nlp_scaling_method none print_options_documentation no #run_sens yes Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_ampl/0000755000076600007660000000000012214537465021457 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/redhess_ampl/red_hess.run0000644000076600007660000000150011546215775024001 0ustar coincoin# Copyright 2009, 2011 Hans Pirnay # All Rights Reserved. # This code is published under the Eclipse Public License. # # Date : 2010-10-04 # This AMPL script shows how to use the reduced hessian feature # of the asNMPC code. reset; option solver ipopt_sens; # set option to compute reduced hessian option ipopt_options 'compute_red_hessian yes'; # turn presolve off so no variables / equations are eliminated # by AMPL option presolve 0; # Introduce the reduced hessian suffix suffix red_hessian, IN; # define the variables var x1:=25e7; var x2:=0; var x3:=0; # set the variables 2 and 3 free variables. The ordering of the # variable suffixes will correspond to the ordering of the columns let x2.red_hessian := 1; let x3.red_hessian := 2; con1: x1+2*x2+3*x3=0; minimize obj: (x1-1)^2 +(x2-2)^2 + (x3-3)^2; solve; Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_ampl/0000755000076600007660000000000012214537465022151 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_ampl/parametric.mod0000644000076600007660000000070611546215775025010 0ustar coincoin# Copyright 2009, 2011 Hans Pirnay # All Rights Reserved. # This code is published under the Eclipse Public License. # # Date : 2010-10-04 # variables var x1>=0 := 0.15; var x2>=0 := 0.15; var x3>=0 := 0.0 ; # parameters var eta1; var eta2; # model const1: 6*x1+3*x2+2*x3-eta1=0; const2: eta2*x1+x2-x3-1=0; # initial constraints for parameters consteta1: eta1=nominal_eta1; consteta2: eta2=nominal_eta2; # objective minimize cost: x1^2+x2^2+x3^2; Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_ampl/parametric.run0000644000076600007660000000345711734070105025024 0ustar coincoin# Copyright 2009, 2011, 2012 Hans Pirnay # All Rights Reserved. # This code is published under the Eclipse Public License. # # Date : 2010-10-04 reset; # --------------------------------- # Set parameter values here # --------------------------------- # param nominal_eta1 := 5.0; param perturbed_eta1 := 4.5; param nominal_eta2 := 1; param perturbed_eta2 := 1; # # --------------------------------- # # declare AMPL suffixes for sIPOPT code suffix sens_state_0, IN; suffix sens_state_1, IN; suffix sens_state_value_1, IN; suffix sens_sol_state_1, OUT; suffix sens_init_constr, IN; option presolve 0; # turn presolve off so no variables / equations are eliminated # by AMPL option solver ipopt_sens; # set run_sens to yes #option ipopt_options 'run_sens yes n_sens_steps=1 sens_boundcheck no'; option ipopt_options 'run_sens yes sens_boundcheck no'; model parametric.mod; # sIPOPT data let eta1.sens_state_0 := 1; let eta1.sens_state_1 := 1; let eta1.sens_state_value_1 := perturbed_eta1; let eta2.sens_state_0 := 2; let eta2.sens_state_1 := 2; let eta2.sens_state_value_1 := perturbed_eta2; let consteta1.sens_init_constr := 1; let consteta2.sens_init_constr := 1; solve; print ""; print "Sensitivity without bound checking"; print ""; print "Nominal Solution:"; display x1, x2, x3, eta1, eta2; print "Estimation of Perturbed Solution with sIPOPT:"; display x1.sens_sol_state_1, x2.sens_sol_state_1, x3.sens_sol_state_1, eta1.sens_sol_state_1, eta2.sens_sol_state_1; option ipopt_options 'run_sens yes sens_boundcheck yes'; solve; print ""; print "Sensitivity with bound checking"; print ""; print "Nominal Solution:"; display x1, x2, x3, eta1, eta2; print "Estimation of Perturbed Solution with sIPOPT:"; display x1.sens_sol_state_1, x2.sens_sol_state_1, x3.sens_sol_state_1, eta1.sens_sol_state_1, eta2.sens_sol_state_1; Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_cpp/0000755000076600007660000000000012214537465022002 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_cpp/parametric_driver.cpp0000644000076600007660000000375411734046071026213 0ustar coincoin// Copyright 2010, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-01-05 #include "parametricTNLP.hpp" #include "IpIpoptApplication.hpp" #include "SensApplication.hpp" #include "IpPDSearchDirCalc.hpp" #include "IpIpoptAlg.hpp" #include "SensRegOp.hpp" int main(int argv, char**argc) { using namespace Ipopt; SmartPtr app_ipopt = new IpoptApplication(); SmartPtr app_sens = new SensApplication(app_ipopt->Jnlst(), app_ipopt->Options(), app_ipopt->RegOptions()); // Register sIPOPT options RegisterOptions_sIPOPT(app_ipopt->RegOptions()); app_ipopt->Options()->SetRegisteredOptions(app_ipopt->RegOptions()); // Call Initialize the first time to create a journalist, but ignore // any options file ApplicationReturnStatus retval; retval = app_ipopt->Initialize(""); if (retval != Solve_Succeeded) { //printf("ampl_ipopt.cpp: Error in first Initialize!!!!\n"); exit(-100); } app_ipopt->Initialize(); // create AmplSensTNLP from argc. This is an nlp because we are using our own TNLP Adapter SmartPtr sens_tnlp = new ParametricTNLP(); app_ipopt->Options()->SetStringValueIfUnset("run_sens", "yes"); app_ipopt->Options()->SetIntegerValueIfUnset("n_sens_steps", 1); app_sens->Initialize(); retval = app_ipopt->OptimizeTNLP(sens_tnlp); /* give pointers to Ipopt algorithm objects to Sens Application */ app_sens->SetIpoptAlgorithmObjects(app_ipopt, retval); printf("\n"); printf("#-------------------------------------------\n"); printf("# Sensitivity without bound checking\n"); printf("#-------------------------------------------\n"); app_sens->Run(); printf("\n"); printf("#-------------------------------------------\n"); printf("# Sensitivity with bound checking\n"); printf("#-------------------------------------------\n"); app_ipopt->Options()->SetStringValue("sens_boundcheck", "yes"); app_sens->Run(); } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.hpp0000644000076600007660000001075111504216567025342 0ustar coincoin// Copyright 2010 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-01-05 #ifndef __PARAMETRICTNLPEXAMPLE_HPP__ #define __PARAMETRICTNLPEXAMPLE_HPP__ #include "IpTNLP.hpp" namespace Ipopt { class ParametricTNLP : public TNLP { public: /** default constructor */ ParametricTNLP(); /** default destructor */ virtual ~ParametricTNLP(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values); //@} virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md); /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); /** This method is called just before finalize solution. It returns the parametric solution of the * dual variables and bound multipliers. */ virtual void finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ ParametricTNLP(const ParametricTNLP&); ParametricTNLP& operator=(const ParametricTNLP&); //@} /* Nominal and perturbed parameter values */ Number nominal_eta1_; Number nominal_eta2_; Number eta_1_perturbed_value_; Number eta_2_perturbed_value_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_cpp/Makefile.in0000644000076600007660000000553711576071414024056 0ustar coincoin# Copyright (C) 2010 Hans Pirnay # All Rights Reserved. # This file is distributed under the Eclipse Public License. ########################################################################## # You can modify this example makefile to fit for your own program. # # Usually, you only need to change the five CHANGEME entries below. # ########################################################################## # CHANGEME: This should be the name of your executable EXE = parametric_driver@EXEEXT@ # CHANGEME: Here is the name of all object files corresponding to the source # code that you wrote in order to define the problem statement OBJS = parametric_driver.@OBJEXT@ \ parametricTNLP.@OBJEXT@ # CHANGEME: Additional libraries ADDLIBS = # CHANGEME: Additional flags for compilation (e.g., include flags) ADDINCFLAGS = ########################################################################## # Usually, you don't have to change anything below. Note that if you # # change certain compiler options, you might have to recompile Ipopt. # ########################################################################## # C++ Compiler command CXX = @CXX@ # C++ Compiler options CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking CXXLINKFLAGS = @RPATH_FLAGS@ SRCDIR = @srcdir@ ipoptsrcdir = $(SRCDIR)/../../../../src senssrcdir = $(SRCDIR)/../../src # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) # we also need some Ipopt headers that are not installed, so we add $(ipoptsrcdir)/Algorithm and $(ipoptsrcdir)/LinAlg @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = -lsipopt `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libsipopt.lib libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lsipopt -lipopt @IPOPTLIB_LIBS_INSTALLED@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ all: $(EXE) .SUFFIXES: .cpp .c .o .obj $(EXE): $(OBJS) bla=;\ for file in $(OBJS); do bla="$$bla `$(CYGPATH_W) $$file`"; done; \ $(CXX) $(CXXLINKFLAGS) $(CXXFLAGS) -o $@ $$bla $(LIBS) $(ADDLIBS) clean: rm -rf $(EXE) $(OBJS) .cpp.o: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ $< .cpp.obj: $(CXX) $(CXXFLAGS) $(INCL) -c -o $@ `$(CYGPATH_W) '$<'` Ipopt-3.11.4/Ipopt/contrib/sIPOPT/examples/parametric_cpp/parametricTNLP.cpp0000644000076600007660000001731311734046071025332 0ustar coincoin// Copyright 2010, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2010-30-04 #include "parametricTNLP.hpp" #include "IpDenseVector.hpp" #include "IpIpoptData.hpp" #include using namespace Ipopt; /* Constructor */ ParametricTNLP::ParametricTNLP() : nominal_eta1_(5.0), nominal_eta2_(1.0), eta_1_perturbed_value_(4.5), eta_2_perturbed_value_(1.0) { } ParametricTNLP::~ParametricTNLP() { } bool ParametricTNLP::get_nlp_info(Index& n, Index& m, Index& nnz_jac_g, Index& nnz_h_lag, IndexStyleEnum& index_style) { // x1, x2, x3, eta1, eta2 n = 5; // 2 constraints + 2 parametric initial value constraints m = 4; nnz_jac_g = 10; nnz_h_lag = 5; index_style = FORTRAN_STYLE; return true; } bool ParametricTNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { for (Index k=0; k<3; ++k) { x_l[k] = 0.0; x_u[k] = 1.0e19; } x_l[3] = -1.0e19; x_u[3] = 1.0e19; x_l[4] = -1.0e19; x_u[4] = 1.0e19; g_l[0] = 0.0; g_u[0] = 0.0; g_l[1] = 0.0; g_u[1] = 0.0; // initial value constraints g_l[2] = nominal_eta1_; g_u[2] = nominal_eta1_; g_l[3] = nominal_eta2_; g_u[3] = nominal_eta2_; return true; } bool ParametricTNLP::get_starting_point(Index n, bool init_x, Number* x, bool init_z, Number* z_L, Number* z_U, Index m, bool init_lambda, Number* lambda) { x[0] = 0.15; x[1] = 0.15; x[2] = 0.0; x[3] = 0.0; x[4] = 0.0; return true; } bool ParametricTNLP::eval_f(Index n, const Number* x, bool new_x, Number& obj_value) { obj_value = 0; for (Index k=0; k<3; ++k) { obj_value += x[k]*x[k]; } return true; } bool ParametricTNLP::eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f) { grad_f[0] = 2*x[0]; grad_f[1] = 2*x[1]; grad_f[2] = 2*x[2]; grad_f[3] = 0.0; grad_f[4] = 0.0; return true; } bool ParametricTNLP::eval_g(Index n, const Number* x, bool new_x, Index m, Number* g) { Number x1, x2, x3, eta1, eta2; x1 = x[0]; x2 = x[1]; x3 = x[2]; eta1 = x[3]; eta2 = x[4]; g[0] = 6*x1+3*x2+2*x3-eta1; g[1] = eta2*x1+x2-x3-1; g[2] = eta1; g[3] = eta2; return true; } bool ParametricTNLP::eval_jac_g(Index n, const Number* x, bool new_x, Index m, Index nele_jac, Index* iRow, Index *jCol, Number* values) { if (values == NULL) { iRow[0] = 1; // dg1/dx1 jCol[0] = 1; iRow[1] = 1; // dg1/dx2 jCol[1] = 2; iRow[2] = 1; // dg1/dx3 jCol[2] = 3; iRow[3] = 1; // dg1/deta1 jCol[3] = 4; iRow[4] = 2; // dg2/dx1 jCol[4] = 1; iRow[5] = 2; // dg2/dx2 jCol[5] = 2; iRow[6] = 2; // dg2/dx3 jCol[6] = 3; iRow[7] = 2; // dg2/deta2 jCol[7] = 5; iRow[8] = 3; jCol[8] = 4; iRow[9] = 4; jCol[9] = 5; } else { values[0] = 6.0; values[1] = 3.0; values[2] = 2.0; values[3] = -1.0; values[4] = x[4]; values[5] = 1.0; values[6] = -1.0; values[7] = x[0]; values[8] = 1.0; values[9] = 1.0; } return true; } bool ParametricTNLP::eval_h(Index n, const Number* x, bool new_x, Number obj_factor, Index m, const Number* lambda, bool new_lambda, Index nele_hess, Index* iRow, Index* jCol, Number* values) { if (values == NULL) { iRow[0] = 1; jCol[0] = 1; iRow[1] = 2; jCol[1] = 2; iRow[2] = 3; jCol[2] = 3; iRow[3] = 1; jCol[3] = 5; iRow[4] = 5; jCol[4] = 1; } else { values[0] = 2.0*obj_factor; values[1] = 2.0*obj_factor; values[2] = 2.0*obj_factor; values[3] = 0.5*lambda[1]; values[4] = 0.5*lambda[1]; } return true; } bool ParametricTNLP::get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) { /* In this function, the indices for the parametric computations are set. * To keep track of the parameters, each parameter gets an index from 1 to n_parameters. * In this case, [1] eta_1, [2] eta_2. * The following metadata vectors are important: */ /* 1. sens_init_constr: in this list, the constraints that set the initial * values for the parameters are indicated. * For parameter 1 (eta_1) this is constraint 3 (e.g. C++ index 2), which is * the constraint eta_1 = eta_1_nominal; * For parameter 2 (eta_2) this is constraint 4 (e.g. C++ index 3). */ std::vector sens_init_constr(m,0); sens_init_constr[2] = 1; sens_init_constr[3] = 2; con_integer_md["sens_init_constr"] = sens_init_constr; /* 2. sens_state_1: in this index list, the parameters are indicated: * Here: [1] eta_1, [2] eta_2 */ std::vector sens_state_1(n,0); sens_state_1[3] = 1; sens_state_1[4] = 2; var_integer_md["sens_state_1"] = sens_state_1; /* 3. sens_state_values_1: In this list of Numbers (=doubles), the perturbed * values for the parameters are set. */ std::vector sens_state_value_1(n,0); sens_state_value_1[3] = eta_1_perturbed_value_; sens_state_value_1[4] = eta_2_perturbed_value_; var_numeric_md["sens_state_value_1"] = sens_state_value_1; return true; } void ParametricTNLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { // Check whether sIPOPT Algorithm aborted internally // bool sens_internal_abort; //options_->GetBoolValue("sens_internal_abort", sens_internal_abort, ""); // Get access to the metadata, where the solutions are stored. The metadata is part of the DenseVectorSpace. SmartPtr x_owner_space = dynamic_cast(GetRawPtr(ip_data->curr()->x()->OwnerSpace())); if (!IsValid(x_owner_space)) { printf("Error IsValid(x_owner_space) failed\n"); return; } std::string state; std::vector sens_sol_vec; state = "sens_sol_state_1"; sens_sol_vec = x_owner_space->GetNumericMetaData(state.c_str()); // Print the solution vector printf("\n" " Nominal Perturbed\n"); for (Index k=0; k<(Index) sens_sol_vec.size(); ++k) { printf("x[%3d] % .23f % .23f\n", k, x[k], sens_sol_vec[k]); } } void ParametricTNLP::finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md) { // bound multipliers for lower and upper bounds printf("\nDual bound multipliers:\n"); NumericMetaDataMapType::const_iterator z_L_solution = var_numeric_md.find("sens_sol_state_1_z_L"); NumericMetaDataMapType::const_iterator z_U_solution = var_numeric_md.find("sens_sol_state_1_z_U"); if (z_L_solution!=var_numeric_md.end() && z_U_solution!=var_numeric_md.end()) { for (Index k=0; ksecond[k], k, z_U_solution->second[k]); } } // constraint mutlipliers printf("\nConstraint multipliers:\n"); NumericMetaDataMapType::const_iterator lambda_solution = con_numeric_md.find("sens_sol_state_1"); if (lambda_solution!=con_numeric_md.end()) { for (Index k=0; ksecond[k]); } } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/0000755000076600007660000000000012214537465015762 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensBuilder.cpp0000644000076600007660000001341411551522736020706 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-10 #include "SensBuilder.hpp" #include "SensPCalculator.hpp" #include "SensIndexPCalculator.hpp" #include "SensSchurData.hpp" #include "SensIndexSchurData.hpp" #include "SensDenseGenSchurDriver.hpp" #include "SensMeasurement.hpp" #include "SensMetadataMeasurement.hpp" #include "SensStdStepCalc.hpp" #include #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif SensBuilder::SensBuilder() { DBG_START_METH("SensBuilder::SensBuilder", dbg_verbosity); } SensBuilder::~SensBuilder() { DBG_START_METH("SensBuilder::~SensBuilder", dbg_verbosity); } SmartPtr SensBuilder::BuildSensAlg(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, PDSystemSolver& pd_solver) { DBG_START_METH("SensBuilder::BuildSensAlg", dbg_verbosity); // Very first thing is setting trial = curr. SmartPtr trialcopyvector = ip_data.curr()->MakeNewIteratesVectorCopy(); ip_data.set_trial(trialcopyvector); // Check options which Backsolver to use here SmartPtr backsolver = new SimpleBacksolver(&pd_solver); // Create measurement unit SmartPtr measurement = new MetadataMeasurement(); (dynamic_cast(GetRawPtr(measurement)))->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); // Check ParameterData, send it to Pcalculator SmartPtr E_0; E_0 = new IndexSchurData(); std::vector initial_c = measurement->GetInitialEqConstraints(); // type: List E_0->SetData_List(initial_c); E_0->Print(jnlst,J_VECTOR,J_USER1,"E_0"); SmartPtr pcalc; bool bound_check; options.GetBoolValue("sens_boundcheck", bound_check, prefix); if (bound_check) { pcalc = new IndexPCalculator(backsolver, new IndexSchurData()); bool retval = pcalc->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); DBG_ASSERT(retval); } // Find out how many steps there are and create as many SchurSolveDrivers int n_sens_steps; options.GetIntegerValue("n_sens_steps",n_sens_steps,prefix); // Create std::vector container in which we are going to keep the SchurDrivers std::vector< SmartPtr > driver_vec(n_sens_steps); /** Here there should be the point to pass on the driver_vec and fork off the * Schurcomputations to a different function/process if needed. */ std::vector sens_state_list; Index schur_retval; std::string E_i_name; /** THIS FOR-LOOP should be done better with a better * Measurement class. This should get it's own branch! */ for (Index i=0; iInitialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); schur_retval = driver_vec[i]->SchurBuild(); DBG_ASSERT(schur_retval); schur_retval = driver_vec[i]->SchurFactorize(); DBG_ASSERT(schur_retval); } SmartPtr sens_stepper = new StdStepCalculator(E_0, backsolver); sens_stepper->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); SmartPtr controller = new SensAlgorithm(driver_vec, sens_stepper, measurement, n_sens_steps); controller->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); return controller; } SmartPtr SensBuilder::BuildRedHessCalc(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, PDSystemSolver& pd_solver) { DBG_START_METH("SensBuilder::BuildRedHessCalc", dbg_verbosity); // Check options which Backsolver to use here SmartPtr backsolver = new SimpleBacksolver(&pd_solver); // Create suffix handler SmartPtr suffix_handler = new MetadataMeasurement(); dynamic_cast(GetRawPtr(suffix_handler))->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); SmartPtr E_0; E_0 = new IndexSchurData(); std::vector hessian_suff = suffix_handler->GetIntegerSuffix("red_hessian"); Index setdata_error = E_0->SetData_Index(hessian_suff.size(), &hessian_suff[0], 1.0); if ( setdata_error ){ jnlst.Printf(J_ERROR, J_MAIN, "\nEXIT: An Error Occured while processing " "the Indices for the reduced hessian computation: Something " "is wrong with index %d\n",setdata_error); THROW_EXCEPTION(SENS_BUILDER_ERROR, "Reduced Hessian Index Error"); } SmartPtr pcalc; pcalc = new IndexPCalculator(backsolver, E_0); bool retval = pcalc->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); DBG_ASSERT(retval); retval = pcalc->ComputeP(); SmartPtr red_hess_calc = new ReducedHessianCalculator(E_0, pcalc); retval = red_hess_calc->Initialize(jnlst, ip_nlp, ip_data, ip_cq, options, prefix); return red_hess_calc; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensDenseGenSchurDriver.hpp0000644000076600007660000000332312132244172023163 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-11-19 #ifndef __ASIFTSCHURDRIVER_HPP__ #define __ASIFTSCHURDRIVER_HPP__ #include "SensSchurDriver.hpp" #include "SensBacksolver.hpp" #include "IpDenseGenMatrix.hpp" namespace Ipopt { class DenseGenSchurDriver: public SchurDriver { public: DenseGenSchurDriver(SmartPtr backsolver, SmartPtr pcalc, SmartPtr data_B); virtual ~DenseGenSchurDriver(); /** Creates the SchurMatrix from B and P */ virtual bool SchurBuild(); /** Calls the factorization routine for the SchurMatrix */ virtual bool SchurFactorize(); /** Performs a backsolve on S and : Solves the system * * \f$\left[\begin{array}{c|c} * K & E\\\hline * E^T & 0 * \end{array} * \right] * \left[\begin{array}{c}x\\y\end{array}\right] = * \left[\begin{array}{c}f\\g\end{array}\right]\f$ * * y will be stored in g at exit. * Kf should hold * * \f$K^{-1}f\f$ * * if it has been computed previously. If it is not available, just * pass in Kf=NULL and it will be computed internally. */ virtual bool SchurSolve(SmartPtr x, SmartPtr f, SmartPtr g, SmartPtr Kf=NULL); /** DEPRECATED Performs a backsolve on S and K virtual bool SchurSolve(SmartPtr lhs, SmartPtr rhs, SmartPtr delta_u); */ private: SmartPtr ift_data_; SmartPtr backsolver_; SmartPtr S_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensSchurDriver.hpp0000644000076600007660000000533312132261146021555 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __ASSCHURDRIVER_HPP__ #define __ASSCHURDRIVER_HPP__ #include "SensSchurData.hpp" #include "SensPCalculator.hpp" #include "IpVector.hpp" #include "IpIteratesVector.hpp" namespace Ipopt { class SchurDriver : public AlgorithmStrategyObject { /** This class is the interface for any class that deals with the Schur matrix * from the point when it is constructed by the PCalculator to the solution * against one vector. Specific implementations may also incorporate the * treatment of adding rows/cols (like QPSchur). * * The computations done by this class are * 1. Solve \f$S \Delta\nu = r_s\f$ * 2. Solve \f$K\Delta s = ... - \Delta nu\f$ (really?)*/ public: SchurDriver(SmartPtr pcalc, SmartPtr data_B) : pcalc_(pcalc), data_B_(data_B) { } virtual ~SchurDriver() { } /** Overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } /** Const accessor methods to the SchurData for for the derived classes */ virtual SmartPtr data_A() const { return pcalc_->data_A(); } virtual SmartPtr data_B() const { return ConstPtr(data_B_); } virtual SmartPtr data_A_nonconst() { return pcalc_->data_A_nonconst(); } virtual SmartPtr data_B_nonconst() { return data_B_; } virtual SmartPtr pcalc() const { return ConstPtr(pcalc_); } virtual SmartPtr pcalc_nonconst() { return pcalc_; } /** Sets the Data for which this SchurMatrix will be built. */ /** Creates the SchurMatrix from B and P */ virtual bool SchurBuild() =0; /** Calls the factorization routine for the SchurMatrix */ virtual bool SchurFactorize() =0; /** Performs a backsolve on S and K */ virtual bool SchurSolve(SmartPtr lhs, SmartPtr rhs, SmartPtr delta_u, SmartPtr sol=NULL)=0; // the vector K^(-1)*r_s which usually should have been computed before. /** Performs a backsolve on S and K; calls the latter with sol=K^(-1)*r_s=0 virtual bool SchurSolve(SmartPtr lhs, SmartPtr rhs, SmartPtr delta_u) =0; */ private: SchurDriver() { } SmartPtr pcalc_; SmartPtr data_B_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensRegOp.hpp0000644000076600007660000000054411551616635020343 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // #ifndef __SENSREGOP_HPP__ #define __SENSREGOP_HPP__ #include "IpSmartPtr.hpp" namespace Ipopt { class RegisteredOptions; void RegisterOptions_sIPOPT(const SmartPtr& roptions); } // namespace Ipopt #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensSimpleBacksolver.hpp0000644000076600007660000000155311551522736022573 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-04-06 // // Purpose : This is the same as IpSensitivityCalculator.hpp // It implements the SensBacksolver Interface. #ifndef __ASSIMPLEBACKSOLVER_HPP__ #define __ASSIMPLEBACKSOLVER_HPP__ #include "IpPDSystemSolver.hpp" #include "SensBacksolver.hpp" namespace Ipopt { class SimpleBacksolver : public SensBacksolver { public: SimpleBacksolver(SmartPtr pd_solver); ~SimpleBacksolver() {} bool InitializeImpl(const OptionsList& options, const std::string& prefix); bool Solve(SmartPtr delta_lhs, SmartPtr delta_rhs); private: SimpleBacksolver(); SmartPtr pd_solver_; bool allow_inexact_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensStepCalc.hpp0000644000076600007660000000325711551522736021027 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-14 #ifndef __ASSENSSTEPCALC_HPP__ #define __ASSENSSTEPCALC_HPP__ #include "IpAlgStrategy.hpp" #include "SensSchurDriver.hpp" namespace Ipopt { /** Forward declarations */ class DenseVector; class IteratesVector; class SensitivityStepCalculator : public AlgorithmStrategyObject { /* This is the interface for the classes that perform the actual step. */ public: SensitivityStepCalculator() : driver_(NULL), do_boundcheck_(false) { } virtual ~SensitivityStepCalculator() { } virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetBoolValue("sens_boundcheck", do_boundcheck_, prefix); return true; } bool Do_Boundcheck() const { return do_boundcheck_; } void SetSchurDriver(SmartPtr driver) { DBG_ASSERT(IsValid(driver)); driver_ = driver; if (IsValid(driver_->pcalc_nonconst())) { driver_->pcalc_nonconst()->reset_data_A(); // when the schurdriver is set, the data in the pcalculator has to be reset to its data? } } SmartPtr Driver() // this should be const or protected { DBG_ASSERT(IsValid(driver_)); return driver_; } /** This is the main algorithmic function of this class; It calculates * a step using its SchurDriver, checks bounds, and returns it */ virtual bool Step(DenseVector& delta_u, IteratesVector& sol) =0; private: SmartPtr driver_; bool do_boundcheck_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensBuilder.hpp0000644000076600007660000000234711551522736020716 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-10 #ifndef __ASSCHURBUILDER_HPP__ #define __ASSCHURBUILDER_HPP__ #include "IpReferenced.hpp" #include "SensAlgorithm.hpp" #include "IpPDSystemSolver.hpp" #include "SensUtils.hpp" #include "SensReducedHessianCalculator.hpp" namespace Ipopt { DECLARE_STD_EXCEPTION(SENS_BUILDER_ERROR); class SensBuilder : public ReferencedObject { /** This class sets up everything necessary and * builds the P matrix which is an intermediate step * in calculating the schur matrix. */ public: SensBuilder(); ~SensBuilder(); SmartPtr BuildSensAlg(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, PDSystemSolver& pd_solver); SmartPtr BuildRedHessCalc(const Journalist& jnlst, const OptionsList& options, const std::string& prefix, IpoptNLP& ip_nlp, IpoptData& ip_data, IpoptCalculatedQuantities& ip_cq, PDSystemSolver& pd_solver); private: }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensIndexPCalculator.hpp0000644000076600007660000000336711551522736022534 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __ASINDEXPCALCULATOR_HPP__ #define __ASINDEXPCALCULATOR_HPP__ #include "SensPCalculator.hpp" namespace Ipopt { /* Forward declarations */ class PColumn; class IndexPCalculator : public PCalculator { /** This class is the implementation of the PCalculator that corresponds * to IndexSchurData. It expects to be used with a kind of IndexSchurData. */ public: IndexPCalculator(SmartPtr backsolver, SmartPtr A_data); virtual ~IndexPCalculator(); /** Overloaded from PCalculator */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); virtual bool ComputeP(); virtual bool GetSchurMatrix(const SmartPtr& B, SmartPtr& S); virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; private: /** Rows of P = Rows of KKT */ Index nrows_; /** Cols of P */ Index ncols_; std::map< Index, SmartPtr > cols_; }; class PColumn : public ReferencedObject { /** This class provides an easy interface for PCalculators with data where columns are * not necessarily in adjacent parts of memory. */ public: PColumn(Index nrows, Number* values); virtual ~PColumn(); virtual void GetSchurMatrixRows(const std::vector* row_idx_B, Number* S) const; virtual const Number* Values() const; private: Index nrows_; Number* val_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensUtils.hpp0000644000076600007660000000134311551616635020425 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-14 #ifndef __SENSCUTILS_HPP__ #define __SENSCUTILS_HPP__ #include "IpUtils.hpp" #include #include "IpAlgTypes.hpp" #include "IpReturnCodes.hpp" namespace Ipopt { /** This header file provides some definitions used throughout the program. */ enum SensAlgorithmExitStatus{ SOLVE_SUCCESS, FATAL_ERROR }; Index AsIndexMax(Index length, const Index* x, Index Incr); Index AsIndexSum(Index length, const Index* x, Index Incr); void append_Index(std::string& str, Index idx); SolverReturn AppReturn2SolverReturn(ApplicationReturnStatus ipopt_retval); } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensAlgorithm.hpp0000644000076600007660000000261011551616635021251 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __SENSALGORITHM_HPP__ #define __SENSALGORITHM_HPP__ #include "IpAlgStrategy.hpp" #include "SensStepCalc.hpp" #include "SensMeasurement.hpp" #include "SensSchurDriver.hpp" #include "SensUtils.hpp" namespace Ipopt { class SensAlgorithm : public AlgorithmStrategyObject { /** This is the interface for the actual controller. It handles * Data input to the controller (measurement) and returns controls */ public: SensAlgorithm(std::vector< SmartPtr >& driver_vec, SmartPtr sens_step_calc, SmartPtr measurement, Index n_sens_steps); virtual ~SensAlgorithm(); virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** Main loop: Wait for new measurement, Get new step, maybe deal with * bounds, see to it that everything happens in the required * timeframe. */ SensAlgorithmExitStatus Run(); private: std::vector< SmartPtr > driver_vec_; SmartPtr sens_step_calc_; SmartPtr measurement_; Index n_sens_steps_; // I think it is useful to state this number explicitly in the constructor and here. }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensApplication.cpp0000644000076600007660000003363411734046071021565 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-11 #include "SensApplication.hpp" #include "SensBuilder.hpp" #include "SensUtils.hpp" #include "SensRegOp.hpp" // Ipopt includes #include "IpPDSearchDirCalc.hpp" #include "IpIpoptAlg.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif SensApplication::SensApplication(SmartPtr jnlst, SmartPtr options, SmartPtr reg_options) : jnlst_(jnlst), options_(options), reg_options_(reg_options), ipopt_retval_(Internal_Error) { DBG_START_METH("SensApplication::SensApplication", dbg_verbosity); // Initialize Journalist DBG_DO(SmartPtr sens_jrnl = jnlst_->AddFileJournal("Sensitivity","sensdebug.out",J_ITERSUMMARY); sens_jrnl->SetPrintLevel(J_USER1,J_ALL)); } SensApplication::~SensApplication() { DBG_START_METH("SensApplication::~SensApplication", dbg_verbosity); } void SensApplication::RegisterOptions(SmartPtr roptions) { // Options for parameter sensitivity roptions->SetRegisteringCategory("sIPOPT"); roptions->AddLowerBoundedIntegerOption( "n_sens_steps", "Number of steps computed by sIPOPT", 0, 1, ""); roptions->AddStringOption2( "sens_boundcheck", "Activate boundcheck and re-solve for sIPOPT", "no", "no", "don't check bounds and do another SchurSolve", "yes", "check bounds and resolve Schur decomposition", "If this option is activated, the algorithm will check the iterate after an initilal Schursolve and will resolve the decomposition if any bounds are not satisfied"); roptions->AddLowerBoundedNumberOption( "sens_bound_eps", "Bound accuracy within which a bound still is considered to be valid", 0, true, 1e-3, "The schur complement solution cannot make sure that variables stay inside bounds." "I cannot use the primal-frac-to-the-bound step because I don't know if the initial iterate is feasible." "To make things easier for me I have decided to make bounds not so strict."); roptions->AddStringOption2( "compute_red_hessian", "Determines if reduced hessian should be computed", "no", "yes", "compute reduced hessian", "no", "don't compute reduced hessian", ""); // This option must be in IpInterfacesRegOp.cpp roptions->AddStringOption2( "run_sens", "Determines if sIPOPT alg runs", "no", "yes", "run sIPOPT", "no", "don't run sIPOPT", ""); roptions->AddStringOption2( "sens_internal_abort", "Internal option - if set (internally), sens algorithm is not conducted", "no", "yes", "abort sIPOPT", "no", "run sIPOPT", ""); roptions->AddStringOption2( "redhess_internal_abort", "Internal option - if set (internally), reduced hessian computation is not conducted", "no", "yes", "abort redhess computation", "no", "run redhess computation", ""); roptions->AddStringOption2( "ignore_suffix_error", "If set, IPOPT runs even if there are errors in the suffixes", "no", "yes", "don't abort on suffix error", "no", "abort on suffix error", ""); roptions->AddLowerBoundedNumberOption( "sens_max_pdpert", "Maximum perturbation of primal dual system, for that the sIPOPT algorithm will not abort", 0.0, true, 1e-3, "For certain problems, IPOPT uses inertia correction of the primal dual matrix to achieve" "better convergence properties. This inertia correction changes the matrix and renders it" "useless for the use with sIPOPT. This option sets an upper bound, which the inertia correction" "may have. If any of the inertia correction values is above this bound, the sIPOPT algorithm" "is aborted."); roptions->AddStringOption2( "rh_eigendecomp", "If yes, the eigenvalue decomposition of the reduced hessian matrix is computed", "no", "yes", "compute eigenvalue decomposition of reduced hessian", "no", "don't compute eigenvalue decomposition of reduced hessian", "The eigenvalue decomposition of the reduced hessian has different meanings depending on the specific problem. For parameter estimation problems, the eigenvalues are linked to the confidence interval of the parameters. See for example Victor Zavala's Phd thesis, chapter 4 for details."); roptions->AddStringOption2( "sens_allow_inexact_backsolve", "Allow inexact computation of backsolve in sIPOPT.", "yes", "yes", "Allow inexact computation of backsolve in sIPOPT.", "no", "Don't allow inexact computation of backsolve in sIPOPT.", ""); roptions->AddStringOption2( "sens_kkt_residuals", "For sonsitivity solution, take KKT residuals into account", "yes", "yes", "Take residuals into account", "no", "Don't take residuals into account", "The residuals of the KKT conditions should be zero at the optimal solution. However, in practice, especially for large problems and depending on the termination criteria, they may deviate from this theoretical state. If this option is set to yes, the residuals will be taken into account when computing the right hand side for the sensitivity step."); } SensAlgorithmExitStatus SensApplication::Run() { DBG_START_METH("SensApplication::Run", dbg_verbosity); SensAlgorithmExitStatus retval = SOLVE_SUCCESS; bool sens_internal_abort, redhess_internal_abort; Options()->GetBoolValue("sens_internal_abort", sens_internal_abort, ""); Options()->GetBoolValue("redhess_internal_abort", redhess_internal_abort, ""); if (run_sens_ && sens_internal_abort) { jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInternal abort has been called for the sensitivity calculations.\n"); } if (compute_red_hessian_ && redhess_internal_abort) { jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInternal abort has been called for the sensitivity calculations.\n"); } SolverReturn status = AppReturn2SolverReturn(ipopt_retval_); // Check for perturbation of primal dual system Number max_pdpert; if (ipopt_retval_==0 || ipopt_retval_==1) { // otherwise, the values might not be available Options()->GetNumericValue("sens_max_pdpert", max_pdpert, ""); Number pdpert_x, pdpert_s, pdpert_c, pdpert_d; ip_data_->getPDPert(pdpert_x, pdpert_s, pdpert_c, pdpert_d); if (Max(pdpert_x, pdpert_s, pdpert_c, pdpert_d)>max_pdpert) { jnlst_->Printf(J_WARNING, J_MAIN, "\n\t--------------= Warning =--------------\nInertia correction of primal dual system is too large for meaningful sIPOPT results.\n" "\t... aborting computation.\n" "Set option sens_max_pdpert to a higher value (current: %f) to run sIPOPT algorithm anyway\n", max_pdpert); sens_internal_abort = true; redhess_internal_abort = true; } } if (compute_red_hessian_ && !redhess_internal_abort) { SmartPtr schur_builder = new SensBuilder(); const std::string prefix = ""; // I should be getting this somewhere else... SmartPtr red_hess_calc = schur_builder->BuildRedHessCalc(*jnlst_, *options_, prefix, *ip_nlp_, *ip_data_, *ip_cq_, *pd_solver_); red_hess_calc->ComputeReducedHessian(); } if (run_sens_ && n_sens_steps_>0 && !sens_internal_abort) { SmartPtr schur_builder = new SensBuilder(); const std::string prefix = ""; // I should be getting this somewhere else... SmartPtr controller = schur_builder->BuildSensAlg(*jnlst_, *options_, prefix, *ip_nlp_, *ip_data_, *ip_cq_, *pd_solver_); retval = controller->Run(); } else if (run_sens_) { if (n_sens_steps_<=0) { jnlst_->Printf(J_WARNING, J_MAIN, "\n" "The run_sens option was set to true, but the specified\n" "number of sensitivity steps was set to zero.\n" "Computation is aborted.\n\n"); } } if (IsValid(ip_data_->curr()) && IsValid(ip_data_->curr()->x())) { SmartPtr c; SmartPtr d; SmartPtr zL; SmartPtr zU; SmartPtr yc; SmartPtr yd; Number obj = 0.; switch (status) { case SUCCESS: /*c = ip_cq_->curr_c(); d = ip_cq_->curr_d(); obj = ip_cq_->curr_f(); zL = ip_data_->curr()->z_L(); zU = ip_data_->curr()->z_U(); yc = ip_data_->curr()->y_c(); yd = ip_data_->curr()->y_d();*/ case MAXITER_EXCEEDED: case STOP_AT_TINY_STEP: case STOP_AT_ACCEPTABLE_POINT: case LOCAL_INFEASIBILITY: case USER_REQUESTED_STOP: case FEASIBLE_POINT_FOUND: case DIVERGING_ITERATES: case RESTORATION_FAILURE: case ERROR_IN_STEP_COMPUTATION: c = ip_cq_->curr_c(); d = ip_cq_->curr_d(); obj = ip_cq_->curr_f(); zL = ip_data_->curr()->z_L(); zU = ip_data_->curr()->z_U(); yc = ip_data_->curr()->y_c(); yd = ip_data_->curr()->y_d(); break; default: SmartPtr tmp = ip_data_->curr()->y_c()->MakeNew(); tmp->Set(0.); c = ConstPtr(tmp); yc = ConstPtr(tmp); tmp = ip_data_->curr()->y_d()->MakeNew(); tmp->Set(0.); d = ConstPtr(tmp); yd = ConstPtr(tmp); tmp = ip_data_->curr()->z_L()->MakeNew(); tmp->Set(0.); zL = ConstPtr(tmp); tmp = ip_data_->curr()->z_U()->MakeNew(); tmp->Set(0.); zU = ConstPtr(tmp); } if (compute_red_hessian_ && redhess_internal_abort) { jnlst_->Printf(J_WARNING, J_MAIN, "\nReduced hessian was not computed " "because an error occured.\n" "See exception message above for details.\n\n"); } if (run_sens_ && sens_internal_abort) { jnlst_->Printf(J_WARNING, J_MAIN, "\nsIPOPT was not called " "because an error occured.\n" "See exception message above for details.\n\n"); } ip_nlp_->FinalizeSolution(status, *ip_data_->curr()->x(), *zL, *zU, *c, *d, *yc, *yd, obj, GetRawPtr(ip_data_), GetRawPtr(ip_cq_)); } return retval; } void SensApplication::Initialize() { DBG_START_METH("SensApplication::Initialize", dbg_verbosity); const std::string prefix = ""; // I should be getting this somewhere else... Options()->GetIntegerValue("n_sens_steps",n_sens_steps_, prefix.c_str()); Options()->GetBoolValue("run_sens", run_sens_, prefix.c_str()); Options()->GetBoolValue("compute_red_hessian", compute_red_hessian_, prefix.c_str()); // make sure run_sens and skip_finalize_solution_call are consistent if (run_sens_ || compute_red_hessian_) { Options()->SetStringValue("skip_finalize_solution_call", "yes"); } else { Options()->SetStringValue("skip_finalize_solution_call", "no"); } } void SensApplication::SetIpoptAlgorithmObjects(SmartPtr app_ipopt, ApplicationReturnStatus ipopt_retval) { DBG_START_METH("SensApplication::SetIpoptAlgorithmObjects", dbg_verbosity); // get optionsList and Journalist options_ = app_ipopt->Options(); jnlst_ = app_ipopt->Jnlst(); ipopt_retval_ = ipopt_retval; // Check whether Ipopt solved to optimality - if not, end computation. if ( ipopt_retval != Solve_Succeeded && ipopt_retval != Solved_To_Acceptable_Level) { jnlst_->Printf(J_ERROR, J_MAIN, "sIPOPT: Aborting sIPOPT computation, because IPOPT did not succeed\n\n"); options_->SetStringValue("sens_internal_abort", "yes"); options_->SetStringValue("redhess_internal_abort", "yes"); } // get pointers from IpoptApplication assessor methods SmartPtr alg = app_ipopt->AlgorithmObject(); SmartPtr pd_search; pd_search = dynamic_cast(GetRawPtr(alg->SearchDirCalc())); // get PD_Solver pd_solver_ = pd_search->PDSolver(); // get data ip_data_ = app_ipopt->IpoptDataObject(); // get calulated quantities ip_cq_ = app_ipopt->IpoptCQObject(); // get NLP ip_nlp_ = app_ipopt->IpoptNLPObject(); options_->GetIntegerValue("n_sens_steps",n_sens_steps_,""); // This checking should be rewritten /* if (false && run_sens_) { // check suffixes std::string state; std::string state_value; const Index* index; const Number* number; Index n_sens_indices, n_this_nmpc_indices; // collect information from suffixes state = "sens_state_1"; //index = ampl_tnlp_->get_index_suffix(state.c_str()); if (index==NULL) { THROW_EXCEPTION(NMPC_SUFFIX_ERROR, "Suffix sens_state_1 is not set"); } n_nmpc_indices = AsIndexSum(ip_data_->curr()->x()->Dim(), index, 1); for (Index i=1; i<=n_sens_steps_; ++i) { state = "sens_state_"; state_value = "sens_state_value_"; append_Index(state, i); append_Index(state_value, i); //index = ampl_tnlp_->get_index_suffix(state.c_str()); if (index==NULL) { std::string msg = "Suffix " + state + " is not set"; THROW_EXCEPTION(NMPC_SUFFIX_ERROR, msg); } n_this_nmpc_indices = AsIndexSum(ip_data_->curr()->x()->Dim(), index, 1); if (n_this_nmpc_indices!=n_nmpc_indices) { std::string msg = "Suffix" + state + "does not have the correct number of flags"; THROW_EXCEPTION(NMPC_SUFFIX_ERROR, msg); } //number = ampl_tnlp_->get_number_suffix(state_value.c_str()); if (number==NULL) { std::string msg = "Suffix " + state_value + " is not set"; THROW_EXCEPTION(NMPC_SUFFIX_ERROR, msg); } } } */ } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensIndexPCalculator.cpp0000644000076600007660000001512511551522736022522 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-27 #include "SensIndexPCalculator.hpp" #include "SensIndexSchurData.hpp" #include "IpDenseVector.hpp" #include "IpDenseGenMatrix.hpp" #include "IpBlas.hpp" #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif IndexPCalculator::IndexPCalculator(SmartPtr backsolver, SmartPtr A_data) : PCalculator(backsolver, A_data), nrows_(0), ncols_(A_data->GetNRowsAdded()) { DBG_START_METH("IndexPCalculator::IndexPCalculator", dbg_verbosity); } IndexPCalculator::~IndexPCalculator() { DBG_START_METH("IndexPCalculator::~IndexPCalculator", dbg_verbosity); } bool IndexPCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_START_METH("IndexPCalculator::InitializeImpl", dbg_verbosity); SmartPtr iv = IpData().curr(); nrows_ = 0; for (Index i=0; iNComps(); ++i) { nrows_+=iv->GetComp(i)->Dim(); } data_A()->Print(Jnlst(),J_VECTOR,J_USER1,"PCalc SchurData"); return true; } bool IndexPCalculator::ComputeP() { DBG_START_METH("IndexPCalculator::ComputeP", dbg_verbosity); bool retval = true; // 1. check whether all columns needed by data_A() are in map cols_ - we suppose data_A is IndexSchurData const std::vector* p2col_idx = dynamic_cast(GetRawPtr(data_A()))->GetColIndices(); Index col; Number* col_values = NULL; Index curr_dim, curr_schur_row=0; SmartPtr comp_vec; const Number* comp_values; std::map< Index, SmartPtr >::iterator find_it; SmartPtr col_vec = IpData().curr()->MakeNewIteratesVector(); SmartPtr sol_vec = col_vec->MakeNewIteratesVector(); for (std::vector::const_iterator col_it=p2col_idx->begin(); col_it!=p2col_idx->end(); ++col_it){ col = *col_it; find_it = cols_.find(col); if (find_it==cols_.end()) { // column is in data_A but not in P-matrix ->create data_A()->GetRow(curr_schur_row, *col_vec); retval = Solver()->Solve(sol_vec, ConstPtr(col_vec)); DBG_ASSERT(retval); /* This part is for displaying norm2(I_z*K^(-1)*I_1) */ DBG_PRINT((dbg_verbosity,"\ncurr_schur_row=%d, ",curr_schur_row)); DBG_PRINT((dbg_verbosity,"norm2(z)=%23.16e\n",sol_vec->x()->Nrm2())); /* end displaying norm2 */ DBG_ASSERT(col_values== NULL); col_values = new Number[nrows_]; curr_dim = 0; for (Index j=0; jNComps(); ++j) { comp_vec = dynamic_cast(GetRawPtr(sol_vec->GetComp(j))); comp_values = comp_vec->Values(); IpBlasDcopy(comp_vec->Dim(), comp_values, 1, col_values+curr_dim,1); curr_dim += comp_vec->Dim(); } cols_[col] = new PColumn(nrows_, col_values); col_values = NULL; } curr_schur_row++; } return retval; } bool IndexPCalculator::GetSchurMatrix(const SmartPtr& B, SmartPtr& S) { DBG_START_METH("IndexPCalculator::GetSchurMatrix", dbg_verbosity); bool retval = true; Number* S_values; if (!IsValid(S)) { if ( B==data_A() ) { SmartPtr S_sym_space = new DenseSymMatrixSpace(B->GetNRowsAdded()); SmartPtr dS = new DenseSymMatrix(GetRawPtr(S_sym_space)); S_values = dS->Values(); S = GetRawPtr(dS); } else { SmartPtr S_sym_space = new DenseGenMatrixSpace(B->GetNRowsAdded(), B->GetNRowsAdded()); SmartPtr dS = new DenseGenMatrix(GetRawPtr(S_sym_space)); S_values = dS->Values(); S = GetRawPtr(dS); } } else { // Try DenseGenMatrix - if NULL, try DenseSymMatrix SmartPtr dS_gen = dynamic_cast(GetRawPtr(S)); if (!IsValid(dS_gen)) { SmartPtr dS_sym = dynamic_cast(GetRawPtr(S)); S_values = dS_sym->Values(); } else { S_values = dS_gen->Values(); } } /* DenseGenMatrix* dS = static_cast(&S); DBG_ASSERT(dynamic_cast(&S)); */ // Check whether data_A was changed from the outside if (ncols_!=data_A()->GetNRowsAdded()) { ncols_ = data_A()->GetNRowsAdded(); ComputeP(); } /* DBG_ASSERT(dS->NRows()==dS->NCols()); DBG_ASSERT(dS->NRows()==data_A()->GetNRowsAdded()); */ std::vector indices; std::vector factors; // Compute S = B^T*P from indices, factors and P const std::vector* data_A_idx = dynamic_cast(GetRawPtr(data_A()))->GetColIndices(); const std::vector* data_B_idx = dynamic_cast(GetRawPtr(B))->GetColIndices(); Index col_count = 0; for (std::vector::const_iterator a_it=data_A_idx->begin(); a_it!=data_A_idx->end(); ++a_it) { cols_[*a_it]->GetSchurMatrixRows(data_B_idx, S_values+col_count*ncols_); col_count++; } return retval; } void IndexPCalculator::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { DBG_START_METH("IndexPCalculator::PrintImpl", dbg_verbosity); const Number* col_val; jnlst.PrintfIndented(level, category, indent, "%sIndexPCalculator \"%s\" with %d rows and %d columns:\n", prefix.c_str(), name.c_str(), nrows_, ncols_ ); Index col_counter = 0; for (std::map< Index, SmartPtr >::const_iterator j=cols_.begin(); j!=cols_.end(); ++j) { col_val = j->second->Values(); for (Index i=0; i* row_idx_B, Number* S_col) const { DBG_START_METH("PColumn::GetSchurMatrixRows", dbg_verbosity); for (Index i=0; isize(); ++i) { S_col[i] = -val_[(*row_idx_B)[i]]; } } const Number* PColumn::Values() const { DBG_START_METH("PColumn::Values", dbg_verbosity); return val_; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensSchurData.hpp0000644000076600007660000000755311551522736021212 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __ASSCHURDATA_HPP__ #define __ASSCHURDATA_HPP__ #include "IpVector.hpp" #include "IpIteratesVector.hpp" #include namespace Ipopt { class SchurData : public ReferencedObject { /** This interface serves as a reference point for multiple classes * that need to use SchurData (PCalculator, SchurDriver). It * declares as little as possible, so that SchurData implementations * can be very special and fast. * * I have not decided yet if there are certain ways I want to impose * that SchurData can be set. I will figure this out as soon as I * write the upstream classes that need to do that * * Nomenclature in this program is based on Victor Zavalas thesis. */ public: SchurData() : initialized_(false), nrows_(0) {} virtual ~SchurData() { } virtual SmartPtr MakeNewSchurDataCopy() const =0; /** Functions to set the Schurdata. At least one must be overloaded */ /** Set Data to one for given indices. Size of vector is ipopt_x_& list, Number v=1.0) =0; virtual void AddData_List(std::vector cols, std::vector& delta_u_sort, Index& new_du_size, Index v)=0; /** Returns number of rows/columns in schur matrix */ virtual Index GetNRowsAdded() const { return nrows_; } virtual bool Is_Initialized() const { return initialized_; } /** Returns the i-th column vector of the matrix */ virtual void GetRow(Index i, IteratesVector& v) const = 0; /** Returns two vectors that are needed for matrix-vector * multiplication of B and P. * The index is the row, the first vector are the indices * of non-zero components, in this row of B, * the second vector gives the numbers in B(row,indices) */ virtual void GetMultiplyingVectors(Index row, std::vector& indices, std::vector& factors) const =0; /** Computes B*v with B in R(mxn) */ virtual void Multiply(const IteratesVector& v, Vector& u) const =0; /** Computes A*u with A in R(nxm), KKT in R(n,n) */ virtual void TransMultiply(const Vector& u, IteratesVector& v) const =0; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const =0; void Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const { if (jnlst.ProduceOutput(level, category)) { PrintImpl(jnlst, level, category, name, indent, prefix); } } void Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (IsValid(jnlst) && jnlst->ProduceOutput(level, category)) { PrintImpl(*jnlst, level, category, name, indent, prefix); } } protected: virtual void Set_Initialized() { initialized_ = true; } virtual void Set_NRows(Index nrows) { nrows_ = nrows; } private: /** Makes sure that data is not set twice accidentially */ bool initialized_; /** Number of columns/rows of corresponding Schur Matrix*/ Index nrows_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensSuffixHandler.hpp0000644000076600007660000000126511551616635022072 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-08-01 #ifndef __SENS_ASSUFFIXHANDLER_HPP__ #define __SENS_ASSUFFIXHANDLER_HPP__ #include "IpReferenced.hpp" #include #include namespace Ipopt { /** This class is the interface for all classes that can return indices. * The implementation for Ampl is done in the MetadataMeasurement class*/ class SuffixHandler : public ReferencedObject { public: SuffixHandler() { } virtual ~SuffixHandler() { } virtual std::vector GetIntegerSuffix(std::string suffix_string) =0; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensSimpleBacksolver.cpp0000644000076600007660000000234211551522736022563 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-04-06 // // Purpose : This is the same as IpSensitivityCalculator.hpp #include "SensSimpleBacksolver.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif SimpleBacksolver::SimpleBacksolver(SmartPtr pd_solver) : pd_solver_(pd_solver), allow_inexact_(true) { DBG_START_METH("SimpleBacksolver::SimpleBacksolver", dbg_verbosity); } bool SimpleBacksolver::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_START_METH("SimpleBackSolver::InitializeImpl",dbg_verbosity); options.GetBoolValue("sens_allow_inexact_backsolve", allow_inexact_, prefix); return true; } bool SimpleBacksolver::Solve(SmartPtr delta_lhs, SmartPtr delta_rhs) { DBG_START_METH("SimpleBacksolver::Solve(IteratesVector,IteratesVector)", dbg_verbosity); bool retval; bool improve_solution = false; retval = pd_solver_->Solve(1.0, 0.0, *delta_rhs, *delta_lhs, allow_inexact_, improve_solution); return retval; } } // end namespace Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensApplication.hpp0000644000076600007660000000362211551616635021572 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __SENSAPPLICATION_HPP__ #define __SENSAPPLICATION_HPP__ #include "IpReferenced.hpp" #include "SensUtils.hpp" #include "SensUtils.hpp" #include "IpRegOptions.hpp" #include "IpIpoptApplication.hpp" #include "IpPDSystemSolver.hpp" namespace Ipopt { /** Standard exception for wrong/inconsistent suffixes for sipopt */ DECLARE_STD_EXCEPTION(SENS_SUFFIX_ERROR); class SensApplication : public ReferencedObject { public: // constructor SensApplication(SmartPtr jnlst, SmartPtr options, SmartPtr reg_options); ~SensApplication(); static void RegisterOptions(SmartPtr roptions); SensAlgorithmExitStatus Run(); void Initialize(); void SetIpoptAlgorithmObjects(SmartPtr app_ipopt, ApplicationReturnStatus ipopt_retval); SmartPtr Jnlst() { return jnlst_; } SmartPtr Options() { return options_; } /** Get the options list for setting options (const version) */ SmartPtr Options() const { return ConstPtr(options_); } private: // standard constructor just so it can't be used // SensApplication(); // Pointers that are immediately passed from Ipopt and initialized by the constructor SmartPtr jnlst_; SmartPtr options_; SmartPtr ip_data_; SmartPtr ip_cq_; SmartPtr pd_solver_; SmartPtr ip_nlp_; SmartPtr reg_options_; ApplicationReturnStatus ipopt_retval_; /** storing options values */ bool run_sens_; bool compute_red_hessian_; Index n_sens_steps_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensIndexSchurData.hpp0000644000076600007660000000534211551522736022174 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-08 #ifndef __ASINDEXSCHURDATA_HPP__ #define __ASINDEXSCHURDATA_HPP__ #include "SensSchurData.hpp" namespace Ipopt { class IndexSchurData : public SchurData { /** This class is the implementation aimed at applications where * only SchurData matrices with entries 1 or -1 appear. */ public: IndexSchurData(); IndexSchurData(const std::vector idx, const std::vector val); virtual ~IndexSchurData(); virtual SmartPtr MakeNewSchurDataCopy() const; virtual Index GetNRowsAdded() const; virtual void SetData_Flag(Index dim, const Index* flags, Number v=1.0); virtual void SetData_Flag(Index dim, const Index* flags, const Number* values); virtual Index SetData_Index(Index dim, const Index* index, Number v=1.0); virtual void SetData_List(const std::vector& list, Number v=1.0); virtual void GetRow(Index i, IteratesVector& v) const; virtual void GetMultiplyingVectors(Index i, std::vector& indices, std::vector& factors) const; virtual void Multiply(const IteratesVector& v, Vector& u) const; virtual void TransMultiply(const Vector& u, IteratesVector& v) const; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const; /** Functions specific to IndexSchurData */ /** This function is for adding data to a SchurData object. It takes a set of column-indices * a value v and adds indices accordingly. If the column is already set in the data, * it stays at the same place, otherwise the new indices are added at the bottom, * in the order specified by the indices. The vector delta_u_sort returns the actual * sorting so that the user knows how to place the new values inside the elongated * delta_u vector. These places are in C++ index style, so they correspond exactly * to the indices used for the C++-array of the delta_u DenseVector*/ void AddData_Flag(Index dim, Index* flags, std::vector& delta_u_sort, Index v); void AddData_List(std::vector cols, std::vector& delta_u_sort, Index& new_du_size, Index v); const std::vector* GetColIndices() const; private: /** returns a vector that holds the accumulated length of each vector component: * v_len[0] = v.GetComp(0)->Dim() * v_len[i] = sum(k=0..i, v.GetComp(k)->Dim()) */ Index* GetVectorLengths(const IteratesVector& v) const; std::vector idx_; std::vector val_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/Makefile.am0000644000076600007660000000565311573147064020026 0ustar coincoin# Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter, Hans Pirnay IBM 2009-12-19 AUTOMAKE_OPTIONS = foreign includesipoptdir = $(includedir)/coin lib_LTLIBRARIES = libsipopt.la libsipopt_la_SOURCES = \ SensBacksolver.hpp \ SensAlgorithm.cpp \ SensAlgorithm.hpp \ SensRegOp.cpp \ SensRegOp.hpp \ SensDenseGenSchurDriver.cpp \ SensDenseGenSchurDriver.hpp \ SensIndexPCalculator.cpp \ SensIndexPCalculator.hpp \ SensIndexSchurData.cpp \ SensIndexSchurData.hpp \ SensMeasurement.hpp \ SensMetadataMeasurement.cpp \ SensMetadataMeasurement.hpp \ SensApplication.cpp \ SensApplication.hpp \ SensUtils.cpp \ SensUtils.hpp \ SensPCalculator.hpp \ SensReducedHessianCalculator.cpp \ SensReducedHessianCalculator.hpp \ SensBuilder.cpp \ SensBuilder.hpp \ SensSchurData.hpp \ SensSchurDriver.hpp \ SensStepCalc.hpp \ SensSimpleBacksolver.cpp \ SensSimpleBacksolver.hpp \ SensStdStepCalc.cpp \ SensStdStepCalc.hpp \ SensSuffixHandler.hpp libsipopt_la_LDFLAGS = $(LT_LDFLAGS) addlibsdir = $(datadir)/coin/doc/Ipopt CXXFLAGS += -I`$(CYGPATH_W) $(srcdir)/../../../src/Common` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/LinAlg` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Algorithm/LinearSolvers` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Algorithm/Inexact` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/contrib/CGPenalty` CFLAGS += -I`$(CYGPATH_W) $(srcdir)/../Common` # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ SensBacksolver.hppbak \ SensAlgorithm.cppbak \ SensAlgorithm.hppbak \ SensRegOp.cppbak \ SensRegOp.hppbak \ SensDenseGenSchurDriver.cppbak \ SensDenseGenSchurDriver.hppbak \ SensIndexPCalculator.cppbak \ SensIndexPCalculator.hppbak \ SensIndexSchurData.cppbak \ SensIndexSchurData.hppbak \ SensMeasurement.hppbak \ SensMetadataMeasurement.cppbak \ SensMetadataMeasurement.hppbak \ SensApplication.cppbak \ SensApplication.hppbak \ SensUtils.cppbak \ SensUtils.hppbak \ SensPCalculator.hppbak \ SensReducedHessianCalculator.cppbak \ SensReducedHessianCalculator.hppbak \ SensBuilder.cppbak \ SensBuilder.hppbak \ SensSchurData.hppbak \ SensSchurDriver.hppbak \ SensStepCalc.hppbak \ SensSimpleBacksolver.cppbak \ SensSimpleBacksolver.hppbak \ SensStdStepCalc.cppbak \ SensStdStepCalc.hppbak \ SensSuffixHandler.hppbak ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensPCalculator.hpp0000644000076600007660000000573612132261146021535 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-06 #ifndef __ASPCALCULATOR_HPP__ #define __ASPCALCULATOR_HPP__ #include "IpAlgStrategy.hpp" #include "SensSimpleBacksolver.hpp" #include "SensSchurData.hpp" namespace Ipopt { class PCalculator : public AlgorithmStrategyObject { /** This class is the interface for implementations of any class that calculates the matrix \f$P =K^{-1}A\f$ * of the following matrix: * \f[ * \left(\begin{array}{cc} * K & A\\ * B & 0 * \end{array}\right) * \f] */ public: PCalculator(SmartPtr backsolver, SmartPtr A_data) : backsolver_(backsolver), data_A_init(ConstPtr(A_data->MakeNewSchurDataCopy())), data_A_(A_data) { } virtual ~PCalculator() { } /** Overloaded from AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } /** Function to start the computation of P from E_0 and KKT*/ virtual bool ComputeP()=0; /** Function to extract a SchurMatrix corresponding to $B K^{-1} A$. If B==NULL, use A=B*/ virtual bool GetSchurMatrix(const SmartPtr& B, SmartPtr& S) =0; virtual void PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const =0; void Print(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent=0, const std::string& prefix="") const { if (jnlst.ProduceOutput(level, category)) { PrintImpl(jnlst, level, category, name, indent, prefix); } } void Print(SmartPtr jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { if (IsValid(jnlst) && jnlst->ProduceOutput(level, category)) { PrintImpl(*jnlst, level, category, name, indent, prefix); } } /** Accessor methods for data and backsolver. This unconstness seems * kind of dangerous but I don't think there is a way around it. Anyway, * there is no difference between this and the IpData() method of AlgStrategy.*/ SmartPtr Solver() const { return backsolver_; } SmartPtr data_A() const { return ConstPtr(data_A_); } SmartPtr data_A_nonconst() const { return data_A_; } void reset_data_A() { data_A_ = data_A_init->MakeNewSchurDataCopy(); } private: SmartPtr backsolver_; SmartPtr data_A_init; SmartPtr data_A_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensReducedHessianCalculator.cpp0000644000076600007660000000751411551522736024224 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-08-01 #include "SensReducedHessianCalculator.hpp" #include "IpDenseGenMatrix.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif ReducedHessianCalculator::ReducedHessianCalculator(SmartPtr hess_data, SmartPtr pcalc) : hess_data_(hess_data), pcalc_(pcalc) { DBG_START_METH("ReducedHessianCalculator::ReducedHessianCalculator", dbg_verbosity); } ReducedHessianCalculator::~ReducedHessianCalculator() { DBG_START_METH("ReducedHessianCalculator::~ReducedHessianCalculator", dbg_verbosity); } bool ReducedHessianCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_START_METH("ReducedHessianCalculator::InitializeImpl", dbg_verbosity); options.GetBoolValue("rh_eigendecomp", compute_eigenvalues_, prefix); return true; } bool ReducedHessianCalculator::ComputeReducedHessian() { DBG_START_METH("ReducedHessianCalculator::ComputeReducedHessian", dbg_verbosity); Index dim_S = hess_data_->GetNRowsAdded(); //SmartPtr S_space = new DenseGenMatrixSpace(dim_S, dim_S); //SmartPtr S = new DenseGenMatrix(GetRawPtr(S_space)); SmartPtr S; bool retval = pcalc_->GetSchurMatrix(GetRawPtr(hess_data_), S); SmartPtr S_sym = dynamic_cast(GetRawPtr(S)); if (!IsValid(S_sym)) { std::exception exc; throw (exc); } bool have_x_scaling, have_c_scaling, have_d_scaling; have_x_scaling = IpNLP().NLP_scaling()->have_x_scaling(); have_c_scaling = IpNLP().NLP_scaling()->have_c_scaling(); have_d_scaling = IpNLP().NLP_scaling()->have_d_scaling(); if (have_x_scaling || have_c_scaling || have_d_scaling) { Jnlst().Printf(J_WARNING, J_MAIN, "\n" "-------------------------------------------------------------------------------\n" " *** WARNING ***\n" "-------------------------------------------------------------------------------\n" "You are using the reduced hessian feature with scaling of\n"); if (have_x_scaling) { Jnlst().Printf(J_WARNING, J_MAIN, "*** variables\n"); } if (have_c_scaling) { Jnlst().Printf(J_WARNING, J_MAIN, "*** equality constraints\n"); } if (have_d_scaling) { Jnlst().Printf(J_WARNING, J_MAIN, "*** inequality constraints\n"); } Jnlst().Printf(J_WARNING, J_MAIN, "enabled.\n" "A correct unscaled solution of the reduced hessian cannot be guaranteed in this\n" "case. Please consider rerunning with scaling turned off.\n" "-------------------------------------------------------------------------------\n\n"); } // Unscale by objective factor and multiply by (-1) Number obj_scal = IpNLP().NLP_scaling()->apply_obj_scaling(1.0); DBG_PRINT((dbg_verbosity, "Objective scaling = %f\n", obj_scal)); Number* s_val = S_sym->Values(); for (Index k=0; k<(S->NRows())*(S->NCols()); ++k) { s_val[k] *= -obj_scal; } S->Print(Jnlst(),J_INSUPPRESSIBLE,J_USER1,"RedHessian unscaled"); if ( compute_eigenvalues_ ) { SmartPtr eigenvectorspace = new DenseGenMatrixSpace(dim_S, dim_S); SmartPtr eigenvectors = new DenseGenMatrix(GetRawPtr(eigenvectorspace)); SmartPtr eigenvaluesspace = new DenseVectorSpace(dim_S); SmartPtr eigenvalues = new DenseVector(GetRawPtr(eigenvaluesspace)); eigenvectors->ComputeEigenVectors(*S_sym, *eigenvalues); eigenvalues->Print(Jnlst(),J_INSUPPRESSIBLE,J_USER1,"Eigenvalues of reduced hessian matrix"); } return retval; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensRegOp.cpp0000644000076600007660000000115511551522736020333 0ustar coincoin// Copyright (C) 2005, 2006 International Business Machines and others. // All Rights Reserved. // This code is published under the Eclipse Public License. // // $Id: SensRegOp.cpp 1984 2011-04-14 07:44:30Z hpirnay $ // // Authors: Carl Laird, Andreas Waechter IBM 2005-08-16 // modified for sIPOPT by Hans Pirnay, 2009-07-22 #include "IpRegOptions.hpp" #include "SensApplication.hpp" namespace Ipopt { void RegisterOptions_sIPOPT(const SmartPtr& roptions) { roptions->SetRegisteringCategory("Uncategorized"); SensApplication::RegisterOptions(roptions); } } // namespace Ipopt Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensStdStepCalc.cpp0000644000076600007660000002251411551522736021472 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-16 #include "SensStdStepCalc.hpp" #include "IpDenseVector.hpp" #include "IpIteratesVector.hpp" #include "IpBlas.hpp" #include "SensIndexSchurData.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif StdStepCalculator::StdStepCalculator(SmartPtr ift_data, SmartPtr backsolver) : ift_data_(ift_data), backsolver_(backsolver), bound_eps_(1e-3), kkt_residuals_(true) { DBG_START_METH("StdStepCalculator::StdStepCalculator", dbg_verbosity); } StdStepCalculator::~StdStepCalculator() { DBG_START_METH("StdStepCalculator::~StdStepCalculator", dbg_verbosity); } bool StdStepCalculator::InitializeImpl(const OptionsList& options, const std::string& prefix) { options.GetNumericValue("sens_bound_eps", bound_eps_, prefix); options.GetBoolValue("sens_kkt_residuals", kkt_residuals_, prefix); SensitivityStepCalculator::InitializeImpl(options, prefix); return true; } bool StdStepCalculator::Step(DenseVector& delta_u, IteratesVector& sol) { DBG_START_METH("StdStepCalculator::Step", dbg_verbosity); bool retval; SmartPtr delta_u_long = IpData().trial()->MakeNewIteratesVector(); ift_data_->TransMultiply(delta_u, *delta_u_long); SmartPtr r_s = IpData().trial()->MakeNewIteratesVector(); if (kkt_residuals_) { /* This should be almost zero... */ r_s->Set_x_NonConst(*IpCq().curr_grad_lag_x()->MakeNewCopy()); r_s->Set_s_NonConst(*IpCq().curr_grad_lag_s()->MakeNewCopy()); r_s->Set_y_c_NonConst(*IpCq().curr_c()->MakeNewCopy()); r_s->Set_y_d_NonConst(*IpCq().curr_d_minus_s()->MakeNewCopy()); r_s->Set_z_L_NonConst(*IpCq().curr_compl_x_L()->MakeNewCopy()); r_s->Set_z_U_NonConst(*IpCq().curr_compl_x_U()->MakeNewCopy()); r_s->Set_v_L_NonConst(*IpCq().curr_compl_s_L()->MakeNewCopy()); r_s->Set_v_U_NonConst(*IpCq().curr_compl_s_U()->MakeNewCopy()); r_s->Print(Jnlst(),J_VECTOR,J_USER1,"r_s init"); delta_u.Print(Jnlst(),J_VECTOR,J_USER1,"delta_u init"); DBG_PRINT((dbg_verbosity,"r_s init Nrm2=%23.16e\n", r_s->Asum())); delta_u_long->Axpy(-1.0, *r_s); } backsolver_->Solve(&sol, ConstPtr(delta_u_long)); SmartPtr Kr_s; if (Do_Boundcheck()) { Kr_s = sol.MakeNewIteratesVectorCopy(); } sol.Axpy(1.0, *IpData().trial()); if (Do_Boundcheck()) { DBG_PRINT((dbg_verbosity, "Entering boundcheck")); // initialize Index new_du_size =0; Number* new_du_values; std::vector x_bound_violations_idx; std::vector x_bound_violations_du; std::vector delta_u_sort; bool bounds_violated; SmartPtr delta_u_space = new DenseVectorSpace(0); SmartPtr old_delta_u = new DenseVector(GetRawPtr(delta_u_space)); SmartPtr new_delta_u; bounds_violated = BoundCheck(sol, x_bound_violations_idx, x_bound_violations_du); while (bounds_violated) { Driver()->data_A()->Print(Jnlst(),J_VECTOR,J_USER1,"data_A_init"); Driver()->data_B()->Print(Jnlst(),J_VECTOR,J_USER1,"data_B_init"); // write new schurdata A dynamic_cast(GetRawPtr(Driver()->data_A_nonconst()))->AddData_List(x_bound_violations_idx, delta_u_sort, new_du_size, 1); // write new schurdata B dynamic_cast(GetRawPtr(Driver()->data_B_nonconst()))->AddData_List(x_bound_violations_idx, delta_u_sort, new_du_size, 1); Driver()->data_A()->Print(Jnlst(),J_VECTOR,J_USER1,"data_A"); Driver()->data_B()->Print(Jnlst(),J_VECTOR,J_USER1,"data_B"); Driver()->SchurBuild(); Driver()->SchurFactorize(); old_delta_u->Print(Jnlst(),J_VECTOR,J_USER1,"old_delta_u"); delta_u_space = NULL; // delete old delta_u space delta_u_space = new DenseVectorSpace(new_du_size); // create new delta_u space new_delta_u = new DenseVector(GetRawPtr(ConstPtr(delta_u_space))); new_du_values = new_delta_u->Values(); IpBlasDcopy(old_delta_u->Dim(), old_delta_u->Values(), 1, new_du_values, 1); for (Index i=0; i new_sol = sol.MakeNewIteratesVector(); new_delta_u->Print(Jnlst(),J_VECTOR,J_USER1,"new_delta_u"); // solve with new data_B and delta_u retval = Driver()->SchurSolve(&sol, ConstPtr(delta_u_long), dynamic_cast(GetRawPtr(new_delta_u)), Kr_s); sol.Axpy(1.0, *IpData().trial()); x_bound_violations_idx.clear(); x_bound_violations_du.clear(); delta_u_sort.clear(); bounds_violated = BoundCheck(sol, x_bound_violations_idx, x_bound_violations_du); // copy new vector in old vector ->has to be done becpause otherwise only pointers will be copied and then it makes no sense old_delta_u = new_delta_u->MakeNewDenseVector(); old_delta_u->Copy(*new_delta_u); } } return retval; } bool StdStepCalculator::BoundCheck(IteratesVector& sol, std::vector& x_bound_violations_idx, std::vector& x_bound_violations_du) { DBG_START_METH("StdStepCalculator::BoundCheck", dbg_verbosity); DBG_ASSERT(x_bound_violations_idx.empty()); DBG_ASSERT(x_bound_violations_du.empty()); // find bound violations in x vector const Number* x_val = dynamic_cast(GetRawPtr(IpData().curr()->x()))->Values(); const Number* sol_val = dynamic_cast(GetRawPtr(sol.x()))->Values(); SmartPtr x_L_exp = IpData().curr()->x()->MakeNew(); SmartPtr x_U_exp = IpData().curr()->x()->MakeNew(); SmartPtr x_L_comp = IpNLP().x_L()->MakeNew(); SmartPtr x_U_comp = IpNLP().x_U()->MakeNew(); IpNLP().Px_L()->TransMultVector(1.0, *sol.x(), 0.0, *x_L_comp); IpNLP().Px_U()->TransMultVector(1.0, *sol.x(), 0.0, *x_U_comp); x_L_comp->Print(Jnlst(),J_VECTOR,J_USER1,"x_L_comp"); x_U_comp->Print(Jnlst(),J_VECTOR,J_USER1,"x_U_comp"); // return false; Number* x_L_val = dynamic_cast(GetRawPtr(x_L_comp))->Values(); Number* x_U_val = dynamic_cast(GetRawPtr(x_U_comp))->Values(); const Number* x_L_bound = dynamic_cast(GetRawPtr(IpNLP().x_L()))->Values(); const Number* x_U_bound = dynamic_cast(GetRawPtr(IpNLP().x_U()))->Values(); for (Index i=0; iDim(); ++i) { x_L_val[i] -= x_L_bound[i]; } for (Index i=0; iDim(); ++i) { x_U_val[i] -= x_U_bound[i]; } // project back IpNLP().Px_L()->MultVector(1.0, *x_L_comp, 0.0, *x_L_exp); IpNLP().Px_U()->MultVector(1.0, *x_U_comp, 0.0, *x_U_exp); const Number* x_L_exp_val = dynamic_cast(GetRawPtr(x_L_exp))->Values(); const Number* x_U_exp_val = dynamic_cast(GetRawPtr(x_U_exp))->Values(); for (Index i=0; iDim(); ++i) { if (x_L_exp_val[i]<-bound_eps_) { x_bound_violations_idx.push_back(i); x_bound_violations_du.push_back(-x_L_exp_val[i]+sol_val[i]-x_val[i]); // this is just an awkward way to compute x_bound[i] - x_curr_val[i]. } else if (-x_U_exp_val[i]<-bound_eps_) { x_bound_violations_idx.push_back(i); x_bound_violations_du.push_back(-x_U_exp_val[i]+sol_val[i]-x_val[i]); } } // z_L and z_U bound violations -> These are much easier since there is no projecting back and forth SmartPtr z_L = dynamic_cast(GetRawPtr(sol.z_L())); SmartPtr z_U = dynamic_cast(GetRawPtr(sol.z_U())); z_L->Print(Jnlst(),J_VECTOR,J_USER1,"z_L_boundcheck"); z_U->Print(Jnlst(),J_VECTOR,J_USER1,"z_U_boundcheck"); const Number* z_L_val = z_L->Values(); const Number* z_U_val = z_U->Values(); SmartPtr z_L_trial = dynamic_cast(GetRawPtr(IpData().trial()->z_L())); SmartPtr z_U_trial = dynamic_cast(GetRawPtr(IpData().trial()->z_U())); const Number* z_L_trial_val = z_L_trial->Values(); const Number* z_U_trial_val = z_U_trial->Values(); // find absolute index of z_L and z_U in IteratesVector Index z_L_ItVec_idx = 0; for (Index i=0; i<4; ++i) { z_L_ItVec_idx += (sol.GetComp(i))->Dim(); } Index z_U_ItVec_idx = z_L_ItVec_idx + sol.z_L()->Dim(); for (Index i=0; iDim(); ++i) { if (z_L_val[i]<-bound_eps_) { x_bound_violations_idx.push_back(i+z_L_ItVec_idx); x_bound_violations_du.push_back(-z_L_trial_val[i]); //printf("Lower Bound Mult. no. i=%d invalid: delta_u=%f\n", i+z_L_ItVec_idx, z_L_val[i]); } } for (Index i=0; iDim(); ++i) { if (z_U_val[i]<-bound_eps_) { x_bound_violations_idx.push_back(i+z_U_ItVec_idx); x_bound_violations_du.push_back(-z_U_trial_val[i]); //printf("Upper Bound Mult. no. i=%d invalid: delta_u=%f\n", i+z_U_ItVec_idx, z_U_val[i]); } } // if (x_bound_violations_idx.empty() || z_L_bound_violations_idx.empty() || z_U_bound_violations_idx.empty()) { if (x_bound_violations_idx.empty()) { return false; } else { return true; } } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/Makefile.in0000644000076600007660000006005312156624616020033 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004, 2008 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Authors: Carl Laird, Andreas Waechter, Hans Pirnay IBM 2009-12-19 srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib/sIPOPT/src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/Common/config.h \ $(top_builddir)/src/Common/config_ipopt.h \ $(top_builddir)/examples/ScalableProblems/config.h CONFIG_CLEAN_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libsipopt_la_LIBADD = am_libsipopt_la_OBJECTS = SensAlgorithm.lo SensRegOp.lo \ SensDenseGenSchurDriver.lo SensIndexPCalculator.lo \ SensIndexSchurData.lo SensMetadataMeasurement.lo \ SensApplication.lo SensUtils.lo \ SensReducedHessianCalculator.lo SensBuilder.lo \ SensSimpleBacksolver.lo SensStdStepCalc.lo libsipopt_la_OBJECTS = $(am_libsipopt_la_OBJECTS) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libsipopt_la_SOURCES) DIST_SOURCES = $(libsipopt_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AIX_FIX_COMPILER_BUG_FALSE = @AIX_FIX_COMPILER_BUG_FALSE@ AIX_FIX_COMPILER_BUG_TRUE = @AIX_FIX_COMPILER_BUG_TRUE@ ALWAYS_FALSE_FALSE = @ALWAYS_FALSE_FALSE@ ALWAYS_FALSE_TRUE = @ALWAYS_FALSE_TRUE@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ ASL_CFLAGS = @ASL_CFLAGS@ ASL_CFLAGS_INSTALLED = @ASL_CFLAGS_INSTALLED@ ASL_DATA = @ASL_DATA@ ASL_DATA_INSTALLED = @ASL_DATA_INSTALLED@ ASL_DEPENDENCIES = @ASL_DEPENDENCIES@ ASL_LIBS = @ASL_LIBS@ ASL_LIBS_INSTALLED = @ASL_LIBS_INSTALLED@ ASTYLE = @ASTYLE@ ASTYLEFLAGS = @ASTYLEFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BIT32FCOMMENT = @BIT32FCOMMENT@ BIT64FCOMMENT = @BIT64FCOMMENT@ BITS_PER_POINTER = @BITS_PER_POINTER@ BLAS_CFLAGS = @BLAS_CFLAGS@ BLAS_CFLAGS_INSTALLED = @BLAS_CFLAGS_INSTALLED@ BLAS_DATA = @BLAS_DATA@ BLAS_DATA_INSTALLED = @BLAS_DATA_INSTALLED@ BLAS_DEPENDENCIES = @BLAS_DEPENDENCIES@ BLAS_LIBS = @BLAS_LIBS@ BLAS_LIBS_INSTALLED = @BLAS_LIBS_INSTALLED@ BLUEGENEEXTRA = @BLUEGENEEXTRA@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ BUILD_INEXACT_FALSE = @BUILD_INEXACT_FALSE@ BUILD_INEXACT_TRUE = @BUILD_INEXACT_TRUE@ BUILD_LINEARSOLVERLOADER_FALSE = @BUILD_LINEARSOLVERLOADER_FALSE@ BUILD_LINEARSOLVERLOADER_TRUE = @BUILD_LINEARSOLVERLOADER_TRUE@ BUILD_PARDISOLOADER_FALSE = @BUILD_PARDISOLOADER_FALSE@ BUILD_PARDISOLOADER_TRUE = @BUILD_PARDISOLOADER_TRUE@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ -I`$(CYGPATH_W) $(srcdir)/../Common` COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_HAS_ASL_FALSE = @COIN_HAS_ASL_FALSE@ COIN_HAS_ASL_TRUE = @COIN_HAS_ASL_TRUE@ COIN_HAS_BLAS_FALSE = @COIN_HAS_BLAS_FALSE@ COIN_HAS_BLAS_TRUE = @COIN_HAS_BLAS_TRUE@ COIN_HAS_HSL_FALSE = @COIN_HAS_HSL_FALSE@ COIN_HAS_HSL_TRUE = @COIN_HAS_HSL_TRUE@ COIN_HAS_LAPACK_FALSE = @COIN_HAS_LAPACK_FALSE@ COIN_HAS_LAPACK_TRUE = @COIN_HAS_LAPACK_TRUE@ COIN_HAS_MUMPS_FALSE = @COIN_HAS_MUMPS_FALSE@ COIN_HAS_MUMPS_TRUE = @COIN_HAS_MUMPS_TRUE@ COIN_HAS_PKGCONFIG_FALSE = @COIN_HAS_PKGCONFIG_FALSE@ COIN_HAS_PKGCONFIG_TRUE = @COIN_HAS_PKGCONFIG_TRUE@ COIN_PKG_CONFIG_PATH = @COIN_PKG_CONFIG_PATH@ COIN_PKG_CONFIG_PATH_UNINSTALLED = @COIN_PKG_CONFIG_PATH_UNINSTALLED@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXAR = @CXXAR@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ -I`$(CYGPATH_W) $(srcdir)/../../../src/Common` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Interfaces` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/LinAlg` -I`$(CYGPATH_W) \ $(srcdir)/../../../src/Algorithm/LinearSolvers` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/LinAlg/TMatrices` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Algorithm` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/Algorithm/Inexact` \ -I`$(CYGPATH_W) $(srcdir)/../../../src/contrib/CGPenalty` CXXLIBS = @CXXLIBS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ FRAMEWORK_VECLIB = @FRAMEWORK_VECLIB@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ HAVE_MA28_FALSE = @HAVE_MA28_FALSE@ HAVE_MA28_TRUE = @HAVE_MA28_TRUE@ HAVE_PARDISO_FALSE = @HAVE_PARDISO_FALSE@ HAVE_PARDISO_TRUE = @HAVE_PARDISO_TRUE@ HAVE_WSMP_FALSE = @HAVE_WSMP_FALSE@ HAVE_WSMP_TRUE = @HAVE_WSMP_TRUE@ HSL_CFLAGS = @HSL_CFLAGS@ HSL_CFLAGS_INSTALLED = @HSL_CFLAGS_INSTALLED@ HSL_DATA = @HSL_DATA@ HSL_DATA_INSTALLED = @HSL_DATA_INSTALLED@ HSL_DEPENDENCIES = @HSL_DEPENDENCIES@ HSL_LIBS = @HSL_LIBS@ HSL_LIBS_INSTALLED = @HSL_LIBS_INSTALLED@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ IPALLLIBS = @IPALLLIBS@ IPOPTAMPLINTERFACELIB_CFLAGS = @IPOPTAMPLINTERFACELIB_CFLAGS@ IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED = @IPOPTAMPLINTERFACELIB_CFLAGS_INSTALLED@ IPOPTAMPLINTERFACELIB_DEPENDENCIES = @IPOPTAMPLINTERFACELIB_DEPENDENCIES@ IPOPTAMPLINTERFACELIB_LIBS = @IPOPTAMPLINTERFACELIB_LIBS@ IPOPTAMPLINTERFACELIB_LIBS_INSTALLED = @IPOPTAMPLINTERFACELIB_LIBS_INSTALLED@ IPOPTAMPLINTERFACELIB_PCLIBS = @IPOPTAMPLINTERFACELIB_PCLIBS@ IPOPTAMPLINTERFACELIB_PCREQUIRES = @IPOPTAMPLINTERFACELIB_PCREQUIRES@ IPOPTLIB_CFLAGS = @IPOPTLIB_CFLAGS@ IPOPTLIB_CFLAGS_INSTALLED = @IPOPTLIB_CFLAGS_INSTALLED@ IPOPTLIB_DEPENDENCIES = @IPOPTLIB_DEPENDENCIES@ IPOPTLIB_LIBS = @IPOPTLIB_LIBS@ IPOPTLIB_LIBS_INSTALLED = @IPOPTLIB_LIBS_INSTALLED@ IPOPTLIB_PCLIBS = @IPOPTLIB_PCLIBS@ IPOPTLIB_PCREQUIRES = @IPOPTLIB_PCREQUIRES@ IPOPT_SVN_REV = @IPOPT_SVN_REV@ JAVA_HOME = @JAVA_HOME@ JIPOPTDLL = @JIPOPTDLL@ LAPACK_CFLAGS = @LAPACK_CFLAGS@ LAPACK_CFLAGS_INSTALLED = @LAPACK_CFLAGS_INSTALLED@ LAPACK_DATA = @LAPACK_DATA@ LAPACK_DATA_INSTALLED = @LAPACK_DATA_INSTALLED@ LAPACK_DEPENDENCIES = @LAPACK_DEPENDENCIES@ LAPACK_LIBS = @LAPACK_LIBS@ LAPACK_LIBS_INSTALLED = @LAPACK_LIBS_INSTALLED@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MATLAB_HOME = @MATLAB_HOME@ MEXSUFFIX = @MEXSUFFIX@ MEX_STATIC_FALSE = @MEX_STATIC_FALSE@ MEX_STATIC_TRUE = @MEX_STATIC_TRUE@ MEX_WINDOWS_FALSE = @MEX_WINDOWS_FALSE@ MEX_WINDOWS_TRUE = @MEX_WINDOWS_TRUE@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ MUMPS_CFLAGS = @MUMPS_CFLAGS@ MUMPS_CFLAGS_INSTALLED = @MUMPS_CFLAGS_INSTALLED@ MUMPS_DATA = @MUMPS_DATA@ MUMPS_DATA_INSTALLED = @MUMPS_DATA_INSTALLED@ MUMPS_DEPENDENCIES = @MUMPS_DEPENDENCIES@ MUMPS_LIBS = @MUMPS_LIBS@ MUMPS_LIBS_INSTALLED = @MUMPS_LIBS_INSTALLED@ MWMA57PATH = @MWMA57PATH@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHARED_FLAGS = @SHARED_FLAGS@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_PKG_CONFIG = @ac_ct_PKG_CONFIG@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ have_svnversion = @have_svnversion@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign includesipoptdir = $(includedir)/coin lib_LTLIBRARIES = libsipopt.la libsipopt_la_SOURCES = \ SensBacksolver.hpp \ SensAlgorithm.cpp \ SensAlgorithm.hpp \ SensRegOp.cpp \ SensRegOp.hpp \ SensDenseGenSchurDriver.cpp \ SensDenseGenSchurDriver.hpp \ SensIndexPCalculator.cpp \ SensIndexPCalculator.hpp \ SensIndexSchurData.cpp \ SensIndexSchurData.hpp \ SensMeasurement.hpp \ SensMetadataMeasurement.cpp \ SensMetadataMeasurement.hpp \ SensApplication.cpp \ SensApplication.hpp \ SensUtils.cpp \ SensUtils.hpp \ SensPCalculator.hpp \ SensReducedHessianCalculator.cpp \ SensReducedHessianCalculator.hpp \ SensBuilder.cpp \ SensBuilder.hpp \ SensSchurData.hpp \ SensSchurDriver.hpp \ SensStepCalc.hpp \ SensSimpleBacksolver.cpp \ SensSimpleBacksolver.hpp \ SensStdStepCalc.cpp \ SensStdStepCalc.hpp \ SensSuffixHandler.hpp libsipopt_la_LDFLAGS = $(LT_LDFLAGS) addlibsdir = $(datadir)/coin/doc/Ipopt # This line is necessary to allow VPATH compilation DEFAULT_INCLUDES = -I. -I`$(CYGPATH_W) $(srcdir)` -I$(top_builddir)/src/Common # Astyle stuff ASTYLE_FILES = \ SensBacksolver.hppbak \ SensAlgorithm.cppbak \ SensAlgorithm.hppbak \ SensRegOp.cppbak \ SensRegOp.hppbak \ SensDenseGenSchurDriver.cppbak \ SensDenseGenSchurDriver.hppbak \ SensIndexPCalculator.cppbak \ SensIndexPCalculator.hppbak \ SensIndexSchurData.cppbak \ SensIndexSchurData.hppbak \ SensMeasurement.hppbak \ SensMetadataMeasurement.cppbak \ SensMetadataMeasurement.hppbak \ SensApplication.cppbak \ SensApplication.hppbak \ SensUtils.cppbak \ SensUtils.hppbak \ SensPCalculator.hppbak \ SensReducedHessianCalculator.cppbak \ SensReducedHessianCalculator.hppbak \ SensBuilder.cppbak \ SensBuilder.hppbak \ SensSchurData.hppbak \ SensSchurDriver.hppbak \ SensStepCalc.hppbak \ SensSimpleBacksolver.cppbak \ SensSimpleBacksolver.hppbak \ SensStdStepCalc.cppbak \ SensStdStepCalc.hppbak \ SensSuffixHandler.hppbak DISTCLEANFILES = $(ASTYLE_FILES) SUFFIXES = .cppbak .hppbak all: all-am .SUFFIXES: .SUFFIXES: .cppbak .hppbak .cpp .hpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/sIPOPT/src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/sIPOPT/src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsipopt.la: $(libsipopt_la_OBJECTS) $(libsipopt_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libsipopt_la_LDFLAGS) $(libsipopt_la_OBJECTS) $(libsipopt_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensAlgorithm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensApplication.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensDenseGenSchurDriver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensIndexPCalculator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensIndexSchurData.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensMetadataMeasurement.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensReducedHessianCalculator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensRegOp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensSimpleBacksolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensStdStepCalc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SensUtils.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES astyle: $(ASTYLE_FILES) .hpp.hppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ .cpp.cppbak: mv $< $@ $(ASTYLE) $(ASTYLEFLAGS) < $@ > $< touch $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensStdStepCalc.hpp0000644000076600007660000000213211551522736021471 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-16 #ifndef __ASSTDSTEPCALC_HPP__ #define __ASSTDSTEPCALC_HPP__ #include "SensBacksolver.hpp" #include "SensStepCalc.hpp" #include namespace Ipopt { class StdStepCalculator : public SensitivityStepCalculator { public: StdStepCalculator(SmartPtr ift_data, SmartPtr backsolver); virtual ~StdStepCalculator(); virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /** This is the main algorithmic function of this class; It calculates * a step using its SchurDriver, checks bounds, and returns it */ virtual bool Step(DenseVector& delta_u, IteratesVector& sol); bool BoundCheck(IteratesVector& sol, std::vector& x_bound_violations_idx, std::vector& x_bound_violations_du); private: SmartPtr ift_data_; SmartPtr backsolver_; Number bound_eps_; bool kkt_residuals_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensMetadataMeasurement.cpp0000644000076600007660000001553011734070022023234 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-07-10 #include "SensMetadataMeasurement.hpp" #include "SensUtils.hpp" #include namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif MetadataMeasurement::MetadataMeasurement() : n_idx_(0), x_owner_space_(NULL), s_owner_space_(NULL), y_c_owner_space_(NULL), y_d_owner_space_(NULL), z_L_owner_space_(NULL), z_U_owner_space_(NULL) { DBG_START_METH("MetadataMeasurement::MetadataMeasurement", dbg_verbosity); } MetadataMeasurement::~MetadataMeasurement() { DBG_START_METH("MetadataMeasurement::~MetadataMeasurement", dbg_verbosity); } bool MetadataMeasurement::InitializeImpl(const OptionsList& options, const std::string& prefix) { DBG_START_METH("MetadataMeasurement::InitializeImpl", dbg_verbosity); x_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->x()->OwnerSpace())); s_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->s()->OwnerSpace())); y_c_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->y_c()->OwnerSpace())); y_d_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->y_d()->OwnerSpace())); z_L_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->z_L()->OwnerSpace())); z_U_owner_space_ = dynamic_cast(GetRawPtr(IpData().curr()->z_U()->OwnerSpace())); DBG_ASSERT(IsValid(x_owner_space_) && IsValid(s_owner_space_) && IsValid(y_c_owner_space_) && IsValid(y_d_owner_space_) && IsValid(z_L_owner_space_) && IsValid(z_U_owner_space_)); bool run_sens; options.GetBoolValue("run_sens", run_sens, prefix); if (run_sens) { std::string sens_state_0 = "sens_state_1"; // sens_state_0 doesn't exist anymore... std::vector tmp_idx = x_owner_space_->GetIntegerMetaData(sens_state_0); n_idx_ = AsIndexMax((Index)tmp_idx.size(), &tmp_idx[0], 1); } return true; } std::vector MetadataMeasurement::GetInitialEqConstraints() { DBG_START_METH("MetadataMeasurement::GetInitialEqConstraints", dbg_verbosity); SmartPtr it = IpData().curr(); Index n_base = it->x()->Dim() + it->s()->Dim(); const std::vector constr_metadata = y_c_owner_space_->GetIntegerMetaData("sens_init_constr"); std::vector retval; for (Index i = 0; i MetadataMeasurement::GetMeasurement(Index measurement_number) { DBG_START_METH("MetadataMeasurement::GetMeasurement", dbg_verbosity); DBG_ASSERT(measurement_number>0 && measurement_number<7); std::string state; std::string statevalue; state = "sens_state_"; statevalue = "sens_state_value_"; append_Index(state,measurement_number); append_Index(statevalue,measurement_number); const std::vector idx_ipopt = x_owner_space_->GetIntegerMetaData(state.c_str()); const std::vector val_ipopt = x_owner_space_->GetNumericMetaData(statevalue.c_str()); SmartPtr delta_u_space; delta_u_space = new DenseVectorSpace(n_idx_); SmartPtr delta_u = new DenseVector(GetRawPtr(ConstPtr(delta_u_space))); Number* du_val = delta_u->Values(); const Number* u_0_val = dynamic_cast(GetRawPtr(IpData().trial()->x()))->Values(); // Fill up values of delta_u vector for (Index i=0; i0) { du_val[idx_ipopt[i]-1] = val_ipopt[i]-u_0_val[i]; //initial_val[idx_ipopt[i]-1]; //du_val[idx_ipopt[i]-1] = val_ipopt[i]; } } delta_u->SetValues(du_val); return delta_u; } void MetadataMeasurement::SetSolution(Index measurement_number, SmartPtr sol) { DBG_START_METH("MetadataMeasurement::SetSolution", dbg_verbosity); std::string sens_sol = "sens_sol_state_"; append_Index(sens_sol, measurement_number); const Number* sol_x_val = dynamic_cast(GetRawPtr(sol->x()))->Values(); std::vector x_sol = std::vector(sol_x_val, sol_x_val+sol->x()->Dim()); SmartPtr x_owner_space_nonconst = const_cast(GetRawPtr(x_owner_space_)); x_owner_space_nonconst->SetNumericMetaData(sens_sol, x_sol); SmartPtr s_dv = dynamic_cast(GetRawPtr(sol->s())); if (IsValid(s_dv)) { const Number* sol_s_val = s_dv->Values(); std::vector s_sol = std::vector(sol_s_val, sol_s_val+sol->s()->Dim()); SmartPtr s_owner_space_nonconst = const_cast(GetRawPtr(s_owner_space_)); s_owner_space_nonconst->SetNumericMetaData(sens_sol, s_sol); } const Number* sol_y_c_val = dynamic_cast(GetRawPtr(sol->y_c()))->Values(); std::vector y_c_sol = std::vector(sol_y_c_val, sol_y_c_val+sol->y_c()->Dim()); SmartPtr y_c_owner_space_nonconst = const_cast(GetRawPtr(y_c_owner_space_)); y_c_owner_space_nonconst->SetNumericMetaData(sens_sol, y_c_sol); const Number* sol_y_d_val = dynamic_cast(GetRawPtr(sol->y_d()))->Values(); std::vector y_d_sol = std::vector(sol_y_d_val, sol_y_d_val+sol->y_d()->Dim()); SmartPtr y_d_owner_space_nonconst = const_cast(GetRawPtr(y_d_owner_space_)); y_d_owner_space_nonconst->SetNumericMetaData(sens_sol, y_d_sol); const Number* sol_z_L_val = dynamic_cast(GetRawPtr(sol->z_L()))->Values(); std::vector z_L_sol = std::vector(sol_z_L_val, sol_z_L_val+sol->z_L()->Dim()); SmartPtr z_L_owner_space_nonconst = const_cast(GetRawPtr(z_L_owner_space_)); z_L_owner_space_nonconst->SetNumericMetaData(sens_sol, z_L_sol); const Number* sol_z_U_val = dynamic_cast(GetRawPtr(sol->z_U()))->Values(); std::vector z_U_sol = std::vector(sol_z_U_val, sol_z_U_val+sol->z_U()->Dim()); SmartPtr z_U_owner_space_nonconst = const_cast(GetRawPtr(z_U_owner_space_)); z_U_owner_space_nonconst->SetNumericMetaData(sens_sol, z_U_sol); } std::vector MetadataMeasurement::GetIntegerSuffix(std::string suffix_string) { DBG_START_METH("MetadataMeasurement::GetIntegerSuffix", dbg_verbosity); const std::vector idx_ipopt = x_owner_space_->GetIntegerMetaData(suffix_string.c_str()); std::vector retval = idx_ipopt; return retval; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensBacksolver.hpp0000644000076600007660000000122411551522736021414 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-14 #ifndef __ASASBACKSOLVER_HPP__ #define __ASASBACKSOLVER_HPP__ #include "IpAlgStrategy.hpp" #include "IpIteratesVector.hpp" namespace Ipopt { class SensBacksolver : public AlgorithmStrategyObject { /** This class is the interface to all backsolvers that may * be used for the sIPOPT. */ public: SensBacksolver() { } virtual ~SensBacksolver() { } virtual bool Solve(SmartPtr delta_lhs, SmartPtr delta_rhs)=0; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensMeasurement.hpp0000644000076600007660000000251711551532245021610 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-16 #ifndef __AS_MEASUREMENT_HPP__ #define __AS_MEASUREMENT_HPP__ #include "IpReferenced.hpp" #include "IpDenseVector.hpp" #include "IpIteratesVector.hpp" namespace Ipopt { class Measurement : public ReferencedObject { /** This class provides an abstraction for the measurements of the states coming in * and the solutions of the controller. It basicall acts as the "plant" of the controller. */ public: Measurement() { } virtual ~Measurement() { } /** This function returns a std::vector holding the indices in IteratesVector of the * equations that are to be "slacked" to free the initial values for sIPOPT. * This std::vector is used in the construction of the A-SchurData for the Schur Decomposition. */ virtual std::vector GetInitialEqConstraints() =0; /** This function returns delta_u. It should use the values of IpData().trial()->x()*/ virtual SmartPtr GetMeasurement(Index measurement_number) =0; /** This function does whatever the measurement machine does with the solution of the SensAlgorithm */ virtual void SetSolution(Index measurement_number, SmartPtr sol) =0; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensMetadataMeasurement.hpp0000644000076600007660000000313211551616635023251 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-07-10 #ifndef __AS_METADATAMEASUREMENT_HPP__ #define __AS_METADATAMEASUREMENT_HPP__ #include "SensMeasurement.hpp" #include "SensSuffixHandler.hpp" #include "IpAlgStrategy.hpp" namespace Ipopt { class MetadataMeasurement : public Measurement, public SuffixHandler, public AlgorithmStrategyObject { public: MetadataMeasurement(); virtual ~MetadataMeasurement(); /* AlgorithmStrategyObject */ virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /* measurement methods */ virtual std::vector GetInitialEqConstraints(); virtual SmartPtr GetMeasurement(Index measurement_number); virtual void SetSolution(Index measurement_number, SmartPtr sol); /** suffix handler methods */ virtual std::vector GetIntegerSuffix(std::string suffix_string); private: /** Number of sens_indices */ Index n_idx_; /** owner space of x */ SmartPtr x_owner_space_; /** owner space of s */ SmartPtr s_owner_space_; /** owner space of y_c */ SmartPtr y_c_owner_space_; /** owner space of y_d */ SmartPtr y_d_owner_space_; /** owner space of z_L */ SmartPtr z_L_owner_space_; /** owner space of z_U */ SmartPtr z_U_owner_space_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensAlgorithm.cpp0000644000076600007660000000723711551522736021254 0ustar coincoin// Copyright 2009 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-16 #include "SensAlgorithm.hpp" #include "SensUtils.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif SensAlgorithm::SensAlgorithm(std::vector< SmartPtr >& driver_vec, SmartPtr sens_step_calc, SmartPtr measurement, Index n_sens_steps) : driver_vec_(driver_vec), sens_step_calc_(sens_step_calc), measurement_(measurement), n_sens_steps_(n_sens_steps) // why doesn't he get this from the options? { DBG_START_METH("SensAlgorithm::SensAlgorithm", dbg_verbosity); DBG_ASSERT(n_sens_steps<=driver_vec.size()); } SensAlgorithm::~SensAlgorithm() { DBG_START_METH("SensAlgorithm::~SensAlgorithm", dbg_verbosity); } bool SensAlgorithm::InitializeImpl(const OptionsList& options, const std::string& prefix) { return true; } /** Main loop: Wait for new measurement, Get new step, maybe deal with * bounds, see to it that everything happens in the required * timeframe. */ SensAlgorithmExitStatus SensAlgorithm::Run() { DBG_START_METH("SensAlgorithm::Run", dbg_verbosity); SensAlgorithmExitStatus retval = SOLVE_SUCCESS; /* Loop through all steps */ SmartPtr sol = IpData().curr()->MakeNewIteratesVector(); SmartPtr delta_u; SmartPtr unscaled_x; SmartPtr trialcopy; for (Index step_i=0; step_iSetSchurDriver(driver_vec_[step_i]); delta_u = measurement_->GetMeasurement(step_i+1); delta_u->Print(Jnlst(),J_VECTOR,J_USER1,"delta_u"); sens_step_calc_->Step(*delta_u, *sol); SmartPtr saved_sol = sol->MakeNewIteratesVectorCopy(); saved_sol->Print(Jnlst(),J_VECTOR,J_USER1,"sol_vec"); // unscale solution... unscaled_x = IpNLP().NLP_scaling()->unapply_vector_scaling_x(saved_sol->x()); DBG_ASSERT(IsValid(unscaled_x)); saved_sol->Set_x(*unscaled_x); unscaled_x = NULL; measurement_->SetSolution(step_i+1, saved_sol); //trialcopy = sol->MakeNewIteratesVectorCopy(); //IpData().set_trial(trialcopy); /*// compute rhs (KKT evalutaion) SmartPtr rhs_err = IpData().curr()->MakeNewIteratesVectorCopy(); rhs_err->Set_x(*IpCq().trial_grad_lag_x()); rhs_err->Set_s(*IpCq().trial_grad_lag_s()); rhs_err->Set_y_c(*IpCq().trial_c()); rhs_err->Set_y_d(*IpCq().trial_d_minus_s()); rhs_err->Set_z_L(*IpCq().trial_compl_x_L()); rhs_err->Set_z_U(*IpCq().trial_compl_x_U()); rhs_err->Set_v_L(*IpCq().trial_compl_s_L()); rhs_err->Set_v_U(*IpCq().trial_compl_s_U()); SmartPtr KKT_slacks; KKT_slacks = rhs_err->MakeNewIteratesVectorCopy(); driver_vec_[step_i]->data_A()->TransMultiply(*delta_u, *KKT_slacks); KKT_slacks->Print(Jnlst(),J_VECTOR,J_USER1,"KKT_slacks"); KKT_slacks->Axpy(1.0,*rhs_err); KKT_slacks->Print(Jnlst(),J_VECTOR,J_USER1,"error"); printf("***********************************\n" "Running sIPOPT my-formula\n" "value of objective function: %23.16e\n" "Nrm2 of KKT residual: %23.16e\n" "Constraint violation: %23.16e\n" "***********************************\n",IpCq().unscaled_trial_f(), KKT_slacks->Nrm2(), KKT_slacks->y_c()->Nrm2()); */ //SmartPtr trialcopyvector = IpData().curr()->MakeNewIteratesVectorCopy(); //IpData().set_trial(trialcopyvector); //IpData().curr()->x()->Print(Jnlst(),J_VECTOR,J_USER1,"curr"); } return retval; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensReducedHessianCalculator.hpp0000644000076600007660000000237611551522736024232 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-08-01 #ifndef __ASREDUCEDHESSIANCALCULATOR_HPP__ #define __ASREDUCEDHESSIANCALCULATOR_HPP__ #include "IpAlgStrategy.hpp" #include "SensSchurData.hpp" #include "SensPCalculator.hpp" namespace Ipopt { class ReducedHessianCalculator : public AlgorithmStrategyObject { /** This is the interface for the actual controller. It handles * Data input to the controller (measurement) and returns controls */ public: ReducedHessianCalculator(SmartPtr hess_data, SmartPtr pcalc); virtual ~ReducedHessianCalculator(); virtual bool InitializeImpl(const OptionsList& options, const std::string& prefix); /* This function computes the unscaled reduced hessian matrix */ virtual bool ComputeReducedHessian(); private: /** Pointer to Schurdata object holding the indices for selecting the free variables */ SmartPtr hess_data_; /** Pointer to the P Calculator object that returns the reduced hessian matrix */ SmartPtr pcalc_; /** True, if option rh_eigendecomp was set to yes */ bool compute_eigenvalues_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensDenseGenSchurDriver.cpp0000644000076600007660000000704411551522736023173 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-11-19 #include "SensDenseGenSchurDriver.hpp" #include "SensIndexSchurData.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif DenseGenSchurDriver::DenseGenSchurDriver(SmartPtr backsolver, SmartPtr pcalc, SmartPtr data_B) : SchurDriver(pcalc,new IndexSchurData()), backsolver_(backsolver), S_(NULL) { DBG_START_METH("DenseGenSchurDriver::DenseGenSchurDriver", dbg_verbosity); } DenseGenSchurDriver::~DenseGenSchurDriver() { DBG_START_METH("DenseGenSchurDriver::~DenseGenSchurDriver", dbg_verbosity); } bool DenseGenSchurDriver::SchurBuild() { DBG_START_METH("DenseGenSchurDriver::SchurBuild", dbg_verbosity); /* This function is the very same as the one in DenseGenSchurDriver */ bool retval = true; Index dim_S = 0; if (IsValid(data_B())) { dim_S = data_B()->GetNRowsAdded(); } if (dim_S>0) { S_ = NULL; SmartPtr S_space = new DenseGenMatrixSpace(dim_S, dim_S); S_ = new DenseGenMatrix(GetRawPtr(S_space)); SmartPtr S2 = GetRawPtr(S_); //retval = pcalc_nonconst()->GetSchurMatrix(GetRawPtr(data_B()), dynamic_cast(GetRawPtr(S_))); retval = pcalc_nonconst()->GetSchurMatrix(data_B(), S2); S_->Print(Jnlst(),J_VECTOR,J_USER1,"S_"); } return retval; } bool DenseGenSchurDriver::SchurFactorize() { DBG_START_METH("DenseGenSchurDriver::SchurFactorize", dbg_verbosity); /* This function is the very same as the one in DenseGenSchurDriver */ bool retval; if (IsValid(S_)) { retval = S_->ComputeLUFactorInPlace(); return retval; } return true; } /* The functions SchurSolve do IFT step, if S_==NULL, and DenseGenSchurDriver otherwise. */ bool DenseGenSchurDriver::SchurSolve(SmartPtr lhs, // new left hand side will be stored here SmartPtr rhs, // rhs r_s SmartPtr delta_u, // should be (u_p - u_0) WATCH OUT FOR THE SIGN! I like it this way, so that u_0+delta_u = u_p, but victor always used it the other way round, so be careful. At the end, delta_nu is saved in here. SmartPtr sol) // the vector K^(-1)*r_s which usually should have been computed before. { DBG_START_METH("DenseGenSchurDriver::SchurSolve", dbg_verbosity); DBG_ASSERT(IsValid(S_)); bool retval; // set up rhs of equation (3.48a) SmartPtr delta_rhs = delta_u->MakeNew(); data_B()->Multiply(*sol, *delta_rhs); delta_rhs->Print(Jnlst(),J_VECTOR,J_USER1,"delta_rhs"); delta_rhs->Scal(-1.0); delta_rhs->Axpy(1.0, *delta_u); delta_rhs->Print(Jnlst(),J_VECTOR,J_USER1,"rhs 3.48a"); // solve equation (3.48a) for delta_nu SmartPtr delta_nu = dynamic_cast(GetRawPtr(delta_rhs))->MakeNewDenseVector(); delta_nu->Copy(*delta_rhs); S_->LUSolveVector(*delta_nu); // why is LUSolveVector not bool?? delta_nu->Print(Jnlst(),J_VECTOR,J_USER1,"delta_nu"); // solve equation (3.48b) for lhs (=delta_s) SmartPtr new_rhs = lhs->MakeNewIteratesVector(); data_A()->TransMultiply(*delta_nu, *new_rhs); new_rhs->Axpy(-1.0, *rhs); new_rhs->Scal(-1.0); new_rhs->Print(Jnlst(),J_VECTOR,J_USER1,"new_rhs"); retval = backsolver_->Solve(lhs, ConstPtr(new_rhs)); return retval; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensIndexSchurData.cpp0000644000076600007660000002275511551522736022176 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-27 #include "SensIndexSchurData.hpp" #include "IpIteratesVector.hpp" #include "IpDenseVector.hpp" #include "IpBlas.hpp" #include "SensUtils.hpp" namespace Ipopt { #if COIN_IPOPT_VERBOSITY > 0 static const Index dbg_verbosity = 1; #endif IndexSchurData::IndexSchurData() { DBG_START_METH("IndexSchurData::IndexSchurData", dbg_verbosity); } IndexSchurData::IndexSchurData(const std::vector idx, const std::vector val) { DBG_START_METH("IndexSchurData::IndexSchurData(vector,vector)", dbg_verbosity); idx_ = idx; val_ = val; Set_NRows((Index)idx_.size()); Set_Initialized(); } IndexSchurData::~IndexSchurData() { DBG_START_METH("IndexSchurData::~IndexSchurData", dbg_verbosity); } SmartPtr IndexSchurData::MakeNewSchurDataCopy() const { DBG_START_METH("IndexSchurData::MakeNewSchurDataCopy", dbg_verbosity); SmartPtr retval = new IndexSchurData(idx_, val_); return retval; } void IndexSchurData::SetData_Flag(Index dim, const Index* flags, Number v) { DBG_START_METH("IndexSchurData::SetData_Flag", dbg_verbosity); DBG_ASSERT(idx_.size()==0); DBG_ASSERT(!Is_Initialized()); DBG_ASSERT(v!=0); Index w; (v>0) ? w=1 : w=-1; for (Index i=0; i0) ? val_.push_back(1) : val_.push_back(-1); } } Set_Initialized(); Set_NRows((Index)val_.size()); } Index IndexSchurData::SetData_Index(Index dim, const Index* index, Number v) { DBG_START_METH("IndexSchurData::SetData_Index", dbg_verbosity); DBG_ASSERT(idx_.empty()); DBG_ASSERT(!Is_Initialized()); Index w; (v>0) ? w=1 : w=-1; DBG_PRINT((dbg_verbosity, "Schurdata::w=%d\n", w)); Index n_ind = AsIndexMax(dim, index, 1); std::vector sortvec(n_ind,-1); // fill up sortlist for (Index i=0; i0) { DBG_ASSERT(sortvec[index[i]-1]==-1); // THIS SHOULD THROW AN EXCEPTION! (OR SWITCH TO FLAG?) if ( sortvec[index[i]-1]!=-1 ) { return index[i]; } sortvec[index[i]-1] = i; } } idx_.resize(n_ind,0); val_.resize(n_ind,0); for (Index i=0; i-1); idx_[i] = sortvec[i]; val_[i] = w; } Set_Initialized(); Set_NRows((Index)val_.size()); return 0; } void IndexSchurData::SetData_List(const std::vector& list, Number v) { DBG_START_METH("IndexSchurData::SetData_List", dbg_verbosity); DBG_ASSERT(!Is_Initialized()); DBG_ASSERT(idx_.empty()); DBG_ASSERT(v!=0); Index w; (v>0) ? w=1 : w=-1; val_.resize(list.size(), w); idx_ = list; Set_Initialized(); } void IndexSchurData::GetRow(Index row, IteratesVector& v) const { DBG_START_METH("IndexSchurData::GetRow", dbg_verbosity); DBG_ASSERT(Is_Initialized()); DBG_ASSERT(row(GetRawPtr(v.GetCompNonConst(vec_idx)))->Values()[col+v.GetComp(vec_idx)->Dim()-v_lens[vec_idx]] = (Number)val_[row]; delete[] v_lens; } void IndexSchurData::GetMultiplyingVectors(Index row, std::vector& indices, std::vector& factors) const { DBG_START_METH("IndexSchurData::GetMultiplyingVectors", dbg_verbosity); DBG_ASSERT(indices.size()==0); DBG_ASSERT(factors.size()==0); indices.push_back(idx_[row]); factors.push_back(val_[row]); } void IndexSchurData::Multiply(const IteratesVector& v, Vector& u) const { DBG_START_METH("IndexSchurData::Multiply", dbg_verbosity); // this is awful. DenseVector* du = static_cast(&u); du->Set(0.0); Number* u_val = du->Values(); Index* v_lens = GetVectorLengths(v); Index v_row, vec_idx; for (unsigned int i=0; i d_ptr = dynamic_cast(GetRawPtr(v.GetComp(vec_idx))); if (!d_ptr->IsHomogeneous()) { u_val[i] += val_[i]*d_ptr->Values()[v_row+v.GetComp(vec_idx)->Dim()-v_lens[vec_idx]]; } else { u_val[i] += val_[i]*d_ptr->Scalar(); } } delete [] v_lens; } void IndexSchurData::TransMultiply(const Vector& u, IteratesVector& v) const { DBG_START_METH("IndexSchurData::TransMultiply", dbg_verbosity); DBG_ASSERT(u.Dim()==GetNRowsAdded()); const DenseVector* du = static_cast(&u); // Get total number of elements of v Index ncols = 0; for (Index i=0; iDim(); } // Create space in which v_vals will be saved Number* v_vals = new Number[ncols]; const Number* u_vals = du->Values(); // set v to zero for (Index i=0; iDim(); curr_val = dynamic_cast(GetRawPtr(v.GetCompNonConst(i)))->Values(); IpBlasDcopy(curr_dim, v_vals+v_idx, 1, curr_val, 1); v_idx +=curr_dim; } delete [] v_vals; } Index* IndexSchurData::GetVectorLengths(const IteratesVector& v) const { DBG_START_METH("IndexSchurData::GetVectorLengths", dbg_verbosity); // retrieve structure of IteratesVector - this should probably be cached or sth. Index n_comps = v.NComps(); Index* v_lens = new Index[n_comps]; // v_lens[i] holds the maximum number up to which component i belongs in there. v_lens[0] = v.GetComp(0)->Dim(); for (Index i=1; iDim(); } return v_lens; } void IndexSchurData::PrintImpl(const Journalist& jnlst, EJournalLevel level, EJournalCategory category, const std::string& name, Index indent, const std::string& prefix) const { DBG_START_METH("IndexSchurData::PrintImpl", dbg_verbosity); jnlst.PrintfIndented(level, category, indent, "%sIndexSchurData \"%s\" with %d rows:\n", prefix.c_str(), name.c_str(), GetNRowsAdded()); if (Is_Initialized()) { for (unsigned int i=0; i& delta_u_sort, Index v) { DBG_START_METH("IndexSchurData::AddData_Flag", dbg_verbosity); Index sortcounter = (Index)idx_.size(); bool oldindex; for (Index i=0; i cols, std::vector& delta_u_sort, Index& new_du_size, Index v) { DBG_START_METH("IndexSchurData::AddData_List", dbg_verbosity); new_du_size = (Index)idx_.size(); bool oldindex; for (unsigned int i=0; i* IndexSchurData::GetColIndices() const { DBG_START_METH("IndexSchurData::GetColIndices", dbg_verbosity); return &idx_; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/src/SensUtils.cpp0000644000076600007660000000500111551522736020411 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-19 #include "SensUtils.hpp" #include namespace Ipopt { Index AsIndexMax(Index length, const Index* x, Index Incr) { if (length==0) { return 0; } Index maxval = x[0]; for (Index i=1; imaxval) { maxval=x[i]; } } return maxval; } Index AsIndexSum(Index length, const Index* x, Index Incr) { Index retval = 0; for (Index i=0; i 0 static const Index dbg_verbosity = 1; #endif SensAmplTNLP::SensAmplTNLP(const SmartPtr& jnlst, const SmartPtr options, char**& argv, SmartPtr suffix_handler /* = NULL */, bool allow_discrete /* = false */, SmartPtr ampl_options_list /* = NULL */, const char* ampl_option_string /* = NULL */, const char* ampl_invokation_string /* = NULL */, const char* ampl_banner_string /* = NULL */, std::string* nl_file_content /* = NULL */) : AmplTNLP(jnlst, // gotta call constructor of base class properly options, argv, suffix_handler /* = NULL */, allow_discrete /* = false */, ampl_options_list /* = NULL */, ampl_option_string /* = NULL */, ampl_invokation_string /* = NULL */, ampl_banner_string /* = NULL */, nl_file_content /* = NULL */), jnlst_(jnlst), options_(options), have_parameters_(false), parameter_flags_(NULL), parameter_values_(NULL) { DBG_START_METH("SensAmplTNLP::SensAmplTNLP", dbg_verbosity); SmartPtr suff_handler = get_suffix_handler(); ASL_pfgh* asl = AmplSolverObject(); const Index* parameter_flags = suff_handler->GetIntegerSuffixValues("parameter", AmplSuffixHandler::Variable_Source); if (parameter_flags_!=NULL) { have_parameters_ = true; for (Index i=0; iGetNumberSuffixValues("nominal_value", AmplSuffixHandler::Variable_Source); if (nominal_values==NULL) { for (Index i=0; iGetIntegerValue("n_sens_steps",n_sens_steps_,prefix); sens_sol_.resize(n_sens_steps_, NULL); if ( n_sens_steps_==0 ) { options->SetStringValue("run_sens","no"); run_sens_ = false; } options->GetBoolValue("run_sens", run_sens_, ""); options->GetBoolValue("compute_red_hessian", compute_red_hessian_, ""); } SensAmplTNLP::~SensAmplTNLP() { DBG_START_METH("SensAmplTNLP::~SensAmplTNLP", dbg_verbosity); delete[] parameter_values_; } bool SensAmplTNLP::get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u) { DBG_START_METH("SensAmplTNLP::get_bounds_info", dbg_verbosity); ASL_pfgh* asl = AmplSolverObject(); DBG_ASSERT(n == n_var); DBG_ASSERT(m == n_con); for (Index i=0; i sens_sol) { DBG_START_METH("SensAmplTNLP::set_sens_solution", dbg_verbosity); DBG_PRINT((dbg_verbosity, "n_sens_steps=%d\n", sens_sol_.size())); DBG_ASSERT(idx>0); DBG_ASSERT(idx<=(Index)sens_sol_.size()); sens_sol_[idx-1] = sens_sol; } void SensAmplTNLP::finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md) { DBG_START_METH("SensAmplTNLP::finalize_metadata", dbg_verbosity); ASL_pfgh* asl = AmplSolverObject(); if (run_sens_) { for (Index step=1; step<=n_sens_steps_; ++step) { std::string sol_state_id = "sens_sol_state_"; append_Index(sol_state_id, step); NumericMetaDataMapType::const_iterator num_it; num_it = var_numeric_md.find(sol_state_id); if (num_it!=var_numeric_md.end()) { suf_rput(sol_state_id.c_str(), ASL_Sufkind_var, const_cast(&num_it->second[0])); } std::string sol_state_z_L_id = sol_state_id + "_z_L"; num_it = var_numeric_md.find(sol_state_z_L_id); if (num_it!=var_numeric_md.end()) { suf_rput(sol_state_z_L_id.c_str(), ASL_Sufkind_var, const_cast(&num_it->second[0])); } std::string sol_state_z_U_id = sol_state_id + "_z_U"; num_it = var_numeric_md.find(sol_state_z_U_id); if (num_it!=var_numeric_md.end()) { suf_rput(sol_state_z_U_id.c_str(), ASL_Sufkind_var, const_cast(&num_it->second[0])); } num_it = con_numeric_md.find(sol_state_id); if (num_it!=con_numeric_md.end()) { suf_rput(sol_state_id.c_str(), ASL_Sufkind_con, const_cast(&num_it->second[0])); } } } } void SensAmplTNLP::finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq) { DBG_START_METH("SensAmplTNLP::finalize_solution", dbg_verbosity); AmplTNLP::finalize_solution(status, n, x, z_L, z_U, m, g, lambda, obj_value, ip_data, ip_cq); } bool SensAmplTNLP::get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md) { DBG_START_METH("SensAmplTNLP::get_var_con_metadata", dbg_verbosity); try { if (run_sens_) { // Get Sens Suffixes std::string sens_state = "sens_state_"; std::vector state; for (Index i=1; i<=n_sens_steps_; ++i) { append_Index(sens_state,i); state = get_index_suffix_vec(sens_state.c_str()); set_integer_metadata_for_var(sens_state, state); sens_state = "sens_state_"; } std::string sens_state_value = "sens_state_value_"; std::vector state_val; for (Index i=1; i<=n_sens_steps_; ++i) { append_Index(sens_state_value,i); state_val = get_number_suffix_vec(sens_state_value.c_str()); set_numeric_metadata_for_var(sens_state_value, state_val); sens_state_value = "sens_state_value_"; } std::string init_constr = "sens_init_constr"; if (n_sens_steps_ >0) { std::vector init_idx = get_index_suffix_constr_vec(init_constr.c_str()); set_integer_metadata_for_con(init_constr,init_idx); } } } catch ( SUFFIX_EMPTY& exc ) { //exc.ReportException(*jnlst_); // const std::string exc_mess = exc.Message(); const std::string exc_mess = exc.Message(); jnlst_->Printf(J_WARNING, J_INITIALIZATION, " WARNING: Will not run sIPOPT " "because of incorrect AMPL suffix!\n" " Message: %s\n\n", exc_mess.c_str() ); options_->SetStringValue("sens_internal_abort", "yes"); bool ignore_suffix_error; options_->GetBoolValue("ignore_suffix_error", ignore_suffix_error, ""); if ( !ignore_suffix_error ) { THROW_EXCEPTION(SUFFIX_EMPTY, "Encountered Suffix Error"); } } try { if (compute_red_hessian_) { std::string red_hess_str = "red_hessian"; std::vector red_hess_idx = get_index_suffix_vec(red_hess_str.c_str()); set_integer_metadata_for_var(red_hess_str.c_str(), red_hess_idx); } } catch ( SUFFIX_EMPTY& exc ) { const std::string exc_mess = exc.Message(); jnlst_->Printf(J_WARNING, J_INITIALIZATION, " WARNING: Will not run reduced hessian computation " "because of incorrect AMPL suffix!\n" " Message: %s\n\n", exc_mess.c_str() ); options_->SetStringValue("sens_internal_abort", "yes"); bool ignore_suffix_error; options_->GetBoolValue("ignore_suffix_error", ignore_suffix_error, ""); if ( !ignore_suffix_error ) { THROW_EXCEPTION(SUFFIX_EMPTY, "Encountered Suffix Error"); } } bool retval = AmplTNLP::get_var_con_metadata(n, var_string_md, var_integer_md, var_numeric_md, m, con_string_md, con_integer_md, con_numeric_md); return retval; } const Index* SensAmplTNLP::get_index_suffix(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_index_suffix", dbg_verbosity); SmartPtr suffix_handler = get_suffix_handler(); const Index* index_suffix= suffix_handler->GetIntegerSuffixValues(suffix_name, AmplSuffixHandler::Variable_Source); return index_suffix; } std::vector SensAmplTNLP::get_index_suffix_vec(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_index_suffix_vec", dbg_verbosity); ASL_pfgh* asl = AmplSolverObject(); SmartPtr suffix_handler = get_suffix_handler(); DBG_ASSERT(IsValid(suffix_handler)); std::vector index_suffix= suffix_handler->GetIntegerSuffixValues(n_var, suffix_name, AmplSuffixHandler::Variable_Source); if ( index_suffix.size()==0 ) { index_suffix.resize(n_var, 0); } return index_suffix; } const Number* SensAmplTNLP::get_number_suffix(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_number_suffix", dbg_verbosity); SmartPtr suffix_handler = get_suffix_handler(); const Number* number_suffix= suffix_handler->GetNumberSuffixValues(suffix_name, AmplSuffixHandler::Variable_Source); if (number_suffix==NULL) { // suffix invalid std::string except = suffix_name; except.append(" is empty"); THROW_EXCEPTION(SUFFIX_EMPTY, except); } return number_suffix; } std::vector SensAmplTNLP::get_number_suffix_vec(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_number_suffix_vec", dbg_verbosity); ASL_pfgh* asl = AmplSolverObject(); SmartPtr suffix_handler = get_suffix_handler(); std::vector number_suffix= suffix_handler->GetNumberSuffixValues(n_var, suffix_name, AmplSuffixHandler::Variable_Source); if (number_suffix.empty()) { // suffix invalid std::string except = suffix_name; except.append(" is empty"); THROW_EXCEPTION(SUFFIX_EMPTY, except); } return number_suffix; } const Index* SensAmplTNLP::get_index_suffix_constr(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_index_suffix_constr", dbg_verbosity); SmartPtr suffix_handler = get_suffix_handler(); const Index* index_suffix= suffix_handler->GetIntegerSuffixValues(suffix_name, AmplSuffixHandler::Constraint_Source); if (index_suffix==NULL) { // suffix invalid std::string except = suffix_name; except.append(" is empty"); THROW_EXCEPTION(SUFFIX_EMPTY, except); } return index_suffix; } std::vector SensAmplTNLP::get_index_suffix_constr_vec(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_index_suffix_constr_vec", dbg_verbosity); ASL_pfgh* asl = AmplSolverObject(); SmartPtr suffix_handler = get_suffix_handler(); std::vector index_suffix= suffix_handler->GetIntegerSuffixValues(n_con, suffix_name, AmplSuffixHandler::Constraint_Source); if (index_suffix.empty()) { // suffix invalid std::string except = suffix_name; except.append(" is empty"); THROW_EXCEPTION(SUFFIX_EMPTY, except); } return index_suffix; } const Number* SensAmplTNLP::get_number_suffix_constr(const char* suffix_name) { DBG_START_METH("SensAmplTNLP::get_number_suffix_constr", dbg_verbosity); SmartPtr suffix_handler = get_suffix_handler(); const Number* number_suffix= suffix_handler->GetNumberSuffixValues(suffix_name, AmplSuffixHandler::Constraint_Source); if (number_suffix==NULL) { // suffix invalid std::string except = suffix_name; except.append(" is empty"); THROW_EXCEPTION(SUFFIX_EMPTY, except); } return number_suffix; } } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/AmplSolver/ampl_sipopt.cpp0000644000076600007660000001303211734046071022303 0ustar coincoin// Copyright 2009, 2011 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-11 #include "SensAmplTNLP.hpp" #include "IpIpoptApplication.hpp" #include "SensApplication.hpp" #include "IpPDSearchDirCalc.hpp" #include "IpIpoptAlg.hpp" #include "SensRegOp.hpp" int main(int argv, char**argc) { using namespace Ipopt; SmartPtr app_ipopt = new IpoptApplication(); SmartPtr app_sens = new SensApplication(app_ipopt->Jnlst(), app_ipopt->Options(), app_ipopt->RegOptions()); // Register sIPOPT options RegisterOptions_sIPOPT(app_ipopt->RegOptions()); app_ipopt->Options()->SetRegisteredOptions(app_ipopt->RegOptions()); // Call Initialize the first time to create a journalist, but ignore // any options file ApplicationReturnStatus retval; retval = app_ipopt->Initialize(""); if (retval != Solve_Succeeded) { //printf("ampl_ipopt.cpp: Error in first Initialize!!!!\n"); exit(-100); } app_ipopt->Initialize(); // prepare suffixes, or metadata ... SmartPtr suffix_handler = new AmplSuffixHandler(); // Modified for warm-start from AMPL suffix_handler->AddAvailableSuffix("ipopt_zL_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zU_out", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zL_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("ipopt_zU_in", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("parameter", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Index_Type); suffix_handler->AddAvailableSuffix("nominal_value", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix("perturbed_value", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); // Suffixes for sIPOPT suffix_handler->AddAvailableSuffix("sens_init_constr", AmplSuffixHandler::Constraint_Source, AmplSuffixHandler::Index_Type); int n_sens_steps = 0; app_ipopt->Options()->GetIntegerValue("n_sens_steps",n_sens_steps,""); std::string state; std::string state_value; std::string state_value_zL; std::string state_value_zU; std::string sol_state; std::string sol_state_zL; std::string sol_state_zU; for (int k=0; kAddAvailableSuffix(state, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Index_Type); suffix_handler->AddAvailableSuffix(state_value, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(state_value_zL, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(state_value_zU, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(sol_state, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(sol_state, AmplSuffixHandler::Constraint_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(sol_state_zL, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); suffix_handler->AddAvailableSuffix(sol_state_zU, AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Number_Type); } // for reduced hessian computation suffix_handler->AddAvailableSuffix("red_hessian", AmplSuffixHandler::Variable_Source, AmplSuffixHandler::Index_Type); // Create AmplOptionsList for sIPOPT AMPL options SmartPtr ampl_options_list = new AmplOptionsList(); ampl_options_list->AddAmplOption("run_sens", "run_sens", AmplOptionsList::String_Option, "Set to yes if sens algorithm should be run."); ampl_options_list->AddAmplOption("compute_red_hessian", "compute_red_hessian", AmplOptionsList::String_Option, "Set to yes if reduced hessian should be computed."); ampl_options_list->AddAmplOption("sens_boundcheck", "sens_boundcheck", AmplOptionsList::String_Option, "Set to yes to enable the fix-relax QP adaption to a possible bound check. This feature is experimental."); ampl_options_list->AddAmplOption("n_sens_steps", "n_sens_steps", AmplOptionsList::Integer_Option, "Number of sensitivity steps"); // create AmplSensTNLP from argc. SmartPtr sens_tnlp = new SensAmplTNLP(ConstPtr(app_ipopt->Jnlst()), app_ipopt->Options(), argc, suffix_handler, false, ampl_options_list); app_sens->Initialize(); const int n_loops = 1; // make larger for profiling for (Index i=0; iOptimizeTNLP(sens_tnlp); } /* give pointers to Ipopt algorithm objects to Sens Application */ app_sens->SetIpoptAlgorithmObjects(app_ipopt, retval); app_sens->Run(); return 0; } Ipopt-3.11.4/Ipopt/contrib/sIPOPT/AmplSolver/Makefile.in0000644000076600007660000000472111576071414021325 0ustar coincoin# Copyright (C) 2009, 2010 Hans Pirnay. # All Rights Reserved. # This code is published under the Eclipse Public License. # # Author: Hans Pirnay, 2009-12-15 ############################################################################# # Do not modify anything below unless you know what you're doing. prefix = @prefix@ exec_prefix = @exec_prefix@ libdir = @libdir@ bindir = @bindir@ CYGPATH_W = @CYGPATH_W@ SRCDIR = @srcdir@ ipoptsrcdir = $(SRCDIR)/../../../src senssrcdir = $(SRCDIR)/../src CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ LDFLAGS = $(CXXFLAGS) @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) # we also need some Ipopt headers that are not installed, so we add $(ipoptsrcdir)/Algorithm and $(ipoptsrcdir)/LinAlg @COIN_HAS_PKGCONFIG_TRUE@INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipoptamplinterface` -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) @COIN_HAS_PKGCONFIG_FALSE@INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ @ASL_CFLAGS_INSTALLED@ -I`$(CYGPATH_W) $(ipoptsrcdir)/Algorithm` -I`$(CYGPATH_W) $(ipoptsrcdir)/LinAlg` -I`$(CYGPATH_W) $(senssrcdir)` $(ADDINCFLAGS) # Linker flags @COIN_HAS_PKGCONFIG_TRUE@LIBS = -lsipopt `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipoptamplinterface` @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libsipopt.lib libipoptamplinterface.lib libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @ASL_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@LIBS = -L@abs_lib_dir@ -lsipopt -lipoptamplinterface -lipopt @IPOPTLIB_LIBS_INSTALLED@ @ASL_LIBS_INSTALLED@ #LIBTOOL = @LIBTOOL@ #CXXLD = $(CXX) #CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ # $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ sIPOPT_LIB = libsipopt.so sIPOPT_LIBNAME =$(sIPOPT_LIB).0.0.0 TARGET = ipopt_sens OBJS = SensAmplTNLP.@OBJEXT@ VPATH = $(SRCDIR):$(ipoptsrcdir)/Apps/AmplSolver all: $(OBJS) install: $(TARGET) if test -d $(bindir); then : ; else mkdir $(bindir); fi cp $(TARGET) $(bindir) uninstall: rm -f $(bindir)/$(TARGET) $(TARGET): $(OBJS) ampl_sipopt.cpp $(CXX) $(LDFLAGS) $(SRCDIR)/ampl_sipopt.cpp -o $(TARGET) $(OBJS) $(INCL) $(LIBS) %.@OBJEXT@: %.cpp $(CXX) $(CXXFLAGS) $(INCL) -o $@ -c $^ clean: rm -f $(OBJS) $(TARGET) distclean: clean Ipopt-3.11.4/Ipopt/contrib/sIPOPT/AmplSolver/SensAmplTNLP.hpp0000644000076600007660000000645411551617037022216 0ustar coincoin// Copyright 2009 Hans Pirnay // All Rights Reserved. // This code is published under the Eclipse Public License. // // Date : 2009-05-11 #ifndef __SENSAMPLTNLP_HPP__ #define __SENSAMPLTNLP_HPP__ #include "AmplTNLP.hpp" namespace Ipopt { DECLARE_STD_EXCEPTION(SUFFIX_EMPTY); class SensAmplTNLP : public AmplTNLP { /** This class is the Sens-wrapper for the ampltnlp, adapts * the get bounds function and some others to our needs. */ public: /** constructor */ SensAmplTNLP(const SmartPtr& jnlst, const SmartPtr options, char**& argv, SmartPtr suffix_handler= NULL, bool allow_discrete = false, SmartPtr ampl_options_list= NULL , const char* ampl_option_string = NULL , const char* ampl_invokation_string = NULL, const char* ampl_banner_string = NULL, std::string* nl_file_content = NULL); virtual ~SensAmplTNLP(); /** returns bounds of the nlp. Overloaded from AmplTNLP */ virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u, Index m, Number* g_l, Number* g_u); void set_sens_solution(Index idx, SmartPtr sens_sol); virtual void finalize_metadata(Index n, const StringMetaDataMapType& var_string_md, const IntegerMetaDataMapType& var_integer_md, const NumericMetaDataMapType& var_numeric_md, Index m, const StringMetaDataMapType& con_string_md, const IntegerMetaDataMapType& con_integer_md, const NumericMetaDataMapType& con_numeric_md); virtual void finalize_solution(SolverReturn status, Index n, const Number* x, const Number* z_L, const Number* z_U, Index m, const Number* g, const Number* lambda, Number obj_value, const IpoptData* ip_data, IpoptCalculatedQuantities* ip_cq); const Index* get_index_suffix(const char* suffix_name); std::vector get_index_suffix_vec(const char* suffix_name); const Number* get_number_suffix(const char* suffix_name); std::vector get_number_suffix_vec(const char* suffix_name); const Index* get_index_suffix_constr(const char* suffix_name); std::vector get_index_suffix_constr_vec(const char* suffix_name); const Number* get_number_suffix_constr(const char* suffix_name); virtual bool get_var_con_metadata(Index n, StringMetaDataMapType& var_string_md, IntegerMetaDataMapType& var_integer_md, NumericMetaDataMapType& var_numeric_md, Index m, StringMetaDataMapType& con_string_md, IntegerMetaDataMapType& con_integer_md, NumericMetaDataMapType& con_numeric_md); private: /** local copy of current lower and upper bounds - needed for parameter change */ // Number* x_L; //Number* x_U; SmartPtr jnlst_; SmartPtr options_; bool have_parameters_; Index* parameter_flags_; Number* parameter_values_; /** important Options */ Index n_sens_steps_; bool run_sens_; bool compute_red_hessian_; std::vector< SmartPtr > sens_sol_; }; } #endif Ipopt-3.11.4/Ipopt/contrib/RInterface/0000755000076600007660000000000012214537465016137 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/man/0000755000076600007660000000000012214537465016712 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/man/is.ipoptr.Rd0000644000076600007660000000161611433226364021127 0ustar coincoin\name{is.ipoptr} \alias{is.ipoptr} \title{ R interface to Ipopt } \description{ is.ipoptr preforms checks to see if a fully specified problem is supplied to ipoptr. Mostly for internal use. } \usage{ is.ipoptr( x ) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x}{ object to be tested. } } \value{ Logical. Return TRUE if all tests were passed, otherwise return FALSE or exit with Error. } \references{ A. Waechter and L. T. Biegler, On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006 } \author{ Jelmer Ypma } \seealso{ \code{\link[ipoptr:ipoptr]{ipoptr}} \code{\link[ipoptr:print.sparseness]{print.sparseness}} } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/print.sparseness.Rd0000644000076600007660000000531711472540311022515 0ustar coincoin\name{print.sparseness} \alias{print.sparseness} \title{ Show sparseness structure of matrix } \description{ This function shows the sparseness structure of a matrix in the format that is required by ipoptr. } \usage{ print.sparseness( x, indices=TRUE, data=NULL, ncol=NULL, ... ) } \arguments{ \item{x}{ list of vectors with indices. Each element of the list corresponds to a row in the matrix. Each index corresponds to a non-zero element in the matrix. } \item{indices}{ Logical. Should we show the order of the non-zero elements or just whether an element is non-zero? } \item{data}{ vector with non-zero elements of the sparse matrix. } \item{ncol}{ integer supplying the number of columns of the sparse matrix. If this is not supplied, we take the number of columns as the largest index in \code{s}. } \item{...}{ further arguments passed to or from other methods. } } \value{ A matrix showing the sparseness structure is returned. } \author{ Jelmer Ypma } \seealso{ \code{\link[ipoptr:ipoptr]{ipoptr}} \code{\link[ipoptr:plot.sparseness]{plot.sparseness}} \code{\link[ipoptr:make.sparse]{make.sparse}} } \examples{ library('ipoptr') # print lower-diagonal 4x4 matrix print.sparseness( list( c(1), c(1,2), c(1,2,3), c(1,2,3,4) ) ) # print diagonal 3x3 matrix without indices counts print.sparseness( list( c(1), c(2), c(3) ), indices=FALSE ) # print a third sparse matrix print.sparseness( list( c(1,3,6,8), c(2,5), c(3,7,9) ) ) # and a fourth one, where the elements are in a different order print.sparseness( list( c(3,1,6,8), c(2,5), c(3,9,7) ) ) # print lower-diagonal 5x5 matrix generated with make.sparse A_lower <- make.sparse( lower.tri( matrix(1, nrow=5, ncol=5), diag=TRUE ) ) print.sparseness( A_lower ) # print a diagonal 5x5 matrix without indices counts A_diag <- make.sparse( diag(5) > 0 ) print.sparseness( A_diag ) # example from tests/lasso.R n <- 100 # number of observations m <- 5 # number of variables # define hessian function hessian <- function( A ) { H <- t(A) %*% A H <- unlist( lapply( 1:m, function(i) { H[i,1:i] } ) ) return( H ) } # define the structure hessian_structure <- c( lapply( 1:m, function(x) { return( c(1:x) ) } ), lapply( 1:m, function(x) { return( c() ) } ) ) # generate data set.seed( 3141 ) A <- hessian( matrix( rnorm( n*m ), nrow=n, ncol=m ) ) print.sparseness( x = hessian_structure, indices = TRUE, data = format( A, digits=2, nsmall=2, justify='right'), ncol = 2*m ) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/ipoptr-package.Rd0000644000076600007660000001226211504216567022110 0ustar coincoin\name{ipoptr-package} \alias{ipoptr-package} \docType{package} \title{ R interface to Ipopt } \description{ ipoptr is an R interface to Ipopt (Interior Point Optimizer), an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls. Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code has been written by Carl Laird and Andreas Waechter, who is the COIN project leader for Ipopt. Ipopt is designed to find (local) solutions of mathematical optimization problems of the from min f(x) x in R^n s.t. g_L <= g(x) <= g_U x_L <= x <= x_U where f(x): R^n --> R is the objective function, and g(x): R^n --> R^m are the constraint functions. The vectors g_L and g_U denote the lower and upper bounds on the constraints, and the vectors x_L and x_U are the bounds on the variables x. The functions f(x) and g(x) can be nonlinear and nonconvex, but should be twice continuously differentiable. Note that equality constraints can be formulated in the above formulation by setting the corresponding components of g_L and g_U to the same value. } \author{ Jelmer Ypma } \references{ A. Waechter and L. T. Biegler, On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006 } \keyword{ optimize } \keyword{ interface } \seealso{ \code{\link{optim}} \code{\link{nlm}} \code{\link{nlminb}} \code{\link[Rsolnp:Rsolnp-package]{Rsolnp}} } \note{See ?ipoptr for more examples.} \examples{ # Example problem, number 71 from the Hock-Schittkowsky test suite # # \min_{x} x1*x4*(x1 + x2 + x3) + x3 # s.t. # x1*x2*x3*x4 >= 25 # x1^2 + x2^2 + x3^2 + x4^2 = 40 # 1 <= x1,x2,x3,x4 <= 5 # # x0 = (1,5,5,1) # # optimal solution = (1.00000000, 4.74299963, 3.82114998, 1.37940829) # # Adapted from the Ipopt C++ interface example. library('ipoptr') # # f(x) = x1*x4*(x1 + x2 + x3) + x3 # eval_f <- function( x ) { return( x[1]*x[4]*(x[1] + x[2] + x[3]) + x[3] ) } eval_grad_f <- function( x ) { return( c( x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]), x[1] * x[4], x[1] * x[4] + 1.0, x[1] * (x[1] + x[2] + x[3]) ) ) } # constraint functions eval_g <- function( x ) { return( c( x[1] * x[2] * x[3] * x[4], x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 ) ) } # The Jacobian for this problem is dense eval_jac_g_structure <- list( c(1,2,3,4), c(1,2,3,4) ) eval_jac_g <- function( x ) { return( c ( x[2]*x[3]*x[4], x[1]*x[3]*x[4], x[1]*x[2]*x[4], x[1]*x[2]*x[3], 2.0*x[1], 2.0*x[2], 2.0*x[3], 2.0*x[4] ) ) } # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2), c(1,2,3), c(1,2,3,4) ) eval_h <- function( x, obj_factor, hessian_lambda ) { values <- numeric(10) values[1] = obj_factor * (2*x[4]) # 1,1 values[2] = obj_factor * (x[4]) # 2,1 values[3] = 0 # 2,2 values[4] = obj_factor * (x[4]) # 3,1 values[5] = 0 # 4,2 values[6] = 0 # 3,3 values[7] = obj_factor * (2*x[1] + x[2] + x[3]) # 4,1 values[8] = obj_factor * (x[1]) # 4,2 values[9] = obj_factor * (x[1]) # 4,3 values[10] = 0 # 4,4 # add the portion for the first constraint values[2] = values[2] + hessian_lambda[1] * (x[3] * x[4]) # 2,1 values[4] = values[4] + hessian_lambda[1] * (x[2] * x[4]) # 3,1 values[5] = values[5] + hessian_lambda[1] * (x[1] * x[4]) # 3,2 values[7] = values[7] + hessian_lambda[1] * (x[2] * x[3]) # 4,1 values[8] = values[8] + hessian_lambda[1] * (x[1] * x[3]) # 4,2 values[9] = values[9] + hessian_lambda[1] * (x[1] * x[2]) # 4,3 # add the portion for the second constraint values[1] = values[1] + hessian_lambda[2] * 2 # 1,1 values[3] = values[3] + hessian_lambda[2] * 2 # 2,2 values[6] = values[6] + hessian_lambda[2] * 2 # 3,3 values[10] = values[10] + hessian_lambda[2] * 2 # 4,4 return ( values ) } # initial values x0 <- c( 1, 5, 5, 1 ) # lower and upper bounds of control lb <- c( 1, 1, 1, 1 ) ub <- c( 5, 5, 5, 5 ) # lower and upper bounds of constraints constraint_lb <- c( 25, 40 ) constraint_ub <- c( Inf, 40 ) opts <- list("print_level"=0, "file_print_level"=12, "output_file"="hs071_nlp.out") print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, eval_g=eval_g, eval_jac_g=eval_jac_g, constraint_lb=constraint_lb, constraint_ub=constraint_ub, eval_jac_g_structure=eval_jac_g_structure, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/plot.sparseness.Rd0000644000076600007660000000347711472540311022344 0ustar coincoin\name{plot.sparseness} \alias{plot.sparseness} \title{ Plot sparseness structure of matrix } \description{ This function plots the sparseness structure of a matrix in the format that is required by ipoptr. } \usage{ plot.sparseness( x, pch='.', asp=1, xaxs='i', yaxs='i', ... ) } \arguments{ \item{x}{ list of vectors with indices. Each element of the list corresponds to a row in the matrix. Each index corresponds to a non-zero element in the matrix. } \item{pch}{ plotting `character'. See \code{\link[graphics:plot]{points}} for possible values. } \item{asp}{ aspect ratio, default = 1. } \item{xaxs, yaxs}{ style of axis interval calculation, default = 'i' (do not extend the axis). See \code{\link[graphics:plot]{par}} for more information. } \item{...}{ further graphical parameters that will be passed to \code{\link[graphics:plot]{plot}}. } } \value{ A list with the non-zero x and y indices is returned. } \author{ Jelmer Ypma } \seealso{ \code{\link[ipoptr:ipoptr]{ipoptr}} \code{\link[ipoptr:print.sparseness]{print.sparseness}} \code{\link[ipoptr:make.sparse]{make.sparse}} } \examples{ library('ipoptr') # use different plotting symbol for small matrices plot.sparseness( make.sparse(diag(5)), pch='x' ) # plot large matrix example s <- make.sparse( lower.tri( matrix( 1, 500, 500), diag=TRUE ) ) plot.sparseness( s ) # plot another large matrix s <- do.call( "cbind", lapply( 1:5, function(i) { diag(5) \%x\% matrix(1, nrow=5, ncol=20) } ) ) s <- do.call( "rbind", lapply( 1:10, function(i) { s } ) ) s <- cbind( matrix( 1, nrow=nrow(s), ncol=40 ), s ) plot.sparseness( make.sparse( s ) ) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/ipoptr.Rd0000644000076600007660000002036711504216567020524 0ustar coincoin\name{ipoptr} \alias{ipoptr} \title{ R interface to Ipopt } \description{ ipoptr is an R interface to Ipopt (Interior Point Optimizer), an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls. Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code has been written by Carl Laird and Andreas Waechter, who is the COIN project leader for Ipopt. Ipopt is designed to find (local) solutions of mathematical optimization problems of the from min f(x) x in R^n s.t. g_L <= g(x) <= g_U x_L <= x <= x_U where f(x): R^n --> R is the objective function, and g(x): R^n --> R^m are the constraint functions. The vectors g_L and g_U denote the lower and upper bounds on the constraints, and the vectors x_L and x_U are the bounds on the variables x. The functions f(x) and g(x) can be nonlinear and nonconvex, but should be twice continuously differentiable. Note that equality constraints can be formulated in the above formulation by setting the corresponding components of g_L and g_U to the same value. } \usage{ ipoptr( x0, eval_f, eval_grad_f, lb = NULL, ub = NULL, eval_g = function( x ) { return( numeric(0) ) }, eval_jac_g = function( x ) { return( numeric(0) ) }, eval_jac_g_structure = list(), constraint_lb = numeric(0), constraint_ub = numeric(0), eval_h = NULL, eval_h_structure = NULL, opts = list(), ipoptr_environment = new.env(), ... ) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{x0}{ vector with starting values for the optimization. } \item{eval_f}{ function that returns the value of the objective function. } \item{eval_grad_f}{ function that returns the value of the gradient of the objective function. } \item{lb}{ vector with lower bounds of the controls (use -1.0e19 for controls without lower bound). } \item{ub}{ vector with upper bounds of the controls (use 1.0e19 for controls without upper bound). } \item{eval_g}{ function to evaluate (non-)linear constraints that should hold in the solution. } \item{eval_jac_g}{ function to evaluate the jacobian of the (non-)linear constraints that should hold in the solution. } \item{eval_jac_g_structure}{ list of vectors with indices defining the sparseness structure of the Jacobian. Each element of the list corresponds to a row in the matrix. Each index corresponds to a non-zero element in the matrix (see also \code{\link[ipoptr:print.sparseness]{print.sparseness}}). } \item{constraint_lb}{ vector with lower bounds of the (non-)linear constraints } \item{constraint_ub}{ vector with upper bounds of the (non-)linear constraints } \item{eval_h}{ function to evaluate the hessian. } \item{eval_h_structure}{ list of vectors with indices defining the sparseness structure of the Hessian. Each element of the list corresponds to a row in the matrix. Each index corresponds to a non-zero element in the matrix (see also \code{\link[ipoptr:print.sparseness]{print.sparseness}}). } \item{opts}{ list with options, see examples below. For a full list of options use the option "print_options_documentation"='yes', or have a look at the Ipopt documentation at \url{http://www.coin-or.org/Ipopt/documentation/}. } \item{ipoptr_environment}{ environment that is used to evaluate the functions. Use this to pass additional data or parameters to a function. See the second example in \code{parameters.R} in the \code{tests} directory. } \item{...}{ arguments that will be passed to the user-defined objective and constraints functions. } } \value{ The return value contains a list with the inputs, and additional elements \item{call}{the call that was made to solve} \item{status}{integer value with the status of the optimization (0 is success)} \item{message}{more informative message with the status of the optimization} \item{iterations}{number of iterations that were executed} \item{objective}{value if the objective function in the solution} \item{solution}{optimal value of the controls} } \references{ A. Waechter and L. T. Biegler, On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006 } \author{ Jelmer Ypma } \seealso{ \code{\link{optim}} \code{\link{nlm}} \code{\link{nlminb}} \code{\link[Rsolnp:Rsolnp-package]{Rsolnp}} \code{\link[Rsolnp:solnp]{ssolnp}} \code{\link[ipoptr:print.sparseness]{print.sparseness}} \code{\link[ipoptr:make.sparse]{make.sparse}} } \note{See ?`ipoptr-package` for an extended example.} \examples{ library('ipoptr') ## Rosenbrock Banana function eval_f <- function(x) { return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 ) } ## Gradient of Rosenbrock Banana function eval_grad_f <- function(x) { c(-400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]), 200 * (x[2] - x[1] * x[1])) } # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2) ) eval_h <- function( x, obj_factor, hessian_lambda ) { return( obj_factor*c( 2 - 400*(x[2] - x[1]^2) + 800*x[1]^2, # 1,1 -400*x[1], # 2,1 200 ) ) # 2,2 } # initial values x0 <- c( -1.2, 1 ) opts <- list("print_level"=0, "file_print_level"=12, "output_file"="banana.out", "tol"=1.0e-8) # solve Rosenbrock Banana function with analytic hessian print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) # solve Rosenbrock Banana function with approximated hessian print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, opts=opts) ) ## # # Solve the example taken from the Ipopt C++ # tutorial document (see Examples/CppTutorial/). # # min_x f(x) = -(x2-2)^2 # s.t. # 0 = x1^2 + x2 - 1 # -1 <= x1 <= 1 # ## eval_f <- function( x ) { print( paste( "In R::eval_f, x = ", paste( c(1,2), collapse=', ' ) ) ) return( -(x[2] - 2.0)*(x[2] - 2.0) ) } eval_grad_f <- function( x ) { return( c(0.0, -2.0*(x[2] - 2.0) ) ) } eval_g <- function( x ) { return( -(x[1]*x[1] + x[2] - 1.0) ); } # list with indices of non-zero elements # each element of the list corresponds to the derivative of one constraint # # e.g. # / 0 x x \ # \ x 0 x / # would be # list( c(2,3), c(1,3) ) eval_jac_g_structure <- list( c(1,2) ) # this should return a vector with all the non-zero elements # so, no list here, because that is slower I guess # TODO: make an R-function that shows the structure in matrix form eval_jac_g <- function( x ) { return ( c ( -2.0 * x[1], -1.0 ) ) } # diagonal matrix, usually only fill the lower triangle eval_h_structure <- list( c(1), c(2) ) eval_h <- function( x, obj_factor, hessian_lambda ) { return ( c( -2.0*hessian_lambda[1], -2.0*obj_factor ) ) } x0 <- c(0.5,1.5) lb <- c( -1, -1.0e19 ) ub <- c( 1, 1.0e19 ) constraint_lb <- 0 constraint_ub <- 0 opts <- list("print_level"=0, "file_print_level"=12, "output_file"="ipopttest.out") print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, eval_g=eval_g, eval_jac_g=eval_jac_g, eval_jac_g_structure=eval_jac_g_structure, constraint_lb=constraint_lb, constraint_ub=constraint_ub, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/print.ipoptr.Rd0000644000076600007660000000203511472540311021636 0ustar coincoin\name{print.ipoptr} \alias{print.ipoptr} \title{ Print results after running ipoptr } \description{ This function prints the ipoptr object that holds the results from a minimization using \code{ipoptr}. } \usage{ \method{print}{ipoptr}( x, show.controls=TRUE, \dots ) } \arguments{ \item{x}{ object containing result from minimization. } \item{show.controls}{ Logical or vector with indices. Should we show the value of the control variables in the solution? If code{show.controls} is a vector with indices, it is used to select which control variables should be shown. This can be useful if the model contains a set of parameters of interest and a set of nuisance parameters that are not of immediate interest. } \item{...}{ further arguments passed to or from other methods. } } \author{ Jelmer Ypma } \seealso{ \code{\link[ipoptr:ipoptr]{ipoptr}} \code{\link[ipoptr:make.sparse]{make.sparse}} \code{\link[ipoptr:print.sparseness]{print.sparseness}} } \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/man/make.sparse.Rd0000644000076600007660000000211411433226364021403 0ustar coincoin\name{make.sparse} \alias{make.sparse} \title{ Create sparseness structure from logical matrix } \description{ This function creates the sparseness structure of a logical matrix in the format that is required by ipoptr. } \usage{ make.sparse( A ) } \arguments{ \item{A}{ Matrix with logicals. TRUE denotes a non-zero element in the matrix. } } \value{ List of vectors with indices. Each element of the list corresponds to a row in the matrix. Each index corresponds to a non-zero element in the matrix. } \author{ Jelmer Ypma } \seealso{ \code{\link[ipoptr:ipoptr]{ipoptr}} \code{\link[ipoptr:print.sparseness]{print.sparseness}} } \examples{ library('ipoptr') # print lower-diagonal 5x5 matrix generated with make.sparse A_lower <- make.sparse( lower.tri( matrix(1, nrow=5, ncol=5), diag=TRUE ) ) print.sparseness( A_lower ) # prnit a diagonal 5x5 matrix without indices counts A_diag <- make.sparse( diag(5) > 0 ) print.sparseness( A_diag ) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ optimize } \keyword{ interface } Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/0000755000076600007660000000000012214537465017301 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/tests/sparseness.R0000644000076600007660000000413111504216567021607 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: sparseness.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example showing how the functions print.sparseness and # make.sparse work. These show and create the sparseness # structure of a matrix as it should be used for input # to ipoptr(). library('ipoptr') # print lower-diagonal 4x4 matrix print.sparseness( list( c(1), c(1,2), c(1,2,3), c(1,2,3,4) ) ) # print diagonal 3x3 matrix without indices counts print.sparseness( list( c(1), c(2), c(3) ), indices=FALSE ) # print a third sparse matrix print.sparseness( list( c(1,3,6,8), c(2,5), c(3,7,9) ) ) # and a fourth one, where the elements are in a different order print.sparseness( list( c(3,1,6,8), c(2,5), c(3,9,7) ) ) # print lower-diagonal 5x5 matrix generated with make.sparse A_lower <- make.sparse( lower.tri( matrix(1, nrow=5, ncol=5), diag=TRUE ) ) print.sparseness( A_lower ) # print a diagonal 5x5 matrix without indices counts A_diag <- make.sparse( diag(5) > 0 ) print.sparseness( A_diag ) # example from tests/lasso.R n <- 100 # number of observations m <- 5 # number of variables # define hessian function hessian <- function( A ) { H <- t(A) %*% A H <- unlist( lapply( 1:m, function(i) { H[i,1:i] } ) ) return( H ) } # define the structure hessian_structure <- c( lapply( 1:m, function(x) { return( c(1:x) ) } ), lapply( 1:m, function(x) { return( c() ) } ) ) # generate data set.seed( 3141 ) A <- hessian( matrix( rnorm( n*m ), nrow=n, ncol=m ) ) print.sparseness( x = hessian_structure, indices = TRUE, data = format( A, digits=2, nsmall=2, justify='right'), ncol = 2*m ) # make a large sparseness structure and use plot s <- do.call( "cbind", lapply( 1:5, function(i) { diag(5) %x% matrix(1, nrow=5, ncol=20) } ) ) s <- do.call( "rbind", lapply( 1:5, function(i) { s } ) ) s <- cbind( matrix( 1, nrow=nrow(s), ncol=40 ), s ) plot.sparseness( make.sparse( s ) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/approx_banana.R0000644000076600007660000000334111504216567022234 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: approx_banana.R # Author: Jelmer Ypma # Date: 5 July 2010 # # Example showing how to solve the Rosenbrock Banana function # with an approximated gradient, which doesn't work so well. library('ipoptr') # Rosenbrock Banana function eval_f <- function(x) { return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 ) } # Approximate eval_f using finite differences # http://en.wikipedia.org/wiki/Numerical_differentiation approx_grad_f <- function( x ) { minAbsValue <- 0 stepSize <- sqrt( .Machine$double.eps ) # if we evaluate at 0, we need a different step size stepSizeVec <- ifelse(abs(x) <= minAbsValue, stepSize^3, x * stepSize) x_prime <- x f <- eval_f( x ) grad_f <- rep( 0, length(x) ) for (i in 1:length(x)) { x_prime[i] <- x[i] + stepSizeVec[i] stepSizeVec[i] <- x_prime[i] - x[i] f_prime <- eval_f( x_prime ) grad_f[i] <- ( f_prime - f )/stepSizeVec[i] x_prime[i] <- x[i] } return( grad_f ) } # initial values x0 <- c( -1.2, 1 ) opts <- list("tol"=1.0e-8, "max_iter"=5000) # solve Rosenbrock Banana function with approximated gradient print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=approx_grad_f, opts=opts) ) opts <- list("tol"=1.0e-7) # solve Rosenbrock Banana function with approximated gradient # and lower tolerance print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=approx_grad_f, opts=opts) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/lasso.R0000644000076600007660000001125611504216567020550 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: lasso.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example showing how to estimate a LASSO model. Based on # the example from the Matlab interface to Ipopt. There are # other packages in R that can estimate LASSO models, e.g. # using the package glmnet. library('ipoptr') # Experiment parameters. lambda <- 1 # Level of L1 regularization. n <- 100 # Number of training examples. e <- 1 # Std. dev. in noise of outputs. beta <- c( 0, 0, 2, -4, 0, 0, -1, 3 ) # "True" regression coefficients. # Set the random number generator seed. ranseed <- 7 set.seed( ranseed ) # CREATE DATA SET. # Generate the input vectors from the standard normal, and generate the # responses from the regression with some additional noise. The variable # "beta" is the set of true regression coefficients. m <- length(beta) # Number of features. A <- matrix( rnorm(n*m), nrow=n, ncol=m ) # The n x m matrix of examples. noise <- rnorm(n, sd=e) # Noise in outputs. y <- A %*% beta + noise # The outputs. # DEFINE LASSO FUNCTIONS # m, lambda, y, A are all defined in the ipoptr_environment eval_f <- function(x) { # separate x in two parts w <- x[ 1:m ] # parameters u <- x[ (m+1):(2*m) ] return( sum( (y - A %*% w)^2 )/2 + lambda*sum(u) ) } # ------------------------------------------------------------------ eval_grad_f <- function(x) { w <- x[ 1:m ] return( c( -t(A) %*% (y - A %*% w), rep(lambda,m) ) ) } # ------------------------------------------------------------------ eval_g <- function(x) { # separate x in two parts w <- x[ 1:m ] # parameters u <- x[ (m+1):(2*m) ] return( c( w + u, u - w ) ) } # ------------------------------------------------------------------ # J = [ I I # -I I ], # where I is and identity matrix of size m eval_jac_g <- function(x) { # return a vector of 1 and minus 1, since those are the values of the non-zero elements return( c( rep( 1, 2*m ), rep( c(-1,1), m ) ) ) } # For m=5, The structure looks like this: # 1 . . . . 2 . . . . # . 3 . . . . 4 . . . # . . 5 . . . . 6 . . # . . . 7 . . . . 8 . # . . . . 9 . . . . 10 # 11 . . . . 12 . . . . # . 13 . . . . 14 . . . # . . 15 . . . . 16 . . # . . . 17 . . . . 18 . # . . . . 19 . . . . 20 eval_jac_g_structure <- lapply( c(1:m,1:m), function(x) { return( c(x,m+x) ) } ) # ------------------------------------------------------------------ # rename lambda so it doesn't cause confusion with lambda in auxdata eval_h <- function( x, obj_factor, hessian_lambda ) { H <- t(A) %*% A H <- unlist( lapply( 1:m, function(i) { H[i,1:i] } ) ) return( obj_factor * H ) } # For m=5, The structure looks like this: # 1 . . . . . . . . . # 2 3 . . . . . . . . # 4 5 6 . . . . . . . # 7 8 9 10 . . . . . . # 11 12 13 14 15 . . . . . # . . . . . . . . . . # . . . . . . . . . . # . . . . . . . . . . # . . . . . . . . . . # . . . . . . . . . . eval_h_structure <- c( lapply( 1:m, function(x) { return( c(1:x) ) } ), lapply( 1:m, function(x) { return( c() ) } ) ) # ------------------------------------------------------------------ # The starting point. x0 = c( rep(0, m), rep(1, m) ) # The constraint functions are bounded from below by zero. constraint_lb = rep( 0, 2*m ) constraint_ub = rep( Inf, 2*m ) ipoptr_opts <- list( "jac_d_constant" = 'yes', "hessian_constant" = 'yes', "mu_strategy" = 'adaptive', "max_iter" = 100, "tol" = 1e-8 ) # Set up the auxiliary data. auxdata <- new.env() auxdata$m <- m auxdata$A <- A auxdata$y <- y auxdata$lambda <- lambda # COMPUTE SOLUTION WITH IPOPT. # Compute the L1-regularized maximum likelihood estimator. print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, eval_g=eval_g, eval_jac_g=eval_jac_g, eval_jac_g_structure=eval_jac_g_structure, constraint_lb=constraint_lb, constraint_ub=constraint_ub, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=ipoptr_opts, ipoptr_environment=auxdata ) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/hs071_nlp.R0000644000076600007660000000720011504216567021134 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: hs071_nlp.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example problem, number 71 from the Hock-Schittkowsky test suite # # \min_{x} x1*x4*(x1 + x2 + x3) + x3 # s.t. # x1*x2*x3*x4 >= 25 # x1^2 + x2^2 + x3^2 + x4^2 = 40 # 1 <= x1,x2,x3,x4 <= 5 # # x0 = (1,5,5,1) # # optimal solution = (1.00000000, 4.74299963, 3.82114998, 1.37940829) # # Adapted from the Ipopt C++ interface example. library('ipoptr') # # f(x) = x1*x4*(x1 + x2 + x3) + x3 # eval_f <- function( x ) { return( x[1]*x[4]*(x[1] + x[2] + x[3]) + x[3] ) } eval_grad_f <- function( x ) { return( c( x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]), x[1] * x[4], x[1] * x[4] + 1.0, x[1] * (x[1] + x[2] + x[3]) ) ) } # constraint functions eval_g <- function( x ) { return( c( x[1] * x[2] * x[3] * x[4], x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 ) ) } # The Jacobian for this problem is dense eval_jac_g_structure <- list( c(1,2,3,4), c(1,2,3,4) ) eval_jac_g <- function( x ) { return( c ( x[2]*x[3]*x[4], x[1]*x[3]*x[4], x[1]*x[2]*x[4], x[1]*x[2]*x[3], 2.0*x[1], 2.0*x[2], 2.0*x[3], 2.0*x[4] ) ) } # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2), c(1,2,3), c(1,2,3,4) ) eval_h <- function( x, obj_factor, hessian_lambda ) { values <- numeric(10) values[1] = obj_factor * (2*x[4]) # 1,1 values[2] = obj_factor * (x[4]) # 2,1 values[3] = 0 # 2,2 values[4] = obj_factor * (x[4]) # 3,1 values[5] = 0 # 4,2 values[6] = 0 # 3,3 values[7] = obj_factor * (2*x[1] + x[2] + x[3]) # 4,1 values[8] = obj_factor * (x[1]) # 4,2 values[9] = obj_factor * (x[1]) # 4,3 values[10] = 0 # 4,4 # add the portion for the first constraint values[2] = values[2] + hessian_lambda[1] * (x[3] * x[4]) # 2,1 values[4] = values[4] + hessian_lambda[1] * (x[2] * x[4]) # 3,1 values[5] = values[5] + hessian_lambda[1] * (x[1] * x[4]) # 3,2 values[7] = values[7] + hessian_lambda[1] * (x[2] * x[3]) # 4,1 values[8] = values[8] + hessian_lambda[1] * (x[1] * x[3]) # 4,2 values[9] = values[9] + hessian_lambda[1] * (x[1] * x[2]) # 4,3 # add the portion for the second constraint values[1] = values[1] + hessian_lambda[2] * 2 # 1,1 values[3] = values[3] + hessian_lambda[2] * 2 # 2,2 values[6] = values[6] + hessian_lambda[2] * 2 # 3,3 values[10] = values[10] + hessian_lambda[2] * 2 # 4,4 return ( values ) } # initial values x0 <- c( 1, 5, 5, 1 ) # lower and upper bounds of control lb <- c( 1, 1, 1, 1 ) ub <- c( 5, 5, 5, 5 ) # lower and upper bounds of constraints constraint_lb <- c( 25, 40 ) constraint_ub <- c( Inf, 40 ) opts <- list("print_level"=0, "file_print_level"=12, "output_file"="hs071_nlp.out") print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, eval_g=eval_g, eval_jac_g=eval_jac_g, constraint_lb=constraint_lb, constraint_ub=constraint_ub, eval_jac_g_structure=eval_jac_g_structure, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/parameters.R0000644000076600007660000000366111504216567021573 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: parameters.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example showing two ways how we can have an objective # function depend on parameters or data. The objective # function is a simple polynomial. library('ipoptr') # # First example: supply additional arguments in user-defined functions # # objective function and gradient in terms of parameters eval_f_ex1 <- function(x, params) { return( params[1]*x^2 + params[2]*x + params[3] ) } eval_grad_f_ex1 <- function(x, params) { return( 2*params[1]*x + params[2] ) } # define parameters that we want to use params <- c(1,2,3) # define initial value of the optimzation problem x0 <- 0 # solve using ipoptr ipoptr( x0 = x0, eval_f = eval_f_ex1, eval_grad_f = eval_grad_f_ex1, params = params ) # # Second example: define an environment that contains extra parameters # # objective function and gradient in terms of parameters # without supplying params as an argument eval_f_ex2 <- function(x) { return( params[1]*x^2 + params[2]*x + params[3] ) } eval_grad_f_ex2 <- function(x) { return( 2*params[1]*x + params[2] ) } # define initial value of the optimzation problem x0 <- 0 # define a new environment that contains params auxdata <- new.env() auxdata$params <- c(1,2,3) # pass the environment that should be used to evaluate functions to ipoptr ipoptr( x0 = x0, eval_f = eval_f_ex2, eval_grad_f = eval_grad_f_ex2, ipoptr_environment = auxdata ) # solve using algebra cat( paste( "Minimizing f(x) = ax^2 + bx + c\n" ) ) cat( paste( "Optimal value of control is -b/(2a) = ", -params[2]/(2*params[1]), "\n" ) ) cat( paste( "With value of the objective function f(-b/(2a)) = ", eval_f_ex1( -params[2]/(2*params[1]), params ), "\n" ) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/mynlp.R0000644000076600007660000000415211504216567020563 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: mynlp.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example NLP for interfacing a problem with IPOPT. # This example is adapted from the C++ example that # goes along with the Ipopt tutorial document. # This example solves the following problem: # # min_x f(x) = -(x2-2)^2 # s.t. # 0 = x1^2 + x2 - 1 # -1 <= x1 <= 1 library('ipoptr') eval_f <- function( x ) { print( paste( "In R::eval_f, x = ", paste( x, collapse=', ' ) ) ) return( -(x[2] - 2.0)*(x[2] - 2.0) ) } eval_grad_f <- function( x ) { return( c(0.0, -2.0*(x[2] - 2.0) ) ) } eval_g <- function( x ) { return( -(x[1]*x[1] + x[2] - 1.0) ); } # list with indices of non-zero elements # each element of the list corresponds to the derivative of one constraint # # e.g. # / 0 x x \ # \ x 0 x / # would be # list( c(2,3), c(1,3) ) eval_jac_g_structure <- list( c(1,2) ) # this should return a vector with all the non-zero elements # so, no list here, because that is slower I guess # TODO: make an R-function that shows the structure in matrix form eval_jac_g <- function( x ) { return ( c ( -2.0 * x[1], -1.0 ) ) } # diagonal matrix, usually only fill the lower triangle eval_h_structure <- list( c(1), c(2) ) eval_h <- function( x, obj_factor, hessian_lambda ) { return ( c( -2.0*hessian_lambda[1], -2.0*obj_factor ) ) } x0 <- c(0.5,1.5) lb <- c( -1, -1.0e19 ) ub <- c( 1, 1.0e19 ) constraint_lb <- 0 constraint_ub <- 0 opts <- list("print_level"=0, "file_print_level"=12, "output_file"="ipopttest.out") print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, lb=lb, ub=ub, eval_g=eval_g, eval_jac_g=eval_jac_g, eval_jac_g_structure=eval_jac_g_structure, constraint_lb=constraint_lb, constraint_ub=constraint_ub, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/tests/banana.R0000644000076600007660000000314611530044256020637 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: banana.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Example showing how to solve the Rosenbrock Banana function. library('ipoptr') ## Rosenbrock Banana function eval_f <- function(x) { return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 ) } ## Gradient of Rosenbrock Banana function eval_grad_f <- function(x) { return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]), 200 * (x[2] - x[1] * x[1])) ) } # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2) ) eval_h <- function( x, obj_factor, hessian_lambda ) { return( obj_factor*c( 2 - 400*(x[2] - x[1]^2) + 800*x[1]^2, # 1,1 -400*x[1], # 2,1 200 ) ) # 2,2 } # initial values x0 <- c( -1.2, 1 ) opts <- list("print_level"=5, "file_print_level"=12, "output_file"="banana.out", "tol"=1.0e-8) # solve Rosenbrock Banana function with analytic hessian print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) # solve Rosenbrock Banana function with approximated hessian print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, opts=opts) ) Ipopt-3.11.4/Ipopt/contrib/RInterface/DESCRIPTION0000644000076600007660000000127212214316142017632 0ustar coincoinPackage: ipoptr Type: Package Title: R interface to Ipopt Version: 0.8.4 Date: 2011-03-09 Author: Jelmer Ypma Maintainer: Jelmer Ypma Description: ipoptr is an R interface to Ipopt (Interior Point Optimizer), an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls. Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code has been written by Carl Laird and Andreas Waechter, who is the COIN project leader for Ipopt. License: EPL Ipopt-3.11.4/Ipopt/contrib/RInterface/inst/0000755000076600007660000000000012214537465017114 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/inst/CITATION0000644000076600007660000000122111433226364020240 0ustar coincoincitHeader("To cite Ipopt in publications use:") citEntry(entry="Article", title = "On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming", author = personList(as.person("A. W\"{a}chter"), as.person("L. T. Biegler")), year = "2006", journal = "Mathematical Programming", volume = "106", number = "1", pages = "25--57", textVersion = "A. W\"{a}chter and L. T. Biegler, On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming, Mathematical Programming 106(1), pp. 25-57, 2006" ) Ipopt-3.11.4/Ipopt/contrib/RInterface/inst/doc/0000755000076600007660000000000012214537465017661 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/inst/doc/figs/0000755000076600007660000000000012214537465020611 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/inst/doc/reflist.bib0000644000076600007660000000145011433226364022002 0ustar coincoin@inproceedings{Leisch2002, author = {Friedrich Leisch}, title = {Sweave: Dynamic Generation of Statistical Reports Using Literate Data Analysis}, booktitle = {Compstat 2002 --- Proceedings in Computational Statistics}, pages = {575--580}, year = 2002, editor = {Wolfgang H{\"a}rdle and Bernd R{\"o}nz}, publisher = {Physica Verlag, Heidelberg}, note = {ISBN 3-7908-1517-9}, url = {http://www.stat.uni-muenchen.de/~leisch/Sweave} } @article{WachterBiegler2006, author = {A. W{\"a}chter and L. T. Biegler}, title = {On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm for Large-Scale Nonlinear Programming}, journal = {Mathematical Programming}, volume = {106}, number = {1}, pages = {25--57}, year = {2006} } Ipopt-3.11.4/Ipopt/contrib/RInterface/inst/doc/ipoptr.pdf0000644000076600007660000115456612135311356021702 0ustar coincoin%PDF-1.5 %ÐÔÅØ 3 0 obj << /Length 3256 /Filter /FlateDecode >> stream xÚÅËrÇñί@.)°lŒæµQ%‰%¥hÓ¶BRåJ9>, À P”|ɯ§_³;KnJ’¥R$fg{zú=Ý=ûüúäÉK&¦PÖd~r½œ[(ãÂ$Ͻ²e>¹^L~™žŸšéîÔÓcÛœÎl>]ÀÄüÍáï¸nèõÌi==6§¿^÷ä¥÷¤F+ûhF·ø=.Úá_Ë+†ddNé`ã‚§§3¯ý´’M.ùgÍ$Õˆc ÿ*¤¦Æwé ˜ó=ЛMi3¤•÷²@Q!Ë,QWd*³ù$Wּ῵vªSЙÕN•y6™¹ŒÄDÐßÕÀ½ÅÝ[Øöû×^&*Ä2™UfV;å Ï‹ží‰wCÒØð2kaü­Œa¨ üB|9)UµÉ™ ÖNf>S¥-!ÀÞÉ¶Šªá¥°u¿tfŒj 2•Y|}+”`÷2‚QÕáAUok6‚X;œ; D»¾!èºGqK(þžŸŒÒ•%á;ÔBÜ/£²¬ -‹êëÌeÀ“-Uo]ߢ±èé}äh~jK †6N8¬ÄhaöR^ w¨Æea- C¡i0Ñ»pä‹@²' 4ûS‹"ò¥3Ê4¼8ï%‡¸É_Z†x…Ä5Bi”."ü)ò»F3ZÿA+Z„:•…N÷ìäCk×F.,âTÓÁÖ2s¹¢.Úy-“8³<²Ö€2Äвô÷=7I7Lßœf=­Äž.›–BBofÑ\*²yE"™–L¯qPW,&ÄÑ1ˆbÚâ¿? ÍÄd:‘ÿL4›Pªü£eºÿ#Ì$S·$ÿ:nk¦eœÏ‘¤zinÑCMΊ9üëT#æÂ§;6¬¨xŒ®–}·YðËhd0$í oQ7¿7$‘µ,Xz1.Tܹet€ÑZ[m£hw45¹‰Ìoüæ!·c¦1Ø8"ì´i-±äÓÓ'.‚j †{Q†Æ›>˜ 남$t'V²ïB‘ÀÝt^r×­m,jˆ»ßŠ]EÊÚ(þ8 ÷aÔGäƒNî€z •¸Ë±›Í-r¿fzö Ì}Ã)kqXðÇ i1 ÎUýë¡§ãÌÐÓ…;ØbÞÅøE?™ (J¦SÁÀã‹y4ª}4×1Î_Ý%¦Ã±"­Ÿ^¬‰Œ]·f³èº/àïÕEêpø×þ­P'ocà¡C´J •q.Ii[^’2ïÎ~’Øü#üÍðá’_D›]ÇøÒv< *+Ÿ™£|?’¬‡œéV¡Áù.NOáØúé}K»Y.¾çñ¹Ï†.‚· žHŒq=‹ lëdC‰ÖUógb"¬>烵aœëˆ>O„K°Û‡ä"YF"ñ™óvŠG%f” Äßp‹9êØ‹«h…-w~ ã1Ï“à ©d’^9ŸKÊæUÐdlr&ÉïÌ)¦A^Nf‡9“d'°çÝœÎ]v|ÂXNä">¼©R K”`æpêéÖ¹(.(‰ÕN|§% [çÁâ½áq€MŸxU›x´À¡Ùˆó±·‹›ùi³dJ:¤"+‚ŠJº‡ç(ó»cŽù}À§=¢‘S*ÌœãŽÎI̬y¼$1nùðõAy¨P\!æ™ÛµˆÔhÈ·CáJÖ‘2ŽË\y+%Ç;s ˜Wà‘4ÏŽàɔ˻<ð’, %à÷¹Ò®˜9ÁţБ˜DÁ¹Ê|‹¼ åc#€ô;‹ûÖ£:R}=àfˆ">ÁaFpÌr£ ,À™¼Û=<=B=d4丫@.œ™K¤Ô¸A]ªÂ™Iô·Ç$ªð8ÿ>‚|;3y„X1itø ‚ÊUî»jñ‹q2«MØX_i¬+ÁèS>šòÐR‘©ÿƒ’Þal)Ǩͧ ú®^?ÞâÙ,¦ÁßN•ºÈCÑÊäÝÖ_Ë!g$ÿOÇ$‘«Ò<ˆ3A`vÌM>4ÀíPžt0õ`Û,SÚv(ÎÂaçÒšäbÍâ#ÄôY滓–®”l¢ÜíÒ·tÂÀ¹Ÿé<¦ã#:°ÁòK„ìË©G‡éÇ~Iý䟴ÛvT‰ήt³ªíÓ)ç093Ã8կ᪲ÙbŸ¤’–BIU'VäãêÅj&/ò˜Î*± mÚ˜4•µA„™KˆÈ°ß©Q6¯ùµìtì¾)½¹;¹ïp±¦Âϸš;°ñþE²!ÖÜ ÁÃùǶx_¶êêÈÈêßѶª( "ë}OÐ º¤;¦ÚÕ«X~.cÙK›XUÖ±ºõÂpW‹‡â›J\—Æ|d)µx’£‹PÝ3T×Çè;}Åè”l[v⮋;&ëdAn¥¾ßÕCɤÉ»‚x$ÜAPpÅgŸAÙÒ~l|uYñÙ'$ŒBº_¼½‰Ú“‚ÿ@mãš_p¤¤EÝ÷½§Ûµí¤×M6Ë`%<®bƒú(¶lÁ–¹‰2ebt²L®˜ðL¦çØZáòáôI¯»Fw½24-€yØ90EÉ&]ã¨Í*ÝùB ŸC‡‡ÏÀísrƒ™³‰La|É?ýAOeßpÖ=8j[X}Š¢‡°v¾d°÷t»tÇ÷HVÂXäFî-]KÚºiŸOÖ.–Ý•+ XˆøÚ.oŒñ Ö6íXéŽl¼Íí³ÕXÆT–:g!t†ñ€ÇñUÜŒI(¾ú€XŒí:iW¶=¢ª•A“¼¥‰ù–#9F ™znapYÊ7¥©MñÏObú¦O/@…ñÓ+Š@Ô?v´›·ƒàé;­˜hð+Æ÷)“þ¼а¡v³Þt· øQEÃÀ¹óî¶“oµàõÏ‚ä ýRD)’°ã1ŸQ”Å6ìãî@Ãëé¬0ƒhGgöªÞE–(Ö Í°ˆ©£#Ïñ(ö²¦‘f1÷äiNt-f¢?x:z= V`«E<¥öTñ5é ?­H&Á—¡2ž¸ÄÕœrÏ“×'¿Ÿ`Z¬'ŠAH64Äû¢„ªo2ßžüò«ž,à˜T\åäž ·T{ûsÁÍäêäŸ'Ïñ‹g0, ©Î3U ª¤i|ÞCu mø`p¦Äf,µKû8/@<r/{ùö|Uóüá–n—6 ~Dä# ¿ ø¢nÙ‹=ÝvE¸0­Ocf)KP†[®ÇðòA¶¯$üƒ{Þû©Ü’ŽÃž‘Ê]°“Bؾ­#ýµuª]Å+þLYçTP>ïJ ´vWb쬛¹ø#ÚLéú–Hx#>…VØðﳘ ½#C·ÿ¸eGß%sb74æ ¼'{­ûm 1Jg`¼qš¼P,ãý2 /™‰·ëåÂrý(ñÙwÜSèÞW­dm^Ãɺ–S H†{AkyMß ˆ¯ëÄ”~[Òe!W÷iÞöݽÝY¨ºú}°ªµzzQ“éñ%”ÜŒX­­\ˆ`Ó™éKJتÝ|o¾¨CW‰ƒ­´Ç”Rf#Æ1¿†ñ÷<|A¥Š¨Ùò­ MKÉbÒPƤrÕµÃöx½âáð¦S«®Z¹=£É3rªìÖ‡æHW%w+–.NU ¼j«¨OœEÖ/åZôj–•ðf(…r¦éë#÷C°~ÉÖaðâŠn5’3¡¤ÿЧ˜x¯†›ý@|·ÌÔ¢:V#V‚0õQ.ÕÔ™gƒ[ðø5 øë°¹T%¢Ã³àºÈ+)ä ÌX ž} p¬© Þl¤P‘سë¾ çZ¬êEñg‹4î²Ê ï”òbpÚ ìÔ+Cè>äÝ’{ìQ‹OŸ> stream xÚÕZÙo#·÷_¡‡•‘ˆ’spR¤Åî¦)¶HšÔqIÆÒØRWW5R¼ÎCû¯÷»Èá²ÝmŠ¢Òpxó;~ßÁy}sqõ¹›”ªÌM>¹¹›h“*—˜I‘äJ›rr³˜ü0Ým/g¶H§ËK=]Í/›.¹f·?büvÛ†«°b‡Ålz‚bSߺœey9}µ†òš»ÍP®2úÈ•w»°n³§ÞÐkƒsl/M1õ«máwÏ‹`Õ²æao>‚—dØŒÀêÞìo÷Ð”Óæºùó$™Ì´Ve–ñi<å÷¾^@ÿVÂóä& Н¶81¡j¸ê;šL'…JÝd–¨Ô ùþ)«DUÕO³DJâ¤õªð\ žîMujAÃÕê@MLK«§_{âTMÍ}xß8ïÏðˆÓïN~îýÞïxŽT¬ZÎÑþf~ç1-nqŠG˜ÀÚé<ð žžP/ àÆ×áRS¹>Цa‰«Ï³r¢SeÓÜ ¬Ý­Q6—µÌ%,m€;Èßg­ðŒk)Û½vE¦1„Öñ4oqk<|-4ò»5&ˆ ÍRäÑ4™Se™Ál4 .¶'zòóHg¬m­ÊrçÑ©‰³ï.³|ZÝ×¼&NÖpq»;b!VRÑ…+öº_z)¿ÃűþkªÃ¢;l³kd¢] ÿ›®ù1ÜL53¯Kû¶}^»æ•¨íÌ8Øú‘Ÿ¤FÂPÒ†ëŒËc•"MaÝ›KgQ_°”¶BVÀTýc’%ø¾]ðû|·Az¯¼lC»æ–h~z÷š‚sXÍñõ:ZÑS“„ðŽ(Ré|;¶åôÍ•GÔ:ÜÍ^Äz-ôÅN¸²Ë‚X¼%¸©yh… ÿ|™eÌV’á[?§õüŠ6Hc¿ó°¶*, ¼å Ô!O¨sœ­Á×»c6ûZ9í—ÐðÍ÷ß C¬Í€ö\Ó{«h˜—º-w<5í kOv†àÝšäŸUn’«²°ŽlM™«Ì¸‰U¹0P1§4èé,ê, cR‡K´~$¼z ´pÛJµáË@Êa’TI*4ËÅ*E8xª£ˆ§©ç¡µfúíí‰%Ö8qÕV6 €X-1|î¶ŒOÔm@)A,'±«e¶Ú[Ìzá!á´LÓ.{o‚2=+ˆ5,TîhNÁšSô4whåí¸ØÕÊ<4y ÈEXü»Û@ŠóÂ3xûüÒšî¥C«áÒ™Xí»³5BξŒniyÛD\¨‘‰I>}Õå ™ä Ž$Z,ÞÄFÚM í†ÍM#ÄÁ÷ˆ- ÝÛ²Ž2)ø]Yê-ÊR6u3ô ü®ä÷ýBʦ,¡ÄhΣ¶w2îQ_?ïßà÷(¿+9âÐüñ\~OZk ¯’ØÂŸ€Åt–æ‰Ò¥Tk µñ± :ô´š·½¼êÛ¼‹LÖÛŽºá·bç’_b<€‘`;Åå„—ƒÈø¼–eiÄÏX¦åÏm¬ÞÝ ÖF“JuM»µÖ"›U«äBxõŽ!ëâÒ]³»Jº¬ŽülØ2¿•WØ5±¬ïyø »½ß±–µƒÈǦþ»b/Up]Hš:ö!w }m¬­ôa‚ô$(‰>£$Y¢œÉ>DIæ"ÔÞ>ÎòóLyÙ…ü]$ô¾|/ó¾Q+ñÐw²ÎI”¤–µ¼K(EõÒöbu«@30’ÓïÉ™:‰«Æ!ŠÞÞßmƒ€ÈNû0áÇD§r˜Æ‹oî¼÷ ®n‡{QW…€e¿„H"™¤crðõš­Úײ7Q{„hP<&7™È½è.wk›vòƒ;†çdoñä÷ÞŠ“¦Aù-!œIŠó‚)pW4ÏćøZ¤áÍ–Jç‘°|†Äu8…uXËRå.ëÒòOÐþ—o¡³q/؈,DŽ/W$yžC îâ G®%v9ó ×ߢØHrÈì“”y¯>Õ_qï“÷º$ÀJH?íÝé^üäÀÌkÀ| ×ÒxKQþ­jJKfSœá³ÁLÁ„ð´²ÛwìüŸueëb>ÏA¼°”º}|Ž.ï³ „%ðÞ;]>ŽÞmE ïOÞ)ï|‚”鞈kÄ¡OÇiËÆ4­ ׎í–qiÈ•`ùZ†zÅ@kSb(N}èè¢Ã8´¢˜ã´©£Y«#¿HÒ’¤1³2Òhö¨ãá][†]~Oº§£S³coà]¢Ì•@y­Æ˜ž”Ê”¹ç×<À3“d%ÐÐcÈppÜJÐáã± ÄÜÁhmļŸÍX•e¥ï,¾ðȶ*t1>'˜ HÛDög=î¸ ´Æø¹ê÷Þ1:ywyÁä|Z°ã&± ¥JÓ^J2N»à÷nBaˆéõ3ž Ñ969Öu¹xÖMÁ>ì¯EqŠ÷û0>¡ªáºeA—¸@g¬§È—êji~?´ÑmG2¥[Edpw]Géä…˰?¥r1WIäØ"$Äß±‰ƒn=›%8ñb!Â]Rz Þ j´P“‘’pÔ‹ö[mùyÖŽj›eüU8B`>“¡ Ê{)‹UœÉ<’¿òÈ«ÇӮ˯]cÅuôµ³wžžåZð)³ |Ó‡g4hfK—‚ò Ïj r«\äå7âU wñ•…”&mPånrcfl $iq|‡LõÀt­)ã0{¦lWè{X×óA¼÷€3sâKn‡üήùñTnš)„ç ßáæä ,‘‹koñÊ d‚Z¬“ûˆ(íQE‚çN–1†A‘³÷(Ýi>·‘Ë#(°×藈ЌŠk‘ÙÑ8 Š&…¢u¤œ‡ÈN=ž‡™Ì(“¤/Ó'.…‡ÒoŸ›6ïK?˜‹RïÞá°îg“ò#ë3O%[€G¥y"+×ë_®¶ôuþý²ÚÞËWìei”/ßJ9Šºnéûk¡ïVþh(JÂiˉà3¹ÍÞ]ý«†¯ñ*žµðŒ µPZµŸ‚ȇ(’NÀ«`r轡4('ð¹7™Ø‚³BÛ¹¤¨…|•7`¾@§¯h‰ÔóøÀæQÂ}î†>oÉÉâ,»ÿ¼Mÿœ¶Ý,9 8‰Wy—Î#&Ž™—]2g#ÇäP9SIRvNÙÙÀ6‹zýnÄÇ0iªÅK‘ ?,Cb—òå³ÔY¯„Xä«Þ¿ð— iñ=¶üDý|_QÎ^ðËO%¼>cyÑêoßeéÅØÛÇ"ýY‚+N_“ЗC©3’¼èùm6·¸ú…úH*“îÆˆ`r$pÜ–‰î°ÒÔvÂÐ{2ÑäEÅžeøï†¾ í,Ëèžš®U òï 0­œ÷íi” ¡ÀÏPÔ ‡²B©Ãˆ„aümÚÿ‡‚cö 8Ú1p xD:sè$i@E3†eÚ€ïÞA‡ì«t'¿ Š4¤ Sߣ;/šô1©‡Â=~2<‹À£Rv/µHÿ[“ÒGPùÀ$$®|+ ÛÇÊÞ>ç†àíÎmqì¬ÀæX”Ï^Ç„Û `OR¼À˜_Ácv?sMTázyFóoI÷“Ç~¡’ÿwåͼHÞ²ysO“tTÜâÕ3É} @< ÙQð,éÐ^}‚Ý.þxsñ÷ $i2Ñá{t0媀(g¾¹øá§d²€Fز²¥›Æ\Ò&{ú´äŠ>(yPh2O2Úsº¦+Š#ù³æ;;Å_(R²èˆvs·n®F®:²”½8¦sñÎÿpi endstream endobj 32 0 obj << /Length 1755 /Filter /FlateDecode >> stream xÚíËŽÛ6ðž¯0Cåt¥ˆÔÓA[ ’6AP…’´m­×‰-¹–¼ý÷r†Ã—M{7Y'È!I$g8œ÷ õtüàñór0ŠF9ÏãóãiTÆ|PÄyÄøh0ž ^/ÖÃçA»î‡aš‚j9dÁÕA¯1ë$¤úž™…ù¦‚ÙÖ›!/ƒž`EŒÃV'x@-÷t[X¯Åk©¶Î$d"cAèr}ÛÁx#^Ñ0,³4øù\Œ{¹ˆ@©•¬sÃ$óvürBÆ¢Q–I©Õá [ÁëÐ?/r[abÈ3±¾¹ÜùÓ0ÌxbˆiÐôõ&Îb¯Q òÛŠ3y˜mœÐ9ŒØD;=$ º^±ÚË¥0J+ÖS:÷ü†ÍK8m…Q„*ßÁÊ´'ÜK°!!€ŽÁT PìÚ6ò¨ª™ÉÁ‚dêäŽ9ªa†&…À]›R3G©ž‡rø)®Ó䌮aØz/QŸ’úç‹ -íP’¶¸æñ b¤FmHr`é¿A¥ôƒ†w¡®ýàZÙ7ý‹Çr"³7$jOd76ÜËÄ,ƧäÇ:æµx¸xÞJñ© Ì@ù Ä& þB2ˆñ½s;B×·[¹ú äqT–Œ¦PúO‚²ˆsæ5ƒå¿Xq¦“)¨—(­1Ò×ç=óþ¿š:³PÌR¯v¡S{Ÿ½•ûNº“ž¡Nråiæê„‘2Þ¿ee"îÇÁN5àYÄÒÜÍ’ËTågð¡úMÌÀ\Mmr³°ÜFÔr\³Lvð‚ºûجŒŸ9sz8‚m‡ß’ßuG‚äÚØÀ €}dXø¥IÎTt”z¬Ž’†«Ã.LE”½E#'+Õ4€4+x}¨ ÍÌTT2=DXí”ræ7×^5ÇQʸРòåoödJ²(+RµiÚ×+)“è‰ žã ’¡“ —íŠp( —•ù~†Ø6j_tH»–“)”pÔÁ:ƒ÷MÊ»JŠw›»Z)=Öγޚ¦Öab™­0U©ÎïîÀ‡‰é“wš("‰Fi)$¿=ûø ‚ʃÆùÖ–×ÛZ™¦­Õw1 Z˜(/<>KÝ\uÛF-.il…1'W )V§–KQ(7‡K‹»Z“Ñ7ȵ£+ú~ ´Ýë˜,¨žû뾸:r;7¼—*ÑÌ”b4¶¢#Ó“´T‰i•=ffIe !­6¦ÏˆÎÒú{ÕðïtÜÄB™JÐ+=5¹ÒÚI¥è‘Wæ¢&U˜²¨…ÐÑás×â+=ÕT•Ï-ÐÊk*}CY_ c” ÂîIà'âyLíøïH´©î`åÅDi[qZÜDÖxN4÷}sZš‹î”Hì&çÆä–oꎖ&Vÿ :ƒnÏ¡ï·ò§³w€—Jó ›•µÕñ|ǧeØ£Ï{qºöÎOàã'KM§ ‡£iú^ž<ß_hWXìdÓýM'gú e€Ýß.E”ù LXTÒÅ;´ÏÆþÊK# endstream endobj 35 0 obj << /Length 1431 /Filter /FlateDecode >> stream xÚí[ËŽÛ6Ýç+¼ô Â÷£ËÍ¢ëÙµE‘f2M‹ék2iP _ʺ´9בJ-˜aÙºâãèòòœKú›ë/_y·‰}tÊm®o7Ò‰^‡¸ñÂõRÅÍõÍæûí¯WrûG*oSù;•©¼Nå.•áÞC*ÿ^uVéí›tù'™¿§[÷dž«yØÝÛ™„Þ?ÝQ ©Áûñç×ôðÍøuèÂ_TÀêgzøÃÞzìÆ×W‘QnÅÕ×ßmT›P›NÊ>Z»ÂóÓw‡J (]÷Þ™M§t¥<ŒèáP›Ñü~C6ƒí?»ßF»<ŒÛT~¢^¥:¤õòѽ›]÷öïî—T~V¤ß©ãé«L ã·ŸÒ×OôÐx=þ^ õsböT$c|µ_… JîÉ»ÑÀÂÊ`-ô'GrQl¯‹W~ ¬:޽? žù‚ÇåLûAðàÆDÒå Qïd([dSðŠŸ'ë·ˆÄ+> stream xÚÝYYÛ6~ϯð[et¥ˆ¢Î)Ц ²AÐ--Ð…Öö®øØZöfýïKÎ!ŽeÙÑ^Y´„Eq8œùæ¤üóàÙó×YÚ+‚"ÒÞࢧ’$PiÞËÂ4PQÑŒzzq_yQßWaœyÊ<0ÇÓÈÍÐf„fŒÍðÍP°æ'‘†×-3É÷õHrÁ9\,I†$ÌTÕÜàuBÓ‚ä;Ó¾…Ebæ»òä8‰ò.jV Þöž¯TP$‰ÃJA!e4ÒŽç«´3V±Ð8ºVMuûÎoŽULlØ0 'M*4±Ê:cÅ"6¹tÇJ5ü:?ûFX¥«„2aýŒpbÌŠ¬ò[c•¶k|+%üJ=V¯ÒV9mŒ EþŸ4°*îäWêVX¥墱³x¬2"ЂQ!0‹äöîXI³};øUÞ‚ò°âNZ\ ¬4`ežƒ8V=?ÒA¡°_ ÕÆŒ¹çÄa…Ì—ÈÀ>žšÇu½ª¼’æS3,ÙÂŒŠd‘ã—ß3AåQ©„D >†IH †Ä|F‡Ì0˪ïçE˜1åFypjÌçI'9#]?Ñ–¡ÐæšÞ÷Fk•dÎö19ˆ®Ã ç­å"áp±ÐûN NÒŹ•H Jœ6œÊñn‰¨_oÄÌ9%ø/hI¦˜®S2Ç”pÝvÀJ†T*t*?Ùt„äñJ´ mÀX5í ±*x‡"™jq~¾—[°zÙ‡µm^‹è™ˆ¨CX53Ô]G#¡VÃûV6ñ\‰øÓï‚) Ã.Îôÿ+u뺑g. mgÆo8eªA¼êÕ6uäir›‚¶üj ² Ql†{Zƒ}-L²9Xý4WÊ{áðPÎ}P.…ÏŒhy¼›Œî¨C|(v“ß¾ýg§ºÈ(’a÷„z¢ÌØ}í¢ sCéé¤=ÛýíŠá‹cG4›ænLÛw©xâ,È#RýtOõºp²¼Þ­ô•(&kJ–•Ë¡¨‰uÞý`ÆK6{¿§A{~¢“.Åm‘tadòóß\øE)> ŽÚâ·"1‡4dËÁÅŒýƒz°ÒaQâÏŒ„6jë #Õ‡1–¾|╵‘¥Ú òK‡†_‹–²m”7õKqÛºKÙZ˜xÜhÕ†{± Í©Zž;^)Ï-Ä”T˜ÖV©w€k¯Õ¬Ø lÙ|ãÏÆáþÜ#ænö>ãǹþ㇓®ÿ4úûÕ°÷VVºæZ|šíæÅ?ÝZ®SËê;tÓ¨H½rDØAÙ™ÞƒÚ# ˜A›nšh¢¶nëл ÚÁ¬|v[©ÚY"(ö˜—`yHœ3o4Æ7Ë•XZ¸ö â‚pèøÙŠ]C®šsŽË9 ŽÝ(P˜rÜb"ujû˜$ÅX­Æ8ùB­,@?•$ 1>¬¹½„ ÉbI®ËåN6žãRRsn õ±˜oȶ jél7Ú6Ç·ÒT~,„uÿg¸CI¡¼aç1ýs“Ní?7Eç9*žØ¥g¯ÏþêOo endstream endobj 41 0 obj << /Length 1707 /Filter /FlateDecode >> stream xÚ­XKoã6¾çWÙä6bD½,M] ‹¶@{ØÛÃvȲüèZ–kɉw‹þ÷r8CŠ’¨Ä ö ›áð›'9|s{qý6™¤,ýxr»œp?d‰çOf^̸ŸNn“ÎfÊF|ÅAüdЂ‘jWOÝ äT…Í¿<ŠÞnÝPά œªj+~Ž-œÉv¢³hy­a+ìV{ÚzSÂÖ[½ŸF1t¯7ª–öåó©EÎß0’+N⻟ú3‡–.XÏ Pox—s–Fj@C ‚΢›£$‚!L””5Îf‡–rE['N’¾“Õâá¬Ü2‰€‡, Ã.Œ_„˜a”:ŸIuÄÎÕÍ]Õ@#A†´ kpJéJ´SÏ©8гˆV5ƀȄ&kŠ–‰ Ý•ô…ÅFŽ¢äæÙN²øl(<—#8šáPb€¸nGÞåÍ3P”Ø­8à {ä!3ñsg ~`±áõÛYlxvš°Pð÷s!M!$ Xwâ[‘ý2ik["'3DbÎ<(FJ-",ÏÉö„ôPJN¤€R†MQ#rR‘Ù‚ˆ 2w˜ð[?r~–<´wÜ« ¼"µE) £Y×O¨ ì"sj*kC[n|O›×ÙtQДrxцÐÛ¬ÖäLAè9!m²¥‘ôIžWR tt@º*€YNœ÷*Jæ[ò²¾‚)ßY‚cJn° n¦„C-Ë϶øÔRÍBƒ@€ 5V8Õ¨¸í’äÞIó€fAž •Hm)Údl媬)h•1S*Êv’¬Ïœ?§I¨Ð`(b2eAü$b4ŸEì¥ô³RDSœtTt—• 9t" e…s¸eVV<¬UŽW”&¡íµá¤_£D˜†Áæ¾8>ø×ˆ6Ÿy©¯‰jSel}DaTøiÈ|¤mÉ0 -&9i·'M?,àŸÒ—ó ÿÖ´iC!ÿ½ø®é+ÈòL|dÃOô¿§y÷ÑU¤’ñ诃±ß)Û•Äã 2lO½Š÷’>E«p5ÆÞú@–s?#±—*dè¿!~l°Ÿ$ÿA4Ývå‘V惹0cäÙ)1Íñ b³€wQôtnià|=…¼ÁeP½7tt$ì7âóÆÕ†`´?ˆñc1ÐüCÊm:¢€Z~£-s•‘ ¬þ†ÔVœ¹GT©ÚµFv‚1—@5s¦N š”­é\ðR‹ œë,åü0à^…»øN)3CÁrThyå·ø÷8 ²ˆ” Mx§'½«wz\a¶›žºhèl‡ò0KÊZÒ¸2ê‚$9½Ìÿqèj€|zØ :ß¶•ðùKpw†n6:õå=uT?µœ;¨ÿÑÂj0ûÝó%n9¼ ÌíŒl@ÏÏ*ÚÈù~¾Òƒ1hÏ u„4´×aÀ»©ü ô®Iif¹kÊ(/4‹†ïÚüø?›döûˆ-˜k¢RiB;­äœ.[ãÀ]‘4ë‘< Ò”ñ$éFÍ×IH#܉±Q‚¾OÝLùÈ=âº7Z/> stream xÚíXmÛ6 þÞ_´ûà×òk\ì ´]‡µÀ6 Í€mQø_’5±Ó8¹[÷ë'’l:ç{Ù†ný°²d‰¢HJ$õèÙôÞ£ï³t”ûy¦£éùÈıŸ…Ù( Rß„ùh:½õžŸ¯°eòøäýôÕ(ÃÈÏЬlÿÖ–õÞ–-ï‚$°Õï¶'ã$Œ¼S©¤Çxå·´Í µÎ[Î{†)nd°€Ô7dZ@Ü-(kÈzýlZÔ2 Gccüh½œœ©ó|êŸÜÑk.èØ—qœµÞg¡WŸK—:ÈôÛ´j²Î¡›;0cS,ª•ÊÆsQ~~]¦¤ÿSx¯¯uœu×úûêr¾RI÷ƒ )N]Í6Зìa5\w«æî×èn”ýÎT¶'~ÒgííR×w¸õ0É¥Ú…åͨÄ]± µi¸ ƒ•Uïfs½†lÛúQ]ƶ ϤIä'Iö½꼊錄;Úæç7Aîú™mÜZƒò[v\ý?°îãïXÇÀúûÀÙç7(˜ó+-°ê®Zð¬£òFyhßùŽh1g 7(.¹#§0íÞ5Û(^+ä|4áùnZ²6ªÔGQåagPaTŸùâ8à D€¿˜ïtêÑPºêéK½\÷PÐÜþXð/¾ÈÅzÀÖ?ß¼Û_ÅA‚÷€ JŒ÷F*äpëÁ?Vø?y#Hò‘‰ý(NÃÞ‰Cñ”[ š0öÞlá·O‰¨È¢®8TÛÎX¢fûÃιbWŒ¨&{‡° 8L½zkãI[KÐÝžK¹ƒ¯¢bá9ØcX 1 ÜÔØËþ¾"Ag5§•ãÍ +î 9µnŒ`sv‡`°À;KSTsa 'þÀr pFö¬‡u×8 ¼)?DV:.Å®°mO'$w¨îy…Fù5€ƒò\xñÓ† ¼ Lìðõ\úa j2º8IR÷²î üI`–çgéè ‰Ç ±&ÍýÈæJ ðü<Â-%£¡{/¦÷þž‹t endstream endobj 48 0 obj << /Length 1676 /Filter /FlateDecode >> stream xÚÅXK9¾ó+rìHÓ~t·{µZí Ä8ö…¤g&"QÀòë·^îØi' °£=$~•ËU寪\ýâæÙóW~Ôª¶6õèæv¤S¾4£¦¬•6íèf>z[ìǺ¸‡ßvs€ÿ»{jö㉵®_ëpX«ô×ð[¬ð~ߦ{émÖLó€¬p<ž˜¦˜uÐ#Ç-öÔxâ\[\3éi§H¼ëk·Ã®¬‘° ÷ΰ'LH®ÙtÍpJÄ›#w¥v(%<~óרM´VmU±¾S<¡nŠ)6¾X¢ü;Q¦7·Ü~_ttò†D„ß,5uñ…L²»Áw*ލ1PõÓ½ƒ¬:öÈà¶`×$ŸˆµO^ldM3õ”]•ú抗â¹' Cd·3y¬Ò„ Z0â¡krÍøò2¾ÝÑ=f›î™®~Æó°³ýç¨j ªöz’ÝÄÓ_Gqb¼ü‚Ûa{Ôç82Û82Û42c_”‡{"87uìíÐ¥HÑ*× ìÿO*c ”4DЍû¡‡˜H‡I#(s³øâ"u—¢iØù®¬J^™%#Ç LhNC’hÁü ußµÇn|â±7ôüœ©n"ÀÝ¢þëAÅm‡¯`»­C”[‰?‰q•˜hhø@u ÈF’¥5xòêAâ nx½G¾¢§ã¤GØPl ¦Sl*×"¾œý(2†4œ….Êãe廚iƒ}†×àè\7‡£QB¬òŽ­÷6㙼§_&Ì ­Bc¬juÊÇü\"fwÂÏþ ?q¯£°gÜÈhe¹ÑB"Ÿ>ãJ´B¡ú½øˆÖÐÓR'o¢¯² ÌèÑ{wH5†[Û×Kò¢Ï=ð`;‡yDxæõ1é4Ûì…WÚ© ¿,ÄMAã<ÅqL4ȼ°iõ2ð°ó-•<-B!e”q…)œ|:ÈÕ;us¶Þé?+Ôü5¤HÖð;*ލ©ÆBH%A“ûã!id@¸;È…?„· N×ÁˆØÝ¬;îœ~…¹â‘†‹Æþnº’úQ7L?çD«T ëÄfƒa©³ˆêLÊ¥ƒúçêŒÃCFë °­’óÎèB@AÉ䵊½ºÖ†s–’G·Üî#æý3v!1 Á ý­îƒž²ª×Œ¤ŸÇU¢gûcY°Œî„×å1¡îBQ 椴¸É}Jšu¡ô$§h#ÕcRbæq…d}Io åRŽ.(hËßñäNù[XœïT§î‰RÓ#*S-ï|-u£†Hέ?_yh©75Dÿ Dc#mˆÏÕqú³íÅü—Í=ÔxnÚï¦È4Sš\ÂL³¡Ë%Å:É¢*,eV_ÈÌ—mJÙ\àâ“Q×eÁœÿÆô“a¬°öhŒ¹§†˜9y~ýĪ'€Xý“kO7¬fD4¯½Vy/‘‰ìÙË›gÿuùæ“ endstream endobj 52 0 obj << /Length 2110 /Filter /FlateDecode >> stream xÚÕkÛÆñ»…"…Z¶I1ì Èû H‚€§—K¢Jžâ³‹ü÷Ìk—K‰:ßùÒý@rÉ™÷Ο]=ùây9©T•›|rµšhãT™šI‘æJ›jrµ˜ü˜¼žêd³‡Û|9Ù¬Ln`ü.z­’†‡º…{·„Ûo]Ç ÂâÔq7|9¶³LúSªR_vuØ =¸^óšÍŠp²ÙÏàþgÛ†§q¼Eš;âhj "++\OM™¼ç1`Àä»§ÓŸ¯¾¤“™ÖªÊ2<–ÓÚ¤iøÒâ›aàë ГÅàüF÷Í £]Og&÷Às„Eäz¿FFü™¥£þJv¨ro{Ak¼m\QMgιä¥:ˆظÂÁëhLôµc’]¬e’u°n[oñ¨§ÉŠ-ð]tdD”ל}`åƒ./]"K=¯¤ókmïWæaÅô˜4)ŸYiy~ÞàBG¸v{r·L$ÎYâys…€\Qö–—N8@/Þ Ç"WÈÚÓé,Ó.y‡F"'e“Òœ,;B­^,ÞŠ¤îä+>ªd…SdÈ£ØL°!EŸþ-óKŠ00v ¨Ï¼ß{= ½º½dät›w &qi™ˆ`{4¯K £Ûºw6¶B/Ñ¡ÕmÇ^HA`:‰øùœ–Œ)6¦”AÜ}ñ¼È£Td´UÖà™xý§xl+zÞ qEëñ\-óðº<ãEKÄÉ®2ªÔÚ/€jG—AÎw4fÍ,æBk‡ªk²>›Äz½÷A î}‹í(ʈ ïx'rjš ¨W°ŠdܯÀ©ŒMþÂs±é3ÛYS®Y ÈLf#ÚX Ì^Þ·Œš¡]áÊøu'³7ÑB·<µ>QeJÆB°w‚Åéj@ô­@^6ÔH0о†ù_‚KÇ¢Òô?Hâ®&Ùå¢ Õ‰"zèq5…l¥%ä^ <í/I׃é¹Lo£iòujG„º‚ë\ÿ‚ë#¤~4æ_]r£‡DO¬ˆ˜%ð¡3•瘱ªÈ43¼êÔ‰‘§•§“gÆAP#9<ªª‹Ï%˜ ëÞ ùœI~æw"‹/{¤Bž¥<+ÖZ<½kñ¬‡ÓýÐôCÛ]?Ì­Hû÷J,õ¸ÿ=* ;öK†:/ì¢a·Áéy„á]·»ÃÕ½ƒE`?:iœêEÂ?0 #韙§<>ý˜š9½<‡ I|×ë“C*ç|@›•#þ(¾è¼p0{´a0#„¸‡ŒÇqr{o<;yûqÆšílMÚm>Ñœ±0¿=°Î;×Á˜ŸÞ³¬ ‚ÝaðÓoþdwVÑŽ¹ƒãò'È€»{oŸ–ZÆTð°B »d˜“”gÇÜ_IOÇ@joý±ù¸Ó,Κk𘭃¥nùKßd;=hãìŠl³cr>ko:žœCî‡óÿ¢gûU4uM3B¤[² d㇖:ë¨OÓ[O€ú5ÇÙˆñâ®ïÁñyé› »¾£åOÖmßC•¼ m6éoÕô×(N© ó–¿PˆH…îÎáj«Úw~n›/«&Ú)ërƒæ­‚§;»ÖÆ%¯‡Ãö=µ©ÀV÷LêxÁàÅÒû˜O½ûs¿²F«2-™ì÷¡gSæÁL5îÆeÆMš%ßR;1gRO‘’]}WGðkžŠ«oÞt rÙ¡N™!o!:øNÑ{þ8¨N@”´‘&™©*ϹMÓÐ@Äϯš.4ý®C²AïôvF¨g´ýói¬Bæ iw/3žÊŽßknÏ‘EÿX¢ƒƒ¼ôŽ@/¤± ¤<ÃRZáp½aDqI€G#ÃY>ËUUa•—+ëµÑJÙ2¹Â–V*›š‰SZ[_ûŒÖ-§\ecZ{ZJ÷µ¥¯s2V•…ó0·c$òÊE44ª¿„ ΤâZ«€Ý¹ÄøýÏÃsNRe5¤ÅÈ7ÐP‹™OÓ‘>Œ¬qb@…˜*"2#yKoó jŠMÆjšiåªì²L¹ÊK;‰€z¹« »¸šU¹ŽÃ8ËUZ–þ 5"©Ë«‰ϱƒ“ü•å(?N%½1ÉÐÐ>À’5C–ÆL]¨ÂUg¦0 ¤*÷0q4+´2i·×üOã)^6! Tbç «väáÐŽ¥ŠJÙdt c*ŠÉ:šƒü°¢Z½²Ã†_;0~±ìÂ.'1ÿ‚}W¯[JÌë2ü毚íà/†¯Z׌µ¢N»1-k88rAæÌµÝŠè:=Q¸a…»AÞ&j¥ólýfi ês€{@’°Ë„§Ý¹/Í –Á? ¤F‰ÞFh¥†ª#M¡Í¹žðgK“/õ˜ý€(¼4”Z½ßf£ÆÃÿ6±ñ6#Ƴ°½ÿã­GxrÔá©> stream xÚYëÛ¸ÿ¾…±÷¡òu͈¢¨GÑè¡ ’~8´Åýp@ñÊY]liO²³É÷¿w^”(™N|‡…-ŠÎã7Ù¡W¯bøÓ+dÊæåÊFÅ:]m7?ߨ¼ÈSKÞ–´ì“‰¯zõ÷îæßðç–6ŽçÆcúÍýÍ‹—ŪTe–d«ûÝ*‰•ÅÉÊfZÅ%L=¬¾‹^®uÔÀçÝ©‡ïz½1ÆDúOëMššè_0µ‡OwÄù$êv¼ŽsÒ¿“ Ó›jøjñkd ÆGøô'øÚâ,í‡û®6y®ŠÕ&Õ`¸a¥žqu$yñRkߎRee†í;¡ˆW™*sS Eªr›**--S5LåÃa”ÑùÊ£ù>¶q@œQà'íã9 ÚŒëÀCv‰e–¾aY'9A1 IJÃÇ…¹Q¥-Ï î©IÜ:±aŽà ^VÅH}8ç¦UÚl»U<Š“ªf®¹Žî2lª2ã¡Ø€[@­¿ä–\Y«}·T˜*›:¾P­“éQ"ùi/  )1rGȧÐKŒV¶° “ij«Ø˜²ˆªö!ä7P;N&Œ ¢•†QH™pwŽB©à{$]F¢NQ»n½ÍðTmÑ®Öoè˜ØÙ[yþõÑwOMm«VlÞó`×õ<ðàFf¯jtÿ€ ¸=”<9‚k‘©Ä8XÅÝÛõƦÑOµKÈç"I„¤B–‘cAã3_°å‚lb4tô€lÙ8:jˆH=cH|bŽÍŽŸU?#nKG¸G‘:UešÎõ &'Àö(ºø*VC„/ÏkR€ÆÈŽÔÿÑw’#ÀYT…Ö'¦øâÙSÆqtÿ8‰<¹ôÒoßC h%íiÚ­wH@Å\žÍk®R*=dpMþA•À7äã³PÝȦ(çh96MÉ8Ô¨W˜Ó“a|V°\½gˆ$ê“1À(›Ö<Ç%m;L®¢ !ò$ ð^<òTÕËÆ ašß28yåÂk¡‡y<7ùÃÚfQ…HÐ5†³>½s„¯èåñüîyŽ7÷âžêížÈAp(Ûê$WqzuQºv,7$ŽB–£íg̃wnfÊŽh A›¦T<æa|ÁÁ–óÌrÔj&Q˜ gðíŒ&‚´ˆ9iç%Ÿ¸šç^qká‚eF&öÑœ$2s™l¥Z?umêDçªÔöŠœ>o8v!ŸèÌú• übuFµäÌNoÓ³‹p.ï\Å’Båyr^Å–~30ÁLj…ØO©ŸÉü>SŸÛ'yñ‹-ò¦¢Å³ò¯ŸÉåAä-¶©ö¼§˜cZè±àÂÉ·Iýw]¤,Sb¯eùóÔ83a´àÐ8ŸGå¨î¼{­ç ±o)¼.‚)ÉÉcu›HCq(„Sp¦Ôrr'©¾Zì0‰éö®GO>  a˜`Ýæ'!ðWDÕD_ñã~‰¯¯\š’O#õ¢åeKÒëÔ+8õ$ð"Õ[ÑxÙ£¬$•8¸²$µIds+ÚÔ®[]¦ê°Mž°™\z $ãOí®5²qËdÑÌ_úHjŒ€4£â3Pѽ€ñ,2úi_w\ÂÜÆ~†9d‡B"édz/ʫπ.÷ü<‹N ?ô“¸?Ãp3éÛx;érE+[÷¦#ÍC=á³X¼ƒO∈€F¾ÙF,•Û‰ê­gJ#¸·3e=×¹ýIØîDŒcÐ Bþxñdðö½¼„í½O6Òèd*\îuœÌÖ{!è¼0WýZ}¿–¹ig ۶X>_OîAd¾÷ü0ÛàV4­èèÇ3'þ‘ł󥀨Ñéx\]`phèÕ‹tÑ}b'œ~;pÕy-ßWÎjŸíâŒ$#³…‡x¤‹"3KF‰kv,4;sv¿Úh¸¦ë4“Ü+Qým7fûŒ]ä ßr \èÚñ~cñ§èù¡ëiÄ矼ݳ=µÜ—zž¥Êž62ç·YvΫ {Çäãt „®‘ftjžªø1P¥$:æ°mõCµL£PâóÌFÛË©êîU,³Ð˜¿ñƒ^Š3·©wÊÑÙ’@šRû„óö)5å¬}"bIó¸6v§0n©Úüâú¦ŽÉkÊ܇ÙÍUÄR;qáÀŠµÊŠÅ-uy™*rô =ý( ‚¯:ÈK×K ª{&¦Æ¡(–›ZjPðxýâ4ÇéñÞpp+8.LâkËï…› _ô…*F¨ãºP¾ø.,ýÎt,¸“|ü:4¤óù/ »±Ì0Ãëf,¬SÇU‡:§"QV›é7;¾uòä8>ºTeéôÃõ_ÊÎE@fÈôúÁöÌ4\Wut+›Ü keù׈}ç^èÿ"™ûªÜ¨¸Èæ¥øVOãqyó;%é±<+Ÿ„Ù“7~PÂ1½•ÊèʱÿT ž·ŸîÊèRc%ÕäM…nl\63Ì‚ éàñý0µWÿ‘éÁksßzý3Vñ÷LúMм+š"y–©ãÔ=ùÌ\7yœ·¾—ï—›ÎPLLHø-û³Xÿ8‹ÌÂ(›,.s¡R°“Ý—ÖîBÝfˆø»×J&ýóKôÁh»Ôœ_bþø[]×å^àµ<‚ŠÍ ZÎ_æé43*M Q†´j¬ür®é:7ÿ¸¿ù?¬8P¼ endstream endobj 49 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figs/plot-sparsefig.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 56 0 R /BBox [0 0 432 169] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 57 0 R>> /ExtGState << >>/ColorSpace << /sRGB 58 0 R >>>> /Length 53894 /Filter /FlateDecode >> stream xœ|ÝAŽìÊ’nç~âŽ`+IFî]u¨'u4€©¡ÆžÞüeÍ̉½×²N¡p>Qù“ŒðuÏEæöŸÿý?Ûþßÿüÿú?þó?þóž~^ÿ¹Ž?¯×Ž×þçÚÿsÍ?sÿÏÿ÷ÿçÿúÏÿ¯ÿåþŸÿÛÿúŸÿö?ÿëçÏÏÏÏžÿóþ·ÿþ_ïñçýúÏöÞÿû¶ß|ÿßÿãÿç¿~/½ ·±‰?^o³ßÿÕ®ùk¿ÿß‹ýþÃÓmN³ãÏy˜½þìzÍןùcöþóÖkž¶ËÍ7»>7Pl4›?—^sþ9ô>LßìúùsÚ}¸6ßì׆^s÷Í~ÞM¯yüv®—ov½ÿüØ}ø5Ýì:ÿzÍóÏ´ûp]ÍfãÏn÷á×|³ùçm×?¾Ù¯]vͱýyÙ}»oök—݇qøf¿6õš¯?§Ý‡ñöÍ~mØ}g³ÙõgÓk^ÍfãÏK¯ùûñ«÷aúfóçÏa÷á×t³¹ý9õšûŸÝîïéfóøó¶û0_¾Ù¯]zÍ·o6Ï??vÍíuýyÛ ÛküÙì.}pؤÛkþyÙ¦Ûû÷e²Q?xÙªÛ{ûsøeß'ÛõóOO¿ìñg·e?8mÚíýúóÖmßïf¾_~ÙóÏKïÊûêæû}±ô®üž>šùæ÷(ê|û¶ýÙ:Ô§vßö?/»eûvøsûÁÓ¶Ý·×÷Ÿ*NÛvß~Ï~ÙóÏnÛ~pضûöû–Ù¶û6ºù~~ÙÙÌ·ÿ|NªŽ§Þ•}kæûÅ©weß›ùöß·L/û{¸Ðçvÿ=Aèitÿ=&èsûA=ˆ]·ýÅ©Û^Í1~¿šsüõPºæ$¿ÿ%~tÛÑœå÷Ñæ?¨'Ó}4Çù}4çùê~ÿ=Qø|£9ÒPç;Žß·õ¹=Žß£ŸÝ²ãõãÏí‡^öõ{ú³m?ñ¸Ù¶ß²´m×o}Ú¶ÇëõçÇ/û{´m×»™ï§Ý²ãuvóý¾e~Ù«›ï÷ è—ý}Ëü®Ìf¾ßÆaw%û|û~»üeñ^‹}ŸK²ìs´ínM±ï;¯´Ø÷F‹-Þg±ïëŒ}Ž/³˜o}Ž6šÍ¢ÏÑ¢ÏÅt³ìs´Í7Ë>GÛ}³ìs±a÷!û-ú\L7Ë>›v²ÏÑ¢ÏÅ|³ès²ìs±Ë®™}޶ûfÙçh‡o–}Ž}ŽööͲÏÑÎf³ès1ß,ú-ú\L7Ë>ÓͲÏÑ¢ÏÅt³ìs´—o–}ŽööͲÏɪÏ£Ï ‡MZ}Ž˜}nxÙªÕçŒÑ熧_6úÜpÚ´ÕçŒïf¾ìsÆèsÆ«›/úœqtóEŸê|Õç†úÔVŸ3þÜVŸ3FŸNÛ¶úœ1úÜpضÕ猣›/úœq6óeŸžzW²Ï §Þ•ìsÆèsÄìsÆ·ŸF«Ï õglÎóÕçŒïf¾Ñé«Ï «Ï õ¹­>GÌ>7zÙìsÆèsÃ˶­>gŒ>7'\}þùêùËê½F‹çò_[}¶ek¢Å; V¯4Z¼Ñ`õBƒÕûŒ¯3Xõ9X½Ìh¾Yõ9Øh6«>«>GÓÍVŸƒm¾Ùês°Ý7[}Ž6ì>¬>«>GÓÍVŸ£M»«ÏÁªÏÑ|³êómõ9Úe×\}¶ûf«ÏÁßlõ9Xõ9ØÛ7[}v6›UŸ£ùfÕç`ÕçhºÙês4Ýlõ9Xõ9šn¶úìå›­>{ûf«ÏÿµGŸVŸ3›ôÑ瀫Ï/[õóO¿lõ9ãé—­>gœ6í£Ï ßÍ|«Ï «Ï ¯n¾êsÂÑÍW}Ψó=úœQŸÚGŸþÜ>úœ°úœqÚ¶>'¬>g¶í£Ï G7_õ9álæ[}Îxê]Y}Î8õ®¬>'¬>\}NøöÓè£Ïõ<úèsÆ©Û^Í1þÑçŒz(}ô9á–}ΨgùGŸ3êÉôÑç„ÍyþÑç„ïf¾Ñé}þ/>úœQŸÛGŸ®>gzÙÕç„Õ猗mûèsÂêsÆÓ¶}ô9ã´[öèsÂêsÆf¾êsÂêsFŸoõù¿˜}þóý`ýËâ½û>—dÙçhÛÝšbßw-^i±ï/4Z¼Ïbß×-ú-^f1ß,úm4›EŸ£EŸ‹éfÙçh›o–}޶ûfÙçbÃîCö9Zô¹˜n–}.6í>dŸ£EŸ‹ùfÑçdÙçb—]3ûm÷ͲÏÑß,û-úíí›eŸ£ÍfÑçb¾Yô9Zô¹˜n–}.¦›eŸ£EŸ‹éfÙçh/ß,ûíí›eŸ“UŸ3FŸ›´ú1ûÜð²U«Ï£Ï O¿lô¹á´i«ÏßÍ|ÙçŒÑçŒW7_ô9ãèæ‹>7ÔùªÏ õ©­>g<ü¹­>gŒ>7œ¶mõ9cô¹á°m«ÏG7_ô9ãlæË>7<õ®dŸN½+ÙçŒÑçˆÙçŒo?VŸêy´úÜpê¶WsŒ¯>7ÔCiõ9ãv÷¹¡žå«Ï õdZ}ÎØœç«ÏßÍ|£9ÒWŸVŸês[}Ž˜}n8ô²ÙçŒÑ熗m[}Î}nxÚ¶Õç†ÓnYõ9cô¹a3_ô9cô¹¡Ï÷Ž>'Œ>ÿüßì~¯Í>Ï%Zô9ÛömM³Ï;Ív¿ÒfŸ7ší~¡Ùî÷Ùìó:³Ý}Îv¿Ìf¾ÙÝçl£Ùìîs¶»ÏÍt³ès¶Í7‹>gÛ}³ès³a÷!úœíîs3Ý,úÜlÚ}ˆ>g»ûÜÌ7»û-úÜì²kFŸ³í¾Yô9Ûá›EŸ³Ý}ÎööÍ¢ÏÙÎf³»ÏÍ|³»ÏÙî>7ÓÍ¢ÏÍt³ès¶»ÏÍt³ès¶—o}ÎööÍ¢ÏѲÏï>W6iö9cô¹âe«fŸ Þ}®xúeï>Wœ6mö¹à»™/ú\ðîsÁ«›ïîsÁÑÍw÷¹¢Î—}®¨Omö¹àáÏmö¹àÝçŠÓ¶Í>¼û\qضÙç‚£›ïîsÁÙÌ}®xê]‰>WœzW¢Ïï>gŒ>|ûi4û\QÏ£ÙçŠS·½šc|ö¹¢J³Ï·oŸ+êY>û\QO¦Ùç‚Íy>û\ðÝÌ7š#}ö9bö¹¢>·ÙçŒÑçŠC/}.x÷¹âeÛfŸ Þ}®xÚ¶ÙçŠÓnYö¹àÝçŠÍ|wŸ Þ}®èóEŸ#®>ÿ|$ÿeõ^£Åsù¯­>Û²5Ñâ«W-Þh°z¡Áê}F‹×¬ú¬^f4߬úl4›UŸƒUŸ£éf«ÏÁ6ßlõ9Øî›­>GvVŸƒUŸ£éf«ÏѦ݇Õç`Õçh¾Yõù¿¶úí²k®>Û}³Õç`‡oöÛb§ýÿ2¯lT´i?ßÙ¨`3¬hÃ~¾íç'#•°üŒ—=ÛOø ëÀÏxúeëÀϨÛm?uà'<}½¿lø G7_ø¿Jvá§nûûeòÖm¿1ô›íƒC·ýý>Ñï¶í÷KãG·=ëÀOøö¯·í¬?£~Ámgø›ùšsÁv6ƒê·Üv5Gƒí÷ûC¿ç>¨‡ƒíjNŸ Óçvß_þÜîû;O¬ŒúÜîû™'VÂ+C•ñôËÖŸqÚ¶û^~À£üŒC/{ÔŸpoæ;êÀOx4óuàgôùŽß·Ì/[~ÀÑÏöÑœÏ>¨Ïí>šÚõˆ¶ÏæŒ¶ÏæöA=qì³9¦íóð³íõ ¶Ïæ¤¶Ïæ¨öA=«í¿‡ Ÿo6§µ}6ǵ}6çµ6ó5'¶ãóß_¶m?xÚ-;>¿9̶ý >·Çûøó¶m÷+C•qøeߪ„g†*ãeÛï+C•ð÷-óËŽn¾ß3¡_ö÷-Ó»ò{Âðù~O»Þ•_ôù~O/¿ìï[fw%k}|ϪY|)‹}¿“ɲÖѶû“MìûÁ†ßÇbß5´¨u´¨u±o­£E­£E­‹ùfñu€6šÍ¢ÖÑâ»@L7ËZGÛ|³¬u´Ý7ËZv²ÖÑâ+@L7ËZ›v²ÖÑâÓ_Ì7‹Ï~²¬u±Ë®™µŽ¶ûfYëh‡o–µŽµ.6íçËZG‹ZöóU­3F­^öXT­3F­ž~Ù¨uCÝ®jñôõªÖ£ÖG7_Ô:bÖºáÔm³Öwÿf«Zg<ü»­jÝðÒm³Ö£Ö õ ®jݰ™¯9T­ê·\Õ:ãæßsUëŒÍé jñåÏmÕº¡>·UëŒQ놧_6jÝpÚ¶UëˆYë†C/›µÎ¸7óe­3Í|Yë†>_ÖºáÔ»2šãYÕº¡>·Uë†zD«ZgliUëŒÍ1­jÝPjUëŒÍQ­jñlæ›Íi­j±9¯U­36'¶ªuÃÓnYÕº¡>·UëŒQë†Ã/µÎµnxÙ¶UëŒQë†Í|Që†SïJÖ:cÔº¡Ï—µÎµN˜µ~}²Y|)‹}¿“ɲÖѶû“MìûÁ†ßÇbß5´¨u´¨u±o­£E­£E­‹ùfñu€6šÍ¢ÖÑâ»@L7ËZGÛ|³¬u´Ý7ËZv²ÖÑâ+@L7ËZ›v²ÖÑâÓ_Ì7‹Ï~²¬u±Ë®™µŽ¶ûfYëh‡o–µŽµ.6íçËZG‹ZöóU­3F­^öXT­3F­ž~Ù¨uCÝ®jñôõªÖ£ÖG7_Ô:bÖºáÔm³Öwÿf«Zg<ü»­jÝðÒm³Ö£Ö õ ®jݰ™¯9T­ê·\Õ:ãæßsUëŒÍé jñåÏmÕº¡>·UëŒQ놧_6jÝpÚ¶UëˆYë†C/›µÎ¸7óe­3Í|Yë†>_ÖºáÔ»2šãYÕº¡>·Uë†zD«ZgliUëŒÍ1­jÝPjUëŒÍQ­jñlæ›Íi­j±9¯U­36'¶ªuÃÓnYÕº¡>·UëŒQë†Ã/µÎµnxÙ¶UëŒQë†Í|Që†SïJÖ:cÔº¡Ï—µÎµN¸j}ÿ÷ß»×—2Z|'ÿk«ÖÁ¶üdC‹6°ú>F‹5°ªu°ªu´¨u°ªu°ªu4߬¾ÀF³YÕ:X} éf«ÖÁ6ßlÕ:Øî›­ZGvV­ƒÕWšn¶jmÚ}XµVŸþh¾Y}öÿk«ÖÑ.»æªu°Ý7[µvøf«ÖÁªÖѦý|«ÖÁªÖцý|Z'¬Zg¼ì±xÔ:aÕ:ãé—­ZgÔíµNxúzZ'¬Z'Ý|U뀫Ö§n»jp÷o¶G­þÝö¨uÆK·]µNXµÎ¨_pZglækÎZgÔo¹G­nþ=÷¨uÂætð¨u—?·ZgÔçöQë„U댧_¶jqÚ¶Z\µÎ8ô²«Ö ÷f¾Uë„G3ߪuFŸoÕ:ãÔ»2šãÙ£Öõ¹}Ô:£ÑµNØÒµNØÓµÎ¨µG­6GµG­žÍ|³9­=j°9¯=j°9±=jñ´[ö¨uF}nµNXµÎ8ü²Uë„U댗mû¨uªuÆf¾ªuÆ©weÕ:aÕ:£Ï·j°jý_ÌZ?¿à¿,¾”žßÉdYëhÛýÉ&öý`C‹ïc±ïÇZÔ:ZԺطÖÑ¢ÖÑ¢ÖÅ|³ø:@ÍfQëhñ] ¦›e­£m¾YÖ:Úî›e­‹ »Yëhñ ¦›e­‹M»Yëhñé/æ›Åg?YÖºØe×ÌZGÛ}³¬u´Ã7ËZG‹Z›öóe­£E­‹ ûùªÖ£Ö /{,ªÖ£Ö O¿lÔº¡nWµÎxúzUëŒQ댣›/j1kÝpê¶Y댻³U­3þÝVµnxé¶YëŒQë†úWµnØÌל ªÖ õ[®jqó﹪uÆætPµÎøòç¶jÝPŸÛªuƨuÃÓ/µn8mÛªuĬuá—ÍZgÜ›ù²Öf¾¬uCŸ/kÝpê]Íñ¬jÝPŸÛªuC=¢U­36‡´ªuÆæ˜Vµn¨µªuÆæ¨VµÎx6óÍæ´VµÎ؜תÖ›[Õºái·¬jÝPŸÛªuƨuÃá—ZgŒZ7¼lÛªuƨuÃf¾¨uéw%k1jÝÐçËZgŒZ'ÌZxY|)‹}¿“ɲÖѶû“MìûÁ†ßÇbß5´¨u´¨u±o­£E­£E­‹ùfñu€6šÍ¢ÖÑâ»@L7ËZGÛ|³¬u´Ý7ËZv²ÖÑâ+@L7ËZ›v²ÖÑâÓ_Ì7‹Ï~²¬u±Ë®™µŽ¶ûfYëh‡o¶ýÄ/FÜâž6÷¶Å/6œ6ø¶Å/fŒ_ l8lóm{ÝçVÆ8ö^6û¶Å±Ÿñêæ‹c?cû ›ùâØ¸ÿ4óíqìgÜšù®æ~»šOøíj>â?¨ŸñÛõö/Æíj>å?¨óÛÕ|ÎoWóAÿAýÔÚ®æ£þƒ>ßh>ì·Ñ|ÚP?º¶Ñ|ÞoãhæÍ'þ6šüm4Ÿùûqús»×}n5Ôçv?â3ÎûÜjxÙ¶û+~10ãvû O¿lû §_6ŽýŒ¯f¾WûßÍ|¿ÖÍ/Ç~Æ«›/Žý†:ßñÓ|é~PŸÛã§ùÚ=~šïÝêïñÓ|ó~P+ÇOüÆ·X>8ü²§YŽŸ«›ïòCËñ3ºùâ±ú|[ü)éwå÷„áómñ×XƒDŸÛã·:Ýö7;ô¹ýàé—=ï\5œ~Ùø›,ŒãÎUá۞ñ7Y¯ø›,†—nû >ß“ÅÐç»âo²ú|WüMÆø›,†:ßjöÏÓû—U³£ÅÁä_[Ͷå±-š¬š-Î$`u¢«ZœçÀªÙÁê4‡æ›ÕYl4›ÕI¬rhºÙjv°Í7[Ͷûf«Ùц݇Õì`u~CÓÍV³£M»«ÙÁªÙÑ|³jöm5;Úe×\Ͷûf«ÙÁßìÑ쀫ÙO›ûÑìŒÓ4;a5;ã°ÍÍNXÍÎxÙìf'¼ºùªÙ «Ù›ùªÙW³3½ìjvÀ«ù€4;aóÿhv·1>šQ?æÍNØ|Ð?š°ù¨4;àh>ìÍΨ]f'<šùFó‰ÿhvÂæ3ÿÑì„ÕìŒúÜ>š°šñ²mÍN¸e³3ž~ÙjvÆé—­f'|5ó­f'|7ó­fg¼ô®¬f'¬fgÔùÍΨÏí£Ù ›ïÝG³6ß¼f'¬f'|ûåÑì„§YÍΨ‡–G³V³3ú|«Ù§Þ•Õì„Õ쀫٠«Ù ßþÜ>š°šqúe«Ù «Ù‡n»šp5;ã¥Û®f'¬fgôùV³3ú|«Ù «Ùu¾lö×÷¿¼ú—E³‹}&dÙìhÛ},û6;Z4»Ø÷L‚':´8Љ}ÏshÑìhqšóÍâ,‡6šÍâ$‡91Ý,›móͲÙÑvß,›]lØ}ÈfG‹ó›˜n–Í.6í>d³£E³‹ùfÑìdÙìb—]3›m÷ͲÙÑ߬š1›Ý𴹫٠§ ^ÍÎÍn8lójvÆhvÃËf¯fg¼ºù¢Ù£Ù ›ù¢Ù³Ù ‡^6›ñj>à«Ù›øjvÆ·1V³êÇ|5;cóA_ÍÎØ|ÔW³#ŽæÃ¾šÝP?ºªÙf¾Ñ|âW³36ŸùÕìŒÑì†úÜV³3F³^¶m5;ãv7»áé—f7œ~ÙhvÆW3_6;ã»™/›ÝðÒ»’ÍÎÍn¨óU³ês[ÍÎØ|ïV³36ß¼ÕìŒÑìŒo?°T³3ž~d©f7ÔCK5;c4»¡Ï—Ín8õ®d³3F³#f³3F³3¾ý¹­fgŒf7œ~ÙhvÆhváÛf³#f³^ºm6;c4»¡Ï—Ínèóe³3F³ê|«ÙþýwðÕìhq0ù×V³ƒmy,A‹f«fG‹3 XèÀê@‡ç9°jv°:Í¡ùfu–Ífu’«ƒšn¶šlóÍV³ƒí¾Ùjv´a÷a5;XßÐt³ÕìhÓîÃjv°jv4߬šý_[ÍŽvÙ5W³ƒí¾Ùjv°Ã7{4;àjvÆÓæ~4;ã´ÁÍNXÍÎ8lóG³V³3^6û£Ù ¯n¾jvÂjvÆf¾jvÀÕìŒC/»šðj>àÍNØ|Ä?šðí_ŒfgÔùG³6ôf'l>êÍ8šûG³3êG×£Ù f¾Ñ|â?š°ùÌ4;a5;£>·f'¬fg¼lÛG³nÙ쌧_¶šqúe«Ù _Í|¯jvÂw3ßjvÆKïÊjvÂjvFïÑìŒúÜ>š°ùÞ}4;aóÍûhvÂjv·XÍNxú‘åÑìŒzhy4;a5;£Ï·šqê]YÍNX͸š°šðíÏí£Ù «Ù§_¶š°šqè¶«ÙW³3^ºíjvÂjvFŸo5;£Ï·š°šQçËf?þ¼ö,š]ì{0!ËfGÛîc‰Ø·ÙÑ¢Ùžg´8Ñ¡ÅNì{žC‹fG‹Óœ˜og9´Ñl'9´8ȉéfÙìh›o–ÍŽ¶ûfÙìbÃîC6;ZœßÄt³lv±i÷!›-š]Ì7‹f'Ëf»ìšÙìh»o–ÍŽvøfÕìˆÙ솧Í]Ín8mðjvÆhvÃa›W³3F³^6{5;ãÕÍÍÎÍnØÌÍŽ˜Ín8ô²ÙìˆWó_ÍÎØ|ÄW³3¾ý‹±šÝP?æ«Ù›újvÆæ£¾šq4öÕì†úÑUÍÎx4óæ¿š±ù̯fgŒf7Ôç¶š1šÝð²m«Ù·»Ù O¿l4»áôËF³3¾šù²ÙßÍ|Ù솗ޕlvÆhvC¯šÝPŸÛjvÆæ{·š±ùæ­fgŒfg|û¥šñô#K5»¡ZªÙ£Ù }¾lvéw%›1š1›1šñíÏm5;c4»áôËF³3F³Ý6›1›ÝðÒm³Ù£Ù }¾lvCŸ/›1šÝPçËfß¿¿õø/‹fûLȲÙѶûX"ömv´hv±ï™-Nthq ûžçТÙÑâ4'æ›ÅYm4›ÅI-rbºY6;Úæ›e³£í¾Y6»Ø°ûÍŽç71Ý,›]lÚ}ÈfG‹fóÍ¢ÙɲÙÅ.»f6;Úî›e³£¾Ù¶ï÷¹Õð²ŸbÛ;W_÷¹Õð´dÛß÷¹ÕpúÇ~Æ8ö{¶=ŽýŒ³›oÞßÿˆGû·f¾#ŽýŒ{3ßÇ~Æ8ö3¾šùFóÂn£yc?¨¯ì6šwvÍKûA}k·Ñ¼¶ÛlÞÛê‡Ý6›7w›Í«ûA}w·Ù½¼¿8ý²qìg|7óÍ8ö3žÝ|¿Ç~¿ìåŸ{û+~m°¡>·ûûç>·2Ư 6¶íþŽ_Ì¿6ØðòËÆ±Ÿ1Žý†§m»¿Ïf¾wû¯n¾ÑÍÇ~ÆÙÌwƱßÐçû=ƒvÙOŒés{lÇý'G_þÜ~PŸÛc{Oí‚竆§_6þZ‹áôËÆßkaœw®ÝvÿiæÛã/¶^zW~O>ß±ÅÐçÛã/¶ú|¿‡È—ãåÏí/½e¿çHn’?ºí/žºíˆ¿Øb8õ²#þb ãîeùÁ¡Ûþž5}¾ñºÿb‹¡Ï÷{ÂмSþ²jv´èÏm5;Ø–ý‰ÍVÍŽý VÍVÍŽÍVÍVÍŽæ›U³ƒf³jv°jv4Ýl5;Øæ›­fÛ}³ÕìhÃîÃjv°jv4Ýl5;Ú´û°š¬Žÿh¾YþÿµÕìh—]s5;Øî›­f;|³G³3^öS<š°šñ´äÑìŒÓ”jvÂjvÆaOÀ£Ù g7_5;àjv­™o5;áÞÌ·š°šðÕÌ7šöÑìŒúÊ>š°yiÍNؼ¶fgÔ»G³6¯î£Ù »—w5;a5;á»™o5;áÙÍWÍΨŸ{fgÔçöÑì„ÕìŒÃ¶}4;a5;ãå—­f'¬fgßjvFŸo5;áåÏí£Ù GóÜ®fgd³£E³‹éfÙìbÓîC6;ZÿÅ|³8ü“e³‹]vÍlv´Ý7ËfG;|³jvÃË~ŠjvÆhvÃÓ~jvÃé?J4;c4»á°' šqvóE³#f³3nÍ|ÙìŒ{3_6;c4;ã«™o4/l5»¡¾²ÕìŒÍK[ÍÎØ¼¶Õì†úaWÍÎØ¼ºÕìŒÝË›ÍÎÍÎønæËfg<»ù¢Ù õs¯šÝPŸÛjvÆhvÃaÛV³3F³^~ÙhvÆhvÃÓ¶­f7œ~Ù«›otóE³3Îf¾lvCŸ/›°š1šñåÏm5;c4;c4»áé—f7œ~ÙhvÆhváÛf³3F³^zW²Ù£Ù }¾lvCŸ/›ñòç¶šq4Ïm6»á©Ûf³N½l6;ãîeYÍÎx4óe³ú|ÙìŒÑì†Í|Ñì†Í|]—‡ý|?þ²hv±o’e³£mwŠ}›-š]ìÛŸhÑìhÑìbßfG‹fG‹fóÍ¢ÙÑF³Y4;Z4»˜n–ÍŽ¶ùfÙìh»o–Í.6ì>d³£E³‹éfÙìbÓîC6;ZÿÅ|³8ü“e³‹]vÍlv´Ý7ËfG;|³jvÃË~ŠjvÆhvÃÓ~jvÃé?J4;c4»á°' šqvóE³#f³3nÍ|ÙìŒ{3_6;c4;ã«™o4/l5»¡¾²ÕìŒÍK[ÍÎØ¼¶Õì†úaWÍÎØ¼ºÕìŒÝË›ÍÎÍÎønæËfg<»ù¢Ù õs¯šÝPŸÛjvÆhvÃaÛV³3F³^~ÙhvÆhvÃÓ¶­f7œ~Ù«›otóE³3Îf¾lvCŸ/›°š1šñåÏm5;c4;c4»áé—f7œ~ÙhvÆhváÛf³3F³^zW²Ù£Ù }¾lvCŸ/›ñòç¶šq4Ïm6»á©Ûf³N½l6;ãîeYÍÎx4óe³ú|ÙìŒÑì†Í|Ñì†Í|]——}Þµ¿¬š-úó_[Ͷe¢E³ƒU³£E‚U³ƒU³£E³ƒU³ƒU³£ùfÕì`£Ù¬š¬šM7[Ͷùf«ÙÁvßl5;Ú°û°š¬šM7[ÍŽ6í>¬f«ã?šoV‡ÿm5;Úe×\Ͷûf«ÙÁßìÑ쌗ýf'¬fg<íy4;ãô¥š°šqØðhvÂÙÍW͸špkæ[ÍN¸7ó­f'¬f'|5óæ…}4;£¾²f'l^ÚG³6¯í£ÙõÃîÑì„Í«ûhvÂîå]ÍNXÍNønæ[ÍNxvóU³3êçÞ£Ùõ¹}4;a5;ã°mÍNXÍÎxùe«Ù «ÙOÛöÑìŒÓ/{uón¾jvÂÙÌ·šÑç[Íþ/>š°šðåÏí£Ù «Ù «ÙO¿l5;ãôËV³V³3Ýv5;a5;ã¥we5;a5;£Ï·šÑç[ÍNxùsûhvÂÑ<·«ÙOÝv5;ãÔË®f'ܽ,ÍNx4ó­fgôùV³V³36óU³36óu]~Û1¿ß¿ÙÝìfŸþD‹fgÛ¾ýiöiv¶»ÙÍ>ýÉv7;ÛÝìfŸfg»›ínv3ßìnv¶Ñlv7;ÛÝìfºY4;Ûæ›E³³í¾Y4»Ù°ûÍÎv7»™nÍn6í>D³³ÝÇ3ßì>ü£E³›]vÍhv¶Ý7‹fg;|³OŒ Çû× Þ¿6Xñ²M·ãúž[ï_¬xÚ¬ŸºÛ®Ÿ:mØÏGï[/ûºýŠ>ßë>ö Í|¯ûØ/øjæ{½¿ßÿŠ§Þ•×ÙÌ÷ºýŒsøC»Íû×+êc»ÿÜ¿6XqÚ¶ûÏö=· Þ¿6XqضûÏ}ì¼ýŠ—_ö>ö ž>ßO»eûÏÕÍwûG7ßìæ»ýŒÛO3ß¹ûsûA}n÷óþµÁŠúÜîçýkƒï_¬8tÛó>ö ÞÇ~ÅË/{ûç÷(žzË®Ÿf¾ë>ö nÍ|×î‡Ó½+×ÑÌwÝÇ~ÄcÿäˆàïÇ›mûA}nýúó¶m}|sUñòËÞ±…ñøùæªâiÛÇý[§_voæ;î¿Ø¢8ì–¿' Ÿï¸ÿb‹¢ÏwܱEðþ‹-Š>ßh¢êƒZÇl²ê˜[óÜÎ&¬ŽÙ”Õ5ŽÙ´Õ1_ß\UÔº:æÛ“ô˜M_}°™¯)¬c6‰õÁf¾&²>¨ó½~šÌzý4•Í>¾'”¿,/±ïd³£E³‹ùfÑìdÙìb—]3›m÷ͲÙÑ߬š1š1šÝð²M«Ù£Ù O›µšÝpÚ°ÕìŒÑì†>_6;ãÑÌ—ÍÎøjæËf7<õ®d³N½+ÙìŒÑì†úØV³NÛ¶š1šÝpضÕìŒÑ솗_6šñôùªÙ¯n¾hvÆÑÍ7»ù¢Ù³Ù³Ù õ¹­f7Ôç¶š1šÝpè¶ÙìŒÑ솗_6š1šÝðÔ[–Ín8õ®d³3î~8­fg<šù²Ù «Ù£Ù õ¹­fgŒf7¼ü²ÑìˆÙ솧m[Ín8ý²{3_6»á°[VÍÎÍnèóe³3F³ú|£‰ªjvÄÙdU5»¡†U5»¡fB5;c4»¡ÖU5;cÓWÕìŒMaU³6ó5‘UÍNXÍÎØtÖjöÏ÷ï_VZÌó¯­fÛr´Ø¬ž,´X¬ž+°jv´xªÀªÙÁê™BóÍê‰ÍfÕì`õ8¡éf«ÙÁ6ßl5;Øî›­fGvV³ƒU³£éf«ÙѦ݇Õì`Õìh¾Y5û¿¶ší²k®fÛ}³Õì`‡oöhvÂjvÂjvÆË6}4;a5;ãi³>šqÚ°f'¬fgôùV³Í|«Ù _Í|«ÙO½+«Ù§Þ•Õì„ÕìŒúØ>šqÚ¶f'¬fg¶í£Ù «Ù/¿l5;áéó=šðêæ«f'Ý|³›¯šp5;àjvF}nÍΨÏí£Ù «Ù‡n»š°šñòËV³V³3žzËV³3N½+«Ù w?œ>šðhæ[Íþ/>š°šQŸÛG³V³3^~ÙjvÀÕ쌧mûhvÆé—Ý›ùV³3»ef'¬fgôùV³V³3ú|£‰ªG³Î&«ÍΨaõhvFÍ„G³V³3j]=š°é«G³6…õhvÆf¾&²Íþ/>š°é¬löë{¶ùËâñûÎC–ÍŽ¶Ýãˆ}·A‹'Kì» Zd³£E³‹éfÙìbÓîC6;Z4»˜oÍN–Í.vÙ5³ÙÑvß,›íðͪ٣٣٠/Û´š1šÝð´Y«Ù § [ÍÎÍnèóe³3Í|Ù쌯f¾lvÃSïJ6»áÔ»’ÍÎÍn¨m5»á´m«Ù£Ù ‡m[ÍÎÍnxùe£ÙOŸ¯šñêæ‹fgÝ|³›/š1›1›ÝPŸÛjvC}n«Ù£Ù ‡n›ÍÎÍnxùe£Ù£Ù O½eÙì†SïJ6;ãî‡ÓjvÆ£™/›°š1šÝPŸÛjvÆhvÃË/ÍŽ˜ÍnxÚ¶Õì†Ó/»7óe³»eÕìŒÑì†>_6;c4»¡Ï7š¨ªfGœMVU³jXU³j&T³3F³j]U³36}UÍÎØV5»a3_YÕì„ÕìŒMg­fÿ|sÿeõx¡Å<ÿÚjv°-ÇA‹mÀêÉB‹eÀ깫fG‹§ ¬š¬ž)4߬ž(°ÑlVÍVšn¶šlóÍV³ƒí¾Ùjv´a÷a5;X5;šn¶šmÚ}XÍVÍŽæ›U³ÿk«ÙÑ.»æjv°Ý7[Ívøff'¬f'¬fg¼lÓÏ?=ü²Õ쌧ÍúhvÆiÃ>š°šÑç[ÍNx4ó­f'|5ó­fg<õ®¬fgœzWV³V³3êcûhvÆiÛ>š°šqضf'¬fg¼ü²Õì„§Ï÷hv«›¯šptóÍn¾jvÀÕ쀫Ùõ¹}4;£>·f'¬fgºíjvÂjvÆË/[ÍNXÍÎxê-[ÍÎ8õ®¬f'Üýpúhv£™o5û¿øhvÂjvF}nÍNXÍÎxùe«ÙW³3ž¶í£Ù§_voæ[ÍÎ8ì–=š°šÑç[ÍNXÍÎèó&ªÍ8›¬z4;£†Õ£Ù5ÍNXÍΨuõhv¦¯ÍNØÖ£Ù›ùšÈz4û¿øhv¦³²ÙÏï©è/‹ÇKì;Y6;Úv#öÝ-ž,±ï2hñ\¡E³‹}Ÿ*´hv´x¦Ä|³x¢ÐF³Y4;ZG‹>ÓͲÏÑ6ß,ûm÷ͲÏņ݇ìs´ès1Ý,û\lÚ}È>G‹>óÍ¢ÏɲÏÅ.»fö9Úî›eŸ£¾Yö9Zô9ÚÛ7Ë>G;›Í¢ÏÅ|³ès´ès1Ý,û\L7Ë>G‹>ÓͲÏÑ^¾Yö9ÚÛ7Ë>'«>gŒ>76iõ9bö¹áe«VŸ3FŸž~ÙèsÃiÓVŸ3¾›ù²Ï£Ï¯n¾èsÆÑÍ}n¨óUŸêS[}Îxøs[}Î}n8mÛêsÆèsÃaÛVŸ3Žn¾èsÆÙÌ—}nxê]É>7œzW²Ï£Ï³Ïß~­>7Ôóhõ¹áÔm¯æ_}n¨‡ÒêsÆíîsC=ËWŸêÉ´úœ±9ÏWŸ3¾›ùFs¤¯>'¬>7Ôç¶ú1ûÜpèe³Ï£Ï /Û¶úœ1úÜð´m«Ï §Ý²êsÆèsÃf¾èsÆèsCŸ/ûœpõùçö—Õ{Ïå¿¶úlËÖD‹w¬^i´x£Áê…«÷-^g°ês°z™Ñ|³ês°ÑlV}V}ަ›­>Û|³Õç`»o¶úmØ}X}V}ަ›­>G›vVŸƒUŸ£ùfÕçÿÚês´Ë®¹úl÷ÍVŸƒ¾Ùês°ês°·o¶úìl6«>GóͪÏÁªÏÑt³ÕçhºÙês°ês4Ýlõ9ØË7[}ööÍVŸÿk>'¬>g6é£ÏWŸ3^¶ê£Ï «ÏO¿lõ9ã´i}Nønæ[}NX}NxuóUŸŽn¾êsFïÑçŒúÔ>úœððçöÑç„ÕçŒÓ¶}ô9aõ9ã°m}N8ºùªÏ g3ßêsÆSïÊêsÆ©weõ9aõ9àês·ŸF}ΨçÑGŸ3NÝöjŽñ>gÔCé£Ï ·ìsF=Ë?úœQO¦>'lÎó>'|7óæHÿèóñÑçŒúÜ>úpõ9ãÐË®>'¬>g¼lÛGŸVŸ3ž¶í£Ï§Ý²GŸVŸ36óUŸVŸ3ú|«ÏÿÅìó×÷Xû—Å{-ö}.ɲÏѶ»5žï4Z¼Òbß7-^h´xŸÅ¾¯3Zô9Z¼Ìb¾Yô9Úh6‹>G‹>ÓͲÏÑ6ß,ûm÷ͲÏņ݇ìs´ès1Ý,û\lÚ}È>G‹>óÍ¢ÏɲÏÅ.»fö9Úî›eŸ£¾Yö9Zô9ÚÛ7Ë>G;›Í¢ÏÅ|³ès´ès1Ý,û\L7Ë>G‹>ÓͲÏÑ^¾Yö9ÚÛ7Ë>'«>gŒ>76iõ9bö¹áe«VŸ3FŸž~ÙèsÃiÓVŸ3¾›ù²Ï£Ï¯n¾èsÆÑÍ}n¨óUŸêS[}Îxøs[}Î}n8mÛêsÆèsÃaÛVŸ3Žn¾èsÆÙÌ—}nxê]É>7œzW²Ï£Ï³Ïß~­>7Ôóhõ¹áÔm¯æ_}n¨‡ÒêsÆíîsC=ËWŸêÉ´úœ±9ÏWŸ3¾›ùFs¤¯>'¬>7Ôç¶ú1ûÜpèe³Ï£Ï /Û¶úœ1úÜð´m«Ï §Ý²êsÆèsÃf¾èsÆèsCŸ/ûœ0ûüøßþ²x¯Å¾Ï%Yö9Úv·¦Ø÷F‹WZìûF£Å ï³Ø÷uF‹>G‹—YÌ7‹>GÍfÑçhÑçbºYö9Úæ›eŸ£í¾Yö¹Ø°û}Ž}.¦›eŸ‹M»ÙçhÑçb¾Yô9Yö¹Øe×Ì>GÛ}³ìs´Ã7Ë>G‹>G{ûfÙçhg³Yô¹˜o}Ž}.¦›eŸ‹éfÙçhÑçbºYö9ÚË7Ë>G{ûfÙçdÕçŒÑç†Ã&­>GÌ>7¼lÕêsÆèsÃÓ/}n8mÚêsÆw3_ö9cô9ãÕÍ}Î8ºù¢Ï u¾êsC}j«Ïn«Ï£Ï §m[}Î}n8lÛêsÆÑÍ}Î8›ù²Ï O½+Ùç†SïJö9cô9bö9ãÛO£Õç†z­>7œºíÕã«Ï õPZ}θÝ}n¨gùêsC=™VŸ36çùêsÆw3ßhŽôÕç„Õç†úÜVŸ#fŸ½lö9cô¹áeÛVŸ3FŸž¶mõ¹á´[V}Î}nØÌ}Î}nèóeŸ®>ßÿýwëõ^£Åsù¯­>Û²5Ñâ«W-Þh°z¡Áê}F‹×¬ú¬^f4߬úl4›UŸƒUŸ£éf«ÏÁ6ßlõ9Øî›­>GvVŸƒUŸ£éf«ÏѦ݇Õç`Õçh¾Yõù¿¶úí²k®>Û}³Õç`‡o6Ï<¶‚]Ù¨hÓ~¾9²QÁfYцý|ÛÏOF*aø/{,¶Ÿ:ðÖŸñôËÖŸQ·Û~êÀOxúz~Ù:ðŽn¾:ðž?ªŒS·=· UÂÝ¿Ù>8tÛßïýnÛÎWžX/Ýö|û×ÛvÖŸQ¿à¶³üŒÍ|͹`;›ƒÁõ[n»š£Áöûý¡ßsÔÃÁv5§ƒO†és»ï/n÷ý'VF}n÷ýÌ+á•¡ÊxúeëÀÏ8mÛ}¯?àQ~Æ¡—=êÀO¸7óuà'<šùŽ:ð3ú|Çï[æ—­?àhŽgûhÎgÔçvÍ íƒzDÛgsFÛgsHû ž8öÙÓöyøÙöƒzPÛgsRÛgsTû žÕößÃ…Ï7›ÓÚ>›ãÚ>›óÚ›ùšÛñÞü¹ýài·ìxïþÜ~PŸÛã}üyÛ¶Çû•¡Ê8ü²ï UÂ3C•ñ²m÷•¡J‹Ç°™/þáÔ»ò{ÂðùÎø[<†>ß¹ç¿, Œ¿ÅC˜µ¾ÿÅÖ__Êbßïd²¬u´íþdû~°¡Å÷±Ø÷c -j-j]ì[ëhQëhQëb¾Y| f³¨u´ø.ÓͲÖÑ6ß,km÷ͲÖņ݇¬u´ø ÓͲÖŦ݇¬u´øôóÍⳟ,k]ì²kf­£í¾YÖ:Úá›e­£E­‹Mûù²ÖÑ¢Öņý|UëŒQ놗=UëŒQ놧_6jÝP·«Zg<}½ªuƨuÆÑÍµŽ˜µn8uÛ¬uÆÝ¿ÙªÖÿn«Z7¼tÛ¬uƨuCý‚«Z7lækÎUë†ú-WµÎ¸ù÷\Õ:cs:¨Zg|ùs[µn¨ÏmÕ:cÔºáé—Z7œ¶mÕ:bÖºáÐËf­3îÍ|YëŒG3_Öº¡Ï—µn8õ®ŒæxVµn¨ÏmÕº¡ѪÖ›CZÕ:csL«Z7ÔƒZÕ:csT«Zg<›ùfsZ«ZglÎkUëŒÍ‰­jÝð´[Vµn¨ÏmÕ:cÔºáðËF­3F­^¶mÕ:cÔºa3_ÔºáÔ»’µÎµnèóe­3F­f­oßGû/‹/e±ïw2YÖ:Úv²‰}?ØÐâûXìû±†µŽµ.ö­u´¨u´¨u1ß,¾ÐF³YÔ:Z|ˆéfYëh›o–µŽ¶ûfYëbÃîCÖ:Z|ˆéfYëbÓîCÖ:Z|ú‹ùfñÙO–µ.vÙ5³ÖÑvß,kíðͲÖÑ¢ÖŦý|YëhQëbÃ~¾ªuƨuÃË‹ªuƨuÃÓ/µn¨ÛU­3ž¾^Õ:cÔ:ãèæ‹ZGÌZ7œºmÖ:ãîßlU댇·U­^ºmÖ:cÔº¡~ÁU­6ó5炪uCý–«ZgÜü{®j±9T­3¾ü¹­Z7Ôç¶j1jÝðôËF­NÛ¶j1kÝpèe³Ö÷f¾¬uÆ£™/kÝÐçËZ7œzWFs<«Z7Ôç¶jÝPhUëŒÍ!­j±9¦U­êA­j±9ªU­3žÍ|³9­U­36絪uÆæÄVµnxÚ-«Z7Ôç¶j1jÝpøe£Ö£Ö /Û¶j1jݰ™/jÝpê]ÉZgŒZ7ôù²Ö£Ö W­ÜY})£Åwò¿¶jlËO6´ø`«ïc´øX«Z«ZG‹Z«Z«ZGóÍêël4›U­ƒÕwšn¶jlóÍV­ƒí¾Ùªu´a÷aÕ:X} éf«ÖѦ݇Uë`õéæ›Õgÿ¿¶jí²k®ZÛ}³Uë`‡o¶j¬jmÚÏ·j¬jmØÏ÷¨uªuÆË‹G­V­3ž~ÙªuFÝîQë„§¯÷¨uªuÂÑÍWµ¸jqê¶«Ö wÿf{Ô:ááßmZg¼tÛUë„UëŒú÷¨uÆf¾æ\ð¨uFý–{Ô:áæßsZ'lNZ'|ùsû¨uF}nµNXµÎxúe«Ö§mû¨uÀUëŒC/{T­îÍ|«Ö f¾UëŒ>ߪuÆ©we4dzG­3êsû¨uF=¢=j°9¤=j°9¦=jQjZ'lŽjZ'<›ùfsZ{Ô:as^{Ô:asb{Ô:ãi·ìQëŒúÜ>j°jqøe«Ö «Ö/ÛöQë„UëŒÍ|UëŒSïʪuªuFŸoÕ:aÕú¿˜µþó=Œÿeñ¥,öýN&ËZGÛîO6±ïZ|‹}?ÖТÖÑ¢ÖžµŽµŽµ.æ›Å×Úh6‹ZG‹ï1Ý,kmóͲÖÑvß,k]lØ}ÈZG‹¯1Ý,k]lÚ}ÈZG‹O1ß,>ûɲÖÅ.»fÖ:Úî›e­£¾YÖ:ZԺشŸ/k-j]lØÏWµÎµnxÙcQµÎµnxúe£Ö u»ªuÆÓ׫ZgŒZgÝ|QëˆYë†S·ÍZgÜý›­jñðﶪuÃK·ÍZgŒZ7Ô/¸ªuÃf¾æ\Pµn¨ßrU댛ÏU­36§ƒªuÆ—?·Uë†úÜV­3F­ž~Ù¨uÃiÛV­#f­½lÖ:ãÞÌ—µÎx4óe­ú|Yë†SïÊhŽgUë†úÜV­ê­j±9¤U­36Ç´ªuC=¨U­36GµªuƳ™o6§µªuÆæ¼VµÎØœØªÖ O»eUë†úÜV­3F­¿lÔ:cÔºáeÛV­3F­6óE­N½+YëŒQë†>_Ö:cÔ:áªõÏó—Õ—2Z|'ÿk«ÖÁ¶üdC‹6°ú>F‹5°ªu°ªu´¨u°ªu°ªu4߬¾ÀF³YÕ:X} éf«ÖÁ6ßlÕ:Øî›­ZGvV­ƒÕWšn¶jmÚ}XµVŸþh¾Y}öÿk«ÖÑ.»æªu°Ý7[µvøfÛÏÌ\Ü~òÜÊxÚÜÛ¶e®2N|ÛöÌUÂ#Ï­ŒÃ6ß¶Wž[ ëØÏxÙìÛVÇ~«›¯Žý„uìglæ«c?àþÓÌ·×±Ÿpk滚øíj>á·«ùˆÿ ~Æo×Û¿·«ù”ÿ ~ÌoWó9¿]ÍýõSk»šúú|£ù°ßFóiÿAýèÚFóy¿£™o4ŸøÛh>ò·Ñ|æïÇéÏí~\yneÔçv?Fž[ gž[/Ûvý乕pËc?ãé—­c?ãôËÖ±ŸðÕÌ÷ªc?á»™ïu湕ñÒ»òººùêØÏ¨ó?Í—îõ¹=~š¯Ýã§ùÞý ~ñ?Í7ïõ¸rüÄ_`a|ûåƒÃ/{ú‘åø¹ºù.?´?£›/þ‹¡Ï·ýä¿.`œzW~O>ßñ7Hô¹=~«ãÐm³CŸÛž~Ù3s•qúeão²0ŽÌUơ۞3sðŠ¿Ébxé¶¿âó]ñ7Y }¾ßÆî—=šù®Wþ+Âø›,†:_4û>¿/Å_v7»Ùç`‚Íζ}%fŸfg»›Ýìs&a»Otl÷Îìsžc»›í>Í™ùf÷YŽm4›Ý'9¶û g¦›E³³m¾Y4;Ûî›E³› »Ñìl÷ùÍL7‹f7›v¢ÙÙîf7óÍîfG‹f7»ìšÑìl»oÍÎvøfÙìŒÑ슧ÍÍ®8mðlvÁ»Ù‡mžÍ.x7»âe³g³ ^Ý|w³ ÞÍ®ØÌw7;c4»âÐËF³3^Í|6»`óŸÍ.øö/ÆlvEý˜Ïfl>è³Ù›úlvÆÑ|Øg³+êGW6»àÑÌ7šOülvÁæ3?›]ðnvE}n³ÙïfW¼lÛlvÁíÛ슧_önvÅé—½›]ðÕÌÍ.ønæ‹fW¼ô®D³ ÞÍ®¨óe³+ês›Í.Ø|ïf³ 6ß¼Ùì‚w³ ¾ýÀ’Í.xú‘%›]Q-Ùì‚w³+ú|ÑìŠSïJ4»àÝìŒÑì‚w³ ¾ý¹Íf¼›]qúeïf¼›]qè¶ÑìŒÑ슗nÍ.x7»¢ÏÍ®èóE³ ÞÍ®¨óe³ïÎ_Í.ö=˜e³£m÷±DìÛìhÑìbß3 ZœèÐâ@'ö=Ï¡E³£ÅiNÌ7‹³Úh6‹“ZäÄt³lv´Í7ËfGÛ}³lv±a÷!›-ÎobºY6»Ø´ûÍŽÍ.æ›E³“e³‹]vÍlv´Ý7ËfG;|³jvÄlvÃÓæ®f7œ6x5;c4»á°Í«Ù£Ù /›½šñêæ‹fgŒf7læ‹fGÌf7zÙlvÄ«ù€¯fgl>â«ÙßþÅXÍn¨óÕìŒÍ}5;cóQ_ÍŽ8šûjvCýèªfg<šùFó‰_ÍÎØ|æW³3F³ês[ÍÎÍnxÙ¶ÕìŒÛÝ솧_6šÝpúe£Ù_Í|ÙìŒïf¾lvÃKïJ6;c4»¡ÎWÍn¨Ïm5;có½[ÍÎØ|óV³3F³3¾ýÀRÍÎxú‘¥šÝP-ÕìŒÑì†>_6»áÔ»’ÍÎÍŽ˜ÍÎÍÎøöç¶š1šÝpúe£Ù£Ù ‡n›ÍŽ˜Ínxé¶ÙìŒÑì†>_6»¡Ï—ÍÎÍn¨ó­fÿ¼NY5;ZLþµÕì`[KТÙÁªÙÑâLV':°:СÅy¬š¬Nsh¾YåÀF³YäÀê ‡¦›­fÛ|³Õì`»o¶šmØ}XÍVç74Ýl5;Ú´û°š¬šÍ7«fÿ×V³£]vÍÕì`»o¶šìðÍ͸šñ´¹ÍÎ8mðG³V³3ÛüÑì„Õ쌗Íþhv«›¯š°š±™¯šp5;ãÐË®f¼šøG³6ñf'|ûã£ÙõcþÑì„Íý£Ù ›úG³ŽæÃþÑìŒúÑõhv£™o4Ÿøf'l>óÍNXÍΨÏí£Ù «Ù/ÛöÑì„[6;ãé—­fgœ~ÙjvÂW3ßjvÂw3ßjvÆKïÊjvÂjvFïÑìŒúÜ>š°ùÞ}4;aóÍûhvÂjv·XÍNxú‘åÑìŒzhy4;a5;£Ï·šqê]YÍNX͸š°šðíÏí£Ù «Ù§_¶š°šqè¶«ÙW³3^ºíjvÂjvFŸo5;£Ï·š°šQçËf¿¾ïÚ_Í.ö=˜e³£m÷±DìÛìhÑìbß3 ZœèÐâ@'ö=Ï¡E³£ÅiNÌ7‹³Úh6‹“ZäÄt³lv´Í7ËfGÛ}³lv±a÷!›-ÎobºY6»Ø´ûÍŽÍ.æ›E³“e³‹]vÍlv´Ý7ËfG;|³jvÄlvÃÓæ®f7œ6x5;c4»á°Í«Ù£Ù /›½šñêæ‹fgŒf7læ‹fGÌf7zÙlvÄ«ù€¯fgl>â«ÙßþÅXÍn¨óÕìŒÍ}5;cóQ_ÍŽ8šûjvCýèªfg<šùFó‰_ÍÎØ|æW³3F³ês[ÍÎÍnxÙ¶ÕìŒÛÝ솧_6šÝpúe£Ù_Í|ÙìŒïf¾lvÃKïJ6;c4»¡ÎWÍn¨Ïm5;có½[ÍÎØ|óV³3F³3¾ýÀRÍÎxú‘¥šÝP-ÕìŒÑì†>_6»áÔ»’ÍÎÍŽ˜ÍÎÍÎøöç¶š1šÝpúe£Ù£Ù ‡n›ÍŽ˜Ínxé¶ÙìŒÑì†>_6»¡Ï—ÍÎÍn¨óe³Ÿßïß¿,š]ì{0!ËfGÛîc‰Ø·ÙÑ¢Ùžg´8Ñ¡ÅNì{žC‹fG‹Óœ˜og9´Ñl'9´8ȉéfÙìh›o–ÍŽ¶ûfÙìbÃîC6;ZœßÄt³lv±i÷!›-š]Ì7‹f'Ëf»ìšÙìh»o–ÍŽvøfÛ¾ßçVÃË~Šm¿m°àýkƒOûA¶ýþµÁŠÓ”8ö3ƱßpØðùÏR_~ÙÙÍ7ïïÄ#ŽýŒ[3ßÇ~ƽ™ïˆc?cû_Í|£ya·Ñ¼±ÔWvÍ;»æ¥ý ¾µÛh^Ûm6ïíõÃn›Í›»ÍæÕý ¾»Ûì^Þ_œ~Ù8ö3¾›ùfûÏn¾ßc¿_öòϽýuÿÚ`E}n÷÷Ï}ne¼m°â°m÷÷ýkƒï_¬xùeãØÏÇ~ÃÓ¶Ýßg3ß;ŽýŒW7ßèæ‹c?ãlæ;ãØoèóýžA»ì'Æô¹=¶ãû'G_þÜ~PŸÛc{ÿyÙ¶ÇvÞ¹jxúeï¿Ö¢8ý²÷ßkœw®ÝvÿiæÛï¿Ø¢xé]ù=aø|ûý[}¾ýþ‹-Š>ßï!òåxùsûÁKoÙï9ÒŸÛ߃änû‹§n;î¿Ø¢8õ²ãþ‹-‚»—å‡nû{ÖôùÆý[}¾ñö¼<Æý[›ùî¿Ø¢ØÌ×uyÙç+ö/«fG‹þü×V³ƒmÙŸhÑì`ÕìhÑŸ`Õì`ÕìhÑì`Õì`Õìh¾Y5;Øh6«f«fGÓÍV³ƒm¾Ùjv°Ý7[ÍŽ6ì>¬f«fGÓÍV³£M»«ÙÁêøæ›Õáÿ_[ÍŽvÙ5W³ƒí¾Ùjv°Ã7{4;ãe?Å£Ù «ÙOûAÍÎ8ýG©f'¬fgö<špvóU³®f'ÜšùV³îÍ|«Ù «Ù _Í|£yaÍΨ¯ì£Ù ›—öÑì„ÍkûhvFý°{4;aóê>š°{yW³V³¾›ùV³žÝ|ÕìŒú¹÷hvF}nÍNXÍÎ8lÛG³V³3^~ÙjvÂjvÆÓ¶}4;ãôË^Ý|£›¯šp6ó­fgôùV³ÿ‹f'¬f'|ùsûhvÂjvÂjvÆÓ/[ÍÎ8ý²Õì„ÕìŒC·]ÍNXÍÎxé]YÍNXÍÎèó­fgôùV³^þÜ>šp4ÏíjvÆS·]ÍÎ8õ²«Ù w/ËG³Í|«Ù}¾Õì„ÕìŒÍ|ÕìŒÍ|]—‡½¿Ç—¿,š]ìÛŸdÙìhÛÝŸbßfG‹fûö'Z4;Z4»Ø·ÙÑ¢ÙÑ¢ÙÅ|³hv´ÑlÍŽÍ.¦›e³£m¾Y6;Úî›e³‹ »ÙìhÑìbºY6»Ø´ûÍŽÇ1ß,ÿdÙìb—]3›m÷ͲÙÑ߬šÝ𲟢š1šÝ𴤚ÝpúÍÎÍn8ì ¨fgœÝ|ÑìˆÙìŒ[3_6;ãÞÌ—ÍÎÍÎøjæÍ [Ín¨¯l5;cóÒV³36¯m5»¡~ØU³36¯n5;c÷òf³3F³3¾›ù²ÙÏn¾hvCýÜ«f7Ôç¶š1šÝpضÕìŒÑ솗_6š1šÝð´m«Ù §_öêæÝ|Ñ쌳™/›ÝÐçËf'¬fgŒfg|ùs[ÍÎÍÎÍnxúe£Ù §_6š1šÝpè¶ÙìŒÑ솗ޕlvÆhvCŸ/›ÝÐçËfg¼ü¹­fgÍs›Ínxê¶Ùì†S/›Íθ{YV³3Í|Ùì†>_6;c4»a3_4»a3_×åa¯ïÙæ/‹fûö'Y6;Úv÷§Ø·ÙÑ¢Ùžý‰ÍŽÍ.ömv´hv´hv1ß,šm4›E³£E³‹éfÙìh›o–ÍŽ¶ûfÙìbÃîC6;Z4»˜n–Í.6í>d³£Åñ_Ì7‹Ã?Y6»Øe×ÌfGÛ}³lv´Ã7«f7¼ì§¨fgŒf7<í©f7œþ£D³3F³{ªÙg7_4;b6;ãÖÌ—Íθ7óe³3F³3¾šùFóÂV³ê+[ÍÎØ¼´ÕìŒÍk[Ín¨vÕìŒÍ«[ÍÎØ½¼ÙìŒÑìŒïf¾lvƳ›/šÝP?÷ªÙ õ¹­fgŒf7¶m5;c4»áå—fgŒf7¬f«fGÓÍV³£M»«ÙÁêøæ›Õáÿ_[ÍŽvÙ5W³ƒí¾Ùjv°Ã7{4;ãe?Å£Ù «ÙOûAÍÎ8ýG©f'¬fgö<špvóU³®f'ÜšùV³îÍ|«Ù «Ù _Í|£yaÍΨ¯ì£Ù ›—öÑì„ÍkûhvFý°{4;aóê>š°{yW³V³¾›ùV³žÝ|ÕìŒú¹÷hvF}nÍNXÍÎ8lÛG³V³3^~ÙjvÂjvÆÓ¶}4;ãôË^Ý|£›¯šp6ó­fgôùV³ÿ‹f'¬f'|ùsûhvÂjvÂjvÆÓ/[ÍÎ8ý²Õì„ÕìŒC·]ÍNXÍÎxé]YÍNXÍÎèóíÕìŒ>ßjvÂËŸÛG³Žæ¹]ÍÎxê¶«Ù§^v5;áîeùhv£™o5;£Ï·š°š±™¯š±™¯ëò°ã{*úË¢ÙžýI–ÍŽ¶Ýý)ömv´hv±o¢E³£E³‹}›-š-š]Ì7‹fGÍfÑìhÑìbºY6;Úæ›e³£í¾Y6»Ø°ûÍŽÍ.¦›e³‹M»ÙìhqüóÍâðO–Í.vÙ5³ÙÑvß,›íðÍ>16ã×3Ư 6¼lÓí¸îs+cüÚ`ÃÓfÝŽ8öNv{űŸ1Žý†>ß+ŽýŒG3ß+ŽýŒ¯f¾×ûþþ7<õ®¼Îf¾Wûçð‡v›ñkƒ õ±Ýâ×NÛvÿÙîs+cüÚ`ÃaÛî?qìgŒc¿áå—c?ãéó}ð´[¶ÿ\Ý|qìgÝ|³›/ŽýˆÛO3ß¹ûsûA}n÷3~m°¡>·û¿6˜1~m°áÐmÏ8ö3ƱßðòËÆ±Ÿq~ÿâ©·ìúiæ»âØÏ¸5ó]»N?8ô®\G3ßÇ~Âcßr„ñ÷ãͶý >·Çç—CÛ¶Çç¯=Ù¶¼ü²ñ[Ÿ;W OÛö8â/¶N¿ìÞÌwÄ_l1vˎ߆ÏwÄ_l1ôùŽø‹-Œñ[ }¾ÑDÕµŽÙdÕ1·æ¹MX³)«j&³i«c¾î\5Ôº:æÛ“ô˜M_}°™¯)¬c6‰õÁf¾&²>¨ó½~šÌzý4µšýs\ÿËêñB‹yþµÕì`[ŽƒÛ€Õ“…Ë€ÕsVÍŽOX5;X=Sh¾Y=Q`£Ù¬š¬'4Ýl5;Øæ›­fÛ}³ÕìhÃîÃjv°jv4Ýl5;Ú´û°š¬šÍ7«fÿ×V³£]vÍÕì`»o¶šìðÍÍNXÍNXÍÎxÙ¦f'¬fgßjv£™o5;á«™o5;ã©we5;ãÔ»²š°šQÛG³3NÛöÑì„ÕìŒÃ¶}4;a5;ãå—­f'<}¾G³^Ý|Õì„£›ovóU³®f\ÍΨÏí£Ùõ¹}4;a5;ãÐmW³V³3^~ÙjvÂjvÆSoÙjvÆ©we5;áî‡ÓG³Í|«ÙÿÅG³V³3êsûhvÂjvÆË/[͸šñ´mÍÎ8ý²{3ßjvÆa·ìÑì„ÕìŒ>ßjvÂjvFŸo4QõhvÀÙdÕ£Ù5¬ÍΨ™ðhvÂjvF­«G³6}õhv¦°ÍÎØÌ×DÖ£ÙÿÅG³6•; ¿,/±ïd³£E³‹ùfÑìdÙìb—]3›m÷ͲÙÑ߬š1š1šÝð²M«Ù£Ù O›µšÝpÚ°ÕìŒÑì†>_6;ãÑÌ—ÍÎøjæËf7<õ®d³N½+ÙìŒÑì†úØV³NÛ¶š1šÝpضÕìŒÑ솗_6šñôùªÙ¯n¾hvÆÑÍ7»ù¢Ù³Ù³Ù õ¹­f7Ôç¶š1šÝpè¶ÙìŒÑ솗_6š1šÝðÔ[–Ín8õ®d³3î~8­fg<šù²Ù «Ù£Ù õ¹­fgŒf7¼ü²ÑìˆÙ솧m[Ín8ý²{3_6»á°[VÍÎÍnèóe³3F³ú|£‰ªjvÄÙdU5»¡†U5»¡fB5;c4»¡ÖU5;cÓWÕìŒMaU³6ó5‘UÍNXÍÎØtV6ûöM£¿,/±ïd³£E³‹ùfÑìdÙìb—]3›m÷ͲÙÑ߬š1š1šÝð²M«Ù£Ù O›µšÝpÚ°ÕìŒÑì†>_6;ãÑÌ—ÍÎøjæËf7<õ®d³N½+ÙìŒÑì†úØV³NÛ¶š1šÝpضÕìŒÑ솗_6šñôùªÙ¯n¾hvÆÑÍ7»ù¢Ù³Ù³Ù õ¹­f7Ôç¶š1šÝpè¶ÙìŒÑ솗_6š1šÝðÔ[–Ín8õ®d³3î~8­fg<šù²Ù «Ù£Ù õ¹­fgŒf7¼ü²ÑìˆÙ솧m[Ín8ý²{3_6»á°[VÍÎÍnèóe³3F³ú|£‰ªjvÄÙdU5»¡†U5»¡fB5;c4»¡ÖU5;cÓWÕìŒMaU³6ó5‘UÍNXÍÎØtÖjöíß_ZÌó¯­fÛr´Ø¬ž,´X¬ž+°jv´xªÀªÙÁê™BóÍê‰ÍfÕì`õ8¡éf«ÙÁ6ßl5;Øî›­fGvV³ƒU³£éf«ÙѦ݇Õì`Õìh¾Y5û¿¶ší²k®fÛ}³Õì`‡oöhvÂjvÂjvÆË6}4;a5;ãi³>šqÚ°f'¬fgôùV³Í|«Ù _Í|«ÙO½+«Ù§Þ•Õì„ÕìŒúØ>šqÚ¶f'¬fg¶í£Ù «Ù/¿l5;áéó=šðêæ«f'Ý|³›¯šp5;àjvF}nÍΨÏí£Ù «Ù‡n»š°šñòËV³V³3žzËV³3N½+«Ù w?œ>šðhæ[Íþ/>š°šQŸÛG³V³3^~ÙjvÀÕ쌧mûhvÆé—Ý›ùV³3»ef'¬fgôùV³V³3ú|£‰ªG³Î&«ÍΨaõhvFÍ„G³V³3j]=š°é«G³6…õhvÆf¾&²Íþ/>š°é¬löŸoRýeñx‰}ç!ËfGÛîqľ۠œ%ö]-ž+´hv±ïS…ÍŽÏ”˜oOÚh6‹fG‹ÇIL7ËfGÛ|³lv´Ý7Ëfv²ÙÑ¢ÙÅt³lv±i÷!›-š]Ì7‹f'Ëf»ìšÙìh»o–ÍŽvøf#~ó4Züâi´·o6â×N£ÍfñK§Å|³q7Z£˜n6£Åt³µˆ±(¦›ÍHE´—o6#ÑÞ¾ÙïWë]s{ů™fwç›t{ů™F|ǯ™6¼lÕí¿fš12ÑðôËF&N›v{G&2¾›ù~qøe#¯n¾ÈDÆÑÍ™h¨óíÛvwŽ¡>µû¶ßÃxøsûÁÓ¶Ý·ø5Ó†Ó¶Ý·ÈDÆÈDÃaÛî[d"ãèæ‹LdœÍ|¿ÿôG/»G&2nÍ|{d"ãÞÌ·G&"^/n÷ëí§Ñý:ý¹ý žG÷+~Í´áÔm¯æ¿_Í9þƒz(ÝGs’ß?ºíhÎòûhóÔ“é>šãü>šóüõ@¿w3ßhŽôÔùŽã÷ã­C}ncÞ¢ñõãÏí‡^öõ{ú³m×~ÿdž—m{¼â/ü0Æ_ø1¯3ÛÝçl÷Ëlæ›Ý}Î6šÍî>g»ûÜL7‹>gÛ|³ès¶Ý7‹>7v¢ÏÙî>7ÓÍ¢Ïͦ݇ès¶»ÏÍ|³»ÏÑ¢ÏÍ.»fô9Ûî›EŸ³¾Yô9ÛÝçloß,úœíl6»ûÜÌ7»ûœíîs3Ý,úÜL7‹>g»ûÜL7‹>g{ùfÑçloß,ú-û\ðîsÅa“fŸ3FŸ+^¶jö¹àÝ犧_öîsÅiÓfŸ ¾›ù¢Ïï>¼ºùî>Ý|wŸ+ê|ÙçŠúÔfŸ þÜfŸ Þ}®8mÛìsÁ»Ï‡m›}.8ºùî>œÍ|Ñ犧ޕèsÅ©w%ú\ðîsÆèsÁ·ŸF³Ïõ<š}®8uÛ«9ÆgŸ+ê¡4û\pûö¹¢žå³Ïõdš}.Øœç³ÏßÍ|£9ÒgŸ#fŸ+ês›}Î}®8ô²Ñç‚wŸ+^¶mö¹àÝ犧m›}®8í–eŸ Þ}®ØÌw÷¹àÝçŠ>_ô9âêóÏ£ý—Õ{Ïå¿¶úlËÖD‹w¬^i´x£Áê…«÷-^g°ês°z™Ñ|³ês°ÑlV}V}ަ›­>Û|³Õç`»o¶úmØ}X}V}ަ›­>G›vVŸƒUŸ£ùfÕçÿÚês´Ë®¹úl÷ÍVŸƒ¾Ùês°ês°·o¶úìl6«>GóͪÏÁªÏÑt³ÕçhºÙês°ês4Ýlõ9ØË7[}ööÍVŸÿk>'¬>g6é£ÏWŸ3^¶ê£Ï «ÏO¿lõ9ã´i}Nønæ[}NX}NxuóUŸŽn¾êsFïÑçŒúÔ>úœððçöÑç„ÕçŒÓ¶}ô9aõ9ã°m}N8ºùªÏ g3ßêsÆSïÊêsÆ©weõ9aõ9àês·ŸF}ΨçÑGŸ3NÝöjŽñ>gÔCé£Ï ·ìsF=Ë?úœQO¦>'lÎó>'|7óæHÿèóñÑçŒúÜ>úpõ9ãÐË®>'¬>g¼lÛGŸVŸ3ž¶í£Ï§Ý²GŸVŸ36óUŸVŸ3ú|«ÏÿÅìóñÍ‹¿,Þk±ïsI–}Ž¶Ý­)ö}§Ñâ•û¾ÑhñB£Åû,ö}Ñ¢ÏÑâeóÍ¢ÏÑF³Yô9Zô¹˜n–}޶ùfÙçh»o–}.6ì>dŸ£EŸ‹éfÙçbÓîCö9Zô¹˜o}N–}.vÙ5³ÏÑvß,ûíðͲÏÑ¢ÏÑÞ¾Yö9ÚÙl}.æ›EŸ£EŸ‹éfÙçbºYö9Zô¹˜n–}ŽöòͲÏÑÞ¾Yö9Yõ9cô¹á°I«Ï³Ï /[µúœ1úÜðôËFŸN›¶úœñÝÌ—}Î}ÎxuóEŸ3Žn¾èsC¯úÜPŸÚêsÆÃŸÛêsÆèsÃiÛVŸ3FŸÛ¶úœqtóEŸ3Îf¾ìsÃSïJö¹áÔ»’}Î}Ž˜}ÎøöÓhõ¹¡žG«Ï §n{5ÇøêsC=”VŸ3nwŸêY¾úÜPO¦ÕçŒÍy¾úœñÝÌ7š#}õ9aõ¹¡>·ÕçˆÙç†C/›}Î}nxÙ¶ÕçŒÑ熧m[}n8í–UŸ3FŸ6óEŸ3FŸú|Ùç„Ùç×÷¥øËâ½û>—dÙçhÛÝšbßw-^i±ï/4Z¼Ïbß×-ú-^f1ß,úm4›EŸ£EŸ‹éfÙçh›o–}޶ûfÙçbÃîCö9Zô¹˜n–}.6í>dŸ£EŸ‹ùfÑçdÙçb—]3ûm÷ͲÏÑß,û-úíí›eŸ£ÍfÑçb¾Yô9Zô¹˜n–}.¦›eŸ£EŸ‹éfÙçh/ß,ûíí›eŸ“UŸ3FŸ›´ú1ûÜð²U«Ï£Ï O¿lô¹á´i«ÏßÍ|ÙçŒÑçŒW7_ô9ãèæ‹>7ÔùªÏ õ©­>g<ü¹­>gŒ>7œ¶mõ9cô¹á°m«ÏG7_ô9ãlæË>7<õ®dŸN½+ÙçŒÑçˆÙçŒo?VŸêy´úÜpê¶WsŒ¯>7ÔCiõ9ãv÷¹¡žå«Ï õdZ}ÎØœç«ÏßÍ|£9ÒWŸVŸês[}Ž˜}n8ô²ÙçŒÑ熗m[}Î}nxÚ¶Õç†ÓnYõ9cô¹a3_ô9cô¹¡Ï—}N¸úü“rY½×hñ\þk«ÏÁ¶lM´x§Áê•F‹7¬^h°zŸÑâu«>«—Í7«>ÍfÕç`ÕçhºÙês°Í7[}¶ûf«Ïц݇Õç`ÕçhºÙês´i÷aõ9Xõ9šoV}þ¯­>G»ìš«ÏÁvßlõ9Øá›Í3­`W6*Ú´ŸoŽlT°™GV´a?ßöó“‘JX~ÆË‹í§ü„uàg<ý²uàgÔí¶Ÿ:ðž¾Þ‡_¶ü„£›¯ü€çO†*ãÔmÏ-C•p÷o¶Ýö÷ûD¿Û¶ó•'VÆK·=ßþõ¶uàgÔ/¸í¬?c3_s.ØÎæ`ðAý–Û®æh°ý~è÷Üõp°]Íéà“aúÜîûËŸÛ}牕QŸÛ}?óÄJxe¨2ž~Ù:ð3NÛvßëÀxÔŸqèe:ðîÍ|Gø f¾£üŒ>ßñû–ùeëÀ8šãÙ>šóÙõ¹ÝGsBû ÑöÙœÑöÙÒ>¨'Ž}6Ç´}~¶ý ÔöÙœÔöÙÕ>¨gµý÷páóÍæ´¶Ïæ¸¶Ïæ¼öÁf¾æÄv¼7n?xÚ-;Þ»?·ÔçöxÞ¶íñ~e¨2¿ì;C•ðÌPe¼lÛã}e¨Þ‹G±™o~ÿ˜ŒâÔ»ò{ÂðùÎûoñ(ú|çžÿ²€ðþ[<ˆYëç÷3å/‹/e±ïw2YÖ:Úv²‰}?ØÐâûXìû±†µŽµ.ö­u´¨u´¨u1ß,¾ÐF³YÔ:Z|ˆéfYëh›o–µŽ¶ûfYëbÃîCÖ:Z|ˆéfYëbÓîCÖ:Z|ú‹ùfñÙO–µ.vÙ5³ÖÑvß,kíðͲÖÑ¢ÖŦý|YëhQëbÃ~¾ªuƨuÃË‹ªuƨuÃÓ/µn¨ÛU­3ž¾^Õ:cÔ:ãèæ‹ZGÌZ7œºmÖ:ãîßlU댇·U­^ºmÖ:cÔº¡~ÁU­6ó5炪uCý–«ZgÜü{®j±9T­3¾ü¹­Z7Ôç¶j1jÝðôËF­NÛ¶j1kÝpèe³Ö÷f¾¬uÆ£™/kÝÐçËZ7œzWFs<«Z7Ôç¶jÝPhUëŒÍ!­j±9¦U­êA­j±9ªU­3žÍ|³9­U­36絪uÆæÄVµnxÚ-«Z7Ôç¶j1jÝpøe£Ö£Ö /Û¶j1jݰ™/jÝpê]ÉZgŒZ7ôù²Ö£Ö W­>pþ²úRF‹ïämÕ:Ø–ŸlhñÁVßÇhñ±VµVµŽµVµVµŽæ›Õרh6«Z«ï4ÝlÕ:Øæ›­ZÛ}³UëhÃîêu°ú @ÓÍV­£M»«ÖÁêÓÍ7«ÏþmÕ:Úe×\µ¶ûf«ÖÁßlÕ:XÕ:Ú´ŸoÕ:XÕ:Ú°ŸïQë„U댗=Z'¬Zg<ý²UëŒºÝ£Ö O_ïQë„Uë„£›¯jpÕ:ãÔmW­îþÍö¨uÂÿÛµÎxé¶«Ö «Öõ îQëŒÍ|͹àQëŒú-÷¨uÂÍ¿çµNØœµNøòçöQëŒúÜ>j°jñôËV­3NÛöQ뀫Ö‡^vÕ:áÞÌ·jðhæ[µÎèó­ZgœzWFs<{Ô:£>·ZgÔ#Ú£Ö ›CÚ£Ö ›cÚ£Öõ ö¨uÂæ¨ö¨u³™o6§µG­6çµG­6'¶G­3žv˵ΨÏí£Ö «Ö‡_¶j°jñúÿùºÃÝh‘&JÂw42Ð U÷ccÈÌ*ô:¢~íj }>ÐtÅÌ®mÛ¾jpÔ:ãb¾QëŒ]ïʬuÂQëŒ>߬uÂQë±jýû|œþ±üR{¾“ɪÖѶx³‰=/6´ü>{^khYëhYëbO­£e­£e­‹ùfùu€Ö›e­£åw˜nVµŽ¶ùfUëh»oVµ.Öì>T­£åW€˜nVµ.Öí>T­£åÛ_Ì7Ëw?YÕºØe׬ZGÛ}³ªu´Ã7«ZGËZëöóU­£e­‹5ûùF­3f­^öXŒZgÌZ7<ý²Y놺ݨuÆÓ׵ΘµÎØVóe­#V­vݶjq÷o¶Q댇·Z7¼tÛªuƬuCý‚µn¸˜oq.µn¨ßr£Ö7ÿžµÎ¸8ŒZgüøs;jÝPŸÛQëŒY놧_6kݰ۶£Ö«Ö ›^¶jq_ÌWµÎx,æ«Z7ôùªÖ »Þ•¶8žZ7ÔçvÔº¡ÑF­3.i£ÖÇ´Që†zPµÎ¸8ªZg<óõÅimÔ:ãâ¼6jqqbµnxÚ-µn¨Ïí¨uƬuÃæ—ÍZgÌZ7¼lÛQëŒY놋ù²Ö »Þ•ªuƬuCŸ¯j1k°jýó|Åþcù¥,ö|'“U­£mñf{^lhù},ö¼ÖвÖѲÖÅžZGËZGËZóÍòë­-6ËZGËï1ݬjmóͪÖÑv߬j]¬Ù}¨ZG˯1ݬj]¬Û}¨ZGË·¿˜o–ï~²ªu±Ë®YµŽ¶ûfUëh‡oVµŽ–µ.Öíç«ZGËZköóZgÌZ7¼ì±µÎ˜µnxúe³Ö u»Q댧¯7j1k±­æËZG¬Z7ìºmÕ:ãîßl£Öÿnµnxé¶UëŒYë†ú7jÝp1ßâ\0jÝP¿åF­3nþ=7jqq:µÎøñçvÔº¡>·£Ö³Ö O¿lÖºa·mG­#V­6½lÕ:㾘¯jñXÌWµnèóU­v½+mq<µn¨Ïí¨uC=¢Zg\ÒF­3.Ži£Ö õ 6jqqTµÎx.æë‹ÓÚ¨uÆÅymÔ:ãâÄ6jÝð´[6jÝPŸÛQëŒYë†Í/›µÎ˜µnxÙ¶£Ö³Ö óe­v½+UëŒYë†>_Õ:cÖ:á¬õûƒø/e´üNþk³ÖÁ¶z³¡å‹ l|£åk lÔ:بu´¬u°Që`£ÖÑ|³ñuÖ›ZßhºÙ¬u°Í7›µ¶ûf³Öњ݇Yë`ã+M7›µŽÖí>ÌZo4ßl¼ûÿÚ¬u´Ë®9kl÷Íf­ƒ¾ÙöÓ+W·Ÿ:·2ž6÷¶m•«ŒÝß¶½r•ð¨s+c³ÍïúñËŽc?ãe³ßÿ¢>¶ûý›Hóc?á8ö3.æÇ~Àýg1ß>Žý„Ûb¾kñ‚ß®Å~»¯øõ¿]_ÿbÜ®Å[þF}Ío×â=¿]‹ýúÖڮūþFŸ¯-^ö[[¼íoÔW×Öïû­‹ùÚ⿵Å+k‹wþ~œþÜîÇUçVF}n÷£Õ¹•°×¹•ñ²m÷ÏO[ ·:ö3ž~Ùqìgì~Ùqì'ü,æûŒc?áw1ßç¬s+ã¥wås­æÇ~FïøY|éÞ¨Ïíñ³øÚ=~ß»7êïñ³øæ½Q+ÇOþƯXnl~ÙÓ,ÇϵšïòCËñÓVóåb1ôù¶ŸúÏŒ]ïÊï ÃçÛò¯± þ‰>·Çouºíovès{ãé—=+W»_6ÿ& c«\elºíÙ+W¯ü›,†—nû >ß•“ÅÐ绎úOŒ>ßõ©ÿd@˜“ÅPç«f?žÿãËf{&dÕìh[KÄžfGËf{Î$hy¢CËØsžCËfGËÓœ˜o–g9´¶Ø,OrhyÓͪÙÑ6߬šm÷ͪÙŚ݇jv´<¿‰éfÕìbÝîC5;Z6»˜o–ÍNVÍ.vÙ5«ÙÑv߬šíðÍF³#V³ž6÷hvÃnƒfgÌf7l¶ùhvÆlvÃËfÍÎx­æËfgÌf7\Ì—ÍŽXÍnØô²Õìˆ×â?šqñŠÍÎøõ/ÆÑì†úšÍθxÑfg\¼êG³#¶ÅË~4»¡¾ºF³3‹ùÚâ?šqñÎÍΘÍn¨ÏíhvÆlvÃ˶ÍθE³ž~ÙlvÃî—Ífgü,æ«fgü.æ«f7¼ô®T³3f³ê|£Ù õ¹ÍθøÞÍθøæÍΘÍÎøõËhvÆÓ,£Ù õÐ2š1›ÝÐç«f7ìzWªÙ³Ù«Ù³Ù¿þÜŽfgÌf7ì~ÙlvÆlvæÛV³#V³^ºm5;c6»¡ÏWÍnèóU³3f³ê|Õìûs|ùDzÙÅžƒ Y5;ÚDZ§ÙѲÙÅž3 ZžèÐò@'öœçвÙÑò4'æ›åY­-6Ë“ZäÄt³jv´Í7«fGÛ}³jv±f÷¡š-ÏobºY5»X·ûPÍŽ–Í.æ›e³“U³‹]vÍjv´Ý7«fG;|³ÑìˆÕ솧Í=šÝ°Ûà£Ù³Ù ›m>š1›Ýð²ÙG³3^«ù²Ù³Ù óe³#V³6½l5;b5;ãâ ?šÝPßñ£ÙoùÑ쌋÷ühvC}kf7ôùÚâe?šÝP_]£ÙÅ|mñÆÍθxçfgÌf7Ôçv4;c6»áeÛŽfgÜ¢Ù O¿l6»a÷Ëf³3~óU³3~óU³^zWªÙ³Ù u¾Ñì†úÜŽfg\|ïŽfg\|óŽfgÌfgüúe4;ãéG–Ñì†zhÍΘÍnèóU³v½+ÕìŒÙìˆÕìŒÙìŒ_nG³3f³v¿l6;c6»aÓm«Ù«Ù /ݶš1›ÝÐç«f7ôùªÙ³Ù u¾Ùì÷—ó?6š-&m6;ØVÇ´lv°Ñìhy&':°q CËóØhv°qšCóÍÆY¬-6'9°qCÓÍf³ƒm¾Ùlv°Ý7›ÍŽÖì>Ìfç74Ýl6;Z·û0›l4;šo6šý¯ÍfG»ìš³ÙÁvßl6;Øá›½šp6;ãis¿š±Ûà÷?ýÚ:¯fgl¶ù«Ù G³3^6û«Ù ¯Õ|£Ù G³3.æÍ8›±éeg³^‹ü«Ù ¯øW³~ý‹ñÕìŒúš5;áâEÿjvÂÅ«þÕì€mñ²5;£¾º^ÍNx,æk‹7þ«Ù ïüW³ŽfgÔçöÕì„£Ù/ÛöÕì„[5;ãé—ÍÎØý²£Ù ?‹ùf³~óÍfg¼ô®Ìf'ÍΨó½šQŸÛW³.¾w_ÍN¸øæ}5;áhv¯X^ÍNxú‘åÕìŒzhy5;áhvFŸo6;c×»2›p4;àlvÂÑì„_n_ÍN8š±ûeG³ŽfglºílvÀÙ쌗n;›p4;£Ï7›Ñç›ÍN8šQç«fßžƒÏ?–Í.öLȪÙѶ8–ˆ=ÍŽ–Í.öœIÐòD‡–:±ç<‡–ÍŽ–§91ß,Ïrhm±YžäÐò '¦›U³£m¾Y5;Úî›U³‹5»Õìhy~ÓͪÙź݇jv´lv1ß,›¬š]ì²kV³£í¾Y5;Úá›fG¬f7šñZÍ—ÍΘÍn¸˜/›±šÝ°ée«Ù¯Å ~4;ãâ?šñë_Œ£Ù õ5?šqñ¢ÍθxÕfGl‹—ýhvC}ufg<óµÅ4;ãâ?š1›ÝPŸÛÑìŒÙ솗m;šq‹f7<ý²Ùì†Ý/›ÍÎøYÌWÍÎø]ÌWÍnxé]©fgÌf7ÔùF³ês;šqñ½;šqñÍ;š1›ñë–Ñ쌧YF³ê¡e4;c6»¡ÏWÍnØõ®T³3f³#V³3f³3~ý¹ÍΘÍnØý²ÙìŒÙì†M·­fG¬f7¼tÛjvÆlvCŸ¯šÝÐç«fgÌf7ÔùªÙž¯õ,›]ì9˜U³£mq,{š-›]ì9“ å‰-tbÏy-›-Osb¾YžåÐÚb³<É¡åANL7«fGÛ|³jv´Ý7«fkvªÙÑòü&¦›U³‹u»ÕìhÙìb¾Y6;Y5»Øe׬fGÛ}³jv´Ã7Ûö=έ†—ýÛž¿6˜1m°ái?È¶ç¯ 6ìþ£ä±Ÿ1ý†Íž€mÏc?c_Í×ãûñÈc?㶘ïÈc?㾘ïÈc?cû?‹ùÚ⻵Å'öFýÈnmñ™ÝÚâC{£~j·¶øØn}ñ¹½Q_v[_|r·¾øèÞ¨ŸÝ­¯>¼¿Øý²yìgü.æëyìgßïô°ËÞ1¦Ïíqÿ=µ[vÜ¿Kʶ½QŸÛãþ;O¶íqÿÉfÛöÆÓ/›­Å°ûeóïµ0öÈUæÛî?‹ùöü‹-†—ޕ߆Ϸç_l1ôùöü‹-†>ßï!òãxùs{㥷ì÷éÏíïAòG·ýÅS·mù[ »^¶å_laܽ,olºíïYÓçkù[ }¾öõ¼ÌfÍŽ¦›ÍfGëvf³ƒã?šo6ÿm6;ÚeלͶûf³ÙÁßìÕ쌗ý¯f'ÍÎxÚòjvÆî?ÊhvÂÑìŒÍž€W³öÕ|£Ùg³n‹ùf³î‹ùf³Žf'ü,æk‹ì«Ùõ#ûjvÂŇöÕì„‹í«Ùõe÷jvÂÅG÷Õì„«ïlvÂÑì„ßÅ|³Ù ÏÕ|£Ùõ½÷jvF}n_ÍN8š±Ù¶¯f'ÍÎxùeG³Žfgßlö¿øjvÂÑì„n_ÍN8šp4;ãé—ÍÎØý²£Ù G³36Ýv6;áhvÆKïÊlvÂÑìŒ>ßlvFŸo6;áåÏí«Ù Ûâ¹ÍÎxê¶³Ù»^v6;áîeùjvÂc1ßlvFŸo6;áhvÆÅ|£Ùó­º<­=™ýe³‹=ýIVÍŽ¶EŠ=ÍŽ–Í.öô'Z6;Z6»ØÓìhÙìhÙìb¾Y6;Z[l–ÍŽ–Í.¦›U³£m¾Y5;Úî›U³‹5»ÕìhÙìbºY5»X·ûPÍŽ–Ç1ß,ÿdÕìb—]³šm÷ͪÙÑßl4»áe?ÅhvÆlvÃÓ~Ñì†Ý”lvÆlvÃfOÀhvƾš/›±šq[ÌWÍθ/æ«fgÌfgü,æk‹ìhvCýÈŽfg\|hG³3.>¶£Ù õe7šqñÑÍθúðV³3f³3~óU³3ž«ù²Ù õ½7šÝPŸÛÑìŒÙì†Í¶ÍΘÍnxùe³Ù³Ù OÛv4»a÷Ë^«ùÚj¾lvƾ˜¯šÝÐç«f'ÍΘÍÎøñçv4;c6;c6»áé—Íf7ì~ÙlvÆlvæÛV³3f³^zWªÙ³Ù }¾jvCŸ¯šñòçv4;c[<·Õ솧n[ÍnØõ²Õ쌻—åhvÆc1_5»¡ÏWÍΘÍn¸˜/›Ýp1ߪËÓ®''ÿ±lv±§?ɪÙѶèO±§ÙѲÙÅžþDËfGËf{š-›-›]Ì7ËfGk‹Í²ÙѲÙÅt³jv´Í7«fGÛ}³jv±f÷¡š-›]L7«fëvªÙÑòø/æ›å៬š]ì²kV³£í¾Y5;Úá›Ý1Öã× Ư V¼lÓí¸âÜÊ¿6Xñ´Y·#ý†Ý†Ý>yìgÌc¿¡Ï÷Éc?㱘ï“Ç~ÆÏb¾Ï7¾ÿ O½+Ÿs1ß'ýˆ½ùC»õçVC}l÷ŸŸ8·vÛvÿÙâÜÊ¿6X±Ù¶ûOûóØoxùeóØÏxú|7žvËöŸk5_ûÛj¾¾š/ýˆÛÏb¾s÷çöF}n÷3~m°¢>·û¿6X0~m°bÓmÏ<ö3æ±ßðòËæ±Ÿ±?ÿ@ñÔ[vý,æ»òØÏ¸-æ»v?œÞØô®\Çb¾+ý„Çþ}þäˆàïëͶ½QŸÛc¿þûÚ¶ÇÞ"W /¿lüÅÆã'rÕð´m#þb‹b÷Ëî‹ùŽø‹-ŠÍnÙñ{ÂðùŽø‹-Š>ß±E0þb‹¢Ï×Qu£ÂÑYuômñÜöEX}QV7j&}ÑVGÿD®j]ýëIzôE_ݸ˜oQXG_$Ö‹ù‘u£Î÷ùYdÖçgÑY³Ù·¿ÿ ~<^h9Ï_›Í¶Õ8h¹ Øx²Ðr°ñ\fG˧ l4;Øx¦Ð|³ñDµÅf£ÙÁÆã„¦›ÍfÛ|³Ùì`»o6›­Ù}˜Í6šM7›ÍŽÖí>ÌfÍŽæ›fÿk³ÙÑ.»ælv°Ý7›Ívøf¯f'ÍN8šñ²M_ÍN8šñ´Y_ÍÎØmØW³Žfgôùf³‹ùf³~óÍfg<õ®ÌfgìzWf³ŽfgÔÇöÕìŒÝ¶}5;áhvÆfÛ¾šp4;ãå—ÍNxú|¯f'¼Vóf'l«ùúj¾Ñ쀳Ùg³3êsûjvF}n_ÍN8š±é¶³Ù G³3^~ÙÑì„£ÙO½e³Ù»Þ•Ùì„£Ù›Þ•Ùì„£Ùÿâ«Ù G³3êsûjvÂÑ쌗_v4;àlvÆÓ¶}5;c÷Ëî‹ùf³36»e¯f'ÍÎèóÍf'ÍÎèóµET½š°/²êÕìŒV¯fgÔLx5;áhvF­«W³.úêÕì„‹Âz5;ãb¾Ed½šý/¾špÑYÕìçóücùx‰=óU³£m1ŽØ³ Z>YbÏ2hù\¡e³‹=OZ6;Z>Sb¾Y>Qhm±Y6;Z>NbºY5;Úæ›U³£í¾Y5»X³ûPÍŽ–Í.¦›U³‹u»ÕìhÙìb¾Y6;Y5»Øe׬fGÛ}³jv´Ã7ÍΘÍΘÍnxÙ¦£Ù³Ù O›u4»a·aG³3f³ú|ÕìŒÇb¾jvÆÏb¾jvÃSïJ5»a×»RÍΘÍn¨íhvÃnÛŽfgÌf7l¶íhvÆlvÃË/›ÍÎxú|£Ù¯Õ|ÙìŒm5__Í—ÍŽXÍŽXÍn¨ÏíhvC}nG³3f³6ݶš1›ÝðòËf³3f³žz˪٠»Þ•jvÆÝ§£ÙÅ|Õì„£Ù³Ù õ¹ÍΘÍnxùe³Ù«Ù OÛv4»a÷Ëî‹ùªÙ ›Ý²ÑìŒÙì†>_5;c6»¡Ï×Q5š±/²j4»¡†ÕhvCÍ„ÑìŒÙì†ZW£Ù}5šqQX£Ù ó-"k4;áhvÆEgU³Ÿwç?–—Ø3Y5;Úãˆ=Û å“%ö,ƒ–ÏZ6»ØóT¡e³£å3%æ›å…Ö›e³£åã$¦›U³£m¾Y5;Úî›U³‹5»ÕìhÙìbºY5»X·ûPÍŽ–Í.æ›e³“U³‹]vÍjv´Ý7«fG;|³ÑìŒÙìŒÙ솗m:š1›Ýð´YG³vv4;c6»¡ÏWÍÎx,æ«fgü,æ«f7<õ®T³v½+ÕìŒÙì†úØŽf7ì¶íhvÆlvÃfÛŽfgÌf7¼ü²Ù쌧Ï7šñZÍ—ÍÎØVóõÕ|ÙìˆÕìˆÕì†úÜŽf7Ôçv4;c6»aÓm«Ù³Ù /¿l6;c6»á©·¬šÝ°ë]©fgÜýp:šñXÌWÍN8š1›ÝPŸÛÑìŒÙ솗_6›±šÝð´mG³v¿ì¾˜¯šÝ°Ù-ÍΘÍnèóU³3f³ú|mU£Ùû"«F³jXf7ÔLÍΘÍn¨u5šqÑW£Ù…5šÝp1ß"²F³Žfg\tÖlö{ál<^h9Ï_›Í¶Õ8h¹ Øx²Ðr°ñ\fG˧ l4;Øx¦Ð|³ñDµÅf£ÙÁÆã„¦›ÍfÛ|³Ùì`»o6›­Ù}˜Í6šM7›ÍŽÖí>ÌfÍŽæ›fÿk³ÙÑ.»ælv°Ý7›Ívøf¯f'ÍN8šñ²M_ÍN8šñ´Y_ÍÎØmØW³Žfgôùf³‹ùf³~óÍfg<õ®ÌfgìzWf³ŽfgÔÇöÕìŒÝ¶}5;áhvÆfÛ¾šp4;ãå—ÍNxú|¯f'¼Vóf'l«ùúj¾Ñ쀳Ùg³3êsûjvF}n_ÍN8š±é¶³Ù G³3^~ÙÑì„£ÙO½e³Ù»Þ•Ùì„»N_ÍNx,æ›Íþ_ÍN8šQŸÛW³Žfg¼ü²£Ùg³3ž¶í«Ù»_v_Ì7›±Ù-{5;áhvFŸo6;áhvFŸ¯-¢êÕì€}‘U¯fgÔ°z5;£f«٠G³3j]½špÑW¯f'\Ö«Ùó-"ëÕìñÕ섋Ϊfÿ<óÿcùx‰=óU³£m1ŽØ³ Z>YbÏ2hù\¡e³‹=OZ6;Z>Sb¾Y>Qhm±Y6;Z>NbºY5;Úæ›U³£í¾Y5»X³ûPÍŽ–Í.¦›U³‹u»ÕìhÙìb¾Y6;Y5»Øe׬fGÛ}³jv´Ã7kù›§ÑòO£}}³–¿ví\lvEõˆùf-š-‹QL7ëÙ‹bºYÏZDËXÓÍz¦"ÚÇ7ëŠh_ßì÷«õÇ®¹}ò×L3¶èÃf“nŸü5Óˆßü5Ó†—­º}ó×L3f&ž~ÙÌDÃnÓnßÌDÆïb¾_l~ÙÌDÆk5_f"c[Í—™h¨óí[þšiC}j÷mÎa<ü¹½ñ´m÷-Í´a·m÷-3‘13Ѱٶû–™ÈØVóe&2öÅ|ûOtŽá©weßó홉Œûb¾=3ñúøs»__?î×éÏízݯü5Ó†]·½ÇøýZœãoÔCéÞ'ùý÷(ñ£Û¶ÅY~o‹Ãüz2ÝÛâ8¿·ÅyþF=Ðïí»˜¯-Žô7ê|Çñûz[¡>·ÇÑãOÔ ~~ü¹½±ée?¿§?Ûöøìñ¯7 /Ûöøä_øaÌ¿ðcxÚ¶Ç绘ï»Ý²ãs®æË¿ðc¸˜/ÿÂcþ…CŸï›á‡pöyýã—Ï5Z>—mö9ØV­‰–Ÿi°ñ‘FËO4Øø@ƒÏ3Z~œÁFŸƒ3šo6ú¬-6}6úM7›}¶ùf³ÏÁvßlö9Z³û0ûlô9šn6û­Û}˜}6úÍ7}þ×fŸ£]vÍÙç`»o6ûìðÍfŸƒ>ûúf³ÏÁÎÅf£ÏÑ|³Ñç`£ÏÑt³ÙçhºÙìs°ÑçhºÙìs°o6ûìë›Í>ÿk¯>'}ÎØlÒWŸÎ>g¼lÕWŸŽ>g<ý²£Ï»MûêsÂïb¾Ùç„£Ï ¯Õ|£Ï Ûj¾ÑçŒ:ß«Ïõ©}õ9ááÏí«Ï GŸ3vÛöÕ焣ϛmûês¶šoô9a_Ì7ûœñÔ»2ûœ±ë]™}N8úpö9á×O£¯>gÔóè«Ï»n{-Žñ¯>gÔCé«Ï ·êsF=Ë¿úœQO¦¯>'\œç_}Nø]Ì×GúWŸÿÅWŸ3êsûêsÀÙçŒM/;ûœpô9ãeÛ¾úœðS}ÎxÚ¶¯>gìvË^}N8úœq1ßèsÂÑçŒ>ßìó¿X}~<Ÿ˜,?×bÏsIV}޶EkŠ=Ÿi´üH‹=Ÿh´ü@£åçYìù8£eŸ£å‡YÌ7Ë>Gk‹Í²ÏѲÏÅt³ês´Í7«>GÛ}³ês±f÷¡ú-û\L7«>ëvªÏѲÏÅ|³ìs²ês±Ë®Y}޶ûfÕçh‡oV}Ž–}ŽöõͪÏÑÎÅfÙçb¾Yö9Zö¹˜nV}.¦›UŸ£eŸ‹éfÕçh߬úíë›UŸ“>gÌ>7l6éèsÄêsÃËV}Θ}nxúe³Ï »M;úœñ»˜¯úœ1ûœñZÍ—}ÎØVóeŸê|£Ï õ©}Îxøs;úœ1ûܰ۶£Ï³Ï ›m;úœ±­æË>gì‹ùªÏ O½+Õç†]ïJõ9cö9bõ9ã×O££Ï õ<:úܰë¶×â?úÜP¥£Ï·èsC=Ë>7Ô“éèsÆÅy~ô9ãw1_[éGŸŽ>7Ôçvô9bõ¹aÓËVŸ3fŸ^¶íèsÆìsÃÓ¶}nØí–>gÌ>7\Ì—}Θ}nèóUŸVŸïÏÛèËϵØó\’UŸ£mÑšbÏg-?ÒbÏ'-?Ðhùy{>ÎhÙçhùaóͲÏÑÚb³ìs´ìs1ݬúmóͪÏÑv߬ú\¬Ù}¨>GË>ÓͪÏź݇ês´ìs1ß,ûœ¬ú\ì²kVŸ£í¾Yõ9Úá›UŸ£eŸ£}}³ês´s±Yö¹˜o–}Ž–}.¦›UŸ‹éfÕçhÙçbºYõ9ÚÇ7«>GûúfÕçd£Ï³Ï ›M:ú±úÜð²UGŸ3fŸž~ÙìsÃnÓŽ>gü.æ«>gÌ>g¼VóeŸ3¶Õ|Ùç†:ßèsC}jGŸ3þÜŽ>gÌ>7ì¶íèsÆìsÃfÛŽ>gl«ù²Ïûb¾êsÃSïJõ¹a×»R}Θ}ŽX}ÎøõÓèèsC=Ž>7ìºíµ8Æ>7ÔCéèsÆ-úÜPÏò£Ï õd:úœqqž}Îø]Ì×GúÑç„£Ï õ¹}ŽX}nØô²ÕçŒÙ熗m;úœ1ûÜð´mGŸv»e£Ï³Ï óeŸ3fŸú|Õ焳ÏïÏÚ?6>×hù\þµÙç`[µ&Z~¦ÁÆG-?Ñ`ã 6>Ïhùq}6>Ìh¾Ùès°¶Ølô9Øès4Ýlö9Øæ›Í>Û}³ÙçhÍîÃìs°ÑçhºÙìs´n÷aö9Øès4ßlôù_›}ŽvÙ5gŸƒí¾Ùìs°Ã7›}6úìë›Í>;›>GóÍFŸƒ>GÓÍfŸ£éf³ÏÁFŸ£éf³ÏÁ>¾Ùìs°¯o6ûü¯½úœpô9c³I_}8ûœñ²U_}N8úœñôËŽ>gì6í«Ï ¿‹ùfŸŽ>'¼Vó>'l«ùFŸ3ê|¯>gÔ§öÕ焇?·¯>'}ÎØmÛWŸŽ>gl¶í«Ï Ûj¾Ñç„}1ßìsÆSïÊìsÆ®weö9áèsÀÙç„_?¾úœQÏ£¯>gìºíµ8Æ¿úœQ¥¯>'ܪÏõ,ÿêsF=™¾úœpqžõ9áw1_[é_}þ_}ΨÏí«ÏgŸ36½ììsÂÑ猗mûêsÂÑ猧mûêsÆn·ìÕç„£Ïó>'}ÎèóÍ>ÿ‹ÕçÛóAüÇòs-ö<—dÕçh[´¦Øó™FË´Øó‰FË4Z~žÅž3Zö9Z~˜Å|³ìs´¶Ø,û-û\L7«>GÛ|³ês´Ý7«>kvªÏѲÏÅt³ês±n÷¡ú-û\Ì7Ë>'«>»ìšÕçh»oV}Žvøf=+4ZþRh±n?_Ï_ ÖãÈ*ÖìçÛ~òB3æßð²Çâ~é~ü²yà7<ý²yà7Ôíîßúµrÿ©N]ïÆæ—Í?c[Í—~Ä3!´a×mÏü…ÐŒ»³ÝØtÛßïýnÛ~¿4~tÛ3üŒ_ÿzÛÎ<ðêÜvæßp1ßâ\°‹ƒÁú-·]‹£Áöûý¡ßs7êá`»§ƒ;Ãô¹Ý÷?·ûž¿ÚPŸÛ}Ï_͘¿ÚðôËæß°Û¶ûž~Ä#ü†M/{äŸq_ÌwäŸñXÌwäßÐç;~?e~Ù<ð#¶Åñlo‹óÙúÜîmqB»Qh{_œÑö¾8¤Ý¨'޽/Ži{?ül{£Ôö¾8©í}qT»QÏjûïáÂçë‹ÓÚÞǵ½/Îk7.æ[œØŽïæÏí§Ý²ã»ûs{£>·Ç÷øïkÛßO„ªaóËæßâa<#T /Ûöø^ªŒù·x óåßâ1ìzW~O>ß™‹ÇÐç;óoñ0æßâ!¬ZÿyN(ÿX~)‹=ßÉdUëh[¼ÙÄžZ~‹=¯5´¬u´¬u±§ÖѲÖѲÖÅ|³ü:@k‹Í²ÖÑò»@L7«ZGÛ|³ªu´Ý7«ZkvªÖÑò+@L7«ZëvªÖÑòí/æ›å»Ÿ¬j]ì²kV­£í¾YÕ:Úá›U­£e­‹uûùªÖѲÖÅšý|£Ö³Ö /{,F­3f­ž~Ù¬uCÝnÔ:ãéëZgÌZgl«ù²Ö«Ö »n[µÎ¸û7Û¨uÆÃ¿ÛF­^ºmÕ:cÖº¡~ÁZ7\Ì·8ŒZ7Ôo¹Q댛ÏZg\œF­3~ü¹µn¨Ïí¨uƬuÃÓ/›µnØmÛQëˆUë†M/[µÎ¸/æ«Zg<óU­ú|Uë†]ïJ[ÏF­ês;jÝPh£Ö‡´Q댋cÚ¨uC=¨Zg\ÕF­3ž‹ùúâ´6jqq^µÎ¸8±Z7<í–Z7ÔçvÔ:cÖºaóËf­3f­^¶í¨uƬuÃÅ|Yë†]ïJÕ:cÖº¡ÏWµÎ˜µN8kýþþýÇÆ—2Z~'ÿµYë`[½ÙÐòÅ6¾Ñòµ6jlÔ:ZÖ:بu°Qëh¾Ùø:k‹ÍF­ƒï4ÝlÖ:Øæ›ÍZÛ}³YëhÍîìu°ñ€¦›ÍZGëvf­ƒ·?šo6ÞýmÖ:Úeלµ¶ûf³ÖÁßlÖ:بu´n?߬u°QëhÍ~¾ûŸ~í¡xÕ:ãeÅ«Ö G­3ž~ÙQëŒºÝ«Ö O_ïUë„£Ö Ûj¾Q뀳Ö»n;kpÔ:cÓmg­ŽZg¼tÛYë„£Öõ îU댋ùç‚W­3ê·Ü«Ö 7ÿž{Õ:áâtðªuÂ?·¯ZgÔçöUë„£ÖO¿ì¨uÆnÛ¾jpÖ:cÓËÎZ'ÜóÍZ'<óÍZgôùf­3v½+mq<{Õ:£>·¯ZgÔ#Ú«Ö ‡´W­.Ži¯ZgÔƒÚ«Ö GµW­ž‹ùúâ´öªuÂÅyíUë„‹Û«ÖO»e¯ZgÔçöUë„£Ö›_vÔ:á¨uÆË¶}Õ:á¨uÆÅ|£Ö»Þ•Yë„£Ö}¾Yë„£ÖÿbÔúý”ýýÏîÏw²Ñï72R¤:Óv¿ÕŒ~ßiLÏ7±ÑïûŒé©t¦'Ò~éIt¦§Ðt¨ç €©ùPO3=¯~#*ÒœiÓ¡"Ì™v*²Ü¨ÉòåLÏ‹ÞȆŠ"7ê²|ô8Óóz7Ò¡žW;R´¸Ñ%ŒgÚu¨èp¦C‡Š gz"ܨËÏ Îô¸Q“Ÿ+û[ìÉoµKžŒo±§½ÕN½æSÞj6Xv·Ø©“eu‹=Ñ-Ö›=ÉÍÅ­ÖmÏèm±]¿›²¶ÅývÊÖV»lÏ(m±'´Õì+*3[Í7ó¯óll5ûžÊÂÛô›*ûZ̿Գ®Å>ú|f[«Ùó™e-ö„µÚ©×|²Z­ËžÕlÑÔjÍ®E-¶ûfÑÓb‡o5­¦›EK«u»ÍRÒjö|fF«Ùa*#ZÌS™Ðb~ Ê€V³#U泘ª2žÅN߬û¹*ËYÌOVÙÍb~¶ÊjV;åe3«Ùó™Å,ö³ZÓk>¹,öÔ²Ú%{f+‹=©¬æ›=¡¬Öí>D&‹=•¬¦›E#‹=‰Œ–…ÜžµýÅ7ªÐý…J”…Œ´=¯+¡ûm…_¦B÷» ) ) Yè.d¤(d¤(d!*^ìH͇ŠBFŠ·º •…Œ´éPYÈH»•…,Ôdù,d¤x™ ÙPYÈB]–ÏBFŠ÷¸oq¢,d¡K.˜…Œ´ëPYÈH‡•…Œ…,ÔåçÊBFŠBjòsU!³E!›]ò T!³E!›zÍ(d3¬ ™íÔɪ٢ÙÚb³(d´,d³n{f!³íúÝT…Ìvè·S²Ùe{f!³E!›ÙWT²™oæ_çUÈfö=U…̶é7U2›©W!³}ôù¬B6³ç³ ™- ÙìÔkF!›uÙ³ - Ù¬Ù5³Ùvß, ™íðͲÍt³,d³n÷¡ùAª ÙÌžÏ*d3;LU!³ùqª ™ÍTUÈfv¤ªBfóCU2Ûé›u?WU!³ùɪ ™ÍÏVUÈf§Ü£*d3{>«Ù¢Íš^3 ™- Ùì’=«Ù¢Í|³(d³n÷! ™- ÙL7ËBf‹B&…¼ÿýÏËõŠ_¨i2Ж¯+¤x[Õ—)R¼«€ªª‘¢ªª‘t¨z±5ª ¨ÞêH6Ô(d M‡… ´ëP£‘š,? ¨^æH6Ô(d¤.ËBª÷8’Uoñ¿4 é’ ŽBÚu¨QÈ@‡µýôlE°í'Ï•l§,¼m[¶"[—·mÏV$;ò\ÉÖdæmûä¹’¬Îâl—,½mu'»›ÕYœ¬Îâl¾YÅÁößl¯³8Ùæ›]þ®Þ.Yo—¿­o³×õv}õ‹m»ü…}›½±·Ë_ÙÛåïìÛì]´]þÖ¾M7kþÞÞš¿¸o³ÒÖüÕ½µÃ7kþòÞš¿½·æ¯ïý8õùÜ+Ï•lö|îGËs%YÏs%Û%{îŸŸß 8lÏß°çó¶S¯yf+²u½æó×?ÄZ¶"[³=Ïž­öÛ›]ózþð‡Øæ›]ÏŸýPÓÍ®ç~¨éf×'ÿÝ:Ùó?Ôl³ìäëùÿPt²Ð}˜ ÊNFÚž£„ÐÝÉHÑÉB÷9)Ž^Hqòº^HÑÉHqìÒ¡âÐ…Ô|¨8r!ʼnKȆÊNFÚt¨ìd¤]‡ÊNj²|v2R´„l¨ìd¡.Ëg'#E' éPÑÉDÙÉB—\0;iס²“‘ª:-;Ùì”…«“ͺl\ÌlÖdæêd¶èd³K–®Nf»›E'³E'›ùfÑÉhÙÉfÍ®™Œvù»º:™ÍßÖÕÉl_ýb«N6³7vu2›¿³«“Ùü­]ŒÖü½]lf/¤êd¶Ã7kþò®Nfó×wu2[t²™=ŸÕÉlÑÉf—ìY̶=lvê5£“ͺ^3:™íã›e'³}}³ìd³ËîCv2[t²™mVlfÏgu2›kV'³ù÷fu2[t2ÛWÏÕÉl§ž2ª“ÍìœQÌl¦›e'›u»ÙÉlÑÉhÙÉlÑÉl_}>«“Ù¢“ͺ^3:™-:Ù¬ÙžÙÉhÙÉf—í™Ìl¦›e'›éfÙÉlÑÉf¶Ùèäú§/ªNFŠÃÄ_ ´åQ):¨:)Î@uôª“R¼€ª“êØ…¤CÕ¡ ¨ùPu䪒 5:hÓ¡F'í:Ôèd¤&ËNªƒ’ 5:©Ëò£“ª“‘t¨êä¿4:é’ ŽNÚu¨ÑÉ@‡5;lt2Û) ÏNfë²ñìd²êd¶&3ÏN&«Nf»déÙÉd×b³êd²êd6߬:lt2[³kŽN»ü]=;™ÌßÖ³“ɾúÅ6;™ÍÞØ³“Éü=;™ÌßÚ³“Áš¿·g'³Ù iv2Ùá›5yÏN&ó×÷ìd²êd6{>g'“U'³]²çìd²-;™íÔkV'³u½fu2ÙÇ7LöõÍF'³]vF'“U'³Ùf³“ÙìùœLæßš³“Éü{sv2Yu2ÙWϳ“ÉN=eÌNf³sÆìd²êd6Ýlt2[·û0:™¬:lt2Yu2ÙWŸÏÙÉdÕÉl]¯YLVÌÖlÏÑÉ`£“Ù.Ûst2Yu2›n6:™M7LVÌf›e'ÿ–Ãõ‡¢“…îÃQv2Òö%„îNFŠNºÏHqôBŠ“—Ð}ðBŠNFŠc—‡.¤æCÅ‘ )N\B6Tv2Ò¦Ce'#í:Tv²P“峓‘â %dCe' uY>;):YH‡ŠN&ÊNºä‚ÙÉH»•ŒtèPÕÉhÙÉf§,\lÖeãêd¶èd³&3W'³E'›]²tu2ÛµØ,:™-:ÙÌ7‹NFËN6kvÍìd´ËßÕÕÉlþ¶®Nfûê[u²™½±«“Ùü]Ìæoíêd´æïíêd3{!U'³¾Yó—wu2›¿¾«“Ù¢“Íìù¬Nf‹N6»dÏêd¶íéd³S¯lÖõšÑÉlß,;™íë›e'›]v²“Ù¢“Íl³êd3{>«“Ùü[³:™Í¿7«“Ù¢“Ù¾zƨNf;õ”QlfçŒêd¶èd3Ý,;Ù¬Û}ÈNf‹NFËNf‹NfûêóYÌlÖõšÑÉlÑÉfÍöÌNFËN6»lÏìd¶èd3Ý,;ÙL7ËNf‹N6³Í²“¿Ï_Ëø‡¢“…îÃQv2Òö%„îNFŠNºÏHqôBŠ“—Ð}ðBŠNFŠc—‡.¤æCÅ‘ )N\B6Tv2Ò¦Ce'#í:Tv²P“峓‘â %dCe' uY>;):YH‡ŠN&ÊNºä‚ÙÉH»•ŒtèPÕÉhÙÉf§,\lÖeãêd¶èd³&3W'³E'›]²tu2ÛµØ,:™-:ÙÌ7‹NFËN6kvÍìd´ËßÕÕÉlþ¶®Nfûê[u²™½±«“Ùü]Ìæoíêd´æïíêd3{!U'³¾Yó—wu2›¿¾«“Ù¢“Íìù¬Nf‹N6»dÏêd¶íéd³S¯lÖõšÑÉlß,;™íë›e'›]v²“Ù¢“Íl³êd3{>«“Ùü[³:™Í¿7«“Ù¢“Ù¾zƨNf;õ”QlfçŒêd¶èd3Ý,;Ù¬Û}ÈNf‹NFËNf‹NfûêóYÌlÖõšÑÉlÑÉfÍöÌNFËN6»lÏìd¶èd3Ý,;ÙL7ËNf‹N6³ÍF'o?¨:)it2ЖG ¤èd êd¤8GÕÑ ¨N^HqðªNªc’U‡. æCÕ‘ ¨N\H6Ôèd M‡ ´ëP£“‘š,?:¨ZH6Ôèd¤.ËNªNFÒ¡ª“ÿÒèd¤K.8:hסF':Ô¶ïy®d»äþ¶ÙŠdŸ”[óOåÖýcy›½À¶îÌ­û'ó6ûhn}ñÙüµ®×¬³8Ù×7ëu';›ýžÅõš—¾ËöOÏs%›=Ÿû÷'Ï•d[ž+Ùšì¹÷ú|ÞfÏç±}ÿûÈžÇvf+²zÍ+[‘­ë5ã¯D°õlE¶f{î?¾Ù'Âì²ûð{.ÐÍöø;fºÙþɷΦ›ýžô>j—>Ÿ·]v~{ú|þžö~lÏ_;mÏö“­ÈÖíšmËV$Ûµìnk¶çïyP7kñw"Ìt³öÕ¼;Zü3ß,þN„™o¶ˆá Ï=À¿,tçQv2ÒöäŸÐÝÉHÑÉBwþ!E'#E' ÝŒŒ,¤CE'#5*:):YȆÊNFÚt¨ìd¤]‡ÊNj²|v2Rt² •,Ôeùìd¤8“ éPq"'ÊNºä‚ÙÉH»•ŒtèPÕÉf—üϯNf‹N6;å'¨N6ëú3D'³E'›5¹ßÕÉl}±Yt2Zv2Ûæ›e'³í¾Yv2[t2ÛÇ7kþy¬N6³Odu2›&«“ÙüSYlf/°êd6ÿdV'³->›ÙÉlÑÉl_ß,;™í\llfï²êd3{>«“Ù¢“ÍšìYÌlvé5£“Ù¢“ÍNÙ³:Ù¬ë5¯Åfm±Yt2[÷Ͳ“Ít³ìd²êd¶èd¶>ŸÕÉlÑÉlÑÉf§^3:Ù¬ë5£“Ù¢“Íší™ÌlvÙ}ÈNf‹N6ÓͲ“Ít³ìd¶KŸÏêd¶æÏgv²Ùi{f'›u»fv2Û®eWÌvøfÙÉfºYv2[t²™olæ›-b8è¸Çù—¢“…îü#ÊNFÚžüº;):YèÎ?¤èd¤èd¡»“‘¢“‘¢“…t¨èd¤æCE'#E' ÙPÙÉH›•Œ´ëPÙÉBM–ÏNFŠN²¡²“…º,ŸŒgr!*NäDÙÉB—\0;iס²“‘ª:Ùì’ÿùÕÉlÑÉf§üÕÉf]†èd¶èd³&÷»:™­/6‹NFËNfÛ|³ìd¶Ý7ËNf‹NfûøfÍ?ÕÉfö‰¬NfóÏdu2›*«“ÍìVÌæŸÌêd¶Åg3;™-:™íë›e'³‹Í¢“Íì]VlfÏgu2[t²Y“=«“Ù¢“Í.½ft2[t²Ù){V'›u½æµØ¬-6‹Nfë¾Yv²™n–LVÌÌöÑç³:™-:™-:ÙìÔkF'›u½ft2[t²Y³=³“Ù¢“Í.»ÙÉlÑÉfºYv²™n–ÌvéóYÌÖüùÌN6;mÏìd³n×ÌNf۵쪓Ùß,;ÙL7ËNf‹N6óÍ¢“Í|³E mýU'#Eþý¥ÑÉ@[æRt2Pu2RäPu2Pu2Rt2Pu2Pu2’U Ô|¨êd êd$jt2ЦCNÚu¨ÑÉHM– TŒdCNFê²üèd :“#éPu"ÿK£“‘.¹àèd ]‡ tèP³“Ù.ùŸ?;™¬:™í”Ÿ`v2[ן¡:™¬:™­ÉýžLÖ›U'ƒN&Û|³ÑÉd»o6:™¬:™ìã›5ÿ<ÎNf³Oäìd2ÿLÎN&óOåìd6{ÍN&óOæìd²Åg³W'“U'“}}³ÑÉdçb³êd6{—ÍNf³çsv2Yu2[“=g'“U'³]zÍêd²êd¶SöœÌÖõš×b³¶Ø¬:™¬ûf£“Ùt³ÑÉmv2Yu2ÙGŸÏÙÉdÕÉdÕÉl§^³:™­ë5«“ɪ“Ùší9:™¬:™í²û0:™¬:™M7̦›N&»ôùœLÖüùÌvÚž£“Ùº]st2Ù®e7;™ìðÍF'³éf£“ɪ“Ù|³êd6ßlÃAû=ê¿,tçQv2ÒöäŸÐÝÉHÑÉBwþ!E'#E' ÝŒŒ,¤CE'#5*:):YȆÊNFÚt¨ìd¤]‡ÊNj²|v2Rt² •,Ôeùìd¤8“ éPq"'ÊNºä‚ÙÉH»•ŒtèPÕÉf—üϯNf‹N6;å'¨N6ëú3D'³E'›5¹ßÕÉl}±Yt2Zv2Ûæ›e'³í¾Yv2[t2ÛÇ7kþy¬N6³Odu2›&«“ÙüSYlf/°êd6ÿdV'³->›ÙÉlÑÉl_ß,;™í\llfï²êd3{>«“Ù¢“ÍšìYÌlvé5£“Ù¢“ÍNÙ³:Ù¬ë5¯Åfm±Yt2[÷Ͳ“Ít³ìd²êd¶èd¶>ŸÕÉlÑÉlÑÉf§^3:Ù¬ë5£“Ù¢“Íší™ÌlvÙ}ÈNf‹N6ÓͲ“Ít³ìd¶KŸÏêd¶æÏgv²Ùi{f'›u»fv2Û®eWÌvøfÙÉfºYv2[t²™olæ›-b8h»_¢ÿRt²ÐDÙÉHÛ“Bw'#E' Ýù‡Œ,tw2Rt2Rt²ŒÔ|¨èd¤èd!*;iÓ¡²“‘v*;Y¨ÉòÙÉHÑÉB6Tv²P—峓‘âL.¤Cʼnœ(;Yè’ f'#í:Tv2Ò¡CÝMÔÔâw¤²ÅïH5»dÇí¸žs%[üŽT³S¦ÜŽ8‹›usûÄYœ-ÎâfºÙ'Îâl‡oö‰³8ÛÇ7û|Ÿïm³ÓîÃçôÍ>qGëMέÇïH5³Çsÿ‰ß‘jÖeÏýg{Εlñ;RÍšì¹ÿÄYœ-Îâf—^3Îâl§nvÛ)÷hÿ¹›ÅYœ­-6ë‹Íâ,޶ýøfç®Ïçmö|îgüŽT3{>÷3~G*Û÷þ/ jÍö<ã,Îgq³K¯gq¶~ÿßÕN»G×ovÅYœmóÍ®]O·5»×á›]q';öïó7Ø~ßY²çmö|ûõßWö<öö´¢Ù¥×Œ¿vü<­hvÊžÇ'¬ë5wß숿aÖä¿çÝì÷\°Ù}8¾¾Ù'‚-þN„™nÖ¼nn³SûѽoŽßªÏg÷Â9º'Îmvt?ºGÎÑ?O+šYæý«AxtÛ|3O£{ëÜæ›yíÜf›}~¼w>?<£“_”ÿR=IH1Ê_ ´å$H±P=DH±P=B@ÕÉHñU'ÕヤCÕÃÔ|¨êd zrl¨ÑÉ@›5:hסF'#5Y~t2Pu2’ 5:©Ëò£“ª“‘t¨êä¿4:é’ ŽNÚu¨ÑÉ@‡5;™¬:™¬:™í’g'“U'³2åìd¶.cÎN&«NfÓÍF'“¾Ùèd²o6:™í´û0:™­Û}LVÌfçìd¶.{ÎN&«Nfk²çìd²êd¶K¯YLvêf³“É®ÅfÕÉdm±Y_lV 6:lt2›=Ÿ³“ÙìùœLVÌÖlÏÑÉdÕÉl—^³:™¬:™í´{4:™­Û}L¶ëéqv2Ùá›Nþk³“ɪ“ÙìùœLVÌvé5«“ÁF'³²çìd¶®×Ü}³ÑÉlMîÑìd²êd6Ýlt2Yu2›nÖ¼nf'ƒuï›ÙÉlV8³“Ùìè>;™¬:™Í2gv2™‡Îìd2OÙÉl¾™×Îìä¿6;™Ìƒ';ùçþâù—âIºG!ÊNFÚžI„îEâ!º÷@ŠG):Yè~€¢“‘âñÒ¡âáAj>Tt2R<9B6Tv2Ò¦Ce'#í:Tv²P“峓‘¢“…l¨ìd¡.Ëg'#E' éPÑÉDÙÉB—\0;iס²“‘ª:™-:™-:Ùì’«“Ù¢“ÍN™²:٬˘ÕÉlÑÉfºYv2Ûá›e'³}|³ìd³ÓîCv²Y·ûÌlfgu²Y—=«“Ù¢“ÍšìYÌlvé5£“ÙNݬ:™íZlÌÖ›õÅfÑÉhÙÉhÙÉfö|V'›ÙóYÌlÖlÏìd¶èd³K¯ÌlvÚ=ÊN6ëv²“Ùv==V'³¾Yv2Yu2[t²™=ŸÕÉlÑÉf—^3:-;Ùì”=«“ͺ^s÷Ͳ“͚ܣêd¶èd3Ý,;™-:ÙL7k^7ÕÉhÝû¦:ÙÌ §:ÙÌŽîÕÉlÑÉf–9ÕÉl:ÕÉlž:ÕÉf¾™×Nu2Yu2›Ïèäß/¥©ž$¤å/NÚr¤X¨"¤Ø¨! êd¤x€€ª“êñAÒ¡êáj>Tu2P=9H6Ôèd M‡ ´ëP£“‘š,?:¨:ɆŒÔeùÑÉ@ÕÉH:Tuò_ŒtÉG'í:Ôèd C‡šLVLVÌvÉŽ³“ɪ“ÙN™rv2[—1g'“U'³éf£“Éßlt2ÙÇ7ÌvÚ}ÌÖí>ŒN&«Nf³Çsv2[—=g'“U'³5Ùsv2Yu2ۥ׬N&;u³ÙÉd×b³êd²¶Ø¬/6«N 6:™ÍžÏÙÉlö|ÎN&«Nfk¶çèd²êd¶K¯YLVÌvÚ=ÌÖí>ŒN&Ûõô8;™ìðÍF'ÿµÙÉdÕÉlö|ÎN&«Nf»ôšÕÉ`£“ÙNÙsv2[×kî¾Ùèd¶&÷hv2Yu2›n6:™¬:™M7k^7³“Áº÷Íìd6+œÙÉlvtŸLVÌf™3;™ÌCgv2™§Îìd6ßÌkgvò_›LæÁüû`ü¾|ÿ¥çI2ú):™i»'1ú]„éyˆŒ~÷`z!¦§“~ ¦§“™žÇÇH‡z¦æC=Ìô<9F6Tt2Ó¦CE'3í:Tt²Q“壓™žN6²¡¢“º,Ìôt²‘õt2Rt²Ñ%ŒNfÚu¨èd¦C‡ÊN{:YìédµKvÌN{:Yí”)³“ÕºŒ™,öt²šn,vøfÑÉbß,:Yí´û¬Öí>D'‹=¬fgv²Z—=³“ÅžNVk²gv²ØÓÉj—^óéd±S7ËN»›=,Ö›õÅfO'³E'³E'«Ùó™¬fÏgv²ØÓÉjÍöŒN{:YíÒk>,öt²Úi÷(:Y­Û}ˆNÛõô˜,vøfÑÉhÙÉbO'«Ùó™,öt²Ú¥×|:™-:Yí”=³“Õº^s÷Í¢“՚ܣìd±§“Õt³èd±§“Õt³æu“ÌÖ½o²“Õ¬p²“Õìèž,öt²šeNv²˜‡Nv²˜§Nv²šo浓Œ–,æÁ“ÜîÃÖ¿O’Ð= Qv2ÒöL"t/‚‘нR;):YH‡ŠN&ÊNºä‚ÙÉH»•ŒtèPíù•ºLÏoÔeúêPíù}ºL§õü6]#ª=ýÉ&dCõ6!ªG®!E­ ÙP=Z é£Cõ(5¤¯õû½ø#Ü>ÏïÏkOs˜5™qû<¿?—íûüþ\µK–ܾÏïÏ‹N3;õšÑif]æÜ¾Ñil_ßìך^3:íZlÆÖ›E§™Ùfûöüþ\5{:÷mšƒíÐçó¶SöÜ·ç÷çªuÙsߢӨ¢ÓÌšì¹oÑilm±Yt[÷ÍöŸ§9ÌN»ûæ›íÑil»o¶G§¡]}>÷ë«ÇÅý:õù¼ÍŒûõüþ\µn{^~¸Þ/?]ßf§Æ½ùùzÿ=üØžÍOØ{ó#ömvtÜ›²÷æ§ìÛ옽·¯oÖü }›mv¿ï¬…Ùóyýþ{lŸ}>okvÍÏï!Mö<>ûóïÌ.Ùóø<CDìù"j§ìy|¾¾Ùçù"bçb³çoˆ¨ùfÏß{þ†ˆšnö}þ†ÚhâíçÕ§)À¿4šhËÔCŠO,P}`‘âó TW ú´"Ҩš¨>ªH:T51P󡪉ª‰‘l¨ÑÄ@›5šhסF#5Y~41P51’ 5š©Ëò£‰ª‰‘t¨jâ¿4šé’ Ž&Úu¨ÑÄ@‡5š¨šè«C&:}¨jb$ªš¨šɆMŒdC&ª&F²¡F}t¨ÑÄ@_j4ñ_šMLVMÌÖdÆÙÄ`£‰Ù.Yr61Y51۩׬&fë2çlb²¯o6š˜¬š˜ìZlVMLÖ›U³Ùf³‰ÙìéœMLvèó9›˜¬š˜­Ëž³‰Éª‰Ùšì9›˜¬-6«&&ë¾Ùhb¶ÓîÃhb¶n÷a41Y51Øhb²¯g³Ùq61[·=/?\Ï&f³Sãlb²-›˜ÍNس‰Ùìè8›˜ÌOÙ³‰É¾¾Yóƒölâ¿6›˜ÍžÏÙÄ`£‰Ùš]s41Y51Û%{Î&&«&f;eÏÙÄl]îÑlb²jb6ß¬š˜¬š˜M7Müײ‰¯ûÀñ/ŧVè~‰²‰‘¶'õ„îO,R|`…îÏ+R|\‘âÓ*tX‘¢‰‘â£*¤CE#5*š)šXȆÊ&FÚt¨lb¤]‡Ê&j²|61R4± •M,Ôeùlb¤hb!*š˜(›Xè’ f#í:T61Ò¡Ce#E#}u¨lb¤Ó‡Š&Ò¡¢‰‘¢‰…l¨lb!*›)šXȆÊ&FúèPÙÄH_*›˜¨š˜-šØ¬ÉŒÕÄhÙÄf—,YMÌMlvê5£‰ÍºÌYMÌöõͲ‰Ù¢‰Ù®ÅfÑÄlm±Y4±™mVMlfOg51Û¡Ïg51[4±Y—=«‰Ù¢‰ÍšìYMÌÖ›E³uß,›Øì´ûMlÖí>d³E£e³}õ¸XMlfÆjb³n{^~¸®&6³Sc51Ûö4±™°«‰ÍìèXMÌæ§ìjb¶¯oÖü ]MLVMlfÏg51Z6±Y³kf³E›]²g51[4±Ù){V›u¹GÕÄlÑÄf¾Y41[4±™n–ML–M|Þ‡‘)>µB÷H”MŒ´=©'tb‘â+t^‘â㊟V¡ûÊMŒU!*š©ùPÑÄHÑÄB6T61Ò¦Ce#í:T6±P“峉‘¢‰…l¨lb¡.Ëg#E éPÑÄDÙÄB—\0›iס²‰‘*›)šé«Ce#>T4±MŒM,dCe ÙPÙÄHÑÄB6T61ÒG‡Ê&FúêPÙÄDÕÄlÑÄfMf¬&FË&6»dÉjb¶hb³S¯MlÖeÎjb¶¯o–MÌMÌv-6‹&fk‹Í¢‰Íl³jb3{:«‰Ù}>«‰Ù¢‰ÍºìYMÌMlÖdÏjb¶¶Ø,š˜­ûfÙÄf§Ý‡lb³n÷!›˜-š-›˜í«ÇÅjb3;0V›uÛóòÃu5±™«‰Ù¶§‰Íì„]MlfGÇjb6?eW³}}³æíjb²jb3{>«‰Ñ²‰Íš]3›˜-šØì’=«‰Ù¢‰ÍNÙ³šØ¬Ë=ª&f‹&6óÍ¢‰Ù¢‰Ít³lb²ÑÄ¿_ºÿR}j‘âüK£‰¶L=¤øÄÕ)>¯@õqªO+R|Xª‰ê£Š¤CU5ªš¨šɆM ´éP£‰vj41R“åGU#ÙP£‰‘º,?š¨šI‡ª&þK£‰‘.¹àhb ]‡M tèP£‰ª‰¾:Ôhb Ó‡ª&FÒ¡ª‰ª‰‘l¨ÑÄH6Ôhb jb$j41ÐG‡M ôÕ¡Fÿ¥ÙÄdÕÄlMfœM 6š˜í’%g“U³zÍjb¶.sÎ&&ûúf£‰Éª‰É®ÅfÕÄdm±Y51›m6›˜ÍžÎÙÄd‡>Ÿ³‰Éª‰Ùºì9›˜¬š˜­Éž³‰ÉÚb³jb²î›&f;í>Œ&fëvF“Uƒ&&ûêqq61›g³uÛóòÃõlb6;5Î&&Û²‰Ùì„=›˜ÍŽŽ³‰Éü”=›˜ìë›5?hÏ&þk³‰ÙìùœM 6š˜­Ù5G“U³]²çlb²jb¶SöœMÌÖåÍ&&«&fóͪ‰Éª‰Ùt³ÑÄ-›ø{bþ¥øÔ Ý Q61Òö¤žÐý‰EЬÐýyEŠ+R|Z…î+R41R|T…t¨hb¤æCE#E ÙPÙÄH›•MŒ´ëPÙÄBM–Ï&FŠ&²¡²‰…º,ŸMŒM,¤CEe ]rÁlb¤]‡Ê&F:t¨¿î)~Û­P—Ÿ«ÇïºEêÏ‘R¨ÉϵýÄoºe‹S¸Ù%ÏÀö§p¶8…›zÍ8…›Ù`ÛOœÂÙN춦׌S8[[l§p´3~Ó­Y·=ÏøM·l»~7ÝÖlÏ߯ûvÚÎøM·f—íy~õ j;ãnf_QÛ§p3ß̿ηӿÏo³ï©íòoôí÷{À¾©n³ïôíò/õ»†ìùÜ÷>Ÿû¿éÖÌžÏ}ßtË¿éÖìÔkÆ)ܬ˞û§p´#NáfÍ®yÄ)œm÷ÍŽ8…³¾Ù§p3Ýìøýé5ãŽÖü µ7?IÝfÏçÞü,u›¦öî§©½ûqê6;&ìÝT{?ôèy›©öîgª½û¡ê6;Uí¿Gݬû¹jï~°Ú»Ÿ¬nóÍülu|7}>o;åß]ŸÏÛìù<¾Ç_Ùóø~žJ4kzÍøklçS‰f—ìy|¯§Ùâ¯}˜ùfñ×>̺݇ßsnvÆ_û0ÓÍÎøklñ×>Ȳ?÷¿Îþ—âUèþB%ÊBFڞוÐý¶BŠ/S¡û]……Œ…,t2Ò÷yO!E! éPñbGj>T2R¼Õ…l¨,d¤M‡ÊBFÚu¨,d¡&Ëg!#ÅË\ȆÊBê²|2R¼Ç…t¨x‹e! ]rÁ,d¤]‡ÊBF:t¨,d¤(d¡.?W2R²P“Ÿ« ™- Ùì’g  ™- ÙìÔkF!›Ù`UÈl§NV…Ì…ÌÖ›E!£e!›uÛ3 ™m×ï¦*d¶C¿ªÍ.Û3 ™- Ù̾¢ªÍ|3ÿ:¯B6³ï©*d¶M¿©ªÙüK½ ™í£Ïg²™=ŸUÈlQÈf§^3 ٬˞UÈhYÈfÍ®™…̶ûfYÈl‡o–…l¦›e!›u»ÍRUÈfö|V!›Ùaª ™ÍSUÈl~ ªB6³#U2›ªªÙN߬û¹ª ™ÍOVUÈl~¶ªB6;åU!›ÙóY…Ì…lÖôšQÈlQÈf—ìY…Ì…læ›E!›u»YÈlQÈfºY2[2Ù(äýï^®oT¤øBýK£¶|]!ÅÛ ¨¾L‘â]T… T…Œ… T… T…Œ¤CÕ‹¨ùPUÈ@õVG²¡F!m:Ô(d ]‡…ŒÔdùQÈ@õ2G²¡F!#uY~2P½Ç‘t¨z‹ÿ¥QÈH—\p2ЮCB:t¨QÈ@UÈH]~®QÈ@UÈHM~®YÈdUÈl—<³ÉªÙN½f2› 6 ™ìÔÉf!“U!“µÅfUÈ`£Ùºí9 ™l×ï¦YÈd‡~;ÍBf»lÏQÈdUÈlö5 ™Í7ó¯óYÈlö=5 ™lÓoªYÈdþ¥> ™ì£Ïç,d6{>g!“U!³zÍ*d¶.{ÎB…ÌÖ욣Évßl2Ùá›BfÓÍF!³u»ÍR³Ùìùœ…Ìf‡©YÈd~œš…LæªYÈlv¤š…L懪YÈd§oÖý\5 ™ÌOV³Éül5 ™í”{4 ™ÍžÏYÈdUÈlM¯Y…LV…ÌvÉž³ÉªÙ|³*d¶n÷a2Y2›n6 ™¬ ù¯e!ÿà¾(¾Q…î/T¢,d¤íy] Ýo+¤ø2ºßUHQÈHŸçM%t2R2R²/v¤æCE!#Å[]ȆÊBFÚt¨,d¤]‡ÊBj²|2R¼Ì…l¨,d¡.Ëg!#Å{\H‡Š·8Q²Ð%ÌBFÚu¨,d¤C‡ÊBFŠBêòse!#E! 5ù¹ªÙ¢Í.yªÙ¢ÍN½f²™ V…ÌvêdUÈlQÈlm±Y2Z²Y·=³ÙvýnªBf;ôÛ© Ùì²=³Ù¢Íì+ª ÙÌ7ó¯ó*d3ûžªBfÛô›ª ™Í¿Ô«Ù>ú|V!›ÙóY…Ì…lvê5£ÍºìY…Œ–…lÖìšYÈl»o–…ÌvøfYÈfºY²Y·ûÐü U…lfÏg²™¦ªÙü8U…Ìæª*d3;RU!³ù¡ª ™íôͺŸ«ªÙüdU…Ìæg«*d³SîQ²™=ŸUÈlQÈfM¯…Ì…lvÉžUÈlQÈf¾Y²Y·û…Ì…l¦›e!³E!“BþùûŸ—ë)¾PÿÒ(d -_WHñ¶ª/S¤xWyüªBFŠBªBªBFÒ¡êÅÔ|¨*d z«#ÙP£6j2ЮCBFj²ü(d z™#ÙP£‘º,? ¨ÞãH:T½ÅÿÒ(d¤K.8 hסF!:Ô(d *d¤.?×(d *d¤&?×,d²*d¶KžYÈdUÈl§^³ ™Í›…Lvêd³ÉªÉÚb³*d°QÈlÝö…L¶ëwÓ,d²C¿f!³]¶ç(d²*d6ûŠš…Ìæ›ù×ù,d6ûžš…L¶é7Õ,d2ÿRŸ…LöÑçs2›=Ÿ³ÉªÙN½f2[—=g!ƒBfkvÍQÈd»o6 ™ìðÍF!³éf£ÙºÝ‡æ©YÈlö|ÎBf³ÃÔ,d2?NÍB&óÕ,d6;RÍB&óCÕ,d²Ó7ë~®š…Læ'«YÈd~¶š…ÌvÊ=š…ÌfÏç,d²*d¶¦×¬B&«Bf»dÏYÈdUÈl¾Y2[·û0 ™¬ ™M7…LV…üײo~ûCñ*t¡e!#mÏëJè~[!Å—©Ðý®BŠBFŠBº ) ) YH‡Š;R󡢑â­.dCe!#m:T2Ò®Ce! 5Y> )^æB6T²P—峑â=.¤CÅ[œ( Yè’ f!#í:T2Ò¡Cm?ñ[PѶø-¨f§,¼mñ[Pͺl¼mñ[PÙâ· š5™yÛ>Ϲ’-Îâf—,½mqg»›ÅYœ-Îâf¾YœÅÑößl³8Ûæ›]þ®Þ.Yo—¿­o³×õöûù·/¶íòömöÆÞ.eo—¿³o³wÑvù[û6ݬù{{kþâ¾Í^H[óW÷Ö߬ùË{kþöÞš¿¾÷ãÔçs?â· šÙó¹ñ[PÙâ· š]²çþ‰ß‚ʶ=gq³S¯gq³®×Œ³8ÛÇ7ûÄYœíë›}Îç\ivÙ}ø\‹Íâ,nf›?þ•y›=ŸÇi?þ­y›}m?þ½y›0ŽŸø»l_=cÜÖôš§ž2ŽŸk±Ù¥çŒã§-6‹?ÿ`¦›mñ ̺݇ßsn¶Å߀@û {>ß 8lÏß°çó¶S¯y>­hÖõšñ— ØÚÓŠfÍö<ã/A ]ñ— Ì.Ûó·t³+þ„™nvÅ_‚0ÓÍ®øKlñ— Ìl³ìäíà_ŠNºDÙÉHÛs”º;i:Yè>G ÅÑ )N^B÷Á ):)Ž]B:TºšG.¤8q ÙPÙÉH›•Œ´ëPÙÉBM–ÏNFŠƒ– •,Ôeùìd¤èd!*:™(;Yè’ f'#í:Tv2Ò¡CU'£e'›²pu²Y—«“Ù¢“ÍšÌ\ÌlvÉÒÕÉl×b³èd¶èd3ß,:-;Ù¬Ù5³“Ñ.WW'³ùÛº:™í«_lÕÉföÆ®Nfówvu2›¿µ«“Ñš¿·«“Íì…TÌvøfÍ_ÞÕÉlþú®Nf‹N6³ç³:™-:Ùì’=«“Ù¶§“ÍN½ft²Y×kF'³}|³ìd¶¯o–lvÙ}ÈNf‹N6³Íª“Íìù¬NfóoÍêd6ÿÞ¬Nf‹Nfûê£:™íÔSFu²™3ª“Ù¢“Ít³ìd³n÷!;™-:-;™-:™í«Ïgu2[t²Y×kF'³E'›5Û3;-;Ùì²=³“Ù¢“Ít³ìd3Ý,;™-:ÙÌ6üûÂû—ª“‘â0ñ—F'my”@ŠNªNFŠsP½€êä…/ êd :v!éPuèj>T¹€êÄ…dCNÚt¨ÑÉ@»5:©Éò£“ê …dCNFê²üèd êd$ª:ù/NFºä‚­¾òvjt2СCÍNÌvʳ“Ùºl<;™¬:™­É̳“ɪ“Ù.Yzv2ٵج:™¬:™Í7«NÌÖ욣“Á.WÏN&ó·õìd²¯~±ÍNf³7öìd2gÏN&ó·öìd°æïíÙÉlöBšLvøfÍ_Þ³“Éüõ=;™¬:™ÍžÏÙÉdÕÉl—ì9;™lËNf;õšÕÉl]¯YLöñÍF'“}}³ÑÉl—݇ÑÉdÕÉl¶Ùìd6{>g'“ù·æìd2ÿÞœLVLöÕ3Æìd²SO³“Ùìœ1;™¬:™M7ÌÖí>ŒN&«NLVLöÕçsv2Yu2[×kV'“U'³5Ûst2Øèd¶ËöLV̦›NfÓÍF'“U'³ÙfÙÉ?÷pÿRt²Ð}˜ ÊNFÚž£„ÐÝÉHÑÉB÷9)Ž^Hqòº^HÑÉHqìÒ¡âÐ…Ô|¨8r!ʼnKȆÊNFÚt¨ìd¤]‡ÊNj²|v2R´„l¨ìd¡.Ëg'#E' éPÑÉDÙÉB—\0;iס²“‘ª:-;Ùì”…«“ͺl\ÌlÖdæêd¶èd³K–®Nf»›E'³E'›ùfÑÉhÙÉfÍ®™Œvù»º:™ÍßÖÕÉl_ýb«N6³7vu2›¿³«“Ùü­]ŒÖü½]lf/¤êd¶Ã7kþò®Nfó×wu2[t²™=ŸÕÉlÑÉf—ìY̶=lvê5£“ͺ^3:™íã›e'³}}³ìd³ËîCv2[t²™mVlfÏgu2›kV'³ù÷fu2[t2ÛWÏÕÉl§ž2ª“ÍìœQÌl¦›e'›u»ÙÉlÑÉhÙÉlÑÉl_}>«“Ù¢“ͺ^3:™-:Ù¬ÙžÙÉhÙÉf—í™Ìl¦›e'›éfÙÉlÑÉf¶YtòïrûûŸšŸN6ú=L E'3m÷QÂè·“™žN6ú=G0=G/¦çäeô{ðbz:™é9véPÏ¡‹©ùPÏ‘‹é9qÙPÑÉL›Ì´ëPÑÉFM–NfzZF6Tt²Q—壓™žN6Ò¡žNFŠN6ºä‚ÑÉL»ÌtèPÙÉlÑÉj§,œ¬Öeãìd±§“՚̜,öt²Ú%Kg'‹]‹ÍžN{:YÍ7{:™-:Y­Ù5£“Ù.Wg'‹ùÛ:;Yì«_lÙÉjöÆÎNówvv²˜¿µ³“Ùš¿·³“Õì…”,vøfÍ_ÞÙÉbþúÎN{:YÍžÏìd±§“Õ.Ù3;Yl»;YíÔk>¬ÖõšO'‹}|³èd±¯o¬vÙ}ˆN{:YÍ6ËNV³ç3;YÌ¿5³“Åü{3;Yìéd±¯ž1²“ÅN=ed'«Ù9#;Yìéd5Ý,:Y­Û}ˆN{:™-:Yìéd±¯>ŸÙÉbO'«u½æÓÉbO'«5Û3:™-:Yí²=£“ÅžNVÓÍ¢“Õt³èd±§“Õl³ÑÉûϪNFŠÃÄ_ ´åQ):¨:)Î@uôª“R¼€ª“êØ…¤CÕ¡ ¨ùPu䪒 5:hÓ¡F'í:Ôèd¤&ËNªƒ’ 5:©Ëò£“ª“‘t¨êä¿4:é’ ŽNÚu¨ÑÉ@‡µí{ž+Ù.ùŸ¿íG¶"Ù'Ï•l§üÛþÍs%[ן¡Îâdugkr¿·½Îâd}±YÏïm°£Îâd›ovÔYœl÷ÍŽ:‹“ÕYœìã›5ÿš[_|6­ë5ë,NöõÍzÅÉÎÅf¿gq½æ¥ï²ýÓó\ÉfÏçþýÉs%Ù–çJ¶&{îß=Ï•dG¶"ۥ׬³8YÅÙNÙsÿž¾Ù·Îâd×b³¶Ø¬ÎâdÝ7;ë,Φ›ýž¹æÝDö|Ûqÿͱ>Ÿ·Ùóylßÿ>²ç±ÙŠl§^óÊVdëzÍç¯DˆõlE¶f{î?¾Ù¾Ýó@í²ûð{.ÐÍöçïD¨éfû'ÿÝ:›nö{Òû¨]ú|ÞvÙ=ú=ìéóùûOlÏßzÚží'[‘­Û5Û–­H¶kÙÝÖlÏßó nÖž¿¡¦›µ¯æÝÑž¿¡æ›='BÍ7[ÄpP»_”ÿRt²ÐDÙÉHÛ“Bw'#E' Ýù‡Œ,tw2Rt2Rt²ŒÔ|¨èd¤èd!*;iÓ¡²“‘v*;Y¨ÉòÙÉHÑÉB6Tv²P—峓‘âL.¤Cʼnœ(;Yè’ f'#í:Tv2Ò¡CU'›]ò?¿:™-:Ù씟 :Ù¬ëÏÌlÖä~W'³õÅfÑÉhÙÉl›o–̶ûfÙÉlÑÉl߬ùç±:ÙÌ>‘ÕÉlþ™¬NfóOeu²™½Àª“Ùü“Y̶ølf'³E'³}}³ìd¶s±Yt²™½Ëª“Íìù¬Nf‹N6k²gu2[t²Ù¥×ŒNf‹N6;eÏêd³®×ü¿´;èäªâ(¾÷§èefÁÄUÕ]ï½m"@ŠR˜ÙEY% %J"¡Yßž®¾÷V9ö9Î/®ØÿzÝ®’§lÖO6‹Nf¾Yv²™n–LVÌÌvÕóYÌÌl¶ê5£“͆^3:™-:Ù¬ÛžÙÉlÑÉfÍîCv2[t²™n–l¦›e'³5=ŸÕÉlÝÏgv²Ùj{f'› »fv2Û¬eW̶øfÙÉfºYv2[t²™olæ›uá ¶ýàyMÑÉB[þe'#MüÚ:):YhË?¤èd¤èd¡­“‘¢“‘¢“…t¨èd¤îCE'#E' ÙPÙÉH“•Œ4ëPÙÉB]–ÏNFŠN²¡²“…†,ŸŒÏäB:T<‘e' 5¹`v2Ò¬Ce'#-:Tu²Y“/¿:™-:Ùl•ï :Ùlè÷ÌlÖå~W'³“Í¢“Ѳ“Ù&ß,;™möͲ“Ù¢“Ù®¾Y÷×cu²™½"«“Ùü5YÌæ¯Êêd3{«NfóWfu2ÛÉk3;™-:™íæ›e'³­'›E'›Ù{Yu²™Ïêd¶èd³.{V'³E'›5½ft2[t²Ù*{V'› ½f;Ù¬ŸlÌ6|³ìd3Ý,;™¬:™-:™íªç³:™-:™-:ÙlÕkF'› ½ft2[t²Y·=³“Ù¢“͚݇ìd¶èd3Ý,;ÙL7ËNfkz>«“ÙºŸÏìd³ÕöÌN6vÍìd¶YË®:™mñͲ“Ít³ìd¶èd3ß,:ÙÌ7;‰á¢ûìkªNFŠü{K{'M™HÑÉ@ÕÉH‘@ÕÉ@ÕÉHÑÉ@ÕÉ@ÕÉH:Tu2P÷¡ª“ª“‘l¨½“&jïd Y‡Ú;©Ëò{'U'#ÙP{'# Y¾5ªžÉ‘t¨z"K{'#5¹àÞÉ@³µw2ТCÌÖäË?:™¬:™m•ïàèd¶¡ßCu2Yu2[—û}t2Ù8Ù¬:lïd²É7Û;™löÍöN&«N&»úfÝ_G'³Ù+òèd2MLæ¯Ê£“Ùì ìèd2eLvòÚÜ;™¬:™ìæ›íL¶žlVÌfïeG'³Ùù<:™¬:™­ËžG'“U'³5½fu2Yu2Û*{Ì6ôšíd³~²Yu2ÙðÍöNfÓÍöN~kG'“U'“]õ|LVLV̶ê5«“Ù†^³:™¬:™­Ûž{'“U'³5»{'“U'³éf{'³éf{'“5=ŸG'“u?Ÿ{'³­¶çÞÉlî¹w2Ù¬ewt2Ùâ›í̦›íLVÌæ›µìd6ßì$†ƒÖíê5E' mùG”Œ4=òOhëd¤èd¡-ÿ¢“‘¢“…¶NFŠNFŠNÒ¡¢“‘ºŒ,dCe'#M:Tv2Ò¬Ce' uY>;):YȆÊN²|v2R<“ éPñDN”,Ôä‚ÙÉH³•Œ´èPÕÉfM¾üêd¶èd³U¾ƒêd³¡ßCt2[t²Y—û]Ì6N6‹NFËNf›|³ìd¶Ù7ËNf‹Nf»úfÝ_ÕÉföЬNfó×du2›¿*«“Íì ¬:™Í_™ÕÉl'¯Íìd¶èd¶›o–̶žllfïeÕÉfv>«“Ù¢“ͺìYÌlÖôšÑÉlÑÉf«ìYl6ôšíd³~²Yt2ÛðͲ“Ít³ìd²êd¶èd¶«žÏêd¶èd¶èd³U¯l6ôšÑÉlÑÉfÝöÌNf‹N6kv²“Ù¢“Ít³ìd3Ý,;™­éù¬Nfë~>³“ÍVÛ3;ÙlØ5³“Ùf-»êd¶Å7ËN6ÓͲ“Ù¢“Í|³èd3ßì$†‹îo̯©:)òï-í 4eþ!E'U'#EþU'U'#E'U'U'#éPÕÉ@݇ªNªNF²¡öNšt¨½“fjïd¤.Ëï TŒdCµz,G²üÞÉ@õLޤCÕù[Ú;©É÷Nšu¨½“jk¢®vËV$[ó¹’­ÉŽÓÒò¹’¬çs%Û*SNK=‹³ sºÖ³8Y=‹³éf×z'[|³k=‹“]}³ë-n³­v®«ov­gq°ÑõpNcäs%›Ïùù9Ÿ+Ù†ì9?Où\I6çs%[—=ççz'«gq¶¦×¬gq²U7Ûl•{4?·“ÍêYœ¬Ÿl6N6«gq°éÙ7[g=Ÿ›Ùùœ×%Ÿ+Ùì|Îë5Ÿ+Éâw¤šuÛs­gq²zgkzÍz'ÛW[íµg߬ճ8Ù䛵YŸ7ëvÚ⛵zkË|{ü™l÷÷,Ùs3;ŸËÜÞßdÏeîÙŠlM¯NÚòœ­È¶ÊžË2e+² ½æì›-ñçD˜u¹GËý¹@7[âω0ÓÍ–5ÿ·u²øs"Ìt³îu³™=µ/Ãûf“ŸÏá…³ OœÍìÑ}9˸f+²Yæ,ã¦A¸ Í|3Oexëlæ›yílf›]Ÿ½w®Ï<ÙÉ·íÿ°xMq’„¶Qˆ²“‘¦Ç$BÛ"Hqˆ„¶=â!E' m):)އ©ûPÑÉHqr„l¨ìd¤I‡ÊNFšu¨ìd¡.Ëg'#E' ÙPÙÉBC–ÏNFŠNÒ¡¢“‰²“…š\0;iÖ¡²“‘ª:™-:™-:٬ɎÕÉlÑÉf«LYl6dÌêd¶èd3Ý,;™mñͲ“Ù®¾Yv²Ùj÷!;ÙlØ}ÈNf‹N6³ãYl6dÏêd¶èd³.{V'³E'›5½ft2Ûª›U'³µ“Í¢“ÙúÉfãd³èd´ìd´ìd3;ŸÕÉfv>«“Ù¢“ͺí™ÌlÖôšÑÉlÑÉf«Ý£ìd³a÷!;™mÖ§Çêd¶Å7ËN&«Nf‹N6³óYÌlÖôšÑÉhÙÉf«ìYl6ôš³o–lÖåU'³E'›éfÙÉlÑÉfºY÷º©NFÞ7ÕÉfV8ÕÉföè^Ìlf™SÌæ¡SÌæ©Slæ›yíT'“U'³yðd'_·Ô×'Ih…(;izL"´-‚‡HhÛ)ŽRt²Ðv€¢“‘âøéPqxºŒ'GȆÊNFšt¨ìd¤Y‡ÊNê²|v2Rt² •,4dùìd¤èd!*:™(;Y¨É³“‘f*;iÑ¡ª“Ù¢“Ù¢“ÍšìXÌl¶Ê”ÕÉfCƬNf‹N6ÓͲ“Ùß,;™íê›e'›­v²“͆݇ìd¶èd3;žÕÉfCö¬Nf‹N6ë²gu2[t²YÓkF'³­ºYu2[;Ù,:™­Ÿl6N6‹NFËNFËN6³óYlfç³:™-:Ù¬ÛžÙÉlÑÉfM¯Ìl¶Ú=ÊN6v²“Ùf}z¬Nf[|³ìd²êd¶èd3;ŸÕÉlÑÉfM¯Œ–l¶ÊžÕÉfC¯9ûfÙÉf]îQu2[t²™n–Ìl¦›u¯›êd´á}Slf…SlfîÕÉlÑÉf–9ÕÉl:ÕÉlž:ÕÉf¾™×Nu2Yu2›ÏÞÉ÷±×T' )FyK{'M9 R,T‡)öª#TŒ¨:¨Ž’U‡¨ûPÕÉ@url¨½“&jïd Y‡Ú;©ËòíªCíŒdCíŒ4dù½“ª“‘t¨êä·´w2R“ î 4ëP{'-:ÔÑÉdÕÉdÕÉlMv<:™¬:™m•)Nf2æÑÉdÕÉlºÙÞÉd‹o¶w2ÙÕ7Û;™mµû°w2Û°û°w2Yu2›Ï£“Ù†ìyt2Yu2[—=N&«NfkzÍêd²U7;:™¬lVLÖO6'›U'ƒí ¶w2›Ï£“Ùì|LVÌÖmϽ“ɪ“Ùš^³:™¬:™mµ{´w2Û°û°w2Ù¬OG'“-¾Y«N~kG'“U'³Ùù<:™¬:™­é5«“ÁöNf[eÏ£“Ù†^söÍöNfërŽN&«NfÓÍöN&«NfÓͺ×ÍÑÉ`Ãûæèd6+œ£“ÙìÑýèd²êd6Ëœ£“Éd'› »ÙÉlÑÉfv<«“͆ìYÌlÖeÏêd¶èd³¦×ŒNf[u³êd¶v²Yt2[?ÙlœlŒ–Œ–lfç³:ÙÌÎgu2[t²Y·=³“Ù¢“Íš^3:™-:Ùlµ{”l6ì>d'³ÍúôX̶øfÙÉdÕÉlÑÉfv>«“Ù¢“Íš^3:-;Ùl•=«“͆^söͲ“ͺܣêd¶èd3Ý,;™-:ÙL7ë^7ÕÉhÃû¦:ÙÌ §:ÙÌÝ«“Ù¢“Í,sª“Ùþíþµ¿Oˆ¿ÄÇÓ4mmum[õ|üùòÙôüüîòñǧß|\ü?|ö½çîÏÜÇgÏ¿å³çûÓüý ìøìå·|örî»ÿ<>>ûú›>û¾áýÝùøìÛñÙ·±½ym=ѶÑãÃí·®Í_ó#òÃ>?òg÷øð…O·÷Ëtx|øÂŸ?vï'¸âøèÐøjK¯ýå0/ÖøÝ‹‘î9ÔîGôñ‹^bÆYO?{ÚžK¯O_ÿ‡Ï¾ÿ´ºwqœ§_ß”|!<ÞZ½®~ª§Û²½eÿTþúÃú‡?<Þ6þïWÎö\~Ÿhz¼Þ¿Öo>ûá—ïøî¯ŸÞÝÿÅ—ÏÞÿóÝ·—_ý—ßøý¿ÞŸñ·ßH|£kýk¿Ö×Oÿ\¿Év endstream endobj 60 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óû endstream endobj 63 0 obj << /Length 2831 /Filter /FlateDecode >> stream xÚ½koÛÈñûý ý"7Í}ð•KHƒ Îú@ã~J-Ñ6kKô‰r·èï¼v¹¤V±’\j`­åîìÌìì<—üÓù§¯‹|V%U®óÙùåLY›º˜iž(]ÍÎW³·óW'j^C»•öìä×ó?ÏÒÙB›¤R ÓÂø´N~wжÐÞ¥Y ?Ÿ ¥'‹L›ù þá5Ê t?tÞC»-ˆC|Á•0c«£‘ÆW}–Ðõ£H¯ ÊM§IYêÙB©¤Êr–Þ¡øÛÒ¼‡¶”ç{kŽ¢}&¿Éðûñ °¢}-ÜÆL–”yÆ;ÛS BÒËЭpÛ~j'pÌõ¤t4-JDjE½70÷Oh¯¤ý í4YóR(] UÜk+èQ6kÛyFpˆA6' 部>žl²ä¹À^Ú¥Ì9Ûy`Zõ ‹šn…¹åÄØöÅÞ ƒ FÓNÆŽçÝp”}°…6àê!¿$pMˆìr)$6£3c©62¾ôqqXÔf$¤á0‡oxôbÀÕËæje ­?¿â€¸ã^cÕ<ñÄÕÈŸ‰Cû« úb¬¢ÝàFÎÝØNÒL&M4SCWÅ„ý·Ïwhá÷ƒœÆ:aû_Ø²à §ž› ˆãøT©-æFø. Yhø\És-ÆU0oYX@û~ÕÓ99§ÿPîx8}]¡o¡ ¯3Ð`K•ÌÖ/¸Xc²ùÇ]p?Ÿ×oÇÏ=ruw'I1W¼ª»óBem øÝ°G»ßm½Uêr.ƒõ ?ðÃ0é}U³’EõÎ1›{Ӿ즘 <döQ›ÿ”šö¹$A°¡Ã Dv’â(ƒ°YbµD„à.p·îdÞ^Á9|~AÁÞ¹ä…AoYÍÿˆ«ðº# 9ïðXvw¢5;æÜmæwx£«ÖÅÇånpÊ8séôlÍËÏîN:§§ˆ¨”ItYŽeºbê¨J¨  Œ^ ÿ¶ÛÞà“–ÝÐD͆ñX´V¢•´€ bË|‹äoNJ‹qW÷õ"À»ÆþÕ5Ë’F.hC C’°j™i> §ÍÀ Í’¼<Ð^î£!“%Õxoþ€Ïƒ¡Î1œ‘ûv䵨úŒŽ›½3t„É-Ï];»hž¢”½zà¬þØúøJÔ\ÊÑú±`ã°‘#ƒnw¿O‚üàâj+.÷VÈ ¥á’@ǵ@Ç’‘x$<»D V^‚ô@î§öŽ:ž!+y tdiüª»`¾á~ÀÓ†3­Ñ=¤ƒJfàöHÝï7t¨u7 ‡5« ŠœÕX-Å¢Û&¦0¡¡C`$|QìÚ÷±&< Ùæ]ª¬8ršOyޏ%B_ó@ÝG<›ÊU¢•wmñzdÏ}•˜Á&âŠ"É*=ÞâK2Þx²bÜ A›Þ§y£Ùáx6_wœˆöG‰së£LÀ‘]³éÄâP L\êÝ^ü÷ïQ¸À%.öaYûAÑ»C–{?åé4²e›TÖŽw,<= sڸĺ–¼ÁMÙ[gÐØ/©“;/„`‹FÓ5lºì)`†µºòwm7-gšL•­p–DØqï$ëoO<„ÙI·% ñɪtþûÝ–q õöŠÝSDÅÉŠ» ×=+¨ÎSâ±F.>ñM[*´Õjz"Þï×øßÉ‚rWœÃt ¢ÚYžXe–ºÜÚEé÷âòŽ‹ä{&PfpôÞH{´ÅSéÛÁú‘9’͆¸u© s¤ÙWšV'&+Æ>“e€¢iX{ÄØ‰Áþ€êXç¿ð€(ù¢¨/WfÏtàóô[Öp>b•šÿIü²Ö›(’êFÉF¨ÖŸ19Z'¡!ü×›hJ†’³;tA r<—Šö;~î.ù·`\ÐÑT±.ySÔÂ"€_’ýnV‚t t[ʇœÈY¸Ë£/œ$w¼¿}­ÍOTéµòZ`]~íTÚÇ %RË„õðBG0޽œf\\ Þ³ÈµÖ©Ü ¹jÝU‰M`±:ðT~;YßHíT m·¿µœüÏ´dÂÇ´Æ|\ãD‘.aÏ©"Ñ"« ®»ö‚'x-4S–™¬+Ç*8Ï0IÄŠ¥ÄrXi-Ù2¦Êø@ à›àÁÐrŸ²£›.yµŒqpçýÞ²¥’Ÿ:NÚMLÛ²2)‹ÂÉç¤ßw¡t7Ekw2ñ&Ét1JN_gÕ Â¢±¹¦Ô€[³)h§ÑP‰Š[Ë¡W¼\­\ä1E6_?=UºµWtüöûÄS*jËTŠÚó“Òpv.‚K‘Îî3ÒÅÍô#>áçœà±_¯Và º4)¾ë •Ìo(9_Í?.¨tÞ‘®Ÿî$ƒº ðS½vJ&£ÓøK¬}hôU‡F›óBñï¥+éð!L•àñ×`2°xÃZYøTÛy¨J>I„ý  ~ªvôÇø@— \ز˜h:•…]owø@W£’Õ8¸Í”íH´ÊTÈvõüÕ€|Â}wåºë\°'’ßÀ Ï©`°!TЬ)mfF‘¢RURäf|™²vv§ÒYžT…)©¾ORH#€ñÜ'Ra†¢°íÙ>T Ê’¼BçžXø! ¹çÑ6¼PHòÒÌ wiª"$!a-•³Ø£¨Ù/£VNˆéà’#0dÀ?Ù/b(BhŸ'JØ3_DIGJfDÉÄ„g‹±ˆ3ű FRÆe_v°&‚f¡²"Ñi…*æøbãÙŽ_iùºçZÙ1*›ý^*›Îmšý.ÔÌÿuo6‚ŽÌ!µŸöÕ©H [9J/Ðá—sÅT ÐI‘{È6QÊRG·œ'Y‘?b«äæ[mõâú;77qâöâú[wncç:°)gÄ€N]EU-P£çq5+5‹8ª4ÉTþE*7;Òø!£Ì‹> ¨´Šù‡oA¨c.`Š0¯¾ã!3ÏCŒÏ3󘕃{·•?¨#oŽ´Î諉Q¶SË%©.µÏf±/Y[D 2¥Óø>ª!@LjÂ0¦ ±C‡üËú3LƒÌµßTö˜¿ýî”ÄlPÝóo» ²cÉDi‚/HèU eÓ˜œB>{¶áiñMx”ËU}…±$×rïB/4h„*aé·îRê7¤Htå:A¥iR”fœ]3Ç|dà„–\U»w’õèuV;eän~“ü›È´#<‡+,šwúfŠŠ0ÜÊà­Zqçv(ðB¦¹&r×:\¸Á0^òr÷ª(?óÖχ.†k_"ôRE¤ÔŸr奸på´¦ãÕXÞÜú÷uã{wWGWô>ƒ,ÙkݳÈ5¤e^ëRù‹%ÛURfÇj¯}Lýc¤°ºª ”~+#æ#úFüÍD©•²UUbäxƒþJ‘xN@mZê ƒ¼61PæY5.é_‹’l{y‘itð¦~ò⧪\WÊB»È2þPby߈0—þ‰ñkt3X@µî®úWÛÚ½•wï"×îòÅüJ>úØ÷pÏÉõùÆð™Ô§àkêý‡«”> stream xÚÍXIoÛF¾ûWÈ…r%†3Ãh{(Ð zTÑCš´DYr´"e7(òß;oÎpÑæÈA´83oç{ß{ã_&7oß%ñ ó³XƃÉ| ’ÀOe6H‚Øúw2|ôvCáú©ô³×¬7úù3ˆ‚á8’Ê›6VÿèÕGýý|¢­ÛæIhO~8xÂ<(Wô m±Êƒ' OÐD` ?M> ¢Äe4 ágQDžžk¹‘¼ŒÝµh}ý¡ñ)¡×ŽŒê¾Aã$õU7}ý GoߥNòŒeä‹èôždºÉ²g3‡"öž‡2Ñ©„ï³õŠpƒé…{9ü$Þ|Ï6…”[êg»¡XƒÀ¼"LÍ:/¥¤ƒja¥> £ÈËWLU¤íœ YbaÈ”ÌÜÒùt‹R+Îû|¹ X–þpg¡÷Ç0Uš½'f \w´¥„«–wñŒ½í”ÌJØ Ð´š´ ½#f1'Ã#×д´DÓ¼´ªY<~F!œï(•ôcí úpÏÁ ö³D¥@úI$´«~˜±§¿u³!óeš}ìѧÓE…§ôɆ¾ßûôiò†¾õUFô›ofÏ0°é-ÓÀÓæ§[Q’i;,PTׄJJrJv®ÕŸ©rÞXTÜr&—ŒŸøñêï{H:çäĤgÒeƒ½'½XÔÑ‹³ÿÖÏ=ý¨_Ççipá»ÿ¢r©;B ›\¿3ȃ'êLL>ëÂû 5†Êcê$EØ¥¸ªÆ-TU©EU•&MÈáüO“êèe#{²øõ ’‡øÓeú96ÝÞqâ`94H÷Œ83HZ±A-ƒDÙ”VÞ:7V,±‹!ñ’}ªÁ«7óÇFPËÒ‹~ç4ï´ ª0Ù‘¨Ð!æŽ@EN$ËêTŸ®¼^OëJ¤_öN š²):»ª±›({ŠŠ2zÄy;âìqÖãÎÅLÍL=vºÎÿo`ÈNL½õ~ë Rªg¯‰1±natlN»Tbp°\FùÚÂÔ1aÒ™Wo;Óç…L²—)>Îô"óœÁ»‹SåGò›&\=Çiy_@µ–Œ¸ÅH¯ˆ8%áÔ84#×{Õ©Œ¤øº¯€€*£"Þ³éÁô³•ÂV@u¿0ó ~¡ÓõvgMÃidýh¦õ€3£sšD Üß—–ÏtxÇÑÖO ­wæe˜••cþ™(qƒ†™¸D9(œn÷öHonïªv\3š’‡R÷§qz…Ûž#ú;šÂ}äˆt "6±ŠÆp2[G¾·OÁ5E%²ÑI…_-_|2Ö¦¥œ%ÈQ¹_ÝP£wPÚ±_qßӧϦVVMN?5ä"ÞÖ-1±-‘æ+ø»·£¯c|F")_YȧžºÅd~Äé›ÄpF¶[unлÂwæ#;Îàí2Ä ›ÂÊÂ> stream xÚÍY[oâF~ϯ@é ´Áë¹ù"•H­Ô•ÒgÞ¶«È °rqÖ@¶[©ÿ½gÎ9ƒÇÆ€RÒ‡‘çræ\¾s™øuzõác Ò d4˜."ƒD¦ƒ8Œßélðiø:à Zm mm í´ÚçÑØH5œÐ§€™h_ ÝC[ðîGhhv½$ÒéóGhB˜ü‹Y d)ì´“4Œ‡?¡†Ùhrôyúû Œ…RcNk™¾‡–ª¯––e¸§i8‹8¦É^;öÊI{¦±fØph zFa8|ÙÙG¶.y¼¢åEÝüÆæo(Yñ M?îx¸i"ɘ|…s=‘{`t¤þ‰>ÏÅšÉX™{æbÇr0Ìx\ù÷H¨=·¢k¡aWØ-’]'R©8ƒî…ƒ¾,²?ª‰DtÓ sY Äù@Èž÷Â!þ¿„:„ƒn sÎñÓ‘ú}â$opÂu¤~_ ä) T-3Ä¥N¹5Ãák³ÿð¤½Ü'ÞÔ}ûù*k®ç&§êe”º¨QòÜD‹z]Ô(õ¶7Ï;.`Ü޽ׯ% Þ°ªe•èX‹ŽØãˆ(¼Ç@‰¨C÷]úð1ñJci¡# ‹ƒT)¢ûeÁ*Ì¡ª(ûUÅŸ³’êˆØú”QqÂñ’´±ÝYa›ßÐèÛHÆŽ.äßí vvåu$·L/â1Dz*ôª’êÌ+q+vÑý”×ב1vÀ­vXIjÛs”$wÚYÈ[‚.㩵n­Å/£±Œ;õ€£Â ZÍÈ~;],èëÁg‡`½$5Ê"·sе-]¬Ù Êѯ ³Žaf5#B§¼eÔ¦<.ì¨èºâ¸]·Ù‹š‡µãD‡šÎŒUí´XîlY£qVÜá3·g´ Œ‹Ø8²Ìq„÷kY£lÈÈ»(ÉfÖÚ5ÍX3 ^}ÆÄðbɲlÉm½ö²Ã¨Œb.Ž4èäRB›ýhÃL«ý&‘èÀD˜#Ó1Ýqì.öóRê@ÉØe ?!D9’#¼DˆpÇëbU&³Pÿµ^[pfàEÈáÝ‚¨üÔgº ,¤p¹aû¹C:Ù-? »(7@œ.T§„%’Fº 1Q@­½XÃŬd­ oÿº¥ä'÷=¼#5‹»A§Ã/BÅ“«Û²»‰®rYæî»b_Ù³YŽ…ÆêñØWÒacûî7™uÛs1{ÄØÇÂêjÚTÈDƒ6çCW.Û’XÜÖΙZaôΰüØ!Òý·ÕM—ÏŸŸ¡;®.‘ÕÁD7,ìšÖ®hœR êä|AýÆÚ•ÕmÙ»Æb@ró¨xó.ìª3² úÔ¼;Êa r<ó;q¨ÛD]Ô¶ƒ(s sÓIÔû`~øÝq<»òpwµc ŠPÇxió0ÓU°ŸÀ­&]ÜY•ñNÊÔ§`Ÿl*à=Aù®Ä?n¯ySy;ëàWþæL?á[ó *« L¢:<×lÃÒãr¦$Á·ê›6?\{A·a[qS Çôš‹þšM‰YÐ=+–3¯ ÁÿÚ½òñôj3ý¶z·7-­ü¼dö¾ËÊ…Wp'þŒÃ!QBM´CÐöû*í˜G;EÛè0»'/ÀgE´ï:àR/c'~Í=@¾Ý#ß#oW¯‹Ù}ñþ„éÆ~ÇqgV¾É¹uó@dœYö&çMV£~¯T ¥„'l Oݘø›ÁÕoÓ«0u endstream endobj 73 0 obj << /Length 2157 /Filter /FlateDecode >> stream xÚÕÙnÜ6ðÝ_¡·®[›‰RÑHŠhZ´qŠ4 d¯¼Þ`w¥ulý÷g†"uøJœ} –‡3Ã9¹/Ož½²yRŠ2Wyrrž(U•™Ä¦¹ªLNæÉ›Y}(gW0*+ï`¼çï3þ^ðo£…±ƒ±çõ–çVgJϾ¥Ÿ§¥,gG‡oO~LÒäXJQfÙíì_ÜËÆÅãÈ=•ô-mNìmaá’‘›Þqý9û#Í$­àÌÑ:.´È”ŠZ”ÆÅï"ÝøÚ«IJBZ2ñø’ÂÏ5Œ´Ç Aœ·êâü^mßM`ÁL8ØüÁD§wu9´Ó‚øûP©( Õ·™ýhϾÛsáôè1žô1¾wô9\õ?gl››wÈ’á-2¾áÇïîôö˜­ûO:xß3Ã' ‚O¬ž6ìM„³{†7ï›ÆŠBqäúa¹Hàs[#ÝRËxæ Œ¸œvA•g¯aí7ßñøÆk¼çŸ´àSw|¿-ëfMhmLjðœÔ²&®¿‰ôyƈ s^óñý†Îª‚.ªç¶L oˆÕ¾d —½Žc³= ­¢ž«›}4pÜãäW‘ª<ßtÒw´üבcmzJ —$ßô4ÐjXøš±–,²»•nÇ-êŠÝ-VÎÄ =rîO|qkvüÈD·!ÓýÙÆn èøL1l™Å”¢¾ûªcïÞELm™å÷‘Ê<±«°Ã›æf€âùejìÌ)Ë2ßîžÜ·‰æ6‚e¬„¡>‹€±)ú€æm-Š\€æÝ2šÀšÁ²IlK7ӲޤñRãµ={••‰4B›\¹êþXB¥¯2ˆ â W÷t(•™ýæØZnÀÏ´5³9šIETЍCp6(E‘´û„œì2;•£ÑоŸÏÌì=^rKð‡ªð{.ªCeAŸB^ S;;ÛF‹ C*Ë8DÐvD¤´£ÛœÏ.«ÆãY¬ã*ŠÙC¼jC¿[ÇiFÙÙZÌã†ä`3ô[wS6BÕ±*K=­ËàØ”íÒx»ÑŠ5º «hÞ:~P[|pP‡7,-bI¿>Säg9< xwŽ3ÊmZ6ôQÃu~qÉqß­Wóy”­H/`AI{çLõÆ Á¹[™p#<õŠƒOL¯Û”Égó#$ÙZ='`)ðêør˜¸»ã9Yr¯Ù•E)t)Ë;Z˜‘h)´R~“Ó£4¬G8 ¥«fÎâBÀrBè¡T\®@½b¥(Ñ]©8¡¡Ö1ÄlÖu°+À %DÕÒ>tw}ó†=;UàùÞOàÃ)©oò;–á{Ì *`’•íÄE¨‚²ÚG\„Ž/B§³—nI„*Ô2J›~ŒŒ!’S>EEkÝ9››7„Ñs¾’ÛŽe( ‘å¥ç¦j,ïßÏXœ*JÄkÆ‹´OÆ¿ŽE.AOyDF¥µ"+VòÂËC?!†Þ8€ÂC–kïÉ,pÍzµv|®j3ÉEiu.g€µÈ%ëR¹´Â ñ)Ä Ô÷¶ g¢{ÔĹзaqˆ¡œAú•‹@fíëDÊÖ@ "nωC°¯À¢{à0¶Ä\VJÎeçcQ2ШW7Ö€cRZÖxœë)yi"Ò© €^eLJZ!³îz«±úÁ–ó˜H"’œ c@´$¹ž"ä˜2BJÆQcÆs‘`UÒW‡áì–me5Í28Ϙç¾Y•i§œ§aeÂxÁ" a´ÆfÑ@|aÓ.Ë£©ùl©ë]×Z£½:ÌrWAFªCd; †Ë‰á¦êâQMþ?a9\ý±id=Ó(¦,ƒQŽ&ŽÊEjí£RÓ! wRµñ­éP2ÈÁÙãÎÓ÷ &|¿em?ú¿òIŠk­M… Þoí£0Y?à*Caë[—@¦_‘8„-§Šb˜éj¦†>h óeT!  ®>"`Õ`O¯Ü;pË©ž2ƒ¥1·T¥Q¢[+Åguí³†3dÿQ®|i2Ì}pÝYgœS9®™HßFä&Η¾Hq'ŸQÇÕqµìúT\ÄþOõ71!’ë‰ &Ù®gB6ŸßýýŽƒÁ5öiˆú LÖÌFOåGáÉd¬ÉøåþozrÎ…LO먲ð¯gÝ)wRÃ]æ[_2CbŠÛ¾º·êí~è.»Hà‹ì‹ö-A`P²ïÚÏÿªÿÿº3ÅZ}øÝ=îΪýaÎÌ„4yßW~Ú¶ì¢YÚ÷oS§„¹ µ;jñ¹d? u1.5ؼìWÔ]9HµÂn˜ú«†`§XdÖã“\_Æ]çZ „MÆ8×L”fö‚^8ÃI 7ÑÝRŸê(RpkrÈ -…V¹¡¥¾hqËÀ½<ä>hÝè ·;†Ýï-í9®‘ª«5mëÅÃáÿŠ¿S÷.ŽÊÁ«ƒt…º?øõ‹š^²RÕ»d{o VíûaûØ;Ã=1­h2™eA†#Z®CRæ0Îé÷ŸQÜæ/º\HÛöÖËEfƒÄ-7,ýv2ÓTš¶I%ËÁ÷'¸N8Md"• i$TEr¶>xó6Mæ° ]ÉD]'R[a —ƒWÉëƒ_^º¿ö•u ŒµThé œª$H¼™ÿo—K)pc¨®m*©–’ø¼…äê÷…sbè±ðŸ ôhãäU%'Ѻi»–jê!Ñ<6çe˜.–W‡Ð¨×›°âûé4âBèQt×|µ˜Ù[ì£Wô±½¥I†6u}‹ªdãGdåþ õ‘‡’ endstream endobj 76 0 obj << /Length 1693 /Filter /FlateDecode >> stream xÚÍËŽÛ6ðž¯0š•Û˜I‰’‚&@dôÐâžÒ4àÚò®[[2¬õ>ôßKÎ %êa¯œ¤@\Sä g8ïáþ<òü"d,SBMæ« —K"5IBŸÈ&óåä}0¿žò /¦3Éàn*’ ÇùBÓbUn ÈíT¤¸7æÐðsg¦{3ÊK ˜omUîq¢ª2{»é ð`±6þydç`×o§\áïNÛƒõ¶r¢S=³›*°GÀ‘ý®ð¬…Å2~˜ÿòü‚sO3±,ŠÌ/gY£4&ŲD¦.fB)Å¢Œ€8ùÍXœª‰ór:‹yðg”EÌT’MÂ3HŠñ$Åt%FØÅr€t$™ç‘–ãIK£8Lƒ•ÕO¹EF@9kÐ(‡½ÁÛiÛÀ„úÜò0a©a‡Ø½bWeQ‹Ýp<»!±{縻FÆ`šã|6oGi]âMW–Ìd&¤b oÛÐÂÜœ[mÁH‰òoe¦"68SŠœï•áDÈà)þT@ÉÞ¢{Ùå˜5`y þ„;ºÉ·îš.g—4p…Ã×JI‡j   ;úÜÓïXA”ÚAa[¯N1f½=âÞ|á4¥˜¥Ð,ÓL"£æ´ãŸ9ID“t>ša#7®O ƒà¯Ý³4yM$|üü+Oˆ¦¥u‚ä0ÖH6|‰™@ñŒ;ZÒWEÛ L|C{Ï>nˆÜ†HÞÒï†à_‚ôáˆ>' 9²ª-ðEÃÃM Â_éN@˜ÛÔª•,M%Rzí ÐŽŽ!YÆæ¤EqÏœÚÖtÂ.Sã°ÊÎÔú×µ¡‰“ãÑ;b/ãm¥+ÎÚZŽÆˆ6=ó€UÑLeshc!î’2† —|ÛÓþ‘hYÇ?wiM¿.‚¾p×qvI³wfïw3^ÓxcÆ;„óQº"ªûVˆµ0?Fn=9k/~.‡\¿"64rb¹"›8x.òЄô7­•^Òºà[ËšìÄý²cÏjÓqõÐOKMm8pË…—qn=Q]Ѽ¨o_ŸUzÖ鬭h ©QfsóW/›³*º|NPkºÂºÖJqD\Žñª1\Ö‰p.lQÜú•g}Ù6Ѳ‰o;¹U¡É:ƒ,“ ú·Óªö#Ñ¡‘‘ÇTI,ÿå‰ÌæÕ&Î4‹ˆãÛðÈÃ(ÁBö«3é›“Ë Î^<ŸA êÕ‡3Ó¤¦ˆœÅÅš‹i¶q±ðÛûiO̤©±ÍŠaÊ¢k j›%zŒPiÝIY°eiüÝÕ.\k»ë:*»rS64;’Ëæ6Û|@ìÝk(ËÀn° P]!Œ†Z¯Uè¦æ†Ûj€èÞÐf]¶Ø ¾(£Hé¼°žÚYJ¬j½7$ØcuoÚªÇd^ ?šélœÍyUAS„|Âjß°“C÷^y{ #*Zåêp²ãÁ{ÊmÌøž(þÙ°üÃãØ¢…=KV§¶‚ÌÙiIþÁ-ÓÜ >XªnUò?PŠ ±WÎyJ9%^剷SL“Ï#Õ¶ö·ÁÁU5…ë@õc‹q,»œÓsHA/+ÒvóŠ>y»v1΂l£x¦¦ Röx¨‚ÖuC+û £0”¹W˜"vzó WËÕ€[‹4cÒH$<Õ0 èTÆ¢X Fê|—¤î•WOä­Ò¦ ˆ»Æp]±ö"áõ«ES¹ê•LÝÜ¡=ÒÕ)#9Þøj’Û=yŽ®ÆVÎs—æ:˜Ëýû«øEÅYÄxðíQ¿èºí˜&®oäCOói*1 ÆXšoêü–D˜$é}ÎBÔéÑìUö»]]«¤P0ž¥ÍûÕ±«÷X•¦ÓtˆDݺ•¥ì²JܹÛèó‘†,ªŸ¥†›Ò>œI!’­RÜ9q,,Õk¤ LX²—p¥¿k!ÆXÜîsòªX2¡d§ÄG‘ 7Ž¬È‘µ Åŕ݌[¯·æ"w'»n?®ßXûxà@{¨7D#•=©©0ôñ4¨Êö‘š°õážxpý«Þ?àÖÁÀ›$WdLþAµ•½?¤/]qfuò´ªÆ endstream endobj 79 0 obj << /Length 2400 /Filter /FlateDecode >> stream xÚµYK“Û6¾ûWÌ)ÑT™|§jvbWfˉSŽ6>$©G¢4J$J+RžL²Uû×·Ÿ(Ñ_ö@ÝÆ×@/çÏn^—ÅUmêÂWóÕU’e¦´åU&±õÕ|yõólsÌðìå=Às„ç—8áõ'<ñu”Ûtö~aïsn¶ÐüOÏžßàYˆ§)øÝ {ûi†kQû–Ÿ-dzÖ”à_çÿ¼²±©*{%‰©óœ ¤ÉCêåQ1ÕADâP'C¿‰JªbKßçæ‰7ÂÇvDUï„×Fú÷Ò· Ƈ‘ 4ÂI½£ ò&ÙhƒH•¦² áöBbØK×6XÖÑ Œ“ê+].½ÈdÔúÆþÏ×ò¼‚çGydÎ ‘´©jddO '²Á)¶Ð}PMZZ=.5ït/j.äiEå^0sùøb.U¼÷ÞbœðD—kSS'‚ÜïeãÐÐwcˆî}¹ °q<3t(Óœ=‚ÌdÊÐo?½Õa¤:yJíEåß“)³~†B³;#Q½AÇ$ÎJsÿ%C8 A$ÚŽý=‚&Yéæu^C2iVXLFQ‰Éæn,„IF¨œØlöö@zÿžgWA"íNLW6~ý'%(cƒ´²h¨Ün™%e*›œ•…QÐŒëtljÆø|;Цv|MQs©€Aú-¥Î³:4Ëò‡åÔc§jƒ+Ì·"e׊«k.’IñüŽs!giô/Ìe9{v Ø#БÛàÝ÷É䑩ˉØ^:ˆN¤É4ßÃjØËNäùûN÷>zR ©zžêtíEÞV“OÛsÇè–)hI}ǽÊqÑhA¹WfoVün¦VNξ¦BÅ"ì$N@Ï%îóÂd±óÝÏ?Ù^æØ”™ ã}Ï ºñAÓí’‚Þd­˜@t€Z1µP3–Ì«–Zñ]»kD¿?¦}ó¬\¼ÅŒnóˆ;C>pú©ã¶¯39ØQY·n¹ƒ¤Eóæ/ K¢™r'༠S>„³ÌVhwK çâ“Ð |7yГâq£éÓÖeP¦}‰:m±·€ɰ¢þ¸çÒ‚: ¬ÍÀ¤ßÑYêàG7¾y¤SH§J¯¹W’·Wü¦¼¶#!ÜÓp]¡Jò† @ÊÌûîKeÂÚN,wTâ“Y¶œõÂRßphxËÇS¤|Ã`†©§?Ù%\Bìù»ov-·´Q~7™Ò6}'6˜T“½RKÛ%Oxä ÂþC@G×Y6^ÐkLøš©³´–àC;ã0–V³¢•¡‹,¢ói_LTZÇÀ8ç^ðFv qy%Ò¾ó½çA›GNZ¶Gî˜-4½$ž‰Åúlû1ïÇ~ÿÎgÓ¶[´ŸåòoZ½9qÁoWj;{mð”\¸K ÇÖ_0ÐÞD±šOBp¼­ ýæQͲã£`”g1 µs ߥ@?Àw?„A£ÜI’í‹$œ¡‰üE¯!3¹RãºÉ‚IãrlRuÂ*µm$½>-.õ»áï¦k¶r±ÔoÜÅðΓÙ-® ¨gï ¿¿eøxˆ‡ª-6°Ñ,þ¿â¤A…ÏåÖKþ‚™¼fïhJ‘š`I&/ó¿ó*vhæuÊ´Ñ: ß—Z®wH¼ŽŠ<ýt]Iõ±mÖà5%D¹oÉŸÈû·r¯Q0Í“ÖõìEp¥Ò¸ÐÉ,é(f¸¬;,ú}í îûàŒ~ K¥dv#ÏCð˜à@иë¯Ç6þ ¡Fعk.v|›àP{ãï{ÛàJV§ÜÈÝõƒŒ7®>º<3d©Éü¡A¶ðg¿üžSF•u\Eà%ôk[‡%ôÙó={elljŸtJ …6ˆòXdTvöÂHÐú¾@!ªÐÖÛ3Ê7†‡çxtŽã Š>Š–‡·³ Ó |nvZReàÏ㊠½fÅo,r)°¨£˜i6-Ê|¼µ¸m'JZU*¬-ý/‰À 9W 'OD“ð¸%øôæ ¨5´v-“õ-…9:Ü3 ©¶ÞÏþ¬À¡ ÕòrŒ£^›¨:Šv$*E'k>ô¨5EøÝÎÝh™‰@Xä&3ÝwdkºÑÛ¹ØCa m–‚ ÿp¤ …aŽÿTËÔ»/ø.¡mc“—¥?OèabO‰v‚IaФ:sÄÿY†õ–…WJl+€>®¯¢ÊšJŠ…„Ø>{5ö?†3Æø endstream endobj 104 0 obj << /Length1 1983 /Length2 13080 /Length3 0 /Length 14284 /Filter /FlateDecode >> stream xÚõPèÖŠ"Á5¸†Æ‚»‚Kp. 4®»;Á!¸»ÜÝÝÝ=·à—™3gfÎÿ^Õ½ÕUt¯­kÛ%©‚2ƒ‘HÜÆÚ…‘™ "+¬Î `ffcdffE¤¤T1s°ýWŽHù¶7³±æý—…tx“‰Þ em¬RŽ–6 '/ /33€•™™ç¿†6`^€(ÐÉÌ Ë²±Ù#RŠØØº‚ÍLLÞòü÷'€ÚÀÂÃÃEÿ§;@È 63Zd¦ «·Œ†@K€²¡ÈÁõBPó™:8Øò219;;3­ìmÀ&ü4ôg3S€Èvþ( ´ýU#"%@ÅÔÌþ? ecg xXš‚¬íß\­@`À[v€²¤ @Þdýc™ÿÐþj€…‘åïpyÿÈÌúOg ¡¡•-ÐÚÕÌÚ`lf È‹Ë0:¸8ЀÖF-ímÞüN@3K Á›ÁŸÔq!Eð­Â¿ê³7›Ù:Ø3Ú›YþQ#ÓaÞÚ,fm$bce²v°GüƒŸ¨døÖwW¦¿†kamãlíþ_dlfmdüGF޶LªÖfvŽ IÑ¿lÞDˆÿÈL@fff.NÈr14eú#Š«-èO%Ëâ·<ÝmmlÆoe€<ÍŒAo_ˆîö@'Àìòtÿ·â" ÀÈÌÐ`21³Fü'ú›düü6°™ @‹ùmýXÌ|þþ¥ó¶aF6Ö–®ÿ˜ÿ9b¦/*_5éþ*ùo¥°° Àƒ ÀÀÊÁ`aaãpq0<ÿ7ÎßøoõJ€f±cþ'¢¤µ± €ç?E¼uï¿…8ýµÔ à3ÈÙ¼í3@ýÏúk3s0¾ýaùÿ|ºüÿÛý?¢ü¿®ÿÿe$îhiù§žú?ÿ?z •™¥ë_oûìèðv²6obýMÕ@ÿ9haK£ÿ«“t¾]ˆµ‰åßm4³7s)˜9šþg‰þ;…·à–fÖ {³? 3óÿѽݜ¡ÅÛ£bÿ6«?U ·“úß”bÖ†6FÜ+']™ßŒ•ƒàÎòv¤F —?wÀÄhmãðæx+Î`lFüc¢œ&¡?DÿAœ&á¿ëÛªýƒØL’ÿ .“ì?ˆÀ$ÿ7â~óSú½ù)ÿƒÞò©þxÞ¢ÿAÜ&ƒÐ[Lÿѽa2úd0þ†o¥3ýg,ÿ¼‘0þÇà„±™Ó¿<þPÛ8‚ÿåðfbò/È`2ý|ãmö/øFÜâ_ð¹å¿àu« Ëuë2¿¹Z¿Íö_ú·Zlþ†ìoÎ6ÿ£~£jû/øFì_´YÞˆÙÿürý+Ý›¹ýÛ óÃ[¯þéÓÛE29˜‚AÿêÌ[g›9¼vü²¾éÿŽõ-€ë¿àY·?áÿ¬©¡#üö„ÿù¼íðñŸÿ/@ !âÒ¼á§ó­¿«„öÆ?ÏPî©%Ñ0¸/ÛPáh*Óü6À·B CÝè«;bÔ7‚Ë$ÏîÇMµpÁÍqŠ-Oz1JS{-ˆ‹“8ýyÇB5}ÄD *‚ûÏv_}- › ;¤(³ì¹Qr0;÷J¸Ôô•¬ŒÍï)îWrJ#=•L3|SÐö-œ¥Ì6HŸÃ#ƒu` †§Å8wA›½¹ÁÈœx%‘Š¡Côüõ-ß]s“5ò~Îm­L…Õ¾Ÿ_úctꣻða¢î‚{QA”TPx1±î|ÐŽ½š´c‰¯ddbkïHÏW¤mg*(ÊPq›RxèÈR9³#«†«pú™E/Ñ^±ýàÇ-¼|6 ì/Ðoáp¢ÀœÜkù!à†Z¶ý0ø0qs?§¿Çkšª6öÕ[0f‘Õ ÛA«Ëè‚rÒÅõûÂsbBÂ>CëZEã„_e‚hˆ8ÌbJšù Vÿ$Cm°¿ãÕ‚’°øÛ”´ùhõ†T‡êk\Ʊ¡¿À².ßþ½ 2Ôæ‚ÊžcÀ¢Q‰h*2ÅœWªËú݈ôc9«rN•Vüq_º°†Àh™,¤ŸMÀ®Ê" 0/14‡Š 1ØäºðN˜w¼vªx:éȨRØ(ÖcJ²dò4ð‹®sˆ,ZEéˆ\TôŒ%½”M-.·3”qtòªCЇs¡b–˜/I_vèY¿LÎo;#yÛŸ<•¿AÓ¼ëÖ4g¨Ž.IõŹòõbñ©–"z·gr[{KMŽQ$Ÿúë´ö™Üþ>QV[w#Û{T˜Y!KK=tû®bÙ …†»¤öHWce×¢­ùƒÍ÷c=ú<ŽÄ¶‘ý· ÛƒÑUrŽày™Ïަős~Óƒ¢ãKÙÍ] ³áº…žx $0³ˆ» Eãnª´c+ØÊ¼nw¾ä;ãú»í)òBÍ Áµ Îo1ÆOaº4—àä:á}/! NñÃàÓä ã\Lá^™M©œ¡s{z/Ñ–Í IÓé Ö(‹ ã]¨Ä2ÌÄF)Îæ’ü:çû 3¿—¥öÚ”ª¤ƒR—ÆÓ £©™Jlåaˆk\í;ä'©m$äeÿsïù6 ŸYÿÙX9ünqþ]B«¯|ï«üòÚØIdjy'$ô'Èêaªå}ßï]ÆÕþ(OLù†jßýE“žñ‹¸!ý‡”ú©µÑŠšÇ1sÞõ.Mw¤si^z§­Fëлñ¾Âi%#ÀZÕ1´Ónìtn²`Q,ÅÕd¨LìªHžU[–N´­«D>Íi¬ÏöRq¼Ë?Ÿ—?®aÁŽ)#½÷%ò¦~äbÏó?€‰8Zî胣ÿÜL7RòU×pŸ­­j€Û¢Éô—Ì ¬e ö5|ô0e¯Î¯áV®se¶ƒ÷<»P+™b,ÓˆwÒÌ{>ÙüYäQ–uW”\!uÅ›‹·[“7ø°YÞ>æµùb˜…± «P´ŠIj̣ǯð³Ò^<¯ø¶œfq? 3¡> nž=®•˜Û ¥ O'…wsoñ™Ÿþ‹W…né ¤*¥×{Œu/šw<¸‰™ Xzt³Á°ßY·F[¥˜íß§³@€«Š]÷ñk–žŽ® LDŽqo+hBZFÃ’[D®§RŠB8› câïy œ>›Šuê©S÷»FÉýN‚£æ!(<À5â˜çËYWg/iáÀ$:GVI…­û uYÚÞ€®½8«£ž…לø¡¶"õiÉ’¶qv”Wƒ¨ŽŸÈvˆë6¡Q¦ù±v`Q3c@Ä«fÀòæþ¦, £Å(™%oŒ—É÷`BJ5€Ø¶êù-Uqœîއí«; =Añ›åü±DE]ý6 é'(HW;º­ýÒ ”i©Úo¡cX„}§;s&ðäÜrš¿&±: {•ñ<¼­º^ˆƒ€#Q+JI“‚Ï4KdÝ9©äâ‘]A3ÞÙÔ ÃûË=›™˜g€_Z¾Õ/·»%ìßÄ3OÐZbYì¶nJLj÷G¨ -¾E@=I˜ýº8+Ó¸ñ%Uk£Ï–]jC!t7MEB]™¹f¹ŸJv)·¤+´\CŽ2ò­ãŸ ¼Ç¼NŸôÖ¤žEü$ø8.òaTÝì kO<eôe}JÚɸ2¤Ûg OïZ.wƒÖ¸]åáî——ÑyYNú4ºEƒˆˆØ²—ö¤)ð±r’[ôlÞ?R§×ì{ÒEq[6g”^Cãò»UPê}F «áJYÅøSú>¹ŠjËÖ¾Wæù²x®ø­u.l|-Q¨û¤ÍÁœ@¾³ä„­¨1QKƒ}€#½«œ¯KTëeÝ”\.K þHÏý1— ˆÒoDñò}-I×I ÃwÑu¢Ã»£¯þªŒ½QQÚféóD šh«‹ èç²fªíRYMP!VæÕ Ê£ì–܆Œ³Cúª ‰‚úȆ›jA¦fáôç«ï %®Ì¢´±<+ÚZ…ïö&€Zn¶V5º’¡ôÚöÎŒ¸tDV*mrP±°Äáo¦ÚüñådygÊ!žæ¾ãѱ±Ó‘˲Öèf—½î¨Ñ­ØPÆ>8ç·Š¬/L™Ó8ÁSà~„€Z¨ÜïpYlÚf”*9³³Sã+cñY¦B¤\ˆÑxôñQ=àiÖ*ʶðO7?í6ÜT˜²õx%¦d0{Þñá1ŽìCQ"ÎDꂸ³÷àˆƒ*RçÒ»V³Saìƒí däÂB}¸R`P!0„6.GÅM؇8aˆý¾$|õŽMÂ3_ÿ€*e9;ʺ“|P—*j:kž*‹!µñϺϪøïvgYy•èJQ{©¤EÂæÚ‡.w8„Gß6•õö†kÖŠ¯ø1röÓ‘—hÞí”Âþ˦—+D ô[Wü™ûÁW6GÒߗɾ¤OT¢Î¢eKYÇ…Ñ‹TǸ¨¤ª©ëÏZˆR§.Ë Y$×¢·î-³g!͇Ä)Í3‹jYN[Ü X‡*ªÕ|Öe鬤šúŒéÉV™Ø¼r{+?=Þ&rå0qu•±a8P¢ô Ûß´N$’®'´Þ‡|åb>ê6íÄRç©ÊT™Gv¦Îù˜tN±íÍ;rmÚAp÷z%ûjÞyW”‰¼Hø‹2Z ÷kÀërˆÄö Sƒ¬€¾2ïæ1¯ÈV©´~í·÷6Oj)DDÖÈŸÆ–õà÷úòëu¨Ècx¬™Íö­yîŸäd øÉÏsÄHÄÆëÆÙ‰Q™#HÅ~µÈ ΄bu<…7r-Ë|9ÏE¯!dæê0-êöÐϲ`‚ÅŸb•µ¿ÒçdžÈIÑãÑ¥’Bª …ÆL C!Ó °atî¸p%^p’v¼I¯Â>‡ìb>># % 9æã†ä42ÅmHtÔ¬’¾(ÜikëlíÌQÜ‚?·ÓŒ D3ÜñDò¥Ú` «¢ÿ<^âª`Ìâ(ÞÁ®ßQ’$×äóÉð¾’bî|$vyÏb²_x\f—d‘ð91èW@“¥5è[eëÚ­³Š”]q t³²“àt®ÙQ½óÁ´+ù³QÊ+T÷ÈY:¥ýð†Wª64è>ô÷ŒuäÙ2"ïÞ%µ9O` suÕ=0koG"s>^ðo¶eÙCŸ=pŸûp©]¢yúk˜q˵ÔûÖìÕöãüQIH>ý¦ÓHÓO WÇ8°žÊ€Èw[6È õŽTgΩèÏ•ß]}!Ä&¬ÛöÔ²~ÀjŠëõ”¤]¯Å™àwH‘ׂ„ieÿŽñÄ»Pm võU'€¥~úëù½½?Y°´8³‘A4 ùþëhæº1»„îh™E,µûAÏï*"|rÝ˺HªaÑ€ aÄÐwN»:óiÔtèΞc<Ç;ì¡_¯Î>5£_ùnú!1=СÈÕ ²úbjüÒDY{)Άÿd‚žŸ™¿þ1GÖsq¥h-SÔbÐTÿ›v&ØÑˆãâÓY“¡^ûi(6¢¸ÞT²¡Å\êløokýœ§ì9Ö”„•äØ] òÎû)÷—3ø§ÒƒíŠzmq§Õ_jÄH>–§ˆ”.0Z&µ³è'æœ^ù"H³Ø«d±±º–"?Î\ÑšW)‰^Hh&)­ëÕæÄÓä™ °dÑ“]˽‡°f¼®4íÚNŠ—IÌ$s}) 2EFTRi]üKútKi®IÌ2!!Ø5S¿BÌêXí…ú~ˆY–Œóõ©¸i¥10{iB¼¤d€’RíÏÒ2®RQçšeb$4 Æ ÷…W}BgÊuÆ-›Ã>ñ“Áí‡wg´fËüÅ ìt“ªpIŽÂ›oàãrÙ²£w×R0"ÓÓØ›‰äZTç_u=Á6¥$Èän|¬(ráYj4Ü ?¸p뵸®9"­„foyÎœŠ¾i‰0Vȵi8ñé¡Ó¥¢OB=åÔcZQs7]:b Jù9j~P£ì9ýr"ì†4e6W¿¶5oŽ‹P´^ãå–*ãn'¤ ¡4mJAÎë&§,%³æJd®›Ñ?K\ÝOôfZeÒkRZZûA&ÊVJÇ‹šß‹gûcOþºS×¶î+¼?L;M[°:ÇágSh¹i? úâbÊo,0ÛóN°,«&N>ìœ5\¾_ncpŽI_®ê䮟»Ìs¶åÙ‰‹Ú°–Ú Ö^÷òš¾A:d‹_º^î×ìÝ\|”9©(uRbÉrw‰þònœ”É´×p­%gGúí/ê,Ö6ÿÔ@an4œI56&-†œHe·‡ œùp»ª'ò’eÞõiø (&†ºÊNÖQÀ§õs¨Ì†Ë‡‹r±9ùÀÇ‚‰U²Þ"”ª¼ÐÚ€oT8ãÖcà“Æv RE‡e§¸ûb =ömÚ~>"&=¿¿å1Q®¦`•>N(–HxÕ)=*'þ²Ç¥*þá-Öb÷ߣ{ûî×z5DaoËm™ÞªÕI}“´*V¶ö±Vš”‘Ùሦ,?ÝøüfnöŠ+6ÒrÊ:EÖyO/ Éc¥ãwvãùº3+yË0¯ÇÈd+çzöû—ûªüY ð…—d„Xd¾ÕõìEŠSyh¥}·VŠK‰ŸïÖ ºF `CÒ&˜H·¡“ê„m„W?_ˆK$ÊKNo?©]‰\bWèk¯ƒN˜èºJ{-)Â<³Ï6­¯ãÌŠÛµÁ.n•_Ráq)Xcê¤à‡\XUf=åÕ¾ <Äå ªúGÓ±ÎèEùöƒ«‡ÍYµqÖjÝe¼ßѨn•'O3¹¬éñÒçgWã6=åW²%þGFý[aN‰ÄçÁcá„OƒFê§ÑuX7‘MêbžÕi'û 5Œ½ÃLKKÅbLÎgX3›¢ßXq¾šh¶Ùä'Mè—µm9JœuEX]çq¼5ÿð÷Ôbå¼9Ÿh¡G„)DÂEÕ ’ù ˆ™^sË©•ÆÒÅf.ù€¨S·.«ºFÒ ÛÃR—Õ‰¢R.C¾wøåKõ±}ârèò“fá^Y ã;—.Ü>ÒzlSšQ@Gª±ÖìËÕ ¶ßa­`·~Ô>&lᙿÆsaK"ý¡ÑT°öU§Í·¤“ÊÙÅÎÃ&±nn‰9-ôiLTãÚBWA.u­,dôpH¸## 5*Î)¡¢G‰)¦3$ /âHÒÚmÏ,”Ÿw²Ò5HB š¼·Yøí](116žX£âŠÙë¼áÊ8q ¦Êp8ãûËNMÏ)ª¹f5Ü¥xËgµœ:ºwñç’£=­eqþŽh´)J|]—Ûõdg¼ŒÐÇ^ãÉ¿á?–?-Õ© ÄCÈÊñÔHx}¦Ž·³™‚Z¨k_; ‡g^Á<%¦ƒûÄÛ¹ÖmÓ”HÒ^|«#.IÛŽ®@9ò EC\îIë{ŠD-½¿îòæç PU­.Y£ƒ“cÅöä—uãÚP¸É:gÞµ5òÔ:‡²ÍŸRi8cnž¶ue»§]%Œšndˆ 9IP~^·ÝŒ¡OÙ±¶íÂù ã¥&Jça?l¤&ÁYñÕΠ NFZ"ÿyï)×ÔÛ=†Ìe\(Qêj ƒ6a‹û£d”¨ôäȪŸfÁä§\g—«ÖcÒ§€n5&«„îáŽ~Âïb›­,g8X"¸N:ˆlá²sçtºœw‹w¦}í¤µÊÞ’›2*¸~¬®~ ¦ð˜p%³•Œ5ïBt *œÀŸÚ¶8B¯«·›Ý¢¢ ›äwÓꚬÐ['Ù2í¨éä‰Y‘Š®#’®iŽSu°CíQÃ9’ÞA¢ÑÈXú¦ÈêjYb7úŒÅöwqÚß‘Àæöz2í¯¨ã 9ß[î0‘ ‡Vx QÇ×+;9ì'\öé~²*9îQVœéT610èÈbÍŸÕG£¨ñØšôèXÉd}|.«=(wwúP“0‰„`5€>¤6Òš")è³°ó8–ó{´™ŽÎø­‘`|K¬¼¨QoÐrõÝÄïTº/”d¹mS~ÑÉÙAeö£šØàE26Œn\4pnp»@½fÔE¿jY/Z m|’/ÀŽåôb¾¨©J÷+vô‘%9ûõ¥û7íWf›O|ŽÌ#äò Ž]Z!N/ Ü+7qr§H€lpÒÕ»gÓ)mÃ\íÔÄ¢úm±éÇJÓ‚òÛi» º“ByŽT¤ŸˆZŒ;›)ËG!9‘[ˆ­Àð;Gýƒ:e'£w#ÚK:<â}IÁüt0±;ace6¼3N¿»œ`ºLódœW®©~­;š¿Êyí´º0ÐëªA¶0´„1¤CÀ•g”á‘TUƒàü!Pæ§‘ŸI8fY\ªJZË]hûí'!8ê×¢‰ÜAƒÄ;S”b[+d{UØ©¬ËÀÛŸüä02&Ó¯L{¶ûÃeŒ©øÉãXÕMðÆÊµ5”¦‚Âí«×Ÿñ© ¼° ÛZõU·ËRe|^+Š4Õ¹jj™°¬lŽ6Ê:öít‰z´¼+Üæ¼µ³Y].»MP!më¾ùöƒôQÖ5§£ê„ÖÆ²…îÍ7µ?"øÕ* ó?À‰¾¼¿@ë´eüž×4C–ý­kª©s¼PÓ bƘÛDÑÝ×më'Á BãÒ]œD Ì]ðy@ü¡ùÈPÈšQèLQ{ÉÞ{,Žü¥2s¿ìkzçë­]š!eïƒP’‰JÕýÑVEI@ [Ù­Ï Œ§(·ˆ¸j¡qEHï"!3䯣é¿Óg%é2åuœNAü,êÊ¿ÒЬ¤éks*Âó|Ac€;~M03± ½d ’³IÄñ¨f6é€ÙE- ƒéC‹]Çò,ìd\ž£*66²÷Ë”’-×äs~vìÑÁ9t@WÌÍòTÙõz˜&k ÁùÒKÌ£ÿæ ò˜û£"·4°%E™î£+–|†¬†N!ÔìØV œ½ñú)n®F‚w·ñ#‰eÕ먳i—Aò}r¾m4.ظÜ*xh剩2Ã;굨µMV§€Îú§ïÕ”R j¯O€’zçšúk/žÂG;OAETì–ÊÀßvdÎMщC¤yÌz³²h ¼¯A J[*'ÎKKnJ‘½'C{’=TŽ¿õDº^¢ g“"pŸ½\ýmÁ(aš¸Å¦ìU§­¸kG³3x&+µxslé,<å <Õ/‰™*!N„—dªö/ô-âp¼".?!Ì-Gáñû‹+ñ„9-æU?9ÁvòÊ+êÕ…Uü06G³ ôžâ]ËD³}rˆ3ˆ™îÙ¸TòŠ:çhĸª6áa÷¸|Šrl«×Oß\1cì°ÚÈNOqGŽ‚X6 £/¯Å‘þ8¸£ü#`F÷á²dþòȽ5ßµþ_„¼ªsä\x˨‰ì3óKz.àÁ*æiâYó†Rm‰4Áè]¨Z®ep6Ò^æœoŒIfÉ–ÕaçSh• Žá¦A¶Ë.º±ò”?õžêÕÜêåk:!Ò xqù ˜­thÀt,Í"š9jõâ$!¿$ Z³}Wó©N¯_Œôß‘î)Æ~Ð…î¿’)Ù“,q $Ïoe âN”ó¨Vœ zÝÜ)ü‰žJ(lNo?“W_¶1æŠ/Ö‡@Ïa —a»L uÕEé=KSÜn½éý: W)wê?cç„Ö{Ù)µ+ö˜#¦B)‹à¬·ªûpÓ×QX1ðÛѰ¶êœ OÞYx5/ä4°ÊÌ ·¥üZI ÿpA‹´Ùcê,þògoÞGA½ŽñU™Ô©²*a$¦ w²¤³VNãô&ÎößDF:{–¯ÏâÚ9ÕL*Дæ'¼}8ÚEu%¶B½&¸Üxá+Ú1w<÷'±Ï¥¾ª®–IØ-ðî"‡œßÝÔm,h6 7Éõ™AÀÁkñßÏ䜯2;à#åy7ªEWdþ nß\_&éÞPáê´ßõï:\¯&ÇáA´¯äލÿ?…—›÷s:&5‡SN`tAHäË!àäÐó ÿøûw5-4y@½EŽc áA-ßL/) ñCÈíá½AØ×g«OdB9•Y×Ižd O[}ayÅãŽËtò‘¡eþÈÜ• \—^Óm8cfÉÇWÃ4¸Rʬ¥ü¼Cˆ¢®)%DJkH]¦URL=’Àm’ñ³HÓœ‡¾E$žZ‘æÃþÂ4*Bb$@}ju&"ò÷@6Žà¨%Bª&‚ô½"¬*g“÷ƒŸÈê™X:¨dj^_JK} âp ýîî8}ÏêŸòçÔà–!k´k{ÃèÏí0½d®u w„’@ Ñ7‰H›Zë“ñ¾¤[¡‡l¹Ê…é˜.¦rvMà– Õ"ËK—q$}ŒŽ¨#Ú›øÕ²ãQ=¿ë1„Û!^æÏV›‘iË\ek®v‹ß‘>TUžLGÍ·Çõ’n}l¦ÚÞ—÷ŒÔ÷‡ÞX Ÿ$:ÒÛàÀ(±ö5»'¹Zæe¶íÓÂxöGg¦Á}ƒ³c¸Ùf™miKº¥3øR)¯¥d¢A¶Ãßwç2èa´Ä@jéwÑœÕJBSÒŸ¨Ò«œuª/'"–Ò÷¬,¾óì½*aiÒì*~2Yìž•NÇ〦?’¾go…Bö õê¥ ~†ÜìHÏÓ›w ¸\2Ê”bÝúY·óÙ¯¡þ˜—–à¿Üã3 ñØŒÒÙÛò|M ?ØŸ¹Þ>œÞ½Ç­‘%ÜELÊ{Òý¦¹]ÛÁxKÇ:¥V0£ûé; #EÚ@4rdŽÚd·é‘&Éi•z*ýò©ô…ù,}?ÍœK‘Œš6Å4Dü}±F…ïöo"B45Y+Y2õs—½nÄ b¼-“ü(ýƒ›ª~G›µÕ¤l¥ñtöò¾¨*²g!‹)åù+`ÿ]Ì[̤M¿ùâ®"±¶"GxT¾~ïJh˺äðúüµäײO]ªó{J&FŸ¿²‘@ÒÄÁÃ`Ó¡.‡àïD³ëædA5 ‹¢ìœ9Z´ø½ ›ÒŒ÷7Sòð ä­í&Íý€ÎÞ$Óòor†ö2|¢ä9'Mw¡Ÿ’È2O¤%6¤©3˜Ýk"ù†ç²C¾>˜ £²âõ~¨íÑË”éW25£ž—&  x¤â´Ÿ".Ž6¢ÝÒáNgŠ”tŽo,Xj-9Åäw7Ãä9õ¾h„%ïuv9 V;wŸ"!å8¦C¡ï¾¤ÀÀ—ºZx–Ï# —µ2ï5ª¯Š%¡¸{¦«‹Rm6¶ð}§í²Û~g0¾sgfÿe½Óðé‘ûl‚«Ê]ƒü(:¸d’…¾ô ?­B1íXnÖÿã—uaJ¦tÛÉÔ™æÄ¼v¤ãíâcñ‡ü8llî²$¸ášžqöXoú±bxŠn ß¡ÔÅM‚Q¼RÊí£K·BÈ %\ýA¬´ÃXé5~h<Œ OìÖu»Ò•Ø&–ëq$ý,ƒºßL•ÝD±«z=­ÁPMÒÒºâÛz躘82[[ÎÓU¥LÐî°U ™ÎÖfD”]n`!^?oMœªwá»'»îë¬ãfÿŽ7¬/^ö>D«¥ìKs²…t´ºÛ8œa‚ç¶ÏîÇBóÉææÊûŽ¥Q[e<{ 8d®7[tåQÑMœþ¼4l‡mCeïkõ-õþ5¡'âK#àË—cÙÇ/;Ư`z ¨ ºWÖ»=È[–v¾—hD¤DÖrJÐçgZÌóÑM'sÌÓc=×úhõã5-Ä07òQÏaÀ¨…O‘(ÔIJ2© ׬äê¹€òÕJ<‰Jæìþýï}ô2Š‚!ëS0µõ×ÒÝåV«ðDµÕÉÙâ(O¦ò„¬)xµc_–& -`ëø}ŒšÙk‹ïÇMäûLã!xšÇ;¢|Ž=6’úäûaÜÍ‚8“?ŸâÓ%¯BØÌ½ç¼Ü‡ïðÕ¥Üþšˆ‡^óÉ—f=‘¿nâPÁÍØìå'r™kxÂ^Œ/šZà.,l¦Ñ,_–ŒôóôLÑݵ$Á0 L¤ Z´çZÛ¼[÷ ŠÎÈ]'Þün/Ì• UûÑ÷¬éNÊŠW———¾y#}sÇŸÃS7ìy¤=„URÕŒwO%&Š‚ñá 5帧’Ú¡?,Ü— ôâpL3nzÔóò’*‘> °§«=¹7#2:ŠÃë´ždÑå AýzÙ¢+"à3ž¤*øÙ8¼8ã†Ïq­±5Íø˜5ëRÞ/xi³ËT[Èïå¬oÖçkFú=ÿê·qµ_éÜø"í³‘°IÀ{¼Sì;8ÂdÅéÚuä"²R|E³ì˜Zî‘ÖÚ“ ·¸A=ýM=ó;—Ǻâ‚â@z. £„‰ÅÁŽáüŒj­pè¬D0k!5Pˆè(Ð/¾tâ½Ò›¨­žášFÔ jj×â™­hèϧ«X˜y³Þ‡á±¬)"¬õ*ÜÙW€$/2  ÊTÛ2ëËE©6F>í¿ÚßVV*_Ô#ÍÓt¶ñÅÄ —:§6Ú ±žqqÆwéF6†8o[„Š&/·’2.YŸ²jÛf8á¸ã{š24èá Ö‰ˆ*¦³ºt êÓö2µ†™ŸçÆ?¸=[Ó/sI‡©4÷' 7P¨jùQ®MÞXü½wuȲ¨Õ%Џ³ ƒÍ÷dx€7r(cÆì‘\PƒÆIÑõze!UXHÚDXËBèG`F3ê^ƒÔÒ2 Ú\55j•Ÿh sF5mÁÁèØÑ0çý®¬Ѻø ÕÀ°Ø²ô¼¶¾6nÖ“ë¤Ê=â“jÏIôÍO%ì=‡A3ë⽞ÙݽҴèÍâ”ÀΕãú½üÉúSží›[qJlpTL‹OjPŸM¼±Ôà ãÑUíQyK€RÓ|Ú;ÜW¦2±ìˆ¡Ÿ¶‚ ªQ•?Z‡~y,©ChꉧñµÛ1 _f.áþJÐú.€Ìû;/ðF#3†´¹†ô9¤˜ÕƒÁ8ºÚz "1dzp0r|«R½´òCjYœ¦rUr-¿(vãS¨X±¼pÞiÁ% É+V¢Çº?­ùGX2±.mSdÚRˆ«M9} ðËøGéà€J†tPÚm¼BA7ä—¨<¥4¯ªìS_¦j›§HtAë—ÝóÉ(èÊõçççÉÜæŠºMÖtšõ•z›ž‚r®b>"r³.HQè†E;ÜZ¢ù«á ž» R¼LÇ“²ð|HÇÔoö=w1Ŧ«õuýÂéFõL?GcÓ7ÖâºÁÃ*YÊØÌl|S¶=µ^Œ/£òÑáfâ¹À÷?V@ö Y×:ü/ ÷œöÊÇî2¯+ã* ŠÊ|­Û ‡×RAy3¶$ãbŒ/+õŽ¡,Y¾Â(ËLþB»@ì¦/êÚîb¸<¾øy¬(2ö”î’b…æÂ¸ç—/±ÏpJ‚!,ÖÐFÑÒ;!«»Ï·ê•û ò&ϸŒ'g6®0h§JÅ3Û B¹¬K?&»hˆqøF¯l#ñõö–د¿^ðå‰YNVÕˆw^x¾UPLðÀmʧÒ7ñW‹ºn¶¦T—˜JoT`(é²Obh:¨2:V­öÒ‰¦+/±gG¹½×á†IÈ^11}©†›ˆÞäýù€ú0·Xi^©^@éŹ[£½IcÊN_´˜JWèJ8»’‰•'ž­Åôé¦.#ïCÜb)ÓœW0;ækóªŽütë úùfVUÃ#ýÍÖ †{wpÆç¡¶k>÷7Š1¿wÖNu0Ÿ‹ÚÎ^V1 7æþi,°f%‰^aLÕhk0ì¯ÿ¡øŒ[Þ…T@NÉR»WÊH…ÙØö>X’É~dÝTV6ybÂ*âÊ'_ ü³H~$×C©€Ñ¸0\F˜•{ÇMܘ|™‰År|®óì+ÑüZv?çºûqgëã ¼KÖó§µ÷‚ËÐ×XDHÁ×ïkuä†ñéUõTÉ ˜P(†­žÕyzó"ð¨ÖÇÁ—]ØP—š’~¬QfˆÃÄ™ê‘}SS“8˜Gû¦éN¼‘ên‰ùá}d?ÜSŒÛò'“)¼¯Ki^:Yº5.€Æߥ6„L=˜±w-5hkï/îvØrU˜¾çs^v!üòÙô@¶cèXeæÌø$ÔÎ ¢!*„ñÇk1a+¯¬-)Oÿ2Ħï¤×´ tnáFo}UEXx,÷*ui¿'nŒjä¤J™6ôMëç¦o)^q¡=—¿fò¡êcÇ{…*n´˜J;}x0,*ômµi`UìÊ`®…ät{aðO$¥A—Ôù”•­–ºv31§éÚUE•Çmp¿¯ú+Þ‚Í÷§#R´¾6†ïÀ†ÓÉݺÇÑfŽ*,ãíÌÝhTZíŠÜ-_e>Å©e.>eöEö!ûè²àb9÷…gÀµuYõL…cÕ††¶ÕþÓ¸mäÝ"Ã5Qêt­0á{P}¢>67"ä3øF0*c|\kYWüOºàáÜSŠê†‡fùhÄÛ£¥%þOú#0‹ %c\“wx=þýӘ鮞u"¨E6Ηzóß^Ùó£?Qž„ ÝÃsÅ"„o¼?üh£þäp–ÃØåWÿþ¾—¬=Åä\^°ixø›ÃöêJu\–7k ¨šÌXâ0NiœXЪ!™—LŠèå5UÖ®¾zé„pmð%š—ƒäàêصp†wm ̺®êçN «¤b[ƒ˜çÌPÁïrMòÕSÃ+ 6Y¬êÃdŽ5£ûžçÍx_M·o‹ñT¼¥J¿¿Wï½mý‘ªS…-ßÉò¶)\×góz‚º¬TifteÍíaÎîtañ&PŒM¹š 9x”$HÍÓ5L$xA1ñ£Jï—¦ U‘(Á¢\Ü#»¸ó [z7MjõçcÿLÁÆ,»“§;i@Ì¥ ;Ö÷¥ÿƒ#ÌmæK˲úyŸ”³fÓ;íüözúDÙúÙ…|zÞ©<—mÞG3RBWG:Ì=É.¦:§—§åaÝ~ÿ¡¤lI dêz3'RÚŸ¨T{ ôg—ÄxSFlƒ¡”ÇO€±féUÉR$ ëj|d.bTªšÄÑóTàˆé°ÚPês/˺eT °#“Qýi¼H¦ðú2˜‚1x_›”F­D–²$^ŒÝpÞGÓß«vB ‡ªXÌfÄ\„¾Úaä²5QF{r$傾]¤#a\”2wF$ê”-·[L˜ßÞ­¢l%VýúøB}"Õn&o¿ *Ë›Vjœm À„¿Hz¼P'£[Ýâ›mÞÁÖÀ/D›½£KgZÊó‹…òc^( ‡5_¶sŽìSg}õ½i´¦Á4S×󆺣ŽÛ^íÃCA¬ãM$~"1Šîd’›¶Žò¸Ò\ǾlKb"îvŽ…<:©þyš³I9/àŸagE´ ƒmIL7˜{séçÌE.ÕÓ8è³S³|I¶`öÛLbžš#±èÐz¾¿ê¦Ò`³Ž.C ^S#ËÚ<ã—„·€ZqûRT®ÐoÛzZà†OoF ªãZóü·Œ2‰Ú¤ÝpLë9N?ý#Ý][ Ÿ»$ÕÚQ$&Ñp,.À™=‡I 9Ósì\J²¥…_ldÞqzÔåDÓrç AîriÓK‹>Y0Z.¶ƒÈò@0´äp‰›1±neè%–V£fa}{—µÁòü/*©R2)ÎYŸTïLiXõ¬‚â…QÕýLs2ó y—ÖSvÑ ì¤·ÒœzÎQÃîŠp@¬‹ÍgS_AŽbhamMÇeQêZÛcmRoDÖëVbRnç¨ ÀˆrDaùßvVHJ&ó(’Q;#{úí¥ÝÜ…ÑH%÷ÚG4{§]S^|ÃÊØhµ?¸Ä^> stream xÚw4\]Û6Ñ‚D¯ÑF”eFï½E] 3Æ £w¢·Ñ;ÑE'z z¢†D ¢¾Ižö>ïÿ¯õ}ë¬5g_wÛûºË^gؘµõxä H+¨2áÊÃÇ (hʉ@ ^ˆŸ€Mæ ‡þ)&`{E¹Àñÿ0P@AÁ®h™"Øm§‰DÔÜà>Ÿ°8Ÿˆ8àÄþ2D¢ÄŠ`w É PC" .l H'/ÌÖνÍ_K‡5'€OLL„û·;@Ί‚YƒM°«Ô½£5ÐCZà®^ÿ Á!içêê$zxxð‚]x‘([iNn€ÌÕ  u¢Ü¡À/Â-°#ôf¼l};˜Ër=¤« p˜5á‚öpC@ (zs€žªà±ñ‡±ÆÜ€?sàãåû;ÜŸÞ¿Á¿ÁÖÖHG'0 †°ØÀàPÀce ^WOWnùe†» Ñþ`w0 ¶Bü>9 ,§£ þIÏÅsruáuÁQþ ƒÎ²¢€tt„"\]~O†‚Z£Óîü£²¤ÂçO`C@l~‘€¸9 0g7¨ªâŸ&hÁ?2[¨+@‰‹ Î¨§µðWx}/'èo%ß/1šŸÒ `ƒ&õƒÙ@Ñ/°;àŠrƒúùü§â߈€Y»¬ ¶0Á?ÑÑb¨Í]|Ì` B÷ôëù{eŽn/÷úÇüw}J†54¸þ`ü·N^é ðáðð ||bBôÂïßaþNÀ_äKµÁ°?ú'¢* ûƒ:yñpÿ³-8þNÀ¿wÐB¢{ àø§õÍ@B kôßÿy~»üÿúþW”ÿ­õÿû@Ênpøo5Çoýÿ£;Âà^ [ÙÍ=šHôp þÛÔúÇ(Ë#áÿÖ©º‚ÑÃ!‡°…ÿD˜‹2Ì ц¹ZÛýÑAÕC@µ‘.°_W €‡ú/zܬÐ׉ ºR¿UPô4ý{K%„5òkìø…„` ìE€.< |øÐó zþnltE»Ðäü6HÁ¯z €r¿D¿‘˜þ‰€Vÿ 1ÐúoÄÇ'¢þ¢ã¸ü]ÃÖÚ …BñïnBSù ÿ¾1 PO¨5ÁÜ ÒZ"ÄþMÈÛ³j9:ž/£R“l_ S9y|æPmnDx/9«2ž-¡Nä^¾ë&YXSâ8–ýÄôÓg»¹/¼%Q§õÒ÷êé Ýñ/­³cTý ¶åjûðéyôe7|:û> rÀjÆìPcËqv%ÒÎ#?óèUñ¬í+›ù¢³Q%¬NxU:ÁkcT<Å–k•9Msו‡áöC²}Oâ©ã“I²ì7Lj/¸üvb }L–ùŸŸO{/–ëó»tÒ²ÒšÐ0`“ ³ûÈMV£þèSR§]dÃ`1Ó(ÝF v¬a,}ÿaå=Í·§A ¥ÄkãaqÖ:«lòï¾Áõ²ÛiÈrjEŠ'~ò=Í'pÑißüIå]¼'$]U(Cõj^‡tã@"NTù½_+…N¦/z·ßÊ&ž´¶"Á’°ÐÌUÒ½qK0—©™Ðø3gò`ey錙Z¼W…µŸøÈo:-$ê˜?ÑaΖ¬Ëg.²'ÖÏeÿ4cð#éâf€¢³•¥‘݀Ɇ‡AÅÂÝÍmC²9aV»'l®ÕƒödK«Â UtþuvÔ×ç’±ÙB9Â>÷—|+ÄÊáEÞÿ¨ü1…†10F2Oj¥¥H$+ƒqaI=;PB2 !—f»jæ¬õóÜSã=*¼NùiB¯ô™Ö8zMÿÄ¢_JÍ>«fÄòåa3á0'q<¯±Œ>—¼wü°…[CþÉïháTÀRWÆHv{¾7U¯1ö§:/“äNxy;·w‚aÂBca»÷ý"º„¾Òsù°Gƒ¼(æ‹"UÃÙj Rÿ™SE^:ýRí,éÜOêH­èMïzÂ$‡R…À–yEÕ/oôÇ ] z"Å'Þó…ØaeE¾Å ¸VRT^ö‘I'i»`ÕÒ}©½} -ve˜pòªî>PŸ#ElíDàXŽ ~ÔI %ä½ónã«å"S(‘ÒÎ]¹Åùu:FfƒD¤·érëÜ=P"Õ¡UÏÕÏmíË™#Ò‡ýi½:wo ÖRR‡’ÍÁ³·&r4Å"ÍÂá¦YgM»µ&DœnýIúf ‡:hÐYÀW+Õ9‰) 5>ÉªÚ ù‹LÄÙ æ—Õ ‹)‡S[qúƒU=E ¹ò‰Ûbwí"ö°e‹°H“È(¨­†Ô ‚(„½=ð“Ÿ/öÓÛ';©É2û@Yæ”=0\d[P+©¸ªÉzNÆÈ#“¾õåëBÄÙv™üçB”ªÞSÞ#’¤7lÉ?÷í[š$]ÖV(Ä8÷Leº÷˜T>O‰%HàN× j0y †õ‚éœAA>Ùþµ÷Ƙ-j»}aëK1ûð'©ž KuOB´"ËÎä~¿eÙV`€Ytã°¨q>.òIª¬ÒÿIë=£úü!K‚,wb½›g¢tÉ4•žrWXø÷8—™1­0&Õ ™öÁÙE•ü*%,·ƒIL>•q2¼ª%nL|dBú½•hHØ¡zg¬GBÀƒÀî4¶‰ÏèÒ²´à~ÊȘõ–iŠVáUV‡ÿf³œHLÃê¼Sãud®±•:}lNM(ûèù$©‹J5mCÂ8@1]Ðm‡G<ËiîìãÛ'|Ÿ¼Ø¯)%‡´¾«N)aó"[‘_Û>³Ä½hШçcÿ6ñƒï@i_¶–S¿ÊR~é̆­‘}ò¡8Ü‚¢ãÜca–äÄN^Ü_D“ÈsØAS‰‘Ï_í8uÃñI|Í Tï´mR_r¨$HTjÉ8¤Ýÿêë= ×¶C¥ƒr¾qd ¤|ö¨SF¹hTh8޲Š0dyÚeHħôHJú@i\9í-‹.d°qióz£O‹»H©ßÛFƒS`ˆÒÓ–:Žÿ‹'Sµ’1ù'¶f-£ô¬¤7r{g¹Í²†::_Éîv¶Ýܰ¢îBDnE9æy`ª suðÖÒͧz÷Š~ä¼\#]®¦ÉãF4Š=±*º •OøÌ)(z’óÁûù{iÕìGŠaÑÕl#ܹp åæƒ¡–Ø¥"¢(ìçG¶l2ùAŸoMzË8CdÊW²xØùž¨×Á éÒ‚Õ·8Æ÷ƒ¨v&¯…¢qœº"¸7pÕÞ,G-¢„-£’w§Ò¦»F!c6§ñb¯È, ŸÌI”¿–ݺ……eδ²0í(Y7ÜÎÀ02t_±òE [ÅQ}7NQ?,®,›Ç'–’òU«çC¯ W2I9I=žà/Lc›OC¬u×kTõõLTò¿°{!P‘Œ®–߯>¦[¢y-~þDô„9|êuùœ‡™"-n”jb¾¦ž&Å»58!¡ß_Úº6Çhôj—ìȱ‹£Óž*|a¾‹Aúq¼¹Lˆþ<™7¡C9Ö¿CÛÜ¢1JD©sé.ðY<˜ÿVùÖ"*õ‘^4‘%s‚^ã„P_£jVú} f‹ž» HBŠrÎ&0®hå߃|¢ÎŒ¹s€ cWx€‹O/¹ÿZ%‹`ô 0±¯Cºå°ú~åüiSúŠ©ýv!·’Ñi}/øë-÷ÚÝ„ÄÊØ5¼p¹\»¤ëþ§W«tƒ¥quºp[Ì¡ã[v±iÔàÉþøòšŽ¶·06r|ê«ÎüfGË ÝÑ3Å­ÉpòÇ‚íá¤F¯ïÆÕG‘Êö R¬ÖZ÷,Ú)|Ï.â\W¶öUJáéÀúy¶&Trç±Ü=NÝHÀS†¼d-º2deŸ%)=ØØ%ï›ÃÇ%ä²c{còÁ˜ëÅš¡ÄÇk Ú}··£ûéG_H2†±&úmU‰=Å^ß§Cy¼ë£¶#/Ó¥©Š¢Êk\òW·‹ËÔݲÚílYq‰Ñ̦˜Ixî0£1¶ûµÿ8º#5{}ŸŠ©ŸŒmÎý±óœ>W2%öV‹;IbÆuÜêÔ¹vDíh6në1Wœ6™#–Ûž×ö4Y4–µ|ÂáÄï}]USJ{ŠEáv¨& ¡Ýš(£SMn|Ö¡Áíû伆8·žˆÓ å d¬…?¶&Œ¿ÍB“ž°Hʶ¸a±ƒT~ñâÆ“\)½øãÒ±œpˆq0¸ú•ä2‘°‡—]Š)k«M÷¾Û›Â,çà“ ¶§3 ˆ(B³™¾ÁÒ+§Œe–R÷3ÍÌêéRíÄ'~âù»Ô}¶÷îн~i¯;gÂí™ÑÐ;†UÕŽ‘äP>²üÜå7`ر „l5* fR\SGµ‡Oèè;{BkÛlFî¯Ó–=@hÄ(@qÕ„ÄØ½¢æC Ôéï¯_×ÓM]¶ª¶ €Ì²›–îYh—´ —Q©/Ç]O©@~ÔÊò•¼Ê™¹Ê%ÿSo6b ¡LBqãâ²§ÌüáŒyB2¤ßÈ#¢¦Wãx aï@;lÈšœ¸J¥×R Këϰר ê·³$5ý‚"ØîH¼ Y)8fGAëë¤ã93ˆÊ·6 ùÀÛ«ú¯Æƒº¦\·E˜ Ÿ!êTâx4Nˆâ”âiÆÖ(?À»¾^·æyVÉk­2tý¸ä³`‰#MôF;í%'ëÕ·lió¥¯>o«ðÏžª©™úæW'RÛ+Ut\MŸjT‡xöyË·6âŽvKÚס†Þ—o£P%&sAõå7]Ž}2ž:½ÞÑZߊI§•$ Ó-eŽs ^½F±›É¼¨v?´îËWVësä†ß2W:ÈH‘éî›GHfuò¯­Á^dÝûô.¸ø@f[Ý=*Ž_òR.Q#¢ÃS[ò`=ذ۴\®ßÕBî$y|SÂÈ•Yde¬„4pŸz}ǸšÉáPPa‹Ub !ÕV¼¦œ¢Ž¸w"y÷“+þ§ÝÆJ• ¤ýäBø*ÞTÖ°Xз+Å›*;,ᾤvàÄNV q߬oÅJ\ ‡×§\«I2‡‰#ÿž}zýTÊîªæÚ{ªï˜Q‡èOòhŸðúû{FƒêË|Õ¶É /äút5^ñ“LŠü•Ø •æz„ñÚ$*·£{\Þ+Ü1û(ÂLÕÆkzÔÚ´qº\2¼É™3¾-½kè0šg«á²|—h“ÉôàÁØï±´½­ŽMôø¥G|˜ ²Í8ì:Þ›ZÔv({Y”Ÿ/õ(ø(‚Ääìĸô–±ú›a„eãRÁ5\{Õ÷‡|;éŒLËm:>(ß]×¥ŠÝÖ–ö™A?Í·J&vÎ$ö,;äGzç²OÉ„Ù//B{ïûÜ=§Ì&äºÉØ K"Úö_XµÇH>,Jì·ÛrÝÒV8Ñ_BrixFª&%ÈžÓ_c04ÍãD_Œ.!ÃÏi²o…6ñâe‡ƒYv—„¯Rç™ÓYÃižNœÏ§Í^ZîÞ ZA] ‘døÄ»Lù˜§àö.äÝÏÏ’;qœ| Åö7o€Ñmä¤g¬0!=é$Ú‚{ó΋Z8S{C²_µ¦Ó»§ùäM%Tie†’ÕϾϽ,= õ&˜UŒki“r[wf‚gUâüÜR‰#w,ïºCI@f2VCþU½æ,‡Ø2Up¢ÖpNã.„ÓË$?€Òoæ8<#ž³ÓÍ8äš³'h€Œ¼{^p½µ"90ùŠzúISZý «:Ø¥á‹sýjaÂ?ª4rUôˆkËÌ4.üç笺vnmt1W/›LSdزäÖ§Ýþa„¡Ïà¹Áãâ` ·z§Þå[‚ÝQ¦E°±¾ï~¤ -õ ¦oi3€}šÚvA&t*7 g-ÊÃ\K»7J¤é¢KxÅ´phN^yÃßmZ—‚R[w²±Zö(ƒöM¥߇•˜‹ïl(w&ˆÞשÑLx@ãÌ€IÕµ”\䢄&¿¨Sa±ë¡ÑšóÛ¬e¤]¤enú¦•P`šbR =ú ïËZˆÝ¼JoŒ”¢ÏÐæFŸÊ†YzëãWÔæâ)»ƒZÃ4ñdìâ(z·ê²*ÆÑÍù"xb½ò!Mù¡Ì©— † œ8ÕÚÎÖZ$Õ“W¶Èø‘­Üªo«\”JËýºS"ð}87˪`•äãvÎO^Ü£$ÓRØÃA‰v%­˜Žµ© Ý!"éyì}뜖=ž(ÿz’zÞæb×áé—ReR{‚VüŽÀ’5·Ú´[ÒÙxdþoV-Æ)X9»¾+Ð. ¦äå6ZÞh öÉÑýA½ÑwÅœÎRÇ’!ç=f’º›R‘Çb£[«r /ˆät œǺT`¡S{Þ¦š±Óßš½®ájt7úéc&ÌÙÃÙrR7:°QŠ9½Ô‹&ë`ª|?V'¾ŒcWãy^m`jÌH¶Þ§Ö÷°EP_ã‹´ýQÖ¿/V[xÜî!Í,­ ¸&ãÈÜæuf š]Šl‹T÷m"=Òåc>–îe¼¬ÇdßHØÅÃohT?/r(ÿ¼üÖÿÊ.{y(´?S¡:½¾ö™àƒälWÄrOÄùeø j”Ê>n"¡§Û£éÌtøš~ÛN:Zò–ÅÎf¯Ø\ΆB¨3:–!nxŽË˜NÃ^瘮•FNðñ“ðQ™vÔ+6ä¼<ÏwãIm{@6u8Uöp¿–²”ó=£ÀÂ×pñ•>EÐÓžmÞjAŒ7Äáe3]9Òî$q{Ë3‚¦àÙ¢&VB¼¶™ œþ¨]¸&§T§×HÅ!•v…íÄfŠ.iá‡ÙW÷×$­øX|Ft eNݬî³&ÖŸTiušd´‹%ýP x°~­Ý¸£ÜugàôÅ.y× åÝ÷n÷‘‡Ž%Ñ^i/£žY­¦‘®Äù«Ó”F˾ŒÅLNŒö˜¹ÁÄ¢æÉ+Æ|D²ÿÌÒ; —¼¹úÇ0|½ÏC'jRè»$Ù„VûNy÷Þ .rxŠ.;ý 錰é¡QÔÙÛE¹YÞ%‰j.¿ˆŠÌ÷§_®¿(Ý•ÙÐT¾ð[Þ*ùž« G+^Ã60äB&ÀQ˜Ùáî uT‚ï ’s üýî0 «ef¯T:šºlì •—ƒÜW1„ܾ<…Ypn¨QbTØ<’Þæïž_é»ÈµBÝŒg½ÌÌÆ±*s‰y ï$¬f.ôð-ßT„4=ß´{Ýóc‡?[<ûç§,›–[ßÂqŒ÷Í0[þÅs;Æo#·#õ¦|y²{è¤ß¸)4{ÓUhŽaAllT\$:0lן¥=cœ?³§_ø1 Òf ;`ãÉ.n:"åiJ©ð…ƒ ßq©‹6®¯¦Þ'ûÈéF\³ãpöÒFy;ñmûBù¸*7HÚ—±$yµ/_f žõ¦P!º\œe°/¹¨MOq¦No§§DÊÂò2îòÁs\¯Éù~ËU½_þYK'xdq<õº¹£h˜ g”2[йÂS=–·ú)‰ŽíöèÎ3^ÇSÀd½›õ¢cœ0wéòn ¹7¡Âm#Ònø´Rî•«Q$™ùÁ{Œå)áYÁ“ÏùEYb£,ª¤`Õynó76$µt¸³e »·¬*(‰—F"ƒ'’^ºØª> stream xÚ¶TÓÿ>N—Ò­ÄéÚèîénaŒ#6#GwƒHˆHI* Ò)  Ò‚”ôýô÷ÿ?ç÷;;g{¿îóÜ{ßÏ×;‹ž!¿¢=ª†€£øA@)€²¶ª…€@!"vv#Êú—ˆÝŠô„!àRÿb(#¡`ÔMŒº!j#à€^®0$&—B@ ä_DR  ö†Ù´p¨'»2ÂÝ stBÝäùëÀá€$%Åù~»Ý H hƒQNP·›Œ°+ÀAQ~ÿ Á%ã„B¹K úøø€Ý<HG9n>€ å0€zB‘ÞP{À/ɰôOiDì#'˜ç€!ÂåFB7W ÷¼qñ‚ÛC‘€›ìC -€®;þYëàÏâ@ ¿Ãýéý+ þÛ ÜÜÁp?Üàs…tÕ´P¾(>nÿ‹võDÜøƒ½Á0W°Ý á÷«ƒjŠúðÂ?õyB0w”§€'Ìõ—FÁ_anʬ ·WF¸¹Aá(O¢_ï§CB!7u÷ü³¹.p„ý×É·wø%ÃÞË]Ðóð‚j¨üɹ1ýcs„¢¢@I!q11Ôõ…8 þJ`äçý ‚~™o4¢Ýî‡Ð@˜ôæ‡í ö†PH/h úßÀOD ÀAì Ž08Ñ?ÑoÌP‡?Î7ýGÂ|–À›ñ€¿>?YßL˜=îê÷ýw‹•ÕLLŒxÿ”ü7¨¤„ð ù…DüB’b@HDT ..üo ¿Kð—üßV=0ìÏ×ûWH ¸ ù‡Š›òý¥ÄûÏÑàúso¸ÿÍ ƒ¸h(€ëŸù·Š!7_ ÿç-øíòÿ7ü¿¢ü_çÿßHÍËÕõ7ÎõáÿƒƒÝ`®~2nÚ u³Úˆ›ÿ/ÕúÇFkCía^nÿ‹j À7K¢wtý»0O5˜/Ô^†‚8ý1Gõá&¼+ ÕCxÂ~Ý9~ø?ØÍÚA\nîÏ›ný† 7[õß”ªpÂþ×ú ‰ŠÀH$Øè¦ù7'Qt³§öPßßã €#P7.€y’èWOA÷›Ëî u@ÙÁ¿í ‰ÿÿ b"ÿFPÛEþírÿ'ÒŸæß£ðŸ’ÿƒü+‡è %ùÏ¿²HÜd÷ôrsû}}ÛÃ<Ý]Á~¿ÁÿT â…¼ñEýžè›Rþuþ}sA¡¾PÑì4"á\Ñú³Fñ®ÿê¨ìöUÓ'ÜüèYd›× ~:wõ³°/ÈcÅôÁn²¹eU®#…OÌ—è­æüè–ÇúoÎ.lŒ¯¾!š£é_´¥XßÇHÈÀo¤°pé`ê‚ÝŒÙñ€=ßÃK‚Dï9åOŸ^ußú¾—ŸßEM¯ê¯U‹iÞºx9ÁŸhœ`Z:É^`—3EÇŠ‡âg$à¡Øó%<:þ@‘÷þšùÁ#^¢ÀíDáb´Å¢PÒé”ÿ|…‘g'ý=z :Fì#Šwãh¥õŒ´ÑeÅ …“,Iî×êò–ÇF¡(¯gœ¢4º·õ #–UJƒJéÛJ`Úñ;Ážºth៼­»GÊÚöšø ØQVæFh6ï b·A@+žª¨x‹zЗ‚Û¼a–}Å‘OÅ„ûrh¤8¼t ¬•V@Éo^yŸwsQ|Á€¡A¢¦+ˆëbÁ­ŒUâúØ¿<‹G¼ØÌËÛçi/qBélÔOGŽéø ã‹]*^•JSÅâ¾Å/“õL;Œ+Sz9¾Ò…ìÖÈr…¢ELüë¤<òuüôªÅÕ ‡³"[3§hï45íÃç?ƒ~}ÅšTñ 7uÓç©wÅ×Éè+jPãÖUï–Æm·f.w]p’¨¦6úDAÔ*¹‰1 tý–æw×å‡\;ߥ©'|–dL/uÍæÈËhÜCÌŸ"ð>Óø |\RxŒ É|Á©A=¾“vÖAñÜïUhm÷‚­—F!¹bú8¾#b›ÿž±šÌÆ~AÇ­¥W]%DóÚ®Ôf›Î:nÂ7yvBÉÞæl9I}¿n²Þ$R;ÕÙN¢xD7x&ud¡´ú”ëç:l©Øákh£¥¡zwWÈOY¢ï‰‹þãíkœCÌΊr$VjxÓ‡Ãþ'÷#_ÔøÝË|~‰{»á`­¯óˆ„p6þÑçÝ%¹p¹;km¤’':ãϼù?ýð.\ä¾02*Táa|£¡˜×äÁPóµì³ïG¹“cF/’À¶”*Ž ©Ñ-YWë)¦í¬q„Ô«W Ñ›Eªã+aŸKw,“f¼¿<&ްÌ$]U5‘~»o°‘(FÂÚ/ÆÕ÷¢^ó®¼2ˈœ´£wûÔmupówBI¸þ æùN™0Úµ½¨.Jf™O˜1‰Ùwx£¸§ôú‡£©„8^ÔÚ3ex¸A.¾°-k8Õ5­÷¬ªC5Îùc ëqsgoG0ÃW¾½ @C˜cü¼E€UçÝ[ÖÞºÑòûóñïc‡tØ4v«81­$ç|Ï{"õª°Ý“®p[l7Û`•Û8\+BÃ:¸ô˜þÅÏT'(¶=²”|:t˜üA\ç3w?ꈻèa¹ª×ùTmKÒ/€‰¶×[Fe–í[w‡ýç7Ðùs·dÊÓBUæ¯Ê}E¸Å}L•X§«—´§ÞÃðJ£]G#%ÇÙ‡-ºTE¦·"ÉÚ…5ç¿ÕüöÖgCåîŸê4G¦|LÿIQQÂ|âQš1ž~Î›Ü |,³tRjÝôÎ;·jÚ ßâd·8ðvv5ó¹l›©‰“9)‡Áº’E(øó\ë:ç–RŒq°6Ù.1ߥÈ&œîÓ‹ñe‚š+š<ÚÎwF–¶8;bèAýÔKÂh’=mÍù”›ãs›Ù^uð¼Q‡"¶æPÜТL ½RT@l?½Ú†'ôà8£jEî nð vT³Bˆ/ÀϪňè󎦘æøTÉCóÏÂx‡Þ°WØ(¶ˆsqߊ:ô¥ÖËJ»ðèîѿܣt—¢­",´õØ™ôûË;°Ñ-lÇß úª­ÉÒ!ZÃå¹Iç 3¤ $xsßgÁbKα¡´wä>^1>ˆY'^’eUZâ–§/YR!ï+86ù“¹TÂÀW{e{.ÊŒøT–¡yUs¾ô 󜲾Q]¦Á÷¼¸ "ò$)£ ¾¬ð‰>ML,¬×-j 1Ù¬Š‰„eO>ˆÒZ¤ûpÆžšNžò›‚¥†AÁ*ET5²œ»êùžCjI ŸöŒ„æ.Yó«¬ düxò ‚â°ÉPî»—»œ£a­2ó¤¿ü%çóäˆG£ßUÔ£ ñzõïM„¸cÞ}9Ñ/&sýígMþ«ÊF‡ãT.ˆj‘1‰#È+qPº$7gžÓ†uÇìoÕû±ÍšÊã‰ÈöØö.)Úr3rí®¹m’‚0.ŠÒ ^oBïú!¤Œ÷¥í}È£o*Ög¼cØ,kŽËIØŒ®dtÒì.ë£ÍÄla O½·Y Ã^³Ö~Ñ£˜*6¥ƒŽ|ËÞ’nH§r^g+½&§±ÕZ¿VØ¿êØÄò¬@Ù¶>Óóá06àHçJç%…Î÷Ë`4Þ›þqÏ œ‡KÓ%»Íùx1Ö¡\a);Ë{ækEÜ•Åeµó-¥:ëðbª=¿×°#SážsBQtLÂÛ{¬”Òw7>š_X—'Ùæ³À@û苺Z‹ˆ8iÀFE„‰!ŸwµØ\ßW°Û½€evªY¹ñ‰¯;ÜFÁÊß2&]X  3S-#êx Œ?ò%M‹Å¬ÈÜeé!°MðUéßëÅDH©N£>3¡µ#ÄØ¤¢3£ªžZû|[È=ÊVV|™›Îél] {~®)ƒ{ȸ«ªØ#[T;*5¬­; îŸà51´\.±ã›gtÏò4ÇÑ¥ŽˆIfZÄÕX½i ¨¶ez/OEòÞW[î33ŠâîcdŽeš\á_ÆÖõ®Åî#ïRð ~& °na»Æü8þöôÓ7( ñ…p¸ÐPÆã‘$€²Prh¹³§ß´”;Ôý¼†}¢Â &Àê¶L“G‡}/h‹‘¤m3Áa7›ë€”aXAb…Ý» v0Hy<Ð{V÷‰(¯ ·C@t‹9éuó!rÌÕt+„¦µÅH{)Rsž[/?Q‡özq`g Ûén^¿Fæ›+¬áûº_ýcÚY‚{×HÊ/2 (úì8˜&¸'ç=žPžÌe}F*tàóÓ°‘Ød•Èqâ‹©V­ñ?ÑÕtña«œHÕÜ/˜Iv5'V˸o¼K cxûèN\'½Tº:•ùòáeDËõzLÿŒX´©†!Èr¥·‰ÐŒµŒ<ÂèÓuã™”}ÇëZh³vnØÇê¡jo-£[%ôéVä+!)ô~‚s›&ÓS È× Ñ@–õ,#š–æzFBÕÔ—IS·LܳR¶FÝùW—†óÓ£ï®ÐªF7L&TJ¦LÑÔê—“˜(ùŸ³¦ÕšÎ¹ÚµÞ.Ê£p0 —È’ 7I§6Ò¶’6¶éZÕÊ îÛ¾ål˜td|Þ‹ÄÛ}?ÁSð³£Õ™ð©cÚíPé</—ŸÃ"宓… ÆmŒ=ûÐæŒàëÎÚ›Û^…9ö|<õ>•9p;î*D‡a©ëjú¥…¬¬u6>¸—v4‘ÊÇl0å²Ýt¥Úm•]u]ìaõ~aœ9,-µúÝRßàÃªä ƒ †}{Ô©Ogúõ7˜å4ýWq^Ûe-›ýûOÃòâa…5J™›ß'Ã|Z½¼ÞÊ¡úT¬Å[®·÷ì—¶ÑO+ &è—MQÔ?µÝ)£òaŸB¹( Nx­øh‰Ý-¬%^uôV8é:ãþŒ¤!ˆ<µ:y2¢äñ!yâO“CÒ?ä ƒ66~øpÿ£|JßEaºq:A•ûÆ;Õ0Òõ•j —àÇU‹G™é7´+Ÿ•6[N-¶¬:°”¨™Ê#EÂrMQ¤ôª…ùÔö)û|^vÇaÍÂ_¹žKã ݦc•ïÛ$²¶µ©¥ya Ã—Ðc´Ú=ôyòŒ;”!\’]2Ÿœö Û>ÂP,x’Þ,Q>0*w9WkмìÁû‡~  Ó¡ufÀ—Ú¸îÎÅ´ŽÞ­|‡OMÐ~å cÜ$#ë}ñ;òÝηŸ™†g­¹é6¸Úq©™KŒ¨“Ÿ}©Ý©è#†’`ÔY—ÉÔÖ¥RÙ) ß )2c Æ:È% :µ û Ä2ç¿u¤õôQêÞ¯‚*.Eã ޲‘I9ï®5ˆß*îk$e0_é{hà͈lØÇm Õù9m2¡1>ëj,ñ}˜£§¸1:uý%¨bíg®f3®*Õðú‘­Eø¢º-“Qº£ðöý.‘¥œœãPMbÛ—s¡.9¼¯Êè—ÈÈ–šÅç‹oîëèáyPĦ?pÙÞÙX,DŸ²&|ÃÒ!ØÇŸðýÓŒÀÆþ.öáâ³:ÂòØÒ»ö‘€FŽa+oÊ€$µó¨qƒ–=oLãc¯´ÖáâÞ 7ý‚Z¦Oõ}íQ»1îMs¡¥^¹*?!ûXYœ×á£ôoŒIÓ÷q  ;[3?š1$¢xdxäWÖXŽ’S¶ýò¬õœ’hu¦ÇÊÇA”ïgüP­Öè±Â“Û/fXŒ}Ç~‘B œeeG‹U<Öj5K¾¤räzInœãŒxdªÈH}4VÇ“/iÙµ ·î_G@V®pÙ?ùZ—Œ•Æ©ªìêž½GÛ¶ Þizbà•GüÙâ“ÔTb룤ö㇡§ðþd$,Ã‚È ã„¬©’]î>'ÝW©ÚøÚö½#dÍk©ÁWÓ··@"G ‚f籯<Á5t@Ö]Åò­ŠÆ#(2k©)Õ5 [I‡4.™'‘3>_cþ-é'ïß'¿ qšÍÍ`9‹`†Q™ã|KˆÔM kû|)¢8š ô mÅÍḚ̈j:Ëàjñ›b¡I¾,yøuv ›K«´éHTxÖÙ;ÚÿÐ)n‚ajCrãUZUÜZæ]ñiJ‹#eóc<ÌÕÄúæwº]‹/¥øX^¥^SE*ßãùäd©ÚÍŽ)’¸®uØÎÆ[ä÷8CŒuLÎÀ€Ÿ\ŠmÐL‹½Ã<—úyÊ J¬}y%ŸåÞEEUU´Ús£Íü¢ÐÇa3HØXmG›T=Br :Ý ½Q¹wÝêÄî-yĉ¢ÁŸ7fR¢*n(ÖïKç?S»vï›,þ<É'a¿º•Ùt¼¥Öü^-/ôÉãN~ý"UÓÖ1Õ:ÿqQÏ\6#<™0b>®¢VêüÞ| o8’g£Ò4-87û7d¡Êخ㙕µj™·'~@¼– ¢®(I·ªhò 6 –ç›>Â%ëZ:¥¶ï9“ðÁ'ȹ³gÂú¬†]“à!L4²G²K9àÄšñÁ·,Z‘w”s_\Ï#å´'o£ÓBãGˆz+ïLª3C×cWYL8¡l?¨¿(°€©µ™£ì~¨Ö÷+»²±&ðå«­KvæEÚ¶¢O4‹܆2(l}éðÎP†=ò°Âq^®-Ù@™jÓµÕh¾”î—¨î/Q|vÛs›Ãã áQÖ’d⌫`‡U »„¦b܃ÑqRõÈ&¨²ñô™š˜ÜnË×XÔÓ—Ø¢ 9\¾Ä–›\ †Ýž¡³s#ì&/rƒ¯>jг­3ŽŒs Dצç0F½Ï}\¬¡ñ®YcaÁ;Œ§óŒ},Uæ™™þÙӬ×áj_\ F²š¦FWù*ŸÚº,±Ç?Ñð²_À­® >E{ÑÙÓ/àH¡æä_Õl›—&šš¹Òèn$“TYw¡ËœSˆ:k2ÓclbÝÒV7e-t³¸¾ó¾¼´ÝºOHÔ"JôôÙ8S´¸½Á[¬Žérk“Ï †©ÉˆígBÏÉÇT¸FM-{©PêD¦€4®Fâmÿü<ÍŸ8ÕÓ‰ë]ä/…-Xâå“´J㿘~“¨•JW…ù<.¬@:ê×3jÒæÂ¶Gæ´È!¡oTÁÒË5·e3†qH²p^ÍMƒùlëS°b{ÉŸDIYm7u¿¤\˾3‰•ß/ë<ÊÿƒsCEÌÑNÖ•þí¹.áϿt²ŒæN‰ÙC¢± ’¯Éæ÷O˜ÊY®â®ú½ÔÞo¿\îÆ< ­ ¶déã¾¥‘ø^)™K‘Ã. ­äÙ)°;·`ÝÓ¾Ÿ³à'DÖ:µ[Zù¾kN`úÔ=¥½éóø½àãÞî'BŒ0~ò¾r×všj¼÷@àhc?8øQÂî+±AŠÑÍcBšõñ@STùêUi¢¸Ûáñl€±JÜBVhÉD,ȳüp·1;Vl½lôJÊåÞ^Nô¿”V^T´U X Ÿd'”ÎUœZ»o¥¥ìýMc=É%j7\À·};aMwDž§<íÀ©ÅùM‹Û#žc»íÛÂ!„/¥ >q¾…a¹æß•ï‚лP,é‰eµKØ2_¿êc°ç¾}}Z°b;3öf ÏD^ÀP{¯‰9š£l-­F òTÆ1jóÁÔ×J:äÏäñ k§“OK_P_<õ„O¶¥—¤b… Âɘü«/ÛˆÖ3Ûf†¢ÄEZµ®´¿g.ÒƒxäxBUÔECî“™Mpô{¾~Dçó–gÿgfAj÷ðŠôÝÍO®ÊD6=¥Ùv€BÅ÷ ùMa×8Æ1É‚€ÔÅþaFÌçðpâkèòª'“gµjQÿª0ø]:OÖ•Þf¶wO±‹5è1†Ê¹ØZ¢|…ïšð"ú3û«±jÕƒ²F˜Éugþµsÿ‡²êæÒ4½Âp&_˧Ƿ¾½€“ë}übd3Åó.ÎV”Xè+°÷ü:Gkg¥¾k'ªw‘ãÃ'Ó–Ìæø¯<2ájLMj¶s{OäRÊ‹RÉäDÌ »š.TìÿÎÒuËÖý£‘8B}Nü*m^–ØnÃÓsr¬¨­(Ã\¡<±)‡–¼PÚ»7”9Y*×´Ó´¼8 ›&½NgÉÕU\™7ûRy®®Û¹?ò$Ч´E–ÃÅ[n,^®|ˆ."KÃPættº.òÃÏF¶zbõá6¤Mê ™¦ëû‡âaäÙÉÝÝ® }H?²«yë~ë?›]½l?\ºyìÕ¸˜§Höú,ºl¢c“†—u‚¯´¬aœp1•lua¸(Mc=.¶lNJMEÛ½+&*@N,äÜp’.%÷ÞÝÜk–UfY¤NirÜ9n£Še¤dö›mN´ŒQ˜¾,Í×§¾w]‹¥AÔV¼J­>z±ÌcôFƒ2B¾]ÔªK«êŒYƒ%¨ãÕ^Œ¼(=̼7ÜÈ$¸ÉQ+ ƒmó OPîñó™+H*ãUƺç/<¶ÎGœ‡½h ›AûÆÄ×} böZ©‚/‹èš$16Éüe<Þ¡^Æwó˜åu#_«Á•p,‚^ý¡\µ<öw{fwߎ–RÙâòvQyé¿÷Ü1X¹³@hÀüœrJ<á5§Æ]ÝLmdåܺ±`ݬ¯Á“6WÏ{<“wÉÞg¡+T=²Ü?ûœ¼{ô^Ln¶ÛpÕUÿɈv•†u#{?6–bÑU…"ϿݯøX^Lü)q¬Ó dü’"ýÈ´‹"!'ª6±Šýѵ,D¥`2Ë<Ý(Îιú0P%ƒÐ+m7E]À‡Gê~jŽ^ý„w" Òt{¶ËJdI,\ –³€|Ý:Ÿ’5¢—§Ñ€‚S1ù‰„Ïw*—ªeu Nï†Ôöf…ÖžC¥~|ÝýeÕaI¸{áüÙî]Òúm{ó›[£à¦?»À™ëχ~”£|r1áÄ‚º%xûc"wÈZ7ÅM?·ç8±`WdE&-PˬԈØúcC¹SEC| ¼ã‰ ¿ø7Y¸Rmó»ÊÐ-×qÔä=?yÈîϨJª<ŒRPõ}ã©pööHmÓPQ!â&l©)`} “øxT±rá1/LcHfè?Ì¢¨Fhn-›u_¹„¦ê7Ú˸®Š¡ÃT}-Y‡/ø¾‡Åª¡”[ļ mãØèÊÔ×ó^Ïs$øÍîš{½o½:…+ó¨}Ä) :f¶ §ô8h¯¹i6Ÿú}£úS¥ûÆ=]$Ïô>Pˆ>D¨8ÇÃlƒ"’gM b_ -¯¥*Kú4Dö°ÎÐ3i?cÁÍ3ñ<»àÀV¢~9î@˜9 ' ÆRX+áã»Ek``8žòõÌÉC00Ã'c<Üüºø--©fK0!öÀ†™¨Í¤Î-›¾„©U·qÞe¡¿œô$†2Z׋[àÝñ©“Í!¶F—vrù'!Y䃋Â)ÅŠ/Ë0lŽÖf‰š0Þ*ÉL3n“•ñ÷f3Û;Íþn—×[þÞ´À¹ª3þ}äÆ&¡=ÈÊé´/äÔºÕ–ëàÎD²=’h8˨AIV½\ÍÊ–Ç0~1{(nß½f&+ßë­Ðÿ¨«ÔÇùýºµ¸oÑø w¥‰Té75 “ÑÞGŠ@ãôžv_ Y¤÷kel}>—ìˆððÏ’»ÿ‹+ÞÜ endstream endobj 110 0 obj << /Length1 1645 /Length2 8506 /Length3 0 /Length 9588 /Filter /FlateDecode >> stream xÚ·TÓo7Žt”t m´twHƒä€#6`£»‘îFRRRRRRB”DR”nÞùËçyþÿsÞ÷ìœí{]×çÊûsÝç;V¦g:ÜÒÖK¨Žâó€D²êêÊ`âãx YYua(GèßzBV}¨+†€‹üBÖ A¡ur¨Ž€TÜ`>XP,$xA §®"9ˆ;Ì ÎPAÀ¡HBVY„³—+ÌÖ…Îó÷#€ÝŠ~úTˆëw€´ÔfÔ!(;¨:£Ä ƒ°‚AQ^ÿ‚]Ì…r=<9˜+Ô =w/à_‡ëGxÀ}þ–l`pk›ßmX»9õà07¨²Ü_´Šð_- ñ  .¨§•ðw]/gèFðo5º?g„3ÀÝÔfEÿú !îPÊÕ êçóŸ†ÿ–Á`€5Ì °„ÚÂà„ÿFG«¡6Êèów…yŒAhú ßŸžLÑ ³FÀ½þ…ÿqÄ@#ymECé'µüQFá ðáæãpó €`¿0@ýà÷ßqþ™ÀßÝÿ¡}ýUÝDT†Û ¿Süî=¾¿;qÿ‹ìí à¿Sh Є†Øÿå¿ Hd…þÿ?oÁ.ÿäÿåÿÊÿÿ­HÁÍÑñ;ûŸ€ÿâsôú &´ ½êôŠÀÿjýs£Õ¡Ö07§ÿµ*£ è%‘†Û¢‰Î æçñÿ©‡!`žPëg0”•ÝŸdúû4Ð9apè3öûâA{@ÿcCïž•úrA¢ÏìO‰^DÔÇû[†¢Wí¿ë‡[!¬ï$¯€ âê ñ"DS- |Àè嵆zþÁyŽ@¡]èžý6WÂß-Ì jÿVý!=!ÿHO@ôÒ;ý«ƒÐp›ÿù@ÛDA´Ñö÷m‰é¿öÈ !N–ÖÿÆ¡U¿[þ××éß*„@g4Öÿ"Àè ÿ:ð¢«FÂlÿ³N° ˆúWäEçðüCü¯áY¹¹º¢§ûëÑ“ý[þãvƒB=¡V„s³+ÑPûúÐö³ZiZîoãb8ûég†¼ÜãÅfø¨~ù)óÕDœìyÕ …¹>°‚™}—†ŒËYîÒ§CŸõÆ7^ü'ÜŒ ›¶Œ– ³·'wf’|NéÍ>hÁ(0H•a)uíÇxFCÜM imÛ¯ÃúÀ÷q}ïç$6ò2!•°vÎîÚ²l5 º§ú»_µQ­–Cºßލç}uz²k•¦‘ùHU¬óœ0Ñ£†xepxh‘¤¾'&HÅ=øÛO–p‰¼è?^þbáý«¼R÷LRKE2©ëþÊeŽÔ³z»õƒS&öän!;‹d›Xð®÷9=‰ó"¹Lºk~ÑF´õBn#Vó DÒ)R¿7¦ônéõWz•ˆ0U¯ù™ÞÉ•+7Õ4eã‰Pv.õDñ›ªõ]¿FÖŽ8w›p̶ǵ©$ëòO(²9¶ýlB XsOØÃf x…ÓíÚu%^-> m 4$áã»çK¯Ö»lü>ˆWbtâãÍSxØÙ)Ã6ïR#õ^iXôÍ,.¸Øß¿±Ê¨‹•õöpZ=ñ­ñ\5UtB”ø½önwØ[ùD‹0æ–owE‡ÆQñ´E=z½°ÖyÌP…™`Q¦‘_yqD16€hÇà#t/ нØñ¾ÞÁÌh:¿ñÆ©xöPTªËVp°°ŸSbŽëö—D[šf  ¿“4hôZ›¯i¶•“|ȧóI!EÛ:éS’Õ0˜Û· õäuM©v~Üd ìñ÷‚ɵ†B¶_ĶK¯µæÅpL×ÑÎìÝm/ÂçyZþ={çˆÏ––æ0[ü>£q§9ã­å-ÂüáO:ýâå‹à¼¦ƒGŒ{Ô˜ëM9YïV [ˆç HÍ—¡ÉŬûÖ¼­±o_O+IËùÿÄ_ÈyÙo”r¿}ïMØþyuˆmÙ}Ü.°egk¶JÄ×¢Ó.®Ô2€£ÇÃ(dßʘ dŸü³ÞCÈëÌ–,ÝŽZ§9¬ 'ÀÔù†{jÛfÖ ¹œ5'ì§uä÷Öß:Ü„k®tÑ›ÇA¥j81½}S_¦ÀxšŸŽrÄfdÉ„ëÄ/#ù&^¼pÈç2‹µLÌüé=ÒŠ! ã7—Á]Û&Ã!]¼¿ï?™œ'™¾ó`× ±žwØ‘-w™]…Õé)1lóI©á˜ÑTWþ¤Ç>S{(Úøä’h}b™NüÅQxÝÛp1ѹþ(/+G‰Iÿt1Ⱥ‰©)PÔš¿°H·äÁœ€×Ú…;9³•ê ÎÅYÑ'Þñ ckH½ï9(‹µ¦—=ú% .–‚ßÀqÊ­ãªÄla’ÐO_ŠGnÛ´6‰ý´W½ŠŸfqhqªœfÚ!1#ÅIðÙ­•¾2u-– »¹«ú£³(T˜u``È— p^S+dõ„ÿðV|Ÿ~Ì5ã­»×Bg’ê\¯ÉÑg£(²Fõ">.ÎÆ¾hw?žŠ’§¯(kó BÚß܇meú%` –óú©†€~˜ë×RŒ¿Å[– vûDd#nHx$.n‹}U2Š«Àöt'í ó \WàfÉz”eIÎÄÞèí §¥m‰m¼¿e_ÜÒ—ã@´®A}Âÿz—ÿ<ãh¹añÖ^š3ËÂv*B«¢®ž€ýÕwÑ‘ Z­{zŒ¡²Î–›cR¢g½²O¡[l Æì1„…Waç ç¯$Ç©â\1¢÷ÒÛÛ̪ÃðH¦l4ñ –>`®•啹ƒ¾œ¾Œs&V³Õß}?UvÞøñ3AP÷²š‘þó Ë]~Ã\ãQÛ¨=…„üŒC}`=“a·ZBgÓYÁàK½´Ú“¬5€z„ã…®Ý|êÆ+«ª70p{… “Æ^ÌŽF„ñ1Žûš2jL3Ö7h½[ƒ¾hT³¥Ð$+~ÔK5†óŸbŠN*ßÙžPðNfyÕ¨÷¨Š‰åøÉFÐÓe%ŸžÀ‹°Þï.XI ØÀÉz±`™âTseTç…ðüÐd_ý#ͳ¨^§#ËÄ«‘N)Ù–«¿¬ÒDÍpŽû„qˆÖ–oLá½8j“^HšöÉF™ó‹± µ8¦:)ß4kû¯òjâ$—Šê&Mvœ.îçL±Ô ¹;*½„Jt®Z' ôZ'EºT–j~@‰qÒ]ªSq-BÍ! «HfZ‘”O\…zæjÏ$_6SjÈVo訟|„í¼7/‘rŸd`â4òÛÝo¿ø8?Ù3ôæÈm oưLûä25+D/F·ÜÐlÍ«%‰šZk¥ª(³4µ¥ö ±¦¢pÒvÙ$;-R1¦Jô·™%ÆzÊ•Z)Øð•Ò|Q4íï z»SN§Ã…# ~!‚Ot8+=Ó¿ìåȼ¦v§uõ6Ÿk_/ôÇî&A7u¥“Ô'Åe‚.ùÓ„ùVÌM[îùÔٞصJ[ÎT÷!J¸ ðM¼‹¯ß§¦Båíõq|rÀQ‡àÑݺ}µë)/U_ïÀ©Ãµ´Ÿ¾óM(¼b{ë­0}ñjï9¾ùnÝYÿö ãúÎÆ›|×îù7Îp×½»êúY'<ßÉŒ¸Q›é[µ¯ëy½s>þzZ‚A(¦#ˆ7:ö}±xk™¹‘׆¡¼C1IoΑó<ãpÆJ,_u¯DÏJ`wLvU*&Ñ/@<è©&7Ö%ÝpݯñŠþƒ6>@-f/ÛfÀsƒWŽ=5xž_??›½[Œ«˜˜,EÞëk ùzÁ㺄_‹Åp(o\ÎUuݼ{|3¤,È»#õÛ ×jœÛ+S,%2Dj˜Àè„ï"-2Ç€Ù¥OlŠ´¹Sã`7A)Ò"ˆ0ñ(Å7³-‰½Ž‚?o¹”}ë§Lý57‰CûÛÖÜT‡’գ˷ª ÕN1_¤–Ì‹¥o|ê~Þ6ÝMŠÏÅ¢ %pš‘3Æz×çì?ò³úg®áb’ôµ°“´÷Üñ÷llëN ÑGëþT¸“‰eÎËí'i[¨e_ÝLÒøWß·ì+ PÅû!HÜ-½|:3ha±Þi/$¤ÄxÞð"ðöFï+ç… ­ÉçÃ&™Õ¤ù—bÃÛߞŲ8cÙ¿ìØòèE…=•-Áª‹U*fr›¯fz%ý#?‘›Fm9öa~…„&ïPJ²ÛxûÃç @B¹Õo€·Ã>0hßÚÝ ¬*±‚ÚÎí‰kßw<>iVµŽg ø¢HöRŠùYüô'?ÆèZèæž·Ü8³Ø~CJ¼a‘¯HTPŠsÂàX¦\*æÃ©B-kƒe9²€X=˜®e3DŸn}7ç~ëçà¯6)õ}¯êݽEñ>³J»ÏÛ5Y­0aËé—gRH3Ê3OÅ[ž—áøv¨4OÃ3ŸÇü°¯YS ×]lÿp‹²B£½P{´I~STüÙÄ)ÐÊŒ¨{²€1º±ŒØ#¿a¹Ã%[írØË~mH¶£\”50“ŽíÚa²Ðô.øýí×Km(ÂÂ=qµÍÕšÒYrwb¦º&Ûæ£ìøCܺòÙVœçð™CÜÂñ!é|Fbö9SõuêO$ˆÉOÌ‚^O~ÔL©sü2ñÁKœî¨ÌÌ[@>6ˆÚ›å&xÄjo 4â íü¢Cú'¦]©+’(¬#ÒGe,éÆ!¦½uTQÞn†mSòaH ˆl¥šÖ"%gMêi S:ÂDJ- ¢›fª"Ú}àÝU󘆳çTO4œ[~’æ[Xâ­®å×/]ë5Í]W¼É•»ªž.|½%+ïÍQ¥ô¯³¶>øN|bŠoÈ¿”ªiKæÙç5[qm(Éc§W’¨‚nÎ?ýÒ0#ZsúyðSA¨Ÿ“Aö÷¯FõUéqo¤ÒÒ/!7vîºÙ"Enž„lb¦å®)Dv…>ÐL”W™æø#fÉÎDÑÂòÎ „A¸8³™…}é`ÈL¬Æ%óÍÌñþÚ¡,ΣÊ[÷®˜–cûŒ8Éô¼‹Åiúéæ ž2¤H§é ­¨ouXG½¤c×›z+rÒõŒg%§GLPü¢…mn8þ38øÒR,<%iñÚáøÍgwk2‘5žOúblkm·DX‘•$Êy¼ýýÎ@³ú/‘é” øõ;+ÀZ¦ŠÄÜ6PJô×y©0¦Ô&ÿu9‚ifaÑ»on‘Øôyf۵ⶲ? _¾ ú"y¾¹óÉO4ÎÜ4©ÝÕý‡V)©& ˆº"ê=Ü”-R´oM?O+òà\Fü)Ë1Þ¯Á*–,ÎfÁ—ÇCv®Ž™B¡U¢›#÷§ úyʬýOo@òé«ãÅKRàõ¦’8OXm´~…ËÝ—£-5•ɯ‰g¿ÛkÜñð2]ž5É^Dòº8ý¸‘Ìåù\¢Útq"ês|¬ÛÊLÞ÷îE©Fáþ ñ n§ÃÎJŸõŠg²¼ø`Hid‰i¢©+@7±Ûï^Ûåà˽,Þ/ÔÕÌ÷J"°3n¶û jÓ?&Z¹]{µêi9¬`% ßH‡£h+Ç‚ºÂC}Û ŸÍäëwô³oy/Mn;ù¸wÄ÷j 8óFeZcÈeÔÒ$™‹¢f–¸³r¶ùéYKK›pÊÎ÷3¨ïž}Ù«§¹ƒ%­™Ç^Ž|oSÇʾxé<.· ôˆ— 'Û9šHuß¿6ÊríˆIÜMþPk+9 Ÿ}GNL´Á¾¶o¸ùbyNùÛ9/’œ¾°iùRúm¸bÒ˜†Î`´ÕïÌUÛ'WRžð/kBeãÍdeòWc6kÉÅ¿¸&LZ¤g;º¼fç5ýÒ•¡¥ÍQÝL5ÐïJ–N9ƒSO™Å¥Ü'HbñÌ_ç–Q\õË­¤üù†*mV[Óè"W^ãO±@ÏYg¾NŒ¯FzU.!8œ˜ù®€òSi¢×IzƒýˆNgä]ºó{ò%'Ž¥–Rp­'‡£¢Ú/cṉQ¼^á5¡sM~ o7U·>«êë†0W Ó¬Ææ¦8Ë‹tz çäNRÈ[‘%åõVõŠ+oE•ª Zü|ŸlÈ¡í¹¿”¸•€ÕçI 0É3oWÆŒß&§D½7´jôïi¥P)¹»Þ²T"â‚M10dç¥úåÍ‚¨˜ÑmÞ‡°+ÿ^ßƒÊæe‚²#] k×õ+Æš}é>ËíöÁ¢7—ëŽU¬ŽÞG Lˆ?ò{’Ü3Y ~U“¦/’òÌ¿´áS§)¶W˜¿ä%Jéä_øªqÜ)™`Óâ’ûq%O¹ëIʉqޤî›g]ÿHyû3±êëÒ–â‡A’ž$ŒæL]–Meõ“U¯ŒLa ~ :½omssž¸… Í&ÎKÔ=²qa‡aXá&®˜åyJv^ëµ<ªÈ' ¢â÷²°¼…‰…t\ÙÂëY¢Ž×ǤÖð_¥Ç@Ô#ߥR’3×C}/Ó,k¾2dÝE©EOÖÒ†#}'¦·;58–]>|#VHA¤jæa‰{Ö—´õãÄÌßûüÊ|£_ü6‰øúIZÍ”æÓoáÒ~£T&D«^f¸Ä=Íc{*õpÞ¾è^.Ôİ—™_– “ ýþMçmÆK:ãø#/¹ä¹.<'ƒWæÌ‰–1ÛT_e‹•¯{aˆ/dÙÁÍ£’£ëüˆoHZŠmÃKªcâët07 ³;lb¬ïïh±S¹l~Õ“OWÈnwkù“BÜKËe5•"í96ï×¾CŠé·y`T ‚§’O 9_(P‡¤q—õ.4œ“x#B†J+¬«°ˆå’.‡ÙzɃ?㔟¨µòH‚Þ|áþ¸6¯c!{#XȪ›YLQ*fYBä쌪o^šªEéhZ„ÓMýäçÑôdñLôüNò+þ̰…:¿jÄVXU‘Üü¨)hqäýÊ äçèLd× ýÉvšjC{×Õ¬.¶Ç÷r¤K„nU§]° ëüöZ›ˆQt_{ÆKÀšmEq£šµDlT¦*^Ö=©K¾&?t4D„ Š(Ûbo½ZÆ×“\âXŸÑ¶d¼œGÄ6¦oJD Þ[ëôçH'ÐL$¬,4ô>YõuÈ(c‡R³©–T*;‰ZV’{ré@êÇf;çIÝ-Ö¾ƒow¸µóÙ%J8Ç/¦Êv‡x"íÚ7÷Û|•yÜz,´žÎsXü*OÓÒlÚb¿Â;åO Ji0+ Y &W_®ADÒã (rZHŽi+¨—Ý[é ¼ù8j»¿íÜm3¿Œ ǺÁè?°®*n}¹§Ú·Cj¬FèÕâBðF¦»‰¥Wê1uä°à“ÁÎ áxÂ…üæåÖ}Á3®KeÝ–ˆ¸›q¯¬¹ˆIw”Ra­·úVv¹¦TŽl Ë ½_DZßko±0Eã3ɉ”aÄ`„±r`â‘C¨Ö²Ô=“®‡™«¥]HÒ½³&弉˜íóš y²ï¶ñ;U?nç¤ãÁv ÏEŽXŠÇ7˜ªi…ƒö9ÏšT÷R>=i–’€òpÏ#*¦_lÞÈRWS?ÀN-t&Þ˜4ñ§Ö~òŽ‘*W’1o¾Œãt¾¿ ![ð…ç%qH€S jÊ‹ðÌÏ}íÜcäê=|†b~|þ­³5ŠçŽb¡ü|• ƒ‘”Ñ {ÒØÏ¿Nº†]czØk¡Ø-~”bx­0ÕË}vÀ‘ÍbftµÎö ]> -p+N¢i»=& ‡{sVñN@o‹ñLg‚²­ë˜(|ë¹>M»L=„«aß 8‹©fU*Ðõ¦ŽîºŠ˜¥4piF¦¥ÑbòŒôl"6:Q½3ƒËz_„šÄªã&KM?cäa_4ýpäBâú~>åÖ.ÅKfÁx®(±ìqÆeç5Æ;-€ÐBQkµ6§Êxgú.mQûÆ2¤Ô„0ތʇs#ã“× ,˜¶ªÕ×Õz\9Œú±ðÒ]÷pfLaäðèÇg‚KS£BRb/-ßQèX¿qwpïCÄó“–ÌŽåÐŽ„ 1^ hö+Ê[á:÷ˆpWÍ'>§|¦wŒgx6{µÀzß®:­ï7ׯ%&Ûs,÷dŽ“,@û÷VŲ–µ…• Jö“n(TZ醶šÅ‘¿¯3üKÁxæÐœM+dÛIIJP˜bjIIŒ~U“WÉ‹ò ÿ:˜Ïôµ:[1ƒ€× ;‹x"yó7Pò§¼qï ßšû[6°boMD›dŠRDæW©}Á|ÓQ§~±EQBÕËd^xXGt¶Ž­Ö[mÐ~CÔNÌPA[êÏ’›¤Öwµ =†PŠ´;ø µjé®Õ•£“îÔ÷ž× \ÔÆÍ˜2ï]Ó’wª÷ærÏS¦®ˆøÝ)9ãZ‚-Y‡ôÈeðymÌT¯Ó~ÿ’òÜhº—v¶ÚBf~…ÌCJnÜ –›YÊœôÆw²^xgÖ·yU \}ä¡JÛ5Ì,4WÊ ÷‡L&ߨfÿH§(nÛ O Tü¥ö@tžÓ÷m‘²?öÙã屙jëïO¸6X|Ô0€H~cœR¥ÇoÙÕˆ6–ÃÝÎ ”iÖ©*’kFÎtgL¢:ÆÎv5°a¦ 8/¡QavªjÙ]߯¯»qùMf¯•WJ* B?‚ˆ»šW6x£cYN‚úºÎûU9¶k?{cÚÛ÷˜kÛæ¥ý‹Xr* 9‰<‰?÷®“âMŒYy¯"K*¤²~™‚Ô—µì+žú·º~IVìõe゚AN<+Ó]甾%;Lƒ1rÖ.Çô\^žy“‹Ë±ÕÑÇvŒ¹JÂÄÜü¾“0´ìù®y•oKW¢fAhK†tÙá¾H÷ìîçî¥Ð´Yð\§ÆÓœnÜzY€ÐŽžœ=uC‰˜ïô vëÕe㌜ûúÇ’ü# ðoî™>£@'R›½È4Ô®Á²™O ˜•öãXßRϵH¸ ½Ê¡G±Ó•°ø%JͱýárÎÒªºt~\©†Ë QØ3šŸÁC›‡%­±­-½ÄW{£ÃA¼ß4ð@¼ ¾¢$÷èÃçÏSå©‘Æ4sŠ õ‡ª{ÌÁ9;ÊÊÕ:ÕîEnâ&©N›FÔ;‘Áš:ÈØê™n»?)’ª6v|‹-^¹I›ɺ5ï–ÿ‚¨©žRGÓî@DÏöìŽûÆÄáëÎVo»ã§8CÛVB ÊßÝ/¤âÔ0ê$ ìq~jxš„'j |½ë¥× ÙT§”QÓùk+¯âkùÊ®²JDHÀõ¢–ë ·K­jb¹ä¹~ëq}o…øeY5C°Š Ó¹ÁñÚ¨7Cøœ'xh- Œë¹`”a„¾×²ã é½xj¿:dT}™ndmÒ~+q©Ô^öùµDû]Ƙò¾ÃŠ›8œhbZŠ"×'{ök íÕõ+¦òz¨¸˜aëiò#9˜®GrR$9k.£;¯Q*[xÞ[vå8.èùb‹eÖ#òÚ¥;)sA5ômà…Æò—ñ=}IîXbMwr¼}Ó;Jº‰N -Ó ì0Ù¸´`|»3À±*Ýâ&“ûÚl²"’ìh2¡çþZé­´ãˆ'÷‡Àm­æé¬2ÿÈ Õï7ëËíÛ‘«Pn:ÅÝôÑ­ ¼¶ ½L ¹K>š*·ºxªÔ,:Þ0m'¾9Öäܶ-m/Âuñͺþ19Ïøc5Wµ+™è “7R5›ØUF¯%q"û&Í™•R"ˆòß!=OË18îµÀðwšÁÿÙŽôñøóî—GÅÙ]­ežñÂHʬ¶qCœú÷ý[‘tJì¯;‰=õ©»S·‡]¢$|-é{w^ø¯×Ƨ†Þ) J» ªèÓ’˜½Ž¨rS¨Õѯ7Ôœ‚³õŸ{s¡T“ áÙzŸãýµ*d¢ë%Û^ÍNòVÀ£÷ ó›uOÓ,¹sÚƒd‚¥§Í½{ Rð´áIO¤TœðÚã†W>4'ÛNvȶ»–°4'Ì1cŠ=§Ô/Þ¼)Y>&tH[–Øs<¿§ñÎîeƒÚÎ?èzKëëÉ-uôŒ>á×å1Q¦&#£œË‘wEÉ̘!%½X$8ûzéÃQ¾“›ãË/ž`O¿‹X pÍî˜Bw¿>B¦Ry/ƒìúêÕl™ÞŸTúWUPÞ+îÚcÞ-Bi^6<¹ÈRyÿöò¢ÛÄ´á÷ÖX·D‰¿K„o·ôc ²¼_jMèå¹Â¨åÕ{X!ˆ•ˆ…mÁ¬¥LίAˆV1N$M…<ù¬èöY7¶ãDÑ-ä*‡e;¥và±…‘}² ÕŒj|/6KöG~w(èšç9¸Ô'äßÄ4;+l®¾},ÈeÄ\‹µåäш«ûÊ0Vš»%¹Ê“¸QäàŽåI}‘•Y‰š“UMÞcJn[ñ`ë1‡º ¢²¯ý#bY®Òfs7ŸZúd>ž;áSß•›ÖÍ«.ŽB Òe[J>”Ú|Ê`Ú†œ·ÒšO|çØmñœX :cHFÏ|¼jíNv?Lu¨ã™Ù`”£Wd(™ƒä`lnÿ@ýÁóHAÉ(· #é¨Ï“(v ¹EŒks%ku×¾‹•{]ˉZQà`nGœ¹ƒß‹ÜKÙoTõ w<‰É)©nR-(K#Õß,D í€O?Ï4»–K¯ 2½‚/-U*¯½?:gùÔF =nFÍjDÞj±£ø†Õ£»®QU„p.r°ê321ñ¥® %> stream xÚtT”kÛ.Ý©’ƒH×ÐÝÝ ’20ŒÀ 14Ò" ‚´ *Ý ’Ò ‚ðº÷·ÿý³Ö9kÖzç½û¹žûº^&=Cy0Ü¢‡!xøyEmmua(È  °°AοÜ,&w(&ñ¿Ý! ʧB ò´á0€†§3€_À/"Á/*€@ñ¿áî% ÐæhÀaE¸«¯;ÔÁó÷+€ÝŽÀ/..Êý» ïq‡Ú`mÂₚhrÂí „ï¿Z°K9"®||ÞÞÞ¼ ^¸»ƒ 7ÀŠp@< î^0à`€Èò/ ÀÈêñÇo·GxƒÜ!”Ãjy *ÊD>à)²ÆCt+?^M1ÌÍ™×|­2×ůbý䣎‚òåÒÌ7ÿõzÆ_¡sF•mFÛ¤éÛsôÉTÿ ºÓ¤ïÐòMÓ$JÝ»ÑôècÉ>áË‚º YHØê:gS½Yï•©ˆj„¿×ùð©¦,G‹’NÜdÿ«¢Ù¶ÏhCø;5[ÞW—Äе8Ëè ¬šR. R¼«ÉVzúÈ»èÛcŸix…l?Œ@+KöÑ) áV›,\ç•zíeÝñ·U½+·î®XæHGÖéœ:®ŸîY1qºu½l¢îÂÛ/ÖRMyš•Ÿ0"7œ\ó-Ùrº2¶tχä£,l‹ilüJH’|S㩾/aû—ñ¸ ¡£‹öIÏüóŠ™ÓC‰×&‹“K8Ñaa M!ºª7ì.ƒä‰¸/êË‹ª Ïž’Çd¸E`ÇLDBöw¶Þà¹ÏWL®9›J¯™>é–N):±žßÙ· (}^܃üSÑÙùV>Í–£Eôê*`ÜÕÒTR1@wå Ðï`Á»N·qÚà9{¨éq‘¬ÀBÍZlT´JGð„,Æål fœxSo ×Lþµ¸ºå!fPzÊÏ$êÇØ˜Ìç#ÍO¯ð OãyY +:k ûÔ™Ýb÷îã~oö*©ÿ4Œ®`t”ôÁÄh^®å£!iyò~üãzFéPì©ÁŽšs½'y€ª¦f7^Iʧd§¼-ªK, V2ŒÃ7VàžÜ'³ïÊ#5ª§½ª±ºÓ'ÉoëäÃלG¤ ÂÌ©T^Pïæ>Ë ‰¯Ïz: Í2ÂÌÏv)ãÕ~«oGØÒ70ºA³…iZå›ü¾Ô•ìz–vKTɉ§6}z\–8|n4B@û^!;!nŽT‚„ò³ò3ÍèLu_}⤖•£³Ñ¹ä9Þ©Ÿý ·5¤/uåU±Œq?ù«î8 Žwï)k´˜œqjæ¿g/ÓÊ“ÿ”« ךœžûl-Ù×v%è‹%¿MJ¢a¢êņ“]=|gDy¨?s3=b`Ùá(PgLÈo×à§ÉxŒ¾Û#4qƒ{{Û+æ‡G»íZ4ôéA“òõ×íkv|cÛ%[åTȵQ“XjÝÑ÷´”Q”OR…©°~¿áÕ  ±Ûñ3-¾!ãøÉ‚ï‹c}1‰0#”'1‘õ#'VIîní¸«¤‡ì S®Ò+bhÓ:¡dW¶¼±‰ïM¹G0´³2SrW½¦Ö’—ÛÂÆ´‹æ¡Ó‘$Æô„/®ÛÕ©£åR,ÌÌub6Á‘-ãí\~å±ÿ=¬¸ñó»e‡„goñDZem„Ü/b4Ú˜ÜN×oÉ õªƒómÞ^lí¤Z‡)ª£_ï Ü¢ ¿fÄâæ9iZê’lùIû°8Iq¾»óGÇaᬧ©•¯F0ºC ‹‰Å*Sz_-K.¥‘•ý ˆ€£4„lí¦xœ†Wú~FåHɦFŠ"ìÞ'>Z ö¾ãÊ9$­¦nšà˜"aÄlè]LxåËÀªÜèöµ?*„~†d?¸Q&FT=‹iMa¿ÖŽ;»^Ø`ê‘öò™nÊð¾þË®’†Ýn ÚY“E‹¢¹dôñnÉÉ»Hï`œpîWR.Øo8óùkæ>ÓQäùÍf½×ÉõÛJË¢Çô[÷ŽÐÖò™[ž›“K›ä÷4a,µÔ´?;s £9EYâG]Å¢¼=h-äýС.–\dís*ÞŠqÐoÔ”Í bD+ ã«WÌv0ìöÄo¯EZ7Påt…öö¬ôŠÐâ±Ë ©“# ¤±êIM"áÑœM™Lr¡ýѪ)xfhgk@å,_áçAM~ z䤼mÉàÊ…ò»7¢]¡ø® 'åÆ Ï‚M/t°8üh¸vϧX_Ü͈zdK¢ÓÑÝn,œœ˜RßZ_90íºÈÔaËÌûѨ6¼ïŒH-›} Mqôlx Ÿ†‡»iÓøÌî}©Øö\bÏ¡¬?x EX¦{«+øÝ¿“J¯AÍFÚïKÖ_9Í^ë>ñ°}& Ôx¤å—Üâá:©a]vnžÂnOrÃY2Ò~™ÍŒh§ƒ.º«gª’eSö⋇•¼S Ôs]Ô÷UNÚTkoqmÈ]_ÎXdjêá¿ò"úÀáªÐ!·h+Oî@è*ß¼&‰îièKÔ_þ–,MÔ~¥êÚ7¸»¨!.‚ý©±Ë1tÀø¹§y㵠ÙKÀô¸êuÞtHhGŠxÒV(žÃ¦Ö;SÓ)í©‡tø'ºIòÜ=ÅÖZ)žr›Œ‚ Ááº0dNxi©¢`\îDkסáyÚ¥ ŒæƒirÅ ZmfsÓ×| Õ[—­LT¼ø ’dÔÝ^vmNÎóô>øÊ¬*7ßæxPånÊ]s޼í%Ç6ÙjÍ2Ø[ð©Ç€5ÜüRÝÓà@CÅ/Ú˜&xÌ)‘ ·eév4O‰ÁÞϹìˆò¢#üIWZJñ– Ì"’l£Ò"¤ò°2Šï‡î;Õ°€æD!ãA3ÓÓ•Wg¶"Ê_Þv›hÅ’ÂØ6-IeÊh6ý5Öëзº®BÁ7†gò¥#‰¡ZÜšìøõ†Å›’-þßšhÂw] Ç#;ÚdûØjZUÒ®SƒÎŽp®gG\¶R;jÉ6•1 Ú½Y)? 6&¤2[5¯kŸJO0èÃ#ÞÉ•" î8Šý8gƒ^ÀzsàA~ÔФ iìéá›o1`äCJ4>ô ­¹>7“Îɘó' ÎXõ¬ÍÙ{R3÷cÂBåGl›S„‚õÌå|Ü$Û’7 -¦Ž…Ú†9Úyqû3Ó}w3L ´0‹c#=&ÐmªÔì Sc¢ißæ|ÀhU¦¥-ªkÜŒi¤ß ¿´–JÊŽµÿ h> ¦¤cË#»À—Z #0œR8v"0G -ÐS{$ZMs{l‡­ÞŽsÍ’…Ä0…P·›óf öà§qó½šÙ3µ ¸k-‰c†}é™1K]Ð=ˆ7c,&eÐÝÍ$D ¦‘æÔ)Wî™Y{+œ<$7Q%ç~yVñ˯¿CºÄ3¥œÂÄò.J•l?4Õ~ÐlUN–¿ýôzƒmIŒþf€×©z!ž¼ßÀ]}ÁU.…ãχ16 T° âãG¬»]Îî—^Âû1%PKfyg5‘ ®ÀÜ×"·j÷ºMûU`-rÛ´7T`VÈ!9m•”Á?²)Ý¥°Ž9ÑplUök¢ñÁ“”R½^¢ìä¯é¶ OÓ¢÷fæŸÕEšgº‹qÞº¬"9ŽÕ6¼Às]•; *aÅdÌÏ%ÔÁ&¦ÓdFØG“£c{%ae(ð¥Ò|ý¼¨mŒ1ºoº,Û[¶ß˜Ô ÈÒ³)ƒ~P®‚2#å ïךè`µ0á§ëæa²ÆU¬ëÙ—Ú±«™hÐE4A”ºÏ*—Wf}‰0§»¾¼‰›ºì¬{g¢’8Ń<´éI5—~ÀPÕë¦# ¼ëÖ»øªFâ!%s"—jËDA7]”ËÔü²Ï/BSM²þ†PØúÀÈèm6Ë«Ùüwƒ&ºà¹·Ö”Dèw!ý ˜Áž’…Ÿ""£¦ÎS ??ðYý ò"–õÁ'Ïìi§u%½Gy9[ö³ÍrÞDïÒ0wXê-Ñ÷Ù=Æ48ð˜¯üD©³Zª†p|ÕSÙØ·³Êéת³]›?Ä÷‰Å½æÃ¦H¶ÌÜ z•Öš™x¯f¡ºÜ–W‡—äc¯ã,vxå2ûlqGã!ßÖës¾«¤3(Ró…Ëqû”» }—È:^¢ WsCPF46§Û¨¥zRÜýü}Í«è{3k3“3œ¤Ó·³@™Ür?·wxïÚN«Tàü­ü4”w€­_L ˜¾^pÆš!oÊ&cÐÌ-æ$óÔG¤‡F¸ð±lÎØèÜLÛ:Ž-:yS¶×쎜 'c^FË>Ma/;ž~Ý£LŒTÇêH¶È0ÔäÑÎC”›JxÓ åù÷o_<·¥=£J;$ô”çìpÖ¿&¡õ‘¡Ì|7R)¥ÔCaQðôø›œè´MÓÝ~<—¤Ø´!¬FØ 9Çj¬ ڛ㠆íj|Á7Œ¤£½šZù'6^L‹'#Æõû¬+µ2`»/ý äm74Æ–§XUû³_ìQ`'ûF,Ê’^è»wÿ; ZIoG˜àú¹úû©ùyïG$Ø]i‡þƒC?’iW‹u¸Ý€X°^N¨ÏFÖs.™È›N¥hP)ð>Aÿ’Ãn}¢œ¾wKŠù V·RÚ¡ûìåEM¸>ºÖãaw·ÌcÞâ(GðÜìþƒ’8f¼—U·ÇÒà°ÙNùdãO)‹eó>až¢U àçA·•¤Ñæ îêÏ¿$˜ ÉÛ`ï(Ô–3LÓAªV}dãæ ×¬»-*y:Gµõ„,¯`8£ô*kÓ°T­},ñ-KÚ¬NäIû•Ÿ€}ÐWLVn{[¿£›‰”:1ÐÆslÃÁþüjEu{æðXƒ•Âð¥ ekÈÄ㆗ê8OÓŸü¨«0HIŒŸ~†ËØéWbpª¿Ñ–*ñctÑcÈ /“Øz­ðq»ÜÄP;;P.)8ó¾³Fµ÷ðzbçú~©D?×¶ïýÆ]ÿ“Sk&ÖË(¶ãS§#Ás“’$f«Ãæ!ý¬!Kœ«ðæ<Ò™Yâ"Âl#‘·?©Ä·¦°A¯ìã úoUÌhv'›Nk+â,’´ÿÀ\“M”Ë~˜Lóîã(ì{Ù:«”O^4ŽŒÛ§dâLU•Ôà¦k†½ÈÉ‘™ï… XP?ÍuE¡%æ¥Oó•i'¥é¡šž–°åvê”±¢GþKš®•EdN÷ÁÄ)cD˱ÑW‡¥êðÕ”¦<¼Õvª‹sÁ‰ð#±–n–¢åSÑb^׿ؚăIšÕŽÉªï©º/-',èÚP1Ë6}h—b'dÓž0¾KÍ˨ZŒz_,UƒA³Ã8»cÍ‹|õ_â̤Ù.O/FŽB¡Æ‘é6wµTù&«{`Ø:Ì0ùžÂ5Å€¡ 'Íǯ=T‰ù ‚\7ß56  vt©ûFÓ¬¡%ig…)~¦gÙ†ëñ…›Án+†âS~/ôþ僱][²Ûrì2¤ÅTlæ ÚÝGËcÖÙx. C›óó÷|å“ý#“ÅW(k÷ÂTZЃúÍ…•§jB[avL·;×¶ìçÆ‚ ¬x»çPÔÍ_G/L¨×#é±){ŒY÷,ÉÖÍcÂg(…¯²êÐD¿Ùx“bN%\vœ=ò—Óµ^žjŽnÞ7¤:ýAü@ýÓì¦zçܛۻ‚¼ëýÃ"³J2}ÇltG)=%M<“•-C”ëå…g§9”ü"$Èö~‰ÁH²w.ÐR5R5¸-R-ö°W‹›æD²™«Ûg{ø¡ä}\c ðLëÝÁæqé“™¦í8¿-dzÄä.·6H±ÂŽ ¸v÷$¯á„Y¯+ާÆ”J^ñE ÝsŠnI.sùtf üYÁül%Ç&øg@rˆ¯ú©AåJƒ6Ÿ$àÒê[>ã.‹Ç¯í»lY§Vz]í…2\õuL âåv¾Á³OEwçy. 7ÂI FlˆIÉ¥œ÷çæíŠ=`ð|Ï0˜Zq^C*O@d¢ÿE>ܾB˜tž*ºz6$¢ZrP¡94ââý=MŒ¥wω%õ8|D J»ïõR“pté1üb+;—”)`&Ïyh#OºJˆµÑ«|¹ÖвO ëiŸL©ÂÛ$o3ÌŽTdζÈš>‚Ñ,8?DÝM#ÀË,O@cú¼èI3E±Í–Hƒk¶mƒ§”ÔZƒ€Ã^‹ˆÅ’ÝKóg ããF©¶UámÁ‹?ÊHxt2àKÝKÂèXb`í×6—ÛÅÛ¯á»XÄÚ'Ã.xµ€˜Üˆêvk+ÖÏ3,ÉÌ“N,¼ˆoT›+&+ÛJÀ㾞~ è âvs;Uh´÷|´‚q6ê5ùËç6 ý÷g­öôºLÅŸæ+Š˜õ—Ì‘†„‡ zÚ?Édû6`Á  jÓ\µõÞ­’¨ìÖ>$ýH”Mbç‰Ó«\S¯Â«>Ur?¹ñ—£O­«žo«CLžAcµÀq~Š}ó _¶A€Ïô&Ìõ• Õ^‚;v¬˜hî2MÁ¤êº‚£÷Úi@ç§oÒ/r^?3V5ÚõÁ˜ä¢ï'Ã|ZFGì§9 .K.|¨oÝ#©ývƒJ ºç;'É)Õ¾[,挫PU*%\p?k²À BûT2[óí–ÑéÆ}–بšÿ|æõºZ¿Ü²t?ù÷È–UU™a*±²ß¯×·@~ž&{ÕõyÙ×D+%[ Ï.ê;‰œ-tÞ–ÿÐø¢ endstream endobj 114 0 obj << /Length1 1509 /Length2 7946 /Length3 0 /Length 8953 /Filter /FlateDecode >> stream xÚ·PÊ-Š%‚»3¸»»Ü5¸ 0È`ƒ îÜÁÝÝÝ qq{w€€‰‹ÀÆÆÃàyYxÿw•óÿ÷?VÐßgcý§ ,ØÂÀÆú‡—Ëû׿eAû÷ÈÐþ{ %û-´ÿH_Ÿ•‹Õìå‹íÿyþ¤üÿéþw•ÿ›ôÿ÷@Ò.¶¶Ü´üÿ·‰ÈÖãï€)»@^ÆBÑþe8Àÿª ük”æ »ÿõÊBL^ÆC lù"q&6NfVοì gi;Ð\1³úKHÿêÅ˶ 0PÅÞôûÅyÉbeýßËÔ™Ù¼¼*Î/ûËeâü2‚?Íý/Cößç›Ù›ÿžFv.n€‰““‰â‹ ^À‹íelÍîô`aÛC^R/œ½öNˆ¿ÛÌà `Qømúƒ^$¢öâ°hþ±±¾8-þ¾xAÿù,vÿÀ)±€ÿì/Ðýü¯Ó›¹89½Ðû#ºjÿ Ðh†¸8go&h]ØvS%FèÆ´5!øê$åF‡i"ÏÒ/5m´¯ž™±$_"½ØÇ&mhÝ©$îx“õcþÂk³–´ÎƒóЉTz×’Ô4vîù z6Á뚈|µ *G;Iœ„¿Ð©J…8­ëˆ¹e¿:êššÞ…7j¬"i¹ 6¥Ž®ª¢ ">­Ã 5H³éÆ×%Mö†]ÌÇŸ‘úaÉJiäò‚·ˆñn•hkƒ#C+è}ÄÝþr®[§”Át)!"INøJ­•\”‡ìB׃4 /Ów˜â2tzÓt E±[éýÚp¾!•#vÛQÛ._zü¬J2ľÖs£:d«Ž l×V_ø¯È]’>àÁú¿n‹©à8Í"9Ì;—ic%ª´í+Ehn ©ßÙø/ÓÞÌ“zj²G“•ÍT"n5Bç¢s¯œPé™Ò+ñ‰èµLø^5}›žlyðþIÃW¤Î›/LüÁf¦hˆJØoJbÔ,hŒ)T,WQq¡%÷µQV3 ŸÊ«LµFÒ·¶g_ª™.Í PÞ”=®–Kiö>öMáúX|'Í< ¿³¾Æ*¿CþæcÜBkç,ºK‹«+Ó°[\ÚáµW,Üå<»P”—ÍWûãz2Y•æUOžaäÛÉâú0šrŒ-XÇ, ì7³ ¿Ä㨂ªàCAgÚ¶Ø'íŒy ‚}*FœY!Ôp’ÊàñÛ,V>PȇþâÝnRµ<~š™>ÌClÁÕž°x¡¤NiÓ3”õ2Îl„t¥A/Ù{(3€–Îȱš>'®nd…ìJC5ÖäU-›x„ªµ}YS ¯yY‰~êÇúU/É&gOô—\äf¹o~)Y´+åž·Ñæ|åC؆} 3Õö$w~xÁW9ÄK}­ ߀M@ ó´=éJtóÀb”ÀãuOıäW|4ú½1,™¦×8Þž7dùãQç³>àÙ:Fø‡ŽsI8~Î ­ûª^7ÊeÇL•lg³Æž½½ÌÂl*©¢RK"åÇžìN߉Uç6gÄ{Íî,S¦…²âŸñEêcD[ž'ˆ¤8/ Þñám³§-A¯’‰Í,]Õe“ x4¡Ý¸¬ˆF4•V î‹ÏbI½6nýÎ £ýX’B‰0°áb±åïxûÜEÖ‰ªÀÜ"µ4Ê•Èr2»%_¢àr° ¦DiÛì¡Ð~èÅ 9x¼œï¯ÈÕ¢Ç$È0dz/ce{ûªØk>I]åfaÿq³þ}­‘{jƒrnýÌÍ;{­„u*Ð<¯§q–à`p[0¦úîà©­õ$³¼šnä¯Îl —àãÄæžŸŸ ’Ájßæ>…ö)Ü:¿íd?!æ i“¶³+õ¼]i²Ãyxm|ÔewÚsV華(D‚¹Î¥E)¬,â2å `oñ¦<#ÂÅëAG„•ÀvÄÁ6œ1†úöJ«Î݈i%n5ÙA¿)ÿ9*ú.èë©÷Ð7›&8Ô©ê(íõ¥˜Â¶ ÷ÃKð-8õ Vgð‹uºH•™ørÙúç”_-'°x§œJnÑxmë<N&÷OÊò˜ zäd’©ÆS¹™­¯ƒd@p%§9¶–ÇÔO‹nU'¡A³‚¹$´ ér#“òýïÎCÇç¹S]½/± 8ÙÅC…Q`ú‹¦Ç.˨Î|~ –—»sˆÙ÷NäØVv&ª-(½žÏÄÅß­ï•ydÀé¦b*HNn½ÒÊœvB‰(ÎѦ7‡C2¾•¯oàIZ±­æ·8=á- ‘«ËSÁ_™Ñ‹[Ú +)£åÔS‹c•¬r×*‘ÌÓ`’¯†t$ÃX(1cHIOmðÚ‘&ù¤¹&ú¨ŶºÖ~„túò¶ ¯Í6V; l‰æ¬—†@žß2ÌFF‡•út^ ü4äDneÄM™ ¤H“Õ·ÿÊÕp”í ¤¯æEáytº!m&hÄáÆ ÒÊmòV|°c< ÞWÈ·h AåÞ'rÄ*ÊIÊYâöØ™ûÚ¦ŽÏ \(îßa<4q…ŰV•™aLšÂÄÉ̱{ÛååçasÈêÔænõsј®øpÒˆƒŠ¡UQÝšB¨¬+×-`§í Œ)óD§â*B#ïÆf9ÅX ‡qȾOÕÄ„ýv#rønÅ×v‰¶‹ÈtÖ)įæ®Î0 3œï¦  xHJñ´SŽÑ³9{¾ÏPjç¼Í_²Ú¦©‰ Û>DÄÜþaY̰ŒÍ®ís”1YÕˆEtgÝ„›”Ï›ê?¤–‡cŽ5ާ˜òùD#þ‹£Òš1c¼Öø`C/b¨n*Ô“»‘¿‹N˜ßúdÃHÇ›‹A:382´Sçf$Ñø _)†z[×'ŒÊE#~…z…¼´•ÉVû‘ûä¢â†oL­jF$ã𛫣Ë[¬bóÍž-ƒJÛ’UX\Ø„†XE÷Wã²Í0ï>§í,‡ñzëÖ>'UΧLâe€žÃøó‰/Û—=¹aù:?mG#Œ—|m¼€±AΞWC:å?jMØ5‘³j šÈ\@·›"4O“QA˜m°3ûX uý¨úó,@]²bìsBƒd´-¯ jðÒí'•BW^9 žHè¾*ò1#ŠØ<`}¸@ÑjšqçPí„oÉhM¢”LBã%Ø)¤‘¹´Ñ—@ø1‹iJ§òè;'MÔµ„(òf4WtÀ›Iå-éý¯½C…e>ém’Ø ­ïÑ×yœÃçœßÎØ*ºÚ¯g ð–Lp£‹x£‹ÕôavëÞ´ñš(±¯;&uûâ4 §‡…ºòåH¤Íð&©:jÃK‰Çvø…†v-¥#6¡ª]žUã´üq¨yôø—ÑUíeêµ’àbÙ LúbnÝ´P¤åë~ª-Y6¤cœJn>¡ªi¹>Ä^^ÀV¼¾ûÐWÌôÉaÁýÝÑã l)jT&¼¯ üN„e§çŽmMQBÈÍé>ãç-‰ZЦ‚´f± éòÔ$]»¬ ÷‡¢‘̘ Îs-±'„dD ór蟧g$ÐÞ=V¹àµì}Sʼnžöˆi«Ðv^Äù‰Ü[µAVã/«Aˆ.=î'wÔ½@Ý¢fªRj}ž´¡Â­yÓ·‚s”äjKqEÃ}–þ6¢–÷&!YfµC,`'ý‹Ah>¨‹°ä>:¶¹ÊâoapЏ/|íh¸eîWÓ…¾íCS›é k|Áñ×½w>K»½ÉV:·LêÓ³ç9«f-ævãRaÂKQ©rÌ9y5…RG‰ý#ñ#VœºrÆWeìÜ}ѸòΈúVÂMtb/¶#éþÒ1ø¤Þtá†Òòþ~ÞrÌ7_E‰G8=QW—Ø:>ý”ä „±Ágôg=-ÀîN¯—5™ã…Ë)Å¿­$"Š vPù®êT/Ñ*KZ°1p÷!¥ÎÿˆZñ˜õI¿QEC[ß›¦… e` 0¸$‘í™<¡mþŽÝõŠÈÙ&7o×þ ¾Ž,ðfAË=p*yCªþS=Z¹^'tïF|ÖU“œ0õy˜xÀÙ½‡éÒ÷ªi9drPŒžj úîúUžèyH•Z)oshç5 Ró7¼Ä/}S@Oi…ªO—;‘ '·–JK™­ù¸÷àWxØpíòxWû¥·—sFü˜¡(ï «é^m¨£cðµ¼§(®³¢«Þ$¨ÐŸÃÀßÖÿB¿”¤îÚrõDE(Ÿ¬º¾AØþâ[ ÿHÀÉEÙþ- [Ar˜U×ÊŽvdGàLO ©(¥¹jêa}ǃQjíìví›Ö}ÿ×!9ß0”ñëþ ø»Me¦µík C¹P3ñô†/g–1Ô{û¬FpíNor“Òƒx0{©˜!‚Ž6þ•»#«ü¯Mÿ½¾Ç•©ùvHyØgHzBlA9 $EÑ?¡|cÔ­ué×-"p˜˜‡ÁŽH›Ô'÷—)-÷ä`¨È¢™Ñ„uî¢Ár»Ö7+!¦ÜÚ£AÃ’HR~c¯q‘‚gñNÍ{øyxêœè×[+—W³Ooùdú5ÙÏo™ö Ø’Í üÚÌO%ÞæáKlu©Ýp¹ÊoKÝ´~Ý5íÜ6×U 8&¢Æ“ "lCb”©x´=.’¬}ª{N4-uÛ·Žvb¢Õ»‰’êVOµÇ±-¾í€”ÛÆŽ„óuä£NØÉû…ù*)Ã2‰ù¿Ÿ– üô} 0޵A”âB–®ê†&·¶MGÿ é?'XâR×!¿Dx‚H.ôÍËËÀÌûØÚb¸€Î|Àùõ×8û“„g¼ÏTØÆk‚ðÙ›²eŽX/ÊaLÍŸû¢TÐÖ7fNŠñà“Á‰j!»Ø7“5×ËŒ¯vN#§„Æ{ŠJÓ0$2q s7¬‘ï·×¤7,kΚ¼tGnmës®,n«ýÁ^¿N'Œ'[½[ÓS89êI¥»kz9hgáÍ.eÉ'JE²¿™œŠ®×™ŒHy§G©„©Ò«ÑSÎÏš•=t/-"£÷Ȇ, 1Åö¥û]¨L‘¿‚w Îg'Ê5{$î 0*¦ Þ/W^ΊÆü`™æÕ8¶FXØx@*MuªQsXƒŒòd°Ï†¢IbñR‹Q©°"~|¸#q´uËÏ~À9wab¤ÿšý Ç–\՞Ο±îª‹¬¬,ÿø TÆòt¤G™´èÑæ Uþ/ÃYÄXH»¬sÇ’?Ø66äùûá„h/B÷u®ÑKëª9~.0郸Èm ªúLæó#A4žŠ=é"G·6ýú¬ÎŠˆÁn‹£³R""7õ¼^1éô߃zÃuk2 °’?m°0®Êõœ‡*ߩՕ]D5æ·•± å?'BÁ;çGéø 0ÎÛ{m ­Åñ3§A×îŒÂ…¢9\Áx¥QºP¬DøÈH<.fó¬4‰{ÔP¬4ŽsŠ×bc¦ìxIÀKXHM'»´/_ö92ÑŽV¨H“Ó±Ñ×ñ=‰ËÈ«ŠKÜbáȹKBóQPC{ž€hd râÛÂvvxR¹)7­Rô³·¹5èŠp€ŠžŠ«ë #óÖŽoDѨV¼½ÅU³@^÷×ã¦ð·D&·,•TC;¾¶EŸŸ—ßлã)ŽYÝr§0n>†aq÷ÿÈW¶¶¸TC/üE Ñ}¬°sÔ_¸„R‡9ë…àŒBÚShEÛ½]\š€ÛÀNµwÂÚÀŒgl_ë¥Gw…ÃÉCGJx|Ô–&+|½þ蔞ÄwP8MÑTº¹»‹~ëùHʃ~Z˜0ç¦Ó¥lG‹°|Þ_îC^ù¾ f¿Â™-ÕÃ,ÿ’ß61r‹D’ öQH‚WFzÿ1´K]qo£Óäøæ–·Ÿ¨ŸÜ&ÕRBa6qfáž¼h2ás ɤ-EÆ~.<N‚¸Ÿ¢u»Ž—ï>ÇtùRÕÐÕX ¿Å×XãÀ¹H¯¾s|)û+BRåê·d õ³äî(†K!ò[veÕÀ üìKk3õsŠ¢º[{=ƒ#òîÓïøzÿÞ¸WüA'ôG8Xõ¬ÈÞÇ)G¯ŸŠ% _2Û~®%Jñ)Úé¨ó BAiRWanù¦Ãr×[mÞôX|Œ »m'µë¯uêUõ¢„±ù2ëTZn…Šž~ÞÙ-²Q•™VÂÔj;T½ëŒ4Ñ1å…ÞRl*—óv vðDk=`` ÊÇí©ovª[߉òÍ¥ê·ÄºàYN– ½;žÃM&„ ~|?j"›r²P]?-ê¹—î8Ëþuá¶:2©s6™ÏKëÚ¦›Ý˜éj¤!‚ I[‚ìûÑÜü*;2Wx4¶›ÚCén7õ}%c%×>Õ!ù®h€Â±ÜDu¬Ý²vªW"ïm7]z%¥¦¦çé¼Õ¼N²×L-Tœ Ó‘MsK¦zVF–úñ‘ÿ¤¹_P‡Ìkø·êJÈͪª.ÙU·úü>i7&Èn¾ ǃ5x1rb4]–b§¿ÚÑTÌr¡ÆKSf(Älmü¤u¢#²ˆíŸ¼öxZÂß ^7ð9EprDÉÌØ±ëMÓ•ñêW]DQÞ:"O㉯²'S;ùÐð-®· Êaã?.õDm,SúqX¤Z?!ðG<ãSóp5ø^škÓiÓæ‰(H,¥lj]’Z†Ãœoê@apèr5knmœYݾÄ¥ÜåR¦ž3ñ«Ü7—Îïç–Ý(ÛŽ Ã¥®'q¨á^OJ ÇðòU›ÙVpº—)ùð$u¢9~")¤VåX è ˜Ã_¦‹Ÿ Q¯v!¾‚øÆÒHæ` SAó€‚MNÂÙó ®ãGΧÏ× Ê »¥¬T IcY3SWûž[ö–'ŠègX/ÅÜ{h—!à ̽WAƒ2ñSkÞ‰í´ˆ‘j¸>—:¹_ãʰŸØ¸%Ï>5Ê[²©K›mwy„%¢žÓy.Òmiãx§}òÍ{ )¢°çÜÝÐÝæ ö'çk ¶¾®Û(WF¼qÈëÍ1ö#é2ŽŒÖ µŒ\\þê Ë’΢©]ÈÉHl£ 2êDD¤’¤ºÇ€“÷®¨|‹Ì£Ùf ÀÎH— Ç× DI¦•¦É=– „ÁùÜn¦­ÁÏ”&I[û"Œµ8æ‹‹¢Ím³çÉ_eTá‡ÐŽâýd|,„ïçèŽÂµF?ònó+¤p`¦frÕŸ4/exXxÍa € y*Ü}ýÓ(¯ó´'é¼d( =É ,·´˜\K<4kó6ÝAœ³ßË€>Ù¢Éßšï²h†¼¯ÏBùKˆ°fNôãÓ«$»ABˆ"g¦_Jã»,ÎZ5„«ÉUÜ ÅÎâÖéÖÏÒžÛ‘ÇE{ãøï`ʇ›Q²ž+C ¡ÐÙÒ:íU_åMín—µ‡n¸×½œD–üÈìõ‰Ÿwb²ëôžEZ¢>†b¶åG#}X—–€ƒá>Õxf ºEIn|.x¨X,QBË ömðí{gy5ë˜ï‘þ ýåO÷y¾R4`ª²!‚íДù=æ÷|•J"ý¶ºž«óÇɃ7W2_6¼Ø *rZKľfŽˆ[®|Jå‘ ƒ?¶¸7¯±f^kÝu¸ '‰÷YûÁ`¹ŠÂg4÷±¢Ùw‘ÞüŠù¨[°€š‡õMóñ*7Ÿ?QˆûTj‡¥l5f} ÖÁ×ÒVv¶õš^ïüÊÙÅ!˜ßöë›vuêôîO‚·Øâ0òðù”ôhBKG9÷åcdÄx"q à‹«.ßtF0­¥jÇœ…î><ß0,è¾=HÄqWàìá2Ùƒ¹ââù '@ßÈàÒ f¥WNÇ~ö'áiå¦dAÎèb!<:^ß”6M¸o#y÷ëóë†ØrÜWo¬áL5Ò1l1Ê6)ï¤>ŽEUˆ ›Vó =Ýö7ukw­< $P1TMáÒñî¶¿á¤ê–AÅ©÷™c7¹á¨>8,S™ŸC¯L̰ÿ*héB@e”^FËÍýÙm)°2™©æÆ…Ö|õ‚ã*yn£htJµ¾¶–‰(²_VTi¢K»&Õý:ø*í»‰*[âNµkÏrñWøÓ5kÙ¿ › ŸÙ&ËZÙÄðkf÷‘¯¦bÅi0Б˜eKÖ×:8¢NË"IW­&4.dçt)Œ½\âHГЯ-,)ÚÊÇPŸÖ¾&$ÆTì&É/…¡YW…i¼•âãS°3ÒmKÓ%ä)±¿/O¦îѰ4ÒÏ©îM~º›¤¥p&nû>^’ÎPø\ಸÑÃRT1îûP×î§5^`ÚÞaÛï äLl^A÷}rP%+þ”Á"DþÎ&±‘ m@ßê0™?"^ÿeSXö˺t^Tæ~SÉ I`¾ä'×Õ9ßã)W]n2Ôo/# áí—/oÈEÃ…-þUxl §«û¼i §á}‹Ñ_¾ë¼Þ´O‡ù(‘Éã˜Ëc†Ç“³²s|ªnRVÃÄó~ŸWuØ‹æ A [¸ÄX\èEtSJ0T<“hv›~zGÐ’Èÿ½È]+„ê£Li üÀ£:`6x5³©ÄˆXìnúÈø{pxîÇNq t˜~݉ÅE¬H0»g?½8R®T`±¢VÇhiImh.Ṯ¾•ÑÑ,R£­ïu£ì3§LæTfÜN¡;ÁGºhœhÆÀ|ãœáI×Í»[•gcði­«ê©ŠœA‡…±jh¬JšÔßew¡l/îÞ|;˜\„.r:h%€ÏÖÜtQ™¨ á®"q±uÁXÒgÙš-å¹® H½š q똳pÒ—‰)~ ü«£hKÓA^&t?ÿ£a'•_enò™œ®Ø2áéI_hõ«^sΰ¬Ÿ\G^Äëoæ7¸¾J™nqíeôtÚ';|2Sïºù颦.\Íôw&ø :°}åßcW¯ãuO±~EBf”ôƒÑc*Â¥!|Û½»'Í÷áfü endstream endobj 116 0 obj << /Length1 2540 /Length2 21792 /Length3 0 /Length 23255 /Filter /FlateDecode >> stream xÚŒ÷tëÚ GMc»ÁllÛ¶mϨ±Ù8m»±m6hl665Ι]kïÕµ¿ÿ㜑1fÞëæsÝxÞ9É>*ªÐ ™ÚÅílé˜è¹"rÊLŒFFzFFf822UKgkàÄpdê@G'K;[îˆ8œA2Q#gœ-@ÚÅÀÄ`bçfâàfd032rý×ÐΑ jäji £HÛÙàÈDìì=-Í-œAiþû 4¡0qqqÐþå²:ZšÙ䌜-€6 Œ&FÖ;K ³Çÿ„ äµpv¶çf`pss£7²q¢·s4ç§¢¸Y:[”N@GW )à7a€¼‘ ðofôpdU K§¿å*vfÎnFŽ@H`mi´uy¸Øš ä)Y€‚=ÐöocÙ¿ hÿ© €‰žéŸpÿñþÈÒö/g#;{#[K[s€™¥5  .KïìîL 0²5ýmhdídò7r5²´62üur#€¸ÀDð?ôœL-íè,­SdøTe1[S; ­³Üïó‰Z:M@e÷`ø»³ŸlíÜl½þÌ,mMÍ~“0u±gP³µtpJ‰þÇ$‚û#3:Ø9¸X@ÐÝÄ‚áwxU{à_J¦ßb/{;{€ˆÐÇÒ úçådä 8;º}¼þ­ø_ÇÄ0µ4qÍ-máþD‰fcPó-Ý:Œ Ùc0þþûçI4^¦v¶ÖÌÿê/ƒ¼¦–Œ¬ÍߌÿÑ Û¹¼èXtÌlŒ¦ßCÆzðùß0ÿà¿äÿ’*YþçpÿŠ(ekfàú›¨xÿåáúŸ± üÏÊPþ7ƒ¼h–Ê?£¯ËÈÆhú`úÿ¼¹üÿ›ûßQþßFÿÿHÜÅÚú/5å_úÿµ‘¥µÇ @£ìâ Z 9;ÐrØþ_S àß«,4µt±ù¿Z)g#ÐzÙš[ÿSFK'qKw ©¢¥³‰Åß3ôß.€Â[[Úíœ,_6:PÃþ´p&Ÿ@ЍW©€ }úß”b¶&v¦¿™`äèhäj=±¼˜@j tÿk´ ô¶vÎ ˆžÀÌÎîwGÙÙ B¿E#vƒðÄ`ùƒ8 ¢€AìÄÁ`ÿƒ˜ 3€Aòb0HýA¬é?”]öe—ûƒ@Ùåÿ Pv…'(»âʧüò©üA |ªˆ»ÚÊ®þ²küA |Zÿ .ÎèÄ:™‘=h%~_vÿØ€¤ÆÈßäÄÒ™ØYƒZþ_ +ëo‰ÍŸ¨¿gáO8&fPNSK #Ð tþ1Uø'.ˆÁßãùÇ D43FN:÷ÛÇÁ´i€Jfö‚ Ìþ+-ÿ$aù ]ÿdeú-øŒí·¹‹ã¿¢ƒ ÌÿA\ÿœ†Ô {  í¿,@2ËA-«AP%>ý ‚Šùo* JÛü‹ ¨Š"³\mAkõ/=ˆ«ÝŸÃ€œíþG "cÿG fz‡ÚZÍþÔ˜•é?RÇÿ)=+èÔ ¡°´ûÓDVP!ì­]þÕ¿ßµsø3I ô.v Ëç›ÈªØ¿êÉ*ÏŸl¿Ðõ_õc™;^)ÿ¤±v²þ÷01÷'èVfp¶pþk’@LÝìþåŠáò/*ºë¿ èànÿ·û¿ (¼Ç¿ ¨¦žŠä tü;ÕÿÜl&.Ž ¢:ÿõîðñ_ß/€@w  Üò‚ OU]PÇ}Ð7º½ ¾Y²=T*:¯eÇN—G¤÷ITÕ™ŽwBI#}(k;b”·‚+D/^'­ ï¿´%(µ?y?Ä)OïµÃ-Ma}›,<ª$€Å§SÜ÷~qðV÷ÿÙ Þ-M–ëà‰¤˜~ï6 á^?X¶:²°§´_Í.ÿ\6C¥©ëÿuŽ,Ï8k‡Ú™Ž†íÒyîön-gòH:ŽÎç4Š¥ÈK{“9úaÞs½B•Ù©—W‡òmlšÜKø0Y{Ñ«¤híÛ’{+oQ"mÊ ý!sFµ¥r„ms­ëØrÓnn ˆâÃ7ôÝ„ÚÒf GbÌêvƒtçZ–O@‚Ã.3áõŽ;õ^3«ü®™ú7À¢–ʼn_K¯×SƒÃúÈè7º_!)m÷#Í£;½>_ðÍݘ¨Å,tÂ×V¹3RÞ•9Côh¥0PhW\“8Ÿßózü~ÄcÚ.ddÔæ|×>†Ζëý3Ú§²ñR¾ksuÑÚ M/ð-]þ͸;åò²ׂEÌ03„2/C¬7,ïG …O°q.°Œár³‹^´ÔƒH6~›méçi«”DÿÞbÕH¸n€‡ÕWý¹z¥Z{,[ÒÇÝÓºñÃFÿaáÀà®;ÓÃí»òra}Ì#;õ‡ËJ·Pá‘è-UŽ ¼°.e¿œ'…4 ¡ˆâ_;óý°Æ$gªÂ®mšc5TùwÆ{ŠŸÝhˤDÉ(Š–åeŽx¿x/ë-‰õãÖø b…Ý6û1×u*ÜS‚!d¢¬G“eî¯B’tŽ4«ÿ|Åþ ¢zŸOâ¹ Ö¿83¾óñûô©—u¥îWÖ[d¤uùÇÅ¿ôë >ÊÈðW³ð–jnB +øµs߀§ÃcPÂ$ï;Y1ø'N%…¥™?d‹h0Þ²­¶=³‰bZøªœtë~`Üò—óéöh“nˆ „ªÃNí?³'å̸Kä)Ù•HÇݵ¬&[HÌþ¸8 'Ë †]«“Žz³SäKõ1Ò,X3Æä5l‡wžc¸.&ù§2º"‹XÞÇ :îZT ÔÍ×)!$iäjúwËu"Ò`ÒÎe`äý^бìµp$þêSýS='ó ’ó®#JG‘ÄÍ݈ÅÙcÜ~ª„’zW¿ùÛ)ñNL¤ÀÃO~nâÍ"db,õ†I{ãm?²¹hh~XÊü1bqù#7h£òȦ±±¦&C`×Pàš#ù Þ`,÷NR×5§»"/+Ó<Á5Ÿóä½$Ø 2"{Zk‹£Œ ÓËSºšØ;Ët¬IçʺéYŸ;Â…×Ï&„dº~ºmmû¬ ¬®u2 ~Iµå×\ÔW?c~Û7‰ÀcÜ (¿’“~ËÑb¬‹qõbßÀI\нï@8æ8Œ¤³àòý‚LÌRÑ’¡_“Á9¡ê¥Å–•ñ2 Ñ–Èî„#$ðX¥D —¡égV`œUO©b—R$%µ~:z¬h¡KÀÞÔéÁ9™ŽDÜáÁàÊŒ-’3“™'W{~ù%=†›Fëb÷Y®‚yÇó‡K|Zî—9vêôvêbÄÁ>Äòé7®î‰’ ™D,*œï“¿¶t/Ísœ+ÉJw¢'nžl¡UOÜ:ö;HsMåuEZ2 'Vî&‹4˜Ý‰9>ÊšÎTí|°;ù¼Ë¤Î9,Ì'X{óxö‘1¾W+ÏÎóôìaê×Ù@e÷ô¦ÛÖ-f=»²þ @•Á‹€”Åwd—Ãiþ* Ô’ºpŒ†0¾Ï:U,ÔšÊðª%.mÞ…ÿ¯ÊhX-XEíâQCeŠYô‡²PÓ~î÷PÅ8:šê¡¨ØC×7J¹ÕˆªŠo·®¹pÀQÚxû×¼@G_‹„Ç–¬Ÿ±A‘†4Ö^x0¿€J¿b ͰÙYð$7\§=qÕÆ1 jrÆ1¾i—3R—íE¡UÇÈÑ Ûû…ðx­—ÁúW*±`ª«ó,åuŒ‡Î"!¢U)Ð+doZÒvpr–/žö‡›çðéòm ‹o>ʈ߫æ?¥Æu©ûG[SZ›Wõf­ÏTF­l9,›Ožÿ®»õò`ĪĄ]3öPεí ^Ôòu¬ï¤ÿé,ßÉ4:ÃÉ3®æ}eÁA!÷¾l¶'®^4êe™#|xQ~Y «¼hW„œ©”¬å+y‚Ð’ù‡-[kvð/Ò°1â W¼2°{'Šã… ÑBB8£®! ¾?f¬óÉïµö(–'À4V¦öÉ{òýe¯¸˜é –°–Ë3.°ÆÙx}"pœCžB’Eó9,àpôW:¹î­ÛëÎLB.•eYöB“ô:¬*KÌÆn‰4&çÒÂsy ޾èXÝ:ü qÚGÂÏ»å<4öº…nî¸hZÛpúëlbUãk‡ ˜hø9k­É¿¶.ü( …¬›Ñ§Ï™ ×8]è¯]hÎw–‰¯ùy.i}=G¦ÉàìÚ«7rÝ!‡SP†qÑ4˜ÄÝ'ÏçS6æ¯6qQîê·+¨ÓYÄz$žŸqR¾Ú»^õ"f„Ä¥Ý- –Ð; s…‘bÚ¶h‰TŠ0=8—™ ’ü*á›ú$ÿe.B¦ˆS—­YªbýŒ:ԗܙȆ¨©ÖË·ÉpÄTÃÐ(§-œê8e<kÝ¢Ÿi9}:j—ðŠ"~-i}Q|¼›WË?½~¼œ• ì™G–Œ¤¨kä×Vœ@–ZÞt&+Ø}KÎìÑ)¡â ïzε˜°ÍB¨Å=Ò¢˜[5êkRíÿI¡éè;·‘Æ`k`›)-›‡C™,Wwû}*®²QžÀKF¼qcõRÿS†ñ>ÛãÏXg†²Õz0«F…jyà­ƒ^Ï¡h®Û²kmûù¬ 7L©¤¾èŽ6BoçNI}ß®¯lµ7 ©ÓÚùJ:Ý^Úe` zÅy,ÀÃ|!ŠðÂ6¡×ðÕn:½ ÜgĶ…ß4¶6wRL5%¥›Ö½«ž˜Ë —åµï†BkA¶FGðnýœÑÀyøH?2ÜDc61äéQâH´eP'ìY5ú%'ä†YÀu®âøºãvñK¿&¸QÁGNÜùB¸äÕ/8ænËßÃÁÜsì‰Ãj z¨è}þœ‘Vù`m'¼pT‘K”œåú‘ñá°9\<1a}ãñ¼TlÃH'4Àì^ÑÕO28Óûø½ÆsϪáŠ:1‹ð Ûòõóþý–¤.ñl¹ô=SòDÚ™ ›ü=W™=?3‡t»ðËu£äyx“9åM©;¦-’3¿NÕ6çx‚„Ó`‹?7‘2)—;yè£G•e#n¸ëÈ‘UßFI„쀲°>²°‘u÷‰{½Aî¢Vw›Ü×j¨ýóUŒ‹ð÷èÑí•È|Kž¬ ƒ7—ó>úü0Láå1)½~*ÐL¿$׳m¨Hc:J!²eZt{ŸU_=ŒØrŠZ¥óS<„\PQøzP¥ÓØZ`XÁ‚l~ñëÓ”xp÷™qüðYýÍ#¢’V_òQvœ01Ü×’áöéûøW¦ª«ó&?¥T­Xð'W“ð¬¤×\c©Ì¦wÅ=3 ›‡šòw¤LÀU$É“yßÞuÄŸC]mÁ8Ñý³ÄðuwÔkËX¯*…>zxtìpÿœ¥ÁÈ6ùXà~ù.9ÀxRîu!l‹Á̇e#9ãä{ñбDi2jå…™œÓôû9"M µŸç»Ææ­Æ(}x¿¹E2«ñ¡’] ’o0#ãÑDM<‡_ê&®|ã¶¥[\óêüõÖHàH—ß—!¯RˆXø³¥ñ©à¼´Ÿ}¯éý)˜P‰“›nTÑàG‡‘&äkrdm§Þ GyíÖü•dÕpqÊVËËjÕÅÛ• Ê°BÊ:÷Åw³öã^ÃsÞí¬bßè©Wb>´Xuêß„½Ñ¡>¼ÿ’ʼnÂ'HìæóŒûûG„JN5RÇ«äõë$83‡~¶^Ï_Öõæ³?Ü÷œ"©ÑV‚w9çRí[rK^åv)¬RVüÄÕ»^¦ ±ø+\7è$¸C·~xfgHjë’Ũ¹.õ€"Nyîèãl~Žò ó“WÝnibáéÒ<Ùè°ÁŽ¿Ç¢›e úE`¹³()¸ëo6øò©E™þ$ãöÅ•ÂoȆb\e§O´}lÙÚ㙇#+AëvA¤¾rÐæ¨Q¿©ZÂ…Í@"ãý}ã2Sñ²3CäüëfÔØö%Ü&kX-S¥m¨Á“(¿=4;Y™9—)ÁcÉ ¸žà…܃á’þL«„Ì[9t¡ÛÐI;Ô®”£Ã…P ‹™PÀ†ª¥K…_ßúnÿUçôÅé š–#ÊèíwLÔŠ)á{å"Èu@‚3* ]Y,-Õv›QYáH›Åö$—ÎÜW—7•.™xÜ ÔU™R#MÒ]7ó‘„&…@m÷ˆCPR”ÉoV(l²_ˤzL}¼-{HãÃäüóõî§26×ïíßôuŸÃ¨ã1^”F·JäÍ‚iV;º~eÛÃF-Uƒíðœ¾6?67ÚŽuiÏNãíG×|ôXo)«˜‚x¤î€6¿{cÐdÖë‹e-‘LÏÏX¼J×ïrÚÕe¦ª]FøU?ÅÁJõ­ð:MÒ66¢­¤RˆƒøÈK4D™—ÙùEnpèæÁi¯Øïé—”æM¼YAiæ4äöÛäË úr±¦Øé×d”aúã­=SýÄÔÒ«*H=+Z„Õ0ø‡ï.¬V Èg–…¥hÊ÷C»[ÛaÐVÐøn“åóöHÙ]ëTðTµPÃHVqªdSÞX'¾žd€MRÜþêðÇ6U—] ¥9Àr¬x-ÜÔgh)uh臹·ˆD®xxÐ&¬ð -uD`ùDKÏÈ9”[ä·¢âÕ°0Ü•ëå[Ìyû¼ÜŒýMuXhøÞ ç"µ >Qчç]8ñl‡ÌÝ,ÉDœjn3’ø¯Gݼ—_ús xð†üGÇÊ~-Ï"Þ¢rlÇ!S)‘† ¡þ>ptVpvOÝïÖWÈc/á™2¬xÔãþ2t¸‹ëE*{ŠãUBeXkØõS3cbÌKS’нØÕ„gZ»#tuâ#hbrq‹zéÃÂaÛ9¤h`z?™Éx•Z÷·?ïCZèoîÖø ‘¬ y™Û»M€Y>ZÙÁp9&Œ«yÙz~÷aWÑ»æS4Ø9ÃòkTt(©Ú+É+ë| ÿ¥`Wø¢¡À^Foúm«OðãÁbÊ¡>^ö |ÕšH3™óÚØBp;û}š^Dô<â § IaãYF8¢Ïðb<Ñe„ÃiPò)3â˜=7»¦v÷ƒ¢Kà"Í’,J¶Û{pc~»´cH:X"䈰Mƒ9`–9Þ¯¯×À£çÀ0Vº’ªÐ-ÂêÐí²á(ƒóLéö‘C‚äHR|I«‹üËóÆù±é;äÙ•~èäª;‚V-…t†ÖJ‘ŠœÝÐBC®‘ͩکþv6eÆH`8»wÒ”y²Mþ5ý4¹¬W‚[ĺIM;„`o„£¦]²˜Ü#J?‰;ç‡H¿û‘ph_1)¥ð—v>ùJ0ne‹û½[¨;ž+2Ò:KmPô³A m^Ü–§ÁyDÔö*k¡cN™X<˜‘2rGÚ±´A¥"¢€f˩ۀ[ùLGd¢|Àf{Ӳɾ»ï°Gº…­–¼° ££õañßËÙk¡$^¤/—ÝÆ"=Ô€ÆÇWÞMø…÷žéS];O©oâÒ¦†éÅAË··ê$}»æÇ©~ñç¦ï¢98Žy}*Óêäj2Go£ùßò;!ó¼\«2k¤øËâ|ã¨ñ¿4¼ þ9¡Z(lP›ú¨3àÉw&U~ÿåèÈéÃîæz­åÌ߉Äxñn˜*>[MK‚‚7Øž¬g#+®„ À#XêT½ûÞæ¿*ÆO{+éþ £K®¤ÎÝßm ‘ì-Aª8õ&T%fÝaXÐlB|Ú“$ÉžO=…/ZÄœ«|—Ë2!Cù®„dÒ0°<Ünž•®þboù‹º¨ñ7ͺ\ÎdÉ8` ùËéOo1-'vHS5Ož«ÔxÆxìÝ’þj‰Ǽ¯u O Q–ŽI^<œ±Áè¯8ù&?I5ï` Ù(¦Céù8¨X3“ _ÓÄùBÓXFV´óG†'C…+ýýMaxa‚.¿ØsDîA)TqÐßÈ„ÞÆ·ª$X‰a%â{«bFÒÓ'HÎ7ï+ Aµö‘pÌO*Ž3ìF1 3G˜é(Å?`T»"õ“`ù©‡ö1ÏŒMeG³©ÇAÙǪN€Ó•aáÖ¶$=†Aù§?/£ÜLÕšfèÑúðÍyÔ¤gë[žP™Ï6™5&m€À$Ê}G)²Îª/5Û±–‡†ËÃýÁ“ÏR›Å€§.aüR ç ¸ÃÀlžz„´æ”qsH¯™RÃÌÙ+ÑûT˜úC‰…&á$Änª§ï£J[è nÈÅÔíˆe¤&§¾ ÜËtž~¯[Õ|#šÃwÓ‹+ªæÊK[Œtk-L \ó†µYaË7ņE0±wÑ\ •ð Ë/¾3Œ„xèSþ^ñj:~¥gBéǵ¤$3qEfÓ_X(´q9CÑ‹§vvZŠàÌ9J|ž{M<3:•äÎ1dzkÛ\ž¤EtÞxïÐ#zò«þ |å—a›i]àn>_/¡9«ãBÐ¥¤¼³‡æûyg³ï5ŒIø=¢Œw®éqÙ“œ¹8oÛðýúG¥ã×_9cLÒɆYê„j*Ø sP¹×àliXA3–q½ ™§1+VP¶/>¡ììZµÒøjs†Mß>ú-–AÔoh¢|$Žû‡Äx\¤2 {–}–Qk4ûMÔ6ú]³¦vÒVp:rÖ¸ö>?4ôˆùÌPÕÃ!Ú*^~œF7)º2³s=¡e3·m÷¥¬HÀ=î a.8eÝàb‘—N»cÄ¥Ÿ¤xD[‰x4ŠA-„òZ4âËzý&áCè1ºó½ÿì[Âèp_^Âú#¾ ê)ó,•EC4û/ȺÌê ‘˜ãÏñçD})f tNIÒ¯ƒ÷sÓÌÅáÜDk± D°ÇpSÙtm–|špÌ–|Ö\€u% Û"süY.6 Tï³Â=5òÿyÝsTw>šKXÔ»qjæ_,$Ý4ô‹eÑ­³®eÜRÓ­†ÃÿNR¢EèãòLæ±´´ÆÖË &²7Í`â[hŠ™Uek™"9ºùÖO¾}"¾6+Nߘ±T°œD—yºÇ¼õ£Lõ’´ºøP€ÛõÁá‰ãaS°³×srW tt¨wŽ)Fƒ™6ìvüEɬ‘|Eðv!o«™„³Ä¢CÇOÉæÞ…Cä¬c".´)K,æ«s+áWªÜyÓ””ë ‘CRêâ~‰Y ž¡¨=Ä{é·j4€s 3Ô j_Mä—ê#Oô&Š[‚$Ì=0ÙÅszÄôO:‹i ȯQžÒÔ™DÌzßÃ…-`òám1Q”ÿÓW|=aŽqï¸(»ä|`ªu“æoýˆ5;8K+_zqXFØÅ¯ïSzÐËN§Ð©üýz3Ö©¨6ü>dmÓ–§É §«|­‹»±¾jÕšØÊÄÇ ÃI-†Vv½r/~úÄÄf·&É_í¸[HåAzxÿn2žwõ)^é}—¤R:¹&*¬P¹ë­oåÖÜÂMï: À/øÆ°h~¡A«;ù0œÿŒâúº8nÇ=M…œålvÁþ^m£Û.}Íǃ ¾ÌIP¹ÊÍ0ñè. ŸÆ9c‹ä¢ÚÁ·Nøa¯\²Ð8º?¾‚ýà+?&$RáÂ6 øˆaõ6¹†Å‰0é&úÖó7òDéãH£5ðã³a ›ÿ…ië¿æHO²L$øQ#yi Ârº,ÎaZ÷P,R´Õ€Õ'®R¹8†§€é!å!©Ì9Eñ‘6ýÓ©Üü;ä$}N‰u÷~«ç´`ìŒÎ)›qMÚw–ƒ·™¤?n¡_Çq!ÔÜLÞ…QÛrˆ¸ÓeèB¨¾“(`»ž—€×s!X“†òÚ%£'¬g½Àx¿hÉ÷Øå_~øÉEaOÑ“*‡: #_¶wà«ólT:m]SÖÜ«3sFVÕ)XQóû¬·óÚñìÚ…2F×¥ù•Ú€·4µè(N-ÂzÖs©Í5óà.Bâr²æ¯×¬Þ=3±{•óOØïi O:ôÀ<’ä%“èÝ[ “C0 ,¸vÅ‚ôÝS¾¦ÈÕB.c±Ã`Nžl¹2<}:õ¸‘úc–Xá[ò;²0(7®Œ!„eGóa§ÑÑ©brçüñF §†ühtK¾…çù%½Ž?РéÇŸÖ7/Y1ž!1\ukI¿ÌRú¹vKÖg~.FvçÒP@:ß\ 6›,…ÝôãbóL:Y*¯*MœD$^™ €,Ù•EáWõnšÑÑr®u´*üæ&4^™öˆ*§*Zë—Òî0¤Ý¹Î±%»ë!njž'<Ótu6qóyðœ‡þrSÚÒwB¯Ad„ÁÐ)›X}<ßSô¢fGUÈâ¨Ý ¾‘;‘ 0ËÇÕO°¼{EáXâô¿e-#ÏI_Ï$¬²qä¤[¥Q©èä$$'ÚàßèÞµ 4óh(í““ýnÕ-«»éïÍYÁžnga6Sɉ0‘y$ʘ1ïh‡@›Y¹!Dýiíóºgšž³jôvx_E¯áK§‘ÌBN?ÏÑò±†xF©Œ˜Ì9Ë·GÖƒúßZv± !%¶qDDèÇð+òß퉜I#ËF-áB,¹ ¿ûájó&ÒlæïUŽ7&®ýJêó(ùTz:_Œˆ¼Wäbù~GEf°cù{fð€^ ŸTæ²7»f;–ÑÕNNÿQ»˜(ë›Ë!×6d±ÝúÕÁeåÚ++›—²í×míÄÎÁòba‘~p&“2×1vïk*0~9å@zÞ ´ˆ£ª‚ í(ä ñÂá]²g‹Äo8ˆ¼þåü*üºj›=õ¡} ç.¤K›äPïü¹fÝåFÛJtj¤ÉaœÜ“ïË÷ŠÃžØi$6©³¦¬tˆ%¾p>Q÷l¬NÜHk¯ 4Ÿ„g»£º’$S„¼‘Ùöë×§‰ b[œ %C¤QÅݧál ñ]`$_WÀ"Äp™•Ë%U}‚Õ$åCà]sÛÆóÍ<ÍKs&Ô‰à‘è·ýSç&ð³üi&LÄп×·»#õÌï9 zžhx`µ~nXÁâáÎîÍǧ¶˜õßíÙჿßÙ"%,˜d59Ízw«&0÷]ŒçY³/½ÕÙ„t’.Ùì¹b’c½j}ÔÞ‡Nf™ð=|ÂÆ(µ•V)+ê¥HWøäÍ‚ÞrÓQDaî•ÚË÷I>úH´A]6žLÃŽ­Ú±D­_É„1kì\«olúËa,Í _tE{—f¢¿zdÑW‘Nfv¶VR6º0e]¿÷›w¦Ù®±&¶ìÎt‰9“Åd>3ðÒ˜oÙ…gÎZ'.SîÞ‡¢{§(6b•CUΗÎÌÛ^®YL˜³ï§Ïëû8§÷÷…ùŒš#ÅŠð÷}‘—X2óWÜšo xƒ÷wl ±ÕLÓy®D!$æµ¾ø–üGG)ð,UûZª œ_h‹óï~\W-ó5ò•ìxãƒeálàš°/XÁ úMNÔÁÆûË.”w¢™øÁ<Ö0g¬ZqVLŽ?›+NF•fÒT3vfã§áɘ Æ|ƒ<ÁäUç~"ïØøà©8üÊ99²§j¨;Ñ Ÿc -1ë…}Å/~¾ÌÊë}(&×ŠšÆææžúØ~2ãÝ ¯?Ì!Åí"Ý"…“5·è‘èaNÈô±þýàÄ0Ž8¬&¦qös6ârìuü‚;t:Ú»SvÂé]=oþ€Uæ¾ÅþOÂ!~ižÓ?ÑÙûŸ¦h·½1_ ^÷ƒóû¡™¬ú Œ‹®Ÿ$áù…¡<Ý|ÊpðO’µL OÄ›¦€âëÎ;<øžÀû\Á³UðPÿ8¨Ml=N…JðYÙÿg”³±X¾\ —RL¤ÿæ@¬3N—¼AÃÂÕÃßi ø™pºŸuðÁCÍJȵô“ÆØQiÍÕaRn×ÐrÈ\ˆëºGüxÍ«3¸`ÎK¤÷q¬ò0ŒK÷£Ç£Ú·òlœ¤Í˜Ly…u¶ý©À8MK·š—6¥—ÃPûåÖ¼*m órº÷×ëè!•D7QÄ÷`~Áô…Á«äѱite{‡Èž›ÂˆvµÑ%þÖ½‰2§Œ X™öy†•KV¢MZxäàl˜%<奟«¯IÄ<^ÐbEH#8EW˜µ¹ëqøs£Hš!¥¹ê"¹B!Eã™,‹ô dŒ Bªa<™²jç4 ± ¢Ô‹q)Œ·È> jX´âsˆ–@hIth¤¿n3‡^uï}Å€$˜†Ð.‘l dÐ&üÊÝ3zÏ—bÄf“W•5ŒÈ%ÉoÓ¾ð=–‡»ä0…úf g<àpøîêçØBB½éžÐûïñ¯f&}Ã/]Ë+ðJ¦ghõmyN"Þec†ã}ÑQ™~{<ÑXj<ÉãŠáMýÏ«¥u.Á8 ±‚Êh¿‘,Ý|àŠ<ãMˆÙÓ?í)ÿ+äv䬩ÊXqƒ#"ÇîS½¨74$ÄF+£ÚXF*îcî7ùË(ðwR>;˜ó(̵„V–‹=‡ß%Z¼æKä#Ú|á¢;¦õiãó¾5Ý/¤«K)m럙·$u6ob–ŸÝM7ƺ#Uóô¶Ç!Ù}é_X包‡ßSã:‰£'×Ö¢Þ½ö4*.×ëÔ ¸M؃ÁÔ»tC­9„}KwÆò‡9FðZv‡V8üQ…é啚/2ÜÝszC¯ÖÓsÀ}#SµÙ¬§\hO—ƒw2S÷Yn.õmá㣆HyF*Ñ™_aÅd<4öÓ0Za§f˜Ð˜´þT¹rÙàhØÅ-Ÿh.ÁIbÙrn†ê^‘*\¨ÅàÐZeèÓDû¹ žuRqE×Êšö/Wy^ØO€ –j¤"Ÿ]Mê`–/fªw¸O×,Kß)?&<î,¡âœ”º¾v=ß¡’qÝ.‡ÁG2Pê¿2vˆûD°áѸdž‡Š/[Áº9Øþ†Ô¡ºøZjw[3UcÑííl Voµ‡¬f€&ŒN#2¯/„sž¶è^.\A.¨8µSSž&@Q•ÊŒëÌ„rYµiŠv†¶Íu» ëjjí™ÂÁ(Y;δˆ6oèbæ aä×Ûv_÷$½GÖș̜9” [A1ZŠ%6@·íͶêèÀ Á^fFÚÞþÔ2&9ÄÝF²’Þç‚PdE P‡Ã-¡!ŒNByeybºÜ™Ôž?x´1_© X ÷*ÙVeì~7—nK{{½I"”*X—쩹RRÝ%#üa,1·KŽ¡ý‚Ý?û6µŽ ¹÷YCø©$÷Á—“ŒÝŒáÄïÅœ¼ŠS­¡¶Štì–FZ!ÅIáá­TC.LOGmµ#¡Áæ¡GÂTãáB(E¼,‡·ß~K£÷ïI?ÎŽ—™Ë Ü]–àCÖ?’ ÜP#†Aävîô_on¼·%Â8|¡#º¶VlÊɉ¡fŒ²‘^|XùɺաU±—™?a¤Éõ¨|”ͬØP·æ’‰N×Rçwš‹®Ÿ§ëUâµþ%Ý-Š ¯ÅfqŒÞKVw¦ëâô]€P_g=€Ž—•Ÿ@ƒ­N%nHÃ^H5DwZrç±r‘Ú®Àáá^NtäƒvpϱžL…É—ŠP\B‚ÏŸ<¦­ÉÎ[œU’Ûè=dêÆî=†ï9ß­$Ñ~HIÍžæ^t|Ãç™sZ;Ž‹æ=³»¾³BŽj¢ì’Uoé©/ª·ÓqÍš BuXTñF–* e¤Oß½¸yVŠÏ·˜XpFŠÝRî¿N¤Õ ÔCÔÐËŸZs¿ì67Ê"ÂáϤS,êílOb!8µiG¨¬kÐa1¤´b÷q Û}>mG©¬«…ÌXlðtÆ£¾Á§êMú­ˆ¿ŒThíì\Õ”–Gìj¸+kV¸~úàäà¿ÿùK¢Ü—wÄÂ#,dfê7D|¡­3j:/Ö4åø Ëãç+ @Uø™>Þ¥ø’Ÿ‚J¾æW;pu¢CG§¬õWz¤}³¸žãEÅb±·Á £ÃÍIwН&ZéØòSŸ×&…›uÒ|Ù硌âˆ)\a5âõÆT¯Sͦ´)þ¦YÞk‹Ò"ÀÉ-\Tßž{$iå®èN¶O1SÍÒœC)-nÛ´ÛeskDøÒNú¦u1 Vï¸FŽw 2¸„êvˆ< £–FÁ ö8iÇ{èDea¶s<èÓayÞuxßFOaêR» eÅ!Y¾ ±THw£eZM«¼q†m,ÝxL°œ'…e[ÁæQŠRß- ‘ÃŒX–a= —§Ø;{šè%·:s³³VOñÑ'û¼¿ °¢Ï H“fŸ™¨p’j,ÔJV'qéJS!¡Ò€Ï6•í÷[…t‰% Þ5Ô¤âER!l#&ÖNCjò)l9DO@€7iOag—·ïÝû=–sà}œxœ€&r\s‘ȧF§ñ©AN¤ªò=WS½qØœè% ªœáÚd0³±ÀS(©{6›²ŸK²`ÌyÙ{ó–ûììFŸ¯6¸í“ÃÕl—™0r–¿(*Ì÷• ×cÝ=%TûiÝSQì,·g—Ýø½ ‹Ù¾„Ι!G•ìóÐÊf ŠÓ•ëS]ùò׋}­¥¦ 7n±l£Z³6°ÚtñØÏ/žna¾—Ï?ðÁ­ÑâÍÆÌNÇ07ÀÄw¾…l L!ªjèi¹ÍT'¡¨ÈKAy ùM…ñfì"~]×Màó€*M‰84‘ºŒÅüÂÝ&¿dÓÜPØúÃ¥§gÐ brv©I´Â?¿¾¬Ïq;•êNPŒekdE'7c³ú¬+õ[NØÁA=.Í’R~UJŒÑx'ü²8&‹çPÔá¸åtJ^~¸“Ç[/ZËoXšÚ7VÂ3‰%O‹ÊáDwsЙFÙŸìe‹JuÃR}&Ì<Ãnü*¡ø Fê§VÁëÞo‰2µR.âIT/z% TnÃ┑Æë âl<1ÛÝ8j#n(BDÙ7ݳM<ætê§«í¡"náå_´Ç3Z©&ÏÜ1Ær')û×Q„¥ºÆØÛ°}„ˆ±Œ œnÊfO¿«Y)`–y—²VUždá3ÍâÅú­FyórÝAŠ%VŒd’TmñyX<â ?Ñ5Ç›½CFôx…Ygq /„£7-YâÓb±ËMte’œЉqÏ~Ÿ^ÐÆB $ ’S)€â“œisÏ}¤TÊ·þ÷‘Y†¹€!黼Kå×ü|î¿°yýSÇŸ¶*ªÌ|aGµm‰Ò~¶éÞj_\š“#%¡9»## ¨›?XðP߯ÑÚTtß‘ ŒãÀT‘=¸a ñ.›¯y‡OÀ·4ZOnØ@Ö©à‹…ÓW1ÁÓ´/5c­Îp_ÜÏÃxyÝàaÿþs^î'NÙe7à[‹6•qÁE'ÝÆ$gT"±p-{=,󯻻¡…™‰i¸õ)QAeÈÎ02ï7 ¤±ŽeÚà 6„d ‘R¨÷¤½9ÿO õæo7µ„Û£§ó­jœºr4–n?åOx Е¤ÔO¼V¦û+‘ç#EVœ×š4³I&»tϦŒÔ]aqÑ „Li<¤Õƒ‹<øŸ˜…¹Å)˜çç)Øeí­‘3¿&ÀFÿ“yq'ñE ñ£i®¡’0ÕóyÊÎÕâCZ°¦ºIÓÛ%}vt]ˆÁ—÷WõG­àË|ªä‰v1©%Ì€ŸMU@ˆió+‰£7*òŽ4º¬ˆVh“éÅä±ÈJT cKàÿÓ‰êê 'jz“ååóNðvîTÃÑñD´çÐzµÿà1§á„–匳€Ås,£‚HÔp†­3±œÃ`d4HµãšÁ×Ï<~éß8›¢\sµúÎQ_¹ÈlÒÈt”ëÒiÞ $€Ý–ƪ çö%öt”´ƒæÔï®>ßÎýµº¶äJñ’7o‹·|ßœ¸ö=XD`unbê¸Ú [þ !&ÁÄdqˆg'Okú¯(¤Ó ·'Úo/Rp_ÆeCúü…"Ty¹mÞå4UP™ò¾šé #aJw·;àP„Õƒ‡z!ÛF2('Â;? Þ;uOûK¶–’æUª.Ò$6¢Å¼¦èܘí!à\ž˜œ…ϧô{ÔŽñêÚ6‰S5àö]bÉNG24mPKµDVÄOMÆ^f‡Ã<;PðDvw#ò³”ļ ´7L±ÑQm•3Ÿ„U4 5#Ó¢E_RœÓ-@výxbìcLÚ&;S78@^›z¶:*Ž•ï,¤pÇ$» ðÆÝ§n=*ïÃìŠíKëÃ8?Èp¾×¸­][jÖœDz“åÎGfa±HÌ5?w‘2_‰Q-ÙJ: h­ü‹ˆè}ô‹*›m:ŠÞ´wŸ×•.÷ŠH„htÐU´¿3ñ2ÿâ·(8­¶ewc±ÛG[ªCQ#šŠyœÂ̈¦ÖÈ5c¯Ìžû¸Ô¼Ì °¦1Õ}ðñL½‡Öég'MÛ|n³Fœ§´”Úð97†¾ñ/àË¢s\_(šr N5‰ÀûP€¸¡½%ÉQÚž¶>?ª[MG—ØúøE„Ž2WS7Ö†€™A²Ò›”øôk¤EÜ̘ÍU¸T ³3Uy%u˜ðpß¹Ä èeJÕ¢×Y_=}³Ó_XW!þ ÇI4ìl û³›n1·p½øA)*ƒYSÇÄ|2LŒ¤‰ÍÉy8ùR /. ¢k3v<`|ÖáÊ ñáŽ5f-ÌÙz'¨Ûbû¢@?ž¸%TtËÝ“šNrzž)`Æž, ´sÀ³‹Àªò[“-h{ðÿÐzX?Ìb¢•cÞ˜¯å½Ò*zó¶·ÝÒÜYtgº”À–¯!nƲr3‘+JäÒÓq·øàRƒ oÑÓQžCYå9t ïÞ„pKZÇ0ÊÖð¬Ï.-]ÄZϬ†•]“w`¶+-™ù•´U-ΗÍ{¿ÿ&ÓBhïùÎ^ÒÙø¤â€?Ë]’x mž‚ÙÂ…$•£ò§-xYã…AâÇná2×v=¶HFÓNÔ†,—à ç- ]NÚhfa’E‘_߇6ƒ×È1þ-§”îEãvÚ³3FÓ¡_Ò%–EôÙææ‘¡';åZÍu¥.Òe¦×cµ@Åä«®ŠâmÂŒÖÐNż•"¡ ˆ^î—KKˆ ­/f‡“w=ÌZÂO:5Bªônì¨5IÉ©iÒS3cÕi^]Ã/ä@FÒÔÜ@âǮѪ´LÚ[êÿS+$×.2©ùҼ܎జ¦©¹~SÃÿ…cОzJ±³¼.êžîÐ Œjá gÐñµ†”¹‰¶ü €Fx²óï!6h‰]déúUnþX_6PC˜Ê ó—ÇdÿΞ'Ì üÆêÔan^YbÂSì¼ÿœš>ÍàÚû’LšØÓâ œ­ õ[øë$ðìŒ&oTžpŒ³…uß³€¥£ Å 8ë Máþ‰}(ØzæhŸæy„ŸRûGíÿ•è…ÒY¨äÒéÅaKÒ`Õ!:¨ °³ìÈWŠ‹ë!<Ày6ÛB f¤ &âb‡hAÈ„qQŒHò(+cdÐìÞCµºXdI´Ë{Ŷã^Øzzfmò'Í|FÅâMßßrl.jö0üˆÙ‰¿+)Å·"/‘04v ³v)êÆ}6 ¬PÖÆ¸±¾ªÓÞxÇ£ùgÃLж0º½€C†vß^!„Mó@® C¹£ƒQëtKR4ò#xüGó*Ö ¹}Šd¾=À9"ypC•oËáöôNÞLPZäÇádöÇ„ìáÊù»û×>!B2ˆ!ÞË"‚[b&h)1Й¤’•›{fsuê’8““1O4û-\{8ùmŒaL!Ïàoß7 ?oôï…Ò“™OŽÆ1a˜´ë ÓÍå. Ìæ½|¿Ö7ÝD‰l“vÕ:©Ï3HHõ‘pí£¨ˆ£äîµz‚Ëüž7cv§0í2*ZDÅk¹Î…ê¬v|Êò[…^"<Ã&ajÕª§ôiæÿîþS|O¬”+4>Á¿¨* â Ç3Hï™·ZT´zê%ÏyÊÛ¸cã¦ÆÚt‰lþ?ÈŽß®?p=|åu¬õË”“å«v¤ë6A„Û¸Ñ/ÝÉMÏxJ5š(œÔ[’Üß?ü£f 2-?V„‘ÔqÝ/ñ6‘&='ï#¶×<ȇÃÓªFÕd£{÷)nî¯\\Üa¡ž]#›‘#í'~bÄ‘e!DMÑ«9-ëzuÐÚkDGýÿR4¬Âbäö ÊKƒ‚L”áut{©A¬VÚÃEÙ }„Í(—»4/e3PoH,í¶…±¸v3¾²f%×ó~-U.7¯ÈMçÊ;ú|¢îI³rÒ;¯¢ü§„[Æ ©Aƒõ€>®h¿Šê!ßæÚP˜Á׸.ÞÆ§÷Â~L!tó[,•õ×Dì’Òú‘„F_@Ö—]»¬»p*’ Óÿ*R©¾äÙDôƒwY »×é λyõ[ÞÞºJè)£Þé7aö úáÚ‘Á3 ZfžŸ9÷-0pæÖ ÓŠGdj±_¶ëô6yVj½Åv« píT˜‹& ç½I↽òÝ‹ÈR8=É9µŸ„ÒX,=ü?æÚ¼Æ ÷õW€,åäÂÍÍ&ÝhwQÖ­”äÒÐ?0·#,qJµò¡-ê]»W'ƒœåŒ¨"Ý ¢Z&ãßO¿Í܆,gsö—(ßúïW­¤¢h4ƒÈi_RÏŒȼúŸÙÓ—‘Æ?~ÿ»5툊À«j⡵[jêm"ÑÚÊŽ-~¸E°×㨭9nAa¾žZªÓ\R¾±ÝO#Éö'äðä¿bnåbgÍ­9URÃú™Œì qŽºœÓÅuF3þ„/E]š»g>2ÊÆ‚Ù½œ§Æû%uq‡)áèŠñy‹4€+DT*~™IRQL(bûŠuûÝ䢭aM꟟¶·ø$D¦þž=,#àô£èCt’wõÔ‡ƒ&¶ "™ÿ$›ûÄŸÖ¸šú"õÃF‹?÷0r÷:™\6ã™Æô“ÉFZVJ¯ ÜÃCêzwÙ¹Áçìö0 œJ= Žæ0ùXû¥‡®NÊÓC1€#òn S¾ù<÷ê§¹ÕÜ âÐùÀØ øÈ­BL3rè¿1FÔ3i ¥¹DÃâ&kBhòyêmñ–§7… iþ³“ξf–Ìä›kûY¥‡1ãØ¡jfŸÂ]Ÿ‘:€÷§L7§° R^¸dJ^rÅCÙÒŒþ1°§ZÈ“·[1Ú&)«ƒ¹|£ O=ó3ã¯kä% ŠIÓ—šRʳÛR×m~’±‰#m)øé;hp¾q¡N ¶@•:PŽ+½ø'Áþ"VS„ÍÜí#©¦Ëim:^—$¤òñ®¯‡8i’0Ý»Ãmû4ËpÓÿw¼Ó!TåyìG˜!æéjWx@ë¯G3!XÀ…¢ÎÎÜ犫—,zƒg“Ñ÷ñÜ(ÈCûTÅT@€ì\lZB ºs+z7¹ Ü¿)¿ n;6 0ݨ‘ý­¹vOÇñ-M”ƒl©èC\Ðvî%sx_ ~V%?…W·µÙ&*}ndTr¨Þ£ªqááO°žï- j§Å*ð ïdˆƒ ª·ÌŠ£’¦L4¸Ó¼m>g*M‚(åŽéÂxUï:‰ºû*ù™åïiº.&ŠÛ¼; ÚzfçT†Í-ê >Ÿh=¾ LÛA} ‡ë‘úíÇt¤anO V _…KÈÿ_“' `ÿ G`ô·°ðn ¿Û¿=±Þ¡åð4³Ò¢Þg’*Æ@ˆž¹Ô·xnÑ–ŽuÄ2FÀÅrfÇø$„ShìÍ uj©‹îîÈ\Öôçæpð8b›_Ù|²ÍîI_ÇP"WÉ@œA¹ÃÙG «®õó¨ ‹–Dh«ÈuÓ ä&ÏW­²Ð–ÀßM@U!Rä6ƒ.“¾ј§Ó¤- óÕã0õæVˆÄ‚tnãsã8P"`Z‡®ªxK¿h†¶> ·Ú𳋳YÀðæ—¯¤w{´ç'Û®õá©ûã¢CLîKçi0H%5úcÛØßsnÊF!FÌf”§Ë„6±ìï˜6Œ8žàiĈ3Ñ›í-ÄB×Õý¢^-tc!½$\½_]cMM1ï­“ 6‚‘œ)£²Ýuþ Bcùn~ÀºÒ7’}P ×6%M¨ðÀˆw&iˆÊêÑŸš5 ^Ÿ»¿_~×5íX“ ÒþÓ ÷œçýíù7™`˰ŒÖ‰Lˆ¨õ&«írfâ¼}B KHÒÓo2*Õ ò ˆ—,¢ò’]ewm%W t/SZmå_1±ØTÿ3Éé é|Àíñ€×õÝ®9¯œT]ð®[G.¢Æ$êˆT0_.—ˆFû§ÈÚlü ŠÇ®2áxçFz³Á3²ûÚ ¬š_ZJNx•í'{  Ó ŒÝ}•ëˆ)ŠtF%˜ie2cݳ\U¡Ž~Q‡p”s¬Ø”+ª^6`Y1ÖÚ4À>Nƒ¦·¦ð´TXùòCõRˆ¿‚`‡ m²ÙÜo2ý½M lÞ=éƒ-`æD~L*6²ŒmïÝDÄL=\¦ÐËA±¸%r†¸žqH1c‰uL™ ß?Ø ('¥Û¸d Õ.RÔ\‡5z²ét‡é¸Ê|ù(T”ˆ?[ñô Ô?€kÎ[%b‚l¤ „x]z¤^V’hbAEiv=*4öÞ–¤p´Þ5ìÊ1ù?ñ/Sá®û¤3¨guq’” =Úd’À”T·w²ÁvW4a*Js~¸‡2|1p„?¸9>ýûèu~E:ûj9wP©ü´ÒAIÊC_eª ú ß™a…Ø^¦ªoÓÅ4É÷š5öHßd#YO…Ѫbo‹ÌÌSBñj×½ë²Ñ×”áÙ<Ã…Ô7ƒ9Úúœídœ'ÚιŽ®ÞzT|˜-ºŸ¥|÷Ç€Ÿ±¾×£ ÿì¥ØÓu´Hõžú«|Õ›¡QI„?ÞFû¶Ùz“*Þög0„‡¶x?õíÇ ,P:˜’Ë2…˜ùÛ–iÁKW !Í/•|ÿ(}£N( ‰¸ñÀV?Ø ÃPëє֥Í5¢‡ã­4šSQÛã£iE¼že¯Àº­¶X‡Œ4CâÈHàk+¬²É¾þ>ÔKw¸‡lMEª~J·ˆÈ€`·Ók1 ¨Ð\eÃ÷ TÅôÇ%á[ŠTùè$‚ç*ìxw~ù3Û~QG×$ÙÐvï°Æ;âà(xu®Zm4ó·øBV4þ Æw¨‡¶„ãïˆÊçFk2ðÈ~> ‚P“í!0D»‹jÝ%@øÁÝf¹_Ñuaö™Î$™ò¶wÙŽÆ"î´ º¨HàR¹­–§Œì‡œ¨Î ùV6ÕÕƒ]èIÉ[üašk T1‡Ìœl×o€?JÖ+J¶tþkÖíŞ"M ½©„‹:1qÞ[ÒreýÓdœi¡*޵tšZ½X@Äx'×;‹áá¨C”/à[F£tþ}èo2»U<`7,á|¦‚tç !¸dÌBËÈ•7_dÓ 7Pûòª1¾dɽ5{èQÔŒµÝhH¹«êÎ܇m£nÊYÒPðÅî¨T)¿vá§F½äk³ø#?'¾RžD¯õÕ‡ÉÇ|»… ”µÀœæU"Ï\í•M DÆÊÁc[´ëÎSl·[uZ˜@"uö5`~r}>[ê7ýîiLT“¨¼Ì[ ‹€¯® 9ʘCï¥5¢äÊC®—£)©Õ3/MRq-™XÔãó“¡Œ(ŽÍÑé°ó@,ŠÈíïmÃ@áŒZškl|M´Ý»’ñ½J4Õ©!1Ç\Y ݲ9k¯•Ê\éëúv¯ÂöüBR'|¹0ExÜŒ·´‘DO*Æj$íþ}Wÿ÷jÍKµ Ô=×YâZ,F;$äÁ™¸89G]¢›—/õ{y¾´ *nXƒõG_…(—é[t•M þ ¶…£†ºøi°¨Ëèj9;³PÊÜ)`Sðû³p¿Ö ^ÞŠåbQ¼à³«kÁ¬lƒU•ŸÁ›Zeïѱ™(¾ÐÓÚ£«·ªH½ÑýØÛŒdË"Ä͹šüSêÒ°1º¿pDz#õ'#Sáðÿ”;Ys±"ÄÄW!Í+.¼®>èþò>®ÍÉM±ªŽ«?‰p"õ“Ç9p³îw+^*ûÕ¡µ<›Y‚[Žöž+qqi'<%Ÿ23ÜôaŸ‚Ç´:BKÆPƒºuÞƒŸ=XïÊÜ¿Çøf/&r{N½„¤|8»d$1Šœ¨'ÚV§ÔæÛEQ|}ÃîL'»‚Û™¿r¤c‡¨ ¾ð\ée¤b*’wªKÏPvÞúE‹Ÿ¾søj’Ók¦¿ê _ô¯,%ügËUë²U/d@eÕƒPO€ÐV½½ÇÊ/BÊÎ\Õ°J6k<ËØŽ~×=)÷UñÁ¹Vûšé˜™©©ÚíÕE)¥jéÎØLsÒÇj ½þ«"ñFpA¸Žù·/µ É60ý»¶ñ‡ImþGCŽãTåwе2¨¯ MË,(òèItë9l°›íýÝ™”å[×è=4ä•×M­EÆ¥_z/ŠióYó.Rîšé|Lz˜Z8Ûo~vry"ðÁO*˜®è£»àÐ>ÞN¿8_GœîwÍç]®Î7˜ÆcZR|u1­„]©lá·àÄdgãœV¶Ì§ÃFå'Þ™þûZ1öxK¯V ]\ÛÈf#2ÿ‘iI%ù\b3½÷+CŽ2C‡ Êëûö´Ó Qâ©ÍlMìäöeÿo›p³ßØH²œšëkÎÆ‹šŠni€} ®àKrüó.„¹ôõ,eè 'X *4=â‰&8ÅA*èux ³ )î ¾ŠAW¦ùÀ\Œü*6øÿôÊW1ž pàÄö"ÄLl‘‘14»øÓŸ” 0iÏõz@…çmp]¤tÃ/§ºáç7í³ÄˆËæ„ÁàY*úîù:í@Z À¥ ß&¤cJ ˜uÕ™:«^z‚e@¶ʺïžnе8©QäØF±%z¢Š\¯³e¾^`”˜’ ir§Hýï¥ c*Hº\„ôíqAÎYL"¡»p lHðG«Ì lÔgk# endstream endobj 118 0 obj << /Length1 1601 /Length2 8391 /Length3 0 /Length 9439 /Filter /FlateDecode >> stream xÚ´Tî6L#!Ý9DºF‡tƒÒ) 2Ç€ŒÑRÒÝ  tƒt ÒH7")ñ¢¿þß9ï{vζëÎ纟ë~X˜´õxä,à/!Êp’‡Ÿ(PÐÐ傼@ . ‹>iùÓŒËbA8Aá0‰( äM„¼‹Ó€ÃêÎv~A¿ˆ¿¨Åÿ „#$Š ¨@ƒ ‡AœpYà5ò®Í_ì`¿¸¸(÷ït€œ=ƒ` Òb× ²èÁÁPÒý?%Ø%­‘H >>WWW^½/a%ÍÁ p…"­º'ÂbøE  ²‡üÁŒ— o uúî·Dº‚ÀÁ †Àœî2œaà®9@Oí @Ëû#øÉÜ€?gàçåÿ»ÜŸÙ¿ Aa¿“A`0ÜÞs‡Â¬–P;@Kù /Ò É Á,~‚ìœàwù Ôôò.à÷ÉAe9èŽàŸôœÀ¨Ò‰× j÷‹"߯2wSV‚Y(Àíí!0¤î¯ó)BðÝØÝùþ¸Y[Üæù'°„Â,,‘°pvà3€A!jІܙpÿ±YAa (*.€8 n`k¾_åõÝ ¿ü¿Ìw ¼=àË;o¨%äî×Ó ä ÎoÏ;þ‹pùùP0ðb…áþSýÎ ±üß]>êx¼Ó?øëó÷?Ó;yYÀavîÿ„ÿ¾_>55}®?ÿí“—‡»t2µ×ËMªqöELqXB™‡ êËnjßE_:qkÅAoµìD«…uñÄ7;.³«=¶±ÙÉ«Œ9Ct­É«a]Â!ô¨ÙÕ¬¡ù›V}W‘”KÏûÀ‹ƒ‹dµ âæJô­~kVU®þ;‹úL nýj“Gêã¡.;ëœvd‡?ÀéðÞ¶­a' {j3ÔD–Úک튦ÄlE<.Ú×Õ™ôΧⴘ4‘̉i9‚µÚx}/L«6¿âq¤—o7÷¸âž‡ö쮓•”ÜÊ•¿ËË .ÀQÅŽŽº¨G Yv¦P]•P\" YUºaÎ;6z×y<üáøÀ4Ÿ(É[b¥'Oˆ¯i—@j’¥óä`"7J˜ÖL¼¦‹ìF¢èq'¦×7eÜ€ [Ï®0À\ˆ_É´÷2uÖOÇ4JéV Y²Ûפ*ž6ã®}ßWa-PjüGÔî&Ú'ÈŒõ<4 éÛÊ™‡/ üþz†¨ÞÑ}oÚ—J@Ç@ëîÏž¾¾’öXS®ûCÙI—Á䯬„{}Ð’úPp/éhÅU¬ý"|Fö'9$õƨh+ESïB™¦|ÂàÈùú¤…öÕº¤+Ž“ÿ±™¦¢K~]DQ¯Jw¬ÅÍäà[A…ÇDúOÞL½×ñ?9‚ç%ê#¾¹\kOXû1Kò«1k½ØtZ,hîîW>³r®èZß§x¹b3Ï…Ä >¿Ë=üy?Û^»”Ãír=šU@ÄÓÜÁrÚš0ŒòläŠ;ŠqmuD¯Q:ò¼Y»ì˜àˆ¡RÆ0­xœÒm<Ýò Lë}3ø¿#•p'Yt¡SF'…•"]­Û¤{’#ù¦€‹&Ì^§›T\duFM+$¶É¦˜6ö€Ñ˜4ØvÁµ;b±h*¿“D6~_¦/Ϊä^w ÷¦jÌl£¾Ä+úDœ"M˜wšÈñAÓ­_¢#kaäà©·î—«¾MqŸòÑäŽÁ%¹S‰)[Bæ§ §%ãò¹WÌÔé{žÒ•ŽÞ6YÌf|b˜mºÇ6d.¼'_ëTºki]=+¢Z.›#ëSJiȳn¬æ2²4zƒ°.©kL÷ƒH*ár‡„ÃÝlƒ³†ï¤¬}À–¦bÒ˜¶$ž•ô·Ub¤‰cHµ[97Ρü‡«L VŒºèTª~z(t¥t; Qö Vüöd˜ìÞDjÌ– X‘jmÏó’½Ò狀¬s‰÷åiD/T¸·œ“dø’LÔlÍ6=ëí‰ú£2ð}\ÍöÎãû³‘*tío Vf½Òã&»B nÁÃï—ó¶ Ší&}WãEÆ­ÓD0ŸáÌ.׎fÇ00š¬¸üH[³kÑöbá0ìk °?lú\šIOB"ÅÚÂýRFñC=ªË)%è}þPU\*¦{”ï,—§n@^¤HwMÖ`²|r´¨Ú ¶?eˆ_Š@2Íu5ˆ,쪈ÿ6EVTOö…|Wˆ=Ž®…W õ`˜Ñ›q”lø4?½F ÌûÉM4Êa¼„ÖM-ßù™là—‰ì‰¨Mrò¡†¨šRu\‚ yü×CýKŸ‚¦*TÉqäb}­€j: ÔÇ’K°’ºxIî‹`OªÌnÈ"#ƒ#¤W¢Ô(ß±T°3ÿpIÜõæ¯Gµ+•+<÷Þ•Q¤ø^R’i|WÚåJ¥]ì"äÇlIÔ_GÌm9õñëØß¿5Íê"ÖáyÖÁ®ônONIÐIÂ)—·»?„irSÒ¯äT£9a_-9âå¿Æé øž!­ÓÂÚH›Ôçö~óëP£,… -4ØV¡¸ÂÒшg6ñ:PÄ1 ŽÍ™âÀÅ{jecg’ƒ`°FÒF’”(DÎͺ³Ò*§2¹Jž:2ìW4+ójLxR½]}”&„]¾Œ{/ãÒMúTó—zrïz9ikÎýôŸ1’xî$»Ì„g#è0šÀ6¼ú‰x('!TÛ¬¥Ä!b›“Ù•=™*ðPñö¡Éf”ï.üt‰ HÝB¼L˜Ìz?¸*>[Vލ‡ÚßfD Ñò½|¯y»ÇF“zŠþx¾Sp³•øèûN¥©–õˆº\_jZu‹´Y‰¸KöDŒ;'-6›š=²a⽄…&óAr@~“ Ú-®[NÓ«+ ¦V]<Ô„tßдZΣ,ÿ¶ ñ­J½÷=Ф¶3]4q/V\õ—˜!“„¼­…!±Kªš¡ˆnÕwj…ÜZõØ"l+…Ô«#ÄvyÕŒÁé¸A·ÁšZ»TsÌn œA-ý¬{†›<ÍìõLêµõ&Ü—qZ‹™LË=>/È~æ­ó{{AŽ/¼†2¯ø¤FøbVusç£U@Q9âKQѶÕp¹6Kük7@™Ån[R»[ΤÜ5økOÊ`ÓHnÞÕS‹Eö N‰¬sx¤…yh^žœÆ¥öË ˆ`XAlÈN9#Δ¹¶0¬×Ίu`RœüŽp;饰é§–ŽpÌýJ}ëKêE;—6ñfÚ¨“ÔCÒÓz¿Òq ±7hDáLµÌiÿ4|§å;؇+˜7Må¬Ó£º«üÞ‹ —=•cïaÛ‰ åWOÃãÀ§)'M˜„É(9DE­‚‰óŸ—_ì²q||!4KÿÁûñÓÜr®Z‹ii3ð’ák‘^ ’I/’»ÿšŒ”š£ zŠñh1V¿›È†¿¡…ŠÉ ßpnõ%»­ÀZe;”~¢)jßJ7å@’©Ìï™5ÀfÛAxOK¤ÉÏsól™WÞ»Êt8t­ÖÜÇw]¯"k3)èçÛ™^ðZ&º-Už…WøqëÜñã²ßM¹fêb[Ãæ =O`Äž;@Ý=ƒ÷m"è¸Y§üçvh+žÓô¾‹YØÍã"_Q:B¬¾Q…Z{Ø~|ÓuÔ@ï@I $¡|2~¥NBûXÔä‰âP~âË-5þb:™IdÛ€˜{„Z–Jnö6Ê`­HxuHÊ}É@®Üª·ˆSÀy†[ÖŒÿG©Ðßòfñ¶M.µLozëÄÍ6cM¹°$!,'Ó—¬bQ"yžH|‰8ã#/›{?ä@ šIºG(±>ÊïvÑ—ð½Ã<˰=ñˆUI -Û_¦LDE0}N†¯0ŸÜ—**ZÅcÞ7û£ü†Ë2ö.ý.…Wõ+V§îˆOøïEŒ™º­˜a#!Ïâ]‰7‚üaìA³QÉðI8ãYÑ‹W{ p‚uÉÅæ´ÐJº¾û„h !n1jmf¸­?Þ={h¡¨¿k2Mt?ÞeÓ]¿õÒâý¢$îúR­É©GÛ#fu:­¿†©6MÀê­`úŠL¤˜he~ø%6‘ÂØø}>Öˆ†ŸÀWîÁ2Ì8o舿µYè,Öÿ1}‡–…¦ÜÛU)qJ+a©}#3·á!vL7ÿšîÛ¹,%_†ŠŽ9¤%‘·föiµ(ÅÁ „¸”°¶Ò´BÆ6&ÿª´%L¿¦Þ¨uÊdm=í±³Jú¤ýöºPIœ7A°ïkƒåZ\ß6fs¸^«¹§!í4Ê{¬ù·÷KVº‹jù’SÀ¸þ÷7ùãg„³ÝcŪiù𛦱 ›ÖË‹~Ì5v}÷È$â4Sö¦ad–Áצ݊jðãÁº:ðI¢±ïò±9LȈ»§ìBgØ ` {|8ÃK„ýœíiÞioÔ“€ðlÒHú°Ði¯-qVìŒÖ‚%K„(ájŸN‹¬žðD8L‡dsŸïY8Z+Õ³ø?-]gHå•ô¦J÷^¡Êe¹öÇrn£/þ ºsïEkïï5ŸÛØÛᇧ f3-R‹#₾ÒDBqvˆÌ»Å˜ª„ÒTƒ1Š/ R¯´ùxÏ6Ÿ[H…÷ÓÜ$Jº¸ÏhÕôÕÎà îRxžÍE\ý@‡ÅCªûa± ª³d=¹ºˆ®Jòé`ÍÂPˆ‹ýÒF5%ËÉEWsvõ8™i™”¶‚wÐÕ …¾IÛë2RÖ¯½hx; •*¢Ÿã0 Õ’Î#Z:–|M±§8á?©—Ò³ Lzk^QñÊ£"§c`ä~‚'*61!g>¶‰iC³lr¯‹æu¥èš–5̼/Mƒ-žÈ;7°»¦ô÷°¦TÔ9 &?èE½È¶Üzám…PͿDzš²)_ÉRÎ,Ë»7/–* :¡Óˆ\Ñ1Ì`º²9ªÃ¸|‡óÉ\O÷yÝS ‚JÞqWÍÊk…ÊXÛMwÒRŸ%gUæv1‚MÑj€ á2Ÿ%žÕ£íx †%çLÜOeAzœøÈ@=WU˜ƒ·b%pûòë÷“ eA _q†œ ŒÒi¯.Q¶<ê2æ¦2&xÄÀKë{1W£ýÃĘÔlHXÌ{ZXÌuÍaó¡Ä|î•U¾ÉC3Ä#añÁ™CBi ÍÏ*&PìÀ²å³ŒX«ä`)Ïà‰„ý©ÀIÕaiö5ÎF­…^éúC5ë†jëå–œËùA"äØCà/ïçÌ$“3t…‡]x\ßsnjÎD‡^'ñæ½Á‡†Èlä¨Ë[¾Ê¡ÎüJ¯û 깡Ê\#dÇþ 5‡ÖªÇ§WìÏtÔçÝW­Ãd²çìÞ{éTWa[úXúxÉAÚï*Ì&CsÍ="Ò àû÷ÅõLd£Íˆ‡zÑ‹‚r ¢õ¥u‰:OJ«E« Úï×SXÈ~áÐ5í¸µ–™{fÿÊA†yÏ-?Èáº%÷¨þž^¿pOmÍYS^•mµú0вÇШ„<‚ÉXd’fÜ|Ìçëítî>œ™¶Ï>ï-릧 lßpšM íÆ:sÆ ÛúAù¥Â©/_å¾{èóJ…ïê(9þ¬Ëíöa,´ë9CmØiÏ1äÚ:F‡¾‹:(”åä?)")T—ožœŸ¤ëú\äÛߊ< Œz‡ã¢½ÆAªR~µ¾©MÅBXeiÊ­…ô÷nÜ\§²³l‘³Å^Ë%‘˜Î~µZËè]'úb¤¾jýóí±ë—bLæ‹OŸý*Ò"¦råR>ˆØ‚¾H}+Ÿéá‚q`Ngª°Óg æÚöó‹h ªÁä ¼¨}¿©A ll >Ëýü|¸ÿ ÞË8ulßdˆû–»PÿYË1Vþì4(耭5÷a¶þ“WïòEí87›ß›Nm޹ãÑ¢,çñªÑ+‡Ïsðè <éy"êŠÇäÃhÙÁ4Žs9©y¸ s­!/Çõ0‹ÌÜ¥ÕO‚;4è]MWwù޽Æ5t/ëyÌ#hWÊñß>ÙÒ¸ôêÉî²òùîwöà\ò¬Òî;;¼eökÒߊ&ÕN‰pÏ5¾¾¡c:ˆË/Â×á‡Å\µ±Y´¢±3#Y^– ^#ÃK 4È»û›aœÏŸÏ—¡ºóÆnbrÛÉJ0=’Äçºä¹X9îÉJ«„þéè©´6#WúâüTÚñEˆòºÙ¦ú^ÝcÎÀT#p½/R1ñèÇ0ZÔEšÀqÛô‹ô›îÈ{ÉHîíÈî©sF¹üiåÌÛ¾—ÏOÖ·«\Ô϶ÐêñÐsuH–HŽ3Q+'wÚž;%åYK×¥™¿ŠÍE¾Õ®`÷±aÑ~ÜÐ? Mˆ[«bd—øÄL-53d£öðâÍ)Æbì[ÖŽpkçÖV9Ôà‡D‘“,—QâàçÚøTØ,á÷¬•\\ŸÔ¯îa´w%Ž¡x¼Â ‹ÈNæz¿áGÛ@6×Xb¸¦žw2G]ɯ2—}¦ê¾ö”°eG¿jx¼tÕ)†§ËA/«´C¡º*ÇQ7]\Ü Æ2ÕðôP¨Di’q×jÒ›æÝâZÑg6¿20ðÇéµÍ°K—Þd¥ 4«ZܦÖõ“²$ÛIâ8·²‘[Œgs y)¯m!Y¾^h6Å=ÁDØ•ë2µi?ƒ§Î[É)ù¾’O¯ ­¿MJcHÜÛ˜þÙ¼®à꥜—f Å×k.(Ê"8J'qÏx s?M˜hj(ÒÒ¯w~a´¦"È÷b$9|üEZxü5¯0ûãÕKò i.ìà@.¡f÷)Ùbò%Į̀Qù©oÏž26´$œà”Ñó˜_G$†%Ä Ç2ñx½=Ñ5Ô@ˆàX<$¶‰<+u}¡Énz¹ÏÎÂkÎ{úý>²=לê¨ß74kû´&Æ¿i „yŒÍCt3Wü˜aödKZh7³ÁT®®ZΜš}ç¶(nàðÌÔ[ÃüÉñ2ÕNG± ‚bÁ£¼Oß¿öJÿ‘È믗†ÅÕO)ËJØû¼{Ì´=ó¥Ñr.SžæR¡Ã,9¨ë0Î2ºÅ.zÖ<«¤‰_〽­€8ª8¦'ÞœÜÓ!ÂÊß@‰Ý&[Ê4ª¥E§ódˆµW0˜©T¯ƒ¼¡]Ï|ö>Üd¹„„ئ7­Æë)ºŽcÿ–‚$¹ ddæ%|cóRÑá!Wz\q™Vr[Ë4nñIÕ‡¦Ï•ì+8ø{¯×={nĸ %›ØŒ*²kùÇbm£6#ºgz‡äÙSÏÂÂö„ Wxà 3<ËE™ü‡5R;m&d?cLÄý>íטÇ)õÏ7Új<È móîaE¯ñ©òxc̬֙.êz›'*eWh.½Ïâ#·2WcÐn÷CÁ$#}#3jÕÈ“Úlú™ŸÓ“ÚýãªÏC§ý·•Ñ ™-‡2Õo(™ŸÂÅâ©tXú8ÊâJ²ˆ²ö*eèxÿZ]!åæëâÈgáÝ|JñÚ÷¹H¡@ÆýTB9µ]¿¦}Å)…e…?ýœ'€Åˆv‘S÷ìÉ·Y£"­R«ƒZG°:+â ‚±žÖÐmiágW¨ZŸÍñ\ÇdC_#ŒS}—Œ›…ÇíB†ê‚8TI1ß[}KñÛ©&º,íôSKm.ÒVðh;‹a¨&]0.á-&ÒïºDL½ æ=N=×ä¥'ã µ<¡Ãh&ŒÆBq]㛺¹(†È¾•ì8 YÇ­]åŒñ¼ÅHš _–<±ÌJÁ G3<ø†ûâ&Qöì&SOœ_³)¯ª89ñ­êüçˆ6˜eôÀùkò|Þ“X§¹ Lµ$ìQ™!i–…ÍË•R˜"¥6YãZ©Óø¦Úǯ¡ªjZú‰÷ÊV{G†É%*ÇOE’XwÛô0û—ÂF¿ó܉ith2d€·F)od5ÒÅÈù1oýåž._<].› V„ØÝ†Ð$ÑôMPÉSgÑ~ô©µod¹Ñež½H{ýÕ ªlcy1'Ò7ŠÒZÄ"¤y \ïÐäM71`½ëíÙȆtwç`\,ƒ>”@O¤KMç7ë*ñºD–¿.ȽÐ^cßæ2¥«‹Qô>iH|2×)°,#g}\]BsbÅaÃÃcñ@Ñ–2Fôä+ÛzoŸ§daÅ)ûÑ~ör)SØýïÔ¸•žôàA b)’hIõÛm.!onǯ0gþþº w]ⱈåºåÒ U–õ ˆ¼S]áh›µE½vL3Šñ 峚¦O§µ“]Q¥¸¥—*Uî•ZÔ÷Cž`“pÅKí‡4ð¨j#ԬŲ‚TAGïOÚÇy‰b(:DÝ_fF‹^ RÌdrD“’a‘( jxÕ›\&&³ÛâˆöÜ€¦6µkW½'Ôhõ¬Ž¡¯¨ŽC?ö–ÁÑ9— 0ýSíy1 ‘͆3?(™ùiº x»ÁT>ÒLß¡Óbã0¬¥þU‘‚:åI¯„‹ˆOyˆoÞX-ɺjg3¯…©oÖ­Ø›OÛ°­ôÃÙBÃî*Ç^ø8@6ýÃOœWp` ºS&ŒGLJ6œ‹*)­+Z‰É~4zXa¸÷“H‰Ëëë/~8RÅ@8¡—)¹Žx¼¾Œ8s%[Ìhy ᧬*è zÒ“,ª\þñÖzð6äÚW¥qâ«‘EGŠ«­ߢSld›¼L=[ J‡:ÏbÌ.†íꆞNüÜ*ÖbäÐ99Þ ½çBó˜ä4þ¹%ŒòG­ì €˜/{Šëuå,Ûv N~8R±6Hñýˆz1{Z}¦Gm)Áoœ{ô1’žØžõÒ¿°žÉ…–üCã 6) CǰL„噢=iOÌå°–0*ïœ#ˆr•V·ºÆÿ’'™ ª†Wm©›~Ú‹ É??¯G¦E¡ø‚œr6dJÔ°¶ פ£r½dÑ>‚˜Žf)ãŽÜzÁkw.©xv?ŒŠ–?;Q¿kÎcsi[à¶”9η]~SG{ºXŠ_rX^êÅ\QEJñÜv0&ÏæY‚Âx„:è5—›9Ѿù½øeSé»ûO?rSR®_Û ¿áÞ,[‘.Žf-ÄZØ,5Åê÷3[Ní7ˆ‡,ˆ2)c?¸¿â+¶¥kËÿ2ŸÃN¦a]ªlO+¸t›réSá—áˆRέ3Û䟊õ`áßW8FÚ b%œÄkw5Òpd6áìù:Ve_{~˜Ù­žBëÊsíÔRü¨Ì.;,“¢5©8ªó¤uøôÜ6X¸ñkÖÌçx“ö-hß(Iâ„9¶O+–Z¥Í½üÚ^Oœ@µ?-dm®ž·K×Tñfü¤²V±5s+#»f¾vÍ/ë­™î’<Ú0÷Í®ù³Ó§öƒ8ã>ðeLèÛîo&)Ä¥(?½øüUȺ+˜UAjmêÉhm¥†Û»¼ §ÆÂæ¹sfGÅÞºBååR Gpo•µOÂÎCqû“>*W¾|̹f?•üÒ?v|ÿµºšƒáyAä0CO«ˆñ˜U19È´T%[ìÕ"IÍa€áõì‡è%±¯5rÀ¶¢<,û })ë‘bƒÃ˜ÇË«S$'ÉÅN™Aº©&4H6e¿~Çñ“Bw¿‘Js¸¨5õ)ËËöÍ÷ñ>¬Ç.ÖÙ]÷^»\`v_Ñ‹¬-s0ã£Jw>0å$P^6¯©tùÞßsÚï6Ã6ß3[,”e{/4-.ˆ8Ô ¶Này4ôÙû¦v3)åø«íRà—§nycäꮵÙ:$?σâvgÐ5Éë”ÎÄ”U"Î~Ì—ôÝ«­¥-bVÙõ ù>ΠZ[Ï]3L„†ÓhÅw3rQÏýšJ5# wz©ånÈ€šmÔÄ3ööì `ïSñ {·žÅ+þVcö×÷ˆMß–fÖ\à0·ã¸ëÒø°Âúm¡GS/O¹Å.(Ç9Ý R+ž]d½Ó«»‡ (Oü?ÚF* endstream endobj 120 0 obj << /Length1 1594 /Length2 8302 /Length3 0 /Length 9338 /Filter /FlateDecode >> stream xÚ·P”ï.ŒÒ ´t,%ÝÝÝÝÝ,°ÀîÒÝ]‚”4HIKwHIJ‡tKK§ô×ÿï›9gvf÷½îzîëŽgÞ¥&WÕ`³„š¥¡&6fV~€„’:€••ƒ™••…šZäbüSŒB­ trA!üÿ2pš¹<É$Í\žì” €¼«=€ÀÆÍÏÆÃÏÊ `geåûËêÄ4sY”˜òPÐ…Zêàé²¶qy:æ¯G­€‡ñ·;@ tY˜AJf.6@ðÓ‰fö ¨èâùŸ´‚6..ü,,îîîÌf`gf¨“µ0#ÀäbP:Ü€–€_„Êf`à̘Q¨š6 ç?äP+w3' àI`²BœŸ<\!–@'ÀÓá 9E€Šò‡±âŒ€?k`cfû;ÜŸÞ¿ ¿Í,, `3ˆ'b °Ù*ÒŠÌ..Œ3ˆå/C3{gè“¿™›ÈÞÌüÉàwæfi15€ÙÁ?é9[8\œ™Aö¿(²ü óTe)ˆ¥ B\œQ~å' rZ<•Ý“åÎÚA îï?biõ‹„¥«‹äè ”“üÓäI„òÌèàbeeåáã@ –_á5=€¿•l¿ÄO |½ «'@_ðéÅÛÙÌ pqrúzÿ[ñ_„ÂÆ°Y¸ÌÖ Ê?ÑŸÄ@«?ðSó@Ö§Ùc°þúüýdô4^–Pˆ½ç?æ¿ûË¢*+)££Èðã¿uââP€7€‰‹ÀÇÉàáäøþ7Êßüÿâþ[ªjú37ÖÊA¬ ¾?(<Õî/nNíŸCøï ÊЧQhÿ™|CV.V‹§/¶ÿçùÿíòÿ7ö¿¢üß&ÿ’vµ·ÿ­¦ý­ÿÿ¨ÍÀ {Ï? ž&ÙÕåi+” O»ù_Sà›¬´¹‚ÿW+çbö´bkû¿Ër–y-UA.6ŒÐ_]x o‚U¡Î _w €‰•õtOûfa÷tŸ8?õê· ø´Nÿ=R bµüµwì\Ü3''3OÖ§ñbçâx³=-¨%Ðã÷dX˜!P—'À=_€Ô åWGy8,r¿D¿/;€EýoÄÇ`1ûñX,þF\¼Ojÿ”ö_’_Ù³Xþ ²X€ÿ‚O¡­þ¹,  Û“ï¿B=­ ô_ðÉ×á_Àâô/È `qù|ÊÚõ7üO¡,\œž.ߣüTÅ¿ðïÛ ôZ ÌÏ@-BlkBÚ®«ÄˆÜ™¶F…&©·tR阼çÚ]oÑ“é*3ƒVœ.Å’¿tc,nHÑ^ˆ.=xï7×!†·$ªµÞùܛīoµ¢Ì}Åí+Ø«í%A&fÒÝöypôÑ´ƒm~öIžú½£+/šjöµ{ŒGmoé·á°™-µíJnÔûÒ ¦7Z1†ESÔ¹æYÓø.L$HôX'èS—“X9cdòñ (¾o8 ½õWÙco¦½–Ê5Ù; ¨ôñI`/°†Ç_{‹ï¾“Ç›õ.þÑÄ<Äž÷ Ÿet‰2'ONk¼ðÙÛvT¡ Qòàr5êµ0¬}hû*ÀéÄKºM¢)z['TOÆ£K¨¬F Mú‚ÉlñCÿò“Ïõ´ë¡üxQ:.È<àå0kÇrsTì+§Z~mýìÒ·¾Œ®s]'ÖyR½‘NŸyëÅõ0õÐöVT'E’eòÞcÀSMãé@_ÊèÚN66A:mk%Àz#€¼Ž™‘ÖTZ¿Ó.,V’}¾F¹9;î©/Óždñ#†\³Jw-åÊ×ÚΑ/K ïà%nü…wÅ‹˜wĵðu˜zèá λî×:Ó{œ»—ôë6m+œáõ$rîï^&fKòΜèqhãíº¥÷|#e¾½‡~]ŠÐª1R’þÜÀx¿²×ߢÓüƒQ³všÌ¼Ét™yPÓ ˆû“Öò–XNFT®tæ>ÿ'cq§FLâU@C޵Ùè‚úE¢à X& ‹ÎŸxr­°¼ÛD »×£R DbÈ,e}p:Qw´“1©ê¼# ¶®®lËì;ZðÒˆKK:ïôÍ£²~+jÕ¬ ™CËX7û€hfÔëÎd‡VÂP·wRÉ­ûV¼×úÈ‚“÷¼ízÛz‡´]õà5Ôy,ºÉ/ð4JȫĈ¬viÚþ,Þ°õ¡01Þ;Jfàj0ê]ÈmžIøËK>¬þ{,?Ñ&Äh Œ4£#yÂü¡Øö:!dN”÷?æÜA'³¤²/‹.ÒÙq•»ÂÍ.¤,­ŽÃ££òœñ³¦%—‘°1Ƙ¼=“ÕZp’6ÀÄèdîoeФüW_ð·ïf¡øòw/¾ºö2‘s?8g z·½à_qO-˜§S)Ýn&W5vÞKtÃ9=êìN>–$‹¥Bϧ48Añ¼:×M;æâcïš0UÑ;ˆ‘¯åx\¤øB-!èg;$‡#i[ÖV )ÆÅ•XL9DÃ÷Õf¨I¾qÁ³V,oÞ3ê±r…*“y1$3ø|IL£ ã7=xÂvy±Zµ>Bç¹P“¸þ%W/¯crĹv´õlþÿö áƒ·¦Ä$˜ìTï%92~ˆú¸È†ÂNu1±ëÒÍÎæ±âp0T’Z’QËieÓÑô#‡ô½ó']ªàŽì*'Ò½WkѼc,ºƒš¯xÚÕCÄY\q^¸_ë²^ùé jGWZ‚¯l$A{§u]Ÿ€™dšÅ»ùl¤Óbr …Øjl?ªîà–ƒÌ[µ/`‡¦@êkÇõ}?ýò‡†7acø)iˆ ‹K²ÑPF÷Êã幸ʪ¬½`yÞZËÈVDŒIÐÆÎOÞ-Ô…23åÊ ®  Gò¶JÊ/Ïë›ÏÕúËLy੼n=‚ ýÒ«×·!´ŠÙw?+¶÷Ò±‰øMÛX¼)”Bx{{S”n7Ì|y|·%ù–µ‰STW(`œÃâ´õq‰·f¨n ÉŽ¢ûÚZzæ}«¶»W;SÓc²! l>}ü*Œ6>Œú§uŽ»÷ú4ß]áÞ¨mböî…=*à+ÕfZ¢˜§µwñU?krMŒtÖÔ»·‘Ë_õ'‡Y.u ~|Á‰ƒ…]ñõ¢ô".Zèg~óe¶k³î¨:ôlÊ´qg9ë£öÍ4a¡)6‹°Wƒ9Ï|öíŽc$h ºËy7¾ÑÝÁ¼09Ì^@'ªS‘O£¬U¶J-0u¶ÊÀ*$EWJO§š2oo-d_G?£±svÓïÞ–©—€›`¯¦3åIÿ¤dÀ°ƒîØ2aýL(Êß¶Cý$ll—üÒZ2'Þ®‚ñ¥§UÏM•ûÞÎW‰Á•b2°ˆå£=¼ðës †aéSJi¤á³€à(tÈòOlÏŠP IZ s‚dÓ›õ7º$íl,‚×í [èºé9MJGẊÂ%©K¹°,Ò áD%w.½ñ Ç‚¤v² (Þò§P[óõñÖ1Ó÷)e£¾FøoÉ0B¢< :5hæÙ=sŽqNf_G÷@Ø·\ÚláNÕŠ4fë~PËWKL}^:•óU쌋Ô0訸µQH_ÙM,æ¤Uì!9JÚ«ˆNÁÎa.*§ÀãaͱO±Õ‹h™¨ÊÝ1z v)óøþ¦êñ}©)émèLà€Ó’2zµ-ÔN,¢¡¥>l òeLðFÕ×`‰'c2—Ø¿rͰ¹ÎXÔ“|æÎ1®ù~Mk]nÒh@n‡LÅñB/8y¾bÑ4õZm<Ýž03§Û„]IH﵂?•Ï×Y¦Ö‘ùÒ#a˜Lõj¨ /&ò ˆÜÖža³ñ3\‹`uv¡Ú>Êk÷y„ºÐg¹¯\¥ÍZàöÍâ+·–›xÝ”¨°ïirnj‰iXLyÆõ;Ìtm‰B†Öª™åI?<éê1ðè_DˆtX¢þšø-š"ò°à÷"Ê~ô[…—"vê(ÿs‘Eû±ÂVŠP¯'ŠŒþ£ ÃêÇáMz `^º e¶°«o*ß"ŸÍZ ŸZ*VöÓþ ®Ú˜PoŒ‡ÎQ³{Å4¯dćSËí~½[TCƒ>®ª[mŸö5ÈÿdÍ™×¾°î›à(Mr²ž@­¹ÀÚ|ä™,!Àwû¦®*€t¸ˆ—róÕ“y«ë9Æ”¡vþ4!BÓ*[ l`PÞ<õiŽN¼C–7«Šå4•h:E,?}¯JëwyàBqbcPw—r–‘ÝjÙ^˜nR€}Ë¥ž§HÖjñÐ|‡Ré=ÓÆ‚q¥°p‚‰6°1ED¤NûÅû2Ь ªNÿÜb„RøÚzµ‰B,”„ ®†°eͲ³N«±›¦ót‹aÉp>¹V8q¤É¼+‰ø+[,*ò (v}e'œ£7ãÏ¥lû|TÏj\ɯn-¼äT­yVìÑ[¯ôÍ=ÈYa<åúuÑÕ›Þ ÷MqaD_›\NÏt¬³' ?Ÿ,`q×fel^?Çôb ½hÍ2z]Kð.I;į|t¢SÏr‘@Y6©1Ùíeª›0íX…u.qR×V·Aï§!ÞhÉ·L[-6™†EÔQc%Ò‹Ê"{ý_h,DHL` ¦Ý^ÞX¸k ŒxÙŽèF4€¬éepÉŽ‚_5îB¢["@-m'©vZu¢údpýX $Œö–„ÃØJ‡ÖÆF‡úÅò´)ÓŒxÒùŠ}!¸q…µ&q¬³„ ŸRÏävúQ¡%òL·ñ9îpW·ªØ“ï†2óÙø.8¨¦\JhRSô^¢ð9‡©’ÆŸF|q9š¥ÿæ+å ó½‹Âç|Ø”›>:éC:~xÒ»wÙ¢óQU!ÉÔ©_zÝíFHvjÐ_•¬`%…'YÀ}¬h@8‡E«î™NAQ•œî7À×&¡ÑªÔYÝr±Ã²€¶ //‹“‚30.H(£¢ÅikYÑVkÉûE’xËPu ÔÕXƱΟ¢Ú2 œË“rõœÝº¬´·B½†«ÚÞña YÏEÌqˆÈôÔìÔÚsoèÄéúO$þæEpøkä¹ÔЯ®{_’;˜ˆdwY¸é0"øÙF‚–ß“ö ~ˆ˜ÁfÄ#2ú¡å“v.,^Œq¨!ì¾$ô žÊöqY눆ÕógÀ¦$üç\û7¶¦¹F$¸hºš (íWö÷]pÏõ…A—¸ƒ´ÊB´#ÏÜ3½abØ&ÏÍ>è}vU•ûqí%+¾¥òéºá¸[ç)´r>З;}烈(¥‹ÐùÅzí™þwt«˜ïgºãìëYùìêVk€D´–îÕô"jae’Mf4gë]/4^F౞+g#HˆÔ7¯*û½¤•"‰®·”ìSŠ_Û½ðiCåÑt´2×)޲´Ø(zì Œ*:üuðRµ‰9ipêªrIFâ}®}~Z3£=«’vø=J¤ê)&ílýCê-Žóù˳ëÁjŠgÃð–³’Í€l‘rCUøÅoÏq´‚áë9 u±J0/R`²öi?|´Å(êá÷åž1RžOG)ª¯²|( G±g^ª?¹Auøœç±²îQ¦ñìŽ>j{X¼ñÚŸq澚Ô#ìÙXg¤ ‚UÄd\Åh(y>b,¦Ô\=Ø w¯f‡úŸO1åËý¶XlN£èÐ¥¼Û#à^²³v‚ÊdÚ£9VË¥o“ʽ7EêMiŽÞš½ Lßþu^ZŠßºÍŠè„šOÚ‚ ¦µ´.JU¹Ù7šó£ÜvV9“É:(\h!6Þ@Œ‹tls¹<Óã\ Šြëá¬wXD#—g¥\4Ÿ£'é€î:²¬títŽEHê¤]ÕÈ$kÓs[ç²£Q›M"jE5—·Hêz¨—©ß õupÄY«®ÄÖªœ†êIJ”ùÔ~ë”ß{£‘žï«œå‹—|Ö'l‰M7î?ï4@5]‘Š/Ä_B7x¢‚I5I‹ûV⨤^ôM Ü1fÓ™ ˜MÒ\àÇÔðv@†ÀÑ8Ñ-ô_¿oìQ¢€— H/mâáÍïÓ>Ùiì3glzÉÁ<²½k56sòj(0E{GúÀý¾Œ;žx "qܳ҉kÒÔÇ@\+t¥^ÿ€ÆkËYŨ9K`‹šV”› žôÍI‚´J‡ÅÉ9?l º–Wž)ÂZC†tfT%p—”ÝV² ì]<Ÿ‰óã+?‹µ³O b*øFœæÎ1„x\U^APZ¼ }³7âòT 6ëN¥g¦›uèº9Eâv—zeGýÔ´J-èX7#rz%_õE®œä¦û½Z­L; |Ùò4­sTs·*vx×.]ú­é¦”’Vþ( ¬ï×n¡#qRrÓût‡ùV*,Pð·È3tÛȺÿWà÷ìÂIðÂQEÃsŽÉÈ@‰ŒÊQ4Ï­h²> J´ñFä =þ˜|?Ð~¬í˜ö›^Ò\ÚšÓÛ<{ép2†nm;þû&žô¦¤®÷zYýÏYÄ/Mj"2¯MÁkÅnBDfi›—ýER¨µ je áÛ–÷âTº‡Ñoýöà)Q”̱5BÄŽ®¢¥ñy™¯—b^³Yˆ„Qfà‘G-Š !TŸÿì[Ÿ7Â{˜ ç„—á…ÜÖI:&­ï#Ü+åc—N©È›cŒ¦4Ö̘¬ñÙÖêô+pYꢨ†íH‘`“טaŸ$VZÃt99’51¸Cä‘{‡'ÛAÈ_ÑEWÐ@»—c ¦(WüI \ÇRkvÇ>%™à`ú¡?ît{ÿÎTÕå¯ÖɲønXµßgôœé[7tpÙrÍÍí˜å¹èré%ßÕ¥> h USóuÄû”þ˜°"¾øýï´h±6 °NívJ€Eôƒ“”ÛüVå--ñ‚ÍÜÌÍN{M y݆¾´vùH¿”[NñˆŽ% ©žvùV ôA‡~Ù•Žäj¯Ž]yƒT[;] ^È/yŽìU& Ó&‚˜KŽîAfŸK'Å¢"…ö§^2dMçBxÕž}äõT…ï¹ýNå° jÓÒ皟HyºÔšâIOÎðWšZ7š—}KÕlßç(Yµ‘„Ú—-ˆÌXkã6æÉ#‰#IÖè P€—ò‘Y§ÕU«z.]Œ8¬‚xxüÕ€çù­õ³õÔû“—ÞF­Ik#X¦| bçdŠ¢De”Ì£!Hf{-y™äEÏ>Áåž°–ÎR§xðÆãf¥’:œÝ'(Q>ÀjÈc;⟂“tªR3E)Ççâê‡z©âˆ•"Á…ålõ5Ôøº…›@Ž"Îh°{Þ5ûGL:ï(›¤Ð®À³¤oŒQ¦G"&¨ïÃÕŠ¬ÈeEåÇ>Hô\~"ë€ã,üö3Ñ5÷FjÊõBnœtnfá™BØO”ã°ÃÑ„2Ô°VÜ¡î×Ë„sÅa—o,*¸_ëô°`Ó·Ù=‹µ8‘–¼ú޽lü¿_+“ÉáªpÍ·-è(RN;Ò6ÀÂÝžªrÙ×{Ò’sQ¨«ïL«•ÉÖa˜ã%:SŸ/^ê‡! '+ Ÿ¯öhd+¤a "Ë®‚K>¬+Ï’t+õëD«Ý0ÚŠ&un)ƒƒòd #XC¶êàã)b›×_¶•¤ a†“Õ¦h{5Ð3ja©…QO:ûß9?F5ñ@¦Ò-˜#Á°×?l'wb¢Z:W<÷06î¤Úéqd‰¤SpL¸.ÍИke»]V§wÔÑ’6å¡r®ò"\a•Ìöâ’¤ÌIJÃ- Œ>Ò9¬äyU²§ªùÐ{ÀG‰ RáUm³D—2Q/GµèÒ4!!ûÂ\µŸbYôÌX™¾<ÿXJ—ugèúì6èkøöµ§ÿñuÿéë…Ò©Nh1œ=±HcMKBÆÕª#Ž•ÒDC qXÊB×7v$>톽dVü,+us©F åã3Þ‰Ãb›ÈJÉèŒCx:I“”0*CH—´d³°âvý"láÑøxëŒ_§R1_®ÊÏ´Z!AèJO½l4ȸVæZ‰{KΘfÎ Ô`ò…Ÿ‡ñÇT}|óC;e;­E°˜˜¬>×Þ„d-“¸ÈWÔb¦ q9YäÃUÈ.ˆ75¢{_çTíêÞý%QßÄ6²¥Þò&ëªç¹M¤¹Š¯ƒ\ÖèEÈæ™Àøø9ù§Ÿï,Þ­gJÄÐÒfŸG‰: ó5xžN1B¥>û¡ÏLfVt ©ö±ã[…¾8+¬È8–Õ`qÚŽÙ¥"ª‰L£Ã®ù¹û~œEäˆÈÙ!b ¸[éÃ{hš‘'£BŒøl [u=lIÝÉOþf$êú»0Õ‰~ÍmHA¹Xõ)ŸoTœø-ê>ƒ¶&«]Wâåœ'akŸ=E‹œÉ»óƒ ᕘA;±j)yÌ9‘¿}¦P6û!ñÌ%…w_i_'=á“ó;¨ªorl¬û£”©L›¼0¨¸Dã0žB¡.o"ó‰¯L¸ÄCG i¼$9bØšo„µûÌ«/Øb,Kö‹ùÑ1_¥é·) [rAh‚CK ²%résïŠÎR•¢çˆ0ã!#p—ï²§¤‡åIê8‘ÝqÑhW@€²¼{\etõæüÝ,Yj”yÚU•äjÊIi„Mè›KÚ"5³±SÞ±²óCYü™™'þWsrPد&UŒ&TÈdj§TëŽìt/ÄçÂãñ¡’¥]»Yi4ý#Lþ±¾9hdk'hbj'Ì* éÔÃùÎJ;Mª+dzXD±7ÔGÏO™ oaȨH¾q¹Ú5zTFXÜâ<4”ãçÏà°MO¤—O½)Å«-<µw²Â_ƒ¼¥+Ê Aèó˜_ ¿N;¨ÃÿáS¾—mð|ç–ï•èÑ­«zDRÆêN[Ôà†²÷˜écOX8+ Š`uGŸLt­£ýö«cRóþÀ4“%­¬œÛÈ5¥iV®¶Ý†wâŽ&ip¾ÐO­wÏû†r÷h¶åGûí²ã#šÙÙ¹ñ°œè႘- !Ðc ˆ:›®§Ç5ËSN$ªù¨±" ÓIÙá£Ö¾ÞRÈv‹N~‹Ù™KRø ¶2é]Nûºa¢çÉ›«á’Ü}Èr­#®„M±IÓo§ØvºøWŒÔåÊQ½œréUÀd)’¤U#}D÷ñjPÖ:Iž†XŽœiã$&ëÇÍÕos†u„QQh%P\sooá„ø>e¬vüÄŽmOƨ…ÿFŽãbY’ùÄÞ@ü±1Ý@;EÝ©þ+ÝÑt²¢a,bÊú<ùs¡È¾JpA/M·À>©‹BÚò¾CíKd&ezžã"õï8Y?‘U òÔÕÏHÓmEÛà ’ë1Þ~sÍàë¾÷ H»¹PX ŠjV÷v{- a³Æxè ÿ(!$(Ápb˜’Š„u»·M»“Øv¹nê à«‚í–=x6ëoH)mWNykÉÒÅÖýÊó:Âógeê–Ñ ³>IñÇ?+J”ÉÇEŸ3œk¿íLa»í N/’Nk*øAÍ@{Â*­öˆCÞ ‰ý9oe[©kº¢Šw–Š…Y™ø]ÂsÔ6*H÷7Ø™ |3%+KC ¹4"²‡á'ᵉ«Ú»±ÍÚïTôõ¶{“ôÈovÕzl¦¼äº²ží¾²úg©BÝ\½>uœ“*_ià“¶±Z† þ0/^Ðßô0K•U¤ƒÁÄHŸãOý“LZùLFq”X€(QÈ_IJÍÝh_,](µyt‰GpÐÙî¬@ør ôô¿’È!νªTûýÁͶKa}©¾/0åÍ+³´?”g=¦$—iy¬7›|`50_½Œ^ Î{0ÅÐ!œèáÔÀ %„|Ø­IE†ã×WÀÞ9Fq<:²Ͱw;_èXV÷ýû&ÕÜuö!-Pd8û˜ø‡bð¡C¿‰ly'ºÇ:†®B®JW²Ý=9Žº+¹˜ÑVu²|z§]œF´ì±¡‡c~ØE݈Kxöºë¶Ð¶4rm… 3 ž›‘™:ª”™gù¢pŒêŽÑn‡É<ïêŽs9 ¼ž7 ï¨ÁçPžõfö®NÏÒ³…¼ðú*n–{_.:1åûÝ×Zì~f$°vÅ|¡P¢~bðY¢aX!r0ëKŽ)&ÇЇ ÄٱůùUfˆƒò¤!=)SHÇÊ8\l1‡¬úÌIǶö’Vé•¥®õÀ-~áñ˜ý¹Õ²°œãŒ“v|éÑCãû ËÀ¸ÖŠê¯|È}(²{o©(•<ÀËÙÇsï1¦XˆW[ËSakGp¨‡¹»%˜,²¼¨ÅÞ7‘uŠku.>"ù~;’Þ"@ЉløüÎðC‰ ¹ÃÍÏï€ÎU$ÜØ€µAN%Õ©q_w†Nr¾i¥},•: “¦)1©(¬`®#7'·šþ`¥ù«]¥K*® .È1ï½@U6Ö³â%+ËCõ¹àceÙän²^}MÐI(5FÍJpã´yò6™>‚¿ý”Ñ /sA<¿B¼I ²!…*Ó–2n~B|S²÷¡Pû ;à£êNÑ12Ç—ìw_)–OcýïqÚŽAt3]õTÜѹ^ƒè°„Ó} ñWèëQmè-^½ ¼¨‰>#] Ö’¯gáC^m2Zéš3-›v"Q |á<îÈ÷sæ4‡=W§ý$ážJÉZ[’rA8l»›Æ% æ´a]|XažŸšÔ%n:T<~˜ìqÛÚó(jžƒì¤S£ÆOˆom*ô+Ô}ʇH¯<ôÐí¾ÆÏÖRÌåˬ¸S¼—S5œÊÁÎ|q- ¹wäÉÉJQÇãøbQv0‚oÇ~“jˆ3!½h!ìV®ºû´Ð‡©‚aà¯Dmkw{Ë‚…m`ld “U¨k¸×SCWç@¡ Ûú÷eÕyÏC&¡H”ûlSåµ¹ÜG¤R!ÎZù‡¶Ão/&J°É^ø#¤îܳ“UTt4Z‘ßÅ!v_•Ñ.–c—ò ¸Ží·0OQ®1·½¼¥¢3Õ"8JdÏDA–H7–©8)üPá"® väñÔÅHâ«oÖé‘Ä¢@ùíàŸómlpôWóÝ­ÝÖQØL(ëg½¶$>˜Û’c]ê¤0i²ù¢ÇfÂôÜ{„åÎ^²Ø"X ¶#–\þnÍhìÔÉÛ>T뢣“_H[Þ?ŸÀz¹¹ÈqWQçFÛ>P%OùH”¸G”ÔLÆJ·¾hrÊM »íKq·Ãú°j§=ÍL(Î\Ù\(‰A<Ÿß¿À€":Ôô6:€ò”÷x—³ú{#ìñýuWŒÅà‹ÒA±“%§Ì^]‘om;—«<ç]ggöôÁæ«V8ë=†ªV!Lß‹˜#Ó‹P$<Ö… ˆRÇmÉ.0ðL¬CqBŸö‡É—ªã1ÝÃì¾®~5b‘ÜSÐy5úò=\ nls5\bŸØ·”ìL™ˆ‰D‹z¡Õädû ñÜêDÊÿpì¥ endstream endobj 122 0 obj << /Length1 1413 /Length2 6286 /Length3 0 /Length 7242 /Filter /FlateDecode >> stream xÚwTîÛ6"! Âè†îîn”Æ0 Æ€îii é)Iƒ”– ƒFB@‰wú«ÿïÿ}ç¼ïÙ9Ûs÷}=÷u?猓ÕÈTPÙáÕ@ÀQ‚ !  @UßDŠ "dœœf0”ô-§éCÀeþÃ®Š„‚QX…uÓGÀ:Þn($!’”"@ ô_ޤ @ ìsè tp¨§*ƒ„9» °Uþ:x ¼´´¤Àïp€²; ƒ€á}0Êꎭ»L…ùW 9ÊCFXØ××Wìî%„@:+ð |a(€ Ô Šô:~Á€Ý¡¿ ‘qÌ\`^¨MN(_0 À*Ü`(Ü à w„"ØÚSm=€¡þ‡³Þ€?¯ýîÏè_‰`ðßÁ`áî†c`pg€Ì 0ÔÐB¡Q0Üñ—#ØÍ û€an`¬ÃïÆÁ ec‹ïOt^$Ìå%äsû…PøWì%«ÃUîîP8Ê‹ìWj0$‚½uŒðﱺ¾pÿ?ÎN0¸£Ó/ŽÞÂæp˜§7T[íO¬Šì3’RÒ¨'І¸ÿJn†ñ€þ6‚~©±ýú{ <NXÐ@˜ûCæïöPHoh ÿþ-‘@Gp€:ÃàdÿdǪ¡NÈØÉ#ah€5K<øëó÷ÉË-GÜ óûïá ß32563åÿ øo“Š  ðEÄHZ ‰=þ;ËßøÿÂþ[k†ýÙðŸŒÚp'@úØ»û †ÏŸœàùs]xÿ®`€Àò àù‡ö6@q ûú?“ÿwÈÿó¿²ü/´ÿï~4¼ÝÜ~[y~™ÿ+Øæ†ùÓŽe±7 »úì^ÀÿÛÕúÇëCaÞîÿmÕF±›¡ wvûûa^04Ôц‚¸üA ¿f€MïƒC^°_Ï @þ— »kWìSâ…Ôo»Jÿ.©‡ 휈¸ŒD‚1dØÁc%q€?»œŽPôo^„…à6€…pB É~ÍSL Œ}¬~)ËØù£\Ðÿб_Äoù_¥!ÞH$vSÛ×_òï݇BÑPÙü "ñ 1¢ã¤^ù–¯àê¨üçªe¯ ÿ<²ÓûŒ’8·.7lù]9}ðåõŸÕyŽ•Þ³\øo·5G·?2~ñ3àÜ.ÅdbõÙÜ8}ßXɶò³7wHo š)­\xX„ºâ·ávëpzzKQÓœø¾ÖD?{S¹ð6jfÕx­NB—ü¼rR0Ñ<Á&´üg‘CÞ4Jð ß}4Õ»ãïS7 Æ®XtRøÉwEKý­VD’N§ý«ÍD¼z9­îàßx;Á寲‘¡ssÖÿié2òmæ4}çÈG÷4Ûᦐ róÛ}.Î1Fa|Zíø„åv­T÷rÖT"±¼ý:Ëhío’m^†©°+C7ÉF‚ê©2Ö5ÚÛ»ô÷·—×&šF·Ô(EËQ²šÄ r«²n2¯HOJ MÓ¯4å3T|%ÝQ8¶<ÿq%ó¨þFÁIËÄmÁËhŸD'¾Œ3ƒŽž×=ÔL«z¹§V½°Da8š²•lCÀsek!®-Ê3¹>Š–´ÚÚJÍVr¨½ÍÐUPÓnÑæ“é0M=F3÷X/ÿè"-'*Ù€IêÌùñŽˆ1Q Ìæ«’ëkgªÂW……Mo™~¾Lq»6ñèu¢êþ¢ˆ}OH’ž·èÈ"ÕÊ zµQB>ªiÕþ qæÎ‰ìU¯wzáæŒ® îZU×4<Ìœ†¬86Žök&²?¬µŠ¼E»½¯5ŒöžEw¥:knàÉìpÀƒ÷9tÕ×ö0çëKábW‡ï*<0Ü_˜E³Â¯À…Χ˜úËî KÅ}q’{¯å9ÈjTJñiÜà ˜¥U3åLÅÈ_F9ÃYC­2¢Ç³òë+ aOc¢¾¯ÕÓ ©3û=´ä‰aÓ7x›Ò,ñ>ˆoV]v¦ûj\µ±¸|ô#^¾ØÍíÒ†q"kð¢¾þ^H*t¬^¼¶£Öävîéš¹]â{œÏ*Í+Ø2^9}šÇ³œ\X4~¨i±¶R /¹4\ oK¸i•lŸ@]¼û(Šo /H’|ƒ-ŸªäáûÈÚÜß;ÀÖ"¼ò¸ sÿ{yp¡!;´v·QaMù½2c[&ûç)}ú¬ãDè{?ÞõÝ”Ù_{f"…ªÉ™cÈ}ÄoëœR¿EcõŽv0ò’âáå[ùhÃØ<”7·E*¾v÷Iù>¸ßGÝ—øzX+¬Ã>4„šȸÇrõ!8Þ•3¤™'Y}mR·ƒA2F¤Ë)¯F5Ô¤sy+†…ßœ‹åʰÝ^ŸUç8r¥òÁÃ}‹†¸ÕüF•KkáTcA/#‡o©MŽ#±i¡º|yÏÝØ+x˰E çÔ‚âdÝLæµXxÂ+µ1Þ…¯“‰R·ÂåŸóîpz\%«qz"]'ß"îòp¥tõ7Câè’åî¿k7 —ÕÐÆ/)j1QÍ^×=Äs:~Ðq¼›ùÁo”øEKÑÄ8ó@îöιËç/þ¾GŒæ‚¹u,ËT6¯/xn÷Ê«Y;ò*/q BŽ3xٟΧÆêÏg*ËŸŠp09}L¢ç>Þ[ßn¨÷;'B­: V´ÐQ1›ëéŒéS¹F’LŒTzÐwΜüèÈqzZ»¯îïÔ¤ú[c›õƒÏ\â}-½íz?OK¼´¦oN•o&K²è·½}¯ªUD‘³ƒ¬¦ýÍoœ°®IZ[pT~wa„°¿(Ö×.âªhº1”!Þ) šëvD¯)d\›Îj2Ì;£¦«ïa¾Ëjý9l~® ÉþtЇÀé[@àG“³dR1¶xz¢ ^j"oº¯>×–Õ9Ì«²»lâŸ[Ên'ä3Mêk®I¼à˜)-_‹O®1rU|3‚y¹Š‹l§‘#ü¾¸´?œê)¯ªÉØ¿™Ñªä8ßÛ@Øt8¨ 2– S XŽuÙûÕ4<À4%g,”[Ù\/êGîU\+ úÒïÕÍöÜa릭 &;;› 9 ¼î¢—c:Í»Uí'¡¿&ÿ)“æ’»ÍÐp#ã²{ÿ¤þ"üé×§ŽëåfW^¤~²´ÿÞxúîé ¨Qž{?9W`fÑ¥âÕ·p×¾‡óÛªN깡âg¶qãñ˜ ¸KÀí·Ž$7‰‰Æ…yºƒ¸.×{ŒêKU¤Ÿ«^¡C¤ÉN—¶Hr2|ü! ]@ŒK=fH¢»3õU!ëÏmZ-Z…ɤȣ„ÛMixlüj}­‡H=9[be~‰5—:Ï¥×Wº“wé‚E~RÚ¥\)í|Ý1ˆÍQîŽ!Ëy^yÔTr` YÆÖºÅŸ4Òy·Õ&y6‡!xSÒ{EY^ÐYÆÈ<߯&ÑR’‹¬£õˆ¯Ô6TÚµ •bƒ#–“Þ}­»Î#Äì*Ï8Gé˜S¤N£JÒaŸ ÒÚÒvŽÎK(4ÓÒR$Ò$/¯ƒ2åLØf¹à5‚"¹fPÞ–þµ'Ê–}¡¢r?î ä§7Ÿª9\øÖÆ…ˆD¯,v?Ìr6XÕæËßaª¾Ôˆì/r=S=ÿº'U¦¤`Èì©QdM°EsXáwÈíQÈeÚ‰ÃgÞÄÁül.ƒù NRØÞdB[~:ßñ«OšËœ ó‚e^Å••öã;šNñæò7pëìƒe®oæ[Íwa5ûŸR ^ÔA¼G»‘û>7´3m-´Ÿ.×FÙ˜îî²i'Õ­ùPx‘¥zÞóÈ%3²½¸Â@¾Å Á…@6U€t‡‰º³…ÛQb?–€ªàŸÊ¶½¥”û6^äe®S~Ùz~UtOLpgj[¯iuýÚ³‘º×ûx0ò½Å] ‹Î>4þ-uB»k5¹|öãz†¯ÌwÉúÓt»k4‡ïxWºë=žãœx4ä镪ÈFZ;ßòñÍò®ÿ¸ê6^‰Üå‰KJ=¼býŒ ÷d}ö 2²ÈÍ{ƒ›:r«&8Æ wjBö¢Žnõ”I´e°¬f'<Ô|H«ÙbÿÚÉÕó8P ÕJhÅ•ÇòRþ ‰hiÄ;írçÛæùâ$áК¾‹ åÎ:Ü/…7ÎË¿ñ®ÓËÀIú û.V2nÝ›u“a×ä4r$ßóKÖuÛm÷Z=Ë}ˆ°q½[B Åí(|UKÀãIß“„o©J3Lµ×Ãð1yà *¡ÞL´šíHóÍ—ü¤÷¬€sèÑì;[ÑÖVA3aiå_"»²=OZ$¤“CU~h<`ÐL’ïÞìµ º7ó!õç6ê6ÅKü˜ïúÁ>zKö§¢ÕÀõm¤>G ˜ôŠB›ÞÝçñø·3í.¶§d4á2<…œªÛíK{ú°¥½›ã<ë¢#²lj±¨ôÉ:ùDsý¸µŠÝ€H†~"¥Ü;KQoR€NÍÒœöíeÂ;t+£¼w`:»{sºÄ)´2Åô}Bc«Ÿüœ´¤·cùüoŽÅM· &Z¤Ö|÷0™íÀUX ì@xqËH²b3ÓëáÃìZnöþí¬™ ?çIœÝs–Ƭ± ïœNš4¨ÎšK+8yF=ñ"Цœ4ÍœõŸ//2‹w ¸P}2 ê†C÷ttöt¯JR­’Un^©h ²âa:&=¦ßÆMVã~.ŒˆY™©süJAí'¼Ur¶,Z²ò€.¥„¯‡çŽ®Ñã7Üu%5Ê_ÌNš[n W¢Ùšß9d‰‰ÙÞ¥œn_Kíúq'KºVÚL®ó]ÁÐcÝ-ü'‘ÒôÖÚþYFg áLáâ”&Þ.žÝJúïSÀ•>yÔ…²ûþ›¢h‚ÀvœB]PËÂ]êÊb¨)zG 7LŠùIÕ-ÄNöÆGÿ…=›-¹$DݾpK£ýBÚZ¿Çx ¹²3ü&1¨H‹‘»ŸåGÈm&½ËÚUÒ‰ß|=4çQõéÃ÷UÔš%}€º ÂQ+(a@£¾žM…·ŸÅ©¥Z ©pª¦„#ŠDZÂxk'øWšZ²© ('†Ñ‘oÅ’[~TP&Khk9×#Ôg¸£‹çàk·^Û¸Õ¼ÕKuàmŸ;SVêºnYä\.©‘zRJ°ó/l2H#ˆ «w_ŽÀžÑßàqƈ»™ÆD·þôïê'&·êe1Ž¥Hhæ=w<öˆ·tÔKv(-ðøñ“c³àGÄãlR.A²Ýëí©ÖM|~©y³L^Ú\d±|íc8ý³6Õú‹2æÃäi-òO½$$÷é{ ÓíA~ óÎÁá'Íý£í4Œäm.²ó¤ãÚ¸EAÄ¡£%a2̵“óÎõªSV Bøþ2äξâÒÂ䂻ѸÛ0{zßY=m’™¸+ÓIðêÍSÓ›Jåúk’ìR\3;‚eå§…˜PøÙkéÇKG§&Å[ê5#Ì–¦ß FXÝ ûQ•ù•ß§ÁÔšÉpË]”.ÅÈÝ1vS€ºŠ?Í4dœ¡÷¢üÀl§(Êõs|ÝDŽƒœnäËbéG‘+0 ×ä÷Vú‚Ð9ùRÕw…ß÷ê?ŒRHÓK6³W6~ êÓ?>Îý`ÖУؤâG÷mÖdb¤­°Ø˜¶Ñ¯ªbÖöW|¥ÙöþÑ”‘’QD6%i¤¦`ÿÀDZ¿;dÕ¯fõ0d•W”*9gW¿ã;q©VM>1úÖË+ nâÔR!ž)¯ú3Ù•á€e;"C³‚é|â»Û“ÒöÌš„×Î9Œ,çK ÷öÂ&äÔ9ß•21&y8ª•.ºù V̼¶ýØFÕø|¦”Я'Z7Ÿ­MgáJæKÜ st¤ßN\è>1+6|^yÏ¢‹½èôS{kN›þyñ¾mÙ _ñìéÏÔ1¨Sqv¤ûûOÜê³PJÇhNqyúâ$¿Ÿ\X^þ`âCþO ñìëaúœ2ÃP_òM9‰" 8¤ĺªÜæwËbÜäÖÝkíì[süf®=ˆ›ÒµY 2T˃–6§1>ÉB×ñ0!Êâtik}/¿á8Ù*>à½êC?®Ä,°</Žw˜’ɋωÙÕHì æ\÷žV·ß­ýŠ3¥²öýA³X7•ÃÕDy?çp$,/Œ6Þ ìØbl£a!¿dLy@…•Ÿ ï¥Ò ÷ØDV”×Ëð¨ö(;ÙvâìêÚ8Ïc»Š‹Ö<™¯Bó2¼»aôÌÖ¤LŠ—¨7BûeD=ïŒæÝû_öÇx×­°K*³™W½âmŽ0³™µBokQ ‘…»¯‡Á§>¡j¢®æéGÖ=“³üLÛU3¯˜†ñI É¿Šq.GsÒhqŸ¿iP%¢¾ÑtÙŸBp-Ἰw:@ ØG¾m/p3*—E5¦27c/qÒˆ¯uíè!þ#äR1'­?B ’Zk74=PifuT&&‘Ø®±µät~Ë]*h®p$¸RÐém»oð x—²×Ú`Z)½Ïêù÷;k²ì..t%×ÙEdëT›‹Ã~6ˆPøªÞxX—”Â6ÅÒgÝ„Q«Ò`q~kcÁ' @S/gé~‘ÍOOà û„¤KKhój³‘r°¦¼ž~zú\ªë‘ÊcTŒ1Ùêm¢77}bOI%ÇrJËêÏ—§Y6Þ íà _ãQ {æ­\ÿÒ“€qÜmà âmA~’þ`Fþ¡zÑÁt£È‰ªçðaSpu=¿#Òx·}’¾˜VX¶7¥0ù}Êi êï?¡JÁW\ˆ7Ý{‰ ŸÚx· ÛqÅ?îrQ„±Ê!õíÕ¸©NÌ?^§ a$¤›5 b/ëONz&F™¦à#À¯¿tÚZïñðˆµû\—´S܇…\ޤ§ï%„uTD'·:—vYbÊ„D­ÁxRÝâ>Ë»zÖ‚ëª÷…z@T_rç–¸edyg–lÅXö¶%nz£!ëzóÊ àðùû¬Gz”8±©l…Þôù,?‘ æɗީދFXw„@R¸hŸž™ÎS‡_ѱä§a>ð”ªÓñõüTè®æ^Ž^¡`v¡ްÉ\´Ø8öAŠšÝI2›ò_¾ê¥3ìZ¸ØË³kNL’Û˜RÛá'-¿Â]r¡[bŠme¦ £‘û¸ ÚÚ÷Õb’©Ÿåè Qã m¹(“¯ªÙ­šbÖETç¹rä Ü(ïæ“5y`·Ô ç"¢eªøÁ>ùóÙ5¾X"e`±ÒJqðæ û!;äà¸ðÆÁØc–À*!xu-5ÁãGP¼{Α_Êó]žFuèg”Ӽ骯ã©O@¦NW^èµ hô#šsC„ê˽s 1*†Ã‘8ÆÀæüÚð±v-™pC´\v£ºQ%Ëì2ךŸËÚª–µ˜E:¡äïCáF&µ~«ƒOdmWV°ë£[ ?–½qÉùYh-ÇlÖm D¼O4ãe %TÞêœû²äÓ\ @‘[|µa¶-x’ž‡ÛUªø"Oÿö 8æú1ó‰÷ê[CïÈZéXÆ÷…_67Ï«¾]nHMléq'>Xø¾P¼{ÙGðX¡ÄÃô"øºû£^o…N'û1J6;•<<Õ× +“| #¬*þd é øç¡äÏQ¥'Šü‘âñÓÌcÛ·æjkŠÈT"%Ú‡¾EÜ{uàüú~xš• )ðA%õæýO2øoth{š²J¯€‡’ÊcqËåÈ”éò@u±ÂA?åš%Jˇȷ_8íg´æ=¬ÚxÈú ‚_ õø¯³sW?óÖ§ÞH2kXùö*ý u˜ó¡¶ÿ+G=eƒÔ¾`Ò@üÛÐ(a E åV[?ÁÞЪÏÅGÉÖ¢rcbú*f%tà–¤A§u 0rùÜ0„FÌf¡o£.JÑ×úösŽF5ùçx8y û ©ÃÜoˆkáèƒÌdvØõBW;å¥ÇÍÓÏÂ닽Øe;Þû|IÁÅ)¹×sóiNjc¹m‚²þ§˜ÎÞ1“ö@'„jQêî´×n¶ÒZéÂô¶)ëËkŸLS-.›N.»Žrªó·5mEð*Á‘eÔQÄø‡ª@ïn&cµ -_e!Ae=†ñè§—7>´Ú¬“«‰$v² ϸæò,!ÙÁ…j÷Gμº‰ñ$Dç"3.êÎÜŒ¯ æB¥[Ç÷²îl<©ñYIrÈMzN–†'-rÎ;'`Îg˜}ÑU6p¹«wÀ’vÝu)#²>óuy^—ƒ0»?®òØ•T¿©fzKœ^ê’Ý—š´Cx‚¥ÿL›I[Â!KÁ6ž™‘×Û®E9ܺ‡^ ‰ø^'1cNÙ-‡Ž—ªúåO"Å®;% vÂuH¼i]ß9 »“EÝyq±)nРۡ»701 µ¿)–ÜP<ï ¯ œçX:}¯XNh|•ç2*¼´¦3ÔÞ²p¡ïiZV‡;ÇLpuV“T³‚‰ú®õsõ2ÅŸÚtþØÝ9è †P^™žvú°}ê_šR~›9;CßÒÝ|ªÕlö¬—½{—¸VécŠäO‹!¡Êëßò72>¶ jyê– .»¾¾!$µI™xi< øŽ´Ö屳ƸV‘Ó}ßhcŽü¶Ë ó»ü¨µ\ŒVèdæ‘>þxWÉÛ§×$ÌŠ(P”,~&ÙP}$ïý`“†ŒCfXmqœ‡DÏ2€}HIªÏgQÁ¢?oÐÏ.y6Û¼ˆêVºîÖ ê(©>$”§Qϯ`‘Ýë/w·“§ ¶Â!!"þ)†” endstream endobj 124 0 obj << /Length1 1465 /Length2 6677 /Length3 0 /Length 7659 /Filter /FlateDecode >> stream xÚvTìÛ>£»e”Òl4(ÝÝ)5Æ€Û`Œ ¥$E@)¥‘¤A:”N%U@šoúÖïýýÿç|ßÙ9Ûó\w<÷õÜ×ýœñpš)9¡aê($F, ’ªèKA 1aHÀÃc ÇxÀþ@<æ0´7…”ý» Á`1U릇Bµ}<€`1 XR,% EA ™¿QhY *ÄîÔj£0o Ê3 wqÅ`Oùk ä…òÁ22R‚¿ÃJ… zŒ+ = ñš  p&à_)xï¸b0ž²""~~~„·0 í"Ï'ôƒc\Æ0oÚæüE¨AÀ~ðM]áÞÀ&(gŒ b8†ôÆø `h öl ‰–.ÐÀ†üÃY÷AàŸW ƒÿN÷gô¯Dpäï`ŠBxBp¤ Ðî¨ë cü1‚@Òé—#ÄÃ…‡øBàG¬ÃïÂ!@u%# ËïOvÞP4Üã-ì ÷øÅPäWì%«!TP ‰ñüªOކA±· ò»­îH”2èµ3éäü‹‚“§ˆîåÓRýÓ þÁ\` ’’a^@˜?ÔUäWrÓOØo#øŒ­?$Èå tÆR€…ÀaØ@7ÄÄ }`!Aÿiø÷àP ÐæGþÉŽ…aÎì±GÃýwAXá _Ÿ¿W¶Xm9¡ÿ¸ÿn®ˆ¥‘ªŠ®šÀo›”•QþÀ !Q) ¨‹Š¥°‹gù›ÿ_Ü£†øŸµþɨ…tFeþ €½»¿høþ© Þ?Ç…øïôQXÀ¼ÿÈÞ$‚b¿ÀÿgñÿùÿiþW–ÿEöÿ]º‡Ço+ï/óÿc… àÚ±*öÁ`'B… ä»ZÀþb=˜ÜñßV- ;JH¿/î­÷‡9Â1P×?ôW°é=àH˜!Êþë™ A ÿ²ag êŽ}J¼±úm‚aGéßGª!¡(§_3'*! „ Ñ¶ñØ0ŒN'˜ÿo]E„‘( 6ˆ¥tF¡¿ú) ŠÀ¼|°·Ž…#¢@g”úo@\(‚}ÏþqÀ†`\Ѱÿ@@XÄõO„4P$†þøW¹P4;¿å„åò×þ÷{ƒùà€éIôö}·ªûïŽ+•Xü„Ö†åÆxÖ,žð M£›}NÉ Óø^gG, ”Òú:(?¯¨ñ*ΰ_m½­!ŒnL5j: >·O1þ°Ö˜¥?òbK©º›˜UÈTq=øÂ+Ø<ÜïíµVmžõü”߆þ£§a†¤æ»k%ôSÉmžp÷”·½‰ýU‡¶¬Úvµr3>Ñî×Z‹}7e}ç‡í³m ‘†}¦ñSE!öÜ{_(_‘õù¨:ÑFM‰%e(3Y›8øˆ“næ”øw,5.-|Ð?¹s™žbù¸œo¹äž&Å0¦•õVž‡å|3dì`êÖìšiæ_i(·Ïð•×â#C-®j!=êÔ‘Ms÷aòÿîmÅùwã³Ù4Ö Ú’®a{¯–gä\•f*† d)[¹’QŽ“¾ó´ X‹ÍûEþεŽün6PjßæõC¨ákåÀ næg¹…ã:'pÜ×9§·‚:ÁŸÚ†UC,Ñ-iªÖÉ%j}Â#ÉŸå¶RyyìJšEDÍÛøZ˜Ÿ}ýØÝ³Ê»°¿ƒØkdrnd"¼NÍjœ( bt˜­7ÕEˆ\;Z5¢IÔ}ÔÏA¨3¥Ç†xÃ>Tø¦0{ÿ|ŠXÀîKä¯Rõ;JmàR߽̗u{Dz^Ë_ ·ï‡EMî ÂÞÓ yÿ•޲Ö-‰ø‘ö8üòÇ쾤’žÐNuNù>æÅ;ø .(ô<ÖñíÝXÓs"ãØ•í …DÕj/˜W{zÕ³„rV¢j¡ü¼"µ] ÷áç' ôÉüb¨wKO"¬Æ@Aú§µaÝò#11·äòÂë{´´ÏX;ζƒÑ*œÞžÈˆÊ<Ñ0qØ©œÚùŒ[Å®øá¸µ~¿(çõ¡N(¿_x£Âåµú›»\é5yQø2eÌ·5øJ×ùž“HÅ„|¶«Eø°¨ïfOõˆžÆå?~YéŠì ¸cn§ãÇ>hžð³â§Z¡4…åqþz÷jW}W‹rŒ[3ùÆ»¸N“'É6vÌWOÏ ms¸!Ý–· UÜÏh*Á2VÜLŽgeuŸ†GÓžì‘Sä~ÚbÕ\wùä|NÑ) WF°wŽY̶MûrI’i2Š:ËWŒ'þq—\cÎÖÿy¯„LÕÓº¸g1ä€ð,ï8”³¿8CãÔMLeo›ó–T`šf3ë<ÌÊl?¼ŸR$y³ÍRˆy½ûf8íX~µœ‚]ü&‘F·ºÐ&X2«„<³W—æ×QĘò¹ó‰²z\9º1›“'ö Ý•±ÈQóRää ¸ÑY0ªtƒpÖ-$ÈKÌÂN§ôÖ³9Þ F«Bœ^W$hÒ¢Ëx3ÉdILJúg¦‹ôw;ú›½².-& ž‚¬Y™è—›nn˜Éëy·•TëýZna‘ÖêCåa§áªßË>E x¶µÈËš‘ìMæßt*I—:ÍúßñT/:ü5ÿW¢º[xeEÝ’k «k[ÈV¥¼·AÙ9•™ì‚M™à˜ ,µ£˜máIc„¾8S£ûÂ:/-ŽMÖ[1Þ e^kîìú’NS5pµ‰[³@”yèy±3„Ù ˜#f^@íPÈŸ®_Bì3^×›µµ—îªf– §ïb>hQ=aTkÞ½6@kžàÜ}ºaþµb"µ|ÞMÊbékûqÈ)ĵ3¶Ã°^Ì"~J8’Ý`u4Ș½ûjWóÕ;Âq%Kܵ­¦Ç]WÅ?Í\rï¸×zãè2uV+—¯Oöó»½k¤r%ŸÔŠ¿EÊ}½EqF!,%â•ÁSæéTa!³qþ²æ£ ½‘ÑL®“»¶ÿÔõq‚¯¿-÷±éÎ?'z÷8½¾5þ¶ôž„OèîÚ]Yv •0Ùƒ*uN}JÀèó½­hë'¦ %Œ¢ÉHðöÑH.bV@®²Ì¼‹F“À"ÏptQì{ðnž'"ÄÙTØbæ$µQ÷©…©÷®¹eÎ^šp¦ùµzKz¢.à­UhÞóFç™ÚæÑ ºÞÈã@öÃz‹F¡ãr‰†{ª#8«ºT¦ž=Vï=µWŽH™bì¡óFÏdwpÜR¿¬”,ÈNœ‡Ësòb)7l$de,Í>Ýâp³\¸l÷p-¼j³÷¬JRVšÂž¶ ÇÆòTðžmîpæÄmU¹q ô,÷ôÚdN¥=¾¶Q–f;ÚLap\Ä<ë§{äId~öã,ø:ø\ËÖÚéåF6¨¶Õ²îd®Í­X¼÷ðFsC< ÿ׿–¬¿}ú J*R\ŠŽïä ŠÍ-±c³sË{¯Îï>'¸ª´R,9iì-‘8-ݤ¬ÒjNœÂ•§ ¸¾Q…U©™ÛŽdW•kS>QØ}þ®Ó8†ªÐîbß'ZwöÓKX-ˆD Žd˜JÞ†+XÆ9ŠG΄`~ÂrÚ.ñqÇg®êuGÀ¡[7Su¬‡BD£,~dQ o‰'F ï6Ùñ ñ޲UÓ¨NïY+TïÜ—ºŸhÞ¿öŠ”ŸLõŽá xÀÍö$v‘$P»…æ8-oŽàë#y¶o´ªÌ¹ †öW{˜QTþи´dݸ[в¸Ãz6œÃyâϬ ÑyŒ´&ò´íBÏ⧸‚SIoß^¾k Æ[›)x˜æp¨UTDÕ #]Y÷ß w›OΩ ø‰ÑÌåf¬ò[Rp±5ÈzгŒå¬âr\¦ðÃÓ ÊâD©‡é¿ÂÁYr#º•õ>>Ï(n<óöˆõD”å“é 2tWx§<x¿u€%-¸Ì¾ûÍ>ãBrÃ¥ûï+õ+¹"ÍŸsÎj…#vÂ)ì‚úEÌDyê%ÇPÆ÷!ïyéwÄÃ+sQdéið' Ó_T¥ÞöÑ«ž7TüàZ{}8Û†R;Ó3ûOí¶ßÚÖH‰rE½jÞ ð—¢]«7Q£o’¨|žf35ºgÖ/«€zåEZMiaCqÙO÷m=×+·ˆÁp§sçÎõÚJmGÏÐ’± ïk©‡jŽ8ÝëÖ´ṙòY'„™ûݓٴÇϹèš\M¨•ª·åE»æ "‰ &<(8½æy)>¨~5ˆŠ>ôq?Ä·aŸíÉá*%Å)tÐo9é—FP6Ù«¬½œV¾³,Wî²¥c@9…4sìpD§ò:h¼úÄ$#Ýcü| $LèFXôÍ™¡[ýÓáÔùd„>¬,‚ñÕdèP™OSœö7?ÕF°Ì~¯Ž…”îÕ5ÞÚ­îš›Òèî{ Û*"ñô=öDÊ¿|Xá !m¾vétqÖtüv½Î'¸îlÙÜ eúÖ¾\;ª8 øZ×Ze+Üñ+ù"åpR2#_1—Ï%ìùæÜ"á&ÿJAw ÁÕØ‡wîY×ÔƒÉ_§ÙJÕe¬ 7\¤­·’ËQJÆmACop9¼ÂGé94h-®>ÒP‰c‚v/j%wð:S]«!S(,§}‘ ´Ò!dQ±¦}ÀSöØ›–ÏóãÈÏyÿý£+MUãO®÷uÏpcã£g©–KKê‚_g듟ötz-óø“ÓÔZ,úl¼×Åm3ÍÈK‘‚ä IÖ>0õ^Æ:Ê-£Ž?$Ò7”@²c!—€u´¡•W]=M‡3 ]¬(ÇHÒí¡ån,G-YJæÞš•® —Ú×KßÈÉ‹i…0 ÅÑ;_¨® ¥{÷Ÿ.w4\ŒµZíf0´IMØ™¢{¾é9´L[ N÷¡p‹ž“ÎêÛF•\~># W1Ù/ðtœkí½²é Š9éf/<7½©m¼§âs“øBD5«Ö2œûC˜„GçóNÁÕ'‹ ò™/óÖ×IÓ| ¬F”gƉ´Eɦ/À9µ/€sò{èÍÈ£¬ô¸øÛê£74&‹¿Ýºha“­ê.}îD·Mo=‚ Özwh;TòÜßKdƒL}Þè /ÒçvôLûèYÇÌñÄÕ—Rª©¾µR}«çó5+†¤×½£‚ÅùÏ»èû#:L‹nI7õy¦½ðz§‹à„ËtÉ(]àËßšTq´!”)ºŒEÞävï.ÓÌ{HØHZò盺AåI[™à°Ùicum¹öö`(ÃM‹7G‡"#&ö±žÕkÁ÷U©²/¸1BÒ YˆÝ¿J_*­“ënŸô;÷îî0^Jg‹ ·VÎÏ9ßà÷-v*aOžomW'ˆŸÎØÞ¿»³ßâ0 X›ðm;Ž¿”¾ÍÂÊ™¹ÿ9 ßbÔtwYzòmVNd`I• å„Ã}ÓÛŽß>ñd³Zä¡ë¬Íý7⦵«~8ámÂê:®% Ie…:öîê+˜íÍ"¼óXûÒí‘ òi¥ækíšEí»¦÷(¾)»Ô«¾G4¦Uxg²}üxÏÐO}v…†ˆãäž”Ôr¢U”‘Þ.,G÷÷³‡\ÆŽGU¥ej3w«†Ë!$?§£—Y¨«°ÿq®GžÏЍ‹§&oîFɽ•|‰zSò’áûÉ‹ ò 6çñ!ûÔd«­v¥f)x¥€Þ¬&Æo‡8ßþp‚ˆ7äÄ#ìG×Ì;H¨òó ;hŠ2H $è‰ãÈ4PgÉÓ HT’ xÕ­hņž’Ïõ-±Ù7âBÍk]¥Iµt#Œ&Ïò]ù6ïé—ÌÒ¯”éÈ“€j1Eö+düÅD²ïHbõ¶sž®„¤¯Yë7™õüLÜâàZ 3úØL¡R™ž£Õ xºŽbùI ÎÁ[æÖÓ {‚ýe²cv&d^,~‚&×:^gÐaq¦B| `%)œ;Ëx– ¤“…$)͆{]p¿R>ÞÐp*Ø$ÆÎ¬¤½AÇ#N|gv4´Äcl’Æ^t`ç±E­[Y““žAg+û*NÜšÉ,VÊÒÁÙÙ¼@2"W€¸V&“ýáÜçü Zat-­`ÅfD Ø‰k›uXÃd(êZ(òÉb+‚Ïò›ïlkª ïïû´@[êm¤Nö‚Lƒnx;M|?m¹C£P˜4Là ^û÷Œ¬=Æ ·îÑÁYÍï?,06ñ?wß~×hÓŽtö`Ú^kÙRÊüî|à,‘PU¡ä.•|»ìá’Ür‘VÇ/¾'’ÏOó„u…[o‘¥¼è±ìÄMXZÂM ŠÇ‡­OzHA ŸÏ+bÈxYvýÄbl¾dÚXæ¬(õ¶fÝÏr´}½“œêµ9# nåK"ɹxëÔ,‰/,¥Þ讲.²ˆžÒ–pÊZg„ekt¾‰=eŽôЍHƾ„ãaʲж£ß3²¬hÓ̃÷ž0 ¦b¿-ßIÃmy( UþÞpË9ˆ´0™kt£ÊZÿ=šØ¸: ™[bÜœ ž'T$[ÿ’É`?šÿééFdžÅ‘ÚóCw·õ‘­Ï¤;ç#–OÅnG"¢ñ¡/W&ªU<ùÃÕ®žŽ°š-Ý ÖWõ|•aÊj*iÍóílT“JyÞq+û(–›=cCäLY-jd-”1f»›õ¾@¬sBdúE|z²l'Ggþüµ]õ=’%1Ç=efEî2=§ºmniÞ-ïÔ‡†ýÐ"««}YÑ´ú7¿{Qá}r˜Ì(1·ò­îx¯YGð–ÁÁ¤&PH*/•ì[•_öÚ¿Y_QªHfHEºzVŵêO­©) Êïkja `N$Ö-†§O¢þ`,<[fôaà.')gS-ñ–“±õd hjüRL—Y*iÃ%ûYOuÆ»-c|#é7ì6Çû»3iaÎ ×ü7À°;WÒ´ùÈ"§ÞdblÞ.œl«F½µ{ÕÖÞ·yÀCY©Ò¢î¸÷ÃCÏèZ`‚0{ãÀrþ¾ÖìkœJég_Òr¡éáE\ž™œBƒð1eSóGø š¥³V mžÚ!&€…¾*„g‹6“XTIŸÕƒ H7é\n~-¿‰‘•n£²¡ýÝM |eê.#çu Ã~ k( UIâö]ÿÁY¼$|ÜÏ@Šoœ¤A>+É¿ŸzªgÍgtÀÓ®«E1“ËÇoôŽøŠ#¥àuH™ç«Žú)AMÎyja1ŠÎúy‹.äùÂlNœÝµ‘ÔŒ%/Ñ$ËkTSÌÞèFq ¦x¡N3Ú>J{ÿ§¸‹Wƒê\ä k­ÉAÃ8IwÌæKÌ ½a÷øÙGQot:?Ìñº;T†¾©G„âUʯD‚º¯{,%>^“Цñ(W`ßŸŽ´MÀ%¸Ö]óãf\ øÇÛ!-a½LƒØ›= êq5óêÎ&×÷³Æyï–z ß]Ý5{ÃåÊE¡ bÅ+‹g;9± Á}ú9–k`·Â-y el{î-ôäÃö‰óm£ ÷C«p{¥»žc†Rš\yÄ­£›'åWº D­ám ³÷Q)\›9ƒ²Ÿ—;¤D}G_ø„2§ˆiÞ'þ¶i½;÷B¤À€mÁÜX£±" ©mS<8¸{Ð5ø¥õ)˵æ8ú.Ϻ(¹Ü®} Yì%Ý>Ϋٞ4!|zý‚ÑNL’³À›€]LÐa’‹ßlRÏçL6“ó…ñ)±x)´5î…½–Pö˜Ö‡°–¡ïôR‰^0ˆR¿jjヽ|ó•=ò¯RvO¥ß+ÎB3÷%„ˆïw”Š?Bå:‡ð—ô*‰Ä¦ß¬ Üj°œ*ºh¢4lô3Dhɽ¦ÓHÖ´£5 ¶p²_·%:'¥»íº'Ùoιk2=[ÕF.ð†æÇì}ƒFŠ.î8v2‚žqóº²J›«ˆ-ßT!uF69»Qh9ļî~¸9yŸƒŽf§¬×#ဎ!Ç3$MNPÖ¡chÛ]|t9RÄþé!~ýgä'aª`d­Ð-ð–~„™®Õ^ë’ÙÅÃ0«OP¼žÏáá­§ÒŒ÷º-é7=+ŒêŒÝã]÷וéÜä´)L·'ÒI½V ÓŽ;x͘¨*ÓŸÉ®úÉwÝ`l­ÖÑ)+…‡Ãü‰ê5ò{ªB•2Üî?{7jÞî°4_} ÷Œ*¯òäP­ŒErÑ^~×ÝðÝ„~¤—ɾ¨1rÏOòø«=ëS#ÚdŽ’Õ c2õ½ÚŠ1ŠÌÄq¾brcñãéfŽªÛ7Åg> stream xÚ÷P\ÛÖ ãîœÆÝÝÝ]ƒ{ã4îÜ‚w‡ww‡à®B‚ûãœ+9÷ûÿª÷ª«è=¦¹æ\»¡$UQg5w0J9€\Y™XøâŠj<v&6JJ kW;࿤”Z@gkß?ôâÎ@×w™„‰ë»™¢ çf`e°rñ±ró±°ØXXxÿcèàÌ0q·6(2ä@@JqG/gkK+×÷,ÿyИÑXyy¹þvˆÚ­ÍL@EW+ ý{F3;€ºƒ™5ÐÕëBÐX¹º:ò13{xx0™Ø»098[ Ñ2<¬]­j@ ³;Ðð]€’‰=ðobL” +k—‰Õ,\=Lœ€wµäòîà2:ÞsÔeÊŽ@пŒþeÀøwk¬L¬ÿ ÷oï¿Yƒþv613s°w4yYƒ,Öv@€²”“«§+Àdþ—¡‰‹Ã»¿‰»‰µ‰é»Áß…›¤DU&ïüþÍÎÅÌÙÚÑÕ…ÉÅÚî/†Ì…yo²$È\ÜÁÞruAø«> kg Ù{×½˜ÿ>V[ƒÈç_ÏÖ s‹¿(˜»92k‚¬Ü€²ÿ¶x!ü‘Y]œ,,,ܼ¬ èifÅüWp /GàßÊ¿Åïõûù8:8,Þ)ý¬-€ï_>.&î@€«³ÐÏ矊ÿE¬¬sk3W€)ÐÒ„ð'ú»hñ/ü~òÎÖž=–÷Ác°üõùï“Áûl™;€ì¼þ˜ÿ}¸Ì¢*ÊRR’ôþ¯JLÌÁàÃÈÎ`dãd°²p³¸ßüþ7Êùÿ‡ûßRëׯò'¢,ÈÂÀû/ ï½û ÷ÏͿׅð¿”Þç ù3öú,œ,fïXÿ?ÿß.ÿÿfþ¯(ÿ/cÿë‘r³³û[Kó—úÿGkbomçõoýû»¹¾o„¢Ãû^€þ¯éGà¿–Xhnífÿµ²®&ï›! ²´ûo­]¤¬=æ*Ö®fVÿ ÿœÁ{x;kPÅÁÅú¯kÀÈÊÂòtï»ffû~•¸¼ŸÔß*àû*ýoJI™ƒù_;ÇÆÉ0qv6ñBx?øwÄ ða}_Ns çßs `f9¸¾»Þéù,œþ:O.Î÷QúKô/Ä `ÿƒxÌ’ÿEï£Ä,õ±˜¥ÿ ÷(ò€Yáz©ø_ÄóEåb0«ýAìfõ?ˆÀ¬ñ½gÐü/â}iòñ˜Mÿ ÷ªÍþ‹8Þ£¼_Lö¬ÿê2³ù?à;àá{™ÿuÄ Þ‹´øcð^¤…µ;ðúw‰å?à{F«?ùßë¶òr´z¿UÿX¼Ë¬ÿßÉØþ¾³±û|§cÿ²¾ÿ'ç»+è}Nþ¡gãð'û»³Ãÿ¨ß¹8þQ¿s|€ì€s°þ[êü?}àxïŒãûº:ü£w¬ï\ÿ߉¹ü¾{üñŸ`fW‡¨ß‹wû|çíþø^ºÇÈöîíùø^£×ŸÒÞ]½ÎÿŠý?ëaææüNÄõïëë}wþƒÿ~?ž@3„•%3þ›†Žû:Qƃ)ÁyʃŸi}Vœ;ÝQ`Sik³?m9ߊ¦Žö¡­ïIÒ܈¬’¼øühm‚ oKVmò}6JT›=hGø>ƒ34]ôC´qžQCäÐ÷ÅÉW+Ȳ¼[Ž2ÏÉE¥óÞc@Ú³q°bm"lé@õ°–Kñ¹bŽ1V3F?¨t2ß4g— Æ•‘ŽãÒuáævãËô‰\"=‚ßY,{±î6[Üâ÷F•›Kž..ä ÆÄ,•ØqšÜ‡eŸ²â-ç‰ôEœÎÉûV»cï%µ{ç“߆T”Ó|4x¸ÌX²Ñ1[m2Iö¥¤I09—ër[ž²¿¹[M]”“¬ß”í¸PŒ®,g?wºpñ¦ö©¤æ¤7µTû¹bx61ôȺËE±è€åžUÀüFx\?÷¯øF’}”#³ëlÇ/Ï7A㙨¬2ú”ò¦Að{x2Vý^–ÚÅt“ ½pÙ? ÆW¥Ò1GÉL»¥¦Zt²ôæ¦^¬Nkh¯ŸŒVÃ*±dÚPÕ" —FmÏ+•¡Ç…–^f+šÏ¬îƒð‘Lv'Yø¥Rl;?µéÕ*œ4 f¬njO²é°ù6²¡õEuËeÛu‚5¾ ð6Å%¯y`s'XŠÖŽÏø­–}_!™HÑý²ŒRZé²kyðÃ\I'³¿ñLäYÖ¤4Z‚2;Ïj‚5 †Ñ@Vú“Ù~§÷þB`ÉÄo¶åIüÄÕB? ÊëÑry¿È<•'6ÎV#BöŠ¥I'á–Bàð¢µ?” rëµ®™å½Êný©{"o½Ôx–÷#6%Ú§Š{ô ïK„r:ó¼éEp-^x×÷§ÓS-øÊ yäÝ$ÃÖ–0ž…ðvZÅêžÐ˜°=8û-¨Ø2þ‰£´DÂ$Ôj?esV]õ)¬#b{•`‹IŽº…6Z¢Ï~Š‘Y*%£Ç–l3 v¬–±»R7S'™(?7 ‘ÓµÀšý~Çø|+ÐCÇ&ä´–SÖ©š\ä„ÄÐŽÂÐí" ¤8»ÝdåLúÉ ¾íߊ {¬› AX¾š:}^‚ZĨ*Ñ;k/ Á>ÕtVB wö€ÑUغ[†©…6M¯¶B ýâ˜ë%ñPfÚÝÓÇ1ÃLªàŽÕ£ã¸¯kc;¾EêDQÉ’FÁ$Ëè¾äÞÉ×>9ë{Üäw$¸Q^5dJ!"¶A îƒ%c¥.䌄‰‡Yt~¦d\^kînTêØR…„˜Bu¹h wnzÆÝ¾ð.<ÜO–˜ ýLƒy ô«=åÃ…“œ– íº±ÄAD¿ê]=&2½e! ©sÒP7P€ÑìBÀȺŸ­‚™PœL¾QŒK u¨$ùâ©ÐÖ9çï6JlÜn4;»z„ ŽÅ;Ã4Z!2ßLœI=Ììp>”+KA W°®Ã …QÜ5(»*Ä–¹‚Dû#ï¹­¼æCwqÓ ¿w´g WwI€}r(¬ö­”VTÊ­¸¤²§\Ø#‚”}Iˆ-žöh'd>áâLx4Ï·àa¢èÕ“4Ÿ=7Ø~äèP³Bºþ²q ðªéÁÖ0˜VÕ«ïݺHÑÀ,#z¡ÍQ‹]Þ¯]ZϦ×ùð<Okæ 6¸¤'ZmŸ÷ 7ÎQºî º @­’¹0(a]ˆóƒÒE0îokvM˜þ'C+uzœÎ á~Np—îö6âK•¦Š|–¹;ç½ýá·ðZÊ?°¬§’W+P‰«É}g½ìï9&Æe#Z„JÝz~|D‰í¬ìüëèÒ¢MËåÄ¢ˆJ}ù’?¿ºEÆ:<ÄpÕæâ9úUV½0*k ûCëÌð܆û€=[rÌ] &#ƒª@ÃðBþ–±ÀV8æ×èÏÌù$¦~sÚÅG81«pôUÇñnšðˆt •Ç;|öÉÅüD”.ŸêIŠwGy´³&é©8nm2°÷ñ¾Ý*v°Ök8ºÇJ„¦'` À’Äd®!_{R|þzNoaw½ï™”ˆ—ÈÝ[+¸‹ÇªÎ%DpéŒý¨Hî àØÞb1xCN/œÔÎ/Ù_'Á<í…gà €j3ryãt“¨2|¤ÞÛ‚±:áÜÃö>Þ”B#ÕuÐ`~€ë|˜O^Q•t³ ôì;¦±'ƒC¤1uvÒqÂs7˜ª”!²^Ã-räÎK.¨æ«WZQÅ6ï8[\ÔIýôSÕ–Æ{¦Ïè.@½ydüŽÇ$Yëa„’ÚaÕL“-Ž´ê¬Ô–ÈŠSU8þ*¿‚ö0*Õ’J.Ÿâ‚¤ =paœa{xÍFÝ›jŒõLÊif‚nä”nmT;“..ÞºÂ.ü·º…R fº“.!|-5¤Èð¶9Ô=ÈŽ¨Åç…L~@âºüm0~‰ÃuMC'õoæ›¶‡Pɮ׈[$]—Ps ¼‹¹XÔ¬n¬\´WŸƒˆ_iÞ§ †„ãí<ÿŠó¦j¿G¡¶wET‹“ ±+ÇÏ\~牧ØéÓ¾z$µÚ£`.J _ר«¸‘_²#î^à ÚK¦T¢à¯Ý8"~:Ý/í±!›½yQhÒ1À;ɸe QŠ3ÀôÕç…‡ÓsÔ÷£éÄÛEíëÏD †“ ä]ç#É«•šŽlÆg¦4f°Ç©l´Î=C;TßÞuaKW²»šÜ8L(|ÔÝ]ü‚sfä*—S‰í4œÑ +w›Ÿbë6"æÕ@N_QWÎ*s¦`òÃtL!r™‘ù+øæ`ñ£)I­j,ú²6~ÜÑ*íÀµ:ƒJ?a=æ–‡ï”Á'¢¡AðRU2˜MïcD›Ä ÷z;oï-µ\àfîÝÌÁ9ëõ4«M:ß,ˆþZº€aypš!û3ÀÎ啽c㓔웆Ìv¼ a¨qØm¦{vWêòAÊy&“C/pù°øÈj/E±i§º›­—;gýš„7ÂRé:5þèÝÖXˆª/2ÕRYÛHÏ|s›®»-Õ|ÇŠ\^‡ýò•Þ÷½ä+ß)¢lLÎý­ ^¹o#±­Ä#7‹Kó,Õ(‹{_,ïãõ!z€vº}N:TE›¡A¥å­Ò–ɲ2i1°’Èu(W‰ƒZ9oÍ|4ápãú{E:$°.Ýy-ÛiýJ­ÂÛŠ_FΑO¨ëÆŒ¾1fjPAÙ‹ë»;îÝWp~«Í0Z“EFcrUÿÐÏQ3ë*ò|\ì–Yph¬³µ€3Ò>&ú¶x*pکꉯ‘žøYÄ=ÍPeß±'YzÚÂÅ+”:ÿ\Æ-†/š¾ˆÛ œ½®öÙ›©É‹ÖšW*dpT¹ÕHÞ´›ú‚ha™Ë/ûÚ¹Õ›*\@–±&6¿4/á5Ó€¤p¦(„ ¹Á0ÈaV²Ôë{‚€ï—ˆ} øxT‡õmÒÛTþ‚íù¢#êÉðàÂð㔦¨w§ª?›üBRn‚™\­É&ks¥i$!…º)K…mîÛ–Jÿ~¡™†¶)•Ñä¨VmÑo2¿c ,ãE…#W¶eªœf™¡Ñšq’6Ù…—ã‡2ý»a¡—01‹\êrâÕü´²¹é“žP¯‚ܧáxöÃ7lwÖË‘Žtã~;÷órëþö ÆÎn:É50K+ùAºdã_+ìG……fª]ô¹ÅiÙZ2šý$¦g¢ýËTüÓ.×b‰ä5wA£ø=Ÿ|âÂidrýÎÆ¿”9”’e+œôTÛ!å-dØärPYÊ׳µéÍýÁµ`V¯ÝÆ›0•XAâvÐç‡Uõ¹N¬R½ªy¬PÛƒíÑ©¼ú©?OEú:²ŽH Vh#¿ÆdJAÍ4¾P¶ÔÓ YÈyGNì#f5Q§66ÀA\6#«šØ&ãÃLB:p†ƒ .t0P–Ât[ò¯_t ƒçg-CÍûá5yç™÷|ó¯çµ¦;5Œ0p6¨ð)Œ²ªpBY3ž¼1§¤—¥w<‡‘˜!"ɾ•ÔJÝÝ8@—5 0Ð%ÆÖ~ø~‹ºB¾¬óËa™oË„*ÁF|7h¤v°Øí÷F¾Ó¸¢nÜ­/zuÉ|›íöèa"é›Û ·# ôût•P‰¸ó’Û ójó=<,;§”š¨fuÀˆËDl…UÆk£Xì0ô½Ê¬6uúvÐó‘†äÒº7ʱûAi¢Åm7õ;ò-±ÆÅ \‚`x—!@+ãókELÌ¥a’EÂþÔùÒYÚ£ˆžË’-XÀ‡­\û¥sºrÅ4HGNŸÌ~ÿàÂÛ‡5¿š 6åë+tö$t„ܳüÅJ’/MW¨ËCs©0Â1JacÔÕ)]…¾ÉT«WýlªwÙ*wÈSšŠ{ÉMGFE 85•S…qKEñËGúá¢$^ØØ®íKmp ?•¯{˜" nì}O®þm.Šº:œd!Š‚Ã¥í1ÓKÄÀ¬R.A,•ˆ18Úœzf ï °pü¦)íW]ØÈìt4Nú·T³ì¬€ ëÎ\ÄaÒuxxWçÝÍk¤7MîTÿSd†ñE& :L{ÅœMšxT:+øhfÙ–,FN–©ë“s¸ „YúG§®;×@a=Yk'óùB‹[´Ì¦¦ulÖ¡`z‘Šý`c¿’9½í@+üÙ¼|ò ý³K› =͸duê+}˜bò¹åµCeü“ÏZ2Ý¥D5ÃTc—æé>ÆŠÊPo8A‰ LŠßDãF‚>¼žíOãàãÏËmÈ\&TÓÑpN,\_ÝɤpTx~úb%ÑCzû+u­Ñ ŠD*â ßyX\ÃÞ q>í¼†ÇpmUˆ®fÊÊESÇû0ŠÚ5PXñÿ´'¯Vm!æ$17gÁwc§¯ Y7 ª¸ÑG™^ðeí0à?Dý¶“‡¬A\×6ë×½ÔqzåCwðå)¬²á(ç 2I×ÖЀìxbL†=ã§ÈÄüÚX¼Ëœ^7XG$|Œa¼øŠiÚgúBëÀö¬úјûÊUº›ßvΗ˜šË˜ »¬”‰¯‚£F¹p~‘+­ët¬Q컼å£Îœs—µÉê^_õM5Gõ ϬUº†t{T¸¼ãšÕóædނޭ£·:‹X®=k|4nðæÉ§FÖbVTÇk…nr%{â¿KZ¸ì/sºÎã1õã H¿u×Ýu¼^wÀ«¿aã)ÛUED ˜É*ÔbÎlÐ~·ÚزˆrãÛýDãöa^ Aœ!LM†e¯«,õ÷ÚT_G“©ß²ÅÊ{„»/<ˆòËnέ~ éLJJ—ù-¬Á¯œ™Ì)¤MSa'3º")î¿d3ÁT.ôÚYø"ŸïfìˆQä€Ñ@gc@wWë5Vw r íëׇ€‹¼Fn±qŒ’ý”"/ڔϮVx“¤;±/'\÷@,Ø0c­³bø"@nÑîIùJO¼¥ÀÉ‘—êõtÒ­K—~¥îÒJ?{mSAÙ94²³ô´|ÜïìtðE®.'¨;¡áSjoÐ>ÊØÞìÌYzMñ: ººoê µ 6)·Þí’.U “˜»\H׈ušãûä'"sž•‰žb2×ÏйóA‰?úµ„­Ô8½B„72ÜóZt_E¨›.è{ì½>sî‹ó9æÎa^žÀ9µk{M"°mÃå¿úãQ‰L6)¹òÇä½Þ BNÕ!^ƯÞ8üèíÖ¡¯ZË Š’êt õ`nöV³ x0ðfȵëçeï£jB4ŒCªÄŠ}óz j©ÒGÈor§/t×>Ålûá&Îö)[“‡rãÿåß28#ÉEðžŒÆñ@µ£ô6LMµç¤T݉Õ3r¢„áè„Õb4BOúS—'Éd*z€í—Ïmœ’ÏeÔHÏÞqRöéÕ‘—ëöý>ÓŸ¬2Xt£?Ó ×b¼¸g»*÷àóåÛÎàâeq8à]öª¼ù/ U×±ãß¾ÛhÜxg1n¼ö’ÉŒŠ#µ¸lV».•ä*\Fž¢ßØóÈÎËd6 *¦×Vº ÓšR8éÑÖ9ÌÆs³å"rÞ¶,k3I ‡Çqu|@;R¬}~t;âð·â6±‘~+÷_J +/\̨{1åùîË}Òp|j„™Š1.ú{ø+›‹È¹ówÛ8* ÐÁÂT8¨z¥Ûø +zºÃ\^BÉ"4¤v?€‹e(ƒ¼Š+ù¦‘ƒw«fbþõfrcO[ºFYóM½V+˜·<—:“J*†üRszGD+溳×ê¨D»éZš9¦]19vÛ æCdº{sj$Ê™ÚN™h^#ñÅÛ§V6}1œ–»Ât¤¨h~Ùå‹`‹F÷spÁ)Äv> ¾ à°ŸE´å«ß5T|ÉÝÁé—@G®wU0–´lžÕÕÌ0’ $èŸ=3Âò 6—ï¡$Fò}tñ«÷€Ÿ/A׸:Yö-‘+8òª@ ÜBYãcð´½ëñ×`¹VF)ÉûüÒè©`f1ÿƒWņšÛ¤ìóm&»(2íé »k­Õc@[ì/í·}ìÑFè•mïÔÈ—š”Iøoê[?;ÔlUÌ£Œ¹¼má^ £_Tòž2“Jø±›ª{S‡õ)ÎyÌ)Á?cªÐ¿tA´ç9> 5R|hÌÊ >@·²Ò6B¶aЏ,rzzœu%•§´†&åð‘¤êoÞ”D+ýæ´¸¾­;&'äm5v¨|z-@ø9­Á i‰´+ø‰$ß h}ö\µN™àåžkÜ®ù‰¼¹d¯òY32ÙCý.®oŠ:žêë"jvtçpãâ¬DXÖÁĽ٩d¯4R³‚¦îƒ‘S‚‡ »-må¡_H¹o ôñš¹10Ôšxã¥ô0Øl\m›gyL(-f}Z·º´Ö¸èÖåõ_Ø¿¾>)†¾‰ë1“ê7Ñê„Þ0Bh‰0ü´Ó ê²pw™ Bábü|ˆÒ×Z­éYŽ:’Ä1'&q´ò¨çàl*}8Öѧ6Å‘~ÑÑYÔݲ«ÊXwPaŠÔ©P—v½m¬Ý /ÄUB9ÁŸ %·)ÑŒÛ=¸§¼$NÝ5 ‰£™ux€”ƒ½Ï«Sz<§s^KÐé|9®Ãé oyv¬ƒÝü0ú[^kì[×ÛÍмž´Ó¬ñ3˪¦—¹ÓÆj¼ô2»$9ÞÍ*MÒwqQ;:2¹áÃQwùû@±—ÏýP5’S®Ð0Ée÷_ðß¿dM´¯ø›xkË«…m²\›oOó†ÓEN©DKƒ,]=Å;ÿ°‘›(%0y¥¿»§t+sçêA©¿¦0ë5JÎÞV¹êW™Jæô,™ÁBMêš’jÛ –#cÞdVª„sVpÂ'ñõÌ='|„ÑW¨B ŇøáÙe¬œv`c„³Ím‹s-S“æCy<`PNûéÃ*Æqž·[-/ÁÆæ™–ÿå‚=—ÅnšÄ`Á/èõ^ Ï<8‰“ †¦¸Å´¢"çóŠ¥ gÌ9 ø0È“ opp[MÁÈŸ8:®·z ¿ÆøZé¯Èì7]y¥¤–¹ld®¹v¦¿6ÃøÀL2q•¼Vû…ÌP³)áÙãAŸéÑâbu<ôØq¦KøšÜòæÚìu¹â1êIÒ¸YåìÖæe„o¢ð4#”3ªÕ’ûÖnTº+~Wä¬Ú‘ÒR,q2_£2?y0bÈ®ó—GPHýÕ·ÓC•¯à„È[¶Aã~n‡¯­™‰EaY`Wb™%Ê@T6-äÁQåk{c67B“E¯Š´=-g¼z—žýYª`}Ñ !9Ù·\¼9¯®`%üö{Ld"n9WvC5éÑ[¸ØH?¸±ä˜C/ør¡\¶rÅ,ÑC-Hœ´îuÜ©/†ºÎ½8|„ã‘ÄÂv#,‹ó×ÎÕcÏÒŠEéØ_†0Ûq '^ñpU$Û4#<Ýo'¯°åµšâ[ó°e‘~`§t%µ¼{úÓ±g‚æË:ÔpCÅb¤Ž(íj4¹ó£ì¥ájÚ)òå~…œ)‚ØÐF"üãeΞڙßnŽý8eo°º,E–_¾è åÑýœÏ»°E—ÐH»³B”Û=ò(ìq»Ô^:Û,ÏxYqȬz4÷›‰í¸e_:¶‹»†hå?C­ê‚NrG­9)ûT.?0Xêa(ìQß§‡bâ…eÒ.4Ìõc_¡Ñ ä²KŸU·ÞìíŽ~Ï4'­)ñœ51_ ëÛX¨@“jSü}8-g¹orµ ‰xvJ—¯,sGl†ÉNó}íIAP—Úå»ÏN0Ú䫵ž´¦/u+Vikþ7eR%5Žâ»k6©ß &~€n¤Ф!°rP3v¡eÍÎÁíKË&©qÆø™TÅpŠ>ô"ÁVxú†zΛŠ[[ü¯W{ +@V uÏ cЂÅ‘Y Üc[Öš3‹ÑLRâ^#vü°3C ÛkNT}`vw¶Zú åÑ5ë¦ÛpämŸê”…ÂXbINl&~'(P04”rMCZ“.»iPâR §½ð.½iXÆŠâbÔ_î@Jo:Az|qJ4˜~AȸÉsX:ýQ[9‘­/ÿ«ËHQmF4“YùÄ-ÿ«mpDeªà°b'Áåæ _R_î1FÄh„TŒmHŽpÞ%dR*ÉIœ¹ëæµ²2#4çï¦ò˜‘ßÜSÙG.µ¿„³wk/U_ÖLØÖk W0P‘zÿ’½+\h@#ºòÆJ“'±Ô·NFçÔo9½d£Y£®óO „ÕÁ¶Â m@Âáa¯øx>-aUó>»<×]ž`y¥5]Æ"Œ“f0 Ö×u-›Ì]~Ì ½ìêi'›KZÀºðRÔtgÞõCb_à›Û·ß öÇà}¨Ü¼š,ûD[ÀûK8µ ÜœT¹³“HÓRgµ¼^<÷;®ô¯ƒ{zΧ*³XL-»ük×!g14&þå¢j“Ú¬]ŒQÃòß•Ä5ïÿ?•Îr%?ª8¼þŽôÎ mÐ4'H®»âèŸÆdÊ€ùüQ'é\B§ £GpíDªañËMKÄ{%»A@Í™t’^©åðËpEnă‚\œIàÆáW‹Ë[¤6=ÓœiþÑ0ÔÚ¶U†9ü¤OCšï”0׋Žá4¹d8,ü“V\hžÏ:ô™íÛÒ…]ršQ⮩J~z‡Ý…¦ÙO¯S¢ò«;pC¡Ã}…B¥POÑ$èìzÍBôI)E^»4AU -à8ˆhƒ¯ˆ]çÛ¨º|´œO²‰éÑ©;ò=uv¹•#a.7;#R© µG¤¼IܧÞÝ‘².o\ýí÷Ž+DS1Æ•ÆÊKîÐ4rÉÝ2ku-“Ò±¨Fµn¯CÖ(ãá˜Ìp‹Û}¤e“!_jÑ©]+Ѧl¿®ôƒ¯!­ÍòŸ9¢„íÒ:R©¿äð“>Y±CŽÅn÷VI¸ãS˜ÍRù"— ªÀÊzço]§1<œú¦¿Ê!`, ô‡g[ËgXÅ äòî€pÚœ›ÝŠžø+µ4g7b>¯Oèsêv†$ŽÊ©ZfîÊZÊû %^Є¢lŒ¨KðJæJ„Žv]ƒË öÑB:üeÉlÂÏc:?zÃ2Ì=¯»ýªQ|Š$loãB¯—ÿ>U,èSS}áµ<Á³©‰†@Œ|@Ñå¾fû,8wÙo™¼Ç…µÝއt8Ÿ¾¡ ß,yœDðþç›ì£ª?ý*† ¥²ž±{×HÖöeÒ¾ÁX(£ÁñÉ—§ÉuÀÒ;õ]υׄ;’oøªbïkl^*Ÿµ„ht§ò¦T¸+Áä3KµÖÏ:ѺNÓª?ŸÅQ‡=¹Mg˜Š°çèËäÕé] Mpõ Ô)ÂÓ¶íW¬ö øìÔøÝ‚àE’KIÝAQˆ'Œ~¸"þI~‹Ø–¶–gB<ñÃ*c™Ùø„»Çà¼åG¸N-ÇÜ[6îÎ}µªü+v–¤`žè†KƒƒÑ]<ù½}½mÏ,÷†â”\=jt ìÚÉ0ªÑ+ë^”P°s4YÎÕjüíš)V¼ ¬"X~H­ìÁív·K ØU¸–¾sÀè—mïN°þMñ:<]l–=Î>3GÉúòðñc¿_I9+³t€ON(ðê{?枈8½ªBØ™V·ìŒð»‡Æ»KÐÆ„òOMœ«½[`nüÖш‰™Á¼}Äãåÿ:¡ï1ҙ˱ãJm.çÌ÷³7Jé‚CïL˜îÆÜè§w:_òãgb9„îàTÖVú®~•®ˆyxE-†_°alpaÞÈÙJ©ck*º!’¶Ót^Òi£œñz$;1±®å% J& Qý¹’_Ò9 ´s훘‘__là :€ÀÏ \š /ƒ¢›Ô•ý_Ó•šÐ(;ÒÀ\ÓÆîNò–²zr鯯ÐgoSQÛp'à+¨êU÷ ýûŸyÇh‹íxAêés(>Þ2wÑ£06{íЩV?ßæ<£h}¶I}I¦òJ¹]0Él¿„~ »ý¸¾ãëøHö˜™‡šo–A•R&ÊÞ fßÓ92ÏÐϰ²aïÊôBemÆH3DEñ<ª-Óé(%©Á±qÚìk‰`°g|LˆeIt뿎o6ß@ùÚLU%šŠ²{Í ˆ–Wña[I­îÂT¢Ý;~®²ÚóÊk©¼ùBû[ù÷øéYSF)Ò9·:2~çY‘ðÝ€å†m›‡l$QÊFY#Ǻ~i~x"äÉÆ´©éЯàë×|‹z‰¨Q¬]‰+0 IÀK„ۼ׈:ù(,&ÍÁ3qº§ígX±D=)äÛ}b†’Cч<ßU ×ß-ù£]¹ó5…žkˆîϪD8øDÛéöÊpÍaɰ—o­R£ßÈAú*Î…ádDî?¹CÖ¹ZŸRh½Üí2.cVEÖ p¼W×}ˆX¤s© ™}ˆx‡&œ}Vðd%w¾×z&xÚšª‡ª¾ `›|øF¹jýýÅÆ\áÙ%iÓ²¦”Ø+ÁW[B/˜62Ò2\BgŽK8²êmïQ&ë¬ÚO쎻JafŒX4öÆM‡Õ.Šé…\ëè.~è;žcd{ÚïyªÜ¡;?y&u¥|Î(?u/ðº¯È¬ÇÐ,–Õ«ÁM:2¡îGMÛú½E …r(AÒÑŸdt¤%hÀ Y6”e*I ¶ò &1?R!`ë4ÂkޝÙ.sî|9r¯ÎSΈòšVîóˆÌHÄÏ@›Ëi¢+u uõ/«È—q}æ~Ô&ªæÂ8n=Ëô}Âþ€–Åaá‰-¿XAdÎ6?ãTÔ© ‹Ê¥ Ÿäц#°ø¢9“sF‰\É,øák¡#C†!£äG% ;lÊm¾ /Ƽ]j§€öÖÅ’,šÓütnµUáÄ~Ïä=Wó!1vÙÒ›Ð~{K\êÇ6-®QÕª'ã¦UF>ƒ\xù¹BPÝK•Iò©Ë—ÉTËO'Ãø•¿Šup-MB‡gª°‹öé#OË£ 2h{tB+²uéæü&‹Ÿ²¾ªh––Ó×ãaV[îemOÍd˜Î.*À ÊUf[þüÓ¯þ‚)iø?m?ÕÞ®ÛrED-ì2½~Y,Äüð•óµˆ.R&n¯Œ¯¾¡äÇãï)•û(îITbñ¼'GPU[³Ä6œ¬çïšáoë$77þmXòÃI~L‘ÃNAtžçµët#¹j‰óÙçL»m¢®Ô(Ý ,AˆØ‹)òïp߯SÆ/ÌB­¤ÑºEñúj)ìöPûŸ}7úñådr©ØÕÅ“–Ã'&ÒM—·tÛ—iX©¦zb7P>w°ŽtšÐô,l<ãGvå‹{Ã…¿‚°î«•>Jïý|c"ýê \Ór2xÒ‹œ5èw;µ}Q?o<³ÅQ²I¦µ: MаÝí·­+ ¿EÖmªäR;1ž"ŠlÚâÍ|•RǪRHç«Ä€Óò)Ò}’\2''$Û×6ž‡ÁGP=Õr\ ¦y­BOÿ”ñ̯®Ô¥K~À`9˜ô$ŠÍë.Èr«G§ U5† —T[«F×Ó9š{ˆ€Þ!E2M˜c¤Þ49¬½·À]¦|»õhüÆÕ"×êšÕ;qý”d瘹O:[mÛ8AÿʉJBpm`êÊwpERMæÇÚ/¸=¾3G!£^ïs)ô7·cæ®P$T=Í07 §Ä`Wå–ÓWÏ8ˆSª.ä>ÅZ/·ÍDo–m¼b—Ý.¹¤ø5²$“Ždð·ÀZÃUÌV"DõkÔ””MRÃåš}{Mý2ÄOEû€‡òh0&5î`ûK|zúÞßÕ[+ðìs [ŠœÕä’³ èO%³¯úªê²qò¨(A®dS”öai-=Sºª¿¹;]˜±ª#/êÚr,¾I+ã‡ZÕmÝÜ#N@•P?‡ñd´,b\ å”Uâò~vÛ—4|»f8övM+ Úô0==ò@0C~Ê'ŸòUÍÊà~϶¹f’>FˆÎ^¦©ö€p®K% (à(»«s3FrJDx7¿¤”¼#y¥côÙø‘ã+0Ø]Þîs61Úì¥ ngÁ…óŽýrƒÅ,éŸX›Ë¼„¢X•²—r…,Kúm?]=£c%øÙ Ó¿K#íú×ËE ïà¦U‹kÎ!…8e‚(ç,ºs¤ÿ¾ì·ï¶ î(±³†ùâ'dŠrm6ú“Št›•ô}Œj§ÙÌ,ŠÀãËdÂWÙ¨ž›Hß-ãòà~ Ä!2V;ת×ü–£Ø"HÒŠe\qÿúcütõkQDR³øÅšªÚÓþ)®åϡξZÅŒkäè˜wCßšFç´C°+-¦^ÈñªÛ×›¬óãÕfv¡ä'’›ïÑ)‡Ÿ2î²4R§Ž`c×ßIˆð£Jú¾¾ÿ2ðƒ§ãþJ•l?á vŸ±˜ŒÿóUä»1 #Žh†Sϯw&Ÿ-aƒg)ºš·1›Ã†‰Ã¹êÏ쓢δh ÂèòU´tñçsãß~UsMé§·¦± s¹'ó  k1’;Û•$áe;*„N 7;ÞO;ºU×}$êð¦V‚¶…h(yJ&ñ­A>¬H¯Õ.£ÿ0S¸ '†‰xÊï ]¶î+W–й •q˜RG¤V Ñ« g°ŸÍ 㙑ìZm¸,Ê r€ìØ]â@÷³0P ÀS ú{\é}&õo5pÄHžàð˜~‚n#p‰cdsÆ>3²«3”Ø¥ˆŸiq°R•`Â=Æ“êZÚGË£uiŽy{#+!'ª–ãoòÞbEé‘Z^°§¯zßr°A}á ÖGäûá¼ÒÝ—»Ðõ÷tuÄ…ÝYGŒ#ŠÅ IgöÃ~±_K¹:3-oÜý„Š-2$ÄdJP­­½,ˆ ‡ø»UôÙ«)ј§mÓÍ,°¸u^èt>`­P’êÛ„›`¥œ÷U8…5@$æ¥ìëù(e¤ø›É;vG•aØ–"•!Mmý<©ØG$—ƒC.%Õ U/†?-6Á'-ýuìD1ôò[ÄÙ%Sæ³Mh]ªO:RþÑl™s/»R¤÷Ì 8ëqí øšáB§1¡aÂõm…ÕlÒõýe¦Wëi2–@ Ovƒ8*Ä$äMH.js-PuíËìDåå'oæšQD1£—··MPçˆAÆmŽûU.å8fk"øLÜ FþÖŒØLâ˜qCX•lx2bGô¬Ô8ew`_‡ ¯gáØºøòOò`óŒä/G±0d·xÄæadk[ž„zF8je+T[|<±K2ë³R4/©Q,‚ä¶v®W»\áô0|4JÔíÿ¢Àø¬þëÑ“âP~m,ŽÏz-j¼q½ä¥®ÖòÒs³š÷¥_N}l¡¼ÉŽˆä{±›ç"^k>Q¨~ðà –UxˆŠc3…R»>ôµe±ÔÇÌ Ç&æÞ6w­^þßšÉi š-ò)‚ÆþvàÊ—£/±i‡}äAù¡|–¥aéÓ¶ÞÝûNˆ#õÁ!m²ž;ç·à!o=avâgm‹HíâÆ÷žœ)º쓼ŒóKÁÜÓmx†"Ùî¨&ŸhEy]ì» £¬…?^Ó«ú¹BKcŽsxT ÙhÀQ+ˆXˆ5O …žEî6¤¬»\g‡¹!ª®œäɲ |ß’ òÓIeU¥Bº#Köq&°A¯fü©ßÔΟ̯€[õ|^WÊä@µâìüè¨Þ(~&j7sû@|tÞ[`¶ÌOtçÏ1bæÒVfõ-ÜĉÓmˆôÚéâ23·ÛùdzD2š—Àsý<Êì¦0A|ø×³ÚågtÚm§オò|Cò7ÍhÞV ó°v{º²­r±á5·ôAäÌ‘¿”XRžýò“l­ý<ߪ˜WúíÇX……¼ ©Þª³:m,3@8jÕ á"RäÑZ€Åc*ndP[J·>Æá°½ ÈŠ"I]ç{œG.Ô‹Á)jÉNñ9wÊ9I l›Æ¶kŽOŠï=í±k&ÖˆŠwú†MÊ“Êvϧ»Hßp:èÜ'á§·|_W" æä¾B‘zA'¿r³¨Ön-~0tV(mßvD¤¯/"šµ;?Ãÿ¼ð½š÷Á3CÇ¿ í1ÁŒNýP8>É*oºêù³¹ŠG›“_ƒ ’`0á ‰øïØ'NÖG¦Ýo«Ë†Cç•áxyǦ;Ì.'ß…ßD!a.,ÛÍ´ faÀ’À6Íî¼jò×ê2hZé)…–~ðûqª÷Þ)²[Fö¯Ÿ>d}O8ZqËöþvnsdBÍ1hjD«Löí Äo¤³ü»½/Ú@$Ș`’«˜L›Ä–F–EoÇ ^;ú5y¬Æ›ù„ï7<Ô&˜úùÈ)ãÑWõÆQ¿3Š•‡Mz,€´íjÁ(8j‰&`F /ÃÃÔ—'“ú\fQbÉ.…׈²œMZUÔ~ä˜gn uÊY¡½×}—tW—4Ï7L“Ø­_)DÔÍI5}>ùX`i _Èòâ÷V…jNÎŽf̔Ĭé(‚%'p¸„’ûe] Y{J`|rI"ö‰+q÷K#jÇ8CÒ³æÈzG@Êš{ u7ŸKÝ!l•ƒ+x9x; ÎÉÝ­ø¸ä¬há8‘äeñÕ…lÈd5o!p“ ¢b%2OW¸Ï¸©A2ЗóÒˆN"`aµËÌ`ѹϺÀ? IŽ¿Ò]Ø©=!Ÿ Ò@©´ØÆ\†•¶çàZˆâ÷ÔVyš“ìñà3[q5‹’<­ïBTkv—4yUÁÖ>lrQwóÐê1­ ?R,Öax8yÞ &D._„ÍP?ÀV¾"Í•h($¦ûˆs¾ìس|ú>uÝEÕ¼=íÑØYj¡{H$Ý|ªþ"Èׯ—£S±Ã•Æ9/…nàQXääc{ ËÕ»žðKzm‹ùñÓÒ×X-p¬á˜O÷±ŒÏ)¹¯ød&6M–K;Ðrþý/[Býþܘխð+ZÔª¶¨©[0€ÞLߨôhkx ˆ7{™ùG ?2rç*Ù¨­Ä¿SzÄ WZè¾%éýåήF*³`VÃÂÜiàãˆk/¥Écaþ­c7©;ö¡&w¡T“Ci¸ÂËÕ§ ãŽ›I téÌ”R5)xEÿAÙh\=HG„—nZR86TSÅ y^dpxÁÁàQï…å"5Ú©ÃsöpÑ0RX"þ¶ÒwÑ߇#G´náíYµ¯j"¯«è›lìWöéå\×¢Î)4Aù6D7F¢£êM÷ñ€fßÏê5’ ¿ž…°œÃQÏijÞÊ‘_O_‚±VX›aÐèãU¢9‚vÏ6ùå c…$>Ù·ùøYÜ ß’MA‹’¤C&np!åÕöõ¶lжrØæwû÷!½9-b!%w¬ æò-÷ÓäôÏ»qô‹¯ÈµÕÅÍ dõã§»Ê+ÕôMŸR†ñYì·Ê†Ë ®²”ù®áœ&ê=ú‡¶ª(å{¾òamŒ“°n¥ ÑBm/UÊX÷`Þ×W\øÄ,ßF®¸÷Ç!>ØÕ¯ƒEO¤Ógù†¾`ƒ˜¸Ís¦-»·>‘#JÊ"¬ø°=œ"OíÌ××ûN °!8Grî_êÖÊÛèÝÕ¿Lê…dzœGÎx4-ç¾V·Çud˜Ïݦ¼ºÄR=&ë€Õ¤»›§·¢Ö›=Tô½¢'”;‹H5·²ßh1I*“á™ÅfªzuÃæOyB¸BÛ«?Ñþ‚_ÆÅüAÆé(½Ë U8´±ý¤ÅC„"¬Nͤìö3U9, Q*âšrÊæ6(¿Ç"4fT¾ç ¤YMÜäWþx÷s-/^–=fì&¸C´óXŒŸÕI 7+Ã+Y—BÀt’o”„R5 ½Õ©žÃ»<1 C\mTT°Ç·þú)+oœ¢yŒ°àª+/”ðjÂ~|IEä× ÂMì\gÒx¢l«%Zmo©γn­¶NYJyáW,óšÏ„gæ‡*vƒ3 êƒ%~_¨ôµãSgJÅÁƒ. `gˆ¶}à=x¡ ò¶¬µ|z²=ÎD‡äYÛÃ=Ž6¨629¿B¯rõ|ÊLN,ôf¤Ê¤žúš½¼2º3Üìí­ŽÞŽHcF˜E5ŸHÜ$“RçK†:–…B85cKž­ÀEºg#²@qû²=Dô´Ü~Ä•ð$l3L£Š<>ƒ6;õà͵#OiV^ GL„¢×.ÉO5¥¢H]Þã¼ _à´ƒëŸn&q½µ²NQ]¹!ÅfìÕ $¨@vv8ЦšðàûÍ W¢¨ˆØß2M˜ð¡‡ºóF?X¦]RÄ댰Æ/­ùäSŠ‚ÏTÿ:r:= 9H•ZpJœž‚•ZJeöÁaT.õá;Ý+wkë4ŸV™«0ö¨¹c¡ðüÈQ¼¦[Œóâà«a犓ÀÌ6Ž?yœßGìv³‰v+å~n­°kš¼}‹˜YCÏÚ'q¸¨´_[Mv}a_ö5">àl…ɸ~½BBЃ¡¢Ø“ï& í¶Ÿ¦<·ƒÃ…'y-†kDñÖyq‚¾÷À´4Ê"ƒåPñ‡„`]Ho)(˜-{HÝ"©a:í7’^n_ñ¯ßâÚp·„É9cVG LÛ’šòÜ™tâòBÑ't/[gvŠu :^uü?Ã=î˜ endstream endobj 128 0 obj << /Length1 2099 /Length2 15234 /Length3 0 /Length 16507 /Filter /FlateDecode >> stream xÚõPÛÒŠâîî,4¸»»»»/`áîîn <¸[pww.ÁÝ‚„@€ËÞG²Ïÿ^Õ½E|£}ôìn¨ÈTÔE-Í€RŽnŒ¬L,|qE5^ ; •ÈÍø/)•ÐÅäèÀ÷½¸ ÐÔí]&aêön¦èès·°²X¹øX¹ùXXl,,¼ÿ1ttáH˜z€,ŠL9G +•¸£“· ÈÊÚí=Ë>4æ´V^^n†¿Ý¢ö@¹©@ÑÔÍhÿžÑÜÔ îhºyÿOk77'>ffOOO&S{W&G+!Z€'ÈÍ tºx-Ñ(™Úÿ&Æ„@а¹þK¬îhéæiê¼ ì@æ@×ww   à=7@]V ìtø—±Â¿ ÿn €•‰õ¿áþíýW ÃßÎ¦ææŽöN¦Þ +€%ÈP–R`rórc˜:Xüehjçêøîoêa ²35{7ø»pS€”¨*Àôß¿Ù¹š»€œÜ\™\Av1dþ+Ì{“%,Äíín®Õ'rš¿wÝ›ùïgµupôtðý×·%ÈÁÂò/ îNÌš gw ¬Ä¿-ÞEdV@7' 7/è z™[3ÿ\ÃÛ ø·’õ/ñ{ýþ¾NŽNËw @%ðý‚¯«©àæâô÷ý§â++Àdî0ZþD-ÿ…ß_ÞäÐgyžлŸò €Yåb0«ýAf?è=»öï;2ý/bÏ`jïô>„Ý–ÿÚ¼KÍþ ÷¼æÿEï±ß”ýŸu›ù3+Û{ Ðèú~«þ±˜ÿ€ï[þ¾wÁêð=‰õŸ”ï­µöv²~?¨,Þe À÷¾Ùü¾—`ûøÎÇîðýÈú^þ?"¿ßfÇÀ÷Bþ”ònëô~ø쀖n¤¬ÿ–þkCÿ+~/ê½µ Ç?Íáxçédçþ¾°¾Suù|çõGËù®t}¿hÔï!ÿ$xŸef7ÏûÎÛýð·Ç?à;oϼÓ{ÕÞÿ€ïD}þúîêtùWìÿYsw—w¦n²÷-úþû?è4GX]r4ç³ië|¬%ôd<˜\ :ÐΠeô]uérBM¥­ÍÙvyMëGÛØ“¤¹Y#}ñ=kk„lÿ¨Úñì÷Û8Ymî aegx¦èLôë1<£†È¡ß‹³ŸV°-dxU¾³;ŠJæ£ç ´×סŠõɈ¥ÕÃZ.yÄßóŒñšqÁ¥‹T_Ìr¾á‘ø1ÃÑa\{¡.Þ?,`äͼ‘Ê%Ó#øŸÇ³ûê}gKøõÍg³JƒÍµŸ_òcrŽÚWì8MwÙ·¬xcxÅ«M ˜4™!}ƒé˜-«¤ëÐ2Pï1¹ÚͺŸŸ û@8Œ¹ÿ±¾¼ËØ…\»¶Ã8Ó­žÝH|Üm)¶Ùù Õgi“N´Æ;ÿõ ð›ìc=rn´çÔ¦_/û—¼"9Ï«©¢‹ä Yy›gK|í߸/²çL¶â“ÚÆ›œõñ¥VëÚz÷éÚÊ¿6 ÉäɽFFV¢ç\ÜÏå‹ã„¥¦Ö¸Î~Éåà:Gƒ A݈ÎY¢|`ëN6KÞO!R¯†ñÁÉbn³Ý>4íÚëV©&·¹éNÙÀsûF®ït˜|`ŒjŒ{qS€)r¢ {±Šõ@6Ööì:‹>Mê°± ÅÅ£$g£÷M^òÂC¥¤k<÷+~Þˆ°¥Íi©“x:CbŸù£™Ö…I#á9ñëúä#sÒ@ê\LJU!7¤û'u¶·;ŽÍéàs¤€¨Co·‡ y òñK2½œ™pa¦Óæ‘‘âËÉ{ û¦±»C™»ìü IMý0=©†rÕ;oZ“­9ÜG+ ¾”lz±‹&ã°\Àa¬×½ÕG„¼Îe5r¢oßj`Õן3S‘ùO(_n2”EŸ+ … ²&`h°¢¡vË2á|¨ò ¾È+Éýþh2XY4¦ÍÕZ0˜' ¯BˆÆ¥t—EÃmÒѹñÑý›B¡ú¥ŽÈ:Рë—ìz623yZ/b ‚+?¥]Èèäò áËÒ³Å1úÿåµ ŽçGìÃõ %jêFùÅ8 *MŸM#¥îOê`iºrðP(PÚzËÃÂ6±ªÖ{Â*VÄhæd‰¨aEúÑó÷¦öIý£w2ø|¼EÁ([íù¡B¢?Œû—,”bÚœ¾ ¶ í¹¾ÓF­†v| É6š6™?¹_·1‚ó6»û§“›d½¡gœš])‰,ŽˆG—•T™gx«ˆòPæM®úMÂ>Ûó¯q¸'™šãAy¹T“õlÂ)ˆ!‰÷v&¹“£D¢ãÉKœ&¨ 9¦Íušÿò°Õ°ë‰ÆÏÞ1${Þü¼¼.ÔÒ¶µ÷:B¿Òfö©p!ÜFPˆˆµ>ð“¬=ï™É³õÍ/èØêºÙªŽ@ôƒÑøåžc$é!ÀK}–0ß9ÓÍa!àDÉbø‹avÏ£f gme…àeß<Ô7ÆrÂÍER.Ôä<(« jÕ½:=Yý&íTáfÊÇL{²}•!ðé³ ÁÐÛéx”t×òÃýûÝÁ¾5œ¶úɲ`l¥cw=½fáT5'Õ‹…Ö5Á„ã6ügæw†@š¦©püƒøg4³MüpÓ8z‰É Å—U#~ê5w+­ïe›…‚®ytµE\ §à¡µ¹D0·–ÏÛŸÓ:óûìǾãªxÊyÀϨ9=ÔÝÐD\lù¿DÅk¢žšZêvù¶¦vR¾¤›9}—\¥¿ÀbA¯5·ÐyÏ©ÌRÀ´4–¿“o¾¸\yIc·‹÷¿ì÷&_³¯é%3¦X+õ2›ÿéÄ©¤ÿJ§æíšþ‰òŒÏŒùâ«@÷³è¸ü¦¯eÙêv@wÍéOø_p;BÙ´}å4+à“HxXªCðѽF\ÄmÒb3Í´âx–ÙÃvѽV­‚³…'`q/_«ŠÛFœ(0%óÃÏšÛÓ©@ ×Ô. "¸~*j_®rYrw!M;¤ù‡,ÿ«Ü“¼Ý‘½ŠÂSØe÷S¸cè/Þ¹¨2FF!¹YIÂAäñ<¢õà qÝ[ò¯ÖÆuÚ‹·Sý4Úå§ LðVŽ8˜ðA ÕqÌ¥`$\”%n"ˆÅ'!täÚ.˜=¬°]c`ˆJ¾ «|ôuB/Å·ôSii÷­|š °´gÖ?&J7ÝÖV ŠmX‘TskÙý?§’nh `©»3âAÑ]c˜ø24Òh5Ïvå“n—0¬y4ö „‘’Ñ/.é–ÜÑ\ë8D‚ú©jC?•êŽÜ* Jx·±›(àºÃİ,·Mü^ë¸9ª5_áã Óï~»¤¦éGœ¤Ñebƽ×ëÑò‹¥ç ñ稀mBxÞ>iCú^çÝÙ†¹>Ïþ‹šves…\YÓ)ÓoÌþ빆÷òÏÌU?‰¯[ðÍÀ6a¿l$Ánánñ|óŸ¿<}ƒªüYÔå\Ôꮓ7·êÂl£0sÓÇ(Z·U-,6é<}_÷¨Õ5DsbzFQÉãý]‹@€C†V“x@ö)…§Ù¶q"qpJíùÞÿnÚ†^&k2°XŸP?@úÉ&6Éí—Ïiü9ƒ0¯!8…å×#“bœÃªG²\ÆÅhṲ́º¢¿ÖÏo8%J¿+î&M«ºž—åvQ!‚Am—ܪŠì@6¿ ÿÂðPa1 ÞêtÀ ørÉrŸÐÀñáp~³Wºµ×¬ãÄ[Y¥cíXÙ•I0á²Ð೨Ç:»ªs¹7} g jó¬PŠ®dg‚˜X4ë“©¢‡`P:4F9 gõÃè wm¨YgaÒÛÙáa«tÝýHŒJ³=ry-ÌMf-¤¿â.óCV®šˆaLF-îm{‘•½ãŒØ³ñó”BŒ%[úPŸËUьּ¸ïÙCº„ ÙÂDg;³ø`ÍÆ‹œkøWs_ì"~ ôxŒjEEÆì'¾4–í c<šºâ´ÆZX€Ê§ÔE[;»Pÿ,½  pU À,®a¥kÙˆSòʦ¢Þ!ª°Ðbú’l3œ`[äC€´é9ØFŸ0Š€Â ëIÀùÙ©cWÈ/DI½Z«üíE Düœ©¤¬€$ó´ª338ð¼Y+ñy³¤ÆÞs¾T:”» GM7éD†š×*: ¶@è×*ë$ˆdL»6}@Vx8=lèëh aDêµ.¿÷Bˆ•#ίÕÒöúç›h,ÐQ«aqµö³jM¿·q¾|>ë°±¶Œ¯‰WðZ¢×m‚±Uƒ•Ál‹[ô%iV}Bl§ý Uè§ËE/s »ÈÇó*tÿÚÙ<­XéþðWéë÷¯¯à¹D²¢@éŸÈ‚tÄ! çP¦yÊâÎã …¿ý¬ˆx¦¦±§Ò|”æ=n¬»ì3g2ã–„^ ‡ð¯î®ÆRÿA#YômJ.`V"EÍ,Ü ÞÄÌ!°‰î:ª.õ+|‹4úqº£mCV 76YŠzèébÉô붉#’0,ﯚèRkß#©x[^1tÖšŸgÕÞŽ4ªxÒÉ”,Ÿ—ë Ù«)N!”åJxüv.Éã®f.Û¾ (78ZÑ vxïŠo[]|ê€áðW!"¢R;ÚuⱤŒÿüЋÜB¨+ô4­Õ¡äx<²vg7¼‰g“+Èïu÷:X}—5ÞÏŽz@ ³J&}ëÖбb)gˆNw?Îæ»A raçaN³ÈÖÕeµÐüµüiÒúDóÕÿnÏ¥µÒˆQÑ–>fzÌlï«S€Ýz²''JO=¯)šF\¢ÈmQå F>Y7š±Å^øo Üx¦ÈÜo‚|’ÑW<‘dÕõoB#Îm2¡î®5ËØùûG.’’S&rÕ•Üh’„PÉ+PÆ”QßÚM0DÓcÑ½ÌÆ®$‘ïæ3³”iä6[ïÜÆ`¥SÃF¬MÍÍA·gàžê¼3͆™4Â-]ÐgSU×`ÜSë˜߬(² ÀÓZwªÆ–Ïu×à‰Ä™Œ#­ ŸFüÈ!ì,´Kv~ÀõA\m©/‰ĀæÖEZ«^j¼Éš}*´´•5Õ8tïË#Bä·ž…°»QÕhW37¨¹ÎAJ!ïKÁ3Æ]¿£˜*‰Ò ±Ê×öI’– fæþý̓h«9û¥_PÂꃸR¿” Ñ$û¸†¶Î5·b4?žZ®n,wJ¢ Îz½TÛw tG¬-Ž€.•(R3=#Z~ÜvÀû&ø±[뱺Íö’r>rüý¾dÙí”xê{ ×¹­ã—ènœàœÎ kñý˜~ãæÕ2Šj†½Ô7oñ‘Zk©@6¤ZrwãÓp‹#DFûÙK?»pk““z¯÷•Ø€BÅ´Ô* ò7%ç4¥5lè ÿ©}¦W9­ß硵'Kx:]©‰TLÌ^WÆPRº£î!A†O”Ð>g(¶af¶×DÂQr’>,Û:ÆVêä[›=’Ý‹§,7I~7fè¦#©ã\šðf£¥¯}-r…€Evz{4/[–˜ ^¼3¬ýõyЃ“ù&6"-ŒÓÀCÞHXæ6Ï+ù¨ŽG;Š1?$¶ïÅçhºsny W+AnL(ðJƒÌ}ÿ–¥”¦ð¡jÁ˜õ¹Gr§†‹ÒÛI*¦õÇ Ðw´kƒíâ^ J´óCWZ‡Ð‰[Ÿî¿^‘(³l’?×}ɼ‹^À¤•_£Žzf¾Nxßû(‘³ MþBoª{%KN¯]®ÙíÉ!Ý¿™F3½³“ûu¥ïžÂB@» ÔèdÁùhíüŒâ…ËØæ‰T5Y»azw}'ã²ñ†Y±VFjšõƒ. K ‹Þ⸗Á35dW«Ô>¿11 óVtîu‘öâÑOvß;»8°%“P¡ éM”*>“ÅÁÙ,À.AhˆZB+H,½X¡çO+: ðþi%G}f»ã¾têøjµ¢ ½I ©OªFŒë ‰Á¿H[„û¤!¥»<ÚÇâ΀ˆ««‘¾5‘pžð“x€ÌŽË r†æ1IMŽš#z¾ô`:ÒG‚æ'Pû>é$U²UsÑFc&£Ä{qZ„! 6}Ïæ<¦˜˜K%‡ãô“pû+F'h2±_aÙ‹÷Œ•Ñ&Ì×ËHEî~ùjq^gÓJŽèBF'í§Y?:¦ªøÖZÏX¹ì HK•"÷Tް ¿b œÍ™kE^'XÕ²||þ÷„"Z™@ýSÆïT•V‹ÙAëC4¹¢®DèWntMD×QŽ0² €° “7g9°*ê=㮢˜¹=!âyã ®•àk±P¦ï•Pe5vŠ´ú:, 9Lý]|-YÑóµ’1”åà 6ߊßä1Þ¾ 8™ä·'$FÏ’¨ˆBscÍi&a§¿¥ÝŠÖ‘ms"$wà~C“¨¶Qö}6}(r@ñù2›?TSªnöb»©|¥ƒËÜmæ¶w‚¤÷+Œªý‰?­½5|fã f{¨™Õåû&¸C )m¶jîU`4úJcOï×éî3OæO¾§·EÉ¿¿×cGɲóÏp$Xíܹ2ÔÏDãåô}î[¿°PuE:ì´">7V§õŽO©+ ¿ò]!¼&•(Æ’g‡b$òÁü žtÅlFFTŽ"c©« :ðâz´„Ër±Îd™™ÀæpoîÈ[cµÉYë2FÑúàwf_˹;q0ï(wç4(w#ÞØâèî‹xAŒQôªÂê³£Ö@¶í+ »¶ÕvNŽ;€bX~Ýò„›Ú;¢¬Øe¶‘Å¢²}o¼~M&*ÕÍÂÈÄ ép…õO¯“ŒÇQ¨•žQ§£Qâ‰æ¤^gÈÂó¼lšÏäìZä"WôqKÈ5\•£5Tø˜ ãG'ëV›'nt¤J&Û…QŠ‹£ª•’]wý9æ N¯á7†y ÛÚ·$M´ˆ¢oüÓpbqé=(Rf7RßjS“yîq¡tòšÒe‰S DFq÷Étý!YaŽL'iOê—;«P‰º²îçÞx:®Õ˜ˆ$“¬¹Ä½=·³‰|EÒÐ5µGÎàewJ”rVÐO ®û¾bκã†6ø©M–¯ºbk.g 1a÷?@Ýx·œ Nêq0•}â_òùB yy½€æ0†j ¾>âõ‘íÂÞÊíêKL‡ôß5(L~ËÑ5†Ð•Õ(»L-ó!²26tJ›¢‘Ké˜u²e )KÑ öˆU°F4huÁhLC´ÞäHÀŠë;ôRæ¾LÆ?‹DEmv+óå4ì»Ô%ò)–ðºV ½†çÍ9‹„ÑI¤<éf£.€Éš ‰ßõ/ÚDfK ©BˆKFƒ)ä¹cIsOŸŽGÕl’³mÙD³„¨‰B6ñÕ|æ-Ñ£OÒh­lD7?~ðŠ4S±¨Ý+6šO`X CøâñíÀ~QŽ,¹žN ¦žY½b´BPq’×_‡X]}çI”^)ÔâŒ|×LŠ ^ò>EÿŠ õËô‚ž’Rˆ!ñ^ÿ©5v\¡)Ƶü‘ç|,'üÎö‚=lD(=G‡÷7‘2ì-蜄Y±o—úº¤­Ÿî᫈M~£Ç¥FJ¾™J&+.eô+¿WÓRtá‚· D·‰ÿYéY$Èk¯Ž¿ ¡b2azøìÖûÁïf40*÷ø¡1ÑõÀ€êà3·TËùDáðË~kK¹âu5ϳßSÙNiäÅÌË<&çó›Vábo•L¿3OÛXÑ :ûMÁôËß²î B™‚Õ3aèGqE¨Q»b’ ç {sÌ´·¿(m;­b›\²¤X&vÚ%n:t, HJÄ#5:Á‹»ðÝÔÝ£,ž«¢A îƒ%cíNæh7Bâðø’$Û‹k®´ð·¨º½îåè×ÄèmW` Û g6úéBªrŽŠ `ëgV.q÷ž$‚ù4N F³ô‰"+;R1"V[ú[0Mp#@«³±ë£$JY"ôÔÞ»¦vqX3 f)ÊE'¬~üvÉÝú»ŠLô†ä¹Ÿ;1bƒþ³O$棻ëß[qä?îžÅ¦ïC÷J@¥C«N›ïº=¶èß›ŸÐvÎgºÈíCŒ_7Z†æŠËQñ$^”E;¬ê…ðáÚ‡FŽ‹!Hà-[šˆSåÂYK û“ ôÖ+$… EªLØL5=#‹ŠÇ~¦ûòSFeQÇ/Rßuа§J™ìåŽÛ¢ÿ¤ŽKœA0½§j:(í%²‰7ÒãÃöž4¡Šï#þ)³ —!‘¬º™Ãã!NC8f‹ ¤$ iàTeî‹®8š.÷–jíu½°]/J ¿‡CØI9–ëÉ@ä#ç§QQ£EÝ 0x^r€›ˆ[È=Úò´~º£ùÚÀëŠBxåØÂÒO.§ £NÈü§'‹Ò¡×üîúr,êøÓÛ<oI‡ÇUIÖßå!ÌÀnÜ‘ †wÎÁ&ìÌÚÕæ‡`ª¦¾|ÏT2·£–<)Ó|ɤñå'2ñpÄ*ݵ‡bk3‹–ØEÛmWÒQÄú5v¹XvûòíÜêž•‡I‰m>éW;ÕïÍOV©ÑP¯HëÀ{ú|m ¡Aú[~*g üÖ±(I»IÊVÒjÝjçÂSëÖ\Ñ®–BdzÅè^‹a¤W︄ŠÒ{»ÎWsEM™áìÐÔú'fó€J›°4Î7´¬¯JI½ð¥E?`0°8a k: ÓE ,VXŒ¬xíñ‰d^jU9Øiz>K„lâF•_ciö‘ï?³y«›Škì,Rl¿é?ïWÞªký&½O"Ê*‘QD‰‚ô1…ÖàV±:êaÕ4+Í¢ê„fNd”oç&­™ƒJo—¡rv »e–´.&6ìx• ÒØfTH–*í1ž×¸]IésY0$žùkùú¯ÕEC’"^ª³ø3þC4“⢡S­»Eá,:é<§ëln…³•³Ê3ïŒæ!~¸´™ñß°)QãuŽ2ØÙwŽßÅžº,;ù–tн™—7E¯<¦Z±ë1Á‰‹i’„uØ©bªÛγæGˆE뽂\‹³D ©%ãâƒß)Ò¾ïCš„„£â¨ .î¤Oµµ§)¸kòö-IÈ@ÏĦà#¹Îuiä=”Þà|UhóF°- øc:‚[¦J×'¨îUÞ6¦ –/kR­UGÁÄêÖIÜ4`@Q½\YåTy,/ÃÒÉXÅœO+ZK¼PÐKúЭ«ÛíÌûçMÒ?’»˜\޽¾éðBÎ=ɶ~•NŽ“Œóïj ÿ\Ÿ“H-€|ز1OïNÓ—gc{›QS 8Xɼáùª&ÂÀÆGÈ”}ÕŸ‰ër1>1Íî«8…Î/%'‡¯ÑcAzÜqÞ•zËíÇb™!ŒŸhÜѳ\CŸÃ[Þ}£*tÑw<„…óʼÂ~9‚L¿Á!î|‚ZÄ„M+4»'1#™/1´Ü^dDùŽJòÃøö½íÎÖØùŠïÆë*—w&¼ÌÝ’ºÑ{õm~œ="Žˆ¥E ywÈa»"fô«„jp.~3ŒÈs/cj°s"É­²HLSs;íe…3Ç =‰3ºå¡I'¯z°åiQ²%t 6y"(‘q±ÈïTw“Ôq2ÀøÂ\)­çzµÇÃ14ñ-莄F9>u Òçä|©nµ¾8£ÚÇñÇ­§­ªÄ›¡¥çÿ”¾1·tËÝÕ}À›œú´6yàŸãIqÅRû=9ÜÞ“E[ å®)³ 1fpÊæÜeç¬ítR—*‡4Êì|ì¨Ëc,ÉW‚Ü.÷›cùþ²›œD¹²·F®½l|"’9ªÔHé ƒ½žŒ_ñòdÁ~Þ?îl°]t©Ç_›vð«!_ñw¢÷æ`SÒãž'Ê”"£Ý’@G~„ß)¹B[™òñ®‡<†+âUM¡–Îb4'xd‘«Ó†Ë¯ƒOJeCÍjÐzŒ¸Aš>Lu˜ ‡Cc GÆl|¯ŒTÙspIDûõ­úêÀTþ,ß0†>:5>Å…~¿gz¦‘—uÖoÁT¤Þü5$ñyäæ› ¶NsO¼s½U¯©e´êŒiÜùºDÙÏtøÕBä_û÷Pq³C•µ‡þ`:1ð¬|SIò\4‹q(aˆ.ˆÌN** Œ/("Ïtt¦O†8tÍëÅ?vÖ¼Õ^è+Ï'Éc1[æ~P{zïÍ-Œù'œ¡š(A®bà5ö†v±{sÜ´<º¶Æ·Ä M¸?Úd4à±Ë €Ùaĺ̀œ…%"øu’>ð`yñ3 ²Ä@­D0×½(é':¤ï‚‘ðú’ûV×ÐGðâ Ëjgyzù$Ã5Ðÿ¦*1TmšLMcŒ\ŒlKÊ1aæ"0ÆVÃ,KfOãMÁ‹|Š÷ªp‘Ýö…°« ëa·´N$§$(£âÏB—`߆Œí`äÙ^A‹ÐµsWhnÏÕBçqµÈ*Êp’I)uEøg ³¶öáBãÇ‚+âÑ®¡ßûÀÚßÁgXai.è¦ÁA8‹ŸåÄ27[Ð$•9@±)Ô°¨Ë;#»Iµ–Ikpã‹é£nE”ÙÜ.~c(µèºGÂzö3‹)ˆ¥ŠFL•`dŸaüí3f*Yf·záÔ\»ì=оÓA Í°ÜØŒ—d2Y|«;¨Ù/6EÇ J¢Á0#  “ÈðïæUC¸:ÍvŠ%7¥QÃZ.Ù™kU¹SõU†"ŠÕPG·gsW뙿}NˆÌ­ iPÝ7jR©¨5 !ÔU_6€Ù§‰LBÇšÊãÐîK žîÞeèBGƒ‹q¿cúþ®ðïÚ= 1k2ªãÒPsµ©ºpµ³€\øRÂ^¨¸ÑòK*Q|áÉ¢êB`Ò“¾–ŽæâÜÜo§Rùª äzÕƒEUžFæîKàF<b…ç7.G7ÆuÖÕ3ŠÁu-*n²T "®ºÞh#,­º·†y¿tO@-Ò»Wûöý£ ~¢¡¿7H'Ä\ïÙFÊ@ÒœÏiLçg;òzÏè Ðæäý43j2.ߟ®>ñE°tNÚ×DÙ¥¾‘?î_'^}6r£ñ¬ á¥°^Š£¹XCŸ~0 K(:1óp IS¾‚£÷jšËk’Ð:sJ™Å§âιè(ViiÈG‰>‹l¹I#ÍJ‘·æ'Q¥Â}©e!¦×o[A¿UîKo|5‹.Æ$ 82ft^ȾQÖz©›sIáœ(hh-ÇÆ­Df«±s¿½;^Àô?ÆC‰]k“²ˆä–¹ÞØÝ\wÄû>3o^¸É†L—Q‡Vý’dÒ{£ÒÂÞ¸®£”—©š^hO+ð áVs;'G3U|Æ™«[Z•*º-'È9€#ý¨ë¿¨j$Ÿ¯±}ê`IÏêá ×ÈÀ1ÞAt¥÷`ž7¡ÎSÖóŠQgóñgþA/fÎH©/yþ¤g©µÖô‰ŒfÈ^’F<=IFFâû{ÁaH‚WËÔô+`HÇ—g?ìÙ?RHbê'‡v “E•#’~}9MÞp åwê{מJ,$BÜÊl—¸çhF<£|—èj+åTËC4°*ÒÛ™öü’3¦ï*ç:ðÛÙÅÁT(v­_õã$¤vâ9G6ÔÏ8ìA^cæn½ã xí˜,IJC“Ý?ÊMFh€8†áîäqí Ü€/šå¿;kPnñ÷»“É$ÜßRŽaªýMwÐŒ8VsÚå f¸ óFÈDµZŽvŒñ¿¥_[m™ÉsÓ!(V°J­‡a“–ÒUIÁIö·‡ï8³ï˜c~Ú‚_b<гqa«Ò=·ÑÖÿh;‘Ï“8—í“,×LÉûùŽ‘&ìïqîÀ«ë²Ú ¥rÞ‰Ì_6XvI×ÏÙNîÜðÑæŽl…ØŽ¦Ó‹EY¨œ54†Ò½pèÌ¢åhàg,æCÝmXôv%¿¾eUÍ Û^À÷žùÌIêраŽ\3nxÅÔ!I´?}œñw$v†ú`Ï4$—ÌG2£„ýü ™ê5/ó l€Æˆû"€ýù,=þ–ü=yñLËmÖcC?IÂ%+Ë1@Óß|QK¾ãÂäòßä`E´`£nŽ!'®*|‚† EF·Û»@ôuï+—œOçÂAÚw™ü@—KN‚~3å¾aEVeЧ}ÜMמŸÈÇ×"ÃA0ú ÌŒ%>(áJɬÿk,êÈù…„TeA²mV{>ß»d˜…|‚™¶·ÒBp+ËETÐ㶷묆ãc¾eœŸéOÌב<àvëâv ±¶™úJ…ëAüîôξoEFoâ¡MKfÎG’ñêjš[]Æ—ÒEò)û]¨{ë­Â9øŒgž p¸…0ÇýßQÍÑÔÈl” 7Šˆ½|Ñ4€•w_M*† |ÞWTK§‹Æ¯›K6p_‚Õ·š»n;Ö³5±Å)È×Í„vÓOCíÊîͺSL3z(øÞ$鑈à‘GAGö:•tÔç'ÆêÔ¡?&v“ µ¯z„4Ù­Å.ÖÃûÙr9Õº^Y„.QAòÔ¹Y‰êª5WŽØŽE~ñˉ#½ Ë!…aý˜y±ÕŽË—¾9Rº¿´PÎåøR‚7þ¯húµ”÷‡®*yTíÐ1™„¸Ü„-˜(yK庮Wk§7ÊOœ>­ø¸Ñ–õa6ö¼rصhCÙ¸$YF[˜Vâ+âŠR[ÁE_Ž èMÒÑ3L¹ßG3SR:ÃÖãEs<¹—×åöÊb{Š3¿LäLX6e—5 þ[ö‹Öb/öÕH·¤ f3H‚DŒì°Á¢ÆšNS÷¦iÀÓ?Ÿ‡7g S²·¤ ßúV/²M3~¹¿b®nY‘U1ìN^§9«FÙ5 †Û¼‡LÄ~hÚ›£–ºÿƒ@­>‘7»¢1:ûá…÷:I™bœ)˜Á™øÈ(ËVþX±ö}Ö--}âë5p‹#|z\))5Š|– ¢ÿkãÃç/ãfK b!osª€O†Á‰sô†A…±Ãn6/ÛÌÙ]ËTý>±ñÀE¿ŒO˜+…Kž8cŠþL€Hv°À[Yÿk4´6¡ÒÓ/+#ˆhÛùp¼3Œ`&ìÌ¿QÚüóá~šÞì…È<˜„óZ2%6ÝÝÁJ°vÀ‘TÕ¦†½$m9·ƒ_ȰÞj6‰Á~ ±˜ÕQ¹ìÜã²ÝkÁþ4Pyä@H-5hß±ÅòùäÃlËr~Y ¶kÒóÛƒŸs* UR¶2§4ä´õÍáÌG·|Ý: ¿@þG%xËõÌ´´7R^1ÿÛQÝ„Bö“Чéú)s9ÜÁíÜý…EqtÓEGn€:×P¦›äÚåÐ1ÖwΉê¾FDèv­£}‰ê*Cäb¨Æ%°ÖYã1ÏWZƒQxª /Úü,’‰0R© ~ }º¬X5Q‚lPVö–¾‹²) zêÈÕ1GFéõQúeTÈsÇ…† 1nd¶9IŽ5<©—ßþ­Yþ™”ÕÓ5ù­®æÇXi/5Ò~ŸQè•Vzn§ÌÉIÃ$óÖaÅGµeu¡A-\áý.3ãåÖP< ÄNƒgåßBJ‹¢‘û–¾1ÔšZ@l¤™ÎÇÒÉB]ÐÔ¡ä½ß+Ã鑳8¹X»°¼fÚЀÞkµ ƒ33ÕJw"™µæK—þM÷:d^3aÄ×Þ“ã—d1Ù‡ãpá™Ä"Ù3¾‘S³Ù‰£ß)€YÓŒÑf•Сg4ý¸ú€B•šÛ éÉqŠÕ*cs{Ý]sv»+Ã1ðj„Àþ$š>TBý™¤_· |R ÁÊ@+hàQ‡L‡Ù› —&D8ÓouÕ‘ñš·s …?öûù%ïКËãÓ×»kË[Ú½Š‚É:!·L·X7¦-œ°Tž(úSy%}Áx¿3ÖñKÂ¥ö²Ò+¿ô„Ž/ƒ¥zÖ´Òõ"pÀa˜ÜÜ##üq# …°eÓ0w¾÷¨¨ÆšYåjÌR•¢û+“À:ðä0(ùr|„r-aa•Û&èÊñ lœ*žvϹ•~7»yö5—£ ŸyWlhî(«8šñ£—ŒsÕ—Kò:ü¾Æ^óÿÝ•ÝÜÅ §"®ÊóÁp?ÜÀÍ3¬à §3Ç4¦pììÖŸ¼$¬F&žŒ€…³àÁSÔÄÏxVÌk9ûˆ 6”¨O8w@²×a:\ÿ}÷|6§¼¸xéôÊ©~‹ð›OœkÿÇì]4áïüPІ<¿r"ëNÁB ûzp>ªm3ÿî%ïgª-mÙ¾ÃÉx9ãp)S )nó'Ìž CÛôäÕÜOos[–|…V!LÆ­Ï1“éI,Õ ´·0!Ñv‰(Ì™V4U Oiµênq*Eñu“´ŠÃ¹¾þ*"šê€ÖÒü¸ANAN¾Úu/zXÄAÄÍ5´=¡¢æ­ß}Z¯íý&—[‡E¼¥_á]Þ÷P‡‚§͘lûiVÿ› Ã¥Ýð\ž Î)pŸz\Œ²–¸ }ºpò1$z„»XÞéÖ‚Y5©ƒÑ€ŽÕr—¾Üq/w• ?éfåš‘˜ž…pMÑõÅå>'MϵYC’«ó•< –ã“®mU9ÿPo<„¡ÉôL·Ý¢RðëKà$ñØoœözÀÕ"º`«æç–kù/Ëõ˜¬ê”í§µ­F’Ìq¡`´Ð³3×ð…¾®Ô¼:³}DÎ#'ßÄÄ~ëbr‹(ÇmTo'N9Äf·| ÕO‹QÖ7àX}+aF1™È‰œñ;ÛâsÒƒËÓíp“KÙŒß8³Â$¬~š{´â?³ß‘TÞ¤œ“çëL­â­aÁfxãñÕ(,lö ãþ^‘ó75­IBêU¥W kQyœÌ_ذ£E!‚ÚIö;©²»ùÝ(9Ãæ¦ðUñ«pö Âyó`¹äÐÕàê‡/=„­pá§ùiµ2÷No°a6©gÑ_¯LTe²8”*_yºÌ.€t,-X›RH…¿Žº"0ûŠë>Åsky:@æYÁY x*cjEÝ(f¨«þ£ßì—)^N:®?î†DG×°vT[رN ƒ!»†šéº˜O8ääºê¸@Ë=Ë€¤wÃÇÙ’ˆçõÑ×Þx©r&Ñyôظp¥Ûú6 Bû’¥hu¬1Û+­¹…Œ$8pàg Q7„ Òbq–Á„Me¿î•ï³rOî’ÏTòCœ‘-•¿»×B#ÁÓ Ÿ†õ³ÄÔ¥š¦CqÏåì¹®j tFÖÉeÑ+êhxïë9J3[‹ÏžÌ[wLhÐ"±½U¨§vÏûRδʚ0iÒÒ1½.EÁ?\¦.•]ç .5i:ò?ák‘vŽ¢­w2”ùUßr-Ôðt±¦ß8~ýåZeÄ_ô¬&Ç[¥El4KUp(ƒ.$w¹ Yꟿh åæ˜(ô,ÌNBy0No†&uÀ¦Kâ°–JÇ­ÞA•hþi%ó»WýEŸ¬V"Ð~XVçP ÙÀŸ™„Ó/„´Ã. ]“IôS¿¡Ò#tàøž˜ö ÷Þõ¶AŽ_Ðï˜x»âØöÜ(ï@%‘­êvH›?ØXë… 'Øå ,¯ž¡×pÆHɤ…¸šÌ…Z☙ËÄn™hDg¥rÌq̧ÞÖ&éÔ%Õå%:1°ádðú5„íœW&A›ï#Š<šGÚÛ7sºÙŠQg]²ã_Ù·ß‘Uszjadñ¡±øY RaûøÆ-êRR§á¨êK1djº±ˆH]Úö`Çöž}•i51yä§+¡¤NDºL´[<Ò„ ì­J zOÍtP¹v´;J¸Ÿ•4™1`öÕ«6aºú ¯6Üúõ÷h_§]‹N4`Š?þzQÇø {˜°'õÂ^g{‰AÛî–Ìk¿áv!Ñ8Ù ü,„œíÂß t$Çã²!ÀձݭÿëàB¯È$½Â–ŒêYmséö( ЫMBÕíWJi$$î2ÇÕ§ù‡kö]¡Lð፨ 9ìÙ@çk¦Øñg‚ë‘#ýŒæ0ÿµš¹œ£pgFÝ!ÓùR}i+öt‰(òhŽ·U± H•Ž3^•¸ôŒïãœô‹BÍ=è…j¥­ŠºŠ!ú~ˆ5÷î¿\+X»kŽÁî 9{¼ªQ‹ƒ¶NWȪÔ$ç;ë&†˜jÇëjYn :wîˆT£– 1c~,¢K„ºQIsÖͯ¬¨Ï\X—ƒ%èHj} êCc¹y¾Œ@hß4ôƒFõITÎÝÂ8F;ÐäÜ(°Û®‘™»Må™S[¥ŒaE˜§o¿wø¬3Ýê ÖŒ?ª{ïÙ%AP¨;TGÇT Ð[M>á!ý™ƒÙ÷W÷LV0̇¾ ¹-ºÖ×׌þšGój¬ïø,óKöÆF´Ücú*³Ç$…øn3NX<þ\cž3ä5n•þÂ7‘*£…!¸kS0z ˆFZ3^B˜Û „^»´ yp÷ˆKŪFÁø¹Ïß3¡$õ¨£ü-‘yE–˜¡7УߵzØWN\4*0Déò®½ÑwsКÚzÆîÑÌ ÕX'™Üq¤TãÂ'u‰äA€âYnck„.2Î0ᆨ€ Û* ù›\Y­|¹-^¡¶^/ô¾Ûë*s´Ñ¯~êý7•! ÁÁ×@Ø·;2¾&;;çÀsZD`¦Eœ‰A3}Ñå~”Ï–¹9å³._ñBv¯T} %+¼µÌ.¾çÔAøñèZ„òntÉÝX'Ö ÒE…°qŸyša~Th½±æC¢iñÞÓK6r›~q©ü§82Š¡ä­è)"[‰ L)IòÝÄf;>²¶S[»½ÌåXÆ_Ô[ý¤Mò–ÛŒq°}̶1Acˬ,§ñUžÑUý¥Š|Ò¶Ãa£u?{ wâ ü#´·¿[ É9ÆšzÊwèVU16~fàj)µ(YE{­S®­æA ±“›gÊ÷ÎΗX¶Ï^7‚rëÈÜvÿlï’”jYÅ›#º4 hEV”ÖïžøeJÁJÑ“Èîª ¿*Ó–(×-ÚÂW¹ÜŒÙ$¯¯|pï!ÍaÀ ŠUáýå¤8ú‰ä²£Ÿ%£!í ëvQçCšÜ餳Âýg¼2ÝjTê~˃ä/ä1”4W=£AS ^e†pÍ­‰3Šͼ•«²“…J[ܰL¶¹Á«Ñ¯§Ô#ÑYkN–±âVkÕúŽ#¢ÔNŒ2Sr0+“#ÑàK§Ü ò³¡9Ò—»mJ ¥9pÁ ,âð4 ×G'Š¢¿¨»lžÍTФ„¹¶„ 2<ŸÎÀG`HÖ¸Ü$Æ> stream xÚxTìÛ>Ò"]Ò¤s£»»;%Ç€ÁØ€é”FF  %¤ )iD@@ùf¼ïû{ÿÿ9ßwvζçºë¹žûºŸ³¾Ÿ‚#Â¢Š€£ø@ü@I€’Ž‘…ø@A66c( ù '`3…x!¡¸äx(yAìQhLÙ…vÔAÀšÞ0H•‰IA Pâ/G„—$@ÙÞêÐáh"à$›ÂÃß êì‚B×ùë-€ÌIHˆñþ (¸C¼ `{8@ÇåqGWÛÃF0‚òÿW NiÊCR@À××—ßÞÉðr–åâøBQ.Câåqü¤ еw‡ü¡ÆOÀ0v"ŒN(_{/ À `‰ñ†;B¼èê# m€žþÛYû·/àÏá@ü ¿Óý‰þ™ ÿl#Ü=ìáþP¸3À ƒôTµùQ~(^€=Üñ§£= ‰@ÇÛûØCaöh‡_[·¨*ìÑ ÿðC‚½ ($? ûÉQàgô1«À•îî8 IðsÊP/}îþšëGøÂÿZ9AáŽN?i8z{˜À¡žÞ å?>hˆàÌ‚ˆ%DEE@ˆ'âvøYÀØßòËø Fsô@xœÐ4 ÁP'ú… iï ¼¼!Áÿiø÷Š8BÁ(€Ä 'ø';†8ý^£ûïõXÑò€?¿³F+̇ùÿãþ«ÅÆšz–Új<(ÿmTTDøù%|¢@ˆ‰‰‚ÿçïø‹ý/Tßúgwÿ‘Qî„Hü&>½¿ˆøüQ矱áü»‚.­g€óùߊÁè'Ðÿy~…üÿ´ÿ3Ëÿ*ÿÿÞ‘ª7 öËÎùÛáÿ±Û»Caþ<ÐzöF¡gCžø»šA~´ÄêíþßV ”=zFàÎhó„ù¿q(RêqÔ‡¢À.¿µôW3Ð5`P8D„þ¼wÐQ@àÙУvCß-HtË~™ èÉúw]8áøsEDö^^öþh W"€@zV!~¿$à‡#Pèšc0À áEð³±BBtÂ÷w»Ð¶ß0E¢ŠtC·Çåop‡Â½‘ 0@Žžnû €€:ሾ1Ð)Ð]úiù×®ÁÞ^^hã/y¡)ýµþu‹@ ~0Áü,,éú,²ã¢^Þ—osweµ+.Å¢?VÅþîq ‹6^ŽÚ”§¢c-ÍÈ#ý¹ÊèÉÙ zîË1¿{¯ò–3Õ Q*ýëŠG|EC_O^9C˜tÎãbâÖÉ>¥0’ØYa[q¤›Í~ëÚzú±äª ¹e)±p”‘2gÒ£ ºö0X0³®¢†-î‘&‘{Yeyk˜Œ_a>€&+v$Ð~õ_·JÊ^Zz7ÐÿHè¸X«·N´6š‚–2@“¹`$m–*5Oó9ƒ]QäL©2#……¶Ô=š}ËNlùÛtñÀ‹ÔA!ïfg]¥°[z÷ß´x7"Dfe z–l7r¿ Ñ´¦Å¹ðÖ?bUd«sÄ8ÎúT'+ìŦfà6v-^ëL#Ê+Î-´1ZðîGÙ|œ ¹°KÌI ZgÈÀÄ?†Js¥ØyÊ.´ÄÓò¶¼ƒÔ#y$näÔ‰N°- }̪ÆlßùŠ2G!õ7Nð¹P„ß·¦ø¡°}£a}F§@­±ÊQ$]áá¨E]GÑÀ¾Ï«äq«¢¶osL­ÚlzEò{ÙêÑéäÒËúIšOFC|RgxX›X\LÊuäN÷äVÓ=¸g#Å|ˆßÝ–YÔ!ƒ×ÕHÒåKtÓDlŽ„2âŒ7ÅÚ£tþe1mz\‘MD5@±éSlÄQ7#ÕK.Ó žPœœ8íÆLØ)»¼?•Þ(ÌÎ^SÌÙ ¾|90_€tâP:ñ_^«·|:ýTÞÌ$žÞ§ó䈠ýxC+ö»°›žÌíƒÕò³&€´Š÷0Þ%}„ʃåÛÝ0ßfs‹á{bY-0ãîŸ_>›Ûž¾‡xnóŽõ9{ÂæÉ±5™8,#yã9²=2ò•@ÊÚš W³ñf_¨=Ñ æjÍáüDã*uX§K‘TòvÆwo £8‘ãlQE²Åbøb¶ñ:~mvrÃxKÔäy%…µî(_Hp`ìäÀ|át&φ(ñ«J°ý˜|hq½iúÃL`‘ne8Æ'6äת£FÛ»UÝêðÍÓ…±ÁˆnûÊëÓm¹^B̃cT,=Ë…T4õZ/֧Ƕ×pçM£DŠÀKÿ€ÙÀãüæ«úó6/ÑóŽWR¥–™ÛÝ>sLn„þdIÔÍêiþRtÊCïÖé®´ ¼ É#ÃH뚥\‡5%9¶ð ÈR©/óvCæ¨hâH©¡þ6ëÇçm’×o¹†:“TîÎm—:rÔônvÓ󵵾Ġï°}N Ž™ï¦O˜{›Ð}$ªÎò;]_±6±øøËÓùDðÈIó8‚r³&>W[½ôm»ÖûÓ“–®¬/xž<ïÁþý£/J soPØê¼I¸²ã“oÄ’›â^Ñsœæ7LœU¢Œ*†JHå–Ì©°)8#,"¢úÎÝtÍš-^¨ÎIo+7fî¸5.öâ­p.ÌŒÛα‘1¾_í»G¾ÀH#Ù¹G ¦_ïW Ól¶SÕFùçS¥'/øÜ!ÿÄs?¥¤©ï¡J38éí³y¬4½wµgŒÔ{¨¹(¬ïêœèy}¥¦ÝÃ-5Ñ`²}¢C¼ÂëfP‘Âí”— y‚¶ê97ÚLg>¯Ä«UÔÀĵœèÍ(–½ md¾©±rT D›ëÊ8»iz3¢?Ѽol™˜Ò j‹S¾Á4 ÌGòu¨ràÑOgitÙz¢0¸SƒÛøz•v®UaãaÛ«N¬«aLýªÈ Ã8Ì9¦SÌ¥ÇÝô©L.s*ëÂðu[ˆ¡aºPq‰áW$CY'z?…³ç~„5U÷šÊA»ÉÉãN¶ÄúƒºKe¯]ýsÃz›MÝ?>Z¥õ,ã¬4L›z’úiîe{Î ‰œ›Æ±JË!}¨ûí©ýYÑ8åFîƒG ^ã3Š®u&Zg~®Eíü7yqG/x@õ³Ï>öj䔵?Xb …·èóÁ§ÇÒ+¸¾}ÀqB¡XX·ŠÈÝGŽ1ŸKI™ÖJU²¬?°To83OÄr?A´cLã¸Æ¿åÓýv0Z:Z‹8Oî×ò5p^JôÈãÙP‡óÏÆÇæõì5j›ÆÝ?}}ýýˆf?FdÍF¹ÏÏRf—ò¢Òö©Ás(C݆Ç˳þ$¦a<Ÿ¼ô¦Çàbð[%dSXNÜuôûæ’_º¶d;r$¹G—µ0G©z%ÒØíÓ\¥x©^cnrM,(¤9÷Ökqkõ`.š¶pÌ[ž¼Q`\ຠ?<¿Õ8cÜñ¬7;eQ{l…XsïÓñŽ2´âʪìH)ÿ¾U°‡ù3å²IÌeP.Fæ]ܯ"¦‘{N“&ñ»žúaÁçß§‚d®rÐßgzDô‚ô{q·‘9ŸË™’‚76Ó¹ yœ=Byëy_ɹV Š) …‹å~™!Lû”Y×ühŽ4„G@µ‚ž~¨mXœ‰2Ì[mÇägað…ºÐÑvë‡>†l̺{jÆ šäëÖ2îmv¦B„Ê× ¨vº™LOï³I¨·S§¸Ê<°–ToçúâÔÙ’ˆ—ª:Ow7 ç+fooäî+TT“¯vz>?!¹³òryR¸/ž)¦$eâôT߉æíÍšÞY£þBÑÓõ†Ç^%åV©K¯|ì>v47|K¼}Úâw®Æz]HYº;Î\Ô6vëÍÃç·ßw©Žf?×7䤆ËÐÔ¾rb¾}ã÷Hg?®À–/n_œ¡x;§üüüƒœ"pk§|¯.»†û£‚¥'²æÌ¯Ý3 Ÿ‡åÇ`ÔÄf×,S¦JêÛùâoÝnϤâHû_äézÙ?ÄÛ-­èìç/ø„‰Òm*í‹… >#muSаŽáº­sAÒbTüñÚ"sÞLžˆ‹›<Ã^Ám“Ä8˜Êñ,A²FóýùPôÊXÉ£ó.¦IºƒzòëÝù*ž‡`âÚÐé¢ûþîûHél“0 fÛ.ÌrƒŽ…/eº¹jMŸVq²d‰1û+F_ºZ7‘ÃO„Ìe5‹äæ•Bet/¢nt:À‰=o;Xpʲ̋so?èu«ðº@¬Å_`¼„žÄ©¯÷%+û®µ]X—„vÒ§Pí9>TI£.í}à6O»šMÆÏJeººåB‡Ê; pcuscµÞ«£Â>;µ]Ö‘¾PÂ6Ë”?9ù&”öÈãÌ îqºÁÇì8l‡Õ *“Í'ŒÓ=»T'űmÌ(¥uÃ÷( Þâ]»k%²HIÏtà†¹¯[AÅÞŒS7íå=ùÌÁM}åij|~Œ’¦ŸIp;À—«t§å*w:m«;ÈX]+¾ð¿Ë¹^gǶXEOZÎÜaÀ”'dG®øµ:m)VóÔÌx=ø¤²òÉ 5¹à¬§Åhð„õ’õ™ %݇ðwyr»ŽòB`.Rk¡*ºLâ݆ 6n`u†^ºìÒ)%Ç'«Y8C^´õ J׫BU2:ÒîXp’•q Æq¾¦t/³Ýƒ »–ë ÷Gží²b®†ζËÜÒæ[::íÍ‘Dž>ì-uÃçJ+›Bº-Ú–ÈF_c}ïÀTjdGûxý…~Á¾üÚÊ"“T¿˜\è³¼Ð‹Žæ©î˜²è‚ˆQÈ«93Îð¡Žôô9ÚMRÎnx¯È9-4øR`vO¿JÙÍPm}T˜ÀW—lzúxÕBє޼öB}0°Õ7bÐÐÆb2‡–˜—à1«jÅÛLuåùcS:9c<ÿÉGm”úËlª2/Â{cpÏæÏŠÔ´æô]ïë6Yµbk ÛîÆ†*áS,O9Ýܺ)=ù0á{Ø ;aô§² hV“£ãju‰Õ.Øð&.I8ÞBȽŠP²5]A7§bû„·¦˜P~énÓ±Ïên÷iˆÖ¢Y`žÎô²Ü»äÄJc믒f´R”d>wR¢H³pÌפp"ï¤ÝŒ+7§Hæ×_Õ’+d6.‰ðßzޤÞÇ:3±Þx‘&3iÿãÖUšHÓËøP¯P”¬¿L]4÷z˜ƒV×}¢NT?½‚WCŒ£å¢¿,ãûÉ{§çs…C Úa˜{Eúéìb( æ™·Z€”–³ðÂÉd"“Ôso.–F©Ë÷F™=>#Gß¿(Ýo”ëÖŒx!¦Ê"jÂ_”ÝÂÅ<åy¯e0 ¤ež®ž”Ù ûŒÜY>ˆðChZ¯¾«b~ãû]To‰?øAA(jo$D„ì¨Øtm¤²‘§†¬ôyMíËïŒbñ&È𜧳•þ[›Ã}éxÆ… J"ßÕ¼œ×LpûHEÞ°&ǽ©¡º%)׃z8—‚kd¢7 vTr·*ýP­'&æfvéVZ\Ù‰9b^Çñ챌:„ªGÚ¤üÙ;ÝEqm„£ë"ò±iŒ,aö]zºÏ™“(ó G* ±†#Ý \ülÇñÀ~ëã÷¶|Ú[ŸI ^¼K¢*u¤ó¡}`k‘yöãŽ/ƒât'›9[¥O?_LUA3ÞçªO"±v\Ë’ûÊ9]1>?a¬^ÿ0éTJÑÆ Y¯2]èk7·â-¡Æoø ,Öç+Ä»×…¶z¸vo îd±¾\± æ“ 2è+ÝÔi„„ÈͽÚªo¾ÁDºï²e_æpÔ}ójçÅnµí® ôäÅhæ6é>Š¡§ªÞj<¯!–V³èG¥ž| ›NªFøòª¬yÎ7"zæ]›€Ãúdﱎ©*Õ0PäzŒÇMcSÐLBÖ)3¸ò9€t⢯åTÓR}Ý^äZ]ÖÄRÞôñô0e– ppÈŠjZ;Þ¥3É‚œª‘k!"æFµò#ý.[žzÚ= Þ¿± SdÒï T½@ZU‹l}#fgôÀ¥üV›¥èM†;ïò¤‹Ÿ™%y21Ö˜& Çóúóa™Š÷¾º›ùö°*É8Ö =‘ýHß^Û‰8`<³Ö²PÜÄ‹ÍæäWgÏÀ'•N)™ÃNàwü¹njȃ¥‘½°õø›z_?ïÙ‘ã—{¤e¶®ThˆÞVÊÔºRÂð­Ïw§Ä«~?lô–õ©Á7¦I%íÓâ“ÔVj¿,ß›ºÊ£T[—sq؉î³Dn¨¤ËŽFµHÙa“ôú|c»¸³PglužÅµþÁŒgQ{dB皸Ré„òñ›‘ôv4H¥ö¶ô·¥|fìÈ’^õÄgë•^´õ¬Îïñº¨ù3%Òne-&=<ÚW1N¹œÎò¾ÖNe¦Ù#=V»!÷÷@ª_w˜lH„|jn®éåúLÕ1´Þð!$¸Ü4n]¾Î/Q:Ü=˽a•à?ž6Ê Õ,ºÍˆŠÝ½L­Ûò—ÿØÝf²z‰ÿë/…^u©Ap`æ‘´¿¢ƒX%Œ™Ý/¹ýG¾2æí§ |>Ç"ìÅNïÝ{=£˜Y²BÎ9¼‡ƒ¨˜e…¾›o÷v<±™yú†k&›/ð¹^r[½Þì¥ ©aEO‰ßëí=ü;±ýø§¾ŠÎ©kWFW/ rYÞUÁrŽÎ¤Ú²4ügÃy5²çáUá¦Cø\W¾Âþò±PF¬w8etþ±1ì€k[ÀÃpðbyþe `³7A– $Mä‚§o¾YnyÌA‡OÙÐVþ%ëÖC¬Á3ºÓ£z#y¡kÿ …–.χƒt9tí>?…VÀ=]Ê¢øÈ­ïëçÔ*»x¼ëSÁ)2Û .J¾0Mð é‡É):“yÁÉVÙ!Pì»×é,$Ýfí#ô®¾L¦ së|kç·ž¸‚V[°_y?77N‘¼¿+³'FþЂ&»éìâõÑ.¯‚|XcE5>C Oîû›øìU"k{$“.÷Ö3ãöFÀ¤DÊõh‹œŒ1ÓÝ–m÷SóÇ^UÇ>ŽKº~¨¾ N^ååü\ÊÛŠžm‚QÿÏ «Yv<;ófrlG©Ðê§ -쯫ò5zíÜÈ.Náþ¾~¹´‡ý"Ý}‰eÓ|o'aXõþù?². /ŒÈqh-¿î¤-cúwÞßPòñ°XÍç?"8!wU£|H% ©L¤Xð/¤¶{¦{\îtÂÂ^~]_ÕdÞ¥«dtfkŒ^jS×ô<»=£ê¬v¯·)ýµxü&'—ü‘;’‘SgÅ*Èré¥íª´´Ó×hÃH$5 Á\— /£‘¼²zyö*âÁÕö|ÐØ§%²oÜGÙw(u%¿œã>"GšâlqáÅêÇ[º/³öñQZªç:Cy ýؼ—„ûáÂÂÝãk4%^LAI°;ZÓA)ƒBvq?,`µr,¸ï«›œ-Dz4lPÝ5ç,1 ÖŠ[:Œ¹2_D²`pýä%‹!¤2±xjÄÏ= {AÞ€÷3EÑ4§¾H»Ã{Ã쯨Õà§‘%¯Ùïfîìžø1zÙÝ<í©e¸÷€Xæ”z\Âì•6ö.ø!ÛïêµYТg›¢°å›guÒä›GT¬Q‚í·Y·djÛPlˆÅM#JþÓ•ªt"®+¬'™¤¯Ås/c(u‹'ìQù¼mIú'lH–žÙòÁç.±*zª¢0ïßóî.»5h^²GVR\Ê«Õ[Úœ-ú<隬pOÁ‰˜¤}9™¤ÙÁþ±õ‹ä!g2EùqÄë%·à6.ôïÕCÙ•‰ãóø¡¥¬šŽ- «ÂcN #§ Œ]Škƒ@Þ1æ$ªKŸJÇ=ùCSï0Áð”KulWžªt|ã5%&Î7 é7JpœKqÞÏj‡+{Ò**E7\Nïr÷ÌûÞÐ徕€aÈ×»„š¿:?¾µ˜ÊÀ¸ñ¨†! ¼"]÷í¢êc endstream endobj 132 0 obj << /Length1 1399 /Length2 6085 /Length3 0 /Length 7047 /Filter /FlateDecode >> stream xÚvTSkÓ.Ò«4Ò!$ôªÒ{oR ! $¡„"(½÷"½(]©Òé(M¥ƒÒA¤üQÏùξ{׺wíµöÞïÌ33ïóÎ3{m^.#SQe(ʦBbEÁ@<@UßÔJIA q ^^38Ö ö—™‚׆ÆÀQHùÿPEà X¼M ‚ÅãôQH€Ž§,K˃eäA €8$÷7…–¨A¼àP€> ƒBÂ0¼ª(wîì‚Å—ùû à(ËÉɈü(#`h¸# Ї`]`|EGˆÀå‡aqÿJ! è‚źˋ‰y{{! …v¾)(ð†c]&0 íƒ~@°?Ì€¼38æÝå„õ† a¼Á îCbðžH( À˜jë ÝaÈ?`½?À_gÁÿI÷Wô¯Dpäï`ˆ£# áAâàHg€Ü 0ÔÐb}°"ú qàðñ/Ü â€üÞ9 ¡l €à þE㈆»c1@ ÜíE±_i𧬎„ª¢‹¡øµ?58æˆ?vœØŸÎº"QÞH¿¿Np$Ôé ¨§»˜9îá ÓVû ‚7Qücs†aR 9iiIÌóqtû•Þ çûíÿ2ãø¹£ÜNx°¸ ÿ ðÃ@¼`,Úà÷¿ÿ^Q€Á(Ü p€9ÑÿdÇ›aNÖøæ£á>^{`è×õŸ·»xyAQH7Ü?ðßýÓ47´4ÓþÃø?>”ÀOT *')‹—«¸@FVðï,ÿáÿ7÷ßV#ü¯½þI¨tBäþPÀŸÝß4¼þR…À_#øw^Ê0€À?Ê·Iñ7ðÿ·þ‡üßdÿ+ËÿKùÿ½! O7·ßnßþÿà AÀÝpðJöÄâ§B…Ÿ äC-a&Y…{"þÛ«…à§CéŒW¸(X’üc‡c4à>0¨ëèòGG·_Ã Ž„¡0ð_|ô_>üÐ9ºâ?*|Ã~»`ø™úw]u¤# úkøÄ¥¤4‚£á5&.%ðã§ óù-o€‰ÂâCxŽ'šâW[%b ž3ãŠï‚Ë/'Å¿ 8z¢Ñøéû­|õ¿×¿Gó9RLO¢Bî׆´×(³y‹. ‘Ì/¶E&XuGHaù>äû¹è‘fjŽy¨ØC+¯¤M= ôgúv<ìcÛ™ýp.M+K ÞýEe[´ ïÇ^§3ì:uÍùLzäúï‰Æ´ö6Ä6üÉ–“§¡2]+UËOÎÚ0+Ör äŽ+ «œÛ¶AmÅucÛoeKwm“ái¦mþîŒ0w¤ÒÃú÷Å&îqÿìloöÛît‰ÝBÝ×ÕÒ•a ¬Œ¾:\¹I=¬L‰Ù: >©CÕg© ܬň0¾9"Dí8˜ýFÜVPÊ~@q) ­•¯t}ó~•R«bâ bòé¾oêÚÚHŽÛ¯L‡Ö`l¯%¡©|©~š±ÞØk™ ’­<¡ëe<—[m­)äS°ºé,} ò³s†žÞ}^iæ~) —Ñ›äzj²(ÄÔLÖ¢ûJRÎÜ $g°±sa¸ÄÒÿÚä4ÒÝk›Ê\‡YmÕŠlébD@ ÝÃÆÖú^÷$ÀžQêN¥üã·Â÷#^qJHW>»Ìд£Ôã:ÒiÉìùbKò¡Ë÷Q7¬šl±éÅ*‡®Ç}-jÿŸˆ’ya§ÄÍ€‚ížJ…䌰®ÆEŒñç–—µPµœ¼®¦óQ*òš¬(åW|rÁ‡5Óëa\RÙéI¶*ZBZa+ÀY‰ú¨.^*‚‹²hç—%†›Á9ŠºÆÓñY-;œëÆ>ú G™_ë¿çÓMçêÑV»õÒíômÍrQ6‹Yµ­Ô(®¡ã´  Ê%u” “EåQÔç¯Ó´9aOâT¸¾…(%,wF{ÙIfÖ"0‹Ë2å‹k—GYßë‡8HتŠ1Ì£,#©è®×ÁmÁFP6´yOË=Ï.ð zû{“ÈZD”âúÔëGY”pºë¸;?-±÷Ò>©'@qa8²´ˆb©WŸ»¶b~r®Émî ¤½…c+¦µ±7zîRêß\[ŒZ9–upûx™}m¿êS”´~õ&+Ÿn9K)÷ÌHzZ=žd"Ý£0¾O #fÕzUvØùðeû uò¢ j˜ÆžÊ¾Ù丮VçHôhTM ›,Ã=H$d3~2ˆåÍpǧ:–ð é#Û—ŠæýbÎú(D¤j¤H¶‹nú³w÷¥h2~Ò»HZ¬’V[÷9u}˜X=Kû5L0‰çƒP·i !Xíûý×~¶ŒÏPÛdùܦe«é¤/J½*<˜'à`YË=Í“I¾^ÈøÅíf5X’¨ïÃ?„*ߨKåe©88š\>1RÐïÛÉ÷Õ¢ŸÎMp;faý°c²»Ê}š\ÃÊìû­×ºsƾ«Õä}’• ¸Ê}s»Lå!Bqz¼}´ Û*u+‚£ÇuUÁ¡ÇÊës»—‚Ù³—$‹…`w‚RnN:ÅI ºÊR¦¾?M½bwÃ^æçËôŒ{´)Å zNNäS¢ÓíËÜJ¯P¾yd UºÊÕÓškçîñ)#Êçœð°©!›|Ú–-z•¦Ž]ŽÞï)·á˜”Ÿ\ϼlÅ1ƒH¡÷:«Ù¥Ôr·¶ö½d’Ef¶£5m&ª/ ä».ö‚S ·Ïü©ƒ.i&Ùy’5ïøç)s~èA‚jÔ#‹¶7\ÍÖá‹ýÜ~cø;;œÑäÒëÀ‚•-½q¯ñÆÃðÞn‹›l¶mká`b[q%µ˜âNkÓ_z¾ô¶ß㜳71 M,[—>ûiPó Ò3@ý¢jR7îu×v<žz/¤³{£ÑN6g·˜çèºy¼4”®»‰™c1É,UÝq‚²R¤!ÌáRÍ+ \Z¡»ëˆP–0D¦ÂèUíæ%¥f‹‚«dáÊL¼LCs¶y ì âls?§Ù÷AÅw}Q­G§“ ¯A‡c«ž}ò6ç•…—Ùëµô¿ž¨UU?Ofxý2mVÓ¸«í[AHmK„Õ$IJ>ÂÃ_wò¥ÌášY×èÞyèW…Ž!>ž€Š‹Áa2íRë¾'Œ»t±,yÔíWÃ’ºu§ŒÕ_•ïu“±W¶ËÍõ‡7Ì3ÐòðÅySÙî ø ä weö[s`4næj¼ŽUüæÿ)·#ò’éÌO’çãé§–}ì7ý¦$í£X!2ÖšêÜì}a£,Š”µdR%ši ¥§ºàëf¾RpÇëʼZSùD/¡Ž5Ò-EÖû¯õÔ„~d Úö9š{Û°^kvŸÇ­0¤ÎÌ>¼46ñ gýn¹ãåÝ] tŸ‘ÒN×à'۬׺̕zr‡>®¢ ˆä¯²%°§Þ%ßeú$îv჌"qQg±}®/Ð'¾iôØíDßùmp=«æLÀûiñÛ7r÷o…<’uZÛÝÊZ c|±‡rnaœˆïJ Ž´ªãв/ <"QD¤6{„3ü(¾—I,7WK âi/ºOùfÆðFÇ2×½@³An·¬žŠ;ði…ŠÄÏòb-"›œ°ûD³U…@ôôåúkœ3–o‰¬u4¥8S·<ÜyÄòšº'—ž:+Ð^s sÜx pÚ¢j²gL5~ì[Xós©…z£øl•õµjöN±eèÑ4ÑÎ…qÇ ÅYgN&ë…m{áú Ä\œ\jÒÊWyÏÞâ®ÍÞ/\ó¸Ûƒ­ÖÍc€ìÎ1p·Ð3¯Z/ªF˜ < 9P ‹/Œj ðÎì:éOõþ0t'bÐV8VCRv£þ…šªeE`õenÕ³ý/½ÛXEÉþö¤)ýnP‚[;S¥Q,«jâ\¨Z*Å›±Íã;§ [ã!W|é±ÔôÒgLÞSÓÓÊ„QzpuK®ˆ»ÇYÜ7QBü©ŽoÎòˆ,TCJóßzjМnV­Iùv6Ó4)ÒÈçàœV£h»|ÿžšÚØ©öñ;„ßÉš"IT%OƒÍ0)èœr€7êpM{"¶öÂ}>¥G¡0þj¯õçLú×#Ä\ƒéû]àSy$_ uâˤõ~âã:QSñ *ŸÊÁç­N5 ˜°¤‹Dd𔸵 ç¤È´¦.9·rAl¿üH(=óÊ0Hð>ßœ0f„Æ#Pé‰7tmV“Ç5¡xÖnokûb4,(kÀk}¾©§~ÜÊãô(ä±²Ã]{^Òr„8¾¾0ý^7o|ïYj§¸¦ ¸/‡ÌÖCeáGÊ õö…{Ë묫䓄c][r²{¥Z“æïâä’rX,ݲ+hNûg¥‰Å¸Þ±´eƒX ë_HÊË, Sn¡4üF„‘-•ù™ÐT„̬éô¹çeõÏC±^ê [fa–;s+Þ?ÑSA¡ â•H šöõR2¢líD;îW.-´÷ äÛtßUàï ¦¼’\{Úûc¯nõõBì…®¨€c>"[\¢9Ùa?¯ôÍKÉQïg³Þ»Ì»ÇÇ>!®&´b~ÐMÚü®DM¦11-´°²¾V4Ÿ K :;û&­£ÑÀ`’‘ê:žù è2ã¦Uô°ErhÏÀƒÅÀØä«ó±fç ¿Óå§1ÌyJ]m¥ö ªµÁU( ×_rHJzŸWy–ÒeÂF2É%ME,Z_~Z¿¿Tp?ìÔF*’ës2Uë“¢où¯×s|bV飭Î*Ž \´Ý¥bzPØzaŽÙ ÑÞŽÐþX¿7e®ê$·UŽIPf¥¥YÀ‹à2ôAo>ÖÌ·"yîZéP^0Ÿ~õú„ì˜^ÎölǪ_`iÿgÑ.Ö¶ciçþ§³Fá²:aåiF%´„ÃBçú#î\`>©^Õe‰xöYgCZ©-ÍÏ|¼ž²âóЉd$àÝ÷žA¯{gî¡díÆwέŒ4‘y³Ä…zíƒ_ëóÇ©e©fô»Úã.‚4…¼•÷>» ÚQ\™O+ Ð]3a„õJïJ-/;Ë;ÿê»›A.}dáþÜ}½ž>jçÍÒˆÔè\Ø [~¡Ù'2â­÷tH%ónì^Þ™‹}í6M>¢}©à'íbÒµô±é–÷ÖUB©§“t÷f¨U>¸‰al…o|0eöÉí˜$bN¦./~rŠKKÅôX™¹‰Nä÷æ/sÿAÍ¿màÂ˲hk׫£¿ûÇ|¹æË‡HènϳO;¥iÒm]¢ì+ˆaÔ®úœújLÕK`Ø/Mpéî#‘-¤®¼Õø)2G¾Ÿ×”Š£ òÁd´H­*ÛÇ8¾Îï[Lû:g•‹îü ´‘¡o]¸TgåØUóÍ@êÃ^¥[Xû@çÊ©Ùâ ŽÅ'Z™[”ƇXM¤Ô¯Êëý;Õ²Î;fiL¾}˼?fv&‹ ®HÛ§>æMúAÓªtw“åV²ê|ߦuXÕ}«žš—4”<Ê÷6¹Ý¡iÏW'ÐΡ}Ñ'2¹ÙªÉ¯ÒMÎr¦êÙrW›¬…^_qå´GC;9Ö¤ª!™ ‘æ³?L®GV+/=ÙÕ„I™Ç2Ëö P ­wÚȇìñI§¸v[YW~j®.ìJÝ .)»O &…!z»çÈúŸÝÕÖEÉÖk¹Æ#ï¥j}aiž¸cX¤sùásÑ©Ëés*×¶}ØO4x_è;*#mÓ‰:ÌSö®±µ–8Üès„ëµSC*v$voÔyÝÉÑ.† e3Úw¹ ¤(_œäCÓ“ÞÌ·ÇgÀy³3WË.,«‰cÊ{ÞY!Iú'õ|íl“Ñ’1'@öo­5ªÍ4 `¯¾ëzšOF61ß–%:ø!#¼&¿½¢Xi`žV 1ÈJY™4Ç©Pô3ó¬“Ë¥ßûèÆyÄ£®…9œkºHní7$óªg5ÎN;óÑ9€U,ñ´\†lÊtd +lQ6áEŒ&‹BZ<^‘y™fT%rx¿DÒÇ›]yü°Ö½¤hóÁlyH”ô¶@¸S_Áõ¨9Ñ"9øîšç,Ÿe»âÔÂQëó$»‰ÐñÁ˜|DrAçý¼Ðõ÷o²¥¿¶ŠÚ‚9¿„´ G;7rˆˆµûÏղʙÄ8.0;¹Â x€ 8ìm¯¨r¦háI[“ßfä÷ªeÉr"ùNRû¬ÌÝõVÊ›„a¦É)úaßÓ«Œï–C7ÞÖ eáT!vËô7?®§tmZpŒ “Œ¢½®2½$|¼ãßxSöGÃÜÔtÒt]¤Î5Û,ØiêãTElŸ¬/ñMŽ£¥ÕØwö5Ò ¯9Œ¯Ø‰§ÿx.ãiÑ_–KW7£Çâ7£,•…Îj~`¥Å÷\EoLÿù 1Mµ× ¦_·âæ à‹^²)€œÂZ:7ÔŽJ÷ÕmÒ½Š$ùù åÇ픟Zô¯J9e$† ÓåŠ,qÕÖ´JÈãI(ät ¤P2C<ÁìAf–‚†³••[ójK`Jß]4,t˜_P'•ætƒD[ûÉVI¢ 4›ðË€¼q¯Ô{dÛîô FÊù1Ò§Æ)y]!“w@X»\GÒ<¿cœ!f#zKð9™{»ô›ás×Ã¥6˜ý J–XbhÓúÂóòÒ)¡U4ðæ5Ö d=V'üÅÛy1§ºElªñG³$SÅ‘J½yÓX.ïgC¡¹ü?wkW³`"jYî»'†ßаS6£F‚4]}G' ¾–ôÏ궘ŽëoC›JÍ|U¶ö6úÌÐs:[&(gúÊš²qÁåCoä…ëyÒZ²¯’d¢‡µtâ=AD&ø`#×ÆÄ Vßœâ„/£ýè Ó½|ll óÇ/»žÔg[¤ˆðóCJJ·ËiŽb×jÆèlס+E;o˜ˆunš“×¼ú¼’µJiï»ùå–‡gÇÓw%ä/Xf_¸W°·kô÷×frÞ:m¤Zô`ÍTŠbž•ÿd·hê 2x!ÚæaÔ•m2qþö,»í(&§^²;ä¶(6à0Úô‰»iÇF‚ëvYÝ^oÛSëèlé¶yíÖ…LE«¦=K+4ϤŒ]\}a9ÏÄì¥Mç]‚T¡Q†…{Ɇ™ÇîŠO·ð~“® ·9‹ìûŸêwy^OÚ=}3¦ÅæÁ‚C¡¸ªgîh6Ož£Kõ׳”‘‡c\%ÛÚARŽu]¾ÉÆêÜ‚aN «šqP’.7gä¤%«ã;ËÙ¥l9Ž›î-Ѫ¾~°îrÚw‚âígÖ7~°õaæiäÙ8%î®á²ýCÅ„¸ç®GR%âÂ|ýLî²csFÛµÊêƒÞò}ÛØ;ôà¬{‚Iw–߇o‡7E4÷žõ4“\n[ZfFÝt¥°ì4_¯iرgÜt÷ùlZîÐ"ËÞ8>%‰“ªH /ä—M½Î\eéØzï'$¢,zJè$7L°•7nP‹s½GüÁ²¢`îAQ}²‚ó#CŒ¡ r—?v™9GYb:ñVâòQUÞ³Ñ÷u¡.°Dž Þ·+Z^„ëÏ·:·ÄïêOËÍÖ„Å冨¦63*_S&[h¿Àð’võh´%o§³ÁaöÊâkîÑŸùQ-ß ám*ؘ±s9^£Ø[×ëâ7bêm„Sʳ²‚õÒߘìw¡éd‹ãæ’Ð+õØ€‚“¥)cM—±¥IÅÊIøòäóËOzʱ&5‘÷lz5uÎHæ¹}”¯ÉmiÅ„1_+τަ—¼‰«šoºŸÝ×ϤfŒ{óÒ‚Þ‘ÇzàcnìǺ>:¤l¨B…ã µKknk‘ #Õ>²ðJ>|~§#@ª x9ˆÛ¤±ÿ3l0­éÐN£ ¢RµR8æYäÉŒæräšaë)MBIrFáv›m´¬vçɼ½"oÍ”4ñs?¸ÇpÉÈZ1Þ=:_«Ê¢'1ï0ài‰qo•9Âæ|sÓlÓl™L¥x¯’ˆT™*Õ£sô&‹ýPð8ì²Ô¡V endstream endobj 134 0 obj << /Length1 1396 /Length2 5974 /Length3 0 /Length 6925 /Filter /FlateDecode >> stream xÚtTTkÛ6Ý(ÝàF aZRºiÁa`ˆ†îFJBJJ$UPJBº‘”¤»CA…oÔsÞó÷ÿ×úÿ5kíÙÏÏuß×µ9Ùõ ùåm‘60$Í”µ ÍÄAAaAA!NN#8Úö—™„Ó†r‡#’ÿ+@ƒ 16%§DÎX‹I‚Å%!AÁ»"Q’€Än h HÌ„SéꃂÛ; 1mþ~¸¡<øî]ñ;¿Óy … mÚæ‚é…8†H(†öùW ni4ÚUòòò€¸¸ Qö²‘€Á€-Šl`öpÉ?Õ1f˜ÝŸ3fù(¸7`!ˆáüõûÏÛ ½l‘gŸÂ勞*ßÔïâÿøÞ€?Xà¿+ ÀB˜‡¸„ðï2ÿÀßà[õ ð¿.'øOEu„¸ûfxãðü‹ÜI†øw$†Ë0€ûê[ Š B1ðÿ·~§üßxÿ«Êÿ‹úÿ}!gçßnîßþÿà q;ûü€¡²# m$Fˆÿ5ý‘²6Ìîáòß^u4#y„=†âü`A‘?v¸» Üf«GCþéïU`z8Ã0=¤;üד%(ø_>Œê N˜¯Š;fa¿]0Œ¨þÝWEÚþRŸ¨A¡ >$‚’ ‰Š~`ŒLmaÞ¿ù €H4&À` ì(’_kÅÔÁœa¿öËAò¯âP ãøÍLç¿Ï¿uƒyà$Ó“H¨T¸cUxÓ· yf/þµ!‚…¥–G‰fÝÑ¢h®©g~Z„OUÇÜÚ–3 ¤ë}z9:éÏÌ»ÿmØÛ²=;d>M-¥Ü½¢pÈŸÿþüK»=ŒÍÉd?"žþh…ò IŸõúC <‹Û)&“?"Ä;„7^¯þlqß0¿»¸Å_)ØÓ˜Ññò¹-;8±fìKè~3KŠ*”E†‡‘úý‘Ÿ8±ð„3…¦8ÆsŸ‹„Ìþ¹¹¾ìžîtáãçšoÄÊ#©i|5Øs’{i“²5êܱ¸D¿*¾HM¼ÉXäÉ5ëR5faáHèbtJXäáÑØÉ(Ýë#5M£ƒB\}Òì?|}žqÊ ]kB¥êBp }âðrnè–OIRËzËÑ#Õšµ…©TÏáàˆGNŒaï!ÃÀ^·bÞ¼i¬Û¡Ú5Ý‹˜ÅöÌD×Føðƒú¯E•FÍg gµªÈüõÅæ`q…¾¬[*2>¦¢bP¼é|dº>õTõhg;dRÁ |BȲc’…ÿæ6–ò†Å’¶õ…šöqô@§Ø >(õ’ÍŒkM­òÊÖ üƒ+äg‘Õš­áþgdqª†‹‚Ÿ-/­@Ÿ¿|8Vafz®•ˆFJ 1CßÉF‹ ¬ï)Ø´ÄáTúͯ½ VÆ®"5¤é¨¹KDÕ?Š'ôª?fŽV•fºU»• ²ÏùÔXâèÛìë¶8Êv‡N µ¨v t¦€Îwû÷Ò%1¶MÿwµÇTô)týT9JEÞ¢Xй ¬“¥pœšÉÔ;—··+<2޳®äJ¸w |¨¨“ê«ÆÏA®»9îÝŸQ#Ñ7 Ï‘\õ´ã=C æl= 1‹M+ÌÆE§×yÔÞW;uƒ¤2gȵávHMßHH,v¬Ç©z^Î.ñ(“²£î6·/JVÈuGA|ìgnMy“lE?ÿÕáëSO™ÉÆœA4o”¨®‹ò¨wy‰ ¦åò¹Ã…òˆÌŸ¤Îë6Ïϼ–¾}° ‘È£D ÖVÝ\néJj8Ì%çDuAOÍ? ÕΜpˆ¨5éyñ[p3nBÄ{çEí`iZñ³•BÖÞöÐH«R­þóÖÄâ ÐÝæpþB×m—ó†‰ÐîįYMHò«‘@°¦^ë‹Y»~6yÝÏIå½™ñ„|ÇœÉÚ?‹=ûî ó¹²7wgf0 êi±ay!p|çüŠç ­ç˜¿•y•5y õBÉ!|Ñ|ZâO%’î½xºÐLv5€õ’¤$œòwq|ÆÈ=èžÁà,BÌÕáÓSsF;_ßc¹Í~fRšiÆ Žh³óZ $(Æí¸¢õÉA$^ÜúÑñ¾À°ÝQëÙ»pòœd Êq¯Û"õoCä~R(ƒ2¹‚ÈÂûÌeŒÓÓR‹—‡^®ˆ×)IÃüü-Þa@ßr°î¨þò|ñ[Ë—Ñ‘)Õj¢"]3"›|Ô@¼_Åätº+\ ( `Í<Éÿæ\öÔ€TZ\q˜©+ÂGÞ»uÿ ~bÃGÞkâDnš ®—ñR¤‡x¹”ÜIü4‘Â’ØbÒÒ ð®Ì³¹ç?›%«èñªw”§*hÉ[øý‘Ýwr¸Úò˜F%ß{‘‘4Ę$ì1õà¿8'T×Zt\~j3öÌÊ.g7ºÅù„½<¾úmÁìö¡R!Ý$F¹‰åkµ¢o•ú‘=" ¿_¹s; ëÇ­z×™Ú‰#fUCGn ¹Ò ¡ÂÁàYcŠ*‰é—œ…6y‹é³ñŸä3ñJ¼ZóâÆ…îyy²@峊÷ñqo‚çû³é¿~Rºþèý^Þ× |ôóÕjHïËY¢ˆ­®ÖÁ]öIÓ»bÊ·¥·ØR·;\ˆ¸xö4Z(† ½èDØ…‡kv÷Ê–†Þ±¼ZÌ­Æ©ŽˆL7nØÖH[s»–p¿Ü¼3|Î"Kãc³¾&#q\.¯VºÄ›åˆêñÆ{‚ñi}´ß/gfí ýû*T*-­9¤R?NÊÈËjœŠï‰:,¿sc-çý–·M÷Ã0³{įÞç"~¹ãt=«3Ïï¦ðÄÊ'Žœ>ª 8!¾ ámÅ'Kßñô”÷ܯçpÉÞZª=h*V®<ÈN™¤v"J´Å¥åû&Àâ>à~—ÌTmp—LϼÔpA=nT>š¯Qö€'ÊÏçÎèjÕS†Ï×¶jïf¼nLfÉ/}1¶ù,4cókroဉ0  4ÆM™îúsj™Ma$Äd‘~áëÞ¢ùµGô†Gþ²‘¥/˜.›Ö«ù|äÍàÏŒ!Ö4S4€1Ǧp–OáŒ}ñÇqÓ‚sÜæqZ‘¹É”êºEìÌÁÊ—@“£þ 2&la[éNŠ×QJpz´¥udEÑU`X+èE^LÒ`qÂþµ¼â§ABî<Âc¡™&"QY¥­o¶ôOuÄ#ð$9{û‹\Ê€>.˜Îóp`oªL_æ'EÒ›';æp*“'I~’§ º‡S¼:ÂÉε›7ú&-"UØN"oÒùbË6쇶AÿÖÁ*çVÚl¬Ûf_U½Fw<ö; ¬yã¯lVÙªMñ_{•ËÈ›¹Éþ´”R(˜î¤¨I$çÑsß<Û&nO«kyå㔸ñÌôa ^OzŒ)kSU!_º›‡í92ëŠÐ^Œ6xŒn©;‚ÇlXVìûŽ)ùêã~—¯„ø6e>`K!™ë‰›e¯:\Ã’>0½ºw2ɰ®€Œ”Qnºáj|Cô3§b¥ÉÓÖÎ׎(Œ^ ¢k¾ðº‘ ‰4jq%fŠ?9pÀ=‚YkªøØl´'V;æiwVkJ|=Κ’·ï-šPTQ*Z‹ºÖuÆöÖñ%ÎÕšÜe‹udã¯îœôj•ÝÐ}xóvwôM×s™<Òxê•Õ_ögãùØd²,›H§¯NF0ù!KþýƒûT ôAïi<(Å2lR«–n8¶1@ΰñ£\ß1¾!o]L'ee¯zsšQ úopÚv븟~%´Z4’¿WßÚåVßGý&Vµ44SµE”_Z¾átgJý•ŽË| IÕJèsË0”ÁMVùü×—ëÈéÊ, æ…`”ì\Ç}›TÑ;µ8?X•‰=øšå7ŽâX?¾^>›--70¹É¤a–Ž/Ä•#zÌ'êÃEX·„§&~ÇAÀâû<öä+éÔÀÿ•¡’œNLÖÎP_2Íkf¹Ê%wj NZUºq,öéùS:”2Xý¾c{JðÔZ‹àÑu‘l^ ¾KVý(yýýmAf!\ÿÙ´„Fæ—µÔéL—Bg_m|Œ%›Ïæ%~Òmg°ð¨ÀŒ§FGôýr”Øî¸õnK±]*nYÊ‚ÑÕP üy‡oxp”ØØýÍ«à®Â¶³òM:}P·Ì5l"šo0ÿœ(/h^·z"¾èîDPL‹í®ŒžI&³NrÅê©Éó=&®§wØ>b)íÒ!+ÏM¡^%ïtšP̘c+Ó¸b©Ü"%ÛÔ²gYÔÒý©½m)TÝ”ÃH¼lÏ6À'Ð%·âè_L$µœ­ë{ƒ¥­Æê‰CwÏr[lfQÒð§F± ‰•@{9kZ‰¯~'§Ÿ¼9ÇD’–ýƒ[ ÙæÖ£N–äáíŽõãœúÝ1WµCâdµ1ö;F~c¢q®Ðª4³^ÑÔÇBº¯„‰‹6í’Mß¾Õ>]XøN¤¬[ˆ]L™PZM5§7‹Ÿò*4V ÛFê¶(ëÇÃÓ7ïÆ©÷&ÈD;äµ/ou.|ÀyóÁÛСc)£ *¹ ðŒmtãWBŒ°˜H­UÏÔ¯|y©ý-¸é™©õOŠ*õѪ"]×§E¢mùRòH…ΞOwK¿<Ø6gŸ§ý4#xþ z–K‰W¢+¨çBh3†óŽs¶¸Û€‡•ؽ&}Ù­AíIù)nl¾T˜ãÏQ†÷~ûg» ~³›üQN|jºø ?M†Š¯bŽu%U…è|âd_»•qãÏÍÞe!ÀcåvjÁWørcU‡4ûº7?h ¬dQ š#«:ÞÄÝãt"Ö® [ôK¨u û„ÅÀ^ö1hCôÌ«.ŽEé,kZ׿¾Jj5¤%­­7rÑGevw|ø’üP4Å|ìPlêºãìà•Âd¤]»\×aEËš“ÙoÕû娆£ö¬-gñéžóý›#ìæŸúœ:Ãeùéd˜ Ÿ©¿§ÖXç7çÕ»WÇîÑúè°v§¶sÒï,¥àíÏŸ¾ß­#2Z_K™ü(B•e_FUK£P&#î–Ô’ñ ÛW"^W_8lI­ ù±¥x£'{Õw¦·uóÕ¤øÈqPÜL§ çГů¶¸g3Ý<ñ|’þ_ XBÒÐDUÌî >#¸à’@ÃÜüGf}Dð‡[Ó¾(•N?GUe+µØ—â!Ü…ö‰ÚcÓtÆüUox¿ÛºÑ WZlÇtZGOES¬6a¦}èé»’Ègo%WÂ+¤ÍJ «æ‡Cµ,Já/vøú:Ô½£.>­¤$?j‰ãÖ=XàÀM4Õ1Ú0Ëzy“K€%ŒÕÌï«*Ò±ùͨâÌ-W+Óòµ’ˆwZÈõ2æ&%í죶—%= öü)\Å7Q³}Ñ ž|ƒX{Js<ÀloR½B­™,ÍvIqÔüüjû~W¹.Šus?†ÿÛÁs4I.´‡óqˆ ®œ¸ž>UXÓšÈÏÌ·ø±ÄÚçb¡…ÍÓl¾X aÕVxÜríËou5àÔ^‘?Þ$ŒÞ®Ÿ.¬ÚáçOQ”¾&Ù¥ \O:½Gã¿X—ª#z“ú ¬b¤M~{¬IË;}ž¿’°F" ]ÙôÈt€Š™Á²4Jö£Ü­ŠÂ=ÝÉØè8ÐG2Êc9ÏOçΤ`á³=–?øû±*U‡ŽÈœÚØyqE=)6¿äѼ›n¥Ö),Ôë6¯Òtúaå…ûŠš[Rدc¿8Ÿ¦‡f#³I¦ž:)ÞÓî(ÿPÑ~~íË(ÐÑqûðTñ"ï²CÛÉNÿ.#EƒM€—la(~@ÜAˆw˜vSuˆM$áý'ÜÑLÁ]c]5ÉØ:«8Güö²Vq§Q¯¤´HãÐ%™Éó’äØgê/ý»‡Ã»(êÞO…+tùŸE½ûÞ]ô„"…¼ó¤øM:l[ãóF}Σx|¨s¢y¾öØ—¢™jqy‘v£½l׊ì\íá÷ Ú*Òºƒív£ gùS“ZâÀk©­½¼^ïB|® yMÙÝÂ+©ŽäY" 0Bd¼ÎåÐ2]éÕ Ân1KÁÍ•¸&èòà —‡e(‡,Éj0s~žåaáMÏѲå³tyò÷œhi‹*|¬ÌÝ{ä^Ç<]!‡ÈìÖÏ”ÁÄ3­Ü<{j<ö2›í~ ßFßæ5½<š6¦º]óÐè¢uy©?½´àf'qŸü=FˆD°!‡áÆÿÊý¦NN’GpöÕ¶‹½0cŸtsÊ-|÷IêdJƒ¥¶˜€ŸçÓÜÔ¬èÄwŒÛÅriÑpëÍÏÆê7þ1áå¤jé#fýf^Ÿj\ûRÅÿ©z÷aŠw¥±Ò2.œÌ‡®¤,|_€/׺*—™uùuDËÎñ±+UT[VršS[w/KRcxƒ4g¿wDYö:­ Tì’/±:šVBWüQ—-P eì×çŠ*‹eŸ<ï3}.Ï>m>²@=Õd1i°©î6#õ+Ha¿ñS˜jŽN€>,`dŠ_¡Ÿ/|°s>ójåÉ÷øÌ϶ ÎÀa ÒÚâoƒ§#ûœŸtìMŒ( »¯b¹Kä4w òø ½”i¤Æ-[ î6£(-)¹îü5{üš²¶=ï Iµ[eg.…}ÖPwûè–^T ñ% 3Y›‚qYvûÝEÇdºk)Ápq¦{¢lÁ4Y(…Õ®TóYiŸššÆ­¨T*ÙÔK‡! h_óxƒ÷ÎWCuµžãz‹ßêC¦0ÒV%Å/kjú“zP…«0L ¤ž-ÿò=ü°ÃéÖ÷úû¤p–s!¹„›e ÎMqøl»ßFe…jâ5“,€ö…ïÕÊð¯ÆQå›7RˆÝÊ1X?œ #Ö<’_Q¨wîõ[ww¾I=|>V†úǘ¬“`«£üTW‰ú‘:e*úYÁ±³Hžì§ÆóÂ[ºd¶êpÂ>«HìòVåÓ,rÊh—3»àD¶Y” å?À¯S m÷¼b=)¥ÖA“R”WP8–"heÙ)Zu¡F‰¹j#r»O“_¢´HÏSn:<%ñRøBt½û•m&jä“ÿ·¿¬>£5Ñ|}äœPË^ËNŽœ^Ɇ ,úCxî¬ÿÀHÙÚ窞Ö÷ÇåùW"O±hi.¥‡5pvøUKF»îùµ5 ”žZ#¡¹÷–C‘¡”æÇ555Ÿ7}P[í›öð饂Ž2›qŽ÷<%TB¹eEúͳ9lL±k_ú”lMDzHjTº·Õ|‡^Ðî/ ¬FÚEWrêièS–͆±¤G:àHšD ÿˆ.&ð©3“µH;ì¥H>zaлQFóî†ã ‗´|‰z¯• ‚‹«K&¾™Ö3>+°—ÐT¥±Þ¬f™Džø›„ýàyàÝÁºÛõr»½šxgZØå¨Yìù€ÚtÌoÊØðð|)ë¬eâUÄ¢§ã–³¦:ï!tB|ùdÿÊUj.Ñ·‹L½Ú¡¨PfW½M£š”•dî‹Áì¶ìuS|z¾Zf:¬œ×œñ”*]“àß2¢1¥>IúeûªØc¿ ³ãáÐ+*Ù‹}±ƒ¹ 2ÒÍôC}‡Sg²’OÝW)Ål9%]‘Œ6󬬠´,î%¯ŠX­&³Ue¯äÎ*/÷L4WNMa'¤£icxq~¼Ç;ˆoÚ1ßýR϶4úÊáõç"}>³¯Ðú Åã+ï‡û­N"7p¦sß{ºiZ/ç´Kó/–Ï:Õû…®Hóïtá¿°›Éœ.ì_ŠøFc¤tFûqmE-ñlê/ [>5„üY)~ç”sA-§ÿ‚4ià¥å–zÌ`Yº =ݹž¾MÝUŽPÖ¯ >vœ©l»zpßcJNxlIJ |U@{‡dßl­Ê§’%ï÷!jAxcj²uÀ-NÔºòUøöí‹ZÖ•E‰¢v8„ªÊY½4+R;zyrRÃ8“;Æ6H`FñúØtMœ£Ùª¢ÿSØÝ~c½Ñ¤j-›®i=²èºŽkt™¶Áé¥-<Ào³Yîæ1Ýü@ñ»ÜÿŠPpóŸ°ÕÅ É!†%q‚ »Cœæ‘iÇv®uÒ ×VòÉI¿“îøŽv¸ÑÿÕBuÅ endstream endobj 136 0 obj << /Length1 1768 /Length2 11563 /Length3 0 /Length 12688 /Filter /FlateDecode >> stream xÚôPœÛÖŠâ\‚…ÆÆÝàîNC7®ABp·×à Ü!¸»ÛeË9{Ÿÿ½ª{‹ªæsŒik͹h)Õ4Y%¬œ-@²ÎNPV6vA€”²–;€‹–V uýÇŽF«rƒ€ÿ¥r™C_lÒæÐ¡²³à­»€ƒ ÀÁ+ÈÁ'ÈÎàdgøÐÙM mî¶(³Þ:; h´RÎ.Þn`[èKžÿ|,|,º$An`Ks'€²9Ôäø’ÑÒÜ él A½ÿ'ƒ°-ê"zzz²™;BØœÝlDYž`¨-@¹y€¬´ P1wýÝ-@Ë ù‹Ðt¶†zš»/°%È òââîdr¼dh*(T]@N‰•þ°þ>ÇÃýíýG °ÓŸÎæ––ÎŽ.æNÞ`'€5ØP•UbƒzAYæNVÍ Î/þææ`s‹ÁŸ¥›d%Ôæ/þÝÄÒ ì…°AÀôü#ÌË1Ë8YI9;:‚œ ´?ê“»,_ÎÝø÷åÚ;9{:ùþYƒ¬¬ÿhÃÊݨívu)Hÿ­y1¡ýc³A<ìììüœü+äei ü#–· èO’ãóKþ¾.Î.ë—6@þ`kÐË?4_ˆ¹usùûþ›ø_„ÆÁ°[B °Ú?Ñ_Ì ë¿ðËý»½†ì/ãÇ`ÿãï¿_Æ/fåìäàýüÏ+j(*Éjè2ÿÝòIIIg/€/+€•“‡ÀÁÁÉ à{ùðÿß8ÿ=ÿtÿ§UÍüwuÿЍàdí ø«‰—ÓûO#OÃßkÃøß *Î/ó 0ü3þFì<ì–/?ÿŸ—àO—ÿ³ÿG”ÿ×ñÿ¿ɺ;8üÉ3ü%øÿáÍÁÞ+^æÙú²ÊÎ/âô¥º ¿Zdvwü¿¬ÔüeG$œl^朕ƒ›û/;" öY©¡–¶ÍÒ.ã%‡Ø ¤æ ÿñî¼x±³ÿîeõ,í_ÞÈË•ýI^6ëóÊ8Y:[ý±‚œ<¼s77so´— xA<_Ž—]µyý9â ›“3ôÅðÒ£?ÀÚÙ í‹åå¥þ0ý‰ø^ò?;¨ö_$ð™ÿƒ@Ëÿ¢?*Zý r€ àË8AŽVæÛI¸@›ÁÉ?,7Ï òv±}yšþQ¼ØÀÿ‚ü Ã¿àK=ŽÿÀ—íþË÷eÎÿDѾ¼Øÿ¢9@—Á—ZÜþ_Cþ y^HÈËâþCó€Ðè—ÄPOçÑ/ÇæþOê—ª}@nñÿs‘–înn/oÝŸ÷rËÿÁ>¬ ÈmnÚÙR(Ô®:´å¦R‚Ô“us„“ûUïYÔŠî† ±Ç¶z°”ðí9W^ô¬DÇäVôí*î>gñsƒ½!»½ÉŠ_j´ á\m ¢µÅ:‹ß®ÈÝ>DÉsK±½ÝÀŒËÉʆð¸Q£ßóB|‚‘ˆÅõts*}WN˜®±üú›í12}ýÜHL4òk~~. ¸ÐV‰ôÖrÉ*‰‰É6È™øÈa"¹ìîmjÏ 'ÏïÞùRXðZ*éÞÞ+Å‹ô=ÑÏ;]¼$Šfc€ Ú.™×÷‚/ZBß1X@†4Ũ…26ÆÎäÏ6b4låûVá{Rà¥V?R¬¢JdyYÐÿ6bj—.þ5—¬UàÃÅC_ÚUV&‡'"‹ŠÞ=‹*;~ZÍ–…£è§T50ž`¢IΘH-`LëWÓ<÷á·DŒq‹³H¶’¯j„ÀdÆ ÛÍ8˜.B«´ó[~`É£ÓRbEÞ¿Ù§ÖÉ'óã=’ç¤ Ý[èMý¸ À}˜ª#â¾VwÙÎÓç½ÝºƒÑ¦rﻧѺ"3«Ì1<”¨\Ìá5ï>±½ÎµÙ®ð‡ž5¯‰ûÓ%—ŒéO\f˜E* …ø-äBpÆÁÖMëdƒÆÏ¡5Âpï_û9dœè¦<‡‘kW YÇG¡—ùæ¸Æ˜X²„‰Mö}_3ÈÛp¼"õV³½º´»Æã’&©æ\CEsZ­ú-÷ E–Μz¼Ø>ÌÒ 'ÌYÙW.ÞR÷|ØâÁ3Üj÷€¼ê˜ßo¾­ç}¸lßüQE=¬,RŒlÍf{6Ñ_¶NØüJîÍFÃ~ÉÁÆ»œI*EŠ.1»ÍÈ “îH̾ÂÓœS9ª­Þ“¶I[9Ÿ^ß/8ßdåTŸmù^ôv­5¬äK»Âd± ¢î{òµ/H&hSJ¶ßÊ ï „þØä qäu|º¶m µú,Ë“oa@€òÚúØöŽ”5v”º•¥ð‡Äù•ÛoQ´ìÇfóÒß6W™#b]Nç0„â§WzuÙÅéÊ0ßa0< ¬*Á\Ç]:Ñ©[TÌ4 ¾×®´(L"3õ´‰YX(> yo¹d%h÷Å?ÚgÇþ¢X=ÿe ‚+3δ9ï~Ì9xÕW(ltI»’è4ªË‚Ïã®@¸B÷kÙ*O5ßZ·²ZfœrkŒØ¶ÇÅIq gq¶[’‰¨ƒ W7®¤zYR^÷j‡.Éìq×vU"'AU³N»ß;œB5n{Ô,ü\«ÃLJ[nKLMšŠ¬5:•Å@P’‚}c“1ù]Cã‘+wÁ_ÙÒ߬ëìS|þã»T¹’ # í¸“›ñ´W5l˜ÈÎ?~¬‡æ6k£ýU_û•UɘΚqy}Iž~±è Sчî‘4¸A[3ARu›/ùÛæÈP•ÕOýTMÔ°ÒL§4}¥-鸿½½rŪ0ù2ؾÞT3Ô%øû7dÍA°N”.Gyþàæö®òôù ¢Qpœw—˜ŸÚQªç%TGC9ËùÔ‰wH†Í¤ƒ_ ι¨0ß率g÷»æŠäA#)‚þsØ­@å9cëÃf$½9ë³<Ö;Ù¿YÀ}ºÇÙëpõÞd¬J ç?@“`÷ËfsÉÐ$eÂJGÅÐ|'ÿ­OM£|{œ{ÆAPÕ˜fÂó ¾2½ #þÏÒ]A£Ê`[¬,ý$7¹VÊä&o€@Õ”Û[XËŒZó:ŸÒògâÑÏ4âïùÑs¿fil×Ë\¨]ÔžêÚÖvÃÌ·úËb(Ìæ´û,Ôìl)øQIÉTzúKn¥÷´ì–³—sѹœ{„q« º÷)~öl½`v’š ðh¿š†:ÃdÖ ¦˜×°¼ò¦0B&ÖÍÔª€lVwžŒŽVY và…´Äw¹Š8ýC’f8ňßíÜwŒ ‚óÉQáyxŠK’ùëœe†Huƒ…nX”Å›CA˨AûÓb‰ή$;„9Âñ˜ ­ÎePFUŠâÕ0ä“bÃä³ô»oguF_ƒE4¸ˆî¬D)õFb÷š•ß«W#$u¦¬jÖÊaQ–º˜Ÿ$·á*nu‰éBNƒÉ.]2$.‹ðl™šJ?Xt+ìàž]™båWâhÛërNËÑmÆ@í ™mu„iJLµlŠ”ögëÝ.,}ÄŽMj'¼ª„¾æpV-î] ±ÎÞð}#ê1ƾ|7¼çö­ˆN=y†Ý°-m\BÙ8ÓzJoK¬ÞËøM4¸é&uëÄI[ôîø]î"íÏÆG†ñ-±xâÔa6üWæJlµžõC`óð°eùoeO»×ÔR1¬f6"$DÈåÖKŒhZ‰Õ2rá÷D 4wüg1YRô žÔNˆ@i|\-&eÐŘœ¾Û`šéœ-ÀqÖ¹ÒFGÏ ~+¢­à¾95]zÓ’,‚ßžŒíæÈá°¢ ËÏÁ'£¤Xv³øEˆ>•SÍXuÍéz¢jòÍÁ¨[êa6hU0/yíC:½ë$Ø;Œ`š´>(]”D¹—‰®æšOÁ,(Ì%K¾éfÏåIv¢ø^äñM4Ž‰Ò ð öÁ¥ž™n(`õx´Ým€Qè­PÓ—ñ÷«o9ëö~y³qÜ¢¬ÃЃr?гooÃïá*·BÉâÞÙt¬ôöîÈ2;ï¹%qMV—0áC¡zФîðJÙˆÓØûÁƒÅ=’“ܰ›±CjŽØݶ‘ ‡§vÃo?—oU4JÜB›QhÙIVûØÖ[b,ø»µrS¥|£XÔÜÐh©ÐÚzÓ8p‡»g¿ã\˜+jã(,ø4gÍmXß®UC¶ aÚéKReÁžrtœ?- ˆ¥…õâ°.ÇäG®Ûá=&'‚ÏÐEõR¸ÃÏ^“öLÒ­QA=Ú´¹Î\sšº>‚ìW ,ÞpÞž49ÊÛErø»>6—™ªqú-™ó ¼²¯V[»âv¾-4ÝߎÀ> û-"²‰CƒzžZà‘6qƒ}^6°²0Ì£ÍcØd:¹‡Þ9θ{Bqü¹v÷3Xðù±‘c2Û¢î•t¡À#‘ÿ ¬Yütû7ökËí† §\Å…«÷.µÞ`M±!WPb¦•ëÙ3èõüJ=ã­oìZ~ª¨3ô‡Žóôt?—°¥Á@w”æ©]Y]Pm´e¨Ãè¨cijðªxî!n×(2ò¼jª”,^p]êùCåW#R¨¿ì¢•žJSüϨ#Ïè¾­ãÚïæÊÅ–?²÷¹Gd§o™ ÒÒ8]—ˬ­qÔƒcC±;ͨМvð•°fœQáôž1Ûè(_M˜tñr“Ì«‹ ÒßG:ןÞG­‘c&'a9q3ÖÒðîB˜gkîÛlžòÒÞ£?>‡îµQVÛÔ¾ ¢·þ!æZãÙ IWÌ5˜º‡^_Ò!ŽÃe³SÃ<2þÖÿÌâóù¶Ç'z¬=y«°‚–ƒ29¦/»¾²&\—ÊÅ}ôäxa®áÆQ¼²îöðP‰'.Á€n’Ñð Z¿ö¬aÂ^=¬Å=öjDz‘¬¹§šZ)º>–¶¾¡\]ñ‹N(QŸAƒ_|8MdhG5ŒúP,‡ñxc˜ú3ѾL ݆lxòºFiëü꣩±6Ì›ìúÎdŸ=ŠD ­c’q»á£ƒ•º‹¸glòç@<žßm+ EÐЩAuסòùÔ_rö–#WkG¾ù¨~Eßoá•`±Ñwˆzñ=¤$lwhz±xr¼Dù÷%øù÷°8oò1+Kû##s4ªöcHxˆ‰E§$e¯4OÁ­7ÅëØCD<,–Gó`áøüªûµšÒúžü*®¥£ó!S@&H¿¬ÄÔ½ÓiÕ¼kKÄëä1/ÁL$ÐôKû'`´\Ê]>ìd€D¬•ü°żŒ«ÎØÑ&2fW ¥ »‹  ¸¤G|ÇAÖ8Š-5ÌæiŸlNÈibñSý7sçn`[[䦠¨„S Ëpz®‘Nï9vr `)gA+–E\+$Lȳ ýéºd’8먲ԧ¿e¢h•ptÏ4u¿dŸ`)âÓwri¾q+o6eFCô銻ç m4zW~NÎ$HEÑ}Ö}ÿù°=âNÆÃdÑüZàAå÷|L-Ýd…ÿ|uÊ"Ú4ß]¸ÈvÐï®Nª@3=hrP—°ƒÒS"å€Ô¾€^KYX\s<84¦¼Õ^ßš¸¬IT¬lçü[Ø`S †3HX·¶Ý®ØnôJt…<†&ern jfö°JISåO—¬È2cd/%õ ?,Èo`v8qÒ¦*ÉT¥|Z®ïrQ$§8£1=qÁH[â¡=ÑJXÜ”ègíRù ÚšN¨röòô NÙñøS¸÷©õíû™Ù*ã}O°cçÎ¥Á¢œ«5ËBå†ñl{Ñy…oø"™iE•éýžþ 0Qþ„V~Å:2Ñ8Ѓ*l všç#³€ÌØ/\N­n䡯þ-©Ú“XÕ&Ãðš)¼ò‰›Wg¿`lnE"„OÄWk8•¸{MÚáÛ¦ŠœàLbøWñ¹Â:NÊ>ÿ¾*önðÚ·Ú|ÐjˆÈaðz„¸Tìw­Öboè—,‘fü"¦°ô2gZR‡÷@ª3ÁŸÚDÄd×W)ÓfùÐ4ž `LVïžZîAêêJ|ûÇxsÍg’—˜ã±¬ø„é¶ù÷´»ÜÐÜ–8bz2Ák•Ω?˜&²Gzcö5œw"ßð߯T<(`ƒo9k»æOWªÃ&"ydÍ´¶)s‘$:]ß TÌo°8]“ƶäå—úmoôþ&¸Ôý¡@¨‡=Á7ªÐúíÒ´Q㘾ßì nQæ«»|o®ü±Rï¨Õ3â<@«5ÁôÃùûÑ™Ûyàw3æ]gç®×H0rþ\>4?Fç㣫¾ÈhÝ-«ø<¿N5îCÔoC#ºè†Œ,±#æ£Ù Þ[L ó¾ AÔVE5èΖËp„ÿªÔwô¼=sŠä æXñ§éx¡ÔE܉Å;°‹Œ{špRûS°ÇK%­.ƒh7DQÏœ“ú %ÞêÉPÿ0 Hå‹èÁ«®]*Ø™ù)ÚÜ;ŽwÃ"»ìtîml-oúh"¤‚é-¯€\¢¦b|3õ mD:f+ *é M{Fze&“ûîaxK],aHYøEµ½þ†ŽÝМ*TµžÌ‡gß™˜”¿‘ñ¬¸¯ÉqÖúyã­¹@Ï’n$o0iÔJºEOþ7ÝÈj!#Á®-‘Ëk‘Öé‘ÞÓF¨¨ZtWá¨o´¤Àã&P à³×_àÙHf&ïxüÝ8ÓÈ>P[ƒ`Ï/ŽùY1€vUÉ‚éúIb +qNz?²i—[E²Ôå¬cÝŠ5æcìòµ©¿(‰ª ö›X×PÂxÅ$pÑaÑÐa‰.}Ÿ7R# N×S’2ï"áúÞɸ—ŸYÇSßXÞo±ºUH›ªï3ÅEÈêâ׋ˆ¸M'Ügiá£KLKHÝ—"¾Ú¼qÎÌJ´ÃK"•7€Lºæwÿ2WHepG1‹úïJÙ 169GótÄö›Eð*Éf¦˜7†÷þEˆ×˜µ6‘ÒÇ8]õë|q¬píEVÞrÐÂî\ÓwfšÞdè ¥®5±gïQƒ£„ÊPKÒÚÅzü£Á”þ¸Ò‚êiaþµ÷ۯꉌdj°ðœ04Âz}-¶ôR¨ªo*ƈ1Ó(žk%œ ‘ÆÃ;âãøÇùöÉ6xN[N®oöSß—¡ÙJòטØ5íΓy}˜µ ®Vøš ÆíŒ±|ñ[õmñÉuþUÍÓvŒ[Êä„4|¤`xÿû¦'N±ˆ×Z©G,wê…úÛ¨ M÷»¡5’2»ˆoÛèÜZ ,P Vªjö M¸Ê XöSß–YZ¦ŸNm³RêË·`ïý4ØŽýeÙ¶Ç`æ¤Z#ÿmQ@”iR®]6nŽxÝWHŠä `©çÀaIŸàÍN¥û+ã˜rîDŒæ!·þ<,ª. …éëÉßåLÕ%÷CSJ©B.”¿…÷úX{OyKÛ‡ñ ]yXâ2uR¨âz¶/ÊÓâyëU[.s!î=„‘ѯxá |Uòi9:ƒ@£göÀ0úºçSoyY\|ã… 7Åx5·°³GOžyÌOÁÚ"Ô7ÇvC&ç}°1Oˆ¡Kš¿ñ› ©l¢É)X*&•àƒÉ†¾›¤Še&³Z±‡…ÈjáQRèR¡Í™gçŒJS2ÒóØ]‹¿ŽI45G`œI ª‘¨¥F_µD€s÷÷AþñžËžŠè«zh™˜Tašµ,QÑÕ—AÔE6óÃO R”³+°Ò—(dCiH2%^$sv´‡ãú‡=]ÇŠº gi1ËŸ¶s€úöPñ¶l6@ž³[OáêtVKMø@¿§Ô`N ˜ wmÓ¸!Ëâî߈©i‘å;Ï…¾ îK9ʧ××qI7Í%írL|Æe¸Gœ”ö힯"~÷Údf#3GS~bO¶Í²{^Eš@êdyL± I?Y­O~]ýn´Â—_‚7)IÑ@Ù–ô“£Ìµœ‹^ædöÕz¶©P3Ɇ;9jJ׎ÞR]n´œ’!šþÜö:-ñɺԓÔÂXÔÏìùìËЀ,d[îº^z~2ÃwÃg,›°EØ%nŠTð$‡hÜÙÒ„ÄåC+ÅbôÕï:;ŒK3‹ß.äϽvQ!§\º[D÷¢O2Ù˜aÖ˜FŒ¾fÍuZÖ°=KWï2‘Ã2G#¡!’Gb5{}’í¿„s ì›ïî>Rã+§½Y†Ä ©#¿¡œ„Œ“8ŒÇMûÖ±òˆYájˇŌF>ÒlæpÇô5~õX×!]¹‰çåŸ I=)°ºËŠ+ùV´¤Ž|Í·Xèʸ/ÆäO Ï>®ÛUx·Ÿ`üÄ‘ ÿg¯ÃE· 'æAdä¸ù«³O”ã„öõµïí«Ùp·C’õ.‹\$å­ _B©¬îÒÞü)ÄŒ„_³ewÉàk¿hÀ®âLI_õÀQf}±Îò—¾ÌˆïŒh "2tàåµG©kܱƢŸCå˜|ëÐaaÝ,Ÿ‹Bߌ~ÝÌœOšh¦¥H#bXc¡2Uᇠ紓iUÇñÄwVŒŠÈ&3+Äå ÐZ¦+"̸ÑÖz=©¾í½ûyŽó둚"/ÊÁ2ßém]¦·¼l†˜¥ŸÄÚ{Á¢ôCsU&`„‡*¿˜ðŽ_/ß ³0œ ªTÜì]‡î¥:G¹OÏL)e·‚aÌ lçNǺ Ñ~»†ådã&„ÔA‘•qk§#Ç X·‡ˆ¹fh<é‹é¤;Ãe‚bDgÏ¢ªÝýØÃ4꘺¹‚ÈRE#a'(´Ñ¿…–¨rÓ°£Ë×{~v-ÕpÑc}ÙO(þhiì”òŸkÚ—l(%ÿmÅo»¾ã°ªÚìM;S"«ˆ­«1º,ƒ«8x‹Ó|?#JH¹¡L0Po¦þAÕ\:QmØqQÈÇÆ ‘¸®á²„gœN. ¢JHŒ‡¥u†ˆ`ÞÍñ “²1Ñ ŽÓ6ÒA+>‹uQ˜¶›£T›XõVô¬PÏÝ-\[(ÄìËÕ¬ˆ:‡¾FÊ;N©Êùt+N‚!gLŽAR êtÿ‘×LÏ÷cñûuèL:ë½Èî—η=\Ç—¬úêx‡ÂÒï…ã´ób“.¸Å 1Åì¹.ØÉ&©z¡h‘Õr†¹ aüÊžy%9oïjš¼4ä9Ä2Ÿ\棃±°2 1‹EÈd­‚<û]s. e§œÿ¬‰˜N'ýºµãMãX-ûÖoH3†jý y§M±Ôª¨?ÛÑ ï 0ö·1<">ç7½÷Ë"µ×|¢ÜÌ2£ÒÜ_¾poõ‰ùÖéŸÆ+¦èÙì¬^«ª0„¶ØÈbÛüºµãý¹EÁâù£•±mO —PHýø°ˆÎ’X~ÒfõO*y5Å4ÛšÒØµ„9NLÏ ;bFÊ¥² AÉäÏ2uåEëÞO[¬ö y©÷›)³ë¬ƒòWo™+¢zçýŸäÛ ¬4åc ?¢‡Å¯r9µ\<Å#ÏJHr˜¢ùf©ÀèÎBÚ8élÕÛA6¼Â½]žx*¬5EÆ›bûk MùƯ[#zsþM®»‡i›õY2 Öy! §åÑÒËK~ w|<Ü¡±´Ô1èÍ‚ž©<ƒ²²92­>‚n0–6¡?G}½‚ªÈF'"’gª¦¡„ŸÊ¸–ñ Í[úñ*Ò·œ¹‹a¦åÛU·Š>d}2Hbú‰ñˤF¾J£]³zظƒBöm»Ù¡%+lu^?ÙpâøžAAÔÂÛÏA°\+q& –Óïh(ÛmðH¾&›óm„¡qOCÜ;{UíV*e¡@W:Æþø³Œ•ª˜(e*³ÅÄ™¯8ÈõYªpNøBå¯SÈ5ú=»’GÎêž„8Hý\ªHCí;È9ãž*f$ÛTÊ× £h#¼Tþ‡h‡®å§x}Šá_Î9iE‹¢2QIëê¡•¨j‡\C+äÝÃZÌôç‘1< _›ô9çKQLŽ*ç44.„Ëš¾Í&dYYä±;õ4®ÌDÑïÒ)(›*'­Œ ¹U“³ÅELºÈòéŸÁh ÷Æ{¤p~ÕAÞçñlØe­®€0 5©eãØÁÌìõkãz‚‚̧iÒæ˜+}U7Ç߉âkŸä»æäIûi-ÀX­ò Å~˲^ãº/ò$$ÉÆ¡š$”ê¶“˜øõ傆<Sõ÷@%û½ä™«V.!K'~ ôKZzI ázÐóðŽ> Š~àF…‹xfÖ†#,xÏ?$$_µ >5QÆÖasÔžª@_ÅɶӃ”}zßèŠGH<’s…¹6¦E™!hƒi }D¥¬—‰_NÆêÜõ¶ÝósHñ8ÙhK3‘¥u¯…؇­‚Œ‰:û,ØÅfx&Ê¢Õû¶É V#+ñ»'èØ«ž†revT^1^jÛé·ú ÖÉ¿æ91e"÷zÓÕ&äì4™Uýd{ä >ßQFfŒÔÝtZ=Þ9LXƒ3bÑï…À×ÓþcŒ®eÝóÙUy÷Î$çuGJù¹î‘®Š¾£Š: ÎY±Ü˜òæ&ý¦ã*Œ(vÛ“•ÈÜ€‚½sVZ°«y´çN‰RÙå»Å)!ÚA \t å#TéèÜ%´wý¿Mç–­6Õ (C™I&Óú ùÆ›ø¼ïÌt”ó°¢4œ£‘Œà¾'IŠeÉG³=”n¿WýE£ÌÓ$)ŒòKÑ‹ÚêzT13pZÔò¨ÅŒ¼Á_jcl m[¶[v8TÊë%NØ'`HÖ©^/Aêr'ñšÑë $®3“Æ+ß–Gu(NÑE8•*!iÛ°#‹É3ÓTÿåÀ ±PNhâņ?Çý(ÌÅ'½¿ÉÒßÓýΈ–\dÅÞuzq`„Ó/…wÍw³CŽ2¤B¾N>tÊRhϤbÀf,+@ô}d&j¸4)Ì­$V¹–qu€Ž·[ÅÑö …]ÀÙðI@ÚòõJòeþ‡R¼ŸL· á,R¸FÜóÙägg0¤c3”×¼b7 ÚåwÕø5¹¡d‡…Þ<ß)}(ýâÞž ?|6¯1˜÷6zD^*1h­k¯¡}×¹qX1’sÈ'”ð$×VÆ–XNHæJæ¤|§_i¢C'Þ–ÿÖE©&.ªÎt®JÓN3cÀÊ‹ß˜Ž " ‰† (¬µîá+-é²YòÈëRú>Z+øÔï ù%ÃÆ¹cŽ÷öeæØZº¤x¡`ø¯»¤†ÉŠ;Ãù2©Ó_ßöw†$º/”ÛELíz%c#®ø4N'EW/ðMw•ÒRqêÒ+ë¿NˆJ¦|6µã©hà‚yš ÄðŠT?‡L5þSꟘ2¸ß™ïç¥r“ªçd 18«ìP}4¢Ü ƆdùZ‘ÿXöê6ÀSCþ ¸„·%ˆ[1~ð|ƒØ€ÂcV¿X,¾'º"#5’È1{ñŽFûHÕûáÁì~kl3æ 7™²‹ÀãCÖ Hø¸I¸'ë/²,ÛчŽu¡ìˆŒêj/ÃÕ¶Uý%8:äç'Û…šôŒ­^Ïþ«ƒÐ÷l_s&¿Yu×+sx µ¢`>¿o¶Ðá+µ•ŸA0Ɔ“}ðúÒcSoYt/éV»ÈÌÕØ™ãë€T $×¢Ÿ n±ÏÃÛ-Ås¥¶)—vÀu¢^º›3ft 'Œ]î·V]VˆÈoÙ_2¿–#¶Î¿3ˆ·.l{ž¥À¨Ì~,…ƒä›:¤zyÐâ‘EÕFÔum%R†|(EñÙFÆv$´P.¨Ž£ž³’ÊGZ³}ÏæC¢s„³?0.Ùü–h¸Pmœ cƒ—õóòÑ¡$’áß%Rí.Ði©5ê ]À‰H4 x“õ:fýÝöñ⛉že¯*æOE:ÇèYÌèlÂ.,N5Ò3XEö«­‚÷ jò·~4Ñ‘ž¾–Lšd òÛã[ÙqTR7|´Y~ÅÛax•‹v*,À«Ç”‰8·m`7tf`Ï3xàSÜ2¨Nº=´5ÍóV›Íœöò»¡ŽùJÒŽc€õF“·á±tŽ˜,¼ÐA9J®.cïµ1ã|^MÅÍUÞm¿‹«¡µñ>/mÜ\G…Ó§©+è°—ñéÞí|mhŒ¦?gLªÅé]¢æOÅûjéþW¼ƒèánFw±å5ŸS‘)0ÉîÑ{|6"îTÍR†ý5‹#žr²”jŒ¹§l•?¶U+3Ø*é¢n•]+é¦ ¨&ÍSrpôÄ;ú«-QÇíõç§7ʹ¢oyã+4WIËÉ’3ö£žcñéÊç ͤÀJ–c+zJ°Ï“15<Ò”w^ʬ*ÿHÂ>,XÛÊ…OYmÑ]UBQ!¶2íÓßûüÎ`±H k+¯:„Êò|—.aa¿ò9wøè˜¯ép͈éˆþàv/GV~Õ³ÏßÎýáB”X⊊|â!nüÑ¿.¶°©âQaû¼ æiŸc¯vUQË|ó(H|äçØû;bñjffýzýÊW“Œ=ž6m!T˜Æ…ï³2å¶x1í‹Äë³[& ˜ga[ùèÑØOVB…z¼ˆj¯÷XÇÙˆ© jî¾§Ý¥ÏNøä[¤Á”¾2žÏ ð «äeÝQ­Í¼LÐâØèzÖ{#ÈæmiÛfâz:¾zÆÒeW¼²s÷ójÒþ>ËU%2#Üž˜’P?Ìn4‹Ÿª´|p£ƒ58›fh€wg¸7Ri·ÔoXûYZ¦ï#­ˆ4¶4{5ñ¯ã¡AÁAñXt0Ú¥zÑ:·;LQÒU±¾TmyÊ®åäÜpu QÑœ$—Õ3»ôàÜÜž Ü)6ÙM÷Jæn.!j:Æ$Çöøkâx·°’Û*w†nŽ{™UF7”ÐÐo»ì)„˜V§Ó•Ø)=Æêòo#R—·¹¤V‰óvfk2j™6 }t=Ç¥A¯ËŽa´]<:<³Bp¯ü¨£?ŒÜi(1#€Èü^A¤ î5ÖnÇR·Õ6Âã‰j‹ÙÙ¶8¬Ú&ú\°â¸WLÈ?ÜšL•W©^ÌZ œ”(P¦áÿ&bA¹Z{cbyv¬9¨ÕdüþJuVQ?Yï÷é»B ÚéšÚ, O†¼ÊAÜ1Ó I‚éìˆMD4xdêrÃÒu™ZgyšfÕ-I¥'žšIÜCÌÚ)¥—6JVEÃØv=w¨`2Îz…³p®Y“V1ds+8÷‹‘~ø1ù *þJ;yMtˆ¡ÉÔíd‰\½EÕ6!à<‡Ô°êm :2Ì"ßõÂqòÕÝÏÌ™ŒÑ^§v#…äÞ •9@£~ÎfvW1žDA#v72âQõˆ?òí+—:NU F× ˆ>çãê“Á&5¦uZ®›€®;Wý±bGUå»­•½7–ˆpba¼ºç2Pr¢É/ÖDŠ„C?{4ÞlK¸·…F6<ÂmxäÉœÎ#O’K0”³zh­Ñ-âÂSõZ_èíPë¸!L ²$HÑf9úçÁÒÊÞhTÄ{n™kœÂÀ48ÇuîÄ…ÿ„¡xMcƒ0ól Ÿ&К}ù\V¬Jâ๯W›¸gX*ÔrùÚ1÷£¿ŒÛÐz>LZ­Ôl&é¬JóÑñÓœyÛ N 2Å.”OMÃU„ Ú¡oxµù±–*_A0£¹ý"Ø’tK:0G%ĈuãФé¦݈=ý‘5ŸÈÊ g7ŸÓ7ô Á¡7س®F ùÝ›¹¹}î-abüÚ8’ÉlÑu¯ŽrCjPà7ñQ,ÍÚûIŸ˜, Kv²N5{¼µ´äJÀ¶×T)}®¥ðYŒl¯ÏWØSò Øã?’O¹ÊbhVÐR:ªÔª°…¥™r„JžäÚØ#+|5ˆhž}Œ¬ýÅ΋YºØ^if—GPðþëVòؼ彆‡9çpÀ€­¢iP’!Õo˜oVþØ.”¶ˆ#;I§Sªé¤{4IN¥éc†ÁÀñµQ®²³ Ik%ñ:è•€Äó£#z|IüŽËõ4ÕZm$v)ÛBy˜ÖY¨1Û@‰þ7.Ͳ‚}Ðmä~\ì7-ò–&¥w$OꄯŒ—mÇ,WœoT…5ø ‡lƒ\dìÕ/ÙÁý5+7…ŸLn*$aîQÒ#½Ö }Ÿâç ¨SòøV. jù!VÏó0Ô)wg„ïÇ{ó9hDÉÐÑ¢þ7gY<-Â.i-Æô ËInÜwe*X.3¡RDôülw²ù¤zc^Ö¹x(SMdpÑ”&¶âDÚÆøÂÚô”–‘z¢µð¬ø`˜4ãÀí/H>êËSÖ`å9™=$w@yÎ],ÑkŠÞ9Å÷ZÒ¼VZ„Ù¾Q§òÏMþ8éqå /U…ÖGø½‚”&zEïqŒ™ìgï{zF?‘¢_Ü;o½ñ9Þf}£ÕWB‘Æü˜8©CàKKÄ&£Xñ¨/ï¶V‹ò!íJ÷¾ðA.Ê Ü‹Tá6f²œ MwãÊÒEMu÷çâŠÈÊXWÃæ(»L¸oÈæ™÷¤ £ŒÚï#…ï¹~nuÏÓEï¤&NxD?ÓÌêZ=:Swë©èOjÏ[D»‹—C|žþtpµ/¥NP±2ƒŸ²T¢ô y¯¸[Íš8ù{tÝ3£¦£yq¸ôíz³†Œ]x*k»Â–V³¦IÁ“¢¹0á '{íªf¾‰ÆÙn ˆ´VÑqÔH6f ¡„L“»óV¬vÉ\6fâÞ'…ÍÇNê°‚h˜¿ça3#{?¾Úšür¸¤ëü©^ìÛ˜@øYk±Ù å/£Š¤º•!„ß’†=(¼ûï\?¼’¶ÚÂÞø¹÷ø:[$Éú9B¼A endstream endobj 138 0 obj << /Length1 2745 /Length2 19377 /Length3 0 /Length 20944 /Filter /FlateDecode >> stream xÚŒ÷tœëÞ 'i5VãLlm³q&¶íÆ64¶ÓØvc«±Í&ïì}öÙíy¾o­÷]³ÖÌýû›×u‘‚2 ±­!PÌÖÆ‰Ž‰ž‘ ,«¢ÂÄ`dd¡gdd†##S1w²þ—G¦tp4·µáþCBØhࢉ8emmRÎV&;77##€™‘‘ë¿‚¶Üsc€,=@ÊÖèG&lkçî`njæòóßG¥€‰‹‹ƒöou€ 5ÐÁÜÈÀ kàd´y42°(Û™ÜÿÇ%¯™““7ƒ««+½µ#½­ƒ)-ÀÕÜÉ  t:¸¥ 3°þ“=@ÅÌÜñ? e['W D°27Ú8‚TœmŒw€²¤ @Þhóa™ÿÐþ)€‰žé_sÿhÿeÈÜæoe##[k;wsS€‰¹ /&CïäæD 0°1þKÐÀÊѤoàb`ne`ø;t€˜ "À”á?ù99˜Û99Ò;š[ý•#Ã_f@eµ1¶µ¶Ú89ÂýŸˆ¹ÐTww†škicëjãù_dbnclòWÆÎv ª6æöÎ@I‘d@$¸ß4S €‘‘‘“…´ÝŒÌþr ânü›Éô”ƒ·§­À”ÐÛÜúót4pœœÞž2þÁ11ŒÍœ†@Ss¸ßÖAd É0¨ÿænmFÐø1ÿúüû¤š0c[+÷ßâ·˜AARFPVšæŸ”ÿe Ùº<éXtÌ,,6;;Àû­ü›ÿsÿ›ª``þOlØ“´1±pý'Píþ›†Ë?sAùÏÒPþ׃œ-hšÊßÃÿ™‘ÑôÅôÿyþVùÿ7ùYùþÿ‘˜³•Õß|Êÿüÿð ¬Í­Üÿ‘M³³h3dmAûaóEÕÿYgY ±¹³õÿåJ:€6DÐÆÔêßBš;Š™»ÌŒÌþž˜ÿ¶dÝÊܨ`ëhþ×y cbdü?<ÐÊY‚ÎGP³þfAõ¿EmŒlÿZ=f6v€ƒƒ;#h¾˜ÙØžL 5ºý=Úz[' ”7ÀÄÖ²³ÿ"ý±„~#ƒðoÄ `ù¸ ¢ÿ"FƒØoÄ`ÿ˜ ¿ €Aò7b0HýF ï2¿È»ìoò.÷¼Ëÿ‹8AÞ~#?¥ßäOù7ùSù@¹«þF ïj¿ÈŸÆ¿ˆ ‹Áo²bàhdnndî`älý/‰™ý†“¹•1ð_:+ó_dÐH™;Zþ6r`ø‡*Ȧ¡ÃPà†F@+ ‰Ód¶ÈÿY¬­1ý‡l túy.–éÿGTA£(#[+Ðþ3ë_këßYÿ5 ÆÿBP®Æ¶VVÆ :¶~§ šGàÿ8eÿ‹oï Úòß* Ú˜üV…kbîò‡¿Ø¶Îú‰˜þ¶â›þuÿÅnö;PÅÌÜíÌ€6H€hæ@P¤@P·-ÿ€ âüŽ˜T«¿6ò7TÊ?†t 3üvŲeÚäßu¹¶q¶6üë 5ý#$ÐUÁ`û;hMÛ?´˜˜@‰Úýfƒ|Øîs›ÿi6+Ó?Ôÿm5è`°:€îí?DÙÿ¦™Ûþn(+¨°vVÎ$zça°ÿø_Èèø÷Yõ¯mÖ¿ˆ¶N@cÃ?šÊ¢þÑ&PʿͲý…€.´ƒ $îºÿ°£•£Ù&@ñþŽt08™9ÿ˜PAœ\mÿPÙpþ=í Ÿ¿î8Ù:üYUPk]þ€ ª»þ±k £n@W÷? ¨#¿cYò:ü'‚ÿ9¡œ@-qúûßÿÅ¿)n@#¸¥y[#ž ‹Ú ¶‡jA\WºÝ‰O3d»ê©TtžKíÎOˆÐITU™w‚IÃ=È«;¢”·Ë„¿<›ë¡CZ[Ÿ½^ô┦w[á§0&óëúñañèTö¼~Ù{©ù[¾kï”"˱wæDTÈC{píw«ë/] žßUÜ«b—þðRúƒ.J5ò³Ñ,Y®aÖ1”> 5ê…ÒìíÝ jöä¡T œ÷IK§Ö&sôãœÇZ¹ ³c6)¶þ»[Ô±irO¡ƒd© žÅ…‘Ÿ¾2RуmŒõzvrkËH¢~d´rXâ#õn­cð×è…‡ÍÜUÖ·£®µ;F\À¢1quÏ“ÿ^ا»7{ê@c,ë-çî¹·µy«y|+}|Z;©í1¢m² ·±Ú$´&ò+ÄÞ] ïf³Ë+ß"£„´Æ³×bòÄnÆmÏM¹} LôÌ:?) -?½‘ƒl8î¶õ3lW«!ìçn*íaìe1Õzû˽WÖÓÜ1­TNégWW¼w«ÄÉBI6CÔ&B £¸S-ŒrÄ´pÚŽìüùáRéî©ãJéV±ðqÙýûn½ÒÜgcSšÚ§ãOM|Çá³ZY!¾ß›RÔñÂånÑÃ%Ø4–wxµjòòsCúÀ1qEÇ ´G'Ès¢$?ô°ÌÝß!Dþ„JFÂ2³³4i •Ó®È$Ãz¹ªëá7UJ“.©Ó åUžQøÞõ†S^ðé¶t[{ ¯7aI§šÄ'uLk¦[kÑ}Äm¨*²6¤fÐ_\D;næ,ƒµa·eއ˜ ¯õ‹‚÷£wGÜFgï´Áí¼½Þ¯‰¨œåQ †5›½(Ý£‡טáÙ¦j7ëïs˜{š•)èc|'«ô»hå±v&žŒ"]^ìeûÙ‡Y<:G Uf^“SôEJ‚ëÃÕÒ³ï¬3­îtWÉÕWý>F¬ z4å]ü²ëÃY;/ÃϪOéÄ]žKf‰“ö‘Ä .àÀTá\•}–W@ §ç‰^‹”¡1Ö¨ùÊã]ÿð}Ï¢_SãVtÁ¹Œ°íÛ`«ÝJ¬d[áVn¸2ó¥$‡ÃN±=Š•Ñ\"mvŽõÂYûÁU³½79ýëns›¶ÓÔá‘äåo‘õ™üf7iáß 3·^©—ð!HýàŒ ôÃI _à¿d„qû#ä\–PE—x©NŸ”Gš|„z,CiÈwz@ž5Né)ÊùTž‘É6~ÝæKƒÛ˜fÁÑMvl.ð–‚¹6„B… >:ªÂ6eŠ£º:%vXsÛÌ”è$:ð£i-Oa:Ïï#vï·Z1]%þdº¬¤¬«žB{Ì hÝL¢çHj&S×û}æ®\V†Âœìï,eÛŸ«9äÿü0Éö–™¯`-8;D“£¶0â±6ò->Ó0KŸEW.[Áާºz§û¨/3uºdË‚k¼, ZÄ©A^Z²}: ÏÐÌ=1'Xr½õúXŒ•ì"\¡ô؃¬Y:Ô Ü–‚–'ê*{õÈìý&JOÅùM0ÓIŸ&eÂöhé(¦²Á/Ð]Èëշ€ºrÜx_õC,$4½“$ž™}ÜÂk(5ã»û3¿–¿*¾ý 9ŒAUØ~–¡˜M¤>?.y§Fm¯¨ 6Æw×Ív‹¯Ï‹œÐIê©xö"2ýímÑž«§úµè CÆ®‰¸^ AâRo M™Z¤AaK`i‹²ùœQù›Ñ1ZÈc¡Ñàù0¼žU2vë(½÷jTdh¨[–#«,A'i*¶ù/Â6Þ¬|MZoCÕž­»UµÞ¸DK³çgÅ+·œãX¹–ù6õm±í;Æò·|ݶ“c”¿xešp.”ówi\Ò; ¹™ˆŠ¾Ð»ªó<I³¥í‚ýX $ci)Ýà ÍecjúB nuèUFÞ†ë÷ QvÈ€úÛ,é]~§ Éj#ß ‡ê‰Ñ¡ïxo#tEzˆÍw9¤©´ ¦ÈôýBõõ²Wèâ¥7µUø’T9g(®·e$V”wq$Êéž× „b„ž®pâ ‘mD[ù½D¯r#­W<¡ü½@&-?AµŽÇMƒo@·ä]\CþØ}>â Œ$ð·ahÍ®/çg™óÃU M…ê­ Ñ–¢¸T‰IUñ£jÛéô|X~?b7a¹Ø3Ñ_|¬ Áé79—à‘»¿Þ!Ì_ç÷‘ðñ…›@:‚§òö)WýlL#1è’t1„û£á0—ÝN½˜®qºÐÁ¼”%8»6 õ)+QfÔ´»&˜>…lÃ/Êw*`ªNGdÑÊILâüTˆMð"‰!ù÷)¯EäñJ}¢ƒÇtŠ™eüŽ‚ûÀØ!á/ùͨ8ÉÇ0„ Mï’ˆ>¶0†6\8!7ÉòöG¼Ó`÷hgÚ e'Åhò~öWçÝ`²Ø5ßæ`ßÿEÚÁZ¯®¯ì—ÈìÒºLäª8+Ø6s¯]}ºôÆo­-¦ÜQg¤O謊fZ§ú`üŒHr=" 5ÎÓê§ óµ}¸á²S ¼ó5éå ©Eòm"ñFV‚ÿÝŽ¡PöäÄÐ˧×êŠøä×õµóÏ<-ðp6[PFÌ¡Un„Pè9LDüÜ›[(ÍɻȘN$½›˜üdÍÓ÷I¦AáÊ@môlà8ØoÀȆUÊ“È ü; º§/0A}'òAì.·Îù±†°ý°ænõFkú+¨ä]ûxˆ’'GP¨1Ø1ËÍz|(0þLÊGÊÆïoÀ°v5IϾèSå÷TÜN÷a-p¿Ç<ëLBÑù𠄪3%&Y©bév‘aajøU"Á†ž’®{û¼,>r "…,ßξ³ô†Ó·œO÷ÐÃvÙS7~ÜHÇ!c›Ý¶²)¸¡ù6wh½ÜI"AeUø×ä IžgÊ~Û_‡ó‘Ýý{“P¨­Œ‚Ÿç'“®ÆrR €ØC¿7õm Ù#u"êSé““±cf†0¸œ‡QckzÑs›¸Ï¸ïbÏ÷¯@Àsþ¬q*xøŽŽ¡£Eç÷`}i+ Ü/ˆB6çOR*WO ¡àœÅš[M˜6ßѦ&=_jèü‘Úž`¾:½ýðVx9ItêÃÈ+’r«Kâ\šQÂ[Ù¢ÿøÙsDßyíM#—°¡è†ì°™¥;4æå GÏç9›€`9)†£×ˆÉ«´_9b–åµêÞ_uÈ[t¦´ãTn,ïÑÔC«qæ¦KdçÔR"¨JR“¯»7¡K¥.5Õ.G38ëOº˜ºA“HÉ0aò£ÉÖñ£÷g)v#âw4›5MÍd;Ô·W}à5µò‰:O‰cÓ¬’žü䯼{©sl 'šï§Í6'á¸ð|»Š1pÄpµÝ1f©†·æ¼gúÓ7ñWnÄü²7«UÒTâ®ÀcU§ž¼äF3vÆ$ƒg¬.¤‡;±Ã8–‚ nnûá*‡ÔÆôüåCÐÂL×}½rVÉE6®‡'vó±aCÁŒ‘¥‚!ŒÏ€?Ø"cnMOïCá¸îŽäLQ‚Jà÷¥RÒÚ‚€â†œ!°ü“mrÑT(ÎÁYXWÕûÌÖ”Åå>ÚÌMóÂMýfjࢎ&M”ýl\>uS–O n—Çj ﺻ¿êžð”@pŠæ·`Ül–Ñ kç¬à ögoùClQzÃ-”¹fŸt=–pµ¼ú3ì¨z\V¥Câ|ÌüÚ©†£‹-DD„Û`©”hõnòNŒf/u-ÊÇ £) Øa½ cùÞo{#AöêÁqWØU«¿r;~$ƒv! &–åƒ"Hu?\Ø¶à’“üü>u€-Êln ‰îsBøãOÃYŒnÚ*Sy NŒá—¡ÒŠJ¢8¢³Á<ø¯_˜0!;Á™#¾Ø×Z«}¼â™ò;ŽGâÜ C?•ÉÄŠ¸‰®v sfL÷u<·ÅSïëu í‘x')ϯ}ŸºÙÄ»>9‘õb &t?àêÁ§ÐX•©{˜³Wë¹8¨É¯`æÀǚ@%ïg”šn˜2¤¹µæVËMŸ̨2ó_™ Ÿ¡+ú—¡“ØÁykJBKk<ö‡ÒvÌÜ ¦ž+)ŒB+XšóÞ««€ï&äÇ"lë‡:MȇÆ+ ¤[ÅÜ©xRfTù0N@6$´¼›#—_Ëÿž11ÅûíôUæ¢>Q£¾ayýQ$Ñ@j—ÏÀÕ¡u!aNûѸ£4¥;qߥР½â¨%“ ˆÑ'b¢DÓdôIÁâͱlE#Žÿ5}vÊÚ:Â/}…G´¢Jæ¨O'S«B9¡§º&¤ @r;Ô ÝYtñ0Š__´»_ÝÕ:€Tjµx[‹û˜¶º/¾ RfGÄ| ß»æŸuw±€ûÁiª˜"§BB-CÕxcªäª¤N„„f—MB˜`dÌšf¶Î¾^hêÑ8%2å2S Î#zn?œï.TçÄ•{(P+Ž–¤(/(íSî[É~\Œ1D³)A‡pmwÖë/z‡…ǸÅR ×iÝûéÃÁ†¯âåM³ÉÍvÜ%…$¬d^ë6ÿ0š½EéeÜHôqúL-Íׯ\AÔÁiü)‡¼íÖvr‰©Da®yk‡÷^½µ¨×âdÜ!WR¯¼ë”e¦âº=}õu>Un ‡Pº~ÒÛë³Ø»75Ÿ4¿ˆŒ&?|O$Eç7iâ HYNßðFiŽ×ýi{ºÏò’I±M£òèÅqë“íöÀ%Ö?5’HBw†;OM4ß1ƒã’sBÁÆÿÂÐêln´ç8þSÊÏÎHË«±ý=©ðö4yøð"ðÃâ{°çÚÍŽ/Á8±-MÖ;uèEe<‰‘T©­¢¯‡T>oèd™E†Ú(òü½—ý<ÙJ®!̓¢lßø‰¿ªïzùñÌUJ²ŸEA$j@P|6?~¼qôfŽÄöT¤rÅ‘:r‚ÖØŒÆ0gqŽTBePɰg‹3ô"ð9~Šç=d~îâÀ6ôþ⟆S £1+ϾÿÌ€L¡ÏM89{ÙQßYWLÐŽqÉi) Nz+N›ô6&«ïî-~T˜ùq„ŸÊ(~õýúurúÇ–ô"N¡‘öh+ðaúUxÛ[‚Ĭ9çP8é¦ eþqF-ÞRü¶+Yݯ¶¢[ó牼¡Æ@i]ŸÁÍ&?X"ÄŽM^kñf—(wSF.¾¢zb¦ÃÂÓÏÀ‰rÉFxeG”a!I•¦È¹Y—+Ô%àAC.!¬R«¥‹©W…ùý £½ÝE;œ¢Ø´ƒíŽÄ“bh]š‹Çå~Fà0té’5F¿xp XbxŸÚÂ_¦FQeàvAßC½5Ž ;˜ Þê!»+,|“V™xËøƒØ!×1cBY¸râSÏ÷øgíÙçY]^"ºB&Òj6™ÄuYI:¾W̹DÉ30¦c’LT)®3ò4ɘw_Hj“ý¦ÑFÔ­B(à4Å«bê6ÆÁ²Þ“JšÎi† ïš*\Ò÷øõLe-Ù´lûl×Ðâg×þ0É ~çóqãT¼‡oöe±áx<”69§/á 0ö9[„ õï´mÂá``ò˜waŠ'ašúÅûúRzBU›fE³ö—‡hœðD<ÃôW“ƒ¸Ô}2²÷åƒçû†‰…²ÒØ)ž†¶Ò’{6ÓªA¶ßq]çLñ¯Xâ»ç¢¼â”:ìñùQ.Ê(žJöÀ•Ÿæm%çÕ>÷A¯è˜Ï«˜EDiëmh5èXãU~{Md˯*¦ãtE’ %ƒ¦åv‰„ !z÷}¦ô¼Äw+Á Ð “gR>Z¿Îþ¾fbuu~^Blè¸inÏGÛ‡£e3‚ß[œÁ²× œ£,¨1X´}.Äh|"=QzlzËnx]-z_•Mñn[ŠÛÈ¢”¥0À„N.¾›EX8–GyÄ…˜×s¨NŸëSçlˆAü Ö'úÓ“ìhkxã¹·ÌžsV¡/VëJ¶šöØ& }žÞãbR§»²X¦#úFïáùÁ™n£é—*ÏŸe¼¼.'÷«ß70Ç<æoBxŸ>Œƒ]&M}[ãs€ZÇjð'Î4 pjLI%u?œ*ÏU;è¨'cõÌÿ˜åû¶¶Ãøî+Ê­/¡B¾P|“:5¾–ðð@F¸ü×#e?ØcƺC¿9ƒ˜-ó]-P»ÊA5lI÷tÞa0³˜KtÝÔ¿K WÆx2 5 †§nhõ×ý„®Äv£‡ù€c“ŠÊ¾CˆÞ“Çe¾Ã¶aˆ"òKî¾–€ÂU¦|—µÖ‚8éLÝ¥Î]vÂÐÄ%£9ÿœv.Xº28yº±M\;ÀäËiyB‰B—Û÷zrIT¬ô´·ãüóO”H£)9ÜÚÞ€tÒ£'¾yÈiúÜ}I+—Jw…›¥ãÈm‚wN(-Ó®?y¦ÍÀŒ ¸’«5à•9OP=³âç²4Ë¥X-1›/(Hh2œÒ…ìqPQmX“GȨ)Î"ìÈp$PUÔ™Þù5ù/\ÇÇ5Ó‡vµ½™B‘E3~QoÃ!U”¹ àæÀ«ºµÀ±ÎH}_JÔ@QÙ‰ÎÒì†Þ‡Ë«í8ûYy–ƒ}l»¦›æØ2Ì­›"ëÙË%šÐß„>1Æ9½&´ãÄ»¬Nr\§î¸Ëï݃ì¿ç£3)'økÚç”v¶ivæ^µ¤Ä­-.Ö±-yxˆ3k÷¸;X¡Ó˜O·ÓÁ3jG@ê%ƯN$çêNÍe‚`¦4\K‚Î_VJɇt‹¹˜èÛ>Í }òP©?#²åk.†{T$$cßC6†¥P¥gŽÇ¦ëb ­i<³ªöØf¥¼ògî„Æ8³á/•©5Dp"÷›<ˆ¾xU3÷ÊQp8RD„Uº^‰´ÖÌrØop•Μ´sCËÙ[û¿KŒ[é Ù¸BCÔÙ“^MœQâ½­u¬ãõ]…ôdu™l2;7C<3~íFÝ%kª-ÅJ>feÙn®¸5ürFbwæ8ÅÍŽ(™UÂNQ»úãÕÅ<âÄ\‘LÎV~6ÏëS-ÿÔžS=«Ò­ôü¾$& -XòÍy6†ãþø¶ŠÙ‘¥~ùÆBöe+M4…H{=[^bÖrS¡vfZ}ÄêÎÇ{QÕ®ž‹™icáâ«ØÍÇ]rä6€]ì{f[ƒ(´¥ì9¯>ws”yÏ#Gèk~ >Ȇԩ”…—À£ @rÎ’WZoª‚¸Yþuòô’ç·MTô±Ø©TïfL6óÃóµ’ tÀWa!ùåû!¶"ák»™íå›@°ø®õ¦ž•¨Ñ Ï<_ŸTs”ªn>›bK]T©Î¯ÐŒdWÉ£ôP¶¢‘{—U'/‰gÅÛxÝ~ÿ¸§-ß"ghØÅ“?ÞXÑ&Ð`)A`Ë®&²dDíIÌüµÓުȵˆt,Šã§û~f#Š:´Ò7>¥¦Mr/šY#såÛ¸· ›lG\èϧ3¤õ {ܧH±þE9õk”–ÌÄU ·?uhEÓ;O~Ù¥¼Qâ{ÊÁŒì~ ¼¾êI“†Èâ·6”>ãi¢rÿQ,æ¸ß¦ÛgÞ³{£&~j™6°®ZÖ g “I¤‡Ra‚ÛÖX_x’âÝ®´. -1 îgéÌUg¼ü~^m—žKS}4ý‡Ø—°Ñ5í!BµMÅ ìos kZ"cc™ZÚ»š] ‡Å$ñP¸”°÷‘xG4}¢@Ö{ùf@ê=Ý“ÿÚ°oúk‹ßA©¬È¼¼Å·zYá…[íî‡~—Éå,cYJž(ü*cØá¶‰:26÷QjÈ…ìóXYï°)°ºîÐú÷mÖÞÂâjDy—’á˜41õSñM[Av5up¡oì'œÍ¡$r_“1·uµCá©äç)ø ò­VñÏS̨mÑÄ#§i»2—PÈc¬;tç—<ãLPmWhJƒ$´@cÅ>²…ά ê#W ™wÛ(HbH*ÅÉC"¤·R”{WŒ$•be¶Ã1]ôYOÓx– üµŒ÷ªxê£ÀjŠ”!˜D4Þoì¼d4ð˜=ª·ò4ý™tÿëèJËÞ+ÓPQϬ½1”˜¿ãñõ7T3Äœ—1‘¥°¶ÊÉ¡ññƒÒ M |‚37eD›Å©ÉF?ÈöoŸM ÖsbÇ kx|N<¸ÌíuûâÞ5d"7QF[N¸k~Ù^¹F²†Éay1dÚÎÚŸÇ®|&e 7ëžc­? w[K cP'5Ê¿Md…ž{ MºÀûÀ-«g[™&gº5ò¤" /Ãý«»Z‡bðÑ·”EÖ͘S8*ÜÒá:éщ`b×at½“Ø:¤¬QZ#ÐÔÓ“ ÝåÂàÙp2ª¼>¡ëßýšê£G{±p›Ä𢡋v¡ºVW_ Öèµ—­mµE—9Ò*¶’R~lØX„ +¯+*-£&]ÁcübˉáNg?È‹ Ýöæ“&ëqÅZô„Ês”;ŠVQ­ˆ.á‰ÁR¤øÊô˜{»Aq‡oîPU•~_µ¾[3‡ç/a€ˆ¦ñ3ŽìQ“•µJ@¦ÚvüúÒñ¦y}·¨*h2 ý‘’¼#¿uÞÿXjðá-7­Ù®Àïƒüi_ þ-$÷©&\¸Frª±@Ët^G?;ûÅá -…–¬‹#:,f[ï·„[™§&¿ÊEW<›í{Ÿ›‘ª6¦˜4V.øÕºÍî:ºµ B µ_F/ :94ÕíÃêòkä¬è"H‹}èì1ŽŽúPáJ0N„¸Ýœ_d¦Åó🠯ܧ6NUY¹¡1eg\ïÀÇ9CgБÈ6«uf1ØLdô >ƒÿàÑá¡X/¿8/ý~/7çœò"/阢W@Ýq»ñ…º”@Ä®åЧÊ貿Ü> ì'aTL§&JÒi:cl4’M®ý§¹LÚh…¯×*ŸYÜ[’(tMS©TüVš@ºf•ÄèH÷©Þ|-6Ì©å!8Ú+‘¹ÆüZ–+Eöqx¼h{Œ}áq¾—12ôS%Ìca¡'§j€Qò ò¹°}ÀZ©ÇØBuôDC‘®8;{ìY›íz¸gÙµÂêWªø±Ñ× Ÿý– ȵwã <–$š„ÎlmbDÏîb„²ô…¬Ûò„ §”ùd*Hû1[£Šf©”ãd{•3qÙ•wIÀ|îÀIð—u¼åHPÕ¥¥øá—àJl$KR¥?q*M"ìáçã{FîqaÐ §wv{7EÍÚèʆ×>«l…ðß]LÂYÛÜÀ¶ŠÏ·©²‰êþ£9›RÌÆlÌ6NùWù¯¯Éñ› â2‚'‹àeNjÓf0•k½_xc³~&_²ìx£ ‘Í.º÷¡—&¿|FÙ#‚®Ž‡êˆ5#ý5¬×XY'¨Ùß’#`0˜ /=ùS õQŽï3Ï iÏšOè±gS¥ÂÏî0¡žX4E„Rˆ2%BŽebmþÈJÇoG‹§ŒÇá¥!¥ˆÙúºH‡ÞY»~F‰·2…ÖuÃxژ݋=ýy‡uÑ@uf­Œü£, q %ÔMÛˆqýÁ#0®BÁãØnû[ƘYË näåën¹ú0êej‘Ì*ç3€ É¡*ÞÙ:j  £Š„ß¡½§}«‹ÙùtLniõxôÞñdmV Ê¿ìƒ?”ÓŠÎÚü‡õ£)H¨U™ë2,ÁwFÙ8½‰àdçäqÖAåÌ._—f£§0Ž¡˜’RÊo+@†Sèy´Â(ig©5¨%R9=mŽÐ`b_.·²ÎdMô$2]³¦üîLô.…©>oâÒHf3y{_š•fnÓ?œKý™ ¡bc)áé_9Ï»ûÌ|×@q±ìbbÉG R í>ì>T^j­d'´ÃîÁ¾´GG»ÝÌ{ç´Çq;¥C¬únè€VÐÄ–u–'ôVí“´ž+rb¸ã!{’ ·‚hO¶…3•Oû¶7+D¨kåõ‰¥»$ É#„Âû¶ éÚ&Ì·-Î*Vl­“‰c"5½–Yk’KNµ[+Z»akµ3iÈ«JÎs R #r›õÃü#¥zQ)*M_+ÝÃómC8JcÌ&ņó§¡*ZsWèÎŽjÌOjÙfv°¬MïË”4m4™‰¾éÿ„‰)?ŸûÊ cÆÉ»kyUÛlñÆîÖeG^TšüH%¢C,[ Å]äzõÍç§Ð3ì)2ܵ®ÉŠ¢=ç6¯h|N¿XqÚà01/Þ@±IÕßð gZû‘7RegŸ—;QdÊ•­J®ú>Ûâ¨;×-VG*ü£M@Ÿà6šï®ÃÕXæ×m^“X}}â¼¾OÛvvã~W]eïà>2-¡:½2$£Ä¨üçž» êi9hô¢_¶‰Ò× Åƒ`¾E>Áy¥Üí±¯ã,ãÃ(6æ)êÙýÖï8ätU^¿C|÷)\Ø7¦ƒ†?ÙœÕEnw´ìšyÉÆÊTú>óM™|ɘ´ñvüðMê…^Vð{ûĬߧQKÃåIØÐŠy-šÛ|Z¾›œ‘ŽÇ©ä²Ãbî0pY‰¼>M™{ó ˜©Æqö_NsYRG—ü¬ Íúݳ,ñ :LÈœ"Ì}Ed<çv ^ï'M1ˆcÄéÀm³F~и²ØEŽîŸXÂ-b<ØQ[åÎùt$ gÉ\’ç{@̓½B^Â5úl‹ ¡F’C#:¾Öüq}QzÛÏ£ËWì¦ÒnÉVe”š‹¡ßôy[K ™¸ÎónÉVB÷3íº¬+žR’C¾ï…3ÌÔײ á'VÁ #—ŠÇrÁdúŽž¡P¯Ç`óñû† ©üL!˜1XK•w$j–-ó¢Dƒ ™Àõd*/1ÝÚúÔËΊ¨ìŠ ‰dÕ¶)Æè8V%÷;yùõ‹ËæíéSÚèÌ&óõP`ùåkxäõBñBìÍ÷GD¦ŠKÑ àëj¨a¤#Å+>÷Rg¤6«é‰é“¢óÚVQieôì$%£„UÌÖMæilÝíU¾¹x\‚ûr±ã†OGQʶ¼¨GG*¾úd¤Ô_ÇÍ@l“yò=¸,ÜRפ}ô3Ã)z¬Ðãg·eQ3øÙ§-åLÝzUöùGrmHÅFÚVÃ3ûÎF¹ÊU©Suag»i’`mè{z!°ÈX?(@ú{_œãVñã¢Á98¬ këð\¹btD™a0íÂ×pƒý˜ùù‡É!ª$æþÄwj“̳èÂ,XpaMÝÉYƒ?yÅZí =Y ¾«Å„#™í6¡Ž˜ ž£`ð8¨îx0+¥/àÀÁ_§<‚X®Ù¤¦WÏ]r]ôn¢Â82&šØÁq|9D¦Ö–_”5*ŒövÓ üUij Ó¾Ììv%Ú…¿¦RéÐÂÀKÃäëˆÈ„ìâwÁ>V!›¸‘’åî×yûrBåû[Û¸\*—Ê:oR—º34¾¨>Ås˜]UfmW”½T¾¼ šF‹bÀºã{Ï©äTäÓ4¹¿n+p/L“ƒv&q¿w´2$àséâÛ=WV´™H‰Ã²ß¿¡þê׬äMXÄs¹êÒ2\±gyîæÈ‚û¥D0{ÝI¼O‡*MýÒäï„Ó{b?ßOÃPn^i;•ì6GL*¦+°\YKÃMÉžSKÙ0m‰]€kRÄG4Š"=p’Fs¯æŸ…þÊ÷ƒØ²ùÏ|mßt‘챚»8[Ä÷Z튙ïÓäi8p°¬K1ñÉÓWZ8Èþ€‹F5Û_(ûëYÜ9;~¶bb}”ã–x”nzýÈ·BnôÊ-oÒmqˆÍèŒì{í˜T|°[Å¥zwm>AszÒ ú'ÄÿæÂèê‹‘oÇ«oνEa‚;˜ò˜'æ¬éz»Å_¸¬§óÙÓÿí»#‚æê°}2ÚMöIÿ„ph3Î ½"’(Y†¨ºâ®øíœj”B ƒž'ìC5úi®¢Žî~pùñ/»ÂqÅYG;Òhȃñ1nb‰so eÿü CD›ÑÇmwï¾nA¨ýKÆE3l?ßMÒÁ\ÎìRhbª©ÿšH’s5Sãó Êú`Çʲ¡¤™ÕIÖt%¨ízïi£1k‘9Ï]!˜É#"§iTœT:··!€ÄÆvq%û *DS¾’@¼ý~Zì+é¨, ±-L,Öþe¾N‘ÿÂGÞ^ªý½gªÆGX¯ ©qʶÚ[×%ÃLÈAécíä0¸‡ðkJmÀ¶‰,þeç–Å{y3Zõêë·Ÿ_LÄ1ëMÒõè[PRä¶4Pß¡(2kåˆp¶¡ÏNoZè¿}€J^Û•.Ÿéþ–ˆ9‰¶#´ƒá[Í2¨W3ÝÛ{©@`ÌCãxày’þ†WóÙ:òî2±÷m·HfFpéSÔn’+A&!±î@*3–yÆŽ+:ø^ ѧ <ÜmàÏúi¦1òÔ=æúûHÙÂÑ»1W¾>óó:,³ Äþlè§XÁÝÑØŒFcˆ»^)íFFKÂ2»,ËÅë”Ê5œþÎxú.ËÞHÑÅr«ûŸDËVJ¦!Îy|¼_n˜xz: j½f~ab}ùª*ƒ8£%uá‰õy°Ü˳=ê¾{ŸŒB7×8èYBðµˆö;"Iýˆ ñ¡ìÏrãOB2™t¨œSÓ•ŸÇvæÃ{>ÉGÜ~u‰•êÇfôQöï•Ðn^u¥¾ ¾J½º °Ô°(ïƒÓ›”ÒÒÔFšEC lcÛ~ˆŽŽa¯@“®ÖÔÌœÞFËÕ>‹4«œ£™bÒ#ýaC¼B`RÒ±4¶iJ?µ‚#/Ü¡l£è£€êË2Ô’þ¥É$¹±6*Üņެð™ìÆ5oö©´GZY·?̳{ÅoïŒ5ýë¾^Š 8ÊcßФ¶²aé–ùÓÍ06gªº½æKøËÞP‰¿š6$\Gi‹ ”èEF!ôÆFF,28lÈLˆª·Ä²ýkëÑ%j¥r½êþ.º®ì%y>Ôc{Ô·±‘÷%4ÂWd)‘·‰ÚW®¯£g)ÌãDv/(‘ÒÖSÂ¥a^]Øw¨pqèè7D™ê­{ýt+ú.ã.’ÉŸÀ =2øìó0ñ"Òtˆu­mH8ƒRf5QG×Q?Qª24÷Á·“÷$„Üì<)ª>;±—b…6õ¼§}Í/×_ëµêÜœá2ÂK ùèÛ£M€e ò|uí¯›rê¤&Ï™/O4¥wš\ £QŒÄ´W7@V HBSõa3á#i‡öitª7j½«ón#‹Í ÁC=ú,Äøª,z•¡â»þì„— ?ùjwb,ß5ñ0û&{ôÎMVënU9„ÁûÉ!hM÷kHAìÞõ xB„±Ë4ÔŽ#)Y(Ìzƒ‚~LÉ·Iÿ_Ú>9•[μ)¼‘cÒ¬¢*Ü)&×± .¡Ä3ëË)ß&ÚdÜ\ÌPÐnºMW)%m!gÇÚq |ßv»Ms*±ðßáÃ’øSðU+‹—…ÖTu­áÿº¶÷'æ™Ì›¤uõÌ…h_DVjb)ÖÖT§÷aêêHw‹i0×]VCFZ¾Oaf¨l5˜¢šì¡ ®gx$4ŽƒÛËabÙiqŽ´À1²E—s> P’gØÕ Ž6Èb%‹ÿt¦]{Õ¾)nN—n1ýö]ë®ÑõîÛf2õ¼4gÔ¯£Q ¿zoІŸ’³‡ £ñ/NÅ(°úa™8;¶K9oO™Æa—Z“ ÍuÄghÌRƒ){ôÛ­<×ÐæÇwà“ó¸³~4ä1FäÊ¥5ÎL}2oCíJ‘> &’€eBl•>¨÷ÜJç–¢½ì<¸Ìª¯—©ŽKgñ¾UMy—Hõ~Ÿn>4³”Rµš{ÎwǦ0ä@m$ß“®°ò‹À5!ä#©]ºã êäW›`¹fI;QAmc7'y¼ Þ+cVÛ{îtÑ ðZÅ€Õ÷Ʃ.v #´Û¿¿úVé(E:Ô–anGÂ^Í„ãÕ],¹ƒ gÃìy–Thé©!èÙ„×µ6u#Ä-û¤ëèKºEìF¬Q74½ÊP¬.¡ùÂD€æqVCùlfÓ‹¼¢Fñp -dʺý¥ÆñvÉžôõÍ•žV±™ð,Í+w¾"{а^ ª l:‡3ûÈý7ï°Š7ÀÌXÔj*Õf‚øØ«ì;ˆg»¾ï£IIdªL0ß ™¯v ûv!no$§¶ê ñ>IÓ'^sA«n$_2é& Ûº­Ú[°MÝÑ~’Ê"…­á9¢ôh«Ó$•Í4d£¦½Z!í0ŽÆ¸Ñ\ðÙ>„GªiìÀLõIZ'¥\ÿ2ÈQz Ù,EGø‘Ûxô‘×_»;gAI-¸Ž"6mš>Pø(äÌüV|sì¡ gš˜¦ãû1Ü}Ù¨¹û§ í4K….):Âå•NY&Üø~ ˜ÜDÅw_{‰_#slE^™¡z ïNµaHù­¢?÷•«5ÉeÙˆÆp\pÀˆ[ŒÀí†u³ìôšù2‡â3’½Š“¿u%Å›ÎÊb¿©éÆLó牡‚ KCv;‡¬{­¦Éé•…mÊ?Q¶1øâ®R¯ÏsHZ|Ü lO“ZöÒ©vÇܵ6£–=úpÛ½y.§|Ä¿­Ó_íÙLñÕ¦ŒC‘ã–ïCEQ$ê:ü±içÙcUw0>Sr(“ÖQHUƒ‹ ë%ûÝyJ²ü›ì93ò<-„Ϫ÷E’œÜÍô‚bJ4ÕC*Æ™aCùÊ1ŠN邚ô)¸>Ý/zŠéZl¯Ã³+ŸY‰]X5.{Ÿ+»ìŠd¬¢is€v²xí削IM½L~¸5®L†!ö³n²œº‹“,A;þïº>ªÚ@A»-Ä\a,ª“MóÂ,ºkå óÀ „Ï@îæ@·tSÞ¸ËãÅv;bœ/»ycÊ®9¥wšµÒ›dh&ŽnÇ»bÑ3ç–†Å:2:xü`{,?—pâ”;Õ]Vœ,W±s ã_pû"ê®!äy«\¢•¶y@J=.Öåtôo6í~7CSk#8VTûØÌ›ɾ^7ÕÃèp‡¬ˆñ^ÛÛÊQSêM2¿ ¤S(²ý Y¨TÖYéÓå’žY]û‡š¬Ž#±æ­žòÞômÒ3Ý"¯â÷WJ·³8Ãó°«w >s-}ó˜bƈs£ +N‹CYx¶”%`f²üƒ¹¶ïj–—Ö¿²³!¶sB‹³<ÌuøÐHØâ ó¢ÃYÝ™n2F–aRLƽ²¤·_½¦¼£ÅÁüag#3žB¶µï¸çÄbo0*ʯý Yg(üEhó£áíµÈ¡tè‹ñ .KÁ`ìNÛ1 ºøa= ïö >óýòú¾"Ë>-U¶ÙpÜÓ’|îôC@tfú¡. ò=Îìg4§ÛÜÅ’íQÚÅ,Y{F‹1VFÖöošÇ¤j¦6 #'=†çfE¼rJÉeôä5àÄ? ÀÑ[?va–R“.K†ŽRá–Zîó«1ì%éÄ%\Ê]¬-y|©öó¦Mw'ôp"$Ä|šп‡2Õ"þ4éX.ýŸÊ#a˜ç#ŽPtŠ®ãM¨Þz¥Ù×n7?ÈÒ!Ù{`×?wÅļ²Ñ¥K”¦‘„¨ók¶ 2ùÜ=L©ýúƒÏîÆ\”E­’Ý÷š¡­ß  ½‹¬÷™‰|Ò-Ïg%m†X»Îbp¥t'†pì5¶;’×É]ñ.JØÔrñ™f®ìÃËÈ«#rÎÍu8wÑٰ̛Uí®À£ˆöò~¼+’Ù‹÷t‚ÙÉ«zPlp‰Þw¨oô-Aê63ïûÀ§ª%.\¶Ùw:rURÀ¶ò¡ŸÒÀ‘?Â>t€YàJ1å7¡øC~Ÿã3ùXi3ÑÞ™É SŸ5sŠaQy¤ÚÞýZzÕ*SÉEÅY4º»jŒÍ:¯j‡9¼zj‰8¦šíðáò2©øYÜ›¾‘ê¸RŠæB*ìüa´Äß,긋Ú–I@I™êùBOUK®rª®Ÿìù‘_:M´De:ûyx=¸ x·7|ŽÝêõžG“¦qdjËÝo_Üþ‰ãhY‡½l耢ôfF53Ø©–àÈ´Fü<ɬ,FóÉQÝ“wnQ© )¿B’3þœ¹:5`%¯Ý㈜9CßHlObG·j>q×K¼“]¼Î®5)ÊA%;%n‰ËÀ{b¹Å6S¢žW’Æ)ƒ-ÉÖÑ!ˆ®TðÀL¶ÞÓO—AßÕ“Jëh¤~EZÂ*t¼ÛS*æ~U42þ'jÀ{ú¤OŒ:NÄ$N)„@i½ÅÔœíÖ%qÕµFY•Ã{“ƒcAW?j(æ/€¦äöiÖøÈSZ0ª§$gIïõ0évLt´*W$‹[´úUK¤qkÖª6Såãì#‘´¹±dNÙÞ"Í)@ Øí*?Ã]"ât à"˜áŽüh{€¦©íù&Õ›R„îSýëÖlÑ1c¹Ooó×î£+Ëü)Æ×[:,&½cV‘ÜƤ¬çU™ùY¶ÑB˜ÀŸ{óÙ!$L¹Šo`˜±Ø®„¬§¬ýÀó0×ø‚¸tkÿOéðˆü¯T€Ëª×œÁGSnévGÙš”ŒÅú¦Ëº4jW‰ÒJ–Ä™ A† ¡7Ë}[ÓW'}*¢GiîwŒäÜ™s‡Wˆw<Ô‚Ó•'uÏUoB[—~íI^‚W®j¤e“ƒB%1¥éñùÒ†Ô¿¡KƪHÖ}¯ÔJ†/ÆÖíC^[³w=,‹²ÿÃŽºT‰ScA/íxxyO¡ñGã÷[Fe¼öþ܄ğ( ±¡ÿ­dÙBxŠÖœçRjÆpT`¥5ªÒÝ„ñðÐ>r ’§·%–ÛDÿ¬6ÆKØcYF±ëÂÓþ{MξÍ&¾¤¾€m7·B@¾‘‹–¢ÈªcC­%p¸qœlüïNW˜\ :ª¶*>qȇ aF.’,¬ÙA‘‹eTßT];Éè™,Û,~BwÎ5 ÒÛãµÜÝøÌ×(5båÛ9Ù3q¡ÈP¶B]•šÎÚV±â|o¾¡*’÷mÌ6³È q§°lûÆó„¥q$¶×T{ŠAKÂØ U¥E*ö±Ñ­/® ¦®â6 7JÅ`¸ºSÿ9§„ÎxÁ~è·k–Azÿ@G·ûŽÞÑtÚ?:oAª}»ÈÕŽ½$*/÷Ò¡¶—ü´Fll„^#yÔ´-.WH³Q§æã¡9¥aø))]]‡ÖZ‚îÄǬ¦Y2-+:eëãw±–ïñ3#¡Ì3‹æƒÒR !° 3a%5Õ®S£—Z ­`{¹ÇD­d ³F´Òh ª û.ö(´ý±JóGOE µó\œI=Þ æ“XâS _ãé(q€âO_ÿ¶ahÀÜ =ÉÜ-!îX¸+tËÇÒ #´3Í%ÁBc·eYÐC·*@+ÓŒ Ofr@´»Y”«Îñb×Ðy,Õ@‘Xyxì¯ã\6r¸Ž›ÌÞf zd¥„ EY¢ï¹žÍ€©rŠoÀiù¶Z”Bm <ƒÕvy:RÔ[t áꕹSpÈ}›ã¢)!_ðà¡:¬\ÏóšŠàâ6tkÜå¾g) 5jXÂÓUMÊ·˜^²ÕO«ßòkÅ¿áÄ÷îã¤h-µ±°þ(ø0V(‡ýížP?N97-`kÕ[5à:]¤çÂLJÚø!Ô£wK±`Ú !M.uôÓ¼0(Ùš 8úƒÃ üëëî@xäx??vX´Ï~ S“lz=ç?ÒeèéŠzçChÉøÛçÝMP-Ò$i.uŸÖÀr4±±I`ÒÝ*þ ÏE׸ƒ‡ª}É%hŸ†V´¨Æ¡·K(D¥7dzSF冰Lz,³¹]¼5NîvþlÐ`$ÖÞä`ë% 0®„\§Ý„gl‘ûשêd0Œ|¥¢j ôØÄ¤”[^€“x ‰Ýt`¼Õ !4ì¤ZÒ¯ð³iû~˜ÿ(>í]ÒB8¹³Ù¸Ÿ‘<ÅÊpjúV‘O{²Àu:Ûõî%ääŒ&MJK¥;½bTä/þÅϼ} *Ÿ,ÒcàÒM±hUÛ3ÊÝw˜`q·”LŽ-Çb¦·ElÐ_J#uúìÎÎR [o{r>›F¨¹(%´9b)†O™8íV8°íέ±™?Só Æú¢ö¥Å—Â8@tùtÍô„ÎF‚`7w5­¹lBb 1´ƒƒNR >ƒOÁõ(2º×Š­Hœ*ÙºuJûC…¥ãC˜ƒ4Ù 4UIL`ì¦7Þ<ʵN•8G뀃tC¶ªcŸå‰—¬“†š!+±ww>öƒm/ØÙ˜9¶÷4hI¥cå5BÞ;@¥ÃùFžVLJñ$ÆŒ9 wíŸ~ª1öUÖÕõwÀp<¹Üº0éuÃà’„ÁµGº (\FŽä†ÔÆšÃÞåªBA@ó3—u¿Z;­-qÞ!ž£@q²¹kkPùÕ\Ža¼x)¥eé…í(¤÷Wý¾n´ËÒ2Î9‡Ê5’['6Þ5Ö‘vvæ4$'fÜL|RãPnÇqúÓº:Ö¾”{¼<ÉÔÀ[wª8þsyž,mê™ÓcP¹ᆳ|>k¨+É…'âd ?f\êòÖOšnúðn–yü„R×´k˜¦G*åI¿UŸ°Á3 L5ø„ SÓ` ,ý&T$Ýÿ‰0ˆèåd{¨ÞîŽpúìl2ܨn€Ô ¬ënR¬ò/˜âg{,€-G—<@öTý"‹ð±Ñ*(ás2U^€­"sA¹õüÙ¤ÌÖ©½+Ó|ý|OBJoø+µg2MÍÚ Á—ú7ðÁÈ1=­rIGÁi+Å¥ê ô­n %}ø­Å,ê_Cu¢€œÅíƒ`WŲ½MÇ(½üW?3Õ©#ÒBë>°â.£¥ÉB=Ýmig•ÙEÌ%TŸL.¥‡]6ñm B¬EËßpû1Äb¿ò`¹>X€÷ö‡á¦ýŸa/Qt˜4Cëâ®Iµ©éøL6¼Ë:Œç}ÎgËæ’Ò|îv}±ª'¾Š4NiÎ…Ò²÷GË(:ÎÚ•ë®(?¼iã)8øR,·$¥Í§k é[@U £Î"ìµ00ù´¹¶¹çK‘{,È2e«8E¥œž"ªmˆ” ó^âðC惹úúª\Øa\j;Jdì\KêYnP=uY1âemÙŽdì‰DVppˆ8©^Õƒ2öÀ²Y‹Ä[‡(„¥—c?¼J…©Æùýh ]&ÞI-t¿¢f¥ßº/« ;1r’KÒø N%kÔ}\«¥ ‚ïGyqÄ(ÙÓäƒTÕpQÂ&™žôѯÌðiKÕ`TýG‹ªó&YA™äO šSÉmÍÎj€ ×ñÞþÚÆÈÑ\£“ _ã|Ê=¦fBœjê9¯ Ťc‰>xÕ¹Êãs;l¸s…—*]jš¢Q•½då)÷Z¹Ò‡ZA{ŸKœÖ¼T‘QCž®¬žºÝ˜BG ×ô,´žG1lĹÊIøÑX*Á;£ÕÕ©Q!5}È’„W.}£ÊrÚÉ|ÄuHÍ¿}=ž5yÆ£WG¹“ê×hczŽ:SJ“ž‘^¦YàdJˆOZýàß-~‰fì&_«g†t…ѶR4‰Æwª‡¤èÕJïç[#×P1s#%1°v—1øóM´Â¡8ÿ|Û†ß'|½ö¥‡&ŸŠìæd°Åë´ãDú\§0¿i ¯·,ã ¬ô[†‘€O|HCdßÇ¥Ym¦ÏìAÜôÛçs0g!CœeqÒå(íÍýY½…û+Gl1Sq¾ –½ù·$ã¸ãX°ëyF<ã˜e@' ³ o ‚5Üæè`æ€o“Èb@_ã´“€¬h@⪰ŽSü·=ú¶8ÀBèY˜Z éàa‹Ø¥ÎÏn… œ çÀZg‡2kHÐGô’+ؙԃP-/=3îÚ¾x܃Ä8æ¶ œ¼8-æòÉ´æ÷ÉÁhü »ˆAÂÛ õXͲ„bÏ êš)Ÿš×[´ÚWƒ}!Ô›~kMµ_ÍÀÍ-¡(× 1œûãœêa`»Ï‰s—߉*ȉ¸ü«m ¡„œKWF1æŸz¶O ÛÄ4Ÿ–+ngïóþyHùžK2ÈÂýÆ7NC™ ë|žœÈ‡C×å»õR&vR|l–ÁÃmS7zU7§Cj ³j5]X L¤!îÕsGk W)•²äsÙ׃¡ás›¤® )W|èÓh6MŽc7*{¸t«ÑeÀ=²B¤*¾“äJ"³[nh6ÌHÙ6’Ó"«6¥¯E%<¥±<0P~t¶’7¶Ê‰ÿ´à¥á5'h´MT{ù’¦~6Rj`û<¨L~„»£wæañõ—®™¨Žå%t"Tàœß×ÙÔ­A\ŠNÛ¼aªË‹§¾mö!òVy{÷ €- 3|4町sw™g™”ˆõ½ÉõxÂIjå…-}ª—›…B¤ÈÈruRþº£)=š¸ÀeЉ ,™ÏiAðZ»4žueõ úþ¶zc2²Ëàq°ò+ZÇ=7w€É耧M)P*@VÕ†#YÉz[HM ¾iØuДÞoŒx”8¶íä‰[ĺ<¹ŒfÎþné¬ZŠt2ãPÈY럪X_;B¥.>=¹$grögÉöáLL ÿ^EÛ ´O U§ÖðEgù&yÿtÎ?ñEpí`6³`¾¦!è‡?zô>Xb8wr«õWäwÇ/€B߬‘WXŸÛìlFúkGíP”€GJ^Է˜ÆáU éòÏÕui«¡'éçkÖY¥XeûÌ  é‚'u¨ð4ŒÑ"¦ñÿeáw”;{Ù+哯”y+1IÔ|3®Ã`½†"Ú¡º ´«²y~D}­ÊÅø­Ã#¼æI{ýÌ÷öûüÛ#’,ó]tM­é"`6ô¼\^û„¯ž«ïBü|ˆÝÕ>86œÒ/ëu]ìiÒ–/+‰pÂDŽ£øé”Ø?Jw‰·ØáüJ–¦Ý@P¢¥§aŒésA_RB‘Ϩž¥è¡À©šÔ‚éú)!š“ YŽ¥c;Š*±È_«Rda &‘¤XÞôÀ¿˜HmË`“²m8}=y{"’ç+fT¾Ú,?7ºé¦ÝÌNd©³œÞÏá®Ý“¾)P׆«s0ÑNüøŽ1š#nóÉ„Qã§*Æ~ÑS²Ð4š\¥ì”ΫÆû©}UŸ\¦ÒÞ$+Ú¥9̪(sWǹܢ°3GçI“—õ`9ΟÅa<åâϹG%Öµ:§l–ªÉ p«©¹ËDŠ‘•0à± endstream endobj 140 0 obj << /Length1 1451 /Length2 1871 /Length3 0 /Length 2790 /Filter /FlateDecode >> stream xÚT 8T{·Ô)$Õµäëß2…YÙ³NÙe)ÉUÇÌãf±4¹EÜDÑFZ$Ñ.¤²dM…«ÒbI‰²f©\LݤnßKÛ÷=Ï÷=óø8ÐC€¨º€ªoD]mD¡…b8 ĸFÀ EXÀQØa(Ì#­°à.âçÏÇûL¿SP WkM¤‹ ˜‹0!8B|8ïÈ„8À c"0?â‡$>?؈L Ó‚x:×ÏLS „!|à ó`n(ÌbÊÀ ‚§¨éˆÀÝáMÜ06? âÂwp&ŒòðÊ‚¹ïÜl€s0ŒN‚&Z`êpU‡úµÜT¶¸‚N$CL& ¡êØÎ ~8_ @(K „8< χB!„ù Ñ!À°X œá?“‹óy:<„#æH—ÁÙeYaAA0ÊçÄóY#\˜‰Ÿ{yêrQ, N[le±Å4X‚`²Š„`[ë) î"|óùÁ|@§P(ººp8ÓŸ,nà O©b7Î!RŒ6NŽDØ0þGò Pð¹8Rø}àG‹@¥Âä_ØA ߪãn˜=iã÷ÏEÂÁf .?* ˆ_ß~ÃÆÂPNÄ7øÄ“7¸xZÚl\5EùkÐÒ Bm*Цéê:MèÒAäU¾òŸæ>áu©Ù(ßêÙ¢l NRÀÏnšFè”.HSK£ ~ìà„áj†雸½)t Pÿï˜HùoÊWùŸâÿy"†€Ã™ˆ“&ÿ‡‚NÄW³€o†#†ïú3t#<¹ÎŽ0 ýµåCø†X ~œ¯‰ðH8ÌrAøLÿ ÅL_^ƒ ° ÆCÄß M¥P~Šá+Ç Ä¿)<ü²&B0¾Q?v´A™K¼z4º>€¸\(‚@ÁõE£ÓŠï( Ÿ6 ë O8»HÀƸñ•R)t@FľIW,ûΤrðw¦ s¿3õ™?aþ0SÀåâë:!|ài{âÛÃá0“ð´cÇäÇ”~ȳP Óî©§éÉUÄ‹d6vÛ¨„¾Zme26ª›™ÐbQÙØ›0örÞ íü—Â@Ï…”@ŸÛ&-|z­t&Û·KkûÃy¦yZ¯}E…×V]”å·p¨Èµ6LdÞ ù«VÈpOÓ‰þµ&+Šrþ¾ì?4K£àµÎ©ú} ³” tçHÅ”Yœ(˱¼bÑÐXn»œ7b^ÿæ:£ìè»4zgõ³‹Z’HÇQµ¹`{щ³Ô¾*}Uû­A±»ÊFy|?)ZTEòåÝsÙFO•í>R8xFà¼4&Š[ô&¿{݃KÙ´®ÇkDWǬôÛ| GGᙃ¥LÎN.­@f¿ ©Ôd“¶MÜÃß-ýrî¿?³fÙ&žù)[¡gŰƿꛟx<$iêFR£”èo\›˜‹ã̃â·§ófÆííùزýcF°yšÝÚ«]u £øbŒ¼YVY×qj¼ô8¼s¦ï¦T {hq’çß§O?Ï {­Ì{}ÖóšwÃX¬‰b|¸2£~Ñë¬ä´æèkîÒ•©Îa¦{·˜ÄçºÎ§Þž½î¯°ª—–ɩ뗶­ÇFäÖ^TÚSy,-Lï@ëpSä%÷î–¶¢?|²ˆE—劷=OI_åWÖ%ôÉ¢‰ï×ÿ®eZygÃQ…ΜgªWŠíDsËㆤ—8(|LëÌ;¶ûr«lÈîÿm!^g”Ò½¯Z r¤œîJì÷Ÿ_íýR£kÇDÆl¹•ÞyK}ÍS5zßiþç‘YÞ2‹åöTIþYîhl ûXLÈìO˜q§ÝÚ ûŒ¼Þk/>× ÿˆùb¾ì«rÇ‘ÞëŸEç6pß=ïÈ4«:¤nŽDªe“dW$r w:$E‰®…îÈ*Š„VE¡aQîn‰ÓÞj’O¶®û´â‰Í5†Ê?»û,_¥t­ÔÓ­¹Æá!ÕGÞ}´ËTt"BXàë’ë´×v/-0Y3ç|„.éÚÐzt«våbÙ û‘ôdáÚ}$ÌÐÊ`Eî14BÞÖ† 1­ôÍÑqrÍû/Ûz¸ª!Œ³fH¨[™q©&Ô&i«3ÒNhÉ5ó).v$ùf™Wóš‰ >‰ºýêM`P”dwmZ »ìQ×Ôʳž1œ<‹l»ÑbV˜Ýý‰?wžóŒu³K'ìkoDmßÿE¿¯«j_à ºY~Ö‡vÖ,9Ç®ÚãžÞ%Ýf{Ý–Ñçû(àÉk \xõxáå® )ó²K˪±¢jÖ'÷4šô;˜IÜK—ÓŒ­+KýlgìE²ºå§,]¤ k0b°Kœû§ÄÙ­ÆJB¶|CÊ‹·¾;þ).ÝdéТg›å»ú Ìœ”Ì›»gs«Ì‚ÅMžùŒE:ǽ  e2ò™­ê§¼gÑ:ÓÀëE›–ü˽_o¦Õ!ó—¦;ÃÖJe’ƒjdm_HqÔ¥—Ûn÷xx¬-Ë0Ûc—'£r³ß©;áê4·ënlº n÷Ãm¶ú“Ç £–öﲌ2?žÈÎú줘¹C>!¥A°ÿÒhâÌ]ñ˜]N¹5ckÜRaøÞLµþ-äu·dÔæ%ñ¯»í. W¬¼n¯زªI¹/¯G«>qÍ,šÜ• U]m:Ý™DR´jS±yÙýö‘‚®»½ä=HIÛ>•Ž¢ñ½Ë{‡”ò¢Ãk*ÊÆÜ»vM>#;¶è&ÇîX¼á5ïÞŽb+&vª¤¼–M›[׿ýkÛ^§™ ŸY–‡¿Ti™S¦è™|€ÂxEþB^¡”sbêàËÆƒ¿TÕØ$x²/¸Ÿn²vò3”d‡Ï-(ªùÔºOИøÔ_²¶ÓõšŽ“ï|tÿhâã0VoãgºïÁ“˜Uœ ~Y¬W'}†èY-LöyPßæÝ¸ ¿(E*µyK ýË®¼‹¿üÅF ¼…¶gµÛ×êºn•TJž_t5¥V™¤GßS{³¢ùžöŽû|ÆÃw¥ëç]lºbuòî>—ßdFÙI¶gÇ+áXíî ƒifcMU˜µ—ÝÉ#)*éz> stream xÚtTÓmؾtŠ4þ¤¤·CééN©± ˜Œ ¶ÑR" * ˆH+%Ò%Ò¡‚HHƒòÍx•÷ýÿÏù¾³s¶]w=÷õÜ×ýœ52WA`šX A"–ÔôÍÌ.`°”,I+ `†" ‘¿Í´H…ÅÈ PÃ!a¢MF Æéc1€Ž€HiYÈY0ƒeþ Äâdu˜7 èK:X O+ †õðá\\ Äcþù Á…ˆŒÌ±Ÿé€Š;‡‚Ã0€>ŒàŠt'ž‡¡S,…$øý«„¼+à! ùøøHÀÜñXœ‹¢°àƒ"¸&H<çD?0wä/f´€™+ ÿËnŠu&øÀpH€h@£àH ž˜á…A qñpÀT[0ô@b~ëý ~ß ‘€ü)÷;ûG!æg2 Ǻ{À0~(Œ àŒB#CM= ‚/A €a?ah<–˜ó†¡Ð0'bÀÏÎa€¦Š1#üMÇ¡<x < ýƒ"èGâ-k`jXww$†€§ýÑŸ: ‡„¯Ýôk²n¬&à7pFaÎ?H ¼<@æ”§R[ýwÑDû׿‚$P0|Q =¤/Üô£¼™Ÿò§òÃLdàõœ‰$(g$ñ‡6óFœ20à¨ã߈(8pBº 0´«ÍHç_˜8|ʸ &j€|þü³#Ê Å ýþ†ÿœ/ÈZÛLí’Šè/Æ|ªªX_ @ ˆKJIÐóP@ZFüw‘?ôÿ¡þÓjCýn ü·ž6Æ Èüb@¼ºXxÿ…Ðï…þ}‚–¨d$ ôWø¶`(Nü‚üŸåÿ3åÿ§úUþ7áÿ·!M/4ú§[è§ÿÿqÃÜQh¿ßD!{ˆK¡%®æ¿¡–È_‹¬D ¼ÜÿëÕ&ÀˆË¡‚qAÿ¹F^å‹D¡pןrùgÄêhi„Å£~¼4€8 þ¸mp7âk‚'Žê§ I\¦Ÿ¨c?¶N* Àp8˜-˜(.I(€×ôý©k$Áˆ)‘] àŒÅÑþè)¤ýÃô]”@&ÑgúÉ\@°¿HÁÿ èE"¢‰$þ±üàB„<‰¥]ŽÀóÈõ$ªäêçáŠKf‹5QöC‘9ç“eÊé• 'p•»„º?ºcÒ »ýøóÀf‡~ã‰Bö4ÙDd/o´OtºHØ,ÄÈæ|¯d¬§ïp^¼Qµlt0×ü…S]üˆéÊ打~`Ží’²ÔZÄÈ2¡4G)Žn댄ãr@Dš"xÒÀ³[ïiÃ8IË’@ahaÎ2’0ßR$¶˜6Ú¾v!Lø•n£—#úÜ)5÷ebèÊ3?äñô({ÏýPJß³êù5‘ÐŽ¦Vûï’.o®Sz^ûú†Þ¦XhýsÆeáÓ©f ¸œ|“˜â»à¢Ø]dð eçKŽ_̘öbÅ\س€ÁÅ!žq–Tãá çí˜ ãijÊ…šÉžˆ—¹i»k&´¢ùLÏü|>BíZÐqá9éò=O^k%ø…$w²¨·£§ÊEÎ0É¥ö›Ë”à×^Üö!o}⮑ýýê[z›øC½ä¸µ¯ož7]Mˆ]†ÑÓî <ý0U~³íB„ç°Øa٤éN-Ërrs«Ý’O?ÈNh,º\+§J.Š÷*jc¦Yo\ŸPc›T%w)+mï§ðÅëENÜ»ƒÙ0¡h(}Ͻ:M²HÝÔweÛÜÔ÷3È Éænxæá?C?ß|j‡ojiôýÆ [Ra¦¦mS\$Í*ÆÇd8™kg¶1í*¢¯ÉóÉ«g:h’¬š€‡Ìý¡Œç—øû®—rsÄG³Ö—~ÁËg"Nw£t¶Ùº¶ ü†^r+ÔÃXZÖ:.l·çÕÓ_I;=‰AFuT´®qÛ5›D ÅF Ÿ,yþ€+¯IJR’O‚y6|§MS\ƒ ³i}áNå𵓓œß»F¼€“·Ì“üôtæKÓ-fÖ˜o ­‡IQQ¨ºY;²»_Ô§e-rÒµmþÔ³1éÉ©YžõlAyä0‡š™ö&{®aëôQw2ßÛKÍ“ötd…ꂨÍ÷¨Iåí”F^ðhÙØ|»ä‡aœu„¦QѲêlÒÍì8Æ}´”|Á•Ì”ÙJ…-¤jó¶Sêç(cá˜SR<~ƒ]b·ò M¨Ü$]Öþégˆºh§})ÿÑ+бÙÍR·jçæ,®²3ñ|H}(Ev¸»ómë4t]Äõ½Tßò›kÃÏ5®ÏåõÄë„-ÌuÒûÆj$ÞGwǦÜQ~5‘¶ä[1¹Ê®³(½áù\QßÄ¡Zõ&‡BžË®{Š‚žkl ˆðëý¨óý¢Þ¸Ã­¾³,¬wÙ—ëžœt»6²ÄÖiñ! Tàòt´ÖY ¦&m3~ødþ‹»¿í%i±â6'ã¦xå¯[\*6å<­‰aU·8vÎQÙ(úï f &/pjŸ ËuiD2r_Nè=&3œÏΩY·ä"äyžºÏ¹ïé÷o{ÚÌü]߸†–‡ö”^:¶MN•¨yj”"Ä_>ÉûÊ×ÂS‰»y=óEbf¸Ý‰7Êî›2QCR¾ZA'\ç¢ñœé+HW¨à´Ã=ñ€ü¼ø \Hѧޱ¶ˆÛZÿÀ¨tRàÐeúÅ€DZs¬ì*™+~Ú®è’Tñ5M-Á÷E•* ´DvmŸ¼®‚F{ï¶Ý5vû¼|xš}”Ir.C¤P´EXÊK3æ-[üÇB«WíÞúÏ"jÔzW¶j:_[AØŠ¨_”õ~ïO¤ãïÛ#æ4RÞåç:0LW¹„¯F¬n~õU†~¯­šHR¾3æ™?•8Kßšu7Ò­ñ W5óàÑw›ŠQjVdÆ­ŒºÑ~”Ò ½^ýJ“F4“9¥Î®ü Ùrd éIçë*÷jc}ùy>”XoêxÝZ· ÌF-2/Î]˜B¿y“ØdogÞ6oÛx@ë¦ßi3ïpP¿ò”lÔ«³ÍaqÁnyÜH«\o'q©==ç<áúÒ)Y AO™éæ,gUG©M™Ì Ìì[ŠVä7Йa™ž<ÏÁ7¶“³ªâwNÐÔÊÙ‡÷1òi|ÏüxµºdíAæpÑ[?†¬ôŽ™d„M‹AxâaÜôɵAÔ™ò÷Š…×ôŠ*cŠšî8ž¿üöZ+Õ™ÑÁ‚M]q<­¨åz‹YéÖæû+Qîy¸9ÊÁØö=“›÷÷…o‡%˜ô½| É-Û™EIá›C éοP]Þõæ²>S½¡µ¡¯~ùþ­Û3YNc"03FŸçv.ã î^é°³ ÅNôÌð!Kzƒ¨Þ§$®©´ázVàj6~ÎYµ×$çúfi=Z·ªd åO›2ìç¿n>æ¯ÔÞ™Š1^CO¡“?ÆÌV=f+NŽ,9%#Í4çøTºaHñ|4Ž9^„n²änt€dPÇL0kˆÝ=ò†”f¹KKýÏ{h]ߦNÔJ%´”K2p“2_QÊœ>YèÄ/ •-»­Ò­O9ÿ‡ëh…xäùòÉü« ?÷výã>3ßëJÏ=櫼¨¸úFÁ~$ÈQ„7uR™îÖÌ6Y½8?i[õÌx{ÍkɽS:ý ™lWŸ\‡¸Õ™òÔ)oÑ ï›Ž÷| €è&Föúšê>sMêÖÓ£¾Ä_×-'¤¯>Ì«p\jùRçåZÃÇñbì\d<õ6L˜¨ …Í6 å¶æ”ñÁÄž³[SvОWó”nãóó\€ãZY€I.Ha¨0ОÕE—_U\—uRs¯J_äæ%ËÅÉ,ÅÇYÁòÏ5ˆú*Ó*ä½ýÞ ŸTorC‡ÄÊìêÄžòš^Ö ¤ó eñ¿rònÆkX9_ 7éØñ+´c,åV®ö‰ƒ6q 5WôI¹íÀçǦo9¥‹WÝñ´åY`§{¦¢ƒ|œ ¦Q7 .UrŠáÜr=øP7ïDl$QƒVÌnÏeaðÈø¶O%F¸Ç)ÃÚQÛÅû4ušrãÚž³Ž~åJãC¶)9 É÷: Ï;ðOVpöç,Z_ú­K¾z©y¼žêË-™]ÓêI^%Šn¼eUNÇí£ÄüËæ¿AÂ,BD¦’:*I[·z42¬$¤«•p3ÖáP±³§Ö¾”¯­æ`l²9Žë´å¼-ùn±÷Œ%Sá×T0•>!ü Wkt~9d·´”ÔÖ¹¯¶éK>JÁøP|¯yEèpÓ^9FµXtgļ>Hƒ¾:]~Uý[*ßñXfèl‰øÕQçCž†ccÊM­î¢RWÇÚ«¸ž°Öœ+½&&Ñ#ƒ´Ç*–¹Wþ«õt>Mà¾~»fà>õwRñÄÓ]~Íý Šbµãe¶ß×£ŠC\¼Ãè-)SF¶wÈÊý´ófõ˜8ÌêNrÊ&‘J}²1t¬w|œL6Æû(è^Á½Š3>ÏÄê;' ç\å¯ÑsÊJÍNt²¸a/¶µž‹ìÍ£?Iùæó üµõήyË›MVC Ò —r“Öc›ÝbT’y—¾ÄNÙéEW©©FgmÌVm4ÌFX㙥cž¥Ó’zë·ÄÐó|N 581V¸úùñ“8ÏÜNÃt7³d¿š… ™3±ßÈqêOÑÇøðŽV¯kMn0êœ)Utb‹i¶Ï°j§4».½dôn8‚ ¯àWÒIš-HÖ-’NFì‘ä¬fÊkž¨Úå™ÝÌ,3>ÞÕ‹{%_6(ôưŠÂNkê³ë¥Ò€„‹Îæ½Ð>zTÂPPhxì±´YÉ2²z@õœ€gîÒýnšZ¥î9Þ—êhĉ0æÁª…) ÿs$”qò(s ‹Q¯kN[b…ÝFyœ»„â-÷ªœB‹¤Á·:‚o‡WîÅ®’Œ}i1”£'™¹¹7ô=Ë1x.É—ßýf8W»|M.ú]I–¬·´­ÉD…”"çbÆê ˆC0@¤ËnÙ5}'Ï¢÷ˆ'Ä玴¯ñ~w¶„4‰öy‡ µ¥0‘|ù廊é6îËiÝwŸ…ݽëî‘%íÒée¶Ö72þ.ækÆÿº3–z endstream endobj 144 0 obj << /Length1 1443 /Length2 6647 /Length3 0 /Length 7619 /Filter /FlateDecode >> stream xÚt4\m×¶Œ$jpÑFï5½DtÆc3ÊD B”AôÞE¯Ñ¢½×艞 ¢E´|’§½Ïûÿk}ßšµÎœ½÷µ÷½¯{_ûp²iëñÉ[£­`*h†O,(jèëK`°0?,âäÔG`°?Ý N˜³ ’ú€¢3 ‚¹ô)A0—8 4 x芅A1)Aq)0ƒ%ÿ¢¥%a hðÑ(˜ ˆSíèጀÛb.ùë¸ å%%Åy§ò0g‚4 [˜Ãå‰PÐCC0ŒÇ¿JÜ–±Å`¥ÜÜÜø!.ühgø]n^À ±ta.0g,ÌøEЄ8Àþ`Æâôm.øõÐ67ˆ3 ¸t PÊå2Ãe s.ôTÕ-Gê°ú^àÏ»ùÿ.÷gö¯BÔïdŠvp„ <(8`ƒ@Â-u~Œ;†€ ¬!Hôe> A !V—€ßCyrIðOz.Pg„#Æ…ßüEQàW™Ë[VFY+¢`(Œ èWJgôòÚ=þ˜¬= í†òüÓ°A ¬m~‘°vux„B8¹ÂT•þ„\º@ÿøà0 ƒ%„˜s‡Ú ü*¯ïáûüí¾dàíéˆvl.IÀ¼6°Ë?§  0ή0oÏÿ üÛ Ö(°‚Á(Ð?Õ/Ý0›?ìËá;#Üð¥öð¯ßßof—ò²F£ÿÀÏW@ߨ@IUƒçÆÇÐî€'ŸÀ'$, ˆŠb’€÷¿‹üMÿ/꿽ÚÄŸ­ÿ©§Š²A’0¸¼º¿X`ÿÅí?†ø÷ šèK%ÀÛÿß, †^>ÿÏòÿòÿSý¯*ÿ›ðÿ»!W$òwøöïøÿ†8 .…승\ ôåj þúöÇ"kÀ¬®ÿUÅ@.—CGþ}„;ÌZÚþ–Ë_C¸¬ŽD `Úhį/ À'ÿWìrÛ ö—_—ËQýÁ.—éß'*£ hë_['$*@œ! 𥸄DEOÁËõ´†¹ÿÖ5 ÀBc.S€KvÞ€ Úôk ‚`Q@ñË÷‡y)Wô˜B€€ã˜"€€ó˜b€æ·ù¯ž ®ÎΗ›ú[4— ÿeÿþ,À`î0(èÃ$*`Wðî¸LžÉouPvŒsõq<7ŸççF× ¢îÒdÿEç#ù˜ž¶«sËÊ·ïͰž{~©«" ªÖi8õ:³ˆÔYmMÓ¾Êþ"_ÙÉLrƒOÿÞš×¹“—Ÿ=~nóCÎt'W íLšc·ŽûýÏ'WuÖJÅÔHÏ Fù^> 3õËç̰J™ g¿‚ác&¾C½ëN9~x4F6ô“õa$È{ë¥pާñ’Pø‰'óEúB.-  ÆôÌø‡Ôý#\ž ±é¦<ósÃe§RÁÜü8Ó¨ÖÌ]kó#6!¾ûS<>{¹V#8â•€æ1òÙ…5Ž ÞaüGN´hÍ®°fíéÀ0v9Trçïk£/åþàë„êÍGë彚Ö@´E'0ê_h’`öaëÍ=—8|G¶öÙ©8éæÍÇV´–ë´TéÝ!°PôX1ì…ßid»© ­b}ÍãD’«Â_ïÞÆõxΗnh}¢f2ºÙT|bwP z6÷¼bQ?™ÏÖ®6~œ %ŠXj²âs¿´s,Óé‡Ï0œÅžžü4Ñ<Ë8Öl0¿Š+LXöMxí³›ƒÐw‚–pG…°dÕ~_BŠ)Ÿ§"Š¥MÿW™yszœ]UeÙ¡;#‡ù‹ÝžBw„ý¨&%˜¶ŒÊ'ù¯Ú©É»¼”®ËÙíhÿn9¨k>îÁª¨#BìѾÐM±Jö¶‹Ë“Á5bW®fÈÁ"+´3¾Ö¾)ËìomõÂÖ;dï{ Ý@îfØìzªÐ+Y\'ÍThI›š„Î;Ǫ¶Î…"qg1­Ý«>üYÓ–GDÔ 8®$R.›ëÌAÅ ]â_V2‰ÞE¤èÞZÕo$ iÆö„ú9' ìZm…>±qí÷8¬]xODÏg¡vn;ã“ ¸ÐEfÕŽß…ÜŽ{ûÂæ ÛÍóÜ@ì¼±ë»Eã5vƒöGÊ=i'nÅÇç|¸7pî5<½² lâѾý€VN!ª<ñ¤ºŸ¯ö7—kÇþÌm’6|§ˆÁ¿0'µðìØ…À¦zMª[Ä¿Ññ™ÛEáf~2ùzm†Ä /“|q5D¸˜lº=ð=Ò›VƨÁ!$PN²òÚé„YÒ‡Š²ož~~½MG5j‚° ¯{ßÜõ7XëÎwHøY"I×ê¿›"ûØ17˜g9ÑŠš b†§çß/Õ«ãGßz¯ZÛg”oËõÞX¹ÒWS&½7QÒîÒ gKІÈKn9FÄáîê=äú/"Ì{©÷~¨’¿åxõà¾Q:fÌ’‘<€˜rÓt–N=ÙŽóܦ(yß½ksKïJÑL˜óÖü\Sþ5ð…´l*Rºl¥Ý7]cDõ.Pܬf‘8¼_¨Œh8(P1—ê½®åÕìÊoþiD“jÝuŸ1ÙÍÊrkD²^ônEöñ±õÇde»àíƒ}ÃW¹»=ÌŽGi&ƒ˜ýù%Â× VsÎéÜ=Kæ[‡ °þÓ 2UOÖ@1;Ù †¼~·Ði’žÆœæ™↾Nñç ÇÝñçMW†f·h:ÌHyžä^{Cy˜V$‡|Põ.{/n]"B«Ä&;ÓÁÅZÉß·G®ˆ×ˆ@\L÷˜rQÄl+œº{2Æ‹2wÙÜPn ^(iRbÂ,­?™”Dõyd(²tvIË’‘°`‚‹Þ딼éŽS™÷ܹνX¾vä‹<ð¡Þ {(ž¯à¿”(“™4ÜVxM±¼G{m7Ù¯ÕÛõÉF›WÊwx;®3m"•cú†ë î~ÃÁ’I»Ò†©4 cx8géÆ8Ž` éQµ5Ã+Ó4óX漄f?Öœýt¼þ‘‹^ÔäÈþ44gîæÄý‡ÐÏ8$*)G,F©è—ÞÄÍòñ¹ƒ4§cóˆú¸¿DœÃ•»©¡ºÖqpœúõýi¼*W“²Ð^4®+&EŸ®ë¨òA¯s¸”Æ.è~}yúæjtßÿ&öË^™LJâ‘êÐS½7”|ñ|Š¡¶ú]î* ˜Ž/þÙÙ4C;1º;©ŒSD`!áµ$¿äË2ó,ûõ©ÂbJRuÖÛ3ãìêíãd?YüeC¿§ê9Û^ùFzî‰/åðÓ3 ÷Ã"ZÛè£]2¥€ˆ¸~Ý\ÔÎ÷MÑpCTÂÍóûÕÚ5ó³ÏÌEL4bM·ký©òp‹ƒ#×=¬Äü³Û^u-ç¸ÚNÄ“v’oŸÀ»ùºÛöê?‰¨Ð±®$f‡ffçÌ.R¼–?½N çýê6ýÔºW[­[#—û#fà^%Ö¡º ×ÏŠ¨.ª&—[C\XñVz¾ÜY,È<&?T9æõÚ©vœ™ ™þ\J”õ[g£ nµËÞËc5óݧÝ ýL÷ÙúB)Í£ipidÎâßë*¥{eÞàr¬8Å›艓u¤ßµ¦Üh”%î²SZý‰ÝìŽ-ÞŸ½ÿ9¾¢+‡êVÊÛSfò•`$ñjýÙ2)* }¸®ÀŠ1ó©³§éS™s­lÄíÈxNcûð+®OfG7A~ývtîë—+£™:é©Û‰Ên‘ =I¾Ÿ.HXÈEfkäÛ…¹lyJ=à{ìç».X~XF[¸_Sÿñþ8añ¯¶ neII±ü휼M9 À¸EÍøsV6ö6>7»ß'‡éÞpžm~š.ä{¤^smIiúk¢¥n 6¸àq'Û8¾^ª#î÷â+iµ"€ ùïâgþ¾ÖàôòÊcÁ‰ÂÅ­O¢Ï*ò ÏsA6Ÿ>Æbj½ðš·Œ+n{ÝÙ[ó3ŒâàPVÆ­œgr—XAhçK5~fxp¥]E–¼§¥1Ê3@í|6ª—£Kövqº@²‰ØÄ‹FÆïši½ú±ÙJ|_º·¬£´ö-q)•Aµ7N£á»õz9r7×çóz¶¥ïëI‹œñ¦«t¨?ÑìŠðÀ6Þswlu Å 3ϹDÉkÚ þ¹ðc…sWÓNîÛâ”<¹î³°Í{O½òÕZ´\‘¾ºç[Î÷øã`JLÊvâèµyÜü5ãU>ɬÉΗéÚ¥>4 ¯ÑQª»FËŸœY )´4ÊE®:ÿ,d ²ÆOƒ|öuçõàý>K»™¨ò¥ÜÈR“hÈ¢ÄþcŒÂ,=÷ÉÁEN½4…mä7ºëíG^nõèT•^Ï3¡GH|Föþ›Ñ-"2…$û€…[ Üu_ Ÿß‡½£ûéÁ &m[‹þ Ÿ°î)eèڇ㓸¸Èh®Ñå[¥‹ï^eò:‹÷R¦·Bk-!/Gž- ÕyÊ¢Óïº s…ƒÏë^KÞ—€Í ‰;… ùÇÙÉá•–‰éÏ£; úQ ¤¨—>¾ 7‚Ú÷Tdg‡ 2“¶{Có$fpÕ½òË;áÏ8ß²Jò‡EîUË%íÓ'â6ÀB*†y|ý'(ÚµGý޾ªŠðzßL÷ÀQžJ82ãÔï¿Ûþlw†Ú›·U$›íé§­üûÙd$ÑñØxÌê°øóïûÌt& Z5Ym¬åºÇ…Foƒhž÷\Ù:ŒÕKÖ/HEòÜ¥‡S^‹¤+]}TbTÿõÍ­âü™ŽœD_eËÎÌ̥셀Nz«fBáÑ ¬+žéųˆˆ8{¶Äç%먔“C¡þÏîéøEÞÁ¡£ÁŽx‹>vXšNÜx˜_ZY”ÆPeA²ïÓ¼9|ßf‡îþVAd´ÈkÞœâŸesEO93fêÌV”S„Ú zf}Ý_¼×½Qµw’¦.Àz«'æO®Yþ#ü>Ô˜ðª4(ˆ 2zß{5~£Ò¹"äó›¬ÐL†#†p·Tȵ:›Iæ+³7¥©Mã•)ß}vŸÑ>»Ÿ”ŸHÛ¨øýÈ‹–t~C£‚nò îâ7è¢MƒÏeí»zk2þñÒNÁ0×'à`µNfÝ,. .éY‚=´/ìdÚ^ñ™Aõ™…´HÜ[h(0:ª™¨½=ÍXâ¾û!æ6¦‹•ËÐh¯¡XüN!Óø«{4w¿òF±ÙMaí03±©Dò“,m¿\ËîWµ ‡Ó¾špq[ÒÉUø&׸¿öœ[)ðA1ÃsLŒìm¿Xf-¹O›è÷©·rÉŒÓ%éUC]„§[ÛˆíƒW˜o8ós¿AVeÄt»[TбÈë? $J¼Ì_þBκ6âå§5eŧ»>bÆ{£D7E[éúk™ñòe¥S­%%ÂÚ$3¥¶’6uBVYÕ„îÌŠÃVµ«]‡ÅeÙ–“K=*Ïà:½ª O× Q§NÚ¥ õ5…·ãáÓ÷™Ô¸:ê1µOÚ6ÏŠ-p ФS–"yOD²ù^Š Úµ¦t‰yå–oêNnœ%_E¾éaš¨û)sqtkw‰ÓoœÅw6)pn­­ºŠƒ ¿twàæ‹¦6È­ÏqÿWˆJ5¤ÝȪÂηè'ªž  ’ée¬8ÉÖ^Ør‰»îÜ?0Èß –·oîÐ8ûñé£O›y`f T‡wŸK¦«ût|*Æ{”~÷Øv¡ºýÅÊ 8 'úa´ìKDÌ]Êœ·‘h±àFîEO…×E†&7;T…íž]Àö£‚4}ñÓêRñdaÀ™´ Úˆd%¼ªmbzº„ó¬~EÞ°Âè…È&ˆ}MöUÌj_ÇËXC:&Gù𥅇°9U!tàØÛ‹‚¡£h$9{I+ƒÿIZu/cÁ“Jy´¨°»’œ,ñZf«@¢ò–8“eõ8x›>ó8a|O°@fšO–PT¦ l5,´F5i_”[¯„Êð+V3´ ö,9:°›Da´¤ÙÁ£-¤ÃBpRsÖùm;ýû82ìû$¬æÒÿôcnè%uq»iîØ»'_ã7 ‚Ì8­rÏá)s¬â÷‰™¸1ŸÊL– BF43š¦/|º´Ìsƒâ×ÃÆÉ™ñ°–¡…gXË‘ JPg°aºmmþyÜ]gÚòf©g’0&A½MÅ­%èÚô1'YeÿµCÖ¶\^ý +B¡CŠZóg°4Ù˜ã.=<ñ®Y~1žîÉä13[R7÷M‚½AÈdRòö·æ^:§©eêCÁÐf.†á¨(î9b’¡üÞÝ^¶0úvúyòïoIªÇõCÄ™]1'vïPòð}Yäµ^(ð°ÉÈwÀŽ'™aH.¤ ˜™,g¨üÐUÓ f¯C?(¢.Û^2Ÿ÷¦»¥­iY¯çª`CËÁ›òu"fLýh|e¿FöÄÒ¡ìÀd@|u|•$é—@¬¯…Â0d‰Mi°ö=[¾qäçônU)ÜÜëà")ÇÜ‘šh‘±æ€z`¹,(?Eå0šXÏšœ+ކD}ÍŒÅÙÛ±³Aõ?šžMkWLMªƒdajÂæÖ;Öqö°³sS‹3ÚN7”94µÍ->ú[ÿØÀ–×å±Sê§á(šÍ^ù¹n£~‚^âÔq œc?ßnØø³fÑ=.~ÉnÝòQŒX‡HÒø}4å9E§2ÿG™&½DòÖ8š‰nš žêTÒ~ÎáN#Ki’ˆ¸ÐQ¶ 5´º^CœæKÔ‘­¶íŠÒîÌ[ÝÈz¾¦€’:F½½Íµë r$~{¹«Ùz§¬¡lq¼½C´¤…Ø!Mº&øïËv"ÈZT›è$kÛÍpk·z¢ÍÇœFÈ&Z:)*ÿ»%ÆùÒ°q•VO͛鞣ÛÞ½râÇpM¼-ƒ^M`&Ù’%Æ8—ì톎"—šËWdïøÃšD¯«bSxˆç`åIC8|°i‘ ÛÛýÀBµ0—»²k^]—þãðr¦B6xa)Žk¢ïp{§Å«7̯Ô²ÙE°su9mÞ`}ÛŒ»ÙA«ý;§‹F÷ŽÕCC®y>íÇ.ÖGòø½Ô¼cDÝÇã„0;&Þ0Wç^f ­ eŽbrðXd”ÝRû\MNžPê㉨ÆxŽ¢fän=ª°fä­^iL¤vÞÁD.Vö|}Ä÷Ne.°8—:4ûJ° ’TÄ#ßæýšŠœÆ†¯E¦ÿüH+Ul SÝ4^G+£èDýÊXcL[[CQH–u¹Å‹åÁ$ ÄI¾›û´“Íã=öð8sâ’e0ðµòx?ûÙÿl Sa¶Ez/ÕSªÙšÝWþ¤†;tl¦í­H´{‡‹ÈÞ½Wú ÃÞWlîù(…{Ï3<Îú rsC¡õ0¸YFÔ1Ó~`¿CiM1n®†­û÷•4m®¯·‡=Ó˜Ööüá§™Ãæ“YtÝç$ÙãQ}^Ûåõ··¬í»W›·2çê_>ðï4ôð–[‘ÂN¦¤‘)Ï7Îïi*\kÞR«<=g:~PMVbš¬vg_ ~€ê´êjI-qÂ;ø« Iã#0vE!²æ€å±šlÜÓH3ˆäU™¡¾b ˜•¹×‚o–SV {‡ùPÿ’&Ýk3Âå3ñsDGö-k 5Õæ¡óÁ*à`‚ÃÌ0*…ë¬~{¬v?0bØ–œØ®Š¬.„…ûº½o¤Á—3.ÑtðW|ôôyÕÉ4ùYädDŒ4Ò·J m.›WðýN¯²ßÍ/KNzŽL$Lú-D»t™¿“š¼ò)ËšXlå·âܾÏí–:JtòCÃÌ·&Q¹bDZùç÷G—9>+ D°šè4¬K¸Èh*‰ÅÃ¥J5cò½#$"]£½³ ÄÄ+Fµ†_ l±d¬{ÉÍT3®œìÚíõ® `GB …ú‡e4aÃW ³…“÷Pò \›¼hÃià ŒgJ>Ëv`shôÈâRûL4*©ºÐìSûJ͹ncÆ\㣋' mîÊ% <‡uoHF}gd’.yÒKT}[Ìxõ¦Ô`etê{^MÃÐó©Œv|61vÆv%„+}`ÂTÈ SŒSŒ%‡ÎQÄ–”’°OóùM"ø€m<]¶Ñ,7¶°“°•‘ŸYu ÔV»šèæ>ÈìÎa2îÔõ «ªi²|¹”‰CúÉ”€­y÷«Ñ)øC+•=uHÿšRr¸¬y‡7_ÿêþžåææÉŽYi‚»‚Íd?ýñ‡JBfWÕw­ð6­Ø>„-Gë=Ø0‚÷m"2)»˜¸ê÷)!J±awÉÆ—pæ»ÓH=òõ`7ÏZ2^¢"ûÜlº–f¸àͲÚåÛ¾ÊHxq|–H«6Ϻ-õ‚¤tw–Óô 'ŽsšÂ+a4òm{^G ì²íþ>Nu@^çÜœ¹œ‡ƒU£q±´¿ží‚ŸVØ;†$®Ù¤àÙew\ç+§ê†%è‰Ôé..½.«–HÕWrްÿ¸»?Ÿè)DÿàÇéã”’JjîÅ«'(ì÷ª#H_ªM$g¦öŠNÿ=æ ØúqæT;žú7¡ƒ]Ô´ñ?­¨’ÞêÄu=~t:Дדߌ_©âA1©&¡[v£<ƒùÚÆ*Àb"Jkœ´s2}¡7õ³0CqŸÑÞ$ðŒE–åÊ®øÓFî¼è½³ˆ‚íe¡¾Ék j´ßS»#,òYs×$ZŽ®%T7YØ—ó¹™R\HMõóyØçö2E[âW•5¿Æçšýö\ ð€S“çô]0èýöl,8Ó_¾¤â‘y~…oǦÌ&k<§â[ÀIC‹]2û §¿A´„Ulxú.d@Ziµh`9ÝÞGTQ…ÇCÆc/ºDËŠ+§©^¾yhøÔ%ëàhù¥UxAjÀœªò}ÍÏóK¤fÏ­Ó?ÕÚèr§Y» f×$°6Ä÷G5ªÁÿ&²Ú¤ñˆßî {Nå<4pã*²¥Oø‚3ø•Ž’è¼ZeÖEÆÐ°kzô¯†e}*pXvµŠh¬kõ•ÇÅGú>j'þ @~•—– þBC(ݽÙò–!š*X‘oÍ$‹ÃšÔq“¶qQw­D¤ºþÓñááùvi¼ºÙ˜Ë×ÒäT¡qSå’T)ùªëíìbIÏ ‹™*±<¡C6‹V ªjŸD»Q·£)FúÓ©ÝS³­;!FH66ñïªòWò†ð]K[gR©Ö»T­-/ÎF3ÃM·ØÏ ߈Ëîê7UÎd9•ýÒùñùŒÖ©«|÷JÇÊp”¸~©A9ÙëE'ËPðP£-#º^òžb©‚—&'ßhFÒW&aç³ÜNiÇt½fW eÁQoþÐÇØ endstream endobj 146 0 obj << /Length1 721 /Length2 982 /Length3 0 /Length 1541 /Filter /FlateDecode >> stream xÚmR{4T{n¬ZJ%*Š^¿Ô„Á˜ã‘·b4\TgÎ9ÃÉÌ9ãÌñꡇäYÒÕmQº”R£’V«+ª+·¤R‰HèA7*5©¤{ëDë®u×¿ýíµ¿ýý6{¡'IТ8Y@\ž#ð÷ô@<ð¸ÖZl¶;…Á4N+asb þ˜@VÀŠÇƒ´ØÀTÄQxX8 LÓa¬•Á(.Ç)°–”‘Ñ8œ¢££WD+£¸TÔr.Óäa€Ç€—aÀÝÇ7ÈKÈ&|aàcFÁ2à%‘áX#¡ÄL”¤€l$I ø&%wXQ4#LJ‘r ð¹zúEÀÃÝRä`«W1í­tdØBɇ¶3ôX$ƒÇ"ÉX4V¥bG"®Gh ÁÂpBËrÈ7/BJ»RŒ–AJF0a<4(&eØQ2™–cÀÄ”+¢hŒÅ(ø‘r˜eÁr\÷¿¼ï /f|p%Âçx#®ôÄc1Ô§«¥°Œ±hc#ÿ"ÀPÒ1~0?Š’„,îûHfá–k+ù³±.{‰âDð§/a †Ë¾0>r=£bF¯ @?rLSx,æq‡Îƒ7ôF£Ð,772v³´ÔXX[A²±µÖö[ÿ#‰¢(Œ ‡ gv͇ Ãb1D«¥‰D–íÚxðüîSñÇŠ&˜5ÜÞ`Ö±šoUõëâ5áèúç¯ Õ"ü˜)óîì8w¾êðRWÁØ”î›õé “C› Ž/* ‹W=\“ÿùLòº7ã×Èáø¾”wtvkËN_N½Í¡#=*ïÈBg]>”¾áäÅ+tÚ÷=¼ßOðMC§çüüu öÔ¬T§!<ñè‰ËÀ“¤¼„Î)}lƒõáGOíP‰&ê SúgßÝô@çuðF¿½)EŽë§}à> stream xÚí\ëSGÿ®¿b?žë*Ìûu•º* ƒMÛ8.ÒtÑÃqîžYiv—Å– ©»ªKEÃhÝÓ¿îéî™]Y¼Ep…4…Ò¶ºÐª¢°\ŠŽKè(œu…R…·¶P®Яl!¸â= x€)¡"ÀtUiB¡e!”ñ…v…ÐÊ@\ dD!¬”…yNŠÂèBxc ýÁèžµpí¾ÂªHIáa¼‚Åq_X k…eZQH+UaM!·º–na^>¸`®TÏÁúyð…ƒ% ÔÁRá¿ÂiKÉÂùB ‚Âx+B¬•>ÀR "ƒH‚œà=oaéÐèˆÂá¯/ŒÅûéPAˆ ØÊÂÚ 3X‡ï¸4ã`©Áë^°® x.¡Xsa)ç@&œ,aYV( ð‡JÀ.úbp4~¬µ=AS<ˆ#~$ ?Úb 3Œƒfï± fH…н€±MâÇ ‹ßA¡¸B!a†‚îžÀoÊà À"„ ÚC 3´ä¤~¨iœ«Ð¬ÄŒÕ„Dl„ÑÇÀ cAô'L­4Àð†N«4ZT4€s­5 s µ9XçÐÀ ˆ5—0êì®phm k`â4×=”Ð…Fÿ[Ò;¤‚ ô@#hžð¿@{źƒòP÷ 4‡HxƒÖ ­ö½챋?îÊ‚ö¯ËÛ›Nåd1/l´³;+çÓålPÎa×QÃI9õŸO¿94˜`v$,Ák±ãçP™ÁôBÆéÿü'18¢Å?ìÖ¬±ª¶Vªâ`ØÕ0¬TiCUáxU'c ‹U說£rS= Þ©u“êˆgª¢QTÅzsºö5WùX¨MkëþÄKÏQÏý`æÍ27ØáúÖ!d[A[þèíÝ›•ýÅh:Ùï/Êâoûÿ2-¥„ôDŠg@t:ìì»-ÆÐsVÎúw7£Á¼x³\Ü-ÏH°árPΰWíðþ,ñšbÓ³º„ˆv/¯ôE½îßbŸì±çýyIa/Ëñ—r1ô{ìÅd0Ž&ט'>²£½=<„Ä?eLªñ‘Üj6{?šìNæ£u÷þèóç Bh?\ìv4Y΋`ÙoË颗Ÿ˜Ì±á¤ŸÏGìzÖÿR²þ`¹(Ù`4,o?˯l1KvÛ̦v5+a Lé 6‹ùhÎv&ÓŰüÌfÀ› @ƒãqÕx³œ\÷gËÛq¹`Óëé¤ü• úHo~×”ŸÞi¹f‰K}«]¾¹úW9ˆ³nE¡ÃcŒÓ¶’;+þ‡×ÈÍîOÂVu[éZù•Õ¢t÷+pÛµ‡ÖÚÝ&kwüÏé®e=N<õ;2ûÇg§÷§íÛŠÚ2%§ŸBÔóÉÓóÇFZײ$çþ*-1 Z Ú¬e±¤¬žiZk:•k>?¼¬FÇŠ*½¨¬7 fÖ6A¾!ÓEI~³R‰¬ÔXáÄ€‘J¦’N:P tŠÁ±žö"úN¹œŽÀ 70pG¾HàÖÁ臱 · ú4ëèàƒ¼F/'h“ê^aD;ÛØ[Mã±V¦j,­w«U#ŸTkId4ùLñ‰8þGk­(Nãl­ä§Ö€el iÞjlì×סa†OqrÝŠõTF mœ²#âøb&EŠÜh,ÓžÈ{Iw±{SF:yyáa_¥2¶8ˆ†Ž=^aMx|5û¬Cí{p§&SNP,4£®¤¸(+:q^¤Kc)õ8ŽJ8ˆÚYk²D<‡¡]¯„5Pñ©††¬„Îz¼Ø¦å n¿ZÖzdì×ǸTµê‰Äz9…ä ZºÀx0ösop[À}!KV 7PÒÅŒ¶”… úARöKu!$F­8(]à«Bé. eêƒÀ1éˆÌ…¤©i%T:¤p˜&æ1T7Ñ©Q=µÀþ—‰4Ø5îÈX×1òÚ4'¶¦™Ôn¥¦|[‚Gßžffããí=]\! R I× ˜©ÓQÈÉ*KzD‰Tª£õaF¢S[¾»ÔÊ+:M1Ê¢¡Z]ž¢QÊP–ÈÍ”’@é6«¢g&ڔ˽¢£^Zq»úb(Õ[ \¯­¿!­ %óUMÒ¦\÷Ó j3ÂRD7,ÒÜըاª¤ð©¸Ëz.k1îû§}Q*îo­ø5'Íaù]ʽC¥3idÇEݶgùa‘å{YÖ—x~3mô2ºVA‹FЏ)¢Ò1ÀPi#0#L¶Ð/ ÉÉŸÐ9ÂÚ[!^ ÓR5Å´˜ÎhM{‘N{s´à#3•rjÌæô7ï1sÐb*Ó.+üó,µžÆùëT-e¸&åºg®÷Ñ%zM'+ñélDelÁ=¯èt‹ˆ8:êXBÎ'œ®A$ùe©¤£3›HðØcjJý‰*ÍNuOçÁéž×¥K”Š^ sjÞ‚‘VwðöžzÞ)knÓªªƒ%£ÄÙ˜47¶S¶ž°q’òuš›Ó¤1x…×Q(k¬Sï§Æ;ûå|0Ý-¦³øœ)¾QðòÃÅËŸùûÞÉóK!¡cÜ¿ž:ŽxNO¯~0ªøAâë¹ø’&˜Ã§Ûãs{ÀFîõï^–£ëøêm!ìûA`çÑ¢? v'×ã²à=v¾(oßáíQ]¦I`@ã¦?ÇWc»ì9{ÉŽØ {ÃÎØ9{ËúìŠ Ø•Œ&°ÏìóèKÉ>O—3vÍn؈ýÊÆì–MØd4)Ù”M¡¼c36góòK9aóÑW¶`‹›YY²ÅïS¶d_ÙìßÏ¢#X¾°›=†ûh/Þ¾s|L …Ì;% ̽(—À··ŸÀ;˜ÔE‘›ˆrúêÕáÞO$Š»_›¢ÚæxŽzQ¼èåÔù9"o×ÐÑFìõå‡WÇoA°³.3Õ¼2Sþ(%­¶º r¡Ïßcûì;`‡äýYOØkˆ§.@îwì=ûæÜ¿s÷'Còyƒéx:I&>\¿HV‹r2ìÏoXùÛ²?ÆÈÁ#Åñ:„ÜüqwbÄþu,Y9™ÌqT›æn¼œ³ßâÛp±£yæc\@=þ|a¿ÇÄþ]Φu=nä±÷9:º =vo¥cðÞ?Íjü‰•Q¢—(«h¼–¿-óF>öôåþáûc’¹cS*m7h<ćï–ÙtÈlT.3Ïe>Š6™!&)¸='`9$3[Ö•9Ò§ç?_œ£ ¶#óU’¡žD¹^u*Õ¸Ra]¨\êåÏû{Ç/P¨åÉ*: á§Êu;žäÐ Ôäk›¨ÜȽ98 !}‡…ÚÊ»:þ4BÚ¶å^ò¬¯È«®=j?yÐè;ùuÍ/nì)mz»¨ùº×ûgÇû'jGÎ §“ª²OªþFÈzûÿx¦. @µÃS+0}î 9Óï‰4\âfî½DnäT/~zóËñ!€{þ¡3õx)óÇåœYà Xo—ëèî´­?›Mâ÷çYç¿B’~_?g“þÕ¸ŸpA6î°&½ÚÈÓ¾}óþâIßáj!ŠÆ1 ÎÛ'Ýt'í¹Àu©6rµ?î¾½<'©º²WbúM'>¢—O¡Ò¼í¸¼…ùu‰6ò«g¯ŽÎÞƒDÝÇ+³ ú‰2rë;EÚ#Ú¯î'n)Ù¬mïjkg—ÙîmíZµ‘K<=:Þ=A»½¸èÌã…oÈ8 ³[+D üºBCJùçeñ—è$çƒÑ(þ:$ÖãÏC*Ã×yÕŸ±«Y@¿0‰µè °úk¹X5C=v´ÎÓñˆ¬NÕ »<ªÎÃ-wœÎÅ)àM–·WàÓGדoÆ>ú9KódPÎñv!†Wãï8 ,'C`8˜ÎʇΠj#ÿîôòù‹÷ÑXd÷iŸtàOC‚y¼±tŸFU†\Ho–]ì½Ü%:Ò,ô ŸÃЃÓGËó@’uD^? 4Â|ä×9R¥| äu,6òõ¿¼Û?:!,:²#›еÁ? ½©n7òô—ïNöOþ~~pv‚{:ÌÕCJ¢ðûÚX|¥`-U×]d×E¤áG<Ú¶óޝ t«îøÝœ 9•Oßó{¿ìW~úfôO<ÐÏMF³ùWM!ø¸Ÿ¾ÔàûÑpqƒ?Ú»_qo\u7™»&sÜókæÂ®™‡Í™7/¤›ÜC“;Ϙ{¿âíåæ¼›W¹ ÞB4yKQƒ¯%›so\¢6™«&s!x ÷Œû²7î=›Ü[‡Žñ~ÑõæÌw“Mæ®-z¹[37›3o\¨5™· Äd°ësüçY6ǽ~µÕà.[&g|»Ë¸«-,¾vßÔd®t3F¬7Û^¦~+ÔdÝöp¹ÜvÍ:lyý®¦Éºemº¶Ïd&¶ßÂÔkWMÞ-cS¾ËÒ·àÝ<ñ7¸+ño­[úþ­qân2o›Ê˜«5æ[ĔƩ¸É¹ek&—Ûd®m‹Ö<¿6™·­­Måt¿æÍÓb“{ÛÞjÎM®c¹ß³6 îºeoÙt¤ø]%þÿ†ëñ endstream endobj 151 0 obj << /Producer (pdfTeX-1.40.12) /Creator (TeX) /CreationDate (D:20130422213937+02'00') /ModDate (D:20130422213937+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) kpathsea version 6.0.1) >> endobj 148 0 obj << /Type /ObjStm /N 8 /First 56 /Length 323 /Filter /FlateDecode >> stream xÚ’]kƒ0†ïó+Î}/òeL„RØtÝÊ&+ݻȪXahQ{±¿˜Hi;GY!pr’“÷y'ŒjÀ0AqàÏ,¥@Šõð}ÉšNN¿w9ày]u¯öŸMûCŠð­nóþðë" n&aœ¦ Ùê(o7M¹ëêÆÈrÃOÌyÙ´]¸Õá"ü¤‡„Òáç2ë¶-(iKg³ÀÓ·u´ˆ-<‹s8%§tÿ@® ¿¬ãè>ž¬æIL !#ä¹ñùQ󞫼«6uVV(þÛÏRy‹pXï ÝX_ê&7»~vöñc™µðÎúÄLÚN]ð\°~Àë?Eòq¸›'¸Æ@8uáÔ}GöÅ%uï/u_Y鄤kAªKzý‡Þ{Ã˱>CÝ鯺@NâàÀÔümÓÔì endstream endobj 152 0 obj << /Type /XRef /Index [0 153] /Size 153 /W [1 3 1] /Root 150 0 R /Info 151 0 R /ID [<15CEE1717B1586DBC02576A8846F4A62> <15CEE1717B1586DBC02576A8846F4A62>] /Length 422 /Filter /FlateDecode >> stream xÚ%Ñ;OTAÆñ÷™3€"A=Š wpä&"ÈÂ* r[PqE@¹ÚÒ :[³&&ð(HHH¶±×DM„V€–È>Í/ÿ73çLæ3³ÿÎ,1˜k†|$ódšL’¹ [Úüš¼#Sd‘¼%Iòž,|B/…Oï²¶ŽÂÁòC­.sÁ±Þ,âa¥ ZÍ!Ù°ê¤Æ«ä ,Ò£ñÉ…µôjÌ'y°Î.æ9’X4¹erEûŠÈuXü«ÆÛ¤–¸<ò¹In‘ˆDµPBîíß5–’»@_­Æ{¤ ¨ÑáºG)F¾hK©&§4Öj`&®q‰Ô’:òŠÔ“û$BÈÒHšÈCÒLZH+i#íäé I'yBºH7°|ªÃŸ)}µ°Ø_SEÃ=UoæÏï¨úàÊVU1¸Ø?Õ3¸T‡ê9\ú³ªîxCGàbª•ÛªAó'ª¾©†Œ«†üM¨FœýTÂתÆà×õ‰Ãüæ'Õ8|ê\5¿y—ð¿+ô+²Iü¯\ƒÿóÃ.ó2I endstream endobj startxref 317136 %%EOF Ipopt-3.11.4/Ipopt/contrib/RInterface/inst/doc/ipoptr.Rnw0000644000076600007660000006347112135311356021670 0ustar coincoin\documentclass[a4paper]{article} \usepackage[english]{babel} \usepackage{apacite} \usepackage{graphicx} % \VignetteIndexEntry{Introduction to ipoptr: an R interface to Ipopt} % \VignetteKeyword{optimize} % \VignetteKeyword{interface} \SweaveOpts{keep.source=TRUE} \SweaveOpts{prefix.string = figs/plot, eps = FALSE, pdf = TRUE, tikz = FALSE} %\pgfrealjobname{ipoptr} \title{Introduction to \texttt{ipoptr}: an R interface to Ipopt \thanks{This package should be considered in beta and comments about any aspect of the package are welcome. Thanks to Alexios Ghalanos for comments. This document is an R vignette prepared with the aid of \texttt{Sweave}, Leisch(2002). Financial support of the UK Economic and Social Research Council through a grant (RES-589-28-0001) to the ESRC Centre for Microdata Methods and Practice (CeMMAP) is gratefully acknowledged.}} \author{Jelmer Ypma} \begin{document} \maketitle \nocite{Leisch2002} \DefineVerbatimEnvironment{Sinput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= # have an (invisible) initialization noweb chunk # to remove the default continuation prompt '>' options(continue = " ") options(width = 60) # eliminate margin space above plots options(SweaveHooks=list(fig=function() par(mar=c(5.1, 4.1, 1.1, 2.1)))) @ \begin{abstract} This document describes how to use \texttt{ipoptr}, which is an R interface to Ipopt (Interior Point Optimizer). Ipopt is an open source software package for large-scale nonlinear optimization \cite{WachterBiegler2006}. It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls. Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code has been written by Carl Laird and Andreas W\"achter, who is the COIN project leader for Ipopt. \end{abstract} \section{Introduction} Ipopt is designed to find (local) solutions of mathematical optimization problems of the from \begin{eqnarray*} &&\min_{x \in R^n} f(x) \\ &s.t.& g_L <= g(x) <= g_U \\ && x_L <= x <= x_U \end{eqnarray*} where $f(x): R^n \rightarrow R$ is the objective function, and $g(x): R^n \rightarrow R^m$ are the constraint functions. The vectors $g_L$ and $g_U$ denote the lower and upper bounds on the constraints, and the vectors $x_L$ and $x_U$ are the bounds on the variables $x$. The functions $f(x)$ and $g(x)$ can be nonlinear and nonconvex, but should be twice continuously differentiable. Note that equality constraints can be formulated in the above formulation by setting the corresponding components of $g_L$ and $g_U$ to the same value. This vignette describes how to formulate minimization problems to be solved with the R interface to Ipopt. If you want to use the C++ interface directly or are interested in the Matlab interface, there are other sources of documentation avialable. Some of the information here is heavily based on the Ipopt Wiki\footnote{\texttt{https://projects.coin-or.org/Ipopt}} and generally that is a good source to find additional information, for instance on which options to use. All credit for implementing the C++ code for Ipopt should go to Andreas W\"achter and Carl Laird. Please show your appreciation by citing their paper. \section{Installation} Installing the \texttt{ipoptr} package is not as straightforward as most other R packages, because it depends on Ipopt. To install (and compile) Ipopt and the R interface a C/C++ compiler has to be available. On Windows I was successful using MSYS to compile Ipopt and then use Rtools\footnote{\texttt{http://www.murdoch-sutherland.com/Rtools/}} to compile the R interface from source. On Ubuntu no additional tools were needed. The code for the R interface to Ipopt is available from R-Forge and from the Ipopt website. Additional information is also available on \texttt{http://www.ucl.ac.uk/\textasciitilde uctpjyy/ipoptr.html}. The R interface to Ipopt comes with the most recent version of Ipopt, so there is no need to download it separately. Detailed installation instructions for Ipopt are available on \texttt{http://www.coin-or.org/Ipopt/documentation}. You should follow these first, before trying to install the R interface. Ipopt needs to be configured using the \texttt{-fPIC} flag for all GNU compilers, which usually happens by default. In builds of debug or static libraries, one need to use the option \verb|--with-pic| for configure. For the installation of the R interface, I will assume that you have a working installation of Ipopt (i.e. \texttt{configure}, \texttt{make} and \texttt{make install} executed without problems). During the installation of Ipopt a file \texttt{Makevars} (or \texttt{Makevars.win} on Windows) has been created in the \texttt{src} subdirectory of the build directory of the R interface, e.g., \texttt{\$IPOPTDIR/build/Ipopt/contrib/RInterface/src} if you used the same build directory as in the Ipopt installation notes, \texttt{\$IPOPTDIR/build}. The file \texttt{Makevars}(\texttt{.win}) in this directory has been configured for your system. You can then install the package from R with the command <>= install.packages('$IPOPTDIR/build/Ipopt/contrib/RInterface', repos=NULL, type='source') @ where the first argument specifies the build directory for the R interface of Ipopt. You should now be able to load the R interface to Ipopt and read the help. <>= library('ipoptr') ?ipoptr @ \section{Minimizing the Rosenbrock Banana function} As a first example we will solve an unconstrained minimization problem. The function we look at is the Rosenbrock Banana function \[ f( x ) = 100 \left( x_2 - x_1^2 \right)^2 + \left(1 - x_1 \right)^2, \] which is also used as an example in the documentation for the standard R optimizer \texttt{optim}. The gradient of the objective function is given by \[ \nabla f( x ) = \left( \begin{array}[1]{c} -400 \cdot x_1 \cdot (x_2 - x_1^2) - 2 \cdot (1 - x_1) \\ 200 \cdot (x_2 - x_1^2) \end{array} \right). \] Ipopt always needs gradients to be supplied by the user. After loading the library <>= library(ipoptr) @ we start by specifying the objective function and its gradient <>= ## Rosenbrock Banana function eval_f <- function(x) { return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 ) } ## Gradient of Rosenbrock Banana function eval_grad_f <- function(x) { return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]), 200 * (x[2] - x[1] * x[1]) ) ) } @ We define initial values <>= # initial values x0 <- c( -1.2, 1 ) @ and then minimize the function using the \texttt{ipoptr} command. This command runs some checks on the supplied inputs and returns an object with the exit code of the solver, the optimal value of the objective function and the solution. The checks do not always return very informative messages, but usually there is something wrong with dimensions (e.g. \texttt{eval\_grad\_f} returns a vector that doesn't have the same size as \texttt{x0}). <>= # solve Rosenbrock Banana function res <- ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f ) @ These are the minimal arguments that have to be supplied. If, like above, no Hessian is defined, Ipopt uses an approximation. The Ipopt website has a detailed explanation of the output. We can see a summary of the results by printing the resulting object. <>= print( res ) @ It's advised to always check the exit code for convergence of the problem and in this case we can see that the algorithm terminated successfully. Ipopt used 47 iterations to find the solution and the optimal value of the objective function and the controls are given as well. If you do not want to, or cannot calculate the gradient analytically, you can supply a function \texttt{eval\_grad\_f} that approximates the gradient. However, this is not advisable and might result in convergence problems, for instance by not finding the minimum, or by finding the wrong minimum. We can see this from the following example where we approximate \texttt{eval\_grad\_f} using finite differences <>= # http://en.wikipedia.org/wiki/Numerical_differentiation finite.diff <- function( func, x, minAbsValue=0, stepSize=sqrt( .Machine$double.eps ), ... ) { stepSizeVec <- pmax( abs(x), 1 ) * stepSize fx <- func( x, ... ) approx.gradf.index <- function(i, x, func, fx, stepSizeVec, ...) { x_prime <- x x_prime[i] <- x[i] + stepSizeVec[i] stepSizeVec[i] <- x_prime[i] - x[i] fx_prime <- func( x_prime, ... ) return( ( fx_prime - fx )/stepSizeVec[i] ) } grad_fx <- sapply( 1:length(x), approx.gradf.index, x=x, func=func, fx=fx, stepSizeVec=stepSizeVec, ... ) return( grad_fx ) } # Approximate eval_f using finite differences approx_grad_f <- function( x ) { return( finite.diff( eval_f, x ) ) } @ and using this approximation to minimize the same Rosenbrock Banana function. We suppress the output by the \texttt{print\_level} option. <>= # increase the maximum number of iterations opts <- list("tol"=1.0e-8, "max_iter"=5000, "print_level"=0) # solve Rosenbrock Banana function with approximated gradient print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=approx_grad_f, opts=opts) ) @ In this case 5000 iterations are not enough to solve the minimization problem to the required tolerance. This has to do with the step size we choose to approximate the gradient <>= sqrt( .Machine$double.eps ) @ which is of the same order of magnitude. If we decrease the tolerance, the algorithm converges, but the solution is less precise than if we supply gradients and it takes more iterations to get there. <>= # decrease the convergence criterium opts <- list("tol"=1.0e-7, "print_level"=0) # solve Rosenbrock Banana function with approximated gradient print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=approx_grad_f, opts=opts) ) @ \section{Sparse matrix structure} Ipopt can handle sparseness in the Jacobian of the constraints and the Hessian. The sparseness structure should be defined in advance and stay the same throughout the minimization procedure. A sparseness structure can be defined as a list of vectors, where each vector contains the indices of the non-zero elements of one row. E.g. the matrix \[ \left( \begin{array}[4]{cccc} . & . & . & 1 \\ 1 & 1 & . & . \\ 1 & 1 & 1 & 1 \end{array} \right) \] has a non-zero element in position 4 in the first row. In the second row it has non-zero elements in position 1 and 2, and the third row contains non-zero elements at every position. Its structure can be defined as <>= sparse_structure <- list( c( 4 ), c( 1, 2 ), c( 1, 2, 3, 4 ) ) @ The function \texttt{make.sparse} can simplify this procedure <>= make.sparse( rbind( c(0, 0, 0, 1), c( 1, 1, 0, 0 ), c( 1, 1, 1, 1 ) ) ) @ This function takes a matrix as argument. All non-zero elements in this matrix will be defined as non-zero in the sparseness structure, \texttt{NA} or \texttt{NaN} are not allowed. The function \texttt{print.sparseness} shows the non-zero elements <>= print.sparseness( sparse_structure ) @ By default \texttt{print.sparseness} shows the indices of the non-zero elements in the sparse matrix. Values for the non-zero elements of a sparse matrix have to be supplied in one vector, in the same order as the the non-zero elements occur in the structure. I.e. the order of the indices matters and the values of the following two matrices should be supplied in a different order <>= print.sparseness( list( c(1,3,6,8), c(2,5), c(3,7,9) ) ) print.sparseness( list( c(3,1,6,8), c(2,5), c(3,9,7) ) ) @ Since the sparseness structure defines the indices of non-zero elements by row, the order of the rows cannot be changed in the R implementation. In principle a more general order of the non-zero elements (independent of row or column) could be specified, which can be added as a feature on request. Below are two final examples on sparseness structure (see \texttt{?print.sparseness} for more options and examples) <>= # print lower-diagonal 5x5 matrix generated with make.sparse A_lower <- make.sparse( lower.tri( matrix(1, nrow=5, ncol=5), diag=TRUE ) ) print.sparseness( A_lower ) # print a diagonal 5x5 matrix without indices counts A_diag <- make.sparse( diag(5) > 0 ) print.sparseness( A_diag, indices=FALSE ) @ For larger matrices it is easier to plot them using the \texttt{plot.sparseness} command <>= s <- do.call( "cbind", lapply( 1:5, function(i) { diag(5) %x% matrix(1, nrow=5, ncol=20) } ) ) s <- do.call( "rbind", lapply( 1:5, function(i) { s } ) ) s <- cbind( matrix( 1, nrow=nrow(s), ncol=40 ), s ) plot.sparseness( make.sparse( s ) ) @ The resulting sparse matrix structure from this code can be seen in figure \ref{fig:sparse}. All non-zero elements are shown as black dots by default. \begin{figure}[htbp] \begin{center} \includegraphics[width=12.0cm]{figs/plot-sparsefig.pdf} \caption{Plot of large sparseness structure} \label{fig:sparse} \end{center} \end{figure} \section{Supplying the Hessian} Now that we know how to define a sparseness structure we can supply the Hessian to the Rosenbrock Banana function from above. Its Hessian is given by \[ \nabla^2 f( x ) = \left( \begin{array}[2]{rr} 2 - 400 \cdot (x_2 - x_1^2) + 800 x_1^2 & -400 x_1 \\ -400 x_1 & 200 \end{array} \right) \] Ipopt needs the Hessian of the Lagrangian in the following form \[ \sigma_f \nabla^2 f(x) + \sum_{i=1}^m \lambda_i \nabla^2 g_i(x), \] where $g_i(x)$ represents the $i$th of $m$ constraints, $\lambda_i$ are the multipliers of the constraints and $\sigma_f$ is introduced so that Ipopt can ask for the Hessian of the objective or the constraints independently if required. In this case we don't have any constraints. The user-defined function \texttt{eval\_h} to define the Hessian takes three arguments. The first argument contains the value of the control variables, $x$, the second argument contains the multiplication factor of the Hessian of the objective function, $\sigma_f$, and the third argument contains a vector with the multipliers of the constraints, $\lambda$. We can define the structure of the Hessian and the function to evaluate the Hessian as follows <>= # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2) ) eval_h <- function( x, obj_factor, hessian_lambda ) { return( obj_factor*c( 2 - 400*(x[2] - x[1]^2) + 800*x[1]^2, # 1,1 -400*x[1], # 2,1 200 ) ) # 2,2 } @ Note that we only specify the lower half of the Hessian, since it is a symmetric matrix. Also, \texttt{eval\_h} returns a vector with all the non-zero elements of the Hessian in the same order as the non-zero indices in the sparseness structure. Then we minimize the function using the \texttt{ipoptr} command <>= opts <- list("print_level"=0, "file_print_level"=12, "output_file"="banana.out", "tol"=1.0e-8) # solve Rosenbrock Banana function with analytic Hessian print( ipoptr( x0=x0, eval_f=eval_f, eval_grad_f=eval_grad_f, eval_h=eval_h, eval_h_structure=eval_h_structure, opts=opts) ) @ Here we also supplied options to not print any intermediate information to the R screen (\texttt{print\_level=0}). Printing output to the screen directly from Ipopt does not work in all R terminals correctly, so it might be that even though you specify a positive number here, there will still be no output visible on the screen. If you want to print things to the screen, a workaround is to do this directly in the R functions you defined, such as \texttt{eval\_f}. Also, to inspect more details about the minimization we can write all the output to a file, which will be created in the current working directory. For larger problems, having a large number for \texttt{file\_print\_level} can easily generate very large files, which is probably not desirable. Many more options are available, and a full list of all the options can be found at the Ipopt website, \texttt{http://www.coin-or.org/Ipopt/documentation/node59.html\#app.options\_ref}. Options can also be supplied from an option file, which can be specified in \texttt{option\_file\_name}. \section{Adding constraints} To look at how we can add constraints to a problem, we take example problem number 71 from the Hock-Schittkowsky test suite, which is also used in the Ipopt C++ tutorial. The problem is \begin{eqnarray*} &&\min_{x} x_1 \cdot x_4 \cdot (x_1 + x_2 + x_3) + x_3 \\ &s.t.& \\ && x_1 \cdot x_2 \cdot x_3 \cdot x_4 >= 25 \\ && x_1^2 + x_2^2 + x_3^2 + x_4^2 = 40 \\ && 1 <= x_1,x_2,x_3,x_4 <= 5, \end{eqnarray*} and we use $x = (1, 5, 5, 1)$ as initial values. In this problem we have one inequality constraint, one equality constraint and upper and lower bounds for all the variables. The optimal solution is $(1.00000000, 4.74299963, 3.82114998, 1.37940829)$. First we define the objective function and its gradient <>= eval_f <- function( x ) { return( x[1]*x[4]*(x[1] + x[2] + x[3]) + x[3] ) } eval_grad_f <- function( x ) { return( c( x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]), x[1] * x[4], x[1] * x[4] + 1.0, x[1] * (x[1] + x[2] + x[3]) ) ) } @ Then we define a function that returns the value of the two constraints. We define the bounds of the constraints (in this case the $g_L$ and $g_U$ are $25$ and $40$) later. <>= # constraint functions eval_g <- function( x ) { return( c( x[1] * x[2] * x[3] * x[4], x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 ) ) } @ Then we define the structure of the Jacobian, which is a dense matrix in this case, and function to evaluate it <>= eval_jac_g_structure <- list( c(1,2,3,4), c(1,2,3,4) ) eval_jac_g <- function( x ) { return( c ( x[2]*x[3]*x[4], x[1]*x[3]*x[4], x[1]*x[2]*x[4], x[1]*x[2]*x[3], 2.0*x[1], 2.0*x[2], 2.0*x[3], 2.0*x[4] ) ) } @ The Hessian is also dense, but it looks slightly more complicated because we have to take into account the Hessian of the objective function and of the constraints at the same time, although you could write a function to calculate them both separately and then return the combined result in \texttt{eval\_h}. <>= # The Hessian for this problem is actually dense, # This is a symmetric matrix, fill the lower left triangle only. eval_h_structure <- list( c(1), c(1,2), c(1,2,3), c(1,2,3,4) ) eval_h <- function( x, obj_factor, hessian_lambda ) { values <- numeric(10) values[1] = obj_factor * (2*x[4]) # 1,1 values[2] = obj_factor * (x[4]) # 2,1 values[3] = 0 # 2,2 values[4] = obj_factor * (x[4]) # 3,1 values[5] = 0 # 4,2 values[6] = 0 # 3,3 values[7] = obj_factor * (2*x[1] + x[2] + x[3]) # 4,1 values[8] = obj_factor * (x[1]) # 4,2 values[9] = obj_factor * (x[1]) # 4,3 values[10] = 0 # 4,4 # add the portion for the first constraint values[2] = values[2] + hessian_lambda[1] * (x[3] * x[4]) # 2,1 values[4] = values[4] + hessian_lambda[1] * (x[2] * x[4]) # 3,1 values[5] = values[5] + hessian_lambda[1] * (x[1] * x[4]) # 3,2 values[7] = values[7] + hessian_lambda[1] * (x[2] * x[3]) # 4,1 values[8] = values[8] + hessian_lambda[1] * (x[1] * x[3]) # 4,2 values[9] = values[9] + hessian_lambda[1] * (x[1] * x[2]) # 4,3 # add the portion for the second constraint values[1] = values[1] + hessian_lambda[2] * 2 # 1,1 values[3] = values[3] + hessian_lambda[2] * 2 # 2,2 values[6] = values[6] + hessian_lambda[2] * 2 # 3,3 values[10] = values[10] + hessian_lambda[2] * 2 # 4,4 return ( values ) } @ After the hard part is done, we only have to define the initial values, the lower and upper bounds of the control variables, and the lower and upper bounds of the constraints. If a variable or a constraint does not have lower or upper bounds, the values \texttt{-Inf} or \texttt{Inf} can be used. If the upper and lower bounds of a constraint are equal, Ipopt recognizes this as an equality constraint and acts accordingly. <>= # initial values x0 <- c( 1, 5, 5, 1 ) # lower and upper bounds of control lb <- c( 1, 1, 1, 1 ) ub <- c( 5, 5, 5, 5 ) # lower and upper bounds of constraints constraint_lb <- c( 25, 40 ) constraint_ub <- c( Inf, 40 ) opts <- list("print_level"=0, "file_print_level"=12, "output_file"="hs071_nlp.out") print( ipoptr( x0 = x0, eval_f = eval_f, eval_grad_f = eval_grad_f, lb = lb, ub = ub, eval_g = eval_g, eval_jac_g = eval_jac_g, constraint_lb = constraint_lb, constraint_ub = constraint_ub, eval_jac_g_structure = eval_jac_g_structure, eval_h = eval_h, eval_h_structure = eval_h_structure, opts = opts) ) @ \section{Using data} The final subject we have to cover, is how to pass data to an objective function or the constraints. There are two ways to do this. The first is to supply additional arguments to the user defined functions and \texttt{ipoptr}. The second way is to define an environment that holds the data and pass this environment to \texttt{ipoptr}. Both methods are shown in \texttt{tests/parameters.R}. As a very simple example\footnote{A more interesting example is given in \texttt{tests/lasso.R}} suppose we want to find the minimum of \[ f( x ) = a_1 x^2 + a_2 x + a_3 \] for different values of the parameters $a_1$, $a_2$ and $a_3$. First we define the objective function and its gradient using, assuming that there is some variable \texttt{params} that contains the values of the parameters. <>= eval_f_ex1 <- function(x, params) { return( params[1]*x^2 + params[2]*x + params[3] ) } eval_grad_f_ex1 <- function(x, params) { return( 2*params[1]*x + params[2] ) } @ Note that the first parameter should always be the control variable. All of the user-defined functions should contain the same set of additional parameters. You have to supply them as input argument to all functions, even if you're not using them in some of the functions. Then we can solve the problem for a specific set of parameters, in this case $a_1=1$, $a_2=2$ and $a_3=3$, from initial value $x_0=0$, with the following command <>= # solve using ipoptr with additional parameters ipoptr( x0 = 0, eval_f = eval_f_ex1, eval_grad_f = eval_grad_f_ex1, opts = list("print_level"=0), params = c(1,2,3) ) @ For the second method, we don't have to supply the parameters as additional arguments to the function. <>= eval_f_ex2 <- function(x) { return( params[1]*x^2 + params[2]*x + params[3] ) } eval_grad_f_ex2 <- function(x) { return( 2*params[1]*x + params[2] ) } @ Instead, we define an environment that contains specific values of \texttt{params} <>= # define a new environment that contains params auxdata <- new.env() auxdata$params <- c(1,2,3) @ To solve this we supply \texttt{auxdata} as an argument to \texttt{ipoptr}, which will take care of evaluating the functions in the correct environment, so that auxiliary data is available. <>= # pass the environment that should be used to evaluate functions to ipoptr ipoptr( x0 = 0, eval_f = eval_f_ex2, eval_grad_f = eval_grad_f_ex2, ipoptr_environment = auxdata, opts = list("print_level"=0) ) @ \section{Options} There are many options available, all of which are described on the Ipopt website. One of the options can test whether your derivatives are correct. This option is activated by setting \texttt{derivative\_test} to \texttt{first-order} or \texttt{second-order} if you want to test second derivatives as well. This process can take quite some time. To see all the output from this process you can set \texttt{derivative\_test\_print\_all} to \texttt{yes}, preferably when writing to a file, because of the problems with displaying on some terminals mentioned above. Without this option the derivative checker only shows those lines where an error occurs if a high enough \texttt{print\_level} is supplied. \section{Remarks} If you run many large optimization problems in a row on Windows, at some point you'll get errors that Mumps is running out of memory and you won't get any solutions. On Linux this same problem hasn't occurred yet. From version 0.8.2 output is shown in the R terminal under Windows as well. \bibliographystyle{apacite} \bibliography{reflist} \end{document} Ipopt-3.11.4/Ipopt/contrib/RInterface/src/0000755000076600007660000000000012214537465016726 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/src/Makevars.in0000644000076600007660000000272412135273041021021 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: Makevars.in # Author: Jelmer Ypma # Date: 14 April 2010 # # Changelog: # 30/01/2011 - Changed LIBS to IPOPT_LIBS and INCL to IPOPT_INCL, since R re-defines LIBS and INCL. # C++ Compiler command CXX = @CXX@ # C++ Compiler options IPOPT_CXXFLAGS = @CXXFLAGS@ # additional C++ Compiler options for linking IPOPT_CXXLINKFLAGS = @RPATH_FLAGS@ # Include directories (we use the CYGPATH_W variables to allow compilation with Windows compilers) @COIN_HAS_PKGCONFIG_TRUE@IPOPT_INCL = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --cflags ipopt` @COIN_HAS_PKGCONFIG_FALSE@IPOPT_INCL = -I`$(CYGPATH_W) @abs_include_dir@/coin` @IPOPTLIB_CFLAGS_INSTALLED@ # Linker flags @COIN_HAS_PKGCONFIG_TRUE@IPOPT_LIBS = `PKG_CONFIG_PATH=@COIN_PKG_CONFIG_PATH@ @PKG_CONFIG@ --libs ipopt` @RPATH_FLAGS@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_TRUE@IPOPT_LIBS = -link -libpath:`$(CYGPATH_W) @abs_lib_dir@` libipopt.lib @IPOPTLIB_LIBS_INSTALLED@ @COIN_HAS_PKGCONFIG_FALSE@@COIN_CXX_IS_CL_FALSE@IPOPT_LIBS = -L@abs_lib_dir@ -lipopt @IPOPTLIB_LIBS_INSTALLED@ @RPATH_FLAGS@ # The following is necessary under cygwin, if native compilers are used CYGPATH_W = @CYGPATH_W@ # Define objects for R to build OBJECTS = ipoptr.o IpoptRNLP.o IpoptRJournal.o # Convert to R macros PKG_LIBS = ${IPOPT_CXXLINKFLAGS} ${IPOPT_LIBS} PKG_CXXFLAGS = ${IPOPT_CXXFLAGS} ${IPOPT_INCL} -I@srcdir@ Ipopt-3.11.4/Ipopt/contrib/RInterface/src/IpoptRJournal.cpp0000644000076600007660000000272612214316142022174 0ustar coincoin/* * Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. * This code is published under the Eclipse Public License. * * file: IpoptRJournal.cpp * author: Jelmer Ypma * date: 30 January 2011 * * This file defines a C++ class that takes care of re-directing * output to the R terminal. Needed for Windows. * * Financial support of the UK Economic and Social Research Council * through a grant (RES-589-28-0001) to the ESRC Centre for Microdata * Methods and Practice (CeMMAP) is gratefully acknowledged. */ #include "IpoptRJournal.hpp" IpoptRJournal::IpoptRJournal( Ipopt::EJournalLevel default_level ) : Journal("IpoptRJournal", default_level) { } void IpoptRJournal::PrintImpl(Ipopt::EJournalCategory category, Ipopt::EJournalLevel level, const char* str) { // print string to R console Rprintf(str); } void IpoptRJournal::PrintfImpl(Ipopt::EJournalCategory category, Ipopt::EJournalLevel level, const char* pformat, va_list ap) { // Define string const size_t MaxStrLen = 8192; char s[ MaxStrLen ]; // R guarantees to have an implementation of vsnprintf available // http://www.mail-archive.com/r-devel@stat.math.ethz.ch/msg07054.html if ( vsnprintf( s, MaxStrLen, pformat, ap ) > MaxStrLen ) { Rprintf( "Warning: not all characters of next line are printed to the R console.\n" ); } // print string to R console Rprintf( s ); } void IpoptRJournal::FlushBufferImpl() {} Ipopt-3.11.4/Ipopt/contrib/RInterface/src/IpoptRNLP.hpp0000644000076600007660000001472211662267046021235 0ustar coincoin/* * Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. * This code is published under the Eclipse Public License. * * file: IpoptRNLP.hpp * author: Jelmer Ypma * date: 18 April 2010 * * This file defines a C++ class that derives from Ipopt::TNLP. The class * takes care of interaction between Ipopt and user-defined functions in R. * * Financial support of the UK Economic and Social Research Council * through a grant (RES-589-28-0001) to the ESRC Centre for Microdata * Methods and Practice (CeMMAP) is gratefully acknowledged. */ #ifndef __IpoptRNLP_HPP__ #define __IpoptRNLP_HPP__ #include "IpTNLP.hpp" // ISA TNLP #include #include #include #include // Rdefines.h is somewhat more higher level then Rinternal.h, and is preferred if the code might be shared with S at any stage. // Utils.h defines void R_CheckUserInterrupt(void); to allow user interuption from R class IpoptRNLP : public Ipopt::TNLP { SEXP R_environment; // this is the environment that the function gets called in. This environment can be used // to pass common data to the R functions. SEXP R_eval_f; // objective function SEXP R_eval_grad_f; // gradient of objective function SEXP R_init_values; // vector with initial values, we get the Ipopt::Number of controls from the length of this vector SEXP R_lower_bounds; // lower bounds of the control x SEXP R_upper_bounds; // upper bounds of the control x SEXP R_eval_g; // function to evaluate constraints SEXP R_eval_jac_g; // function to evaluate jacobian of constraints SEXP R_eval_jac_g_structure; // list with non-zero elements in the Jacobian, this defines the sparse structure SEXP R_constraint_lower_bounds; // lower bounds of the contraint function g() SEXP R_constraint_upper_bounds; // upper bounds of the contraint function g() SEXP R_eval_h; // function to evaluate Hessian SEXP R_eval_h_structure; // list with non-zero elements of the Hessian, this defines the sparse structure SEXP R_result_list; // structure that will contain the return values bool d_hessian_approximation; // should we approximate the Hessian? default: false int d_num_protected_members; // counter of the number of PROTECT calls of the SEXPs above public: /** default constructor */ IpoptRNLP(); /** default destructor */ virtual ~IpoptRNLP(); void set_R_environment( SEXP env ); void set_R_eval_f( SEXP f ); void set_R_eval_grad_f( SEXP f ); void set_R_init_values( SEXP x0 ); void set_R_lower_bounds( SEXP lb ); void set_R_upper_bounds( SEXP ub ); void set_R_eval_g( SEXP g ); void set_R_eval_jac_g( SEXP g ); void set_R_eval_jac_g_structure( SEXP s ); void set_R_constraint_lower_bounds( SEXP lb ); void set_R_constraint_upper_bounds( SEXP ub ); void set_R_eval_h( SEXP h ); void set_R_eval_h_structure( SEXP s ); void set_hessian_approximation( bool b ); SEXP get_R_result_list(); /**@name Overloaded from TNLP */ //@{ /** Method to return some info about the nlp */ virtual bool get_nlp_info(Ipopt::Index& n, Ipopt::Index& m, Ipopt::Index& nnz_jac_g, Ipopt::Index& nnz_h_lag, IndexStyleEnum& Index_style); /** Method to return the bounds for my problem */ virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number* x_l, Ipopt::Number* x_u, Ipopt::Index m, Ipopt::Number* g_l, Ipopt::Number* g_u); /** Method to return the starting point for the algorithm */ virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number* x, bool init_z, Ipopt::Number* z_L, Ipopt::Number* z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number* lambda); /** Method to return the objective value */ virtual bool eval_f(Ipopt::Index n, const Ipopt::Number* x, bool new_x, Ipopt::Number& obj_value); /** Method to return the gradient of the objective */ virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number* x, bool new_x, Ipopt::Number* grad_f); /** Method to return the constraint residuals */ virtual bool eval_g(Ipopt::Index n, const Ipopt::Number* x, bool new_x, Ipopt::Index m, Ipopt::Number* g); /** Method to return: * 1) The structure of the jacobian (if "values" is NULL) * 2) The values of the jacobian (if "values" is not NULL) */ virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number* x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index* iRow, Ipopt::Index *jCol, Ipopt::Number* values); /** Method to return: * 1) The structure of the hessian of the lagrangian (if "values" is NULL) * 2) The values of the hessian of the lagrangian (if "values" is not NULL) */ virtual bool eval_h(Ipopt::Index n, const Ipopt::Number* x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number* lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index* iRow, Ipopt::Index* jCol, Ipopt::Number* values); //@} /** @name Solution Methods */ //@{ /** This method is called when the algorithm is complete so the TNLP can store/write the solution */ virtual void finalize_solution(Ipopt::SolverReturn status, Ipopt::Index n, const Ipopt::Number* x, const Ipopt::Number* z_L, const Ipopt::Number* z_U, Ipopt::Index m, const Ipopt::Number* g, const Ipopt::Number* lambda, Ipopt::Number obj_value, const Ipopt::IpoptData* ip_data, Ipopt::IpoptCalculatedQuantities* ip_cq); //@} private: /**@name Methods to block default compiler methods. * The compiler automatically generates the following three methods. * Since the default compiler implementation is generally not what * you want (for all but the most simple classes), we usually * put the declarations of these methods in the private section * and never implement them. This prevents the compiler from * implementing an incorrect "default" behavior without us * knowing. (See Scott Meyers book, "Effective C++") * */ //@{ // IpoptRNLP(); IpoptRNLP(const IpoptRNLP&); IpoptRNLP& operator=(const IpoptRNLP&); //@} }; #endif Ipopt-3.11.4/Ipopt/contrib/RInterface/src/ipoptr.cpp0000644000076600007660000001643411530044256020746 0ustar coincoin/* * Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. * This code is published under the Eclipse Public License. * * File: ipoptr.cpp * Author: Jelmer Ypma * Date: 18 April 2010 * * This file defines the main function IpoptRSolve that provides * an interface to Ipopt from R. * The function converts and R object containing objective function, * constraints, etc. into an IpoptApplication, solves the problem, * and returns the result. * * Financial support of the UK Economic and Social Research Council * through a grant (RES-589-28-0001) to the ESRC Centre for Microdata * Methods and Practice (CeMMAP) is gratefully acknowledged. * * 30/01/2011: added IpoptRJournal to correctly direct output to R terminal. */ #include "IpIpoptApplication.hpp" #include "IpSolveStatistics.hpp" #include "IpoptRNLP.hpp" #include "IpoptRJournal.hpp" #include #include // Rdefines.h is somewhat more higher level then Rinternal.h, and is preferred if the code might be shared with S at any stage. #include // // Extracts element with name 'str' from R object 'list' // and returns that element. // SEXP getListElement(SEXP list, std::string str) { SEXP elmt = R_NilValue, names = getAttrib(list, R_NamesSymbol); int i; for (i = 0; i < length(list); i++) if(str.compare(CHAR(STRING_ELT(names, i))) == 0) { elmt = VECTOR_ELT(list, i); break; } return elmt; } // // Set options specified in R object opts in IpoptApplcation app. // If we set the option to approximate the Hessian, then IpoptRNLP // needs to know that, so it can return false when calling eval_h, // instead of trying to find an R function that evaluates the Hessian. // // SEXP opts is an R list containing three sub-lists, with names // integer, string and numeric. These sub-lists contain the actual // options and there values that were specified by the user. // Passing the options in this way makes it easier to call different // SetValue function in IpoptApplication of the different types. // void setApplicationOptions( Ipopt::SmartPtr app, Ipopt::SmartPtr nlp, SEXP opts ) { // extract the sub-lists with options of the different types into separate lists SEXP opts_integer = getListElement(opts, "integer"); SEXP opts_numeric = getListElement(opts, "numeric"); SEXP opts_string = getListElement(opts, "string"); // loop over the integer options and set them SEXP opts_integer_names; opts_integer_names = getAttrib(opts_integer, R_NamesSymbol); for (int list_cnt=0;list_cntOptions()->SetIntegerValue(CHAR(STRING_ELT(opts_integer_names, list_cnt)), INTEGER(opt_value)[0]); UNPROTECT(1); } // loop over the numeric options and set them SEXP opts_numeric_names; opts_numeric_names = getAttrib(opts_numeric, R_NamesSymbol); for (int list_cnt=0;list_cntOptions()->SetNumericValue(CHAR(STRING_ELT(opts_numeric_names, list_cnt)), REAL(opt_value)[0]); UNPROTECT(1); } // loop over the string options and set them SEXP opts_string_names; opts_string_names = getAttrib(opts_string, R_NamesSymbol); for (int list_cnt=0;list_cntOptions()->SetStringValue(CHAR(STRING_ELT(opts_string_names, list_cnt)), CHAR(opt_value)); // change the setting to approximate the hessian in nlp if this is part of the options if ( std::string( CHAR(STRING_ELT(opts_string_names, list_cnt)) ) == "hessian_approximation" && std::string( CHAR(opt_value) ) == "limited-memory" ) { nlp->set_hessian_approximation( true ); } UNPROTECT(1); } } // we want this function to be available in R, so we put extern around it. extern "C" { SEXP IpoptRSolve( SEXP args ) { // Create an instance of your nlp... // (use a SmartPtr, not raw) Ipopt::SmartPtr ipoptr_nlp; Ipopt::SmartPtr ipoptr_tnlp; ipoptr_nlp = new IpoptRNLP(); ipoptr_tnlp = GetRawPtr(ipoptr_nlp); // Set initial values, bounds, functions, etc. // These are taking from args, which is a list containing the needed elements. // Checking whether all elements are there and have correct values is done in R. ipoptr_nlp->set_R_environment( getListElement(args, "environment") ); ipoptr_nlp->set_R_init_values( getListElement(args, "x0" ) ); ipoptr_nlp->set_R_lower_bounds( getListElement(args, "lower_bounds" ) ); ipoptr_nlp->set_R_upper_bounds( getListElement(args, "upper_bounds" ) ); ipoptr_nlp->set_R_eval_f( getListElement(args, "eval_f") ); ipoptr_nlp->set_R_eval_grad_f( getListElement(args, "eval_grad_f") ); ipoptr_nlp->set_R_eval_g( getListElement(args, "eval_g") ); ipoptr_nlp->set_R_eval_jac_g( getListElement(args, "eval_jac_g") ); ipoptr_nlp->set_R_eval_jac_g_structure( getListElement(args, "eval_jac_g_structure") ); ipoptr_nlp->set_R_constraint_lower_bounds( getListElement(args, "constraint_lower_bounds") ); ipoptr_nlp->set_R_constraint_upper_bounds( getListElement(args, "constraint_upper_bounds") ); ipoptr_nlp->set_R_eval_h( getListElement(args, "eval_h") ); ipoptr_nlp->set_R_eval_h_structure( getListElement(args, "eval_h_structure") ); // Create an instance of the IpoptApplication Ipopt::SmartPtr app = new Ipopt::IpoptApplication(); // Set options that were passed from R setApplicationOptions( app, ipoptr_nlp, getListElement(args, "options") ); // Set up the IPOPT console. // // Get print_level from options Ipopt::Index print_level; app->Options()->GetIntegerValue( "print_level", print_level, "" ); // Set print_level to 0 for default console (to avoid double output under Linux) app->Options()->SetIntegerValue( "print_level", 0 ); // Add new journal with user-supplied print_level to print output to R console Ipopt::SmartPtr console = new IpoptRJournal( static_cast( print_level ) ); app->Jnlst()->AddJournal(console); // Initialize the IpoptApplication and process the options Ipopt::ApplicationReturnStatus status; status = app->Initialize(); if (status != Ipopt::Solve_Succeeded) { printf("\n\n*** Error during initialization!\n"); SEXP answer; PROTECT(answer = allocVector(INTSXP,1)); INTEGER(answer)[0] = (int) status; UNPROTECT(1); return(answer); } // Solve the optimization problem status = app->OptimizeTNLP(ipoptr_tnlp); // Retrieve results that were saved in IpoptRNLP::finalize_solution() SEXP R_result_list; PROTECT(R_result_list = ipoptr_nlp->get_R_result_list()); // convert number of iterations to an R object and add to the result_list // memory in R_result_list has already been allocated in IpoptRNLP::finalize_solution() SEXP R_num_iterations; PROTECT(R_num_iterations = allocVector(INTSXP,1)); INTEGER(R_num_iterations)[0] = (int) app->Statistics()->IterationCount(); SET_VECTOR_ELT(R_result_list, 2, R_num_iterations); UNPROTECT(2); return(R_result_list); } } // extern "C" Ipopt-3.11.4/Ipopt/contrib/RInterface/src/IpoptRNLP.cpp0000644000076600007660000004404312214316142021211 0ustar coincoin/* * Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. * This code is published under the Eclipse Public License. * * file: IpoptRNLP.cpp * author: Jelmer Ypma * date: 18 April 2010 * * This file defines a C++ class that derives from Ipopt::TNLP. The class * takes care of interaction between Ipopt and user-defined functions in R. * * Financial support of the UK Economic and Social Research Council * through a grant (RES-589-28-0001) to the ESRC Centre for Microdata * Methods and Practice (CeMMAP) is gratefully acknowledged. * * Changelog: * 09/03/2012: added outputs in finalize_solution; z_L, z_U, constraints, lambda (thanks to Michael Schedl) */ #include "IpoptRNLP.hpp" /* Constructor. */ IpoptRNLP::IpoptRNLP() : d_hessian_approximation( false ), d_num_protected_members( 0 ) {} IpoptRNLP::~IpoptRNLP() { // UNPROTECT all SEXP members that we PROTECT UNPROTECT( d_num_protected_members ); } // // Functions to load R Objects into IpoptRProblem // void IpoptRNLP::set_R_environment( SEXP env ) { PROTECT(R_environment = env); d_num_protected_members++; } void IpoptRNLP::set_R_eval_f( SEXP f ) { PROTECT(R_eval_f = f); d_num_protected_members++; } void IpoptRNLP::set_R_eval_grad_f( SEXP f ) { PROTECT(R_eval_grad_f = f); d_num_protected_members++; } void IpoptRNLP::set_R_init_values( SEXP x0 ) { PROTECT(R_init_values = x0); d_num_protected_members++; } void IpoptRNLP::set_R_lower_bounds( SEXP lb ) { PROTECT(R_lower_bounds = lb); d_num_protected_members++; } void IpoptRNLP::set_R_upper_bounds( SEXP ub ) { PROTECT(R_upper_bounds = ub); d_num_protected_members++; } void IpoptRNLP::set_R_eval_g( SEXP g ) { PROTECT(R_eval_g = g); d_num_protected_members++; } void IpoptRNLP::set_R_eval_jac_g( SEXP g ) { PROTECT(R_eval_jac_g = g); d_num_protected_members++; } void IpoptRNLP::set_R_eval_jac_g_structure( SEXP s ) { PROTECT(R_eval_jac_g_structure = s); d_num_protected_members++; } void IpoptRNLP::set_R_constraint_lower_bounds( SEXP lb ) { PROTECT(R_constraint_lower_bounds = lb); d_num_protected_members++; } void IpoptRNLP::set_R_constraint_upper_bounds( SEXP ub ) { PROTECT(R_constraint_upper_bounds = ub); d_num_protected_members++; } void IpoptRNLP::set_R_eval_h( SEXP h ) { PROTECT(R_eval_h = h); d_num_protected_members++; } void IpoptRNLP::set_R_eval_h_structure( SEXP s ) { PROTECT(R_eval_h_structure = s); d_num_protected_members++; } void IpoptRNLP::set_hessian_approximation( bool b ) { d_hessian_approximation = b; } SEXP IpoptRNLP::get_R_result_list() { return R_result_list; } bool IpoptRNLP::get_nlp_info(Ipopt::Index& n, Ipopt::Index& m, Ipopt::Index& nnz_jac_g, Ipopt::Index& nnz_h_lag, IndexStyleEnum& index_style) { // Check for user interruption from R R_CheckUserInterrupt(); // number of control variables n = length( R_init_values ); // number of constraints m = length( R_constraint_lower_bounds ); // Loop over the elements in R_eval_jac_g_structure and count the number of non-zero indices // in the Jacobian. As far as I know unlist() does not exist in C, so we cannot call that directly. nnz_jac_g = 0; for (int list_cnt=0;list_cnt // USES Rprintf class IpoptRJournal : public Ipopt::Journal { public: // The constructor. IpoptRJournal( Ipopt::EJournalLevel default_level ); // The destructor. virtual ~IpoptRJournal() { }; protected: // These functions override the functions in the Journal class. virtual void PrintImpl( Ipopt::EJournalCategory category, Ipopt::EJournalLevel level, const char* str); virtual void PrintfImpl( Ipopt::EJournalCategory category, Ipopt::EJournalLevel level, const char* pformat, va_list ap); virtual void FlushBufferImpl(); }; #endif Ipopt-3.11.4/Ipopt/contrib/RInterface/NAMESPACE0000644000076600007660000000020111433226364017342 0ustar coincoinuseDynLib(ipoptr, IpoptRSolve) export(ipoptr, is.ipoptr, print.sparseness, plot.sparseness, make.sparse) S3method(print, ipoptr) Ipopt-3.11.4/Ipopt/contrib/RInterface/CHANGELOG0000644000076600007660000000166112214316142017340 0ustar coincoin09 March 2012, version 0.8.4: * Included additional variables to the object that is returned from ipoptr (thanks to Michael Schedl). These are: z_L : final values for the lower bound multipliers z_U : final values for the upper bound multipliers constraints : final values for the constraints lambda : final values for the Lagrange mulipliers After solving the NLP using R> res <- ipoptr( ... ) They can be accessed using R> res$z_L R> res$z_U R> res$constraints R> res$lambda * Removed ipoptr_environment as argument in ipoptr because it wasn't useful and it caused undesired behaviour in combination with the data.table package (thanks to Florian Oswald for reporting). 20 November 2011, version 0.8.3: * Added #include to src/IpoptRNLP.hpp Ipopt-3.11.4/Ipopt/contrib/RInterface/README0000644000076600007660000000237111504216567017020 0ustar coincoinPackage: ipoptr Type: Package Title: R interface to Ipopt Version: 0.8 Date: 2010-07-18 Author: Jelmer Ypma Maintainer: Jelmer Ypma Description: ipoptr is an R interface to Ipopt (Interior Point Optimizer), an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls. Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The code has been written by Carl Laird and Andreas Waechter, who is the COIN project leader for Ipopt. License: EPL Directories follow the standard structure of an R package: - inst Contains citation information that is displayed by the R citation('ipoptr') command, and the TeX/Sweave code of the documentation. - man Contains help-files for the commands available in this package. E.g. ?ipoptr in R shows the help-file for the ipoptr command. - R Contains R code defining the R commands. Each command is defined in a separate file. - src Contains C++ code interfacing between R and Ipopt. - tests Contains some examples/tests to show how the R interface works.Ipopt-3.11.4/Ipopt/contrib/RInterface/R/0000755000076600007660000000000012214537465016340 5ustar coincoinIpopt-3.11.4/Ipopt/contrib/RInterface/R/ipoptr.R0000644000076600007660000001510612214316142017766 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: ipoptr.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Changelog: # 09/03/2012: Added outputs, z_L, z_U, constraints, lambda (thanks to Michael Schedl) # 09/03/2012: Removed ipoptr_environment because this caused a bug in combination with # data.table and it wasn't useful (thanks to Florian Oswald for reporting) # # Input: # x0 : vector with initial values # eval_f : function to evaluate objective function # eval_grad_f : function to evaluate gradient of objective function # lb : lower bounds of the control # ub : upper bounds of the control # eval_g : function to evaluate (non-)linear constraints that should hold in the solution # eval_jac_g : function to evaluate the jacobian of the (non-)linear constraints that should hold in the solution # eval_jac_g_structure : sparseness structure of the jacobian # constraint_lb : lower bounds of the (non-)linear constraints # constraint_ub : upper bounds of the (non-)linear constraints # eval_h : function to evaluate the hessian # eval_h_structure : sparseness structure of the hessian # opts : list with options that are passed to Ipopt # ... : arguments that will be passed to user-defined functions # # Output: structure with inputs and # call : the call that was made to solve # status : integer value with the status of the optimization (0 is success) # message : more informative message with the status of the optimization # iterations : number of iterations that were executed # objective : final value of the objective function # solution : final values for the controls # z_L : final values for the lower bound multipliers # z_U : final values for the upper bound multipliers # constraints : final values for the constraints # lambda : final values for the Lagrange mulipliers ipoptr <- function( x0, eval_f, eval_grad_f, lb = NULL, ub = NULL, eval_g = function( x ) { return( numeric(0) ) }, eval_jac_g = function( x ) { return( numeric(0) ) }, eval_jac_g_structure = list(), constraint_lb = numeric(0), constraint_ub = numeric(0), eval_h = NULL, eval_h_structure = NULL, opts = list(), ... ) { # define 'infinite' lower and upper bounds of the control if they haven't been set if ( is.null( lb ) ) { lb <- rep( -Inf, length(x0) ) } if ( is.null( ub ) ) { ub <- rep( Inf, length(x0) ) } # internal function to check the arguments of the functions checkFunctionArguments <- function( fun, arglist, funname ) { if( !is.function(fun) ) stop(paste(funname, " must be a function\n", sep = "")) # determine function arguments fargs <- formals(fun) if ( length(fargs) > 1 ) { # determine argument names user-defined function argnames_udf <- names(fargs)[2:length(fargs)] # remove first argument, which is x # determine argument names that where supplied to ipoptr() argnames_supplied <- names(arglist) # determine which arguments where required but not supplied m1 = match(argnames_udf, argnames_supplied) if( any(is.na(m1)) ){ mx1 = which( is.na(m1) ) for( i in 1:length(mx1) ){ stop(paste(funname, " requires argument '", argnames_udf[mx1], "' but this has not been passed to the 'ipoptr' function.\n", sep = "")) } } # determine which arguments where supplied but not required m2 = match(argnames_supplied, argnames_udf) if( any(is.na(m2)) ){ mx2 = which( is.na(m2) ) for( i in 1:length(mx2) ){ stop(paste("'", argnames_supplied[mx2], "' passed to (...) in 'ipoptr' but this is not required in the ", funname, " function.\n", sep = "")) } } } return( 0 ) } # extract list of additional arguments and check user-defined functions arglist <- list(...) checkFunctionArguments( eval_f, arglist, 'eval_f' ) checkFunctionArguments( eval_grad_f, arglist, 'eval_grad_f' ) num.constraints <- length( constraint_lb ) if ( num.constraints > 0 ) { checkFunctionArguments( eval_g, arglist, 'eval_g' ) checkFunctionArguments( eval_jac_g, arglist, 'eval_jac_g' ) } # write wrappers around user-defined functions to pass additional arguments eval_f_wrapper = function(x){ eval_f(x, ...) } eval_grad_f_wrapper = function(x){ eval_grad_f(x, ...) } if ( num.constraints > 0 ) { eval_g_wrapper = function( x ) { eval_g(x, ...) } eval_jac_g_wrapper = function( x ) { eval_jac_g(x, ...) } } else { eval_g_wrapper = function( x ) { return( numeric(0) ) } eval_jac_g_wrapper = function( x ) { return( numeric(0) ) } } # approximate Hessian if ( is.null( eval_h ) && is.null( eval_h_structure ) ) { opts$hessian_approximation <- "limited-memory" eval_h_wrapper = NULL } else { checkFunctionArguments( eval_h, c( arglist, obj_factor=0, hessian_lambda=0 ), 'eval_h' ) eval_h_wrapper = function( x, obj_factor, hessian_lambda ) { eval_h(x, obj_factor, hessian_lambda, ...) } } # build ipoptr object ret <- list( "x0"=x0, "eval_f"=eval_f_wrapper, "eval_grad_f"=eval_grad_f_wrapper, "lower_bounds"=lb, "upper_bounds"=ub, "eval_g"=eval_g_wrapper, "eval_jac_g"=eval_jac_g_wrapper, "constraint_lower_bounds"=constraint_lb, "constraint_upper_bounds"=constraint_ub, "eval_jac_g_structure"=eval_jac_g_structure, "eval_h"=eval_h_wrapper, "eval_h_structure"=eval_h_structure, "options"=get.option.types(opts) ) attr(ret, "class") <- "ipoptr" # add the current call to the list ret$call <- match.call() # check whether we have a correctly formed ipoptr object is.ipoptr( ret ) # pass ipoptr object to C code solution <- .Call( IpoptRSolve, ret ) # add solution variables to object ret$status <- solution$status ret$message <- solution$message ret$iterations <- solution$iterations ret$objective <- solution$objective ret$solution <- solution$solution ret$z_L <- solution$z_L ret$z_U <- solution$z_U ret$constraints <- solution$constraints ret$lambda <- solution$lambda return( ret ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/plot.sparseness.R0000644000076600007660000000232711504216567021630 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: plot.sparseness.R # Author: Jelmer Ypma # Date: 23 June 2010 # # Input: sparse matrix structure (as list with non-zero indices) # Output: plot a the non-zero elements in the matrix as dots # useful for matrices with many elements, for smaller ones # use print.sparseness plot.sparseness <- function( x, pch='.', asp=1, xaxs='i', yaxs='i', ... ) { # make a list of y indices corresponding to the non-zero x indices structure.y <- lapply( 1:length( x ), function(i) { rep( i, length( x[[i]] ) ) } ) indices.x <- unlist( x ) indices.y <- unlist( structure.y ) # plot non-zero elements, where we revert the y-axis (top-left element is 1,1), # fix the aspect ratio (asp=1) and do not extend the x and y axis (x/yaxs='i') plot( indices.x, indices.y, xlim=c(min(indices.x), max(indices.x)), ylim=c(max(indices.y), min(indices.y)), type='p', pch=pch, asp=asp, xaxs=xaxs, yaxs=yaxs, ... ) return( list( x=indices.x, y=indices.y ) ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/print.sparseness.R0000644000076600007660000000252611504216567022007 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: print.sparseness.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Input: sparse matrix structure (as list with non-zero indices) # Output: print a table with 'x' for non-zero element and '.' for zero element print.sparseness <- function( x, indices=TRUE, data=NULL, ncol=NULL, ... ) { stopifnot( is.list(x) ) # if number of columns is not supplied, take it as the maximum # value of the indices if ( is.null(ncol) ) { ncol <- max(unlist(x)) } # create matrix with dots p <- data.frame( matrix( ".", nrow=length(x), ncol ), stringsAsFactors=FALSE ) names( p ) <- 1:ncol # change dots by 'x' or count of index cnt=1 for ( row in 1:length(x) ) { for ( col in x[[row]] ) { if ( indices ) { if ( is.null( data ) ) { p[ row, col ] <- cnt } else { p[ row, col ] <- paste( cnt, ':', data[cnt] ) } } else { if ( is.null( data ) ) { p[ row, col ] <- 'x' } else { p[ row, col ] <- data[cnt] } } cnt = cnt+1 } } return( p ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/make.sparse.R0000644000076600007660000000127711504216567020701 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: make.sparse.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Input: matrix with logical elements # Output: list with as elements a vector of indices denoting non-zero (TRUE) elements of the matrix make.sparse <- function( A ) { # start with empty list to append to S <- list() # loop over matrix by row for ( i in 1:nrow(A) ) { indices <- c() for ( j in 1:ncol(A) ) { if (A[i,j]) { indices <- c( indices, j ) } } S <- c( S, list(indices) ) } return( S ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/get.option.types.R0000644000076600007660000002015411504216567021714 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: get.option.types.R # Author: Jelmer Ypma # Date: 18 April 2010 # # This function converts a list with ipopt options into # three sub-lists, where the options are sorted into # the different value types (integer, numeric, string). # # Input: list of ipopt options and their values # Output: list containing three sub-lists by type with ipopt options and their values get.option.types <- function(opts) { # define types of ipopt options ipopt.option.types <- list( # Output "print_level"="integer", "print_user_options"="string", "print_options_documentation"="string", "output_file"="string", "file_print_level"="integer", "option_file_name"="string", # Termination "tol"="numeric", "max_iter"="integer", "max_cpu_time"="numeric", "dual_inf_tol"="numeric", "constr_viol_tol"="numeric", "compl_inf_tol"="numeric", "acceptable_tol"="numeric", "acceptable_iter"="integer", "acceptable_constr_viol_tol"="numeric", "acceptable_dual_inf_tol"="numeric", "acceptable_compl_inf_tol"="numeric", "acceptable_obj_change_tol"="numeric", "diverging_iterates_tol"="numeric", # NLP Scaling "obj_scaling_factor"="numeric", "nlp_scaling_method"="string", "nlp_scaling_max_gradient"="numeric", # NLP "bound_relax_factor"="numeric", "honor_original_bounds"="string", "check_derivatives_for_naninf"="string", "nlp_lower_bound_inf"="numeric", "nlp_upper_bound_inf"="numeric", "fixed_variable_treatment"="string", "jac_c_constant"="string", "jac_d_constant"="string", "hessian_constant"="string", # Initialization "bound_frac"="numeric", "bound_push"="numeric", "slack_bound_frac"="numeric", "slack_bound_push"="numeric", "bound_mult_init_val"="numeric", "constr_mult_init_max"="numeric", "bound_mult_init_method"="string", # Barrier Parameter "mehrotra_algorithm"="string", "mu_strategy"="string", "mu_oracle"="string", "quality_function_max_section_steps"="integer", "fixed_mu_oracle"="string", "mu_init"="numeric", "mu_max_fact"="numeric", "mu_max"="numeric", "mu_min"="numeric", "barrier_tol_factor"="numeric", "mu_linear_decrease_factor"="numeric", "mu_superlinear_decrease_power"="numeric", # Multiplier Updates "alpha_for_y"="string", "alpha_for_y_tol"="numeric", "recalc_y"="string", "recalc_y_feas_tol"="numeric", # Line Search "max_soc"="integer", "watchdog_shortened_iter_trigger"="integer", "watchdog_trial_iter_max"="integer", "accept_every_trial_step"="string", "corrector_type"="string", # Warm Start "warm_start_init_point"="string", "warm_start_bound_push"="numeric", "warm_start_bound_frac"="numeric", "warm_start_slack_bound_frac"="numeric", "warm_start_slack_bound_push"="numeric", "warm_start_mult_bound_push"="numeric", "warm_start_mult_init_max"="numeric", # Restoration Phase "expect_infeasible_problem"="string", "expect_infeasible_problem_ctol"="numeric", "expect_infeasible_problem_ytol"="numeric", "start_with_resto"="string", "soft_resto_pderror_reduction_factor"="numeric", "required_infeasibility_reduction"="numeric", "bound_mult_reset_threshold"="numeric", "constr_mult_reset_threshold"="numeric", "evaluate_orig_obj_at_resto_trial"="string", # Linear Solver "linear_solver"="string", "linear_system_scaling"="string", "linear_scaling_on_demand"="string", "max_refinement_steps"="integer", "min_refinement_steps"="integer", # Hessian Perturbation "max_hessian_perturbation"="numeric", "min_hessian_perturbation"="numeric", "first_hessian_perturbation"="numeric", "perturb_inc_fact_first"="numeric", "perturb_inc_fact"="numeric", "perturb_dec_fact"="numeric", "jacobian_regularization_value"="numeric", # Quasi-Newton "hessian_approximation"="string", "limited_memory_max_history"="integer", "limited_memory_max_skipping"="integer", # Derivative Test "derivative_test"="string", "derivative_test_perturbation"="numeric", "derivative_test_tol"="numeric", "derivative_test_print_all"="string", "point_perturbation_radius"="numeric", # MA27 Linear Solver "ma27_pivtol"="numeric", "ma27_pivtolmax"="numeric", "ma27_liw_init_factor"="numeric", "ma27_la_init_factor"="numeric", "ma27_meminc_factor"="numeric", # MA57 Linear Solver "ma57_pivtol"="numeric", "ma57_pivtolmax"="numeric", "ma57_pre_alloc"="numeric", "ma57_pivot_order"="integer", # MUMPS Linear Solver "mumps_pivtol"="numeric", "mumps_pivtolmax"="numeric", "mumps_mem_percent"="integer", "mumps_permuting_scaling"="integer", "mumps_pivot_order"="integer", "mumps_scaling"="integer", # Pardis"Linear Solver "pardiso_msglvl"="integer", "pardiso_matching_strategy"="string", "pardiso_out_of_core_power"="integer", # WSMP Linear Solver "wsmp_num_threads"="integer", "wsmp_ordering_option"="integer", "wsmp_pivtol"="numeric", "wsmp_pivtolmax"="numeric", "wsmp_scaling"="integer", "wsmp_singularity_threshold"="numeric" ) # initialize list with options sorted by type converted.opts <- list( "integer"=list(), "string"=list(), "numeric"=list() ) is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol # check if we have at least 1 element in the list, otherwise the # loop runs from 1 to down 0 and we get errors if ( length( opts ) > 0 ) { # loop over all options and give them the correct type for ( i in 1:length( opts ) ) { tmp.type <- ipopt.option.types[[match( names(opts)[i], names(ipopt.option.types) )]] if ( is.null( tmp.type ) ) { # determine type if ( is.character(opts[[i]]) ) { tmp.type <- "string" } else if ( is.wholenumber(opts[[i]]) ) { tmp.type <- "integer" } else { tmp.type <- "numeric" } cat( paste( "Warning: ", names(opts)[i], " is not a recognized option, we try to pass it to Ipopt as ", tmp.type, "\n" ) ) } if ( tmp.type=="string" ) { converted.opts$string[[ names(opts)[i] ]] <- as.character(opts[[i]]) } else if ( tmp.type=="integer" ) { converted.opts$integer[[ names(opts)[i] ]] <- as.integer(opts[[i]]) } else if ( tmp.type=="numeric" ) { converted.opts$numeric[[ names(opts)[i] ]] <- as.numeric(opts[[i]]) } else { stop(paste("Type of option ", names(opts)[i], " not recognized")) } } } return ( converted.opts ) } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/print.ipoptr.R0000644000076600007660000000375511530044256021134 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: print.ipoptr.R # Author: Jelmer Ypma # Date: 18 April 2010 # # This function prints some basic output of a ipoptr # ojbect. The information is only available after it # has been solved. print.ipoptr <- function(x, show.controls=TRUE, ...) { cat("\nCall:\n", deparse(x$call), "\n\n", sep = "", fill=TRUE) cat( unlist(strsplit(paste( "Ipopt solver status:", x$status, "(", x$message, ")\n" ),' ')), fill=TRUE ) cat( paste( "Number of Iterations....:", x$iterations, "\n" ) ) # if show.controls is TRUE or FALSE, show all or none of the controls if ( is.logical( show.controls ) ) { # show all control variables if ( show.controls ) { controls.indices = 1:length(x$solution) } } # if show.controls is a vector with indices, rename this vector # and define show.controls as TRUE if ( is.numeric( show.controls ) ) { controls.indices = show.controls show.controls = TRUE } # if solved successfully if ( x$status<=0 ) { cat( paste( "Optimal value of objective function: ", x$objective, "\n" ) ) if ( show.controls ) { if ( length( controls.indices ) < length(x$solution) ) { cat( "Optimal value of user-defined subset of controls: " ) } else { cat( "Optimal value of controls: " ) } cat( x$solution[ controls.indices ], fill=TRUE) cat("\n") } } else { cat( paste( "Current value of objective function: ", x$objective, "\n" ) ) if ( show.controls ) { if ( length( controls.indices ) < length(x$solution) ) { cat( "Current value of user-defined subset of controls: " ) } else { cat( "Current value of controls: " ) } cat( x$solution[ controls.indices ], fill=TRUE ) cat("\n") } } cat("\n") } Ipopt-3.11.4/Ipopt/contrib/RInterface/R/is.ipoptr.R0000644000076600007660000001045712214316142020404 0ustar coincoin# Copyright (C) 2010 Jelmer Ypma. All Rights Reserved. # This code is published under the Eclipse Public License. # # File: is.ipoptr.R # Author: Jelmer Ypma # Date: 18 April 2010 # # Input: object # Output: bool telling whether the object is an ipoptr or not # # Changelog: # 09/03/2012: Removed ipoptr_environment because this caused a bug in combination with # data.table and it wasn't useful (thanks to Florian Oswald for reporting) is.ipoptr <- function(x) { # Check whether the object exists and is a list if( is.null(x) ) { return( FALSE ) } if( !is.list(x) ) { return( FALSE ) } # Define local flag defining whether we approximate the Hessian or not flag_hessian_approximation = FALSE if ( !is.null( x$options$string$hessian_approximation ) ) { flag_hessian_approximation = ( x$options$string$hessian_approximation == "limited-memory" ) } # Check whether the needed functions are supplied stopifnot( is.function(x$eval_f) ) stopifnot( is.function(x$eval_grad_f) ) stopifnot( is.function(x$eval_g) ) stopifnot( is.function(x$eval_jac_g) ) if ( !flag_hessian_approximation ) { stopifnot( is.function(x$eval_h) ) } # Check whether bounds are defined for all controls stopifnot( length( x$x0 ) == length( x$lower_bounds ) ) stopifnot( length( x$x0 ) == length( x$upper_bounds ) ) # Check whether the initial value is within the bounds stopifnot( all( x$x0 >= x$lower_bounds ) ) stopifnot( all( x$x0 <= x$upper_bounds ) ) num.controls <- length( x$x0 ) num.constraints <- length( x$constraint_lower_bounds ) # Check the length of some return values stopifnot( length(x$eval_f( x$x0 ))==1 ) stopifnot( length(x$eval_grad_f( x$x0 ))==num.controls ) stopifnot( length(x$eval_g( x$x0 ))==num.constraints ) stopifnot( length(x$eval_jac_g( x$x0 ))==length(unlist(x$eval_jac_g_structure)) ) # the number of non-zero elements in the Jacobian if ( !flag_hessian_approximation ) { stopifnot( length(x$eval_h( x$x0, 1, rep(1,num.constraints) ))==length(unlist(x$eval_h_structure)) ) # the number of non-zero elements in the Hessian } # Check the whether we don't have NA's in initial values stopifnot( all(!is.na(x$eval_f( x$x0 ))) ) stopifnot( all(!is.na(x$eval_grad_f( x$x0 ))) ) stopifnot( all(!is.na(x$eval_g( x$x0 ))) ) stopifnot( all(!is.na(x$eval_jac_g( x$x0 ))) ) # the number of non-zero elements in the Jacobian if ( !flag_hessian_approximation ) { stopifnot( all(!is.na(x$eval_h( x$x0, 1, rep(1,num.constraints) ))) ) # the number of non-zero elements in the Hessian } # Check whether a correct structure was supplied, and check the size stopifnot( is.list(x$eval_jac_g_structure) ) stopifnot( length(x$eval_jac_g_structure)==num.constraints ) if ( !flag_hessian_approximation ) { stopifnot( length(x$eval_h_structure)==num.controls ) stopifnot( is.list(x$eval_h_structure) ) } # Check the number of non-linear constraints stopifnot( length(x$constraint_lower_bounds)==length(x$constraint_upper_bounds) ) # Check whether none of the non-zero indices are larger than the number of controls # Also, the smallest index should be bigger than 0 if ( length( x$eval_jac_g_structure ) > 0 ) { stopifnot( max(unlist(x$eval_jac_g_structure)) <= num.controls ) stopifnot( min(unlist(x$eval_jac_g_structure)) > 0 ) } if ( !flag_hessian_approximation ) { stopifnot( max(unlist(x$eval_h_structure)) <= num.controls ) stopifnot( min(unlist(x$eval_h_structure)) > 0 ) } # Check whether option to approximate hessian and eval_h are both set # If we approximate the hessian, then we don't want to set eval_h if ( flag_hessian_approximation ) { if( !is.null( x$eval_h ) ) { warning("Option supplied to approximate hessian, but eval_h is defined.\nSolution: remove option hessian_approximation=limited-memory to use analytic derivatives.") } if( !is.null( x$eval_h_structure ) ) { warning("Option supplied to approximate hessian, but eval_h_structure is defined.\nSolution: remove option hessian_approximation=limited-memory to use analytic derivatives.") } } return( TRUE ) } Ipopt-3.11.4/Ipopt/config.guess0000755000076600007660000012706311413700257014775 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/INSTALL0000644000076600007660000000666112151613040012404 0ustar coincoinThese instructions are for UNIX-like systems (including Linux, Cygwin and MSys) only. If Microsoft Developer Studio projects are maintained for this package, you can find instructions at https://projects.coin-or.org/MSVisualStudio This is just a short version of the installation instructions. You can find a more detailed Ipopt documentation at https://www.coin-or.org/Ipopt/documentation ********************************************************************** *** DOWNLOAD *** ********************************************************************** You can obtain the source code for the Ipopt package in two ways: 1. Obtain the source directly from the COIN-OR subversion repository (recommended). For this you needs the program 'svn' installed on your machine, and output of "svn --version" must contain "handles 'https' scheme". Assuming that you want to download the code into a subdirectory "CoinIpopt", you type svn co https://projects.coin-or.org/svn/Ipopt/trunk CoinIpopt 2. Download the tarball from http://www.coin-or.org/Tarballs/Ipopt and extract it, for example, with gunzip Ipopt-3.3.1.tgz tar xvf Ipopt-3.3.1.tar (Here "3.3.1" is of course replaced by the string in the tarball you downloaded.) 3. Ipopt requires some third party dependencies. Please check the Ipopt documentation in Ipopt/doc/documentation.pdf or online at http://www.coin-or.org/Ipopt/documentation More detailed download instructions can be found at https://projects.coin-or.org/BuildTools/wiki/user-download ********************************************************************** *** CONFIGURATION *** ********************************************************************** Go into the directory that you just downloaded or extracted (e.g., CoinIpopt or Ipopt-3.3.1). Then you type ./configure Note that you might have to specify additional options, in case you don't want to use the default choices that configure makes (e.g., compilers). Please visit https://projects.coin-or.org/BuildTools/wiki/user-configure and the Ipopt Trac page https://projects.coin-or.org/Ipopt for more information. If everything went fine, you will see at the end of the output "Main configuration of Ipopt successful" ********************************************************************** *** COMPILATION AND INSTALLATION *** ********************************************************************** In the directory where you ran the configure script: 1. Compile the code by typing make 2. To test if the code works, you can type make test 3. To install the code, you type make install After this, you will find the executables, libraries and header files in the "bin", "lib" and "include" subdirectory, respectively. More information on the compilation and installation can be found at https://projects.coin-or.org/BuildTools/wiki/user-compile ********************************************************************** *** USING THE LIBRARIES *** ********************************************************************** Now you can link your own code with the installed libraries. You can find examples in the Ipopt/examples/ subdirectory, see also the information at https://projects.coin-or.org/BuildTools/wiki/user-examples Ipopt-3.11.4/BuildTools/0000755000076600007660000000000012214537467013444 5ustar coincoinIpopt-3.11.4/BuildTools/config.sub0000755000076600007660000007772610637360060015440 0ustar coincoin#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-04-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/BuildTools/commit_new_release0000755000076600007660000001673711510516042017231 0ustar coincoin#!/bin/sh # Copyright (C) 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id: commit_new_release 2070 2011-01-04 04:03:46Z lou $ # # Author: Andreas Waechter IBM 2007-06-21 # Modified by: Lou Hafer SFU 2008-04-17 # Lou Hafer SFU 2010-06-29 major rewrite #set -x -v set -e # Know thy self. If there are no '/' chars in the command name, we're running # in the current directory. Otherwise, strip the command name, leaving the # prefix. Coin-functions is expected to live in the same directory. As of # the original version (100602), this script doesn't need coin-functions, # but this still has some value as a consistency check. if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else cmdDir='.' fi cmdDir=`cd $cmdDir ; pwd` if test -r $cmdDir/coin-functions ; then . $cmdDir/coin-functions else echo "Cannot find utility functions file coin-functions; exiting." fi # We need at least one parameter. The default is a dry run (dryRun = 1). printHelp=0 dryRun=1 dirToCommit= if test "$#" -eq 0; then printHelp=1 else # Process the parameters. A parameter without an opening `-' is assumed to be # the spec for the directory to be committed. (Strip any trailing '/'. Some # people add it, but the script doesn't expect it.) while test $# -gt 0 && test $printHelp = 0 ; do case "$1" in -h* | --h*) printHelp=1 ;; -c* | --c*) dryRun=0 ;; -*) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 ;; *) dirToCommit=`echo $1 | sed -e 's,/$,,'` ;; esac shift done fi # What are we committing? if test -z "$dirToCommit" ; then printHelp=1 fi if test $printHelp = 1 ; then cat < By default, commit_new_release is a dry run, printing the commands that will be executed. When you're confident that everything looks right, use the -c (--commit) flag to commit the release. EOF exit 1 fi # Remember what was done during generation of the new release. if test -r $dirToCommit/.new_release_data; then . $dirToCommit/.new_release_data else echo '' echo "Error: the file .new_release_data is not present in $dirToCommit." echo 'Are you running commit_new_release in the same directory where you' echo 'ran prepare_new_release?' echo '' exit 1 fi # Confirm that we're in the proper directory. currDir=`pwd` if test "$currDir/$dirToCommit" != "$topBuildDir" ; then echo "According to $dirToCommit/.new_release_data, the release candidate was assembled" echo "in $topBuildDir." echo "You have asked to commit $currDir/$dirToCommit." echo "There is some confusion. Repository is unchanged." exit 1 fi if test $dryRun = 1 ; then echo "Dry run; testing commit of $dirToCommit." else echo "Committing $dirToCommit." fi # Change to the checkout directory. cd $coDir # If there are externals set on this directory, confirm that # .Externals.original is present so that we can restore them later. releaseExternals=`svn propget svn:externals .` if test -n "$releaseExternals" ; then if test -r .Externals.original ; then : else echo "This project has externals, but no .Externals.original file" echo "is present to restore them. Repository is unchanged." exit 1 fi fi # Make some short-form URLs by stripping the COIN URL base. stableURLshort=`echo $stableURL | sed -e "s,$coinURL/\(.*\),\1,"` releaseURLshort=`echo $releaseURL | sed -e "s,$coinURL/\(.*\),\1,"` # Do we have to svn add Dependencies? If this query comes up with a leading # `?', the answer is yes. If Dependencies is entirely absent or unchanged, # we'll get a null string. If it's modified, we'll have a leading `M'. dependStatus=`svn status Dependencies` if expr "$dependStatus" : '?.*Dependencies.*' >/dev/null 2>&1 ; then cmd='svn add Dependencies' echo $cmd if test $dryRun = 0 ; then eval $cmd fi fi # Now, do we really need to to a temporary commit? BuildTools is the poster # child, there are no changes at time of writing (100629). Do an svn status # on the checkout directory and see if anything comes up as modified. if svn status $coDir | egrep '^M' 2>&1 >/dev/null ; then doCommit=yes else doCommit=no fi if test $doCommit = yes ; then # Commit the release to stable so we can do a repository-side copy to create # the release. echo '' echo "===> Temporarily committing release candidate to $stableURLshort ..." echo '' rev_num_before=`svn info . | grep -E '^Revision:' | sed -e 's|Revision: ||'` echo "Revision number before commit: $rev_num_before" cmd="svn ci -m \"temporarily committing release candidate\"" echo $cmd if test $dryRun = 0 ; then eval $cmd fi # Update to confirm the commit. Avoid pulling in externals --- if we're doing # multiple commits of new releases, they may not exist. As it stands, the # main purpose of this call is to allow us to easily obtain the current # revision. # It might be useful to strengthen this and check that the value # is what we're expecting --- one greater than the revision before # commit. `--ignore-externals' could be made provisional on the existence # of all externals by passing a boolean through .new_release_data. This # would strengthen the update, in that the update would confirm existence # of the externals. cmd='svn update --ignore-externals' echo $cmd if test $dryRun = 0 ; then eval $cmd fi rev_num=`svn info . | grep -E '^Revision:' | sed -e 's|Revision: ||'` echo "Current revision number is: $rev_num" fi # End preparatory commit. # Create the release with a repository-side copy. echo '' echo "===> Creating new release $releaseURLshort from $stableURLshort (rev $rev_num) ..." echo '' cmd="svn copy -m \"creating $releaseURLshort from $stableURLshort (rev $rev_num)\" $stableURL $releaseURL" echo $cmd if test $dryRun = 0 ; then eval $cmd fi # Restore the original stable branch. if test $doCommit = yes ; then # And restore the stable branch to its original condition. Start by reverting # to the original externals. if test -r .Externals.original ; then echo '' echo '===> Restoring original externals ...' echo '' cmd="svn propset -F .Externals.original svn:externals ." echo $cmd if test $dryRun = 0 ; then eval $cmd rm .Externals.original fi fi # For every .bak file that we created, revert it. if test -n "$bak_files" ; then echo '' echo '===> Restoring modified files ...' echo '' for i in $bak_files; do cmd="cp $i.bak $i ; rm $i.bak" if test $dryRun = 1 ; then echo "$cmd" else eval $cmd fi done fi # Rebuild configure and Makefile.in files. echo '' echo '===> Executing run_autotools to restore configuration files ...' echo '' curdir=`pwd` cd $topBuildDir cmd="./BuildTools/run_autotools" echo $cmd if test $dryRun = 0 ; then eval $cmd fi cd "$curdir" # Commit the restored stable branch. echo '' echo "===> Committing restored $stableURLshort ..." echo '' cmd="svn ci -m \"restoring $stableURLshort\"" echo $cmd if test $dryRun = 0 ; then eval $cmd fi fi # End restorative commit. cd $topBuildDir cmd="rm .new_release_data" if test $dryRun = 0 ; then eval $cmd fi cd $startDir echo '' echo "Done, new release $releaseURLshort created." echo '' echo "You can now delete the directory $topBuildDir including subdirectories" Ipopt-3.11.4/BuildTools/compile_f2c/0000755000076600007660000000000012214537466015625 5ustar coincoinIpopt-3.11.4/BuildTools/compile_f2c/INSTALL0000644000076600007660000000411411053565746016660 0ustar coincoinThe following instructions assume that you already set up Cygwin/Msys to know about the Microsoft 'cl' compiler and 'nmake'. 1. Download the f2c.exe Fortran to C compiler from netlib from http://www.netlib.org/f2c/mswin/f2c.exe.gz uncompress it, and put it somewhere in your PATH (e.g. into /usr/local/bin). Make sure it is executable. 2. Download the source code for the f2c runtime library from http://www.netlib.org/f2c/libf2c.zip and put it into a directory in which you want to have a subdirectory where you want to have the subdirectory "libf2c" containing the runtime library, e.g., into /usr/local/lib. Uncompress this file, for example by "unzip libf2c.zip" in a Cygwin or MSys window. 3. Compile the Fortran runtime library: In the source directory (libf2c), type 'nmake -f makefile.vc all' If you encounter an error during the compilation of "err.c" due to a missing unistd.h, edit the makefile.vc file and add -DNO_ISATTY to the CFLAGS (line 9). If you encounter an error during the compilation of "arithchk.c" (involving the "comptry.bat" file), edit the makefile.vc file and delete the word "comptry.bat" in the 4th from last line. NOTE: If you want to generate debug code (using --enable-debug with configure), you need to change the makefile.vc file: Change the definition of CFLAGS so that it no longer contains '-Ot1' but '-MTd' instead. 4. Edit the script "compile_f2c" in this directory so that the variable "f2clibdir" at the beginning is set to the directory containing the libf2c runtime library. (If you installed it in /usr/local/lib as suggested above, it is already defined correctly.) 5. Put the compile_f2c script somewhere into your path, e.g., into /usr/local/bin - make sure it is executable. 6. To test it, copy the lines at the end of this file into a Fortran source file (say, bla.f), and type compile_f2c -o f2ctest bla.f Running the executable f2ctest.exe hopefully makes you happy. ---------------------- 8< ---------------- program test write (*,*) "It works!" end Ipopt-3.11.4/BuildTools/compile_f2c/compile_f2c0000755000076600007660000000530211504414745017730 0ustar coincoin#!/bin/sh # Copyright (C) 2007 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # ## $Id: compile_f2c 1950 2010-12-22 15:31:49Z andreasw $ # # Author: Andreas Waechter IBM 2007-06-09 ######################################################################## # Replace the following to the location of your vcf2c.lib library # Note that there must be no space before and after "=" f2clibdir=/usr/local/lib/libf2c #You should not have to change anything below this line ######################################################################## #Find out what the if test `which cygpath | wc -l` -eq 0; then CYGPATH_W=echo else CYGPATH_W='cygpath -w' fi if test "$F2C_CC" = ""; then F2C_CC=cl fi f2clib=`$CYGPATH_W $f2clibdir/vcf2c.lib` mainobj=`$CYGPATH_W $f2clibdir/main.obj` # Get rid of the \ f2clib=`echo $f2clib | sed -e s'!\\\\!/!g'` mainobj=`echo $mainobj | sed -e s'!\\\\!/!g'` if test "$#" -eq 1 && test "$1" = "-FLIBS"; then echo $f2clibdir/vcf2c.lib exit 0 fi cincs="-I`$CYGPATH_W $f2clibdir`" options= makedll= linkflags= incs= fsrc= objs= outfile= while test "$#" -gt 0 do arg="$1" shift if test "$outfile" = next; then outfile="$arg" else case "$arg" in -I*) incs="$incs $arg" ;; -o) if test "$outfile" != ""; then echo "There are more than two -o options" exit 1 fi outfile=next ;; -c) options="$options $arg" f2clib= mainobj= ;; -shared) makedll=yes linkflags="$linkflags -dll" ;; -def:*) linkflags="$linkflags $arg" ;; -*) options="$options $arg" ;; *.[fF]) fsrc="$fsrc $arg" ;; *) objs="$objs $arg" ;; esac fi done if test "$fsrc" = "" && test "$objs" = "" ; then echo "No source or object files given" exit 1 fi csrc= if test "$fsrc" != ""; then for f in $fsrc; do cf=`echo $f | sed -e 's|.[fF]$|.c|' -e 's|.*/||'` csrc="$csrc $cf" done echo f2c $incs $fsrc f2c $incs $fsrc f2c_status=$? if test $f2c_status != 0; then rm -f $csrc exit $f2c_status fi fi if test "$outfile"; then cout="-o `$CYGPATH_W $outfile`" fi if test x$makedll = xyes; then echo $F2C_CC $options $cincs $csrc $objs $cout $f2clib -link $linkflags $F2C_CC $options $cincs $csrc $objs $cout $f2clib -link $linkflags else echo $F2C_CC $options $cincs $csrc $objs $cout $mainobj $f2clib $F2C_CC $options $cincs $csrc $objs $cout $mainobj $f2clib fi cl_status=$? rm -f $csrc exit $cl_status Ipopt-3.11.4/BuildTools/compile_f2c/README0000644000076600007660000000132711504414745016503 0ustar coincoinThe files in this directory are intended to allow the compilation of Fortran 77 source files by combining the Fortran to C translator f2c (from netlib) and the Microsoft 'cl' C compiler under Cygwin and MSys. Please read the INSTALL file for instructions how to use this tool. After you installed this tool, you can use the script "compile_f2c" to compile Fortran 77 code. If you specify the flag "--enable-doscompile=msvc" for the configure script in COIN projects, it will automatically be used (unless a native Fortran compiler is found). The files in this directory are part of the BuildTools project of COIN-OR, https://projects.coin-or.org/BuildTools. The files are made available under the Eclipse Public License. Ipopt-3.11.4/BuildTools/run_autotools0000755000076600007660000003217611610272367016312 0ustar coincoin#!/bin/sh # Copyright (C) 2006, 2007, 2008, 2009, 2010 International Business Machines # and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # ## $Id: run_autotools 2365 2011-07-16 11:24:39Z stefan $ # # Author: Andreas Waechter IBM 2006-04-14 # Modified: Lou Hafer SFU 2010-06-11 # Mods to allow variations from standard package structure. Decision to # process a configure.ac file is based on presence of COIN macros. # Directories specified on the command line are recursively searched # for configure.ac files. Install-sh signals an independent unit. # Modified: Lou Hafer SFU 2010-07-08 # More mods to maintain flexibility but be a bit less aggressive about # forcing installation of autotools auxilliary scripts. Also add some # command line options and restore ability to specify individual # directories on the command line. # run_autotools takes care of running the autotools (automake, autoconf, # and helpers) and also makes a few arrangements for when configure and # libtool execute at configuration, build, and installation. # Run_autotools can be given a set of directories on the command line; if none # are specified, it assumes the current directory (`,'). Subdirectories are # searched for configure.ac files unless suppressed with the -nr option. # Autotools will consider a directory for processing if any AC_COIN_ macro is # present in the configure.ac file. Should it be necessary to fool this script # into processing a file that otherwise contains no COIN macros, just add a # line with AC_COIN_. The resulting list is winnowed to remove directories # specified in COIN_SKIP_PROJECTS. # Each directory processed gets a temporary link to BuildTools, unless a # BuildTools subdirectory is already present. Mostly this is a convenience, but # one thing makes it mandatory: Many Makefile.am files in COIN use an include # directive to pull in BuildTools/Makemain.inc. There's no way I (lh) can see # to alter the path that's hardcoded in the include directive. Just to make it # more interesting, COIN projects are generally constructed with the assumption # that BuildTools will be one or two directories up, so you'll see things like # `include ../BuildTools/Makemain.inc'. run_autotools doesn't understand this # hierarchy, so it keeps all those temporary BuildTools links until the very # end. That way, it works with the old-style COIN organisation where a # BuildTools directory is pulled in as an external in the top directory of a # package, and with the new-style independent organisation, where there may be # only a single copy of BuildTools out there somewhere. # If any subdirectory queued for processing is found to contain an install-sh # script, it is treated as an independent unit (i.e., you can run `make # install' from this directory) and the set of auxilliary scripts is refreshed # from BuildTools. You can force installation of install-sh and associated # scripts with the -i option. It's good to read the autoconf documentation for # AC_CONFIG_AUX_DIR if this doesn't make sense to you. # Make sure we bail out if there is an error set -e # Define a cleanup function. We'll set a trap below, just before we start to # do actual work. cleanupOnErrorExit () { for link in $buildtoolsLinks; do echo Trap: removing $link rm -f $link done cd $startDir } # Note that vanilla sh doesn't like negative exit values. # Determine the location of run_autotools. If there are no '/' chars in # the command name, we're running in the current directory (almost certainly # not what's wanted). Otherwise, strip the command name, leaving the prefix. # Convert the prefix to an absolute path, if needed, and clean it up, removing # `XXX/..', '/./', '//' sequences. startDir=`pwd` if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then runautotoolDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else runautotoolDir='.' fi if expr "$runautotoolDir" : '/.*' >/dev/null 2>&1 ; then : else runautotoolDir=$startDir/$runautotoolDir fi while expr "$runautotoolDir" : '.*/\.\./.*' >/dev/null 2>&1 ; do runautotoolDir=`echo $runautotoolDir | sed -e 's,/[^/][^/]*/\.\./,/,'` done runautotoolDir=`echo $runautotoolDir | sed -e 's,/\./,/,g' -e 's,//,/,g'` # Make sure we're using the correct versions of the autotools. Failure to # satisfy this requirement is a fatal error. ver_autoconf='2.59' ver_automake='1.9.6' ver_libtool='1.5.22' EGREP='grep -E' # Check if the correct version of the autotools is used if test x$AUTOTOOLS_DIR = x; then AUTOTOOLS_DIR=$HOME fi grep_version=`echo $ver_autoconf | sed -e 's/\\./\\\\\\./g'` if autoconf --version > confauto.out 2>&1 ; then : ; else echo "autoconf $ver_autoconf not available" rm -f confauto.out exit 2 fi if $EGREP $grep_version confauto.out >/dev/null 2>&1; then :; else echo You are not using the correct version of autoconf rm -f confauto.out exit 2 fi rm -f confauto.out autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test $autoconf_dir = `cd $AUTOTOOLS_DIR/bin; pwd`; then :; else echo autoconf is not picked up from the correct location exit 2 fi grep_version=`echo $ver_automake | sed -e 's/\\./\\\\\\./g'` if automake --version > confauto.out 2>&1 ; then : ; else echo "automake $ver_automake not available" rm -f confauto.out exit 2 fi if $EGREP $grep_version confauto.out >/dev/null 2>&1; then :; else echo You are not using the correct version of automake rm -f confauto.out exit 2 fi rm -f confauto.out autoconf_dir=`which automake | sed -e 's=/automake=='` autoconf_dir=`cd $autoconf_dir; pwd` if test $autoconf_dir = `cd $AUTOTOOLS_DIR/bin; pwd`; then :; else echo automake is not picked up from the correct location exit 2 fi # Failure to find the correct version of libtool isn't fatal here, but # the user should be warned. grep_version=`echo $ver_libtool | sed -e 's/\\./\\\\\\./g'` ltfile=$AUTOTOOLS_DIR/share/libtool/ltmain.sh if test -r $ltfile; then :; else echo WARNING: Cannot find libtool shell $ltfile fi if $EGREP $grep_version $ltfile >/dev/null 2>&1; then :; else echo WARNING: You are not using the correct version of libtool fi # Set up to process parameters. No parameters is the default. printHelp=0 doRecurse=1 forceScripts=0 userSpecifiedDirs=0 dirsToProcess= # Process the parameters. A parameter without an opening `-' is assumed to be # a spec for a directory to be processed. while test $# -gt 0 && test $printHelp = 0 ; do case "$1" in -h* | --h* ) printHelp=1 ;; -nr* | --no-recursion ) doRecurse=0 ;; -i | --independent ) forceScripts=1 doRecurse=0 ;; -* ) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 ;; * ) dirsToProcess="$dirsToProcess $1" userSpecifiedDirs=1 ;; esac shift done # Help? if test $printHelp = 1 ; then cat </dev/null 2>&1 ; then dirs="$dirs $dir" else echo " Skipping foreign configure.ac in $dir." fi done # Now compare against the skip entries in COIN_SKIP_PROJECTS. To match the # entries we just collected, add `./' to the front of each skip entry. candDirs=$dirs if test x${COIN_SKIP_PROJECTS+set} = xset ; then dirs= for dir in $COIN_SKIP_PROJECTS ; do skip_dirs="$skip_dirs ./$dir" done for dir in $candDirs ; do skip=0 for skipdir in $skip_dirs ; do if test $dir = $skipdir ; then skip=1 break fi done if test $skip = 0 ; then dirs="$dirs $dir" else echo " Skipping $dir listed in COIN_SKIP_PROJECTS." fi done fi fi # Set a trap so that we'll clean up any links on exit, for whatever reason. # Note that this executes on normal exit, too, so don't do anything rash. topLink= subLink= trap 'exit_status=$? cleanupOnErrorExit exit $exit_status' 0 # And now the main event. Process each directory. echo "Running autotools in $dirs" autotoolsFiles="config.guess config.sub depcomp install-sh ltmain.sh missing" m4Files="$AUTOTOOLS_DIR/share/aclocal/libtool.m4" buildtoolsLinks= for dir in $dirs; do if test -r $dir/configure.ac; then cd $dir echo "Processing $dir ..." # Do we need a BuildTools subdirectory here? The criteria is that install-sh # already exists, or Makefile.am (which may include Makemain.inc), or we're # forcing installation of the configure scripts. Assuming we need BuildTools, # what BuildTools should we use? If a BuildTools is already present, that's # it. Otherwise, assume that runautotooldDir is BuildTools. Allow that the # user may have linked to a BuildTools. needScripts=0 if test -f install-sh || test $forceScripts = 1 ; then needScripts=1 fi if test -f Makefile.am || test $needScripts = 1 ; then if test -d BuildTools || test -L BuildTools ; then createLink=0 toolsDir=`pwd`/BuildTools else createLink=1 toolsDir=$runautotoolDir fi echo " BuildTools directory: $toolsDir" # Test to be sure that run_autotools is coming from the BuildTools directory. if test $createLink = 0 && test "$toolsDir" != "$runautotoolDir" ; then echo "WARNING: using run_autotools from $runautotoolDir" echo " but BuildTools is $toolsDir." echo " Consider carefully if this is what you wanted to do." fi # coin.m4 should live in the same directory; failure is fatal. if test ! -r $toolsDir/coin.m4 ; then echo "Cannot find Coin autotools macro file $toolsDir/coin.m4." echo "It should be in the BuildTools directory." exit 1 fi # Install a link, if needed. if test $createLink = 1 ; then ln -s $toolsDir BuildTools buildtoolsLinks="$buildtoolsLinks `pwd`/BuildTools" echo " creating temporary link for ./BuildTools -> $toolsDir" fi # And refresh the autotools scripts, if needed. if test $needScripts = 1 ; then echo " refreshing autotools scripts in this directory." for file in $autotoolsFiles ; do cp BuildTools/$file . done fi fi # Get on with running the autotools. echo " creating acinclude.m4 in $dir" cat $m4Files $toolsDir/coin.m4 > acinclude.m4 echo " running aclocal in $dir" if test -d m4; then aclocal -I m4 || exit 1 else aclocal || exit 1 fi if grep AC_CONFIG_HEADER configure.ac >/dev/null 2>&1; then echo " running autoheader in $dir" autoheader || exit 1 fi echo " running automake in $dir" automake || exit 1 echo " running autoconf in $dir" autoconf || exit 1 cd $startDir else # Serious confusion! Should not reach here. echo "*** No configure.ac file in $dir - SKIPPING! ***" fi done # Remove the links. Yeah, the trap will do this, but it never hurts to clean # up properly. if test -n "$buildtoolsLinks" ; then echo "Removing temporary links to BuildTools." for link in $buildtoolsLinks ; do # echo " removing temporary link for BuildTools: $link" rm $link done buildtoolsLinks= fi exit Ipopt-3.11.4/BuildTools/prepare_new_stable0000755000076600007660000005270012213122535017220 0ustar coincoin#!/bin/sh # Copyright (C) 2007 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id$ # # Adapted from prepare_new_release by Lou Hafer, SFU, 100507. #set -x -v set -e # Know thy self. If there are no '/' chars in the command name, we're running # in the current directory. Otherwise, strip the command name, leaving the # prefix. Coin-functions is expected to live in the same directory. if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else cmdDir='.' fi cmdDir=`cd $cmdDir ; pwd` if test -r $cmdDir/coin-functions ; then . $cmdDir/coin-functions else echo "Cannot find utility functions file coin-functions; exiting." fi #################### end of function definitions ########################## # Note that plain sh does not accept negative exit values exitValue=0 # Specify the COIN URL base for convenience. coinURL="https://projects.coin-or.org/svn" # Begin parameter processing. printHelp=0 ignoreBuildToolsMismatch=no mismatchBTExternals= bumpMajor=0 suppressCheckout=0 # srcURL will be the parent for the stable we are building. We'll need to be # able to distinguish ThirdParty and Data builds, and BuildTools itself; they # require special handling. cmdBTURL points to a BuildTools source and is # required when srcURL specifies a ThirdParty or Data project --- we'll need to # assemble a temporary package while creating the stable candidate. srcURL= isThirdParty=no isData=no isBuildTools=no cmdBTURL= # trunkExternals specifies externals for which we want to do simultaneous # creation of stable branches. We will use the trunk as the external while # preparing and testing the stable candidate, changing the Dependencies file # to specify a (nonexistent) stable branch of the external at the last moment. trunkExternals= # exciseExternals specifies externals that should be removed when creating the # new stable branch. exciseExternals= # We need at least one parameter. if test "$#" -eq 0; then printHelp=1 else # Process the parameters. A parameter without an opening `-' is assumed to be # the spec for the source branch. while test $# -gt 0 && test $exitValue = 0 && test $printHelp = 0 ; do case "$1" in -h* | --h*) printHelp=1 ;; -i* | --i*) if expr "$1" : '.*-i.*=.*' 2>&1 >/dev/null ; then mismatchBTExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift mismatchBTExternals=$1 fi if test "x$mismatchBTExternals" = "xall" ; then ignoreBuildToolsMismatch=all else ignoreBuildToolsMismatch=partial fi ;; -m* | --m*) bumpMajor=1 ;; -p* | --p*) suppressCheckout=1 ;; -t* | --t*) if expr "$1" : '.*-t.*=.*' 2>&1 >/dev/null ; then trunkExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift trunkExternals=$1 fi ;; -x* | --x*) if expr "$1" : '.*-x.*=.*' 2>&1 >/dev/null ; then exciseExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift exciseExternals=$1 fi ;; -b* | --b*) if expr "$1" : '.*-b.*=.*' 2>&1 >/dev/null ; then cmdBTURL=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift cmdBTURL=$1 fi if expr "$cmdBTURL" : '.*BuildTools.*' 2>&1 >/dev/null ; then case $cmdBTURL in http*) ;; *) cmdBTURL=${coinURL}/$cmdBTURL ;; esac else echo '' echo "URL $cmdBTURL does not point to BuildTools." echo '' printHelp=1 exitValue=3 fi ;; -*) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 exitValue=1 ;; *) srcURL=$1 case $srcURL in http* ) ;; BuildTools/ThirdParty/* ) srcURL=${coinURL}/$srcURL ;; ThirdParty/* ) srcURL=${coinURL}/BuildTools/$srcURL ;; * ) srcURL=${coinURL}/$srcURL ;; esac ;; esac shift done # Consistency check: Make sure that the source URL exists. Note that it's not # possible to specify a Data URL without including trunk/stable/release in the # URL. For others, helpfully append `trunk'. srcURL=`echo $srcURL | sed -e 's/\/$//'` urlType=`extractTypeFromURL "$srcURL"` if test $printHelp = 0 && test $exitValue = 0 ; then if svn list $srcURL 2>&1 >/dev/null ; then : else echo "Source URL $srcURL does not seem to exist." printHelp=1 exitValue=5 fi if test "$urlType" = invalid ; then srcURL=$srcURL/trunk urlType=trunk fi fi # Just what are we building? Order is important; BuildTools without ThirdParty # means we're actually doing a BuildTools stable. if test $printHelp = 0 && test $exitValue = 0 ; then case $srcURL in *ThirdParty* ) isThirdParty=yes ;; *BuildTools* ) isBuildTools=yes ;; *Data* ) isData=yes ;; *) ;; esac # If we're building a ThirdParty or Data release, we need a BuildTools URL. if test $isThirdParty = yes || test $isData = yes ; then if test -z "$cmdBTURL" ; then cmdBTURL=`bestRelease $coinURL/BuildTools -1 -1` echo "A BuildTools URL is required for Data or ThirdParty projects." echo "Using $cmdBTURL; override with -b" else if svn list $cmdBTURL 2>&1 >/dev/null ; then : else echo "BuildTools URL $cmdBTURL does not seem to exist." printHelp=1 exitValue=6 fi fi fi fi fi # if "$#" .eq 0 if test $printHelp = 1 ; then cat < This script will create a new stable branch from the head of the specified URL. Typically this will be the trunk, but it can be an existing stable branch. You can specify the entire URL, or just enter what comes after "https://projects.coin-or.org/svn". A typical example is prepare_new_stable Ipopt/trunk Options: -b URL for BuildTools; required to generate a release for a ThirdParty or Data project. -i Ignore BuildTools version mismatches for the listed externals (comma-separated list of project names, e.g., -i Osi,Cbc). '-i all' ignores all mismatches. -p Suppress checkout (useful for testing) -m Bump the major version number. -t Suppress conversion from trunk to stable for the listed externals (comma-separated list of project names). -x Remove the listed projects from the list of externals (comma-separated list of project names). This script will do the following: - Set the new stable version number as the next minor version number in the current major version number. Use the -m flag to bump the major version number. - Convert externals from trunk to the top stable branch. Externals which are currently stable or release are left untouched. Use -t to suppress the change from trunk to stable. Set_externals is then invoked to set release externals where available. - Check out externals. The BuildTools version used by externals (if any) is checked, and the script issues a warning if it doesn't match the version used by the source URL. - Run the scripts to download any ThirdParty code. - Run run_autotools to rebuild configure and make files. - Run configure, make, and make test - Tweak the externals to upgrade trunk (-t) dependencies to stable (you won't get to release in this case). If there is any error during these tasks the script will stop and you should examine the output. If the script completes without error, examine the output, particularly the output of the unit test ('make test') and the set of externals specified in the Dependencies file. Whether you start with Externals or Dependencies, the stable will have a proper Dependencies. Externals will be unmodified. This script does not make any changes to the repository. If you want to commit the new stable branch, run the "commit_new_stable" script, as described at the end of the output. EOF fi if test $exitValue != 0 || test $printHelp = 1 ; then exit $exitValue fi # End of parameter parsing. We have a source URL to work with. Tell the # user what we've seen. srcURL=`echo $srcURL | sed -e 's|/$||'` srcProj=`extractProjFromURL $srcURL` echo "Source URL..........: $srcURL" echo "Base project........: $srcProj" if test $isThirdParty = yes || test $isData = yes ; then echo "BuildTools URL......: $cmdBTURL" fi # Figure out the URL of the new stable branch. Consider that there may not be # any existing stable branches. topStableURL=`bestStable $srcURL -1` echo "Top stable URL......: ${topStableURL:-none}" if test -z "$topStableURL" ; then majVer=0 minVer=1 case "$srcURL" in */Data/* ) newStableURL=$coinURL/Data/stable/$majVer.$minVer/$srcProj ;; */ThirdParty/* ) newStableURL=$coinURL/BuildTools/ThirdParty/$srcProj/stable/$majVer.$minVer ;; * ) newStableURL=$coinURL/$srcProj/stable/$majVer.$minVer ;; esac else majVer=`extractMajorFromURL $topStableURL` if test $bumpMajor = 1 ; then majVer=`expr $majVer + 1` minVer=0 else minVer=`extractMinorFromURL $topStableURL` minVer=`expr $minVer + 1` fi newStableURL=`replaceVersionInURL $topStableURL $majVer $minVer` fi echo "New stable URL......: $newStableURL" newVersion=${majVer}.${minVer} # Construct a build directory name. topProjName=`echo $srcProj | sed -e 's|.*/\([^/]*\)$|\1|'` topBuildDir=${topProjName}-${newVersion} echo "Build directory.....: $topBuildDir" # Now decide where to check out code. if test $isThirdParty = yes; then coDir=$topBuildDir/Thirdparty/$srcProj elif test $isData = yes; then coDir=$topBuildDir/Data/$srcProj else coDir=$topBuildDir fi echo "Checkout directory..: $coDir" echo '' echo "===> Checking out source $srcURL without externals ..." echo '' cmd="svn co --ignore-externals $srcURL $coDir" if test $suppressCheckout = 1 ; then echo "Pretending to do: $cmd" else rm -rf $topBuildDir echo $cmd eval $cmd fi if test $isThirdParty = yes || test $isData = yes; then echo '' echo '===> Checking out BuildTools (Data or ThirdParty) ...' echo '' cmd="svn co $cmdBTURL $topBuildDir/BuildTools" if test $suppressCheckout = 1 ; then echo "Pretending to do: $cmd" else echo $cmd eval $cmd fi fi startDir=`pwd` coDir=`cd $coDir; pwd` topBuildDir=`cd $topBuildDir; pwd` cd $coDir # Find configure.ac files for the package and project and update the version. # We have no externals at this point, and no third-party code, so there will # be two files for a standard project, one for a ThirdParty or Data project. echo '' if test -d $topProjName ; then bak_files=`find $topProjName -name 'configure.ac'` fi if test -e configure.ac ; then bak_files="$bak_files configure.ac" fi echo "===> Creating backup (.bak) for configure.ac files..." for i in $bak_files; do cp $i $i.bak done # Take the attitude that [] around parameters in AC_INIT is optional, # it's the commas that count. This does make for a surpassing ugly regular # expression. A comma in the version string will cause a spectacular failure. # In AC_COIN_PROJECTDIR_INIT, take the attitude that the existing parameters # don't matter, we know what the release parameters should be. echo '' echo "===> Updating version numbers in configure.ac files" for i in $bak_files; do sed -e "s|AC_INIT\(.*\),\(\[*\)[^],]*\(\]*\),\(.*\)|AC_INIT\1,\2$newVersion\3,\4|" $i > bla mv bla $i svn diff $i done # Find config_proj_default.h. If there's a definition for PROJ_VERSION, adjust it and # add config_proj_default.h.bak to the list of files to be restored. topProjNameUC=`echo $topProjName | tr '[a-z]' '[A-Z]'` if test -d $topProjName ; then configFileLoc=`find $topProjName -name .svn -prune -o -name 'config_*_default.h' -print` fi echo "config File Loc: $configFileLoc" if test -n "$configFileLoc" ; then versionSym=${topProjNameUC}_VERSION echo '' echo "===> Updating $versionSym in $configFileLoc (if present)" echo '' mv $configFileLoc $configFileLoc.bak bak_files="$bak_files $configFileLoc" sed -e "s/# *define $versionSym .*\$/#define $versionSym \"$newVersion\"/" \ -e "s/# *define ${versionSym}_MAJOR .*\$/#define ${versionSym}_MAJOR $majVer/" \ -e "s/# *define ${versionSym}_MINOR .*\$/#define ${versionSym}_MINOR $minVer/" \ -e "s/# *define ${versionSym}_RELEASE .*\$/#define ${versionSym}_RELEASE 9999/" \ <$configFileLoc.bak >$configFileLoc svn diff $configFileLoc fi # Now generate a proper Dependencies file for the stable branch. References to # trunk will be converted to references to stable branches unless the reference # is to a project in the trunkExternals list (in which case it'll be converted # at the very end). References to releases are not changed. Each line in a # Dependencies file has the format . Normally, each entry # should be a stable branch. srcDepFile= for file in Dependencies Externals ; do if test -r $file ; then srcDepFile=$file break fi done if test -n "$srcDepFile" ; then # Save the externals property of the source, so we can just restore it after # the commit. Also save srcDepFile, because we may well modify it for the # stable branch, converting trunk externals to stable externals. svn propget svn:externals . > .Externals.original bak_files="$bak_files $srcDepFile" cp $srcDepFile $srcDepFile.bak echo '' echo "===> Checking externals in $srcDepFile ..." echo '' # We've just checked this out, no sense going back to the server for the # BuildTools version. Because of the intermediate variable, newline has # become space. srcExternals=`svn propget svn:externals .` srcBTURL=`echo $srcExternals | \ sed -n -e 's/.*BuildTools *https:\([^ ]*\) .*/https:\1/p'` if test -z "$srcBTURL" ; then srcBTURL="none" fi echo "Source BuildTools...: $srcBTURL" rm -f Dependencies ext_name= ext_url= buildtoolsMismatch=0 for i in `cat $srcDepFile.bak` ; do if test "$ext_name" = "" ; then ext_name=$i else ext_url=$i if expr "$ext_name" : '#.*' 2>&1 >/dev/null ; then echo " $ext_name $ext_url ==> skipped" ext_name= continue fi ext_urltype=`extractTypeFromURL $ext_url` ext_proj=`extractProjFromURL $ext_url` # See if this external should be dropped. if expr "$exciseExternals" : '.*'$ext_proj'.*' 2>&1 > /dev/null ; then echo " $ext_name $ext_url ==> excised" ext_name= continue fi ext_isNormalURL=`isNormalURL $ext_url` # Convert a trunk URL to stable unless it's listed in trunkExternals. if test $ext_urltype = trunk ; then if expr "$trunkExternals" : '.*'$ext_proj'.*' 2>&1 >/dev/null ; then echo " $ext_name $ext_url ==> unchanged" else ext_oldurl=$ext_url ext_url=`bestStable $ext_url -1` # Normal (not BuildTools/ThirdParty/Data) need a directory name, # and it may differ from the project name. Carefully preserve it. if test $ext_isNormalURL = yes ; then ext_tail=`extractTailFromExt $ext_oldurl` ext_url=${ext_url}${ext_tail} fi echo " $ext_name $ext_oldurl ==> $ext_url" fi else echo " $ext_name $ext_url ==> unchanged" fi # Get the BuildTools URL for the external and compare to the BuildTools URL # for the source, assuming we have one and the external has one. if test $ext_isNormalURL = yes && test $ext_proj != BuildTools && test $srcBTURL != none ; then ext_url_notail=`echo $ext_url | sed -e 's,/[^/]*$,,'` extBTURL=`svn propget svn:externals $ext_url_notail` extBTURL=`echo $extBTURL | \ sed -n -e 's/^BuildTools *https:\([^ ]*\) *$/https:\1/p'` if test -n "$extBTURL" ; then testResult=`compareURLVersions "$srcBTURL" "$extBTURL"` if test $testResult = no ; then if test $ignoreBuildToolsMismatch = all || \ expr "$mismatchBTExternals" : '.*'$ext_proj'.*' 2>&1 >/dev/null ; then echo " WARNING: BuildTools mismatch: $ext_url_notail uses $extBTURL" else buildtoolsMismatch=1 echo " ERROR: BuildTools mismatch: $ext_url_notail uses $extBTURL" fi fi fi fi echo "$ext_name $ext_url" >>Dependencies ext_name= echo '' fi done # If we have a BuildTools mismatch, exit. if test $buildtoolsMismatch = 1 ; then echo "Exiting due to BuildTools mismatches; use -i to ignore." exit 2 fi $cmdDir/set_externals Dependencies # Try three times to check out externals before conceding defeat. echo '' echo '===> Checking out externals ...' echo '' svn update || { echo "Retry 1 ... " ; svn update ; } || { echo "Retry 2 ... " ; svn update ; } || { echo "Checkout of externals failed. Aborting." ; exit 3 ; } # Run any scripts to acquire ThirdParty code. if test -d ThirdParty ; then echo '' echo '===> Downloading ThirdParty code ...' echo '' ext_name= ext_url= for i in `svn propget svn:externals .` ; do if test -z "$ext_name" ; then ext_name=$i else ext_url=$i if expr "$ext_name" : 'ThirdParty/.*' 2>&1 >/dev/null ; then cd $ext_name ext_proj=`extractProjFromURL $ext_url` getScript=get.$ext_proj if test -x "$getScript" ; then ./$getScript -patch fi cd $coDir fi ext_name= fi done fi fi # Done processing externals. If this is a ThirdParty project, we still have # to run the get script. if test $isThirdParty = yes; then if test -x get.$srcProj ; then echo '' echo '===> Downloading third party code...' echo '' ./get.$srcProj fi fi # Run the autotools to update configure and make files echo '' echo '===> Running BuildTools/run_autotools ...' echo '' if test $isThirdParty = yes || test $isData = yes ; then cd ../.. ./BuildTools/run_autotools cd "$coDir" else ./BuildTools/run_autotools fi # Let's see if it works. We only run tests for non-ThirdParty, non-Data. DO NOT # turn on --enable-maintainer-mode in the initial configure command. At the # least, it's not needed. At the worst, as of 100526, it'll undo all the # careful work above to set externals. if test $isThirdParty != yes && test $isData != yes; then ( set -e echo '' echo '===> Creating build directory and running the configuration script...' echo '' mkdir build cd build cmd="$coDir/configure -C" echo $cmd eval $cmd echo '' echo '===> Compiling code...' echo '' cmd='make install' echo $cmd eval $cmd echo '' echo '===> Running the unit test...' echo '' echo '*******************************************************************************' echo '*** ***' echo '*** BEGIN OUTPUT OF MAKE TEST ***' echo '*** ***' echo '*******************************************************************************' echo '' cmd='make test' echo $cmd eval $cmd echo '' echo '*******************************************************************************' echo '*** ***' echo '*** END OUTPUT OF MAKE TEST ***' echo '*** ***' echo '*******************************************************************************' ) if test $? != 0; then echo '' echo 'Error during build or test' echo '' exit 3 fi fi # No fatal errors. Declare victory. echo '' echo '===> ALL TESTS PASSED' if test $isThirdParty != yes && test $isData != yes && test $isBuildTools != yes ; then echo '' echo 'Please review the output above, particularly the one of make test' fi echo '' # Do we need to plug in nonexistent stable branches for circular dependencies # tested with the trunk? If so, generate a new Dependencies. This is the only # reason trunk references should appear in the externals for a stable branch, # so we don't need to check further before removing them. if test -n "$trunkExternals" ; then echo '' echo "===> Grooming externals to remove trunk references used for testing." echo '' mv Dependencies Dependencies.temp.$$ ext_name= ext_url= for i in `cat Dependencies.temp.$$`; do if test "$ext_name" = ""; then ext_name="$i" else ext_url=$i ext_urltype=`extractTypeFromURL $ext_url` ext_proj=`extractProjFromURL $ext_url` if test $ext_urltype = trunk ; then ext_oldurl=$ext_url ext_url=`bestStable $ext_url -1` ext_majVer=`extractMajorFromURL $ext_url` ext_minVer=`extractMinorFromURL $ext_url` ext_minVer=`expr $ext_minVer + 1` ext_url=`replaceVersionInURL $ext_url $ext_majVer $ext_minVer` ext_isNormal=`isNormalURL $ext_url` if test $ext_isNormal = yes ; then ext_url="${ext_url}${ext_proj}" fi echo " $ext_name $ext_oldurl ==> $ext_url" fi echo "$ext_name $ext_url" >>Dependencies ext_name= fi done rm -f Dependencies.temp.$$ $cmdDir/set_externals Dependencies fi if test -r Dependencies ; then echo '' echo 'Also, please confirm the Externals are correct:' svn propget svn:externals fi echo '' echo 'After reviewing the output above, you can create a new stable by going into' echo 'the directory' echo '' echo " $startDir" echo '' echo "and run the commit_new_stable script" cd $topBuildDir # Record information for the commit_new_stable script. cat >.new_stable_data <&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/BuildTools/headers/0000755000076600007660000000000012214537467015057 5ustar coincoinIpopt-3.11.4/BuildTools/headers/configall_system.h0000644000076600007660000000072411063737131020564 0ustar coincoin/* * This header file is included by the *Config.h in the individual * COIN packages when the code is compiled in a setting that doesn't * use the configure script (i.e., HAVE_CONFIG_H is not defined). * This header file includes the system and compile dependent header * file defining macros that depend on what compiler is used. */ #ifdef _MSC_VER # include "configall_system_msc.h" #else # error "Trying to use configall_system for unknown compiler." #endif Ipopt-3.11.4/BuildTools/headers/configall_system_msc.h0000644000076600007660000001017311654311600021420 0ustar coincoin/* This is the header file for the Microsoft compiler, defining all * system and compiler dependent configuration macros */ /* Define to dummy `main' function (if any) required to link to the Fortran libraries. */ /* #undef F77_DUMMY_MAIN */ #ifndef COIN_USE_F2C /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ # define F77_FUNC(name,NAME) NAME /* As F77_FUNC, but for C identifiers containing underscores. */ # define F77_FUNC_(name,NAME) NAME #else /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ # define F77_FUNC(name,NAME) name ## _ /* As F77_FUNC, but for C identifiers containing underscores. */ # define F77_FUNC_(name,NAME) name ## __ #endif /* Define if F77 and FC dummy `main' functions are identical. */ /* #undef FC_DUMMY_MAIN_EQ_F77 */ /* Define to 1 if you have the header file. */ /* #undef HAVE_ASSERT_H */ /* Define to 1 if you have the header file. */ #define HAVE_CASSERT 1 /* Define to 1 if you have the header file. */ #define HAVE_CCTYPE 1 /* Define to 1 if you have the header file. */ #define HAVE_CFLOAT 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_CIEEEFP */ /* Define to 1 if you have the header file. */ #define HAVE_CMATH 1 /* Define to 1 if you have the header file. */ #define HAVE_CSTDARG 1 /* Define to 1 if you have the header file. */ #define HAVE_CSTDIO 1 /* Define to 1 if you have the header file. */ #define HAVE_CSTDLIB 1 /* Define to 1 if you have the header file. */ #define HAVE_CSTRING 1 /* Define to 1 if you have the header file. */ #define HAVE_CTIME 1 /* Define to 1 if you have the header file. */ #define HAVE_CSTDDEF 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_CTYPE_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_DLFCN_H */ /* Define to 1 if function drand48 is available */ /* #undef HAVE_DRAND48 */ /* Define to 1 if you have the header file. */ /* #undef HAVE_FLOAT_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_IEEEFP_H */ /* Define to 1 if you have the header file. */ /* #define HAVE_INTTYPES_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_MATH_H */ /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if function rand is available */ #define HAVE_RAND 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_STDARG_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_STDINT_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_STDIO_H */ /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if function std::rand is available */ #define HAVE_STD__RAND 1 /* Define to 1 if you have the header file. */ /* #define HAVE_STRINGS_H */ /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_TIME_H */ /* Define to 1 if you have the header file. */ /* #define HAVE_UNISTD_H */ /* Define to 1 if va_copy is avaliable */ /* #undef HAVE_VA_COPY */ /* Define to 1 if you have the header file. */ /* #undef HAVE_WINDOWS_H */ /* Define to 1 if you have the `_snprintf' function. */ #define HAVE__SNPRINTF 1 /* The size of a `double', as computed by sizeof. */ #define SIZEOF_DOUBLE 8 /* The size of a `int', as computed by sizeof. */ #define SIZEOF_INT 4 /* The size of a `int *', as computed by sizeof. */ #define SIZEOF_INT_P 4 /* The size of a `long', as computed by sizeof. */ #define SIZEOF_LONG 4 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 Ipopt-3.11.4/BuildTools/depcomp0000755000076600007660000003710010430173037015005 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/BuildTools/MSVisualStudio/0000755000076600007660000000000012214537466016336 5ustar coincoinIpopt-3.11.4/BuildTools/MSVisualStudio/v10/0000755000076600007660000000000012214537466016744 5ustar coincoinIpopt-3.11.4/BuildTools/MSVisualStudio/v10/Release.props0000755000076600007660000000061012052443620021375 0ustar coincoin true Ipopt-3.11.4/BuildTools/MSVisualStudio/v10/Debug.props0000755000076600007660000000122012154626433021051 0ustar coincoin MultiThreadedDebugDLL true EnableFastChecks Disabled true Ipopt-3.11.4/BuildTools/MSVisualStudio/v10/Common.props0000755000076600007660000000135412204424023021246 0ustar coincoin $(SolutionDir)$(Platform)-$(PlatformToolset)-$(Configuration)\ $(Platform)-$(PlatformToolset)-$(Configuration)\ Level3 true $(OutDir);%(AdditionalLibraryDirectories) Ipopt-3.11.4/BuildTools/MSVisualStudio/v9/0000755000076600007660000000000012214537466016674 5ustar coincoinIpopt-3.11.4/BuildTools/MSVisualStudio/v9/BuildTools.vcproj0000644000076600007660000000534111572120430022165 0ustar coincoin Ipopt-3.11.4/BuildTools/ltmain.sh0000755000076600007660000057753010430173037015273 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/BuildTools/prepare_new_release0000755000076600007660000006217312213122535017373 0ustar coincoin#!/bin/sh # Copyright (C) 2007 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id: prepare_new_release 2866 2013-09-08 16:27:09Z stefan $ # # Author: Andreas Waechter IBM 2007-06-21 # Modified: Lou Hafer SFU 2008-01-20 # Accommodate simultaneous creation of releases with circular # dependencies. # Modified: Ted Ralphs Lehigh University 2009-07-10 # Set libtool version info automatically # Modified: Lou Hafer SFU 2010-06-02 # Adapt to new script architecture pioneered in *_new_stable; major # rewrite. # Modified: Lou Hafer SFU 2011-03-14 # Change handling of externals so the svn:externals is left pointing to # releases but Dependencies is left pointing to stable branches. # Modified: Stefan Vigerske HU 2011-07-16 # Do not attempt to configure/make/make test ThirdParty projects that # do not have a get-script, since this fails in most cases (which is # the expected behaviour). #set -x -v set -e # You can think of this script as having two sections: parameter parsing and # validation, followed by generation of the release candidate. See the help # message for a good description of the actions taken to generate the release # candidate. # Know thy self. If there are no '/' chars in the command name, we're running # in the currrent directory. Otherwise, strip the command name, leaving the # prefix. Coin-functions is expected to live in the same directory. if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else cmdDir='.' fi cmdDir=`cd $cmdDir ; pwd` if test -r $cmdDir/coin-functions ; then . $cmdDir/coin-functions else echo "Cannot find utility functions file coin-functions; exiting." fi # Note that plain sh does not accept negative exit values exitValue=0 # Specify the COIN URL base for convenience. coinURL="https://projects.coin-or.org/svn" # Begin parameter processing. printHelp=0 ignoreBuildToolsMismatch=no mismatchBTExternals= suppressCheckout=0 # stableURL will be the stable branch that is the parent for the release we # are building. We'll need to be able to distinguish ThirdParty and Data # builds, and BuildTools itself; they require special handling. If a project # is not BuildTools, ThirdParty, or Data, it's `normal'. # SV: I think also ThirdParty projects should be treated as 'normal', so I changed that. stableURL= isThirdParty=no isData=no isBuildTools=no isNormal=yes # cmdBTURL is required when stableURL specifies a ThirdParty or Data # project --- we'll need to assemble a temporary package while creating the # release candidate. cmdBTURL= # stableExternals specifies externals for which we are doing simultaneous # releases. We will use the stable branch of the external while preparing # and testing this release candidate, changing svn:externals to specify a # (nonexistent) release of the external at the last moment. stableExternals= # exciseExternals specifies externals that should be removed when creating the # new release. exciseExternals= # We need at least one parameter. if test "$#" -eq 0; then printHelp=1 else # Process the parameters. A parameter without an opening `-' is assumed to be # the spec for the stable branch. while test $# -gt 0 && test $exitValue = 0 && test $printHelp = 0 ; do case "$1" in -h* | --h*) printHelp=1 ;; -i* | --i*) if expr "$1" : '.*-i.*=.*' 2>&1 >/dev/null ; then mismatchBTExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift mismatchBTExternals=$1 fi if test "x$mismatchBTExternals" = "xall" ; then ignoreBuildToolsMismatch=all else ignoreBuildToolsMismatch=partial fi ;; -p* | --p*) suppressCheckout=1 ;; -s* | --s*) if expr "$1" : '.*-s.*=.*' 2>&1 >/dev/null ; then stableExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift stableExternals=$1 fi ;; -x* | --x*) if expr "$1" : '.*-x.*=.*' 2>&1 >/dev/null ; then exciseExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift exciseExternals=$1 fi ;; -b* | --b*) if expr "$1" : '.*-b.*=.*' 2>&1 >/dev/null ; then cmdBTURL=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift cmdBTURL=$1 fi if expr "$cmdBTURL" : '.*BuildTools.*' 2>&1 >/dev/null ; then case $cmdBTURL in http*) ;; *) cmdBTURL=${coinURL}/$cmdBTURL ;; esac else echo '' echo "URL $cmdBTURL does not point to BuildTools." echo '' printHelp=1 exitValue=3 fi ;; -*) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 exitValue=1 ;; *) stableURL=$1 if expr "$stableURL" : '.*/stable/.*' 2>&1 >/dev/null ; then case $stableURL in http*) ;; BuildTools/ThirdParty/* ) stableURL=${coinURL}/$stableURL ;; ThirdParty/* ) stableURL=${coinURL}/BuildTools/$stableURL ;; CoinAll/* ) stableURL=${coinURL}/CoinBinary/$stableURL ;; *) stableURL=${coinURL}/$stableURL ;; esac else echo '' echo "URL $stableURL does not specify a stable release." echo '' printHelp=1 exitValue=2 fi ;; esac shift done # Consistency checks: Make sure that the stable URL exists. If we're building # a ThirdParty or Data release, we need a BuildTools URL. if test $printHelp = 0 && test $exitValue = 0 ; then if svn list $stableURL 2>&1 >/dev/null ; then : else echo "Stable URL $stableURL does not seem to exist." printHelp=1 exitValue=5 fi fi if test $printHelp = 0 && test $exitValue = 0 ; then case $stableURL in *ThirdParty/* ) isThirdParty=yes ;; *Data/* ) isData=yes ;; *BuildTools/* ) isBuildTools=yes isNormal=no ;; *) ;; esac if test $isThirdParty = yes || test $isData = yes ; then if test -z $cmdBTURL ; then echo "You must provide a BuildTools URL to build a ThirdParty or Data project." printHelp=1 exitValue=4 else if svn list $cmdBTURL 2>&1 >/dev/null ; then : else echo "BuildTools URL $cmdBTURL does not seem to exist." printHelp=1 exitValue=6 fi fi fi fi fi # if "$#" .eq 0 if test $printHelp = 1 ; then cat < [options] COIN standard practice is to generate periodic releases by taking a snapshot of the stable branch of the project. You can use this script to prepare a new release based on the specified stable branch. specifies the stable branch of your project to be used to create the new release. You can specify the entire URL, or you just enter what comes after "https://projects.coin-or.org/svn". A typical example is prepare_new_release Ipopt/stable/3.3 Options: -b URL for BuildTools; required to generate a release for a ThirdParty or Data project. -i Ignore BuildTools version mismatches for the listed externals (comma-separated list of project names, e.g., -i Osi,Cbc). '-i all' ignores all mismatches. -p Suppress checkout (useful for testing) -s Suppress conversion from stable to release for the listed externals (comma-separated list of project names). -x Remove the listed projects from the list of externals (comma-separated list of project names). This script will do the following: - Automatically determine the next release number (X.Y.0 if this is the first release for stable/X.Y, otherwise one greater than any existing release) - Check out a clean copy of the specified stable branch, without externals - Make sure that the svn:externals property points to releases, with the exception of projects in the list specified with -s. - Create a new package configure.ac file with the release version number specified in the AC_INIT macro. - Use the "get.*" scripts to download any ThirdParty code. - Execute run_autotools to update configure, Makefile.in, etc., to reflect the most recent release of BuildTools. - Run the configure script, compile the code, and run the unit test. - Replace stable externals for projects specified with -s with the appropriate (yet to be committed) release. If there is any error during these tasks the script will stop and you should examine the output. If the script completes without error, examine the output, particularly the output of the unit test ('make test') and the set of externals specified in the Dependencies file. This script does not make any changes to the repository. If you want to commit the new release, run the "commit_new_release" script, as described at the end of the output. EOF fi if test $exitValue != 0 || test $printHelp = 1 ; then exit $exitValue fi # End of parameter parsing. We have a stable URL to work with. Tell the # user what we've seen. stableURL=`echo $stableURL | sed -e 's|/$||'` stableProj=`extractProjFromURL $stableURL` majVer=`extractMajorFromURL $stableURL` minVer=`extractMinorFromURL $stableURL` stableVer=$majVer.$minVer echo "Stable URL..........: $stableURL" echo "Stable project......: $stableProj" echo "Stable branch.......: $stableVer" if test -n "$stableExternals" ; then echo "Stable externals....: $stableExternals." fi # Find out the most recent release (if any) for the stable branch, then # construct the revision number of the new release. If there are existing # releases, it's a matter of bumping the revision number and inserting the # new revision in the URL. Otherwise, we know the new revision is 0 and we # can simply tweak the stable URL. releaseURL=`bestRelease $stableURL $majVer $minVer | sed -e 's|/$||'` if test -n "$releaseURL" ; then curRel=`extractReleaseFromURL $releaseURL` existingURL=$releaseURL newRel=`expr $curRel + 1` else curRel=-1 releaseURL=`echo $stableURL | sed -e s/stable/releases/` existingURL="none" newRel=0 fi newVer=$majVer.$minVer.$newRel releaseURL=`replaceVersionInURL $releaseURL $majVer $minVer $newRel` echo "Top release URL.....: $existingURL" echo "New release URL.....: $releaseURL" # Relevant only if we're building ThirdParty or Data if test $isThirdParty = yes || test $isData = yes ; then echo "BuildTools URL......: $cmdBTURL" fi # We need a libtool version number only for normal projects if test $isNormal = yes ; then newLTCurrent=`calcLibtoolCurrent $stableURL $majVer $minVer` newLTRevision=$newRel newLTAge=`calcLibtoolAge $stableURL $majVer $minVer` # expr returns with status 1 if the result of the calculation is 0 # this leads to exiting this script, which is somewhat unexpected if test "$newLTAge" = 1 ; then newLTAge=0 else newLTAge=`expr $newLTAge - 1` fi newLTVer=${newLTCurrent}:${newLTRevision}:${newLTAge} echo "Libtool version.....: $newLTVer" fi # Now decide where to build and check out code. If the stable project name # contains a '/', strip it out to make the build and checkout directories. topProjName=`echo $stableProj | sed -e 's|.*/\([^/]*\)$|\1|'` topBuildDir="${topProjName}-${newVer}" if test $isThirdParty = yes; then coDir=$topBuildDir/Thirdparty/$stableProj elif test $isData = yes; then coDir=$topBuildDir/Data/$stableProj else coDir=$topBuildDir fi echo "Build directory.....: $topBuildDir" echo "Checkout directory..: $coDir" # Check out the stable branch that'll be the base of the new release. No # externals at this point. Creating a release of a ThirdParty or Data project # requires a bit of work, as we need to assemble a temporary package with a # BuildTools external. echo '' echo "===> Checking out stable release $stableVer without externals..." echo '' rm -rf $topBuildDir cmd="svn co --ignore-externals $stableURL $coDir" if test $suppressCheckout = 1 ; then echo "Pretending to do: $cmd" else rm -rf $topBuildDir echo $cmd eval $cmd fi if test $isThirdParty = yes || test $isData = yes; then echo '' echo '===> Checking out BuildTools (Data or ThirdParty) ...' echo '' cmd="svn co $cmdBTURL $topBuildDir/BuildTools" if test $suppressCheckout = 1 ; then echo "Pretending to do: $cmd" else echo $cmd eval $cmd fi fi startDir=`pwd` coDir=`cd $coDir; pwd` topBuildDir=`cd $topBuildDir; pwd` cd $coDir # Find configure.ac files for the package and project and update the version. # We have no externals or third-party code at this point, so there will be # two files for a normal project, one for a ThirdParty or Data project, and # none for BuildTools. echo '' echo "===> Checking for configure.ac files ..." if test -d $topProjName ; then bak_files=`find $topProjName -name 'configure.ac'` fi if test -e configure.ac ; then bak_files="$bak_files configure.ac" fi if test -n "$bak_files" ; then for i in $bak_files; do cp $i $i.bak done # Take the attitude that [] around parameters in AC_INIT is optional, # it's the commas that count. This does make for a surpassing ugly regular # expression. A comma in the version string will cause a spectacular failure. # In AC_COIN_PROJECTDIR_INIT, take the attitude that there is one parameter # with the PMs choosen project name which is preserved and we only add a # libtool version number afterwards. echo '' echo "===> Updating version numbers in configure.ac files ..." for i in $bak_files; do sed -e "s|AC_INIT\(.*\),\(\[*\)[^],]*\(\]*\),\(.*\)|AC_INIT\1,\2$newVer\3,\4|" $i > bla mv bla $i sed -e "s|AC_COIN_PROJECTDIR_INIT(\(.*\))|AC_COIN_PROJECTDIR_INIT\(\1,$newLTCurrent:$newLTRevision:$newLTAge\)|" $i > bla mv bla $i svn diff $i done else echo " ... none to process." fi # Find config_proj_default.h. If there's a definition for PROJ_VERSION, adjust it and # add config_proj_default.h.bak to the list of files to be restored. topProjNameUC=`echo $topProjName | tr '[a-z]' '[A-Z]'` if test -d $topProjName ; then configFileLoc=`find $topProjName -name .svn -prune -o -name 'config_*_default.h' -print` fi if test -n "$configFileLoc" ; then versionSym=${topProjNameUC}_VERSION echo '' echo "===> Updating $versionSym in $configFileLoc (if present)" echo '' mv $configFileLoc $configFileLoc.bak bak_files="$bak_files $configFileLoc" sed -e "s/# *define $versionSym .*\$/#define $versionSym \"$newVer\"/" \ -e "s/# *define ${versionSym}_MAJOR .*\$/#define ${versionSym}_MAJOR $majVer/" \ -e "s/# *define ${versionSym}_MINOR .*\$/#define ${versionSym}_MINOR $minVer/" \ -e "s/# *define ${versionSym}_RELEASE .*\$/#define ${versionSym}_RELEASE $newRel/" \ <$configFileLoc.bak >$configFileLoc svn diff $configFileLoc fi # The Dependencies file in a stable branch should contain only stable # and release references (trunk is flagged as an error below). The overall # algorithm is to convert svn:externals to use releases but leave Dependencies # with stables. In practice, this is accomplished by backing up Dependencies, # using Dependencies to assemble and set svn:externals, and finally restoring # Dependencies from the backup after all else is done. # Look for a file specifying externals. Preferably Dependencies, but check for # Externals just in case this is an unconverted project. srcDepFile= for file in Dependencies Externals ; do if test -r $file ; then srcDepFile=$file break fi done # Now generate the proper externals for the release. Each line in a # Dependencies file has the format . Normally, each # should be a stable branch. References to stable branches will be # converted to references to releases unless the reference is to a project # in the stableExternals list (in which case it'll be converted at the very # end). References to releases are not changed. References to trunk are an # error. Failure to find a release for an external not in the stableExternals # list is an error. Save the existing externals and srcDepFile, as we'll # probably change both. if test -n "$srcDepFile" ; then svn propget svn:externals . > .Externals.original bak_files="$bak_files $srcDepFile" cp $srcDepFile $srcDepFile.bak echo '' echo "===> Checking externals in $srcDepFile ..." echo '' # Because we're working directly from command output, the regular expression # must check for lines. ourBTURL=`svn propget svn:externals . | \ sed -n -e 's/^BuildTools *https:\([^ ]*\)$/https:\1/p'` if test -z "$ourBTURL" ; then ourBTURL=none fi echo "Our BuildTools...: $ourBTURL" rm -f Dependencies ext_name= ext_url= buildtoolsMismatch=0 for i in `cat $srcDepFile.bak`; do if test "$ext_name" = ""; then ext_name="$i" else ext_url=$i if expr "$ext_name" : '#.*' 2>&1 >/dev/null ; then echo " $ext_name $ext_url ==> skipped" ext_name= continue fi ext_urltype=`extractTypeFromURL $ext_url` ext_proj=`extractProjFromURL $ext_url` # See if this external should be dropped. if expr "$exciseExternals" : '.*'$ext_proj'.*' 2>&1 > /dev/null ; then echo " $ext_name $ext_url ==> excised" ext_name= continue fi # External must be a stable or a release. if test $ext_urltype != stable && test $ext_urltype != release ; then echo '' echo "===> The external URL $ext_url is not a stable branch or release. Exiting." echo '' exit 2 fi ext_isNormal=`isNormalURL $ext_url` # Convert stable branches to releases unless listed in stableExternals. # Existing releases are unchanged. if test $ext_urltype = stable ; then if expr "$stableExternals" : '.*'"$ext_proj"'.*' 2>&1 >/dev/null ; then echo " $ext_name $ext_url unchanged" ext_rel_url=$ext_url else ext_majVer=`extractMajorFromURL $ext_url` ext_minVer=`extractMinorFromURL $ext_url` ext_rel_url=`bestRelease $ext_url $ext_majVer $ext_minVer` if test -z "$ext_rel_url" ; then echo '' echo "===> No release for $ext_url. Exiting." echo '' exit 2 fi # Normal (not BuildTools/ThirdParty/Data) need a directory name, # and it may differ from the project name. Carefully preserve it. if test $ext_isNormal = yes ; then ext_tail=`extractTailFromExt $ext_url` ext_rel_url=${ext_rel_url}${ext_tail} fi echo " $ext_name $ext_url ==> $ext_rel_url" fi else ext_rel_url=$ext_url echo " $ext_name $ext_url ==> unchanged" fi # Get the BuildTools URL for the external and compare to the BuildTools URL # for the source, assuming we have one and the external has one. We only need # to do this for normal URLs, and we need to strip the tail. if test $ext_isNormal = yes && test $ext_proj != BuildTools && test $ourBTURL != none ; then ext_rel_url_notail=`echo $ext_rel_url | sed -e 's,/[^/]*$,,'` extBTURL=`svn propget svn:externals $ext_rel_url_notail` extBTURL=`echo $extBTURL | \ sed -n -e 's/^BuildTools *https:\([^ ]*\) *$/https:\1/p'` if test -n "$extBTURL" ; then testResult=`compareURLVersions "$ourBTURL" "$extBTURL"` if test $testResult = no ; then if test $ignoreBuildToolsMismatch = all || \ expr "$mismatchBTExternals" : '.*'$ext_proj'.*' 2>&1 >/dev/null ; then echo " WARNING: BuildTools mismatch: $ext_url_notail uses $extBTURL" else buildtoolsMismatch=1 echo " ERROR: BuildTools mismatch: $ext_url_notail uses $extBTURL" fi fi fi fi echo "$ext_name $ext_rel_url" >>Dependencies ext_name= echo '' fi done # If we have a BuildTools mismatch, exit. if test $buildtoolsMismatch = 1 ; then echo "Exiting due to BuildTools mismatches; use -i to ignore." exit 2 fi # Try to check out the externals. Try three times before failing. echo '' echo '===> Updating svn:externals property and checking out externals ...' echo '' svn propset svn:externals -F Dependencies . svn update || { echo "Retry 1 ... " ; svn update ; } || { echo "Retry 2 ... " ; svn update ; } || { echo "Checkout of externals failed. Aborting." ; exit 3 ; } if test -d ThirdParty ; then echo '' echo '===> Downloading ThirdParty code ...' echo '' ext_name= ext_url= for i in `svn propget svn:externals .` ; do if test -z "$ext_name" ; then ext_name="$i" else ext_url=$i if expr "$ext_name" : 'ThirdParty/.*' 2>&1 >/dev/null ; then cd $ext_name ext_proj=`extractProjFromURL $ext_url` getScript=get.$ext_proj if test -x "$getScript" ; then ./$getScript -patch fi cd $coDir fi ext_name= fi done fi fi # Finally! Done processing externals. If this is a ThirdParty project, we # still have to run the get script, if there is one. isThirdPartyWithoutGet=no if test $isThirdParty = yes ; then if test -x get.$stableProj ; then echo '' echo '===> Downloading third party code ...' echo '' ./get.$stableProj else isThirdPartyWithoutGet=yes fi fi # Don't run run_autotools for BuildTools! if test $isBuildTools = no ; then echo '' echo '===> Running BuildTools/run_autotools ...' echo '' if test $isThirdParty = yes || test $isData = yes ; then cd ../.. ./BuildTools/run_autotools cd "$coDir" elif test $isNormal = yes ; then ./BuildTools/run_autotools fi fi # Let's see if it works. We only run tests for normal projects. DO NOT turn # on --enable-maintainer-mode in the initial configure command. At the least, # it's not needed. At the worst, as of 100526, it'll undo all the careful # work above to set externals. if test $isNormal = yes && test $isThirdPartyWithoutGet = no; then (set -e echo '' echo '===> Creating build directory and running the configuration script...' echo '' mkdir build cd build cmd="$coDir/configure -C" echo $cmd eval $cmd echo '' echo '===> Compiling code...' echo '' cmd='make install' echo $cmd eval $cmd echo '' echo '===> Running the unit test...' echo '' echo '*******************************************************************************' echo '*** ***' echo '*** BEGIN OUTPUT OF MAKE TEST ***' echo '*** ***' echo '*******************************************************************************' echo '' cmd='make test' echo $cmd eval $cmd echo '' echo '*******************************************************************************' echo '*** ***' echo '*** END OUTPUT OF MAKE TEST ***' echo '*** ***' echo '*******************************************************************************' ) if test $? != 0; then echo '' echo 'Error during build or test' echo '' exit 3 fi echo '' echo '===> ALL TESTS PASSED' fi echo '' if test $isNormal = yes && test $isThirdPartyWithoutGet = no; then echo 'Please review the output above, particularly the one of make test.' else echo 'Please review the output above.' fi echo '' # Do we need to plug in nonexistent releases for circular dependencies tested # with the stable versions? If so, generate a new Dependencies. This is the # only reason stable references should appear in the externals for a release, # so we don't need to check further before removing them. if test -n "$stableExternals" ; then echo "===> Grooming externals to remove stable externals used for testing ..." mv Dependencies Dependencies.temp.$$ ext_name= ext_url= for i in `cat Dependencies.temp.$$`; do if test "$ext_name" = ""; then ext_name="$i" else ext_url=$i ext_urltype=`extractTypeFromURL $ext_url` ext_proj=`extractProjFromURL $ext_url` if test $ext_urltype = stable ; then ext_rel_url=$ext_url ext_majVer=`extractMajorFromURL $ext_url` ext_minVer=`extractMinorFromURL $ext_url` ext_rel_url=`echo $ext_url | sed -e 's,/stable/,/releases/,'` ext_rel_url=`replaceVersionInURL $ext_rel_url $ext_majVer $ext_minVer 0` echo " $ext_name $ext_url ==> $ext_rel_url" else ext_rel_url=$ext_url fi echo "$ext_name $ext_rel_url" >>Dependencies ext_name= fi done rm -f Dependencies.temp.$$ svn propset -F Dependencies svn:externals . echo '' fi # If we had a Dependencies file to begin with, it contained references to # stable branches, and perhaps releases. This is the set of dependencies that # we want to commit in Dependencies, so reload $srcDepFile.bak into # Dependencies, now that we have svn:externals set to releases. if test -n "$srcDepFile" ; then cp $srcDepFile.bak Dependencies fi if test -r Dependencies ; then echo 'Also, please confirm the externals are correct:' svn propget svn:externals fi echo '' echo 'After reviewing the output above, you can create a new release by going into' echo 'the directory' echo '' echo " $startDir" echo '' echo "and run the commit_new_release script" cd $topBuildDir cat >.new_release_data <, 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/BuildTools/Makemain.inc0000644000076600007660000000434711530272210015647 0ustar coincoin# Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makemain.inc 2107 2011-02-20 20:07:36Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## if MAINTAINER_MODE # Make sure acinclude is using most recent coin.m4 $(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date $(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh cp $< $@ $(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing cp $< $@ $(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess cp $< $@ $(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub cp $< $@ $(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp cp $< $@ $(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh cp $< $@ # Take care of updating externals (if Dependencies file exists) if HAVE_EXTERNALS $(top_builddir)/Makefile: .Dependencies-stamp .Dependencies-stamp: $(srcdir)/Dependencies cd $(srcdir); BuildTools/set_externals Dependencies touch .Dependencies-stamp update-externals: .Dependencies-stamp cd $(srcdir); svn update endif endif if HAVE_EXTERNALS EXTRA_DIST += Dependencies DISTCLEANFILES += .Dependencies-stamp endif DISTCLEANFILES += $(VPATH_DISTCLEANFILES) .PHONY: install-doc uninstall-doc update-externals Ipopt-3.11.4/BuildTools/coin-functions0000644000076600007660000005012511610343073016313 0ustar coincoin # Utility function definitions for the various COIN scripts. # Copyright (c) 2010 Lou Hafer Simon Fraser University # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id$ # Functions to disassemble svn URLs and extract relevant bits, and utilities # to find the best (most recent) stable and release URLs, calculate libtool # version numbers, and compare URLs for compatibility based on major and minor # version. Complicated because we have to account for trunk/stable/release and # for the variant syntax of Data and ThirdParty URLs. For your normal project, # it's # https://projects.coin-or.org/svn/ProjName/trunk # https://projects.coin-or.org/svn/ProjName/stable/M.m # https://projects.coin-or.org/svn/ProjName/releases/M.m.r # with the proviso that sometimes it's # https://projects.coin-or.org/svn/ProjName/SubProj/trunk # etc. # For ThirdParty, it's just like a normal project, except the prefix string # is longer: # https://projects.coin-or.org/svn/BuildTools/ThirdParty/ProjName # Data is the real pain. Prior to 20101103 (1.0.x series), it had this form: # https://projects.coin-or.org/svn/Data/trunk/ProjName # https://projects.coin-or.org/svn/Data/stable/M.m/ProjName # https://projects.coin-or.org/svn/Data/releases/M.m.r/ProjName # After 20101103 (1.1 and subsequent), it uses the same layout as ThirdParty, # namely /Data/Projname/. Macros below # will cope, but really you should be using pre-1.1 Data anyway. # Extract the COIN base from the URL, up to svn. Just in case it ever changes. # usage: baseURL=`extractBaseURL $svnURL` extractBaseURL () { exbu_baseURL=`echo $1 | sed -n -e 's|\(.*/svn\)/.*$|\1|p'` echo "$exbu_baseURL" } # Extract branch type (trunk/stable/release) from the URL. # usage: branchType=`extractTypeFromURL $svnURL` extractTypeFromURL () { etfu_type="invalid" case "$1" in */trunk* ) etfu_type=trunk ;; */stable/* ) etfu_type=stable ;; */releases/* ) etfu_type=release ;; esac echo $etfu_type } # Determine if this is a `normal' URL, defined as not Data, ThirdParty, or # BuildTools itself. ThirdParty lives in BuildTools as of 100628, so the # condition is redundant. Returns yes or no. # 101105 Exclude CoinBazaar, which follows the Data pattern. May not be the # correct choice if any CoinBazaar projects use BuildTools # usage: isNormal=`isNormalURL $svnURL` isNormalURL () { case $1 in */BuildTools/* | */ThirdParty/* | */Data/* | */CoinBazaar/* ) echo "no" ;; *) echo "yes" ;; esac } # Extract the project from a svn URL. The trick, for `normal' projects, is to # handle CHiPPS, which has CHiPPS/Alps, Bcps, Blis. We can't assume the # project name does not contain '/'. The heuristic is to look for everything # between svn and one of trunk, stable, releases, or end of line. # usage: projName=`extractProjFromURL $svnURL` extractProjFromURL () { epfu_URL="$1" epfu_projPat='\([^/][^/]*\)' epfu_sfxPat='.*$' case "$epfu_URL" in */Data/trunk/* ) epfu_pfxPat=svn/Data/trunk/ ;; */Data/stable/* | */Data/releases/* ) epfu_pfxPat='svn/Data/[^/][^/]*/[0-9][0-9.]*/' ;; */Data/* ) epfu_pfxPat='svn/Data/' ;; */ThirdParty/* ) epfu_pfxPat=svn/BuildTools/ThirdParty/ ;; *) epfu_type=`extractTypeFromURL $epfu_URL` epfu_pfxPat='svn/' epfu_projPat='\(.*\)' case $epfu_type in trunk | stable | release ) epfu_sfxPat=$epfu_type'.*$' ;; * ) epfu_sfxPat='$' ;; esac ;; esac epfu_projName=`echo $epfu_URL | sed -n -e 's|.*/'$epfu_pfxPat$epfu_projPat$epfu_sfxPat'|\1|p'` epfu_projName=`echo $epfu_projName | sed -e 's|/$||'` echo "$epfu_projName" } # Extract the tail (directory) from a URL that specifies an external. Relevant # only for normal projects, where the external will be a subdirectory # of the project. Returns null for Data / ThirdParty / BuildTools. # usage: projName=`extractTailFromExt $extURL` extractTailFromExt () { etfe_tail= case "$1" in */Data/* ) ;; */BuildTools/ThirdParty/* ) ;; */BuildTools/* ) ;; */CoinBazaar/* ) ;; *) etfe_pfxPat= case "$1" in */trunk/* ) etfe_pfxPat='.*/trunk/' ;; */stable/* ) etfe_pfxPat='.*/stable/[0-9][0-9.]*/' ;; */releases/* ) etfe_pfxPat='.*/releases/[0-9][0-9.]*/' ;; esac etfe_tail=`echo $1 | sed -n -e 's|'$etfe_pfxPat'\(.*\)|\1|p'` ;; esac echo "$etfe_tail" } # CppAD uses a version string of the form YYYMMDD.rr. What a pain in the ass. # Hence the scattered exceptions below. # Extract the entire version string from a stable or release URL. Returns a # null string if handed a trunk URL or if there's no version in the URL. The # version number must have at least major.minor to match. # usage: version=`extractVersionFromURL $svnURL` extractVersionFromURL () { evfu_URL="$1" if expr "$evfu_URL" : '.*/stable/.*' >/dev/null 2>&1 || expr "$evfu_URL" : '.*/releases/.*' >/dev/null 2>&1 ; then if expr "$evfu_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then evfu_verPat='\([0-9][0-9.]*\)' else evfu_verPat='\([0-9][0-9]*\.[0-9][0-9.]*\)' fi evfu_sfxPat='.*$' evfu_proj=`extractProjFromURL $evfu_URL` case "$evfu_URL" in */Data/stable/* | */Data/releases/* ) evfu_pfxPat='svn/Data/[^/][^/]*/' ;; */ThirdParty/* ) evfu_pfxPat='svn/BuildTools/ThirdParty/[^/][^/]*/[^/][^/]*/' ;; */Data/* ) evfu_pfxPat='svn/Data/'$evfu_proj'/[^/][^/]*/' ;; *) evfu_pfxPat='svn/'$evfu_proj'/[^/][^/]*/' ;; esac evfu_verVer=`echo $1 | sed -n -e 's|.*/'$evfu_pfxPat$evfu_verPat$evfu_sfxPat'|\1|p'` echo "$evfu_verVer" else echo "" fi } # Replace the entire version string from a stable or release URL. A trunk # URL will be unmodified. newRev will not be accessed unless the URL is a # release. The version must have at least major.minor to match. # usage: newURL=`replaceVersionInURL $oldURL $newMajor $newMinor $newRev` # and just for CppAD, # usage: newURL=`replaceVersionInURL $oldURL $newMajor $newRev` replaceVersionInURL () { if expr "$1" : '.*/CppAD/.*' >/dev/null 2>&1 ; then isCppAD=yes else isCppAD=no fi if test $isCppAD = no ; then rviu_verPat='[0-9][0-9]*\.[0-9][0-9.]*' else rviu_verPat='[0-9][0-9.]*' fi if expr "$1" : '.*/stable/.*' >/dev/null 2>&1 ; then if test $isCppAD = no ; then rviu_newVersion=$2.$3 else rviu_newVersion=$2 fi elif expr "$1" : '.*/releases/.*' >/dev/null 2>&1 ; then if test $isCppAD = no ; then rviu_newVersion=$2.$3.$4 else rviu_newVersion=$2.$3 fi else rviu_newVersion= rviu_newURL=$1 fi if test -n "$rviu_newVersion" ; then rviu_newURL=`echo $1 | sed -n -e 's|^\(.*\)/'$rviu_verPat'\(.*\)$|\1/'$rviu_newVersion'\2|p'` fi echo $rviu_newURL } # Extract the major version number from a stable or release URL. Returns -1 if # handed a trunk URL or if there's no version in the URL # usage: majVer=`extractMajorFromURL $svnURL` extractMajorFromURL () { ejfu_URL="$1" if expr "$ejfu_URL" : '.*/stable/.*' >/dev/null 2>&1 || expr "$ejfu_URL" : '.*/releases/.*' >/dev/null 2>&1 ; then ejfu_majPat='\([0-9][0-9]*\)' if expr "$ejfu_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then ejfu_sfxPat='.*$' else ejfu_sfxPat='\.[0-9][0-9]*.*$' fi ejfu_proj=`extractProjFromURL $ejfu_URL` case "$ejfu_URL" in */Data/stable/* | */Data/releases/* ) ejfu_pfxPat='svn/Data/[^/][^/]*/' ;; */ThirdParty/* ) ejfu_pfxPat='svn/BuildTools/ThirdParty/[^/][^/]*/[^/][^/]*/' ;; */Data/* ) ejfu_pfxPat='svn/Data/'$ejfu_proj'/[^/][^/]*/' ;; *) ejfu_pfxPat='svn/'$ejfu_proj'/[^/][^/]*/' ;; esac ejfu_majVer=`echo $ejfu_URL | sed -n -e 's|.*/'$ejfu_pfxPat$ejfu_majPat$ejfu_sfxPat'|\1|p'` echo "$ejfu_majVer" else echo "-1" fi } # Extract the minor version number from a stable or release URL. Returns -1 if # handed a trunk URL or if there's no version in the URL. # The CppAD form (YYYYMMDD.rr) doesn't have a minor version number. # usage: minVer=`extractMinorFromURL $svnURL` extractMinorFromURL () { emfu_URL="$1" if expr "$emfu_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then echo "-1" elif expr "$emfu_URL" : '.*/stable/.*' >/dev/null 2>&1 || expr "$emfu_URL" : '.*/releases/.*' >/dev/null 2>&1 ; then emfu_minPat='[0-9][0-9]*\.\([0-9][0-9]*\)' emfu_sfxPat='.*$' emfu_proj=`extractProjFromURL $emfu_URL` case "$emfu_URL" in */Data/stable/* | */Data/releases/* ) emfu_pfxPat='svn/Data/[^/][^/]*/' ;; */ThirdParty/* ) emfu_pfxPat='svn/BuildTools/ThirdParty/[^/][^/]*/[^/][^/]*/' ;; */Data/* ) emfu_pfxPat='svn/Data/'$emfu_proj'/[^/][^/]*/' ;; *) emfu_pfxPat='svn/'$emfu_proj'/[^/][^/]*/' ;; esac emfu_minVer=`echo $emfu_URL | sed -n -e 's|.*/'$emfu_pfxPat$emfu_minPat$emfu_sfxPat'|\1|p'` echo "$emfu_minVer" else echo "-1" fi } # Extract the release (revision) number from a release URL. Returns -1 if # handed a trunk or stable URL # usage: minVer=`extractReleaseFromURL $svnURL` extractReleaseFromURL () { erfu_URL="$1" if expr "$erfu_URL" : '.*/releases/.*' >/dev/null 2>&1 ; then if expr "$erfu_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then erfu_relPat='[0-9][0-9]*\.\([0-9][0-9]*\)' else erfu_relPat='[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)' fi erfu_sfxPat='.*$' erfu_proj=`extractProjFromURL $erfu_URL` case "$erfu_URL" in */Data/releases/* ) erfu_pfxPat='svn/Data/[^/][^/]*/' ;; */ThirdParty/* ) erfu_pfxPat='svn/BuildTools/ThirdParty/[^/][^/]*/[^/][^/]*/' ;; */Data/*) erfu_pfxPat='svn/Data/'$erfu_proj'/[^/][^/]*/' ;; *) erfu_pfxPat='svn/'$erfu_proj'/[^/][^/]*/' ;; esac erfu_relVer=`echo $erfu_URL | sed -n -e 's|.*/'$erfu_pfxPat$erfu_relPat$erfu_sfxPat'|\1|p'` echo "$erfu_relVer" else echo "-1" fi } # Now some functions to locate the highest-numbered stable or release. # Return the URL of the most recent stable branch matching the parameters. # A value of -1 for major version is interpreted as `highest number' # Returns an empty string if no suitable stable branch exists. # usage: stableURL=`bestStable ` bestStable () { bstb_URL=$1 bstb_majVer=$2 # Construct a URL to send to the repository to list the stable branches. bstb_baseURL=`extractBaseURL $bstb_URL` bstb_proj=`extractProjFromURL $bstb_URL` case "$bstb_URL" in */Data/trunk/* ) bstb_listURL=$bstb_baseURL/Data/stable ;; */Data/* ) bstb_listURL=$bstb_baseURL/Data/$bstb_proj/stable ;; */ThirdParty/* ) bstb_listURL=$bstb_baseURL/BuildTools/ThirdParty/$bstb_proj/stable ;; * ) bstb_listURL=$bstb_baseURL/$bstb_proj/stable ;; esac bstb_rawls=`svn list $bstb_listURL | sort -nr -t. -k1,1 -k2,2` # echo "Raw ls: $bstb_rawls" # Filter the list of stable branches to remove any that do not match the # requested major version. Note that there's a / at the end of each URL. if test "$bstb_majVer" = "-1" ; then bstb_verPat='[0-9][0-9.]*/' elif expr "$bstb_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then bstb_verPat=$bstb_majVer'/' else bstb_verPat=$bstb_majVer'\.[0-9][0-9]*' fi bstb_filter= for bstb_ver in $bstb_rawls ; do if expr "$bstb_ver" : $bstb_verPat >/dev/null 2>&1 ; then bstb_filter="$bstb_filter $bstb_ver" fi done # echo "Filtered ls: $bstb_filter" # If there are any candidates left ... bstb_bestURL= if test -n "$bstb_filter" ; then # If we're dealing with old-style Data, we have to work a bit harder # to find our project. See if any of the filtered candidates contain # the correct project. case "$bstb_URL" in */Data/trunk/* | */Data/stable/* | */Data/releases/* ) bstb_projPat='.*'$bstb_proj'/.*' # echo "Pattern: $bstb_projPat" for bstb_ver in $bstb_filter ; do if expr "$bstb_ver" : $bstb_verPat >/dev/null 2>&1 ; then # echo " url: $bstb_listURL/$bstb_ver" bstb_svnls2="`svn list $bstb_listURL/$bstb_ver`" # echo " result: $bstb_svnls2" if expr "$bstb_svnls2" : $bstb_projPat >/dev/null 2>&1 ; then bstb_best=$bstb_ver # echo " best: $bstb_best" break fi fi done bstb_bestURL=$bstb_listURL/$bstb_best$bstb_proj ;; *) bstb_bestURL=`echo $bstb_filter | sed -n -e 's|\([^/]*/\).*$|\1|p'` bstb_bestURL=$bstb_listURL/$bstb_bestURL ;; esac fi echo $bstb_bestURL } # Return the URL of the most recent release matching the parameters. Returns # null if no suitable release exists. # A value of -1 for major or minor version is interpreted as `highest number' # A value of -1 for major version means that minor version is ignored. # usage: releaseURL=`bestRelease ` bestRelease () { bstb_URL=$1 bstb_majVer=$2 bstb_minVer=$3 # Construct a URL to send to the repository to list the releases. bstb_baseURL=`extractBaseURL $bstb_URL` bstb_proj=`extractProjFromURL $bstb_URL` case "$bstb_URL" in */Data/* ) bstb_listURL=$bstb_baseURL/Data/$bstb_proj/releases ;; */ThirdParty/* ) bstb_listURL=$bstb_baseURL/BuildTools/ThirdParty/$bstb_proj/releases ;; * ) bstb_listURL=$bstb_baseURL/$bstb_proj/releases ;; esac bstb_rawls=`svn list $bstb_listURL | sort -nr -t. -k1,1 -k2,2 -k3,3` # echo "Raw ls: $bstb_rawls" # Filter the list of releases to remove any that do not match the # requested major and minor version. if expr "$bstb_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then isCppAD=yes else isCppAD=no fi if test "$bstb_majVer" = "-1" ; then bstb_verPat='[0-9][0-9.]*/' else bstb_verPat=$bstb_majVer if test $isCppAD = no && test "$bstb_minVer" != "-1" ; then bstb_verPat="${bstb_verPat}\.$bstb_minVer" fi bstb_verPat="${bstb_verPat}"'\.[0-9][0-9]*/' fi # echo "Version pattern: $bstb_verPat" bstb_filter= for bstb_ver in $bstb_rawls ; do if expr "$bstb_ver" : $bstb_verPat >/dev/null 2>&1 ; then bstb_filter="$bstb_filter $bstb_ver" fi done # echo "Filtered ls: $bstb_filter" # If there are any candidates left ... bstb_bestURL= if test -n "$bstb_filter" ; then # If we're dealing with old-style Data, we have to work a bit harder to find our # project. See if any of the filtered candidates contain the correct # project. case "$bstb_URL" in */Data/trunk/* | */Data/stable/* | */Data/releases/* ) bstb_projPat='.*'$bstb_proj'/.*' # echo "Pattern: $bstb_projPat" for bstb_ver in $bstb_filter ; do if expr "$bstb_ver" : $bstb_verPat >/dev/null 2>&1 ; then # echo " url: $bstb_listURL/$bstb_ver" bstb_svnls2="`svn list $bstb_listURL/$bstb_ver`" # echo " result: $bstb_svnls2" if expr "$bstb_svnls2" : $bstb_projPat >/dev/null 2>&1 ; then bstb_best=$bstb_ver # echo " best: $bstb_best" break fi fi done bstb_bestURL=$bstb_listURL/$bstb_best$bstb_proj ;; *) bstb_bestURL=`echo $bstb_filter | sed -n -e 's|\([^/]*/\).*$|\1|p'` bstb_bestURL=$bstb_listURL/$bstb_bestURL ;; esac fi echo $bstb_bestURL } # Count the total number of stable branches for the project for the specified # major version number, up to the specified minor version number (libtool age). # Returns 0 if handed a trunk url, or if the url is BuildTools itself. # usage: calcLibtoolAge calcLibtoolAge () { cltc_URL=$1 cltc_majVer=$2 cltc_minVer=$3 # Construct a URL to send to the repository to list the stable branches. cltc_baseURL=`extractBaseURL $cltc_URL` cltc_proj=`extractProjFromURL $cltc_URL` case "$cltc_URL" in */Data/* ) cltc_listURL=$cltc_baseURL/Data/$cltc_proj/stable ;; */ThirdParty/* ) cltc_listURL=$cltc_baseURL/BuildTools/ThirdParty/$cltc_proj/stable ;; */BuildTools/* ) cltc_listURL= ;; * ) cltc_listURL=$cltc_baseURL/$cltc_proj/stable ;; esac # Run an ls and filter for standard stable branches (M.m or YYYYMMDD) if test -n "$cltc_listURL" ; then cltc_rawls=`svn list $cltc_listURL | sed -n -e '/[0-9][0-9.]/p'` # echo "Raw ls: $cltc_rawls" # Filter the list of stable branches to remove any that do not match the # requested major version. if expr "$cltc_URL" : '.*/CppAD/.*' >/dev/null 2>&1 ; then cltc_verPat=$cltc_majVer else cltc_verPat=$cltc_majVer'\.[0-9][0-9]*/' fi cltc_majfilter= for cltc_ver in $cltc_rawls ; do if expr "$cltc_ver" : $cltc_verPat >/dev/null 2>&1 ; then cltc_majfilter="$cltc_majfilter $cltc_ver" fi done # echo "Filtered ls (major version): $cltc_majfilter" # For the specific major version, filter the list that matched on major # version to remove any that exceed the minor version. cltc_minfilter= for cltc_ver in $cltc_majfilter ; do cltc_min=`echo $cltc_ver | sed -e 's/[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/'` if expr $cltc_min '<=' $cltc_minVer >/dev/null 2>&1 ; then cltc_minfilter="$cltc_minfilter $cltc_ver" fi done # echo "Filtered ls (minor version): $cltc_minfilter" cltc_cnt=`echo $cltc_minfilter | wc -w | sed -e 's/ //g'` else cltc_cnt=0 fi echo $cltc_cnt } # Count the total number of stable branches for the project up to the # specified major.minor version number (libtool current). Returns 0 if # handed a trunk url, or if the url is BuildTools itself. # usage: calcLibtoolCurrent calcLibtoolCurrent () { cltc_URL=$1 cltc_majVer=$2 cltc_minVer=$3 # Construct a URL to send to the repository to list the stable branches. cltc_baseURL=`extractBaseURL $cltc_URL` cltc_proj=`extractProjFromURL $cltc_URL` case "$cltc_URL" in */Data/* ) cltc_listURL=$cltc_baseURL/Data/$cltc_proj/stable ;; */ThirdParty/* ) cltc_listURL=$cltc_baseURL/BuildTools/ThirdParty/$cltc_proj/stable ;; */BuildTools/* ) cltc_listURL= ;; * ) cltc_listURL=$cltc_baseURL/$cltc_proj/stable ;; esac # Run an ls and filter for standard stable branches (M.m or YYYYMMDD) if test -n "$cltc_listURL" ; then cltc_rawls=`svn list $cltc_listURL | sed -n -e '/[0-9][0-9.]/p'` # echo "Raw ls: $cltc_rawls" # Filter the list of stable branches to find those with standard version # numbers. cltc_verPat='[0-9][0-9.]*/' cltc_stdfilter= for cltc_ver in $cltc_rawls ; do if expr "$cltc_ver" : $cltc_verPat >/dev/null 2>&1 ; then cltc_stdfilter="$cltc_stdfilter $cltc_ver" fi done # echo "Filtered ls (standard): $cltc_stdfilter" # Filter to remove major versions that exceed the specified version. cltc_majfilter= for cltc_ver in $cltc_stdfilter ; do cltc_maj=`echo $cltc_ver | sed -e 's/\([0-9][0-9]*\)\.[0-9].*/\1/'` if expr $cltc_maj '<=' $cltc_majVer >/dev/null 2>&1 ; then cltc_majfilter="$cltc_majfilter $cltc_ver" fi done # echo "Filtered ls (major version): $cltc_majfilter" # For the specific major version, filter the list that matched on major # version to remove any that exceed the minor version. cltc_minfilter= cltc_verPat='s/'$cltc_majVer'\.\([0-9][0-9]*\).*/\1/' for cltc_ver in $cltc_majfilter ; do cltc_min=`echo $cltc_ver | sed -e $cltc_verPat` if expr $cltc_min '<=' $cltc_minVer >/dev/null 2>&1 ; then cltc_minfilter="$cltc_minfilter $cltc_ver" fi done # echo "Filtered ls (minor version): $cltc_minfilter" cltc_cnt=`echo $cltc_minfilter | wc -w | sed -e 's/ //g'` else cltc_cnt=0 fi echo $cltc_cnt } # Function to compare the versions in a pair of URLs for equality. The criteria # is that the major and minor versions match. In theory, the release should # not matter. Probably should be a parameter. # usage: compareURLVersions compareURLVersions () { url1_major=`extractMajorFromURL $1` url1_minor=`extractMinorFromURL $1` url2_major=`extractMajorFromURL $2` url2_minor=`extractMinorFromURL $2` if test $url1_major = $url2_major && test $url1_minor = $url2_minor ; then echo "yes" else echo "no" fi } Ipopt-3.11.4/BuildTools/set_externals0000755000076600007660000001173411504414745016252 0ustar coincoin#!/bin/sh # Copyright (C) 2007 International Business Machines and # Copyright (c) 2009 Lehigh University # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id$ # # Adapted from prepare_new_release by Ted Ralphs, Lehigh Univ., 2009-07-07 # Modified: Lou Hafer SFU 2010-06-02 #set -x -v set -e # Know thy self. If there are no '/' chars in the command name, we're running # in the currrent directory. Otherwise, strip the command name, leaving the # prefix. Coin-functions is expected to live in the same directory. if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else cmdDir='.' fi if test -r $cmdDir/coin-functions ; then . $cmdDir/coin-functions else echo "Cannot find utility functions file coin-functions; exiting." fi printHelp=0 exitValue=0 depFile= # stableExternals specifies externals which we do not want to convert to # releases, for whatever reason. stableExternals= if test "$#" -eq 0; then printHelp=1 else # Process the parameters. A parameter without an opening `-' is assumed to be # the dependency file. while test $# -gt 0 && test $exitValue = 0 && test $printHelp = 0 ; do case "$1" in -h* | --h*) printHelp=1 ;; -s* | --s*) if expr "$1" : '.*-s.*=.*' 2>&1 >/dev/null ; then stableExternals=`echo $1 | sed -n -e 's/[^=]*=\(.*\)/\1/p'` else shift stableExternals=$1 fi ;; -*) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 exitValue=1 ;; *) depFile=$1 ;; esac shift done fi # Find the most recent release for each stable external. Allow for the # possibility that a stable branch has no associated release, or that the # user has asked to keep the stable external. if test $printHelp = 0 && test $exitValue = 0; then if test -r $depFile; then rm -f Externals.releases echo '' echo '===> Converting stable externals to releases ...' echo '' ext_name= ext_url= for i in `cat $depFile`; do if test "$ext_name" = ""; then ext_name="$i" else ext_url=$i if expr "$ext_name" : '#.*' >/dev/null 2>&1 ; then echo "Skipping $ext_name." ext_name= continue fi if expr "$stableExternals" : '.*'"$ext_name"'.*' 2>&1 >/dev/null ; then echo " $ext_name $ext_url unchanged" else extType=`extractTypeFromURL $ext_url` if test "$extType" = invalid ; then echo '' echo "The external URL $ext_url appears to be invalid. Exiting." echo '' exit 3 fi if test "$extType" = stable ; then ext_majVer=`extractMajorFromURL $ext_url` ext_minVer=`extractMinorFromURL $ext_url` ext_rel_url=`bestRelease $ext_url $ext_majVer $ext_minVer` if test -z "$ext_rel_url" ; then echo "There is no release for $ext_url" echo "Keeping $ext_url" else # Normal (not BuildTools/ThirdParty/Data) need a directory name, # and it may differ from the project name. Carefully preserve it. # ThirdParty URLs include BuildTools ; both named for emphasis case $ext_rel_url in */BuildTools/* | */ThirdParty/* | */Data/* ) ;; *) ext_tail=`extractTailFromExt $ext_url` ext_rel_url=${ext_rel_url}${ext_tail} ;; esac echo "Replacing $ext_url with $ext_rel_url" ext_url=$ext_rel_url fi else echo "Keeping $ext_url" fi fi echo "$ext_name $ext_url" >>Externals.releases ext_name= fi done echo '' echo '===> Updating svn:externals property...' echo '' svn propset svn:externals -F Externals.releases . svn propget svn:externals . rm Externals.releases else # if test -r depFile echo "" echo "Dependency file does not exist or is unspecified..." echo "" printHelp=1 exitvalue=2 fi fi if test $printHelp = 1 ; then cat < Options: -s Suppress conversion from stable to release for the listed externals (comma-separated list of project names, e.g., -s Osi,Cbc). This script takes as input a dependency file containing a list of stable versions of COIN projects on separate lines in the form Recommended practice is to keep the set of stable externals in a file called "Dependencies" in the project's root directory. A temporary file called "Externals.releases" in the same form, but with the URL of each stable version replaced by the URL of the latest associated release is produced. From this file, the script will set the svn:externals variable. It does not do an update or commit the change. After the script runs, do an update and test build, then commit the change if you are happy. EOF else cat </dev/null` if test "x$svn_rev_tmp" != xexported -a "x$svn_rev_tmp" != x -a "x$svn_rev_tmp" != "xUnversioned directory"; then m4_toupper($1_SVN_REV)=`echo $svn_rev_tmp | sed -n -e 's/^@<:@0-9@:>@*://' -e 's/\(@<:@0-9@:>@\)@<:@^0-9@:>@*$/\1/p'` AC_DEFINE_UNQUOTED(m4_toupper($1_SVN_REV), $m4_toupper($1_SVN_REV), [SVN revision number of project]) fi fi ]) # Capture libtool library version, if given. m4_ifvaln([$2],[coin_libversion=$2],[]) ]) ########################################################################### # COIN_PROJECTDIR_INIT # ########################################################################### # This macro does everything that is required in the early part in the # configure script, such as defining a few variables. This should only be used # in the main directory of a project directory (the one which holds the src # directory for the project). The first parameter is the project name. The # second (optional) is the libtool library version (important for releases, # less so for stable or trunk). AC_DEFUN([AC_COIN_PROJECTDIR_INIT], [ # As backup, we make sure we don't loose an FLIBS if it has been set # by the user save_FLIBS="$FLIBS" # A useful makefile conditional that is always false AM_CONDITIONAL(ALWAYS_FALSE, false) # We set the following variable so that we know later in AC_COIN_FINALIZE # that we are in a project main directory coin_projectdir=yes # Set the project's version numbers AC_COIN_PROJECTVERSION($1, $2) ]) # AC_COIN_PROJECTDIR_INIT ########################################################################### # COIN_DEBUG_COMPILE # ########################################################################### # enable the configure flags --enable-debug and --enable-debug-prjct # (where prcjt is the name of the project in lower case) and set the # variable coin_debug_compile to true or false This is used by # COIN_PROG_CXX, COIN_PROG_CC and COIN_PROG_F77 to determine the # compilation flags. This macro also makes the switches # --with-prjct-verbosity and --with-prjct-checklevel available, which # define the preprocessor macros COIN_PRJCT_VERBOSITY and # COIN_PRJCT_CHECKLEVEL to the specified value (default is 0). # # The project specific flags are only made available, if one gives the # name of the project as first argument to this macro. AC_DEFUN([AC_COIN_DEBUG_COMPILE], [AC_BEFORE([$0],[AC_COIN_PROG_CXX])dnl AC_BEFORE([$0],[AC_COIN_PROG_CC])dnl AC_BEFORE([$0],[AC_COIN_PROG_F77])dnl AC_MSG_CHECKING([whether we want to compile in debug mode]) AC_ARG_ENABLE([debug], [AC_HELP_STRING([--enable-debug], [compile all projects with debug options tests (implies --disable-shared)])], [case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; esac], [coin_debug_compile=false]) m4_ifvaln([$1], [AC_ARG_ENABLE(debug-m4_tolower($1), [AC_HELP_STRING([--enable-debug-m4_tolower($1)], [compile project $1 with debug compiler flags])], [case "${enableval}" in yes) coin_debug_compile=true ;; no) coin_debug_compile=false ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-m4_tolower($1)) ;; esac],[:]) ]) # m4_ifvaln([$1], if test $coin_debug_compile = true; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi m4_ifvaln([$1], [AC_ARG_WITH(m4_tolower($1)-verbosity, AC_HELP_STRING([--with-m4_tolower($1)-verbosity], [specify the debug verbosity level for project $1]), [if test "$withval" = yes; then withval=1 fi m4_tolower(coin_$1_verbosity)=$withval], [m4_tolower(coin_$1_verbosity)=0]) AC_DEFINE_UNQUOTED(m4_toupper(COIN_$1_VERBOSITY), m4_tolower($coin_$1_verbosity), [Define to the debug verbosity level (0 is no output)]) AC_ARG_WITH(m4_tolower($1)-checklevel, AC_HELP_STRING([--with-m4_tolower($1)-checklevel], [specify the sanity check level for project $1]), [if test "$withval" = yes; then withval=1 fi m4_tolower(coin_$1_checklevel)=$withval], [m4_tolower(coin_$1_checklevel)=0]) AC_DEFINE_UNQUOTED(m4_toupper(COIN_$1_CHECKLEVEL), m4_tolower($coin_$1_checklevel), [Define to the debug sanity check level (0 is no test)]) ]) # m4_ifvaln([$1], ]) # AC_COIN_DEBUG_COMPILE ########################################################################### # COIN_MINGW_LD_FIX # ########################################################################### # This macro is included by any PROG_compiler macro, to set the LD # environment variable on MinGW to the correct value (link). But note that # if we're building in cygwin with -mno-cygwin, we still want ld! If we're # building from cygwin with MSVC tools (cl/link), then we do want link and # you'd better have your PATH variable straight, else you'll be doing file # links instead of code links! Arguably, LDFLAGS should include -mno-cygwin # but in practice all linking seems to be handled through the compilers, so # CFLAGS and CXXFLAGS suffice. AC_DEFUN([AC_COIN_MINGW_LD_FIX], [case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ]) ########################################################################### # COIN_ENABLE_DOSCOMPILE # ########################################################################### # This macro is invoked by any PROG_compiler macro to establish the # --enable-doscompile option, used when one wants to compile an executable # under Cygwin which also runs directly under DOS (without requiring # Cygwin1.dll). The job of this macro is to make sure the option is correct and # to set enable_doscompile. Legal values are mingw, msvc, and no (disabled). # mingw: Fake mingw under cygwin, using GCC tools and -mno-cygwin. The most # important thing here is that preprocess, compile, and link steps # *all* see -mno-cygwin. # msvc: Assume the presence of cl/link. It's the user's responsibility to # make sure their PATH is correct. In particular, that MSVC link is # found and not cygwin link (we want to do code linking, not file # linking). # It's the responsibility of individual PROG_compiler macros to ensure that # they correctly set the compiler search list and preprocess, compile, and # link flags. This is tied to compiler setup because in practice invocations # of the preprocessor and linker are made through the compiler. AC_DEFUN([AC_COIN_ENABLE_DOSCOMPILE], [AC_REQUIRE([AC_CANONICAL_BUILD]) AC_ARG_ENABLE([doscompile], [AC_HELP_STRING([--enable-doscompile], [Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled.])], [if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) AC_MSG_ERROR([--enable-doscompile option makes sense only under Cygwin or MinGW]) ;; esac fi], [enable_doscompile=no]) case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) AC_MSG_ERROR([Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive.]) ;; esac if test "$enable_doscompile" != no ; then AC_MSG_NOTICE([DOS compile style is: $enable_doscompile]) fi ]) ########################################################################### # COIN_PROG_CXX # ########################################################################### # Find the compile command by running AC_PROG_CXX (with compiler names for # different operating systems) and put it into CXX (unless it was given by the # user). Then find an appropriate value for CXXFLAGS. If either of CXXFLAGS or # PRJCT_CXXFLAGS is defined, that value is used (replace PRJCT with the upper # case name of this project). It is possible to provide additional -D flags # in the variable CXXDEFS, and additional compilation flags with ADD_CXXFLAGS. AC_DEFUN([AC_COIN_PROG_CXX], [AC_REQUIRE([AC_COIN_PROG_CC]) #Let's try if that overcomes configuration problem with VC++ 6.0 AC_REQUIRE([AC_COIN_ENABLE_DOSCOMPILE]) AC_LANG_PUSH(C++) AC_ARG_VAR(CXXDEFS,[Additional -D flags to be used when compiling C++ code.]) AC_ARG_VAR(ADD_CXXFLAGS,[Additional C++ compiler options]) AC_ARG_VAR(DBG_CXXFLAGS,[Debug C++ compiler options]) AC_ARG_VAR(OPT_CXXFLAGS,[Optimize C++ compiler options]) coin_has_cxx=yes save_cxxflags="$CXXFLAGS" # For *-*-solaris*, promote Studio/Workshop compiler to front of list. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="g++ cl" fi ;; *-*-solaris*) comps="CC xlC_r aCC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; *-darwin*) comps="g++ c++ CC" ;; *-linux-gnu*) comps="g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC xlC_r aCC CC" ;; *) comps="xlC_r aCC CC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CXX || test "${ac_cv_prog_CXX+set}" != set || { ac_cv_prog_CXX=; export ac_cv_prog_CXX; } # AC_MSG_NOTICE([C++ compiler candidates: $comps]) AC_PROG_CXX([$comps]) #AC_PROG_CXX sets CXX to g++ if it cannot find a working C++ compiler #thus, we test here whether $CXX is actually working AC_LANG_PUSH(C++) AC_MSG_CHECKING([whether C++ compiler $CXX works]); AC_COMPILE_IFELSE( [AC_LANG_PROGRAM(, [int i=0;])], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) AC_MSG_ERROR(failed to find a C++ compiler or C++ compiler $CXX does not work)] ) AC_LANG_POP(C++) coin_cxx_is_cl=false # It seems that we need to cleanup something here for the Windows case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh mv confdefs.hh confdefs.h coin_cxx_is_cl=true ;; esac # add automake conditional so we can recognize cl compiler in makefile AM_CONDITIONAL(COIN_CXX_IS_CL, [test $coin_cxx_is_cl = true]) # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cxx_g" = yes ; then ac_cv_prog_cxx_g=no AC_MSG_NOTICE([Overruling autoconf; cl does not recognise -g.]) fi ;; * ) CYGPATH_W=echo ;; esac CXXFLAGS="$save_cxxflags" # Check if a project specific CXXFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CXXFLAGS+set} if test x$coin_tmp = xset; then eval CXXFLAGS=\${${COIN_PRJCT}_CXXFLAGS} fi fi if test x"$CXXFLAGS" = x; then # ToDo decide whether we want -DNDEBUG for optimization coin_add_cxxflags= coin_opt_cxxflags= coin_dbg_cxxflags= coin_warn_cxxflags= if test "$GXX" = "yes"; then case "$CXX" in icpc* | */icpc*) ;; *) # ToDo decide about unroll-loops coin_opt_cxxflags="-O3" coin_add_cxxflags="-pipe" coin_dbg_cxxflags="-g -O0" coin_warn_cxxflags="-Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cxxflags="-pedantic-errors $coin_warn_cxxflags" ;; esac case $enable_doscompile in mingw) CXXFLAGS="-mno-cygwin" AC_TRY_LINK(,[int i=0; i++;],[coin_add_cxxflags="-mno-cygwin $coin_add_cxxflags"]) CXXFLAGS= ;; esac esac fi # Note that we do not need to cover GCC in the following tests. if test -z "$coin_opt_cxxflags"; then case $build in *-cygwin* | *-mingw*) case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -O2' coin_dbg_cxxflags='-MDd' else coin_opt_cxxflags='-MT -O2' coin_dbg_cxxflags='-MTd' fi coin_add_cxxflags='-nologo -EHsc -GR -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -Ox' coin_dbg_cxxflags='-MDd -debug' else coin_opt_cxxflags='-MT -Ox' coin_dbg_cxxflags='-MTd -debug' fi coin_add_cxxflags='-nologo -EHsc -GR -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CXX" in icpc* | */icpc*) coin_opt_cxxflags="-O3 -ip -mp1" coin_add_cxxflags="" coin_dbg_cxxflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CXXFLAGS= AC_TRY_LINK(,[int i=0; i++;],[], [coin_add_cxxflags="-i_dynamic $coin_add_cxxflags"]) ;; pgCC* | */pgCC*) coin_opt_cxxflags="-fast" coin_add_cxxflags="-Kieee -pc 64" coin_dbg_cxxflags="-g" ;; esac ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) coin_opt_cxxflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cxxflags="-bmaxdata:0x80000000 -qrtti=dyna -qsuppress=1500-036 -qsuppress=1500-029 -qsourcetype=c++" coin_dbg_cxxflags="-g" ;; esac ;; *-hp-*) case "$CXX" in aCC* | */aCC* ) coin_opt_cxxflags="-O" coin_add_cxxflags="-AA" coin_dbg_cxxflags="-g" ;; esac ;; *-*-solaris*) coin_opt_cxxflags="-O4" coin_dbg_cxxflags="-g" ;; esac fi # Generic flag settings. If these don't work, add a case above. if test "$ac_cv_prog_cxx_g" = yes && test -z "$coin_dbg_cxxflags" ; then coin_dbg_cxxflags="-g" fi if test -z "$coin_opt_cxxflags"; then # Try if -O option works if nothing else is set CXXFLAGS=-O AC_TRY_LINK([],[int i=0; i++;],[coin_opt_cxxflags="-O"]) fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cxxflags" = xyes; then coin_warn_cxxflags= fi # Do final setup of flags based on values determined above. if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$coin_dbg_cxxflags $coin_add_cxxflags $coin_warn_cxxflags" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$coin_opt_cxxflags $coin_add_cxxflags -DNDEBUG $coin_warn_cxxflags" fi DBG_CXXFLAGS="$DBG_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" OPT_CXXFLAGS="$OPT_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test "$coin_debug_compile" = "true"; then CXXFLAGS="$DBG_CXXFLAGS" else CXXFLAGS="$OPT_CXXFLAGS" fi # Handle the case where CXXFLAGS was set externally. else CXXFLAGS="$CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$CXXFLAGS" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$CXXFLAGS" fi fi # If CXXFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CXXFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CXXFLAGS="$CXXFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CXXFLAGS works save_CXXFLAGS="$CXXFLAGS" AC_TRY_LINK([],[int i=0; i++;],[],[CXXFLAGS=]) if test -z "$CXXFLAGS"; then AC_MSG_WARN([The flags CXXFLAGS="$save_CXXFLAGS" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually.]) CXXFLAGS='-O' AC_TRY_LINK([],[int i=0; i++;],[],[CXXFLAGS=]) if test -z "$CXXFLAGS"; then AC_MSG_WARN([This value for CXXFLAGS does not work. I will continue with empty CXXFLAGS, but you might want to set CXXFLAGS manually.]) fi fi AC_MSG_NOTICE([C++ compiler options are: $CXXFLAGS]) AC_ARG_VAR(MPICXX,[C++ MPI Compiler]) if test x"$MPICXX" = x; then :; else AC_MSG_NOTICE([Will use MPI C++ compiler $MPICXX]) CXX="$MPICXX" fi # correct the LD variable in a mingw build with MS or intel compiler case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) AC_COIN_MINGW_LD_FIX ;; esac AC_LANG_POP(C++) ]) # AC_COIN_PROG_CXX ########################################################################### # COIN_CXXLIBS # ########################################################################### # Determine the C++ runtime libraries required for linking a C++ library # with a Fortran or C compiler. The result is available in CXXLIBS. AC_DEFUN([AC_COIN_CXXLIBS], [AC_REQUIRE([AC_PROG_CXX])dnl AC_LANG_PUSH(C++) AC_ARG_VAR(CXXLIBS,[Libraries necessary for linking C++ code with Fortran compiler]) if test -z "$CXXLIBS"; then if test "$GXX" = "yes"; then case "$CXX" in icpc* | */icpc*) CXXLIBS="-lstdc++" ;; *) CXXLIBS="-lstdc++ -lm" # -lgcc" ;; esac else case $build in *-mingw32 | *-cygwin* ) case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL*) CXXLIBS=nothing;; esac;; *-linux-*) case "$CXX" in icpc* | */icpc*) CXXLIBS="-lstdc++" ;; pgCC* | */pgCC*) CXXLIBS="-lstd -lC -lc" ;; esac;; *-ibm-*) CXXLIBS="-lC -lc" ;; *-hp-*) CXXLIBS="-L/opt/aCC/lib -l++ -lstd_v2 -lCsup_v2 -lm -lcl -lc" ;; *-*-solaris*) CXXLIBS="-lCstd -lCrun" esac fi fi if test -z "$CXXLIBS"; then AC_MSG_WARN([Could not automatically determine CXXLIBS (C++ link libraries; necessary if main program is in Fortran or C).]) else AC_MSG_NOTICE([Assuming that CXXLIBS is \"$CXXLIBS\".]) fi if test x"$CXXLIBS" = xnothing; then CXXLIBS= fi AC_LANG_POP(C++) ]) # AC_COIN_CXXLIBS ########################################################################### # COIN_CHECK_HEADER # ########################################################################### # This macro checks for a header file, but it does so without the # standard header. This avoids warning messages like: # # configure: WARNING: dlfcn.h: present but cannot be compiled # configure: WARNING: dlfcn.h: check for missing prerequisite headers? # configure: WARNING: dlfcn.h: see the Autoconf documentation # configure: WARNING: dlfcn.h: section "Present But Cannot Be Compiled" # configure: WARNING: dlfcn.h: proceeding with the preprocessor's result # configure: WARNING: dlfcn.h: in the future, the compiler will take precedence # My guess that the problem lay with CPPFLAGS seems to be correct. With this # macro reduced to a direct call to AC_CHECK_HEADERS, there are no warnings # now that CPPFLAGS contains -mno-cygwin when it needs it. -- lh, 061214 -- # AW 070609: I restored the previous version, since otherwise the warnings # still pop up for the cl compiler AC_DEFUN([AC_COIN_CHECK_HEADER], [#if test x"$4" = x; then # hdr="#include <$1>" #else # hdr="$4" #fi #AC_CHECK_HEADERS([$1],[$2],[$3],[$hdr]) AC_CHECK_HEADERS([$1],[$2],[$3],[$4]) ]) # AC_COIN_CHECK_HEADER ########################################################################### # COIN_CHECK_CXX_CHEADER # ########################################################################### # This macro checks for C header files that are used from C++. For a give # stub (e.g., math), it first checks if the C++ library (cmath) is available. # If it is, it defines HAVE_CMATH (or whatever the stub is). If it is not # available, it checks for the old C head (math.h) and defines HAVE_MATH_H # if that one exists. AC_DEFUN([AC_COIN_CHECK_CXX_CHEADER], [AC_LANG_PUSH(C++) AC_COIN_CHECK_HEADER([c$1],[$2],[$3],[$4]) if test "$ac_cv_header_c$1" != "yes"; then AC_COIN_CHECK_HEADER([$1.h],[$2],[$3],[$4]) fi AC_LANG_POP(C++) ]) # AC_COIN_CHECK_CXX_CHEADER ########################################################################### # COIN_PROG_CC # ########################################################################### # Find the compile command by running AC_PROG_CC (with compiler names # for different operating systems) and put it into CC (unless it was # given my the user), and find an appropriate value for CFLAGS. It is # possible to provide additional -D flags in the variable CDEFS. AC_DEFUN([AC_COIN_PROG_CC], [AC_REQUIRE([AC_COIN_MINGW_LD_FIX]) AC_REQUIRE([AC_COIN_ENABLE_DOSCOMPILE]) AC_LANG_PUSH(C) # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" AC_MSG_WARN([C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX]) fi ;; esac fi AC_ARG_VAR(CDEFS,[Additional -D flags to be used when compiling C code.]) AC_ARG_VAR(ADD_CFLAGS,[Additional C compiler options]) AC_ARG_VAR(DBG_CFLAGS,[Debug C compiler options]) AC_ARG_VAR(OPT_CFLAGS,[Optimize C compiler options]) coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) AC_CHECK_PROG(sol_cc_compiler,cc,cc,[],[],/usr/ucb/cc) if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) AC_PROG_CC([$comps]) if test -z "$CC" ; then AC_MSG_ERROR([Failed to find a C compiler!]) fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no AC_MSG_NOTICE([Overruling autoconf; cl does not recognise -g.]) fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac AM_CONDITIONAL(COIN_CC_IS_CL, [test $coin_cc_is_cl = true]) # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" AC_TRY_LINK([],[int i=0; i++;], [coin_add_cflags="-mno-cygwin $coin_add_cflags"]) CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= AC_TRY_LINK([],[int i=0; i++;],[], [coin_add_cflags="-i_dynamic $coin_add_cflags"]) ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" AC_TRY_LINK([],[int i=0; i++;],[coin_opt_cflags="-O"]) fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" AC_TRY_LINK([],[int i=0; i++;],[],[CFLAGS=]) if test -z "$CFLAGS"; then AC_MSG_WARN([The value CFLAGS="$save_CFLAGS" do not work. I will now just try '-O', but you might want to set CFLAGS manually.]) CFLAGS='-O' AC_TRY_LINK([],[int i=0; i++;],[],[CFLAGS=]) if test -z "$CFLAGS"; then AC_MSG_WARN([This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually.]) fi fi AC_MSG_NOTICE([C compiler options are: $CFLAGS]) AC_ARG_VAR(MPICC,[C MPI Compiler]) if test x"$MPICC" = x; then :; else AC_MSG_NOTICE([Will use MPI C compiler $MPICC]) CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) AC_COIN_MINGW_LD_FIX ;; esac AC_LANG_POP(C) ]) # AC_COIN_PROG_CC ########################################################################### # COIN_PROG_F77 # ########################################################################### # Find the compile command by running AC_PROG_F77 (with compiler names # for different operating systems) and put it into F77 (unless it was # given by the user), and find an appropriate value for FFLAGS AC_DEFUN([AC_COIN_PROG_F77], [AC_REQUIRE([AC_COIN_MINGW_LD_FIX]) AC_REQUIRE([AC_COIN_ENABLE_DOSCOMPILE]) AC_REQUIRE([AC_COIN_PROG_CC]) AC_REQUIRE([AC_COIN_F77_COMPS]) AC_LANG_PUSH([Fortran 77]) AC_ARG_VAR(ADD_FFLAGS,[Additional Fortran compiler options]) AC_ARG_VAR(DBG_FFLAGS,[Debug Fortran compiler options]) AC_ARG_VAR(OPT_FFLAGS,[Optimize Fortran compiler options]) coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) AC_COIN_FIND_F77 if test "$F77" != "unavailable" ; then AC_PROG_F77($coin_f77_comps) else AC_MSG_WARN([Failed to find a Fortran compiler!]) fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" AC_TRY_LINK(,[ write(*,*) 'Hello world'], [coin_add_fflags="-mno-cygwin $coin_add_fflags"]) FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= AC_TRY_LINK(,[ write(*,*) 'Hello world'],[], [coin_add_fflags="-i_dynamic $coin_add_fflags"]) ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O AC_TRY_LINK(,[ integer i], [coin_opt_fflags="-O"]) fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then AC_TRY_LINK(,[ integer i],[],[FFLAGS=]) if test -z "$FFLAGS"; then AC_MSG_WARN([The flags FFLAGS="$FFLAGS" do not work. I will now just try '-O', but you might want to set FFLAGS manually.]) FFLAGS='-O' AC_TRY_LINK(,[ integer i],[],[FFLAGS=]) if test -z "$FFLAGS"; then AC_MSG_WARN([This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually.]) fi fi fi AC_MSG_NOTICE([Fortran compiler options are: $FFLAGS]) AC_ARG_VAR(MPIF77,[Fortran MPI Compiler]) if test x"$MPIF77" = x; then :; else AC_MSG_NOTICE([Will use MPI Fortran compiler $MPIF77]) F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) AC_COIN_MINGW_LD_FIX ;; esac AC_LANG_POP([Fortran 77]) ]) # AC_COIN_PROG_F77 ########################################################################### # COIN_F77_WRAPPERS # ########################################################################### # Calls autoconfs AC_F77_LIBRARY_LDFLAGS and does additional corrections to FLIBS. # Then calls AC_F77_WRAPPERS to get Fortran namemangling scheme. # # To ensure that the FLIBS are determined and corrected before linking against # Fortran compilers is attempted by other macros, we put it into an extra macro # and call it via AC_REQUIRE. This way it seems to be called before the macros # required by AC_F77_WRAPPERS. AC_DEFUN([_AC_COIN_F77_LIBRARY_LDFLAGS], [AC_BEFORE([AC_PROG_F77],[$0])dnl # get FLIBS AC_F77_LIBRARY_LDFLAGS orig_FLIBS="$FLIBS" # If FLIBS has been set by the user, we just restore its value here if test x"$save_FLIBS" != x; then FLIBS="$save_FLIBS" else # This is to correct a missing exclusion in autoconf 2.59 if test x"$FLIBS" != x; then my_flibs= for flag in $FLIBS; do case $flag in -lcrt*.o) ;; -lcygwin) ;; *) my_flibs="$my_flibs $flag" ;; esac done FLIBS="$my_flibs" fi case $build in # The following is a fix to define FLIBS for ifort on Windows # In its original version, it linked in libifcorert.lib or libifcorertd.lib on Windows/ifort explicitly. # However, this seem to create a dependency on libifcorert.dll (or libifcorertd.dll) in the executables. # This is seem to be unnecessary, libifcorert(d).lib has been removed from the link line. # Further, excluding libc.lib from the default libs seemed to be necessary only for VS < 8. # Since the corresponding flag seems to make more trouble than it avoids, it has been removed now. *-cygwin* | *-mingw*) case "$F77" in # ifort* | */ifort* | IFORT* | */IFORT*) # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib" # if "$coin_debug_compile" = true ; then # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib" # else # FLIBS="-link $LIBS /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmtd.lib" # fi # ;; compile_f2c*) FLIBS=`$F77 -FLIBS` ;; esac;; *-hp-*) FLIBS="$FLIBS -lm";; *-ibm-*) FLIBS=`echo $FLIBS | sed 's/-lc)/-lc/g'` ;; *-linux-*) case "$F77" in pgf77* | */pgf77* | pgf90* | */pgf90*) # ask linker to go through the archives multiple times # (the Fortran compiler seems to do that automatically...) FLIBS="-Wl,--start-group $FLIBS -Wl,--end-group" ;; esac esac ac_cv_f77_libs="$FLIBS" fi if test "x$orig_FLIBS" != "x$FLIBS" ; then AC_MSG_NOTICE([Corrected Fortran libraries: $FLIBS]) fi ]) # _AC_COIN_F77_LIBRARY_LDFLAGS AC_DEFUN([AC_COIN_F77_WRAPPERS], [AC_BEFORE([AC_COIN_PROG_F77],[$0])dnl AC_REQUIRE([_AC_COIN_F77_LIBRARY_LDFLAGS])dnl AC_LANG_PUSH([Fortran 77]) AC_F77_WRAPPERS AC_LANG_POP([Fortran 77]) ]) # AC_COIN_F77_WRAPPERS ########################################################################### # COIN_FIND_F77 # ########################################################################### # Attempt to preempt autoconf by locating an appropriate F77 program. This # macro will not trigger a fatal error if a suitable compiler cannot be # found. It should be called before COIN_PROG_F77 or COIN_TRY_FLINK. AC_DEFUN([AC_COIN_FIND_F77], [AC_REQUIRE([AC_COIN_ENABLE_DOSCOMPILE]) AC_REQUIRE([AC_COIN_F77_COMPS]) AC_MSG_NOTICE([Trying to determine Fortran compiler name]) AC_CHECK_TOOLS([F77],[$coin_f77_comps],[unavailable]) ]) # Auxilliary macro to make sure both COIN_PROG_F77 and COIN_FIND_F77 use # the same search lists for compiler names. # For *-*-solaris*, promote Studio/Workshop compilers to front of list. AC_DEFUN([AC_COIN_F77_COMPS], [case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ]) ########################################################################### # COIN_INIT_AUTOMAKE # ########################################################################### # This macro calls the regular INIT_AUTOMAKE and MAINTAINER_MODE # macros, and defines additional variables and makefile conditionals, # that are used in the maintainer parts of the makfile. It also # checks if the correct versions of the autotools are used. # # This also defines the AC_SUBST variables: # abs_source_dir absolute path to source code for this package # abs_bin_dir absolute path to the directory where binaries are # going to be installed (prefix/bin) # abs_lib_dir absolute path to the directory where libraries are # going to be installed (prefix/lib) # abs_include_dir absolute path to the directory where the header files # are installed (prefix/include) AC_DEFUN([AC_COIN_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_EGREP]) AC_REQUIRE([AC_PROG_LN_S]) # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake AM_INIT_AUTOMAKE AM_MAINTAINER_MODE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) AC_SUBST(LIBTOOLM4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME AC_CACHE_CHECK([whether we are using the correct autotools], [ac_cv_use_correct_autotools], [ac_cv_use_correct_autotools=check]) if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf AC_CHECK_PROG([have_autoconf],[autoconf],[yes],[no]) if test $have_autoconf = no; then AC_MSG_ERROR([You specified you want to use maintainer mode, but I cannot find autoconf in your path.]) fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` AC_MSG_CHECKING([whether we are using the correct version ($correct_version) of autoconf]) autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then AC_MSG_RESULT([yes]) else rm -f confauto.out AC_MSG_RESULT([no]) AC_MSG_ERROR([You don't have the correct version of autoconf as the first one in your path.]) fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location AC_MSG_CHECKING([whether autoconf is coming from the correct location]) autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then AC_MSG_RESULT([yes]) else rm -f confauto.out AC_MSG_RESULT([no]) AC_MSG_ERROR([The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin.]) fi # Check if we have automake AC_CHECK_PROG([have_automake],[automake],[yes],[no]) if test $have_automake = no; then AC_MSG_ERROR([You specified you want to use maintainer mode, but I cannot find automake in your path.]) fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` AC_MSG_CHECKING([whether we are using the correct version ($correct_version) of automake]) automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then AC_MSG_RESULT([yes]) else rm -f confauto.out AC_MSG_RESULT([no]) AC_MSG_ERROR([You don't have the correct version of automake as the first one in your path.]) fi rm -f confauto.out # Check if the executable automake is picked up from the correct location AC_MSG_CHECKING([whether automake is coming from the correct location]) automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then AC_MSG_RESULT([yes]) else rm -f confauto.out AC_MSG_RESULT([no]) AC_MSG_ERROR([The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin.]) fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` AC_COIN_CHECK_FILE([$want_dir/libtool/ltmain.sh], [have_ltmain=yes], [have_ltmain=no]) AC_MSG_CHECKING([whether we are using the correct version ($correct_version) of libtool.]) if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([You don't have the correct version of libtool.]) fi else AC_MSG_RESULT([no]) AC_MSG_ERROR([I cannot find the ltmain.sh file.]) fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi AC_COIN_CHECK_FILE([$want_dir/aclocal/libtool.m4], [LIBTOOLM4="$want_dir/aclocal/libtool.m4"], [AC_MSG_ERROR([I cannot find the libtool.m4 file.])]) # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https AC_CHECK_PROG([have_svn],[svn],[yes],[no]) if test x$have_svn = xyes; then AC_CACHE_CHECK([whether svn understands https], [ac_cv_svn_understands_https], [svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out]) fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else AC_MSG_ERROR(Cannot find the BuildTools directory, better disable maintainer mode.) fi fi fi AC_SUBST(BUILDTOOLSDIR) # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AC_SUBST(AUX_DIR) AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` AC_SUBST(abs_source_dir) # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` AC_SUBST(abs_lib_dir) abs_lib_dir=$full_prefix/lib AC_SUBST(abs_include_dir) abs_include_dir=$full_prefix/include AC_SUBST(abs_bin_dir) abs_bin_dir=$full_prefix/bin AM_CONDITIONAL(HAVE_EXTERNALS, test $coin_have_externals = yes && test x$have_svn = xyes) # AC_MSG_NOTICE([End automake initialisation.]) ]) # AC_COIN_INIT_AUTOMAKE ########################################################################### # COIN_CREATE_LIBTOOL # ########################################################################### # This does all the tests necessary to create the libtool script in the # package base directory. If this is used, then the COIN_INIT_AUTO_TOOLS # test in the subdirectories will be able to skip the libtool tests and # just use the one in the package base directory. m4_define([AC_COIN_CREATE_LIBTOOL], [AC_CANONICAL_BUILD # Check if user wants to produce debugging code AC_COIN_DEBUG_COMPILE # Get the name of the C compiler and appropriate compiler options AC_COIN_PROG_CC # Get the name of the C++ compiler and appropriate compiler options AC_COIN_PROG_CXX # Get the name of the Fortran compiler and appropriate compiler options AC_COIN_PROG_F77 # Initialize automake and libtool # AC_MSG_NOTICE([Calling INIT_AUTO_TOOLS from CREATE_LIBTOOL.]) AC_COIN_INIT_AUTO_TOOLS # AC_MSG_NOTICE([Finished INIT_AUTO_TOOLS from CREATE_LIBTOOL.]) ]) ########################################################################### # COIN_INIT_AUTO_TOOLS # ########################################################################### # Initialize the auto tools automake and libtool, with all # modifications we want for COIN packages. # # RPATH_FLAGS link flags for hardcoding path to shared objects # This is a trick to have this code before AC_COIN_PROG_LIBTOOL AC_DEFUN([AC_COIN_DISABLE_STATIC], [ coin_disable_shared=no # Test if force_shared has been set if test "x$1" = xforce_shared; then if test x$enable_shared = xno; then AC_MSG_ERROR([Shared libraries are disabled by user, but this is not feasible with the given options]) fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) AC_MSG_WARN([DLL building not supported. I'm disabling your choice.]) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) AC_MSG_WARN([DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d).]) ;; *) AC_MSG_WARN([DLL building not supported. I'm disabling your choice.]) ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then AC_MSG_WARN([Shared objects are not supported. I'm disabling your choice.]) fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled AC_DISABLE_STATIC ]) m4_define([AC_COIN_INIT_AUTO_TOOLS], [{AC_BEFORE([AC_COIN_PROG_CXX],[$0]) AC_BEFORE([AC_COIN_PROG_CC],[$0]) AC_BEFORE([AC_COIN_PROG_F77],[$0]) # START AC_COIN_DISABLE_STATIC([$1]) # Initialize automake AC_COIN_INIT_AUTOMAKE LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool AC_COIN_PROG_LIBTOOL # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects AC_COIN_RPATH_FLAGS([$abs_lib_dir]) else AC_MSG_NOTICE([Using libtool script in directory $coin_config_dir]) # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_@<:@A-Z_@:>@*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version AC_MSG_CHECKING([if library version is set]) if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" AC_MSG_RESULT([$coin_libversion]) else AC_MSG_RESULT([no]) fi AC_SUBST(LT_LDFLAGS) #END }]) ########################################################################### # COIN_PATCH_LIBTOOL_CYGWIN # ########################################################################### # Patches to libtool for cygwin. Lots for cl, a few for GCC. # For cl: # - cygpath is not correctly quoted in fix_srcfile_path # - paths generated for .lib files is not run through cygpath -w AC_DEFUN([AC_COIN_PATCH_LIBTOOL_CYGWIN], [ case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? AC_MSG_NOTICE(Applying patches to libtool for CLANG compiler) sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) AC_MSG_NOTICE(Applying patches to libtool for cl compiler) sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$[]1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$[]1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$[]1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) AC_MSG_NOTICE(Applying patches to libtool for GNU compiler) sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ]) # COIN_PATCH_LIBTOOL_CYGWIN ########################################################################### # COIN_PATCH_LIBTOOL_SOLARIS # ########################################################################### # If we want to do a 64-bit build with GCC on Solaris, the system search # libraries need to point to 64-bit subdirectories. If they do not already do # that, fix them. This patch is evolving, as are GCC compilers. GCC 4.2.1 # reports the correct search list, given the correct call. GCC 4.1.1 does not. # `Correct call' means -m64 is specified. `Correct search list' seems to amount # to prepending the list of 64-bit subdirectories to the 32-bit directories. # Both SPARC and x86 have this issue, but a different hardware id string is # required depending on the underlying CPU. The macro executes isainfo to get # the string. This will fail, of course, if we're cross-compiling. The # alternative is to fail on a regular basis each time a new CPU identifier is # needed. This macro will also fail if the search list reported with # -print-search-dirs differs between the C, C++, and Fortran compilers; each # have their own setting in libtool. If GCC reports the correct search list # given the -m64 flag, the best solution is to define CC='gcc -m64', and # similarly for CXX, F77, so that libtool will make the correct call. ########################################################################### AC_DEFUN([AC_COIN_PATCH_LIBTOOL_SOLARIS], [ if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\(@<:@^ @:>@*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then AC_MSG_NOTICE([Applying patches to libtool for 64-bit GCC compilation]) fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ]) # COIN_PATCH_LIBTOOL_SOLARIS ########################################################################### # COIN_PROG_LIBTOOL # ########################################################################### # Setup the libtool stuff together with any modifications to make it # work on additional platforms AC_DEFUN([AC_COIN_PROG_LIBTOOL], [# No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) AC_PROG_LIBTOOL # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) AC_SUBST(ac_c_preproc_warn_flag) AC_SUBST(ac_cxx_preproc_warn_flag) AC_MSG_NOTICE([Build is "$build".]) mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then AC_MSG_NOTICE(Applying patches to libtool for 32bit compilation) sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) AC_COIN_PATCH_LIBTOOL_SOLARIS ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) AC_COIN_PATCH_LIBTOOL_CYGWIN ;; *-darwin*) AC_MSG_NOTICE(Applying patches to libtool for Darwin) sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) ]) # AC_COIN_PROG_LIBTOOL # This is a trick to force the check for the dlfcn header to be done before # the checks for libtool # No longer needed now that CPPFLAGS is correctly set. -- lh, 061214 -- # ACDEFUN([AC_COIN_DLFCN_H], # [AC_LANG_PUSH(C) # AC_COIN_CHECK_HEADER([dlfcn.h]) # AC_LANG_POP(C) # ]) # AC_COIN_DLFCN_H ########################################################################### # COIN_RPATH_FLAGS # ########################################################################### # This macro, in case shared objects are used, defines a variable # RPATH_FLAGS that can be used by the linker to hardwire the library # search path for the given directories. This is useful for example # Makefiles AC_DEFUN([AC_COIN_RPATH_FLAGS], [RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $1; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $1; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then AC_MSG_WARN([Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually.]) fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi AC_SUBST(RPATH_FLAGS) ]) # AC_COIN_RPATH_FLAGS ########################################################################### # COIN_LINK_INPUT_CMD # ########################################################################### # This macro determines which command should be used to "link" files # that are input to the generated executables. On Windows, the codes # using the native Windows system libraries, cannot understand symbolic # links, and a copy should be used instead of 'ln -s'. # The result is stored in coin_link_input_cmd AC_DEFUN([AC_COIN_LINK_INPUT_CMD], [AC_REQUIRE([AC_PROG_LN_S]) AC_BEFORE([AC_COIN_PROG_CC], [$0]) AC_BEFORE([AC_COIN_ENABLE_DOSCOMPILE], [$0]) AC_MSG_CHECKING([which command should be used to link input files]) coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac AC_MSG_RESULT($coin_link_input_cmd) ]) ########################################################################### # COIN_FINALIZE # ########################################################################### # This macro should be called at the very end of the configure.ac file. # It creates the output files (by using AC_OUTPUT), and might do some other # things (such as generating links to data files in a VPATH configuration). # It also prints the "success" message. # Note: If the variable coin_skip_ac_output is set to yes, then no output # files are written. AC_DEFUN([AC_COIN_FINALIZE], [ AC_REQUIRE([AC_COIN_LINK_INPUT_CMD]) if test x$coin_skip_ac_output != xyes; then # library extension AC_SUBST(LIBEXT) case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration AC_SUBST(VPATH_DISTCLEANFILES) VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" AC_SUBST(ABSBUILDDIR) fi AC_OUTPUT if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then AC_MSG_NOTICE(Copying data files for VPATH configuration) else AC_MSG_NOTICE(Creating VPATH links for data files) fi for file in $coin_vpath_link_files; do dir=`AS_DIRNAME(["./$file"])` if test -d $dir; then : ; else AS_MKDIR_P($dir) fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi AC_MSG_NOTICE([In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting]) if test x$coin_projectdir = xyes; then AC_MSG_NOTICE([Configuration of $PACKAGE_NAME successful]) else AC_MSG_NOTICE([Main configuration of $PACKAGE_NAME successful]) fi else AC_MSG_NOTICE([No configuration of $PACKAGE_NAME necessary]) fi ]) #AC_COIN_FINALIZE ########################################################################### # COIN_VPATH_LINK # ########################################################################### # This macro queues source files that need to be available in the build # directory. In a VPATH configuration, the files will be made available by # symbolic link or copy (when the platform does not support links). The list # is processed by COIN_FINALIZE. The parameter is a whitespace-separated # list of files. AC_DEFUN([AC_COIN_VPATH_LINK], [ AC_REQUIRE([AC_COIN_CHECK_VPATH]) # Allow for newlines in the parameter if test $coin_vpath_config = yes; then cvl_tmp="$1" for file in $cvl_tmp ; do coin_vpath_link_files="$coin_vpath_link_files $file" done fi ]) #AC_COIN_VPATH_LINK ########################################################################### # COIN_ENABLE_GNU_PACKAGES # ########################################################################### # This macro defined the --enable-gnu-packages flag. This can be used # to check if a user wants to compile GNU packges (such as readline) # into the executable. By default, GNU packages are disabled. # This also defines the automake conditional COIN_ENABLE_GNU_PACKAGES AC_DEFUN([AC_COIN_ENABLE_GNU_PACKAGES], [AC_ARG_ENABLE([gnu-packages], [AC_HELP_STRING([--enable-gnu-packages], [compile with GNU packages (disabled by default)])], [coin_enable_gnu=$enableval], [coin_enable_gnu=no]) ]) # AC_COIN_ENABLE_GNU_PACKAGES ####################################################################### # COIN_CHECK_LIBM # ####################################################################### # For a (space separated) list of arguments X, this macro adds the flags # for linking against the math library to a X_LIBS and X_PCLIBS. AC_DEFUN([AC_COIN_CHECK_LIBM], [AC_BEFORE([AC_COIN_PROG_CC],[$0]) if test $coin_cc_is_cl != true ; then coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_LIBS="-lm $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="-lm $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="-lm $m4_toupper(myvar)_LIBS_INSTALLED" ]) fi ]) # AC_COIN_CHECK_LIBM ########################################################################### # COIN_CHECK_GNU_ZLIB # ########################################################################### # This macro checks for the libz library. If found, it sets the automake # conditional COIN_HAS_ZLIB and defines the C preprocessor variable # COIN_HAS_ZLIB. Further, for a (space separated) list of arguments X, # it adds the linker flag to the variables X_LIBS, X_PCLIBS, and X_LIBS_INSTALLED. # TODO the macro name should be changed to AC_COIN_CHECK_ZLIB AC_DEFUN([AC_COIN_CHECK_GNU_ZLIB], [ AC_BEFORE([AC_COIN_PROG_CXX],[$0]) AC_BEFORE([AC_COIN_PROG_CC],[$0]) AC_BEFORE([AC_COIN_PROG_F77],[$0]) AC_BEFORE([$0],[AC_COIN_FINALIZE]) coin_has_zlib=no AC_ARG_ENABLE([zlib], [AC_HELP_STRING([--disable-zlib],[do not compile with compression library zlib])], [coin_enable_zlib=$enableval], [coin_enable_zlib=yes]) if test $coin_enable_zlib = yes; then AC_COIN_CHECK_HEADER([zlib.h],[coin_has_zlib=yes]) if test $coin_has_zlib = yes; then AC_CHECK_LIB([z],[gzopen],[:],[coin_has_zlib=no]) fi if test $coin_has_zlib = yes; then coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_LIBS="-lz $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="-lz $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="-lz $m4_toupper(myvar)_LIBS_INSTALLED" ]) AC_DEFINE([COIN_HAS_ZLIB],[1],[Define to 1 if zlib is available]) fi fi AM_CONDITIONAL(COIN_HAS_ZLIB,test x$coin_has_zlib = xyes) ]) # AC_COIN_CHECK_GNU_ZLIB ########################################################################### # COIN_CHECK_GNU_BZLIB # ########################################################################### # This macro checks for the libbz2 library. If found, it defines the C # preprocessor variable COIN_HAS_BZLIB. Further, for a (space separated) list # of arguments X, it adds the linker flag to the variables X_LIBS, X_PCLIBS, and X_LIBS_INSTALLED. # TODO the macro name should be changed to AC_COIN_CHECK_BZLIB AC_DEFUN([AC_COIN_CHECK_GNU_BZLIB], [ AC_BEFORE([AC_COIN_PROG_CXX],[$0]) AC_BEFORE([AC_COIN_PROG_CC],[$0]) AC_BEFORE([AC_COIN_PROG_F77],[$0]) AC_BEFORE([$0],[AC_COIN_FINALIZE]) AC_ARG_ENABLE([bzlib], [AC_HELP_STRING([--disable-bzlib],[do not compile with compression library bzlib])], [coin_enable_bzlib=$enableval], [coin_enable_bzlib=yes]) coin_has_bzlib=no if test $coin_enable_bzlib = yes; then AC_COIN_CHECK_HEADER([bzlib.h],[coin_has_bzlib=yes]) if test $coin_has_bzlib = yes; then AC_CHECK_LIB([bz2],[BZ2_bzReadOpen],[:],[coin_has_bzlib=no]) fi if test $coin_has_bzlib = yes; then coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_LIBS="-lbz2 $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="-lbz2 $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="-lbz2 $m4_toupper(myvar)_LIBS_INSTALLED" ]) AC_DEFINE([COIN_HAS_BZLIB],[1],[Define to 1 if bzlib is available]) fi fi ]) # AC_COIN_CHECK_GNU_BZLIB ########################################################################### # COIN_CHECK_GNU_READLINE # ########################################################################### # This macro checks for GNU's readline. It verifies that the header # readline/readline.h is available, and that the -lreadline library # contains "readline". It is assumed that #include is included # in the source file before the #include # If found, it defines the C preprocessor variable COIN_HAS_READLINE. # Further, for a (space separated) list of arguments X, it adds the # linker flag to the variable X_LIBS, X_PCLIBS, and X_LIBS_INSTALLED. AC_DEFUN([AC_COIN_CHECK_GNU_READLINE], [AC_REQUIRE([AC_COIN_ENABLE_GNU_PACKAGES]) AC_BEFORE([AC_COIN_PROG_CXX],[$0]) AC_BEFORE([AC_COIN_PROG_CC],[$0]) AC_BEFORE([AC_COIN_PROG_F77],[$0]) AC_BEFORE([$0],[AC_COIN_FINALIZE]) coin_has_readline=no if test $coin_enable_gnu = yes; then AC_COIN_CHECK_HEADER([readline/readline.h], [coin_has_readline=yes],[], [#include ]) coin_save_LIBS="$LIBS" LIBS= # First we check if tputs and friends are available if test $coin_has_readline = yes; then AC_SEARCH_LIBS([tputs],[ncurses termcap curses],[], [coin_has_readline=no]) fi # Now we check for readline if test $coin_has_readline = yes; then AC_CHECK_LIB([readline],[readline],[:],[coin_has_readline=no]) fi if test $coin_has_readline = yes; then coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_LIBS="-lreadline $LIBS $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="-lreadline $LIBS $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="-lreadline $LIBS $m4_toupper(myvar)_LIBS_INSTALLED" ]) AC_DEFINE([COIN_HAS_READLINE],[1],[Define to 1 if readline is available]) fi LIBS="$coin_save_LIBS" fi ]) # AC_COIN_CHECK_GNU_READLINE ########################################################################### # COIN_CHECK_GMP # ########################################################################### # This macro checks for the gmp library. If found, it defines the C # preprocessor variable COIN_HAS_GMP. Further, for a (space separated) list # of arguments X, it adds the linker flag to the variables X_LIBS, X_PCLIBS, and X_LIBS_INSTALLED. AC_DEFUN([AC_COIN_CHECK_GMP], [ AC_BEFORE([AC_COIN_PROG_CXX],[$0]) AC_BEFORE([AC_COIN_PROG_CC],[$0]) AC_BEFORE([AC_COIN_PROG_F77],[$0]) AC_BEFORE([$0],[AC_COIN_FINALIZE]) AC_ARG_ENABLE([gmp], [AC_HELP_STRING([--disable-gmp],[do not compile with GNU multiple precision library])], [coin_enable_gmp=$enableval], [coin_enable_gmp=yes]) coin_has_gmp=no if test $coin_enable_gmp = yes; then AC_COIN_CHECK_HEADER([gmp.h],[AC_CHECK_LIB([gmp],[__gmpz_init],[coin_has_gmp=yes])]) if test $coin_has_gmp = yes ; then coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_LIBS="-lgmp $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="-lgmp $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="-lgmp $m4_toupper(myvar)_LIBS_INSTALLED" ]) AC_DEFINE([COIN_HAS_GMP],[1],[Define to 1 if GMP is available]) fi fi ]) # AC_COIN_CHECK_GMP ########################################################################### # COIN_CHECK_ISFINITE # ########################################################################### # This macro checks for a usable implementation of a function to check # whether a given floating point number is finite. # If a function is found, then the macro defines the symbol # toupper($1)_C_FINITE to the name of this function. AC_DEFUN([AC_COIN_CHECK_ISFINITE],[ AC_LANG_PUSH(C++) AC_COIN_CHECK_CXX_CHEADER(math) AC_COIN_CHECK_CXX_CHEADER(float) AC_COIN_CHECK_CXX_CHEADER(ieeefp) COIN_C_FINITE= AC_CHECK_DECL([isfinite],[COIN_C_FINITE=isfinite],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) if test -z "$COIN_C_FINITE"; then AC_CHECK_DECL([finite],[COIN_C_FINITE=finite],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) if test -z "$COIN_C_FINITE"; then AC_CHECK_DECL([_finite],[COIN_C_FINITE=_finite],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) fi fi if test -z "$COIN_C_FINITE"; then AC_MSG_WARN(Cannot find C-function for checking Inf.) else AC_DEFINE_UNQUOTED(COIN_C_FINITE,[$COIN_C_FINITE], [Define to be the name of C-function for Inf check]) fi AC_LANG_POP(C++) ]) ########################################################################### # COIN_CHECK_ISNAN # ########################################################################### # This macro checks for a usable implementation of a function to check # whether a given floating point number represents NaN. # If a function is found, then the macro defines the symbol COIN_C_ISNAN # to the name of this function. AC_DEFUN([AC_COIN_CHECK_ISNAN],[ AC_LANG_PUSH(C++) AC_COIN_CHECK_CXX_CHEADER(math) AC_COIN_CHECK_CXX_CHEADER(float) AC_COIN_CHECK_CXX_CHEADER(ieeefp) COIN_C_ISNAN= AC_CHECK_DECL([isnan],[COIN_C_ISNAN=isnan],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) # It appears that for some systems (e.g., Mac OSX), cmath will provide only # std::isnan, and bare isnan will be unavailable. Typically we need a parameter # in the test to allow C++ to do overload resolution. if test -z "$COIN_C_ISNAN"; then AC_CHECK_DECL([std::isnan(42.42)],[COIN_C_ISNAN=std::isnan],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) fi if test -z "$COIN_C_ISNAN"; then AC_CHECK_DECL([_isnan],[COIN_C_ISNAN=_isnan],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) fi if test -z "$COIN_C_ISNAN"; then AC_CHECK_DECL([isnand],[COIN_C_ISNAN=isnand],,[ #ifdef HAVE_CMATH # include #else # ifdef HAVE_MATH_H # include # endif #endif #ifdef HAVE_CFLOAT # include #else # ifdef HAVE_FLOAT_H # include # endif #endif #ifdef HAVE_CIEEEFP # include #else # ifdef HAVE_IEEEFP_H # include # endif #endif]) fi if test -z "$COIN_C_ISNAN"; then AC_MSG_WARN(Cannot find C-function for checking NaN.) else AC_DEFINE_UNQUOTED(COIN_C_ISNAN,[$COIN_C_ISNAN], [Define to be the name of C-function for NaN check]) fi AC_LANG_POP(C++) ]) ########################################################################### # COIN_DATA_PATH # ########################################################################### # This macro defines a preprocessor macro with the absolute path to a # subdirectory of Data. The argument of this macro is the name of the # subdirectory (in correct case), and the name of the macro is # COIN_DATA_DIR_PATH, where dir is replaced by the capitalized name of # the directory. The path ends with a separator ("/" for linux and # '\\' for Windows). The default value for this path can be # overwritten with the input variable with the same name # (COIN_DATA_DIR_PATH). At this point we chech only for the # $srcdir/../Data subdirectory. AC_DEFUN([AC_COIN_DATA_PATH], [AC_MSG_CHECKING([absolute path to data directory $1]) AC_ARG_VAR(m4_toupper(COIN_DATA_$1_PATH),[Set to absolute path to Data/$1 subdirectory]) if test x"$m4_toupper(COIN_DATA_$1_PATH)" = x; then m4_toupper(COIN_DATA_$1_PATH)=`cd $srcdir/../Data/$1; pwd` fi # Under Cygwin, use Windows path. Add separator case $build in *-cygwin*) m4_toupper(COIN_DATA_$1_PATH)=`cygwin -w $m4_toupper(COIN_DATA_$1_PATH)`\\ ;; *) m4_toupper(COIN_DATA_$1_PATH)="$m4_toupper(COIN_DATA_$1_PATH)/" ;; esac if test -r $m4_toupper(COIN_DATA_$1_PATH); then AC_DEFINE_UNQUOTED(m4_toupper(COIN_DATA_$1_PATH),["$m4_toupper(COIN_DATA_$1_PATH)"], [Define to absolute path for Data subdirectory $1]) AC_MSG_RESULT($m4_toupper(COIN_DATA_$1_PATH)) else AC_MSG_ERROR(Directory $m4_toupper(COIN_DATA_$1_PATH) does not exist) fi ]) # AC_COIN_DATA_PATH ########################################################################### # COIN_LINK_FROM_FILELIST # ########################################################################### # This macro creates links (or copies, if necessary) to files listed # as content in a text file (second argument) into a target directory # (first argument), which is created if it doesn't exist yet. If s link # already exists, nothing happens. AC_DEFUN([AC_COIN_LINKCOPY_FROM_FILELIST], [cmd="$3" if test -e $srcdir/$2 ; then my_target_dir="$1" my_link_files=`cat $srcdir/$2` my_dirname=`AS_DIRNAME($2)` # if test -e $my_target_dir; then : ; else # AS_MKDIR_P($my_target_dir) # fi for i in $my_link_files; do #rm -rf $my_target_dir/$i if test -e $my_target_dir/$i; then : ; else dirn2=`AS_DIRNAME($my_target_dir/$i)` if test -e $dirn2; then : ; else AS_MKDIR_P($dirn2) fi $cmd $abs_source_dir/$my_dirname/$i $my_target_dir/$i fi done else AC_MSG_WARN([File list file $2 missing!]) fi ]) AC_DEFUN([AC_COIN_LINK_FROM_FILELIST], [ AC_REQUIRE([AC_COIN_LINK_INPUT_CMD]) echo Creating links in $1 ... AC_COIN_LINKCOPY_FROM_FILELIST($1, $2, $coin_link_input_cmd) ]) ########################################################################### # COIN_COPY_FROM_FILELIST # ########################################################################### # Like COIN_LINK_FROM_FILELIST, but copies the files. AC_DEFUN([AC_COIN_COPY_FROM_FILELIST], [ echo Creating copies in $1 ... AC_COIN_LINKCOPY_FROM_FILELIST($1, $2, [cp]) ]) ########################################################################### # COIN_EXAMPLE_FILES # ########################################################################### # This macro determines the names of the example files (using the # argument in an "ls" command) and sets up the variables EXAMPLE_FILES # and EXAMPLE_CLEAN_FILES. If this is a VPATH configuration, it also # creates soft links to the example files. AC_DEFUN([AC_COIN_EXAMPLE_FILES], [AC_REQUIRE([AC_COIN_CHECK_VPATH]) AC_REQUIRE([AC_COIN_ENABLE_DOSCOMPILE]) AC_REQUIRE([AC_PROG_LN_S]) files=`cd $srcdir; ls $1` # We need to do the following loop to make sure that are no newlines # in the variable for file in $files; do EXAMPLE_FILES="$EXAMPLE_FILES $file" done if test $coin_vpath_config = yes; then lnkcmd= if test "$enable_doscompile" != no; then lnkcmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) lnkcmd=cp ;; esac if test "x$lnkcmd" = xcp; then AC_MSG_NOTICE([Copying example files ($1)]) else AC_MSG_NOTICE([Creating links to the example files ($1)]) lnkcmd="$LN_S" fi for file in $EXAMPLE_FILES; do rm -f $file $lnkcmd $srcdir/$file $file done EXAMPLE_CLEAN_FILES="$EXAMPLE_CLEAN_FILES $1" else EXAMPLE_CLEAN_FILES="$EXAMPLE_CLEAN_FILES" fi # In case there are compressed files, we create a variable with the # uncompressed names EXAMPLE_UNCOMPRESSED_FILES= for file in $EXAMPLE_FILES; do case $file in *.gz) EXAMPLE_UNCOMPRESSED_FILES="$EXAMPLE_UNCOMPRESSED_FILES `echo $file | sed -e s/.gz//`" ;; esac done AC_SUBST(EXAMPLE_UNCOMPRESSED_FILES) AC_SUBST(EXAMPLE_FILES) AC_SUBST(EXAMPLE_CLEAN_FILES) ]) #AC_COIN_EXAMPLE_FILES ########################################################################### # COIN_CHECK_USER_LIBRARY # ########################################################################### # This macro sets up usage of a user library with header files. The assumption # is that the header file(s) and library do not reside in standard system # directories, hence both the include directory and link flags must be # specified. There are two mandatory arguments and two optional arguments. # # The first argument (mandatory) should be a name (LibraryName) for the # library. The second argument (mandatory) should be an abbreviation in # upper case letters (LBRY) for the library. Ultimately, the macro will # specify two variables, LBRYINCDIR and LBRYLIB, to be substituted in files # generated during configuration; a preprocessor symbol COIN_HAS_LBRY; and a # matching automake conditional COIN_HAS_LBRY. LBRYINCDIR should specify the # directory containing include files for the library. LBRYLIB should specify # the flags necessary to link to the library. A variable coin_has_lbry will # be set to true or false, as appropriate. A variable lbry_libcheck will be # be set to yes or no; no indicates link checks should not be attempted. # # The macro defines three configure arguments, --with-libraryname-incdir, # --with-libraryname-lib, and --disable-libraryname-libcheck, by converting # LibraryName to lower case. # # LBRYINCDIR and LBRYLIB can be specified as environment variables or as # part of the configure command using --with-libraryname-incdir and # --with-libraryname-lib, respectively. Command line arguments override # environment variables. # # If a third argument is given, it should specify a file in LBRYINCDIR. The # macro will check for the presence of the file. If a fourth argument is given, # it should specify a function name, `fname'. The macro will attempt to link a # trivial program containing a parameterless call to the function, `fname()', # using the LBRYLIB flags. The link check uses C as the language; this has been # adequate to date but has limitations. It is possible to disable the link # check by specifying --disable-libraryname-libcheck. This is a workaround for # instances where the link check does not work properly, for whatever reason. # If you're trying to link to a Fortran library, consider using F77_FUNC or # FC_FUNC to obtain a mangled fname appropriate for use from C code. For a C++ # library, you're on your own unless the library declares some function with # extern "C" linkage. Otherwise, you'll have to somehow find the mangled C++ # name. # A fifth argument can be specified to include linker flags that may be required # to sucessfully perform the linking check. # # An optional sixth argument can be given to specify a list of targets. # For each target X, the variables X_LIBS and X_PCLIBS will be extended by $LBRYLIB, # if the library has been found and seems to work. AC_DEFUN([AC_COIN_CHECK_USER_LIBRARY], [ AC_REQUIRE([AC_COIN_PROJECTDIR_INIT]) AC_MSG_CHECKING(if user provides library for $1) # Check for header file directory AC_ARG_WITH(m4_tolower($1)-incdir, AS_HELP_STRING([--with-m4_tolower($1)-incdir], [specify the header file directory for library $1]), [$2INCDIR=`cd $withval; pwd`]) # Check for library directory AC_ARG_WITH(m4_tolower($1)-lib, AS_HELP_STRING([--with-m4_tolower($1)-lib], [specify the flags used to link with the library $1]), [$2LIB=$withval]) # Switch to disable library check if requested AC_ARG_ENABLE(m4_tolower($1)-libcheck, AS_HELP_STRING([--disable-m4_tolower($1)-libcheck], [skip the link check at configuration time]), [m4_tolower($1)_libcheck=$enableval], [m4_tolower($1)_libcheck=yes]) # At this point, if we're going to use the library, both LBRYINCDIR and # LBRYLIB must be defined and not empty. if test x"$$2INCDIR" != x || test x"$$2LIB" != x; then if test x"$$2INCDIR" = x || test x"$$2LIB" = x; then AC_MSG_ERROR([You need to specify both an include directory and link flags to use library $1. Use --with-m4_tolower($1)-incdir of environment variable $$2INCDIR to specify the include directory. Use --with-m4_tolower($1)-lib or environment variable $$2LIB to specify link flags.]) fi m4_tolower(coin_has_$2)=true AC_MSG_RESULT(yes) else m4_tolower(coin_has_$2)=false AC_MSG_RESULT(no) fi # If we have instructions for use, consider header and link checks. if test $m4_tolower(coin_has_$2) = true; then # If argument 3 (file) is given, check for the file. Typically this will be a # header file, but that's not assumed. m4_ifval([$3], [AC_COIN_CHECK_FILE([$$2INCDIR/$3],[], [AC_MSG_ERROR([Cannot find file $3 in $$2INCDIR])])]) # Now see if we can link the function. There are arguments for and against # assuming argument 3 is a header file declaring the function. A correct # function declaration is the main argument in favour. Having to cope with # possible dependencies or other oddities are the main arguments against. # Force the use of C as the best single choice amongst C++, C, and Fortran. # Obviously, this has limits. m4_ifvaln([$4], [if test x"$m4_tolower($1)_libcheck" != xno; then coin_save_LIBS="$LIBS" LIBS="$$2LIB $5" coin_$2_link=no AC_LANG_PUSH(C) for fnm in $4 ; do AC_MSG_CHECKING([whether symbol $fnm is available with $2]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[$fnm()]])], [AC_MSG_RESULT(yes) coin_$2_link=yes break], [AC_MSG_RESULT(no)]) done AC_LANG_POP(C) LIBS="$coin_save_LIBS" if test x"$coin_$2_link" != xyes ; then AC_MSG_ERROR([Cannot find symbol(s) $4 with $2]) fi fi]) # If we make it this far, we've verified the file and linked the function. Add # the necessary link flags to $6_{PC}LIBS and define the preprocessor symbol # COIN_HAS_LBRY. coin_foreach_w([myvar], [$6], [ m4_toupper(myvar)_LIBS="$$2LIB $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_PCLIBS="$$2LIB $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS_INSTALLED="$$2LIB $m4_toupper(myvar)_LIBS_INSTALLED" ]) AC_DEFINE(COIN_HAS_$2,[1],[Define to 1 if the $1 package is available]) fi # Arrange for configure to substitute LBRYINCDIR and LBRYLIB and create the # automake conditional. These actions must occur unconditionally. AC_SUBST($2INCDIR) AC_SUBST($2LIB) AM_CONDITIONAL(COIN_HAS_$2, test $m4_tolower(coin_has_$2) = true) ]) #AC_COIN_CHECK_USER_LIBRARY ########################################################################### # COIN_TRY_FLINK # ########################################################################### # Auxilliary macro to test if a Fortran function name can be linked, # given the current settings of LIBS. We determine from the context, what # the currently active programming language is, and cast the name accordingly. # The first argument is the name of the function/subroutine, in small letters, # the second argument are the actions taken when the test works, and the # third argument are the actions taken if the test fails. AC_DEFUN([AC_COIN_TRY_FLINK], [case $ac_ext in f) AC_TRY_LINK(,[ call $1],[$2],[$3]) ;; c) AC_F77_FUNC($1,cfunc$1) if test x"$coin_need_flibs" = xyes; then flink_try=no; else AC_TRY_LINK([void $cfunc$1();],[$cfunc$1()], [flink_try=yes],[flink_try=no]) fi if test $flink_try = yes; then $2 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" AC_TRY_LINK([void $cfunc$1();],[$cfunc$1()], [LIBS="$flink_save_libs" coin_need_flibs=yes $2 ], [LIBS="$flink_save_libs" $3]) else $3 fi fi ;; cc|cpp) AC_F77_FUNC($1,cfunc$1) if test x"$coin_need_flibs" = xyes; then flink_try=no; else AC_TRY_LINK([extern "C" {void $cfunc$1();}],[$cfunc$1()], [flink_try=yes],[flink_try=no]) fi if test $flink_try = yes; then $2 else if test x"$FLIBS" != x; then flink_save_libs="$LIBS" LIBS="$LIBS $FLIBS" AC_TRY_LINK([extern "C" {void $cfunc$1();}],[$cfunc$1()], [LIBS="$flink_save_libs" coin_need_flibs=yes $2 ], [LIBS="$flink_save_libs" $3]) else $3 fi fi ;; esac ]) # AC_COIN_TRY_FLINK ########################################################################### # COIN_DOXYGEN # ########################################################################### # # This macro determines the configuration information for doxygen, the tool # used to generate online documentation of COIN code. It takes one parameter, # a list of projects (mixed-case, to match the directory names) that should # be processed as external tag files. E.g., COIN_DOXYGEN([Clp Osi]). # # This macro will define the following variables: # coin_have_doxygen Yes if doxygen is found, no otherwise # coin_doxy_usedot Defaults to `yes'; --with-dot will still check to see # if dot is available # coin_doxy_tagname Name of doxygen tag file (placed in doxydoc directory) # coin_doxy_logname Name of doxygen log file (placed in doxydoc directory) # coin_doxy_tagfiles List of doxygen tag files used to reference other # doxygen documentation # coin_doxy_excludes Directories to exclude from doxygen processing AC_DEFUN([AC_COIN_DOXYGEN], [ AC_MSG_NOTICE([configuring doxygen documentation options]) # Check to see if doxygen is available. AC_CHECK_PROG([coin_have_doxygen],[doxygen],[yes],[no]) # Look for the dot tool from the graphviz package, unless the user has # disabled it. AC_ARG_WITH([dot], AS_HELP_STRING([--with-dot], [use dot (from graphviz) when creating documentation with doxygen if available; --without-dot to disable]), [],[withval=yes]) if test x"$withval" = xno ; then coin_doxy_usedot=NO AC_MSG_CHECKING([for dot ]) AC_MSG_RESULT([disabled]) else AC_CHECK_PROG([coin_doxy_usedot],[dot],[YES],[NO]) fi # Generate a tag file name and a log file name AC_SUBST([coin_doxy_tagname],[doxydoc/${PACKAGE}_doxy.tag]) AC_SUBST([coin_doxy_logname],[doxydoc/${PACKAGE}_doxy.log]) # Process the list of project names and massage them into possible doxygen # doc'n directories. Prefer 1) classic external, source processed using # a project-specific doxygen.conf, we use the tag file; 2) classic # external, source processed using package doxygen.conf; 3) installed # doxydoc. Alternatives 1) and 2) are only possible if the directory will be # configured, which we can't know unless this is the package base configure, # since coin_subdirs is only set there. Hence it's sufficient to check for # membership. If we use a tag file from a classic external, exclude the # source from doxygen processing when doxygen runs in the base directory. coin_doxy_tagfiles= coin_doxy_excludes= tmp="$1" for proj in $tmp ; do lc_proj=`echo $proj | [tr [A-Z] [a-z]]` AC_MSG_CHECKING([for doxygen doc'n for $proj ]) doxytag=${lc_proj}_doxy.tag doxyfound=no for chkProj in $coin_subdirs ; do if test "$chkProj" = "$proj" ; then # proj will be configured, hence doxydoc present in build tree doxysrcdir="${srcdir}/${proj}" # AC_MSG_NOTICE([Considering $doxysrcdir (base)]) if test -d "$doxysrcdir" ; then # with a doxydoc directory? doxydir="$doxysrcdir/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (base)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) if test -d "$doxydir" ; then # use tag file; don't process source eval doxydir="`pwd`/${proj}/doxydoc" coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" AC_MSG_RESULT([$doxydir (tag)]) coin_doxy_excludes="$coin_doxy_excludes */${proj}" else # will process the source -- nothing further to be done here AC_MSG_RESULT([$doxysrcdir (src)]) fi doxyfound=yes fi fi done # Not built, fall back to installed tag file if test $doxyfound = no ; then eval doxydir="${datadir}/coin/doc/${proj}/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (install)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" AC_MSG_RESULT([$doxydir (tag)]) fi done AC_SUBST([coin_doxy_tagfiles]) AC_SUBST([coin_doxy_excludes]) ]) # AC_COIN_DOXYGEN ########################################################################### # COIN_HAS_PKGCONFIG # ########################################################################### # This macro checks whether a pkg-config tool with a minimal version number # is available. If so, then the variable PKGCONFIG is set to its path. # If not, PKGCONFIG is set to "". The minimal version number can be given # as first parameter, by default it is 0.16.0, since COIN-OR .pc files now # include an URL field, which breaks pkg-config version <= 0.15. # This macro is a modified version of PKG_PROG_PKG_CONFIG in pkg.m4. # Further, the AM_CONDITIONAL COIN_HAS_PKGCONFIG is set and PKGCONFIG is # AC_SUBST'ed. Finally, if this setup belongs to a project directory, then # the search path for .pc files is assembled from the value of # $PKG_CONFIG_PATH, the values of --prefix, --coin-instdir, and the directories # named in a file ../coin_subdirs.txt or ../../coin_subdirs.txt in a variable # COIN_PKG_CONFIG_PATH, which is also AC_SUBST'ed. For a path xxx given in the # coin-subdirs.txt, also the directory xxx/pkgconfig is added, if existing. AC_DEFUN([AC_COIN_HAS_PKGCONFIG], [AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_ENABLE([pkg-config], [AC_HELP_STRING([--disable-pkg-config],[disable use of pkg-config (if available)])], [use_pkgconfig="$enableval"], [if test x$coin_cc_is_cl = xtrue; then use_pkgconfig=no else use_pkgconfig=yes fi]) if test $use_pkgconfig = yes ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_CHECK_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.16.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi # check if pkg-config supports the short-errors flag if test -n "$PKG_CONFIG" && \ $PKG_CONFIG --atleast-pkgconfig-version 0.20; then pkg_short_errors=" --short-errors " else pkg_short_errors="" fi fi AM_CONDITIONAL([COIN_HAS_PKGCONFIG], [test -n "$PKG_CONFIG"]) AC_SUBST(PKG_CONFIG) # assemble pkg-config search path for installed projects COIN_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" # let's assume that when installing into $prefix, then the user may have installed some other coin projects there before, so it's worth to have a look into there # best would actually to use ${libdir}, since .pc files get installed into ${libdir}/pkgconfig, # unfortunately, ${libdir} expands to ${exec_prefix}/lib and ${exec_prefix} to ${prefix}... if test "x${prefix}" = xNONE ; then COIN_PKG_CONFIG_PATH="${ac_default_prefix}/lib64/pkgconfig:${ac_default_prefix}/lib/pkgconfig:${ac_default_prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" else COIN_PKG_CONFIG_PATH="${prefix}/lib64/pkgconfig:${prefix}/lib/pkgconfig:${prefix}/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" fi AC_ARG_WITH([coin-instdir], AC_HELP_STRING([--with-coin-instdir], [prefix of installation directory for precompiled COIN packages]), [if test -d "$withval"; then : ; else AC_MSG_ERROR([argument for --with-coin-instdir not a directory]) fi COIN_PKG_CONFIG_PATH="$withval/lib/pkgconfig:$withval/share/pkgconfig:${COIN_PKG_CONFIG_PATH}" ],[]) AC_SUBST(COIN_PKG_CONFIG_PATH) # assemble additional pkg-config search paths for uninstalled projects if test x$coin_projectdir = xyes ; then # if we are in a project setup, then in a classic setup, we want to find uninstalled projects # their (relative) location is written to coin_subdirs.txt by the configure in the project base directory # unfortunately, if the user set prefix, then we do not know where the project base directory is located # but it is likely to be either .. (if we are a usual coin project) or ../.. (if we are a unusual coin project like ThirdParty or Data) COIN_PKG_CONFIG_PATH_UNINSTALLED= if test -e ../coin_subdirs.txt ; then for i in `cat ../coin_subdirs.txt` ; do if test -d ../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi if test -e ../../coin_subdirs.txt ; then for i in `cat ../../coin_subdirs.txt` ; do if test -d ../../$i ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi if test -d ../../$i/pkgconfig ; then COIN_PKG_CONFIG_PATH_UNINSTALLED="`cd ../../$i/pkgconfig; pwd`:${COIN_PKG_CONFIG_PATH_UNINSTALLED}" fi done fi AC_SUBST(COIN_PKG_CONFIG_PATH_UNINSTALLED) fi if test -n "$PKG_CONFIG" && test x$coin_cc_is_cl = xtrue; then AC_MSG_WARN([Using pkg-config together with MS or Intel Compiler on Windows is not support by example Makefiles. Consider using --disable-pkg-config.]) fi ]) ########################################################################### # COIN_PKG_CHECK_PROJECT_EXISTS # ########################################################################### # COIN_PKG_CHECK_PROJECT_EXISTS(PROJECT, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular project exists. Similar # to PKG_CHECK_MODULES(), but set only the variables $1_VERSION and $1_PKG_ERRORS variables # AC_DEFUN([AC_COIN_PKG_CHECK_PROJECT_EXISTS], [AC_REQUIRE([AC_COIN_HAS_PKGCONFIG]) if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "m4_tolower($1)"; then m4_toupper($1)[]_VERSION=`$PKG_CONFIG --modversion "m4_tolower($1)" 2>/dev/null` m4_ifval([$2], [$2], [:]) else m4_toupper($1)_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "m4_tolower($1)"` $3 fi else AC_MSG_ERROR("Cannot check for existance of module $1 without pkg-config") fi ]) ########################################################################### # COIN_PKG_CHECK_MODULE_EXISTS # ########################################################################### # COIN_PKG_CHECK_MODULES_EXISTS(MODULE, PACKAGES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of packages exists. # Similar to PKG_CHECK_MODULES(), but set only the variable $1_VERSIONS and $1_PKG_ERRORS # AC_DEFUN([AC_COIN_PKG_CHECK_MODULE_EXISTS], [AC_REQUIRE([AC_COIN_HAS_PKGCONFIG]) if test -n "$PKG_CONFIG" ; then if $PKG_CONFIG --exists "$2"; then m4_toupper($1)[]_VERSIONS=`$PKG_CONFIG --modversion "$2" 2>/dev/null | tr '\n' ' '` $3 else m4_toupper($1)_PKG_ERRORS=`$PKG_CONFIG $pkg_short_errors --errors-to-stdout --print-errors "$2"` $4 fi else AC_MSG_ERROR("Cannot check for existance of module $1 without pkg-config") fi ]) ########################################################################### # COIN_PKG_HAS_MODULE # ########################################################################### # COIN_PKG_HAS_MODULE(MODULE, PACKAGES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Checks whether pkg-config files for a given set of packages is available. # If so, sets MODULE_CFLAGS, MODULE_LIBS, and MODULES_DATA and executes ACTION-IF-FOUND. # If not, then ACTION-IF-NOT-FOUND is executed. # A reason for not finding a package is stored in MODULE_PKG_ERRORS # # -------------------------------------------------------------- AC_DEFUN([AC_COIN_PKG_HAS_MODULE], [AC_REQUIRE([AC_COIN_HAS_PKGCONFIG]) AC_COIN_PKG_CHECK_MODULE_EXISTS([$1],[$2], [ cflags=`$PKG_CONFIG --cflags "$2" 2>/dev/null` # pkg-config cannot handle spaces, so CYGPATH_W cannot be put into .pc files # thus, we modify the cflags extracted from pkg-config by putting CYGPATH_W behind -I's # but only do this if is not trivial if test "$CYGPATH_W" != "echo" ; then # need to put into brackets since otherwise autoconf replaces the brackets in the sed command [cflags=`echo $cflags | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'`] fi m4_toupper($1)[]_CFLAGS="$cflags" m4_toupper($1)[]_LIBS=`$PKG_CONFIG --libs "$2" 2>/dev/null` m4_toupper($1)[]_DATA=`$PKG_CONFIG --variable=datadir "$2" 2>/dev/null` $3 ], [ $4 ]) ])# PKG_CHECK_MODULES ########################################################################### # COIN_MAIN_PACKAGEDIR # ########################################################################### # This macro substitutes COIN_MAIN_SUBDIR. # If $2/$1 or $1 is in COIN_SKIP_PROJECTS, do nothing. # If --with-$1-lib, --with-$1-incdir, or --with-$1-datadir is given, then assume that the package is installed. # Otherwise, if the directory $2/$1 and the file $2/$1/$3 exist, check whether $2/$1/configure exists. # If so, include this directory into the list of directories where configure and make recourse into. # tolower(coin_has_$1) is set to "no" if the project source is not available or will not be compiled. # Otherwise, it will be set to "yes". AC_DEFUN([AC_COIN_MAIN_PACKAGEDIR],[ AC_MSG_CHECKING([whether source of project $1 is available and should be compiled]) m4_tolower(coin_has_$1)=notGiven coin_reason= # check if user wants to skip project in any case AC_ARG_VAR([COIN_SKIP_PROJECTS],[Set to the subdirectories of projects that should be skipped in the configuration]) if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "$1"; then m4_tolower(coin_has_$1)="no" coin_reason="$1 has been specified in COIN_SKIP_PROJECTS" fi m4_ifval($2,[ if test $dir = "$2/$1"; then m4_tolower(coin_has_$1)="no" coin_reason="$2/$1 has been specified in COIN_SKIP_PROJECTS" fi]) done fi if test "$m4_tolower(coin_has_$1)" != no; then AC_ARG_WITH([m4_tolower($1)],, [if test "$withval" = no ; then m4_tolower(coin_has_$1)="no" coin_reason="--without-m4_tolower($1) has been specified" fi ]) fi if test "$m4_tolower(coin_has_$1)" != no; then AC_ARG_WITH([m4_tolower($1)-lib], AC_HELP_STRING([--with-m4_tolower($1)-lib], [linker flags for using project $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)="no" coin_reason="--without-m4_tolower($1)-lib has been specified" else m4_tolower(coin_has_$1)="no" coin_reason="--with-m4_tolower($1)-lib has been specified" fi], []) fi if test "$m4_tolower(coin_has_$1)" != no; then AC_ARG_WITH([m4_tolower($1)-incdir], AC_HELP_STRING([--with-m4_tolower($1)-incdir], [directory with header files for using project $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)="no" coin_reason="--without-m4_tolower($1)-incdir has been specified" else m4_tolower(coin_has_$1)="no" coin_reason="--with-m4_tolower($1)-incdir has been specified" fi], []) fi if test "$m4_tolower(coin_has_$1)" != no; then AC_ARG_WITH([m4_tolower($1)-datadir], AC_HELP_STRING([--with-m4_tolower($1)-datadir], [directory with data files for using project $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)="no" coin_reason="--without-m4_tolower($1)-datadir has been specified" else m4_tolower(coin_has_$1)="no" coin_reason="--with-m4_tolower($1)-datadir has been specified" fi], []) fi m4_if(m4_tolower($1), blas, [ if test $m4_tolower(coin_has_$1) != no; then #--with-blas can overwrite --with-blas-lib, and can be set to BUILD to enforce building blas AC_ARG_WITH([blas], AC_HELP_STRING([--with-blas], [specify BLAS library (or BUILD to enforce use of ThirdParty/Blas)]), [if test x"$withval" = "xno" ; then coin_has_blas="no" coin_reason="--without-blas has been specified" elif test x"$withval" != "xBUILD" ; then coin_has_blas="no" coin_reason="--with-blas has been specified" fi], []) fi ]) m4_if(m4_tolower($1), lapack, [ if test $m4_tolower(coin_has_$1) != skipping; then #--with-lapack can overwrite --with-lapack-lib, and can be set to BUILD to enforce building lapack AC_ARG_WITH([lapack], AC_HELP_STRING([--with-lapack], [specify LAPACK library (or BUILD to enforce use of ThirdParty/Lapack)]), [if test x"$withval" = "xno" ; then coin_has_lapack="no" coin_reason="--without-lapack has been specified" elif test x"$withval" != "xBUILD" ; then coin_has_lapack="no" coin_reason="--with-lapack has been specified" fi], []) fi ]) # check if project is available in present directory if test "$m4_tolower(coin_has_$1)" = notGiven; then m4_tolower(coin_has_$1)=no if test -d $srcdir/m4_ifval($2,[$2/],)$1; then coin_reason="source in m4_ifval($2,[$2/],)$1" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. m4_ifvaln([$3], [for i in $srcdir/m4_ifval($2,[$2/],)$1/$3; do if test -r $i; then m4_tolower(coin_has_$1)="yes" else m4_tolower(coin_has_$1)="no" coin_reason="source file $i not available" break fi done], [ m4_tolower(coin_has_$1)="yes" ]) fi fi if test -z "$coin_reason" ; then AC_MSG_RESULT([$m4_tolower(coin_has_$1)]) else AC_MSG_RESULT([$m4_tolower(coin_has_$1), $coin_reason]) fi if test "$m4_tolower(coin_has_$1)" = yes ; then if test -r $srcdir/m4_ifval($2,[$2/],)$1/configure; then coin_subdirs="$coin_subdirs m4_ifval($2,[$2/],)$1" AC_CONFIG_SUBDIRS(m4_ifval($2,[$2/],)$1) fi fi ]) ########################################################################### # COIN_CHECK_PACKAGE # ########################################################################### # This macro checks for the existance of a COIN-OR package and provides compiler and linker flags to compile against this package. # A package can consists of one or more COIN-OR or other projects. # It defines the PACKAGE_CFLAGS, PACKAGE_LIBS, PACKAGE_DEPENDENCIES, and PACKAGE_DATA variables, referring to the compiler and linker # flags to use when linking against this module, the libraries the package depends on, and the directories where the module data resists. # The difference between PACKAGE_LIBS and PACKAGE_DEPENDENCIES is that PACKAGE_DEPENDENCIES does not contain arguments starting with '-', # so it can be used to setup the _DEPENDENCIES variable in a Makefile.am. # It also defines a COIN_HAS_PACKAGE preprocessor macro and makefile conditional. # Further, tolower(coin_has_$1) is set to "yes". # If a list of build targets using this projects is given in the third argument, # then the compiler and linker variables and .pc file setup variable corresponding to this build target # are extended with the values for this package. # That is, for each build target X, the variables X_CFLAGS, X_LIBS, X_DEPENDENCIES, X_PCLIBS, X_PCREQUIRES are setup, # whereas the last two specify the values to put into the "Libs:" and "Requires:" fields of the .pc file, resp. # # The first argument should be the name (PACKAGE) of the package (in correct lower # and upper case). # The second argument should be a (space separated) list of projects which this # package consists of. Optionally, required version numbers can be added. # The optional third argument should be a (space separated) list of build targets # which use this package, if available. # # It is also possible to specify a preinstalled version of this package # or to specify only the linker and compiler flags and data directory. # # If the user did not specify --with-$1-... flags and pkg-config is not available, # COIN_CHECK_PACKAGE_FALLBACK($1, $2, $3) is called. AC_DEFUN([AC_COIN_CHECK_PACKAGE], [AC_REQUIRE([AC_COIN_HAS_PKGCONFIG]) AC_MSG_CHECKING([for COIN-OR package $1]) m4_tolower(coin_has_$1)=notGiven # check if user wants to skip package in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "$1"; then m4_tolower(coin_has_$1)=skipping fi done fi if test "$m4_tolower(coin_has_$1)" != skipping; then AC_ARG_WITH([m4_tolower($1)],, [if test "$withval" = no ; then m4_tolower(coin_has_$1)=skipping fi ]) fi m4_toupper($1_LIBS)= m4_toupper($1_CFLAGS)= m4_toupper($1_DATA)= m4_toupper($1_DEPENDENCIES)= m4_toupper($1_PCLIBS)= m4_toupper($1_PCREQUIRES)= m4_toupper($1_DATA)= AC_SUBST(m4_toupper($1_LIBS)) AC_SUBST(m4_toupper($1_CFLAGS)) AC_SUBST(m4_toupper($1_DATA)) AC_SUBST(m4_toupper($1_DEPENDENCIES)) AC_SUBST(m4_toupper($1_LIBS_INSTALLED)) AC_SUBST(m4_toupper($1_CFLAGS_INSTALLED)) AC_SUBST(m4_toupper($1_DATA_INSTALLED)) coin_foreach_w([myvar], [$3], [ AC_SUBST(m4_toupper(myvar)_CFLAGS) AC_SUBST(m4_toupper(myvar)_LIBS) AC_SUBST(m4_toupper(myvar)_PCLIBS) AC_SUBST(m4_toupper(myvar)_PCREQUIRES) AC_SUBST(m4_toupper(myvar)_DEPENDENCIES) AC_SUBST(m4_toupper(myvar)_CFLAGS_INSTALLED) AC_SUBST(m4_toupper(myvar)_LIBS_INSTALLED) ]) #check if user provided LIBS, CFLAGS, or DATA for package or disables use of package if test $m4_tolower(coin_has_$1) != skipping; then AC_ARG_WITH([m4_tolower($1)-lib], AC_HELP_STRING([--with-m4_tolower($1)-lib], [linker flags for using package $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)=skipping else m4_tolower(coin_has_$1)=yes m4_toupper($1_LIBS)="$withval" m4_toupper($1_PCLIBS)="$withval" coin_foreach_w([myvar], [$3], [ m4_toupper(myvar)_PCLIBS="$withval $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS="$withval $m4_toupper(myvar)_LIBS" ]) # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then m4_toupper($1_LIBS_INSTALLED)="$withval" coin_foreach_w([myvar], [$3], [m4_toupper(myvar)_LIBS_INSTALLED="$withval $m4_toupper(myvar)_LIBS_INSTALLED"]) fi fi ], []) fi if test $m4_tolower(coin_has_$1) != skipping; then AC_ARG_WITH([m4_tolower($1)-incdir], AC_HELP_STRING([--with-m4_tolower($1)-incdir], [directory with header files for using package $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)=skipping else m4_tolower(coin_has_$1)=yes m4_toupper($1_CFLAGS)="-I`${CYGPATH_W} $withval`" coin_foreach_w([myvar], [$3], [m4_toupper(myvar)_CFLAGS="-I`${CYGPATH_W} $withval` $m4_toupper(myvar)_CFLAGS"]) # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then m4_toupper($1_CFLAGS_INSTALLED)="$m4_toupper($1_CFLAGS)" coin_foreach_w([myvar], [$3], [m4_toupper(myvar)_CFLAGS_INSTALLED="$m4_toupper($1_CFLAGS) $m4_toupper(myvar)_CFLAGS_INSTALLED"]) fi fi ], []) fi if test $m4_tolower(coin_has_$1) != skipping; then AC_ARG_WITH([m4_tolower($1)-datadir], AC_HELP_STRING([--with-m4_tolower($1)-datadir], [directory with data files for using package $1]), [if test "$withval" = no ; then m4_tolower(coin_has_$1)=skipping else m4_tolower(coin_has_$1)=yes m4_toupper($1_DATA)="$withval" # if project flags are given by user and we build without pkg-config, then we need to setup the _INSTALLED variables if test -z "$PKG_CONFIG" ; then m4_toupper($1_DATA_INSTALLED)="$withval" fi fi ], []) fi if test $m4_tolower(coin_has_$1) = notGiven; then if test -n "$PKG_CONFIG" ; then # set search path for pkg-config # need to export variable to be sure that the following pkg-config gets these values coin_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" PKG_CONFIG_PATH="$COIN_PKG_CONFIG_PATH:$COIN_PKG_CONFIG_PATH_UNINSTALLED" export PKG_CONFIG_PATH # let pkg-config do it's magic AC_COIN_PKG_HAS_MODULE([$1],[$2], [ m4_tolower(coin_has_$1)=yes AC_MSG_RESULT([yes: $m4_toupper($1)_VERSIONS]) # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl) if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then m4_toupper($1_LIBS)=`echo " $m4_toupper($1_LIBS) " | [sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g']` fi m4_toupper($1_PCREQUIRES)="$2" # augment X_PCREQUIRES, X_CFLAGS, and X_LIBS for each build target X in $3 coin_foreach_w([myvar], [$3], [ m4_toupper(myvar)_PCREQUIRES="$2 $m4_toupper(myvar)_PCREQUIRES" m4_toupper(myvar)_CFLAGS="$m4_toupper($1)_CFLAGS $m4_toupper(myvar)_CFLAGS" m4_toupper(myvar)_LIBS="$m4_toupper($1)_LIBS $m4_toupper(myvar)_LIBS" ]) ], [ m4_tolower(coin_has_$1)=notGiven AC_MSG_RESULT([not given: $m4_toupper($1)_PKG_ERRORS]) ]) # reset PKG_CONFIG_PATH variable PKG_CONFIG_PATH="$coin_save_PKG_CONFIG_PATH" export PKG_CONFIG_PATH else AC_MSG_RESULT([skipped check via pkg-config, redirect to fallback]) AC_COIN_CHECK_PACKAGE_FALLBACK([$1], [$2], [$3]) fi else AC_MSG_RESULT([$m4_tolower(coin_has_$1)]) fi if test $m4_tolower(coin_has_$1) != skipping && test $m4_tolower(coin_has_$1) != notGiven ; then AC_DEFINE(m4_toupper(COIN_HAS_$1),[1],[Define to 1 if the $1 package is available]) AC_ARG_ENABLE([interpackage-dependencies], AC_HELP_STRING([--disable-interpackage-dependencies], [disables deduction of Makefile dependencies from package linker flags]), [], [enable_interpackage_dependencies=yes]) if test $enable_interpackage_dependencies = yes ; then # construct dependencies variables from LIBS variables # we add an extra space in LIBS so we can substitute out everything starting with " -" # remove everything of the form -framework xxx as used on Mac and mkl* and libiomp5* and wsock32.lib as used on Windows # then remove everything of the form -xxx # also remove everything of the form `xxx`yyy (may have been added for cygwin/cl) m4_toupper($1)_DEPENDENCIES=`echo " $m4_toupper($1)_LIBS" | [sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g']` coin_foreach_w([myvar], [$3], [ m4_toupper(myvar)_DEPENDENCIES=`echo " $m4_toupper(myvar)_LIBS " | [sed -e 's/ mkl[^ ]*//g' -e 's/ libiomp5[^ ]*//g' -e 's/ wsock32[^ ]*//g' -e 's/ -framework *[^ ]*//g' -e 's/ -[^ ]*//g' -e 's/\`[^\`]*\`[^ ]* //g']` ]) fi if test 1 = 0 ; then #change this test to enable a bit of debugging output if test -n "$m4_toupper($1)_CFLAGS" ; then AC_MSG_NOTICE([$1 CFLAGS are $m4_toupper($1)_CFLAGS]) fi if test -n "$m4_toupper($1)_LIBS" ; then AC_MSG_NOTICE([$1 LIBS are $m4_toupper($1)_LIBS]) fi if test -n "$m4_toupper($1)_DEPENDENCIES" ; then AC_MSG_NOTICE([$1 DEPENDENCIES are $m4_toupper($1)_DEPENDENCIES]) fi if test -n "$m4_toupper($1)_DATA" ; then AC_MSG_NOTICE([$1 DATA is $m4_toupper($1)_DATA]) fi if test -n "$m4_toupper($1)_PCLIBS" ; then AC_MSG_NOTICE([$1 PCLIBS are $m4_toupper($1)_PCLIBS]) fi if test -n "$m4_toupper($1)_PCREQUIRES" ; then AC_MSG_NOTICE([$1 PCREQUIRES are $m4_toupper($1)_PCREQUIRES]) fi coin_foreach_w([myvar], [$3], [ AC_MSG_NOTICE([myvar CFLAGS are $m4_toupper(myvar)_CFLAGS]) AC_MSG_NOTICE([myvar LIBS are $m4_toupper(myvar)_LIBS]) AC_MSG_NOTICE([myvar DEPENDENCIES are $m4_toupper(myvar)_DEPENDENCIES]) ]) fi fi # Define the Makefile conditional AM_CONDITIONAL(m4_toupper(COIN_HAS_$1), [test $m4_tolower(coin_has_$1) != notGiven && test $m4_tolower(coin_has_$1) != skipping]) ]) # AC_COIN_CHECK_PACKAGE ########################################################################### # COIN_CHECK_PACKAGE_FALLBACK # ########################################################################### # This macro is used by COIN_CHECK_PACKAGE, if it fails to find a package # because pkg-config was disabled or is not available. # # For each project xxx specified in $2, it searches for a xxx-uninstalled.pc # file in the directories specified in $COIN_PKG_CONFIG_PATH_UNINSTALLED. The # latter variable is setup by COIN_HAS_PKGCONFIG and consists of the content # of the coin_subdirs.txt file which has been created by configure in the # base directory. The content of xxx-uninstalled.pc is parsed in order # to defines the variables PACKAGE_CFLAGS, PACKAGE_LIBS, and PACKAGE_DATA, # referring to the compiler and linker flags to use when linking against this # package and the directory where the package data resists. Further, for each # build target X specified in the third argument, the variables X_CFLAGS and # X_LIBS are extended with the compiler and linker flags of this package and # the variables X_PCLIBS and X_PCREQUIRES are extended by the list of linker # flags and dependent projects as needed to setup a .pc file. The macros # checks also dependencies of $2. Note that the PACKAGE_DATA variable is # set to the content of datadir of the first .pc file that is parsed. # Finally, for each X in the third argument, also variables # X_CFLAGS_INSTALLED and X_LIBS_INSTALLED are setup. They contain the compiler # and linker flags for X when all projects have been installed. Their content # is assembled from the .pc files that correspond to installed projects. I.e., # whenever a file proj-uninstalled.pc is parsed, then also a corresponding # proj.pc file is parsed for compiler and linker flags, if available in the # same directory. # Similar, a variable PACKAGE_DATA_INSTALLED is setup to the content of datadir # of the first .pc file that is parsed. # # If .pc files for all projects in $2 and their dependencies is found, # tolower(coin_has_$1) is set to "yes". Otherwise, if some dependency # is not found, tolower(coin_has_$1) is set to "notGiven". Further, a # COIN_HAS_PACKAGE preprocessor macro and a makefile conditional are defined. # # The first argument should be the name (PACKAGE) of the package (in correct # lower and upper case). The second argument should be the base names of the # projects .pc file which define this package. The optional third argument # should be a (space separated) list of build targets which use this package, # if available. # # $1 is not checked for $COIN_SKIP_PROJECTS, since we only look into # $COIN_PKG_CONFIG_PATH_UNINSTALLED. When the content of this variable was # setup in the base directory, $COIN_SKIP_PROJECTS has already been considered. AC_DEFUN([AC_COIN_CHECK_PACKAGE_FALLBACK], [AC_REQUIRE([AC_COIN_HAS_PKGCONFIG]) AC_MSG_CHECKING([for COIN-OR package $1 (fallback)]) m4_tolower(coin_has_$1)=notGiven m4_toupper($1_LIBS)= m4_toupper($1_LIBS_INSTALLED)= m4_toupper($1_CFLAGS)= m4_toupper($1_CFLAGS_INSTALLED)= m4_toupper($1_DATA)= m4_toupper($1_DATA_INSTALLED)= m4_toupper($1_PCLIBS)= m4_toupper($1_PCREQUIRES)= # initial list of dependencies is "$2", but we need to filter out version number specifications (= x, <= x, >= x, != x) projtoprocess="m4_bpatsubsts([$2], [?!?=[ ]*[^ ]+])" # we first expand the list of projects to process by adding all dependencies just behind the project which depends on it # further, we collect the list of corresponding .pc files, but do this in reverse order, because we need this order afterwards # the latter we also do with .pc files corresponding to the installed projects, which will be needed to setup Makefiles for examples # also, we setup the DATA variable allproj="" allpcfiles="" allpcifiles="" while test "x$projtoprocess" != x ; do for proj in $projtoprocess ; do # if $proj is available and configured, then a project-uninstalled.pc file should have been created, so search for it pcfile="" save_IFS="$IFS" IFS=":" for dir in $COIN_PKG_CONFIG_PATH_UNINSTALLED ; do # the base directory configure should have setup coin_subdirs.txt in a way that it does not contain projects that should be skipped, so we do not need to test this here again if test -r "$dir/${proj}-uninstalled.pc" ; then pcfile="$dir/$proj-uninstalled.pc" if test -r "$dir/${proj}.pc" ; then pcifile="$dir/${proj}.pc" else AC_MSG_WARN([Found $pcfile, but $dir/${proj}.pc is not available. This may break Makefile's of examples.]) pcifile= fi break fi done IFS="$save_IFS" if test "x$pcfile" != x ; then # read dependencies from $pcfile and filter it projrequires=[`sed -n -e 's/Requires://gp' "$pcfile" | sed -e 's/<\{0,1\}>\{0,1\}=[ ]\{0,\}[^ ]\{1,\}//g'`] # add projrequires to the front of the list of projects that have to be processed next # at the same time, remove $proj from this list projtoprocess=[`echo $projtoprocess | sed -e "s/$proj/$projrequires/"`] # read DATA from $pcfile, if _DATA is still empty if test "x$m4_toupper($1_DATA)" = x ; then projdatadir= [pcfilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcfile`] eval `sh -c "$pcfilemod"` m4_toupper($1_DATA)="$projdatadir" fi allproj="$allproj $proj" allpcfiles="$pcfile:$allpcfiles" else AC_MSG_RESULT([no, dependency $proj not available]) allproj=fail break 2 fi if test "x$pcifile" != x ; then allpcifiles="$pcifile:$allpcifiles" # read DATA_INSTALLED from $pcifile, if _DATA_INSTALLED is still empty if test "x$m4_toupper($1_DATA_INSTALLED)" = x ; then projdatadir= [pcifilemod=`sed -e '/[a-zA-Z]:/d' -e 's/datadir=\(.*\)/echo projdatadir=\\\\"\1\\\\"/g' $pcifile`] eval `sh -c "$pcifilemod"` if test "${CYGPATH_W}" != "echo"; then projdatadir="\`\$(CYGPATH_W) ${projdatadir} | sed -e 's/\\\\\\\\/\\\\\\\\\\\\\\\\/g'\`" fi m4_toupper($1_DATA_INSTALLED)="$projdatadir" fi fi break done # remove spaces on begin of $projtoprocess projtoprocess=`echo $projtoprocess | sed -e 's/^[ ]*//'` done if test "$allproj" != fail ; then # now go through the list of .pc files and assemble compiler and linker flags # important is here to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcfiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : [pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile`] # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=[`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'`] fi m4_toupper($1_CFLAGS)="$projcflags $m4_toupper($1_CFLAGS)" # set LIBS variable m4_toupper($1_LIBS)="$projlibs $m4_toupper($1_LIBS)" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # now go through the list of .pc files for installed projects and assemble compiler and linker flags # important is here again to obey the reverse order that has been setup before, # since then libraries that are required by several others should be after these other libraries pcfilesprocessed="" save_IFS="$IFS" IFS=":" for pcfile in $allpcifiles ; do # if $pcfile has been processed already, skip this round if test "x$pcfilesprocessed" != x ; then for pcfiledone in $pcfilesprocessed ; do if test "$pcfiledone" = "$pcfile" ; then continue 2 fi done fi # modify .pc file to a shell script that prints shell commands for setting the compiler and library flags: # replace "Libs:" by "echo projlibs=" # replace "Cflags:" by "echo projcflags=" # remove every line starting with : [pcfilemod=`sed -e 's/Libs:\(.*\)$/echo projlibs=\\\\"\1\\\\"/g' -e 's/Cflags:\(.*\)/echo projcflags=\\\\"\1\\\\"/g' -e '/^[a-zA-Z]*:/d' $pcfile`] # set projcflags and projlibs variables by running $pcfilemod # under mingw, the current IFS seem to make the : in the paths of the gfortran libs go away, so we temporarily set IFS back to its default projcflags= projlibs= IFS="$save_IFS" eval `sh -c "$pcfilemod"` IFS=":" # add CYGPATH_W cludge into include flags and set CFLAGS variable if test "${CYGPATH_W}" != "echo"; then projcflags=[`echo "$projcflags" | sed -e 's/-I\([^ ]*\)/-I\`${CYGPATH_W} \1\`/g'`] fi m4_toupper($1_CFLAGS_INSTALLED)="$projcflags $m4_toupper($1_CFLAGS_INSTALLED)" # set LIBS variable m4_toupper($1_LIBS_INSTALLED)="$projlibs $m4_toupper($1_LIBS_INSTALLED)" # remember that we have processed $pcfile pcfilesprocessed="$pcfilesprocessed:$pcfile" done IFS="$save_IFS" # finish up m4_tolower(coin_has_$1)=yes AC_MSG_RESULT([yes]) AC_DEFINE(m4_toupper(COIN_HAS_$1),[1],[Define to 1 if the $1 package is available]) # adjust linker flags for (i)cl compiler # for the LIBS, we replace everything of the form "/somepath/name.lib" by "`$(CYGPATH_W) /somepath/`name.lib | sed -e s|\|/|g" (where we have to use excessive many \ to get the \ into the command line for cl), # for the LIBS_INSTALLED, we replace everything of the form "/somepath/" by "`$(CYGPATH_W) /somepath/`", # everything of the form "-lname" by "libname.lib", and # everything of the form "-Lpath" by "-libpath:`$(CYGPATH_W) path` if test x$coin_cxx_is_cl = xtrue || test x$coin_cc_is_cl = xtrue ; then m4_toupper($1_LIBS)=`echo " $m4_toupper($1_LIBS) " | [sed -e 's/ \(\/[^ ]*\/\)\([^ ]*\)\.lib / \`$(CYGPATH_W) \1 | sed -e "s|\\\\\\\\\\\\\\\\\\\\|\/|g"\`\2.lib /g']` m4_toupper($1_LIBS_INSTALLED)=`echo " $m4_toupper($1_LIBS_INSTALLED)" | [sed -e 's/ \(\/[^ ]*\/\)/ \`$(CYGPATH_W) \1\`/g' -e 's/ -l\([^ ]*\)/ lib\1.lib/g' -e 's/ -L\([^ ]*\)/ -libpath:\`$(CYGPATH_W) \1\`/g']` fi m4_toupper($1_PCREQUIRES)="$2" coin_foreach_w([myvar], [$3], [ m4_toupper(myvar)_PCREQUIRES="$2 $m4_toupper(myvar)_PCREQUIRES" m4_toupper(myvar)_CFLAGS="$m4_toupper($1)_CFLAGS $m4_toupper(myvar)_CFLAGS" m4_toupper(myvar)_LIBS="$m4_toupper($1)_LIBS $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_CFLAGS_INSTALLED="$m4_toupper($1)_CFLAGS_INSTALLED $m4_toupper(myvar)_CFLAGS_INSTALLED" m4_toupper(myvar)_LIBS_INSTALLED="$m4_toupper($1)_LIBS_INSTALLED $m4_toupper(myvar)_LIBS_INSTALLED" ]) fi AM_CONDITIONAL(m4_toupper(COIN_HAS_$1), [test $m4_tolower(coin_has_$1) != notGiven && test $m4_tolower(coin_has_$1) != skipping]) ]) # AC_COIN_CHECK_PACKAGE_FALLBACK ########################################################################### # COIN_CHECK_PACKAGE_BLAS # ########################################################################### # This macro checks for a library containing the BLAS library. It # 1. checks the --with-blas argument # 2. if --with-blas=BUILD has been specified goes to point 5 # 3. if --with-blas has been specified to a working library, sets BLAS_LIBS # to its value # 4. tries standard libraries # 5. calls COIN_CHECK_PACKAGE(Blas, [coinblas], [$1]) to check for # ThirdParty/Blas # The makefile conditional and preprocessor macro COIN_HAS_BLAS is defined. # BLAS_LIBS is set to the flags required to link with a Blas library. # For each build target X in $1, X_LIBS is extended with $BLAS_LIBS. # In case 3 and 4, the flags to link to Blas are added to X_PCLIBS too. # In case 5, Blas is added to X_PCREQUIRES. AC_DEFUN([AC_COIN_CHECK_PACKAGE_BLAS], [ AC_ARG_WITH([blas], AC_HELP_STRING([--with-blas], [specify BLAS library (or BUILD to enforce use of ThirdParty/Blas)]), [use_blas="$withval"], [use_blas=]) # if user specified --with-blas-lib, then we should give COIN_CHECK_PACKAGE # preference AC_ARG_WITH([blas-lib],,[use_blas=BUILD]) # Check if user supplied option makes sense if test x"$use_blas" != x; then if test "$use_blas" = "BUILD"; then # we come to this later : elif test "$use_blas" != "no"; then AC_MSG_CHECKING([whether user supplied BLASLIB=\"$use_blas\" works]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="$use_blas $LIBS" AC_COIN_TRY_FLINK([daxpy], [if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi AC_MSG_RESULT([yes: $use_blas])], [AC_MSG_RESULT([no]) AC_MSG_ERROR([user supplied BLAS library \"$use_blas\" does not work])]) LIBS="$coin_save_LIBS" fi else # Try to autodetect the library for blas based on build system #AC_MSG_CHECKING([default locations for BLAS]) skip_lblas_check=no case $build in *-sgi-*) AC_MSG_CHECKING([whether -lcomplib.sgimath has BLAS]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lcomplib.sgimath $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas="-lcomplib.sgimath" if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" ;; # Ideally, we'd use -library=sunperf, but it's an imperfect world. Studio # cc doesn't recognise -library, it wants -xlic_lib. Studio 12 CC doesn't # recognise -xlic_lib. Libtool doesn't like -xlic_lib anyway. Sun claims # that CC and cc will understand -library in Studio 13. The main extra # function of -xlic_lib and -library is to arrange for the Fortran run-time # libraries to be linked for C++ and C. We can arrange that explicitly. *-*-solaris*) AC_MSG_CHECKING([for BLAS in libsunperf]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $FLIBS $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas='-lsunperf' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" ;; *-cygwin* | *-mingw*) # On cygwin, consider -lblas only if doscompile is disabled. The prebuilt # library will want to link with cygwin, hence won't run standalone in DOS. if test "$enable_doscompile" = mingw; then skip_lblas_check=yes fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_save_LIBS="$LIBS" AC_MSG_CHECKING([for BLAS in MKL (32bit)]) LIBS="mkl_intel_c.lib mkl_sequential.lib mkl_core.lib $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas='mkl_intel_c.lib mkl_sequential.lib mkl_core.lib' AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" if test "x$use_blas" = x ; then AC_MSG_CHECKING([for BLAS in MKL (64bit)]) LIBS="mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas='mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib' AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" fi ;; esac ;; *-darwin*) AC_MSG_CHECKING([for BLAS in Veclib]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-framework vecLib $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas='-framework vecLib' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" ;; esac if test -z "$use_blas" && test $skip_lblas_check = no; then AC_MSG_CHECKING([whether -lblas has BLAS]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lblas $LIBS" AC_COIN_TRY_FLINK([daxpy], [use_blas='-lblas' if test $coin_need_flibs = yes ; then use_blas="$use_blas $FLIBS" fi AC_MSG_RESULT([yes: $use_blas]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building BLAS. if test -z "$use_blas" ; then use_blas=BUILD fi fi if test "x$use_blas" = xBUILD ; then AC_COIN_CHECK_PACKAGE(Blas, [coinblas], [$1]) elif test "x$use_blas" != x && test "$use_blas" != no; then coin_has_blas=yes AM_CONDITIONAL([COIN_HAS_BLAS],[test 0 = 0]) AC_DEFINE([COIN_HAS_BLAS],[1], [If defined, the BLAS Library is available.]) BLAS_LIBS="$use_blas" BLAS_CFLAGS= BLAS_DATA= AC_SUBST(BLAS_LIBS) AC_SUBST(BLAS_CFLAGS) AC_SUBST(BLAS_DATA) coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_PCLIBS="$BLAS_LIBS $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS="$BLAS_LIBS $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_LIBS_INSTALLED="$BLAS_LIBS $m4_toupper(myvar)_LIBS_INSTALLED" ]) else coin_has_blas=no AM_CONDITIONAL([COIN_HAS_BLAS],[test 0 = 1]) fi coin_foreach_w([myvar], [$1], [ AC_SUBST(m4_toupper(myvar)_PCLIBS) AC_SUBST(m4_toupper(myvar)_LIBS) AC_SUBST(m4_toupper(myvar)_LIBS_INSTALLED) ]) ]) # AC_COIN_CHECK_PACKAGE_BLAS ########################################################################### # COIN_CHECK_PACKAGE_LAPACK # ########################################################################### # This macro checks for a library containing the LAPACK library. It # 1. checks the --with-lapack argument # 2. if --with-lapack=BUILD has been specified goes to point 5 # 3. if --with-lapack has been specified to a working library, sets # LAPACK_LIBS to its value # 4. tries standard libraries # 5. calls COIN_CHECK_PACKAGE(Lapack, [coinlapack], [$1]) to check for # ThirdParty/Lapack # The makefile conditional and preprocessor macro COIN_HAS_LAPACK is defined. # LAPACK_LIBS is set to the flags required to link with a Lapack library. # For each build target X in $1, X_LIBS is extended with $LAPACK_LIBS. # In case 3 and 4, the flags to link to Lapack are added to X_PCLIBS too. # In case 5, Lapack is added to X_PCREQUIRES. # # TODO: Lapack usually depends on Blas, so if we check for a system lapack library, # shouldn't we include AC_COIN_CHECK_PACKAGE_BLAS first? # However, if we look for coinlapack via AC_COIN_CHECK_PACKAGE(Lapack, [coinlapack], [$1]), # then we will get Blas as dependency of coinlapack. AC_DEFUN([AC_COIN_CHECK_PACKAGE_LAPACK], [ AC_ARG_WITH([lapack], AC_HELP_STRING([--with-lapack], [specify LAPACK library (or BUILD to enforce use of ThirdParty/Lapack)]), [use_lapack=$withval], [use_lapack=]) #if user specified --with-lapack-lib, then we should give COIN_HAS_PACKAGE preference AC_ARG_WITH([lapack-lib],,[use_lapack=BUILD]) # Check if user supplied option makes sense if test x"$use_lapack" != x; then if test "$use_lapack" = "BUILD"; then # we come to this later : elif test "$use_lapack" != no; then AC_MSG_CHECKING([whether user supplied LAPACKLIB=\"$use_lapack\" works]) coin_need_flibs=no use_lapack="$use_lapack $BLAS_LIBS" coin_save_LIBS="$LIBS" LIBS="$use_lapack $LIBS" AC_COIN_TRY_FLINK([dsyev], [if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi AC_MSG_RESULT([yes: $use_lapack]) ], [AC_MSG_RESULT([no]) AC_MSG_ERROR([user supplied LAPACK library \"$use_lapack\" does not work])]) LIBS="$coin_save_LIBS" fi else if test x$coin_has_blas = xyes; then # First try to see if LAPACK is already available with BLAS library AC_MSG_CHECKING([whether LAPACK is already available with BLAS library]) coin_save_LIBS="$LIBS" coin_need_flibs=no LIBS="$BLAS_LIBS $LIBS" AC_COIN_TRY_FLINK([dsyev], [use_lapack="$BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi AC_MSG_RESULT([yes: $use_lapack]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" fi skip_llapack_check=no if test -z "$use_lapack"; then # Try to autodetect the library for lapack based on build system case $build in # TODO: Is this check actually needed here, since -lcomplib.sigmath should have been recognized as Blas library, # and above it is checked whether the Blas library already contains Lapack *-sgi-*) AC_MSG_CHECKING([whether -lcomplib.sgimath has LAPACK]) coin_save_LIBS="$LIBS" coin_need_flibs=no LIBS="-lcomplib.sgimath $BLAS_LIBS $LIBS" AC_COIN_TRY_FLINK([dsyev], [use_lapack="-lcomplib.sgimath $BLAS_LIBS" if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi AC_MSG_RESULT([yes: $use_lapack]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" ;; # See comments in COIN_CHECK_PACKAGE_BLAS. # TODO: Is this check actually needed here, since -lsunperf should have been recognized as Blas library, # and above it is checked whether the Blas library already contains Lapack *-*-solaris*) AC_MSG_CHECKING([for LAPACK in libsunperf]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-lsunperf $BLAS_LIBS $FLIBS $LIBS" AC_COIN_TRY_FLINK([dsyev], [use_lapack='-lsunperf $BLAS_LIBS' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi AC_MSG_RESULT([yes: $use_lapack]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" ;; # On cygwin, do this check only if doscompile is disabled. The prebuilt library # will want to link with cygwin, hence won't run standalone in DOS. *-cygwin*) if test "$enable_doscompile" = mingw; then skip_llapack_check=yes fi ;; esac fi if test -z "$use_lapack" && test $skip_llapack_check = no; then AC_MSG_CHECKING([whether -llapack has LAPACK]) coin_need_flibs=no coin_save_LIBS="$LIBS" LIBS="-llapack $BLAS_LIBS $LIBS" AC_COIN_TRY_FLINK([dsyev], [use_lapack='-llapack' if test $coin_need_flibs = yes ; then use_lapack="$use_lapack $FLIBS" fi AC_MSG_RESULT([yes: $use_lapack]) ], [AC_MSG_RESULT([no])]) LIBS="$coin_save_LIBS" fi # If we have no other ideas, consider building LAPACK. if test -z "$use_lapack" ; then use_lapack=BUILD fi fi if test "x$use_lapack" = xBUILD ; then AC_COIN_CHECK_PACKAGE(Lapack, [coinlapack], [$1]) elif test "x$use_lapack" != x && test "$use_lapack" != no; then coin_has_lapack=yes AM_CONDITIONAL([COIN_HAS_LAPACK],[test 0 = 0]) AC_DEFINE([COIN_HAS_LAPACK],[1], [If defined, the LAPACK Library is available.]) LAPACK_LIBS="$use_lapack" LAPACK_CFLAGS= LAPACK_DATA= AC_SUBST(LAPACK_LIBS) AC_SUBST(LAPACK_CFLAGS) AC_SUBST(LAPACK_DATA) coin_foreach_w([myvar], [$1], [ m4_toupper(myvar)_PCLIBS="$LAPACK_LIBS $m4_toupper(myvar)_PCLIBS" m4_toupper(myvar)_LIBS="$LAPACK_LIBS $m4_toupper(myvar)_LIBS" m4_toupper(myvar)_LIBS_INSTALLED="$LAPACK_LIBS $m4_toupper(myvar)_LIBS_INSTALLED" ]) else coin_has_lapack=no AM_CONDITIONAL([COIN_HAS_LAPACK],[test 0 = 1]) fi coin_foreach_w([myvar], [$1], [ AC_SUBST(m4_toupper(myvar)_PCLIBS) AC_SUBST(m4_toupper(myvar)_LIBS) AC_SUBST(m4_toupper(myvar)_LIBS_INSTALLED) ]) ]) # AC_COIN_CHECK_PACKAGE_LAPACK Ipopt-3.11.4/BuildTools/share/0000755000076600007660000000000012214537466014545 5ustar coincoinIpopt-3.11.4/BuildTools/share/config.site0000644000076600007660000002747311527752304016711 0ustar coincoin# This file contains site-specific settings for the configure scripts. # It can be used to specify options that are otherwise given to the # configure script as command line arguments or environment variables. # # This file must be located either in $prefix/share or $prefix/etc, where # prefix is the installation location. For the COIN packages, this is # by default the directory where the configure of the main package is run, # unless the --prefix option was given to the configure script. # Alternatively, one can set the environment variable CONFIG_SITE to the full # path to this file. # # This template file also serves as documentation for many available # configure options for COIN-OR projects. Please be aware of the following # conventions that translate the command line format into the one for the # config.site file: # # Command line version config.site version # # --with-NAME1-NAME2 with_NAME1_NAME2=yes # --with-NAME1-NAME2="VALUE" with_NAME1_NAME2="VALUE" # --without-NAME1-NAME2 with_NAME1_NAME2=no # --enable-NAME1-NAME2 enable_NAME1_NAME2=yes # --enable-NAME1-NAME2="VALUE" enable_NAME1_NAME2="VALUE" # --disable-NAME1-NAME2 enable_NAME1_NAME2=no # # Here, "NAME1-NAME2" is some string corresponding to a particular option; # note that dashes (-) are converted into underscores(_). VALUE is the # string that is the actual argument to an option. # Other variables that are directly assigned in the configure command line, # such as CXX=g++, are also written in this way in the config.site file. # # Note: This is a /bin/sh script, setting variables. There must be no # space between "=" and the value, and if required, a quotation must be # used. # # In the following we show some arguments for configure that can be used # for the COIN configure scripts. ########################################################################## # C++ compiler choice and options # ########################################################################## # C++ compiler name #CXX=g++ # C++ compiler options, overwriting configure's default choice #CXXFLAGS='-O3 -pipe' # Additional C++ compiler options that are added to configure's default # choice #ADD_CXXFLAGS='-pg' # Additional preprocessor definitions for the C++ compiler #CXXDEFS='-DZEROFAULT' # Sometimes it is desirable to compile some projects in debug mode, # and some in default optimized mode (see also enable_debug_compile # below). In those cases, you can set the separate C++ compiler # options for optimized and debug compilation using the following # variables: #OPT_CXXFLAGS='-O3 -pipe' #DBG_CXXFLAGS='-g -pipe' # If you are using MPI, it is best to specify the underlying C++ # compiler for the configure script in CXX (so that it can figure out # the default compiler options and test them), but then to tell the # configure script the actual MPI compiler (wrapper) using the # following variable #MPICXX='mpiCC' # If a project's library is generated from C++, but the compilers used # for linking is a C or Fortran compiler, one has to provide this # compilers with the C++ runtime libraries. This is done with the # following variable: #CXXLIBS='-lstdc++ -lm' ########################################################################## # C compiler choice and options # ########################################################################## # C compiler name #CC=gcc # C compiler options, overwriting configure's default choice #CFLAGS='-O3 -pipe' # Additional C compiler options that are added to configure's default choice #ADD_CFLAGS='-pg' # Additional preprocessor definitions for the C compiler #CDEFS='-DZEROFAULT' # Sometimes it is desirable to compile some projects in debug mode, # and some in default optimized mode (see also enable_debug_compile # below). In those cases, you can set the separate C compiler # options for optimized and debug compilation using the following # variables: #OPT_CFLAGS='-O3 -pipe' #DBG_CFLAGS='-g -pipe' # If you are using MPI, it is best to specify the underlying C # compiler for the configure script in CC (so that it can figure out # the default compiler options and test them), but then to tell the # configure script the actual MPI compiler (wrapper) using the # following variable #MPICC='mpicc' ########################################################################## # Fortran compiler choice and options # ########################################################################## # Fortran compiler name #F77=gfortran # Fortran compiler options, overwriting configure's default choice #FFLAGS='-O3 -pipe' # Additional Fortran compiler options that are added to configure's default # choice #ADD_FFLAGS='-pg' # Sometimes it is desirable to compile some projects in debug mode, # and some in default optimized mode (see also enable_debug_compile # below). In those cases, you can set the separate Fortran compiler # options for optimized and debug compilation using the following # variables: #OPT_FFLAGS='-O3 -pipe' #DBG_FFLAGS='-g -pipe' # If you are using MPI, it is best to specify the underlying Fortran # compiler for the configure script in F77 (so that it can figure out # the default compiler options and test them), but then to tell the # configure script the actual MPI compiler (wrapper) using the # following variable #MPIF77='mpif77' ########################################################################## # Utility programs and their options # ########################################################################## # Program for creating and extracting archives #AR=ar # Program for listing symbols in a binary #NM=nm ########################################################################## # Flags for setting compilation and configuration modes # ########################################################################## ##### INSTALLATION LOCATION # This --prefix flag determines where the binaries etc. are going to # be installed. By default, this is equal to the directory where # 'configure' is run, so that the 'bin/', 'lib/' etc. directories are # created as subdirectories there. One could also choose other # destinations, but keep in mind that some COIN packages use the same # COIN "sub-projects", but possibly different and conflicting # versions. #prefix=$HOME/MyCOIN ##### COMPILATION MODE UNDER CYGWIN # This options can only be used under Cygwin, and it has the following # possible choices: # - mingw (default): Use the GNU compilers to compile binaries that # can be run independently of Cygwin (particularly without # Cygwin1.dll) # - msvc: Use the "native" Windows compilers, such as cl, ifort # - no: Use GNU compilers to generate Cygwin-specific binaries. #enable_doscompile=msvc ##### SKIPPING CONFIGURATION AND COMPILATION OF SUBPROJECTS # It is possible to skip the configuration and compilation of COIN # projects in a package, even when the source code for the subproject # is there. For this, list the directory names that are supposed to # be skipped in the variable #COIN_SKIP_PROJECTS="Bcp Couenne" ##### DEBUG COMPILATION # Switch on debug compilation for all projects. (Note that this will also # switch to the usage of static instead of shared libraries, see # enable_shared below) #enable_debug=yes # Switch on debug compilation only for a specific project is done with # the command line flag enable-debug-project, where "project" is the string # with the project name (say, Clp, for the example). #enable_debug_clp=yes # Similarly, if the global enable-debug is set, we can switch it off for a # particular project, using #enable_debug_clp=no # Each project can make use of a project-specific "checklevel". It # depends on the project manager, if and how this is used. The level # checklevel is specified with the --with-PROJECT-checklevel, where # PROJECT is the lower-case string of the project name. For Ipopt, # this looks like #with_ipopt_checklevel=1 # Each project can make use of a project-specific "verbosity" level. # It depends on the project manager, if and how this is used. The # level checklevel is specified with the --with-PROJECT-verbosity, # where PROJECT is the lower-case string of the project name. For # Ipopt, this looks like #with_ipopt_verbosity=1 ##### CREATING SHARED VS. STATIC LIBRARIES # By default, projects that are compiled in optimized mode, produce # shared libraries (if supported), and those compiled in debug mode, # produce static libraries. This behavior can be changed using the # following options: # disable shared mode: compile every library as static #enable_shared=no # disable static mode: compile every library as shared #enable_static=no # enable shared mode: compile always a shared library (possibly in # addition to a static one) #enable_shared=yes # enable shared mode: compile always a static library (possibly in # addition to a shared one) #enable_static=yes ##### MAINTAINER MODE # Project developers might want to make changes to the autotools files. # Using --enable-maintainer-mode enables a number of automatic updates, # including: # - regeneration of Makefiles if Makefile.am is changes, # - regeneration and rerunning of configure script if required # - updating the svn externals if the Externals file has changed #enable_maintainer_mode ########################################################################## # Third-Party Codes and Packages # ########################################################################## ##### GENERIC FLAGS # Use the following if we want to have configure check for GNU packages # (such as zlib, bzlib, and readline) #enable_gnu_packages=yes # To use some third-party libraries, such as LP solvers, one needs to # specify both the directory with all header files as well as the # linker flags for linking with the library. This is done with the # --with-LIB-incdir and --with-LIB-lib configure flags, where "LIB" is # replaced by the lower-case short-form of the library. A possibly # incomplete list of choices for LIB in the current COIN-OR projects is: # cplex, gurobi, mosek, soplex, xpress. # For Cplex, one might set the following: #with_cplex_incdir='/usr/ilog/cplex90/include/ilcplex' #with_cplex_lib='-L/usr/ilog/cplex90/lib/static_pic -lcplex -lpthread' ##### FLAGS FOR SPECIFIC LIBRARIES IN THIRDPARTY # For some third-party dependencies, COIN supports automatic build # procedures, for which the user can download the external source code # into appropriate subdirectories in a "ThirdParty" subdirectory. But # the user might want to specify locations of already precompiled versions # of those dependencies. Those flags are discussed next. ### BLAS # Flag indicating where to find Blas. If --with-blas is not used, # the configure script will try a few default locations of Blas, and # if it doesn't find Blas, it will test if the Blas source files are # in ThirdParty/Blas. If so, those will be compiled, otherwise we # assume that Blas is not available. # # Specify precompiled Blas libraries via linker flags: #with_blas="-lf77blas -latlas /usr/lib64/libg2c.so" # Specify that Blas should be compiled within the #with_blas=BUILD # Specify that Blas should not be used #with_blas=no ### LAPACK # Flag indicating where to find Lapack. If --with-lapack is not used, # the configure script will try a few default locations of Lapack, and # if it doesn't find Lapack, it will test if the Lapack source files are # in ThirdParty/Lapack. If so, those will be compiled, otherwise we # assume that Lapack is not available. # # Specify precompiled Lapack libraries via linker flags: #with_lapack="-L$HOME/lib -lmylapack" # Specify that Lapack should be compiled within the #with_lapack=BUILD # Specify that Lapack should not be used #with_lapack=no Ipopt-3.11.4/BuildTools/config.guess0000755000076600007660000012706310637360060015763 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: Ipopt-3.11.4/BuildTools/commit_new_stable0000755000076600007660000001635711510516042017061 0ustar coincoin#!/bin/sh # Copyright (C) 2010 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # It is part of the BuildTools project in COIN-OR (www.coin-or.org) # # $Id$ # # Adapted from commit_new_release by Lou Hafer, SFU, 100507. #set -x -v set -e # Know thy self. If there are no '/' chars in the command name, we're running # in the current directory. Otherwise, strip the command name, leaving the # prefix. Coin-functions is expected to live in the same directory. As of # the original version (100602), this script doesn't need coin-functions, # but this still has some value as a consistency check. if expr "$0" : '.*/.*' >/dev/null 2>&1 ; then cmdDir=`echo $0 | sed -e 's,\(.*\)/[^/]*,\1,'` else cmdDir='.' fi cmdDir=`cd $cmdDir ; pwd` if test -r $cmdDir/coin-functions ; then . $cmdDir/coin-functions else echo "Cannot find utility functions file coin-functions; exiting." fi # We need at least one parameter. The default is a dry run (dryRun = 1). printHelp=0 dryRun=1 dirToCommit= if test "$#" -eq 0; then printHelp=1 else # Process the parameters. A parameter without an opening `-' is assumed to be # the spec for the directory to be committed. (Strip any trailing '/'. Some # people add it, but the script doesn't expect it.) while test $# -gt 0 && test $printHelp = 0 ; do case "$1" in -h* | --h*) printHelp=1 ;; -c* | --c*) dryRun=0 ;; -*) echo "$0: unrecognised command line switch '"$1"'." printHelp=1 ;; *) dirToCommit=`echo $1 | sed -e 's,/$,,'` ;; esac shift done fi # What are we committing? if test -z "$dirToCommit" ; then printHelp=1 fi if test $printHelp = 1 ; then cat < By default, commit_new_stable is a dry run, printing the commands that will be executed. When you're confident that everything looks right, use the -c (--commit) flag to commit the new stable branch. EOF exit 1 fi # Remember what was done during generation of the new stable. if test -r $dirToCommit/.new_stable_data; then . $dirToCommit/.new_stable_data else echo '' echo "Error: the file .new_stable_data is not present in $dirToCommit." echo 'Are you running commit_new_stable in the same directory where you' echo 'ran prepare_new_stable?' echo '' exit 1 fi # Confirm that we're in the proper directory. currDir=`pwd` if test "$currDir/$dirToCommit" != "$topBuildDir" ; then echo "According to $dirToCommit/.new_stable_data, the stable candidate was assembled" echo "in $topBuildDir." echo "You have asked to commit $currDir/$dirToCommit." echo "There is some confusion. Repository is unchanged." exit 1 fi # Change to the checkout directory. cd $coDir # If there are externals set on this directory, confirm that # .Externals.original is present so that we can restore them later. newStableExternals=`svn propget svn:externals .` if test -n "$newStableExternals" ; then if test -r .Externals.original ; then : else echo "This project has externals, but no .Externals.original file" echo "is present to restore them. Repository is unchanged." exit 1 fi fi # Make some short-form URLs by stripping the COIN URL base. srcURLshort=`echo $srcURL | sed -e "s,$coinURL/\(.*\),\1,"` newStableURLshort=`echo $newStableURL | sed -e "s,$coinURL/\(.*\),\1,"` # Do we have to svn add Dependencies? If this query comes up with a leading # `?', the answer is yes. If Dependencies is entirely absent or unchanged, # we'll get a null string. If it's modified, we'll have a leading `M'. dependStatus=`svn status Dependencies` if expr "$dependStatus" : '?.*Dependencies.*' >/dev/null 2>&1 ; then cmd='svn add Dependencies' echo $cmd if test $dryRun = 0 ; then eval $cmd fi fi # Now, do we really need to to a temporary commit? BuildTools is the poster # child, there are no changes at time of writing (100629). Do an svn status # on the checkout directory and see if anything comes up as modified. if svn status $coDir | egrep '^M' 2>&1 >/dev/null ; then doCommit=yes else doCommit=no fi if test $doCommit = yes ; then # Commit the stable back to its source URL so we can do a repository-side copy # to create the release. echo '' echo "===> Temporarily committing stable candidate to $srcURLshort ..." echo '' rev_num_before=`svn info . | grep -E '^Revision:' | sed -e 's|Revision: ||'` echo "Revision number before commit: $rev_num_before" cmd="svn ci -m \"temporarily committing stable candidate\"" echo $cmd if test $dryRun = 0 ; then eval $cmd fi # Update to confirm the commit. Avoid pulling in externals --- if we're # doing multiple commits of new stable branches, they may not exist. As it # stands, the main purpose of this call is to allow us to easily obtain the # current revision. # It might be useful to strengthen this and check that the value # is what we're expecting --- one greater than the revision before # commit. `--ignore-externals' could be made provisional on the existence # of all externals by passing a boolean through .new_release_data. This # would strengthen the update, in that the update would confirm existence # of the externals. cmd='svn update --ignore-externals' echo $cmd if test $dryRun = 0 ; then eval $cmd fi rev_num=`svn info . | grep -E '^Revision:' | sed -e 's|Revision: ||'` echo "Current revision number is: $rev_num" fi # End of preparatory commit. # Create the new stable branch with a repository-side copy. echo '' echo "===> Creating new stable branch $newStableURLshort from $srcURLshort (r$rev_num) ..." echo '' cmd="svn copy -m \"creating $newStableURLshort from $srcURLshort (r$rev_num).\" $srcURL $newStableURL" echo $cmd if test $dryRun = 0 ; then eval $cmd fi # Now restore the original stable branch. if test $doCommit = yes ; then # And restore the source to its original condition. Start by reverting # to the original externals. if test -r .Externals.original ; then echo '' echo '===> Restoring original externals ...' echo '' cmd="svn propset -F .Externals.original svn:externals ." echo $cmd if test $dryRun = 0 ; then eval $cmd rm .Externals.original fi fi # For every .bak file that we created, revert it. if test -n "$bak_files" ; then echo '' echo '===> Restoring modified files ...' echo '' for i in $bak_files; do cmd="cp $i.bak $i ; rm $i.bak" if test $dryRun = 1 ; then echo "$cmd" else eval $cmd fi done fi # Rebuild configure and Makefile.in files echo '' echo '===> Executing run_autotools to restore configuration files ...' echo '' curdir=`pwd` cd $topBuildDir cmd="./BuildTools/run_autotools" echo $cmd if test $dryRun = 0 ; then eval $cmd fi cd "$curdir" # Commit the restored source URL. echo '' echo "===> Committing restored $srcURLshort ..." echo '' cmd="svn ci -m \"restoring $srcURLshort\"" echo $cmd if test $dryRun = 0 ; then eval $cmd fi fi # End of restorative commit. cd $topBuildDir cmd="rm .new_stable_data" echo $cmd if test $dryRun = 0 ; then eval $cmd fi cd $startDir echo '' echo "Done, new stable $newStableURLshort created." echo '' echo "You can now delete the directory $topBuildDir including subdirectories" Ipopt-3.11.4/install-sh0000755000076600007660000002202112151613040013343 0ustar coincoin#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/LICENSE0000644000076600007660000000032312151613040012345 0ustar coincoinFor licensing information for files in this directory, please see the comments in the header of each file. For licensing of files in each of the subdirectories, please see the LICENSE file in that subdirectory. Ipopt-3.11.4/Makefile.am0000644000076600007660000000405012151613040013375 0ustar coincoin# Copyright (C) 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: Makefile.am 2313 2013-05-30 09:04:32Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 AUTOMAKE_OPTIONS = foreign EXTRA_DIST = doxydoc/doxygen.conf ######################################################################## # Subdirectories # ######################################################################## # subdirs is set by configure as the list of all subdirectories to recurse # into SUBDIRS = $(subdirs) ######################################################################## # Extra Targets # ######################################################################## test: all cd Ipopt; $(MAKE) test unitTest: test tests: all for dir in $(subdirs); do \ if test -r $$dir/test/Makefile; then \ (cd $$dir; $(MAKE) test) \ fi; \ done unitTests: tests doxydoc: doxygen doxydoc/doxygen.conf clean-doxydoc : cd doxydoc && rm -rf html *.log *.tag install-doxydoc : doxydoc $(mkdir_p) $(DocInstallDir)/doxydoc cp -R doxydoc/html doxydoc/ipopt_doxy.tag $(DocInstallDir)/doxydoc uninstall-doxydoc: if test -e $(DocInstallDir)/doxydoc ; then rm -rf $(DocInstallDir)/doxydoc ; fi cuter: cd Ipopt; $(MAKE) cuter .PHONY: test unitTest tests unitTests doxydoc cuter clean-local: clean-doxydoc uninstall-local: uninstall-doxydoc install-exec-local: @if test -e doxydoc/html ; then \ $(MAKE) install-doxydoc ; \ else \ echo "Run make install-doxydoc to generate and install Doxygen documentation." ; \ fi ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = coin_subdirs.txt include BuildTools/Makemain.inc Ipopt-3.11.4/Dependencies0000644000076600007660000000130212151613040013647 0ustar coincoinBuildTools https://projects.coin-or.org/svn/BuildTools/stable/0.7 ThirdParty/ASL https://projects.coin-or.org/svn/BuildTools/ThirdParty/ASL/stable/1.2 ThirdParty/Metis https://projects.coin-or.org/svn/BuildTools/ThirdParty/Metis/stable/1.2 ThirdParty/HSLold https://projects.coin-or.org/svn/BuildTools/ThirdParty/HSL/stable/1.3 ThirdParty/HSL https://projects.coin-or.org/svn/BuildTools/ThirdParty/HSL/stable/1.4 ThirdParty/Blas https://projects.coin-or.org/svn/BuildTools/ThirdParty/Blas/stable/1.3 ThirdParty/Lapack https://projects.coin-or.org/svn/BuildTools/ThirdParty/Lapack/stable/1.4 ThirdParty/Mumps https://projects.coin-or.org/svn/BuildTools/ThirdParty/Mumps/stable/1.4 Ipopt-3.11.4/configure.ac0000644000076600007660000000610312214340172013633 0ustar coincoin# Copyright (C) 2007, 2010 International Business Machines. # All Rights Reserved. # This file is distributed under the Eclipse Public License. ## $Id: configure.ac 2389 2013-09-12 13:24:10Z stefan $ # Author: Andreas Waechter IBM 2006-04-13 ############################################################################# # Names and other basic things # ############################################################################# AC_PREREQ(2.59) AC_INIT([Ipopt],[3.11.4],[http://projects.coin-or.org/Ipopt/newticket]) AC_COPYRIGHT([ Copyright 2007, 2010 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License.]) AC_REVISION(0.9) # List one file in the package so that the configure script can test # whether the package is actually there AC_CONFIG_SRCDIR(configure.ac) # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. AC_PREFIX_DEFAULT([`pwd`]) ############################################################################# # Create the libtool script for the subdirectories # ############################################################################# AC_COIN_CREATE_LIBTOOL ############################################################################# # Check which ThirdParty sources are available # ############################################################################# AC_COIN_MAIN_PACKAGEDIR([ASL], [ThirdParty],[solvers/asl.h]) AC_COIN_MAIN_PACKAGEDIR([Blas], [ThirdParty],[daxpy.f]) AC_COIN_MAIN_PACKAGEDIR([Lapack],[ThirdParty],[LAPACK/SRC/dlarf.f]) AC_COIN_MAIN_PACKAGEDIR([Metis], [ThirdParty],[metis-4.0/Lib/balance.c]) AC_COIN_MAIN_PACKAGEDIR([HSL], [ThirdParty],[coinhsl/common/deps.f]) AC_COIN_MAIN_PACKAGEDIR([HSLold],[ThirdParty],[configure.ac]) AC_COIN_MAIN_PACKAGEDIR([Mumps], [ThirdParty],[MUMPS/src/dmumps_part1.F]) ############################################################################# # Check which subprojects are there # ############################################################################# AC_COIN_MAIN_PACKAGEDIR(Ipopt) ############################################################################# # Doxygen setup # ############################################################################# AC_COIN_DOXYGEN() ############################################################################## # Finishing up by writing all the output # ############################################################################## # Here list all the files that configure should create (except for the # configuration header file) AC_CONFIG_FILES([Makefile doxydoc/doxygen.conf]) # Finally, we let configure write all the output... AC_COIN_FINALIZE Ipopt-3.11.4/depcomp0000755000076600007660000003710012151613040012720 0ustar coincoin#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/Makefile.in0000644000076600007660000006116212151613040013415 0ustar coincoin# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2006 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 # Copyright (C) 2006, 2007 International Business Machines and others. # All Rights Reserved. # This file is distributed under the Eclipse Public License. # Author: Andreas Waechter IBM 2006-04-13 ######################################################################## # Documentation installation # ######################################################################## srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/BuildTools/Makemain.inc $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(top_srcdir)/doxydoc/doxygen.conf.in ChangeLog INSTALL \ config.guess config.sub depcomp install-sh ltmain.sh missing @HAVE_EXTERNALS_TRUE@am__append_1 = Dependencies @HAVE_EXTERNALS_TRUE@am__append_2 = .Dependencies-stamp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = doxydoc/doxygen.conf SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ABSBUILDDIR = @ABSBUILDDIR@ ACLOCAL = @ACLOCAL@ ADD_CFLAGS = @ADD_CFLAGS@ ADD_CXXFLAGS = @ADD_CXXFLAGS@ ADD_FFLAGS = @ADD_FFLAGS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AUX_DIR = @AUX_DIR@ AWK = @AWK@ BUILDTOOLSDIR = @BUILDTOOLSDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CDEFS = @CDEFS@ CFLAGS = @CFLAGS@ COIN_CC_IS_CL_FALSE = @COIN_CC_IS_CL_FALSE@ COIN_CC_IS_CL_TRUE = @COIN_CC_IS_CL_TRUE@ COIN_CXX_IS_CL_FALSE = @COIN_CXX_IS_CL_FALSE@ COIN_CXX_IS_CL_TRUE = @COIN_CXX_IS_CL_TRUE@ COIN_SKIP_PROJECTS = @COIN_SKIP_PROJECTS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEFS = @CXXDEFS@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DBG_CFLAGS = @DBG_CFLAGS@ DBG_CXXFLAGS = @DBG_CXXFLAGS@ DBG_FFLAGS = @DBG_FFLAGS@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ HAVE_EXTERNALS_FALSE = @HAVE_EXTERNALS_FALSE@ HAVE_EXTERNALS_TRUE = @HAVE_EXTERNALS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBEXT = @LIBEXT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOLM4 = @LIBTOOLM4@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_LDFLAGS = @LT_LDFLAGS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ MPICC = @MPICC@ MPICXX = @MPICXX@ MPIF77 = @MPIF77@ OBJEXT = @OBJEXT@ OPT_CFLAGS = @OPT_CFLAGS@ OPT_CXXFLAGS = @OPT_CXXFLAGS@ OPT_FFLAGS = @OPT_FFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ RPATH_FLAGS = @RPATH_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ VPATH_DISTCLEANFILES = @VPATH_DISTCLEANFILES@ abs_bin_dir = @abs_bin_dir@ abs_include_dir = @abs_include_dir@ abs_lib_dir = @abs_lib_dir@ abs_source_dir = @abs_source_dir@ ac_c_preproc_warn_flag = @ac_c_preproc_warn_flag@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ ac_cxx_preproc_warn_flag = @ac_cxx_preproc_warn_flag@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ coin_doxy_excludes = @coin_doxy_excludes@ coin_doxy_logname = @coin_doxy_logname@ coin_doxy_tagfiles = @coin_doxy_tagfiles@ coin_doxy_tagname = @coin_doxy_tagname@ coin_doxy_usedot = @coin_doxy_usedot@ coin_have_doxygen = @coin_have_doxygen@ datadir = @datadir@ exec_prefix = @exec_prefix@ have_autoconf = @have_autoconf@ have_automake = @have_automake@ have_svn = @have_svn@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sol_cc_compiler = @sol_cc_compiler@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = foreign EXTRA_DIST = doxydoc/doxygen.conf $(am__append_1) ######################################################################## # Subdirectories # ######################################################################## # subdirs is set by configure as the list of all subdirectories to recurse # into SUBDIRS = $(subdirs) ######################################################################## # Maintainer Stuff # ######################################################################## # Files that are generated and should be cleaned with make distclean DISTCLEANFILES = coin_subdirs.txt $(am__append_2) \ $(VPATH_DISTCLEANFILES) DocFiles = README AUTHORS LICENSE DocInstallDir = $(datadir)/coin/doc/$(PACKAGE_NAME) all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/BuildTools/Makemain.inc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) doxydoc/doxygen.conf: $(top_builddir)/config.status $(top_srcdir)/doxydoc/doxygen.conf.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/BuildTools $(distdir)/doxydoc @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-exec-local install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-local uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-libtool clean-local \ clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-exec-local install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am \ uninstall-local ######################################################################## # Extra Targets # ######################################################################## test: all cd Ipopt; $(MAKE) test unitTest: test tests: all for dir in $(subdirs); do \ if test -r $$dir/test/Makefile; then \ (cd $$dir; $(MAKE) test) \ fi; \ done unitTests: tests doxydoc: doxygen doxydoc/doxygen.conf clean-doxydoc : cd doxydoc && rm -rf html *.log *.tag install-doxydoc : doxydoc $(mkdir_p) $(DocInstallDir)/doxydoc cp -R doxydoc/html doxydoc/ipopt_doxy.tag $(DocInstallDir)/doxydoc uninstall-doxydoc: if test -e $(DocInstallDir)/doxydoc ; then rm -rf $(DocInstallDir)/doxydoc ; fi cuter: cd Ipopt; $(MAKE) cuter .PHONY: test unitTest tests unitTests doxydoc cuter clean-local: clean-doxydoc uninstall-local: uninstall-doxydoc install-exec-local: @if test -e doxydoc/html ; then \ $(MAKE) install-doxydoc ; \ else \ echo "Run make install-doxydoc to generate and install Doxygen documentation." ; \ fi install-doc: $(DocFiles) test -z "$(DocInstallDir)" || $(mkdir_p) "$(DESTDIR)$(DocInstallDir)" for file in $(DocFiles); do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ if test -f "$$dir$$file"; then $(INSTALL_DATA) "$$dir$$file" "$(DESTDIR)$(DocInstallDir)/$$file"; fi; \ done uninstall-doc: for file in $(DocFiles); do \ rm -f "$(DESTDIR)$(DocInstallDir)/$$file"; \ done ######################################################################## # Maintainer Stuff # ######################################################################## # Make sure acinclude is using most recent coin.m4 @MAINTAINER_MODE_TRUE@$(srcdir)/acinclude.m4: $(BUILDTOOLSDIR)/coin.m4 @MAINTAINER_MODE_TRUE@ cat $(LIBTOOLM4) $< > $@ # Make sure the autotools scripts are up to date @MAINTAINER_MODE_TRUE@$(AUX_DIR)/install-sh: $(BUILDTOOLSDIR)/install-sh @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/missing: $(BUILDTOOLSDIR)/missing @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.guess: $(BUILDTOOLSDIR)/config.guess @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/config.sub: $(BUILDTOOLSDIR)/config.sub @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/depcomp: $(BUILDTOOLSDIR)/depcomp @MAINTAINER_MODE_TRUE@ cp $< $@ @MAINTAINER_MODE_TRUE@$(AUX_DIR)/ltmain.sh: $(BUILDTOOLSDIR)/ltmain.sh @MAINTAINER_MODE_TRUE@ cp $< $@ # Take care of updating externals (if Dependencies file exists) @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@$(top_builddir)/Makefile: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@.Dependencies-stamp: $(srcdir)/Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); BuildTools/set_externals Dependencies @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ touch .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@update-externals: .Dependencies-stamp @HAVE_EXTERNALS_TRUE@@MAINTAINER_MODE_TRUE@ cd $(srcdir); svn update .PHONY: install-doc uninstall-doc update-externals # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Ipopt-3.11.4/ltmain.sh0000755000076600007660000057753012151613040013206 0ustar coincoin# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. basename="s,^.*/,,g" # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: progname=`echo "$progpath" | $SED $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION=1.5.22 TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xdir="$my_gentop/$my_xlib" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2005 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$later $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built fi build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -pg pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ -t[45]*|-txscale*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $absdir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then $show "${rm}r $gentop" $run ${rm}r "$gentop" fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` else compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` fi ;; * ) compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char)name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable(const char * path) { struct stat st; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ char * find_executable (const char* wrapper) { int has_slash = 0; const char* p; const char* p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char* path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char* q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR(*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable(concat_name)) return concat_name; XFREE(concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen(tmp); concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable(concat_name)) return concat_name; XFREE(concat_name); return NULL; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit $EXIT_SUCCESS fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: Ipopt-3.11.4/missing0000755000076600007660000002540612151613040012750 0ustar coincoin#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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, or (at your option) # any later version. # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: Ipopt-3.11.4/README0000644000076600007660000000042112151613040012217 0ustar coincoin To install this package, please look at the INSTALL file. This package contains several subdirectories corresponding to COIN-OR projects (www.coin-or.org). The AUTHORS, LICENSE and README files in each of the subdirectories give more information about these projects. Ipopt-3.11.4/configure0000755000076600007660000277616312214340172013302 0ustar coincoin#! /bin/sh # From configure.ac 0.9. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for Ipopt 3.11.4. # # Report bugs to . # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # # # Copyright 2007, 2010 International Business Machines and others. # All Rights Reserved. # This file is part of the open source package Coin which is distributed # under the Eclipse Public License. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME='Ipopt' PACKAGE_TARNAME='ipopt' PACKAGE_VERSION='3.11.4' PACKAGE_STRING='Ipopt 3.11.4' PACKAGE_BUGREPORT='http://projects.coin-or.org/Ipopt/newticket' ac_unique_file="configure.ac" ac_default_prefix=`pwd` # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subdirs_all="$ac_subdirs_all ThirdParty/ASL" ac_subdirs_all="$ac_subdirs_all ThirdParty/Blas" ac_subdirs_all="$ac_subdirs_all ThirdParty/Lapack" ac_subdirs_all="$ac_subdirs_all ThirdParty/Metis" ac_subdirs_all="$ac_subdirs_all ThirdParty/HSL" ac_subdirs_all="$ac_subdirs_all ThirdParty/HSLold" ac_subdirs_all="$ac_subdirs_all ThirdParty/Mumps" ac_subdirs_all="$ac_subdirs_all Ipopt" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os CDEFS ADD_CFLAGS DBG_CFLAGS OPT_CFLAGS sol_cc_compiler CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT COIN_CC_IS_CL_TRUE COIN_CC_IS_CL_FALSE MPICC CXXDEFS ADD_CXXFLAGS DBG_CXXFLAGS OPT_CXXFLAGS CXX CXXFLAGS ac_ct_CXX COIN_CXX_IS_CL_TRUE COIN_CXX_IS_CL_FALSE MPICXX ADD_FFLAGS DBG_FFLAGS OPT_FFLAGS F77 ac_ct_F77 FFLAGS MPIF77 EGREP LN_S INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOLM4 have_autoconf have_automake have_svn BUILDTOOLSDIR AUX_DIR abs_source_dir abs_lib_dir abs_include_dir abs_bin_dir HAVE_EXTERNALS_TRUE HAVE_EXTERNALS_FALSE host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP LIBTOOL ac_c_preproc_warn_flag ac_cxx_preproc_warn_flag RPATH_FLAGS LT_LDFLAGS COIN_SKIP_PROJECTS subdirs coin_have_doxygen coin_doxy_usedot coin_doxy_tagname coin_doxy_logname coin_doxy_tagfiles coin_doxy_excludes LIBEXT VPATH_DISTCLEANFILES ABSBUILDDIR LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CDEFS_set=${CDEFS+set} ac_env_CDEFS_value=$CDEFS ac_cv_env_CDEFS_set=${CDEFS+set} ac_cv_env_CDEFS_value=$CDEFS ac_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_cv_env_ADD_CFLAGS_set=${ADD_CFLAGS+set} ac_cv_env_ADD_CFLAGS_value=$ADD_CFLAGS ac_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_cv_env_DBG_CFLAGS_set=${DBG_CFLAGS+set} ac_cv_env_DBG_CFLAGS_value=$DBG_CFLAGS ac_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_cv_env_OPT_CFLAGS_set=${OPT_CFLAGS+set} ac_cv_env_OPT_CFLAGS_value=$OPT_CFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_MPICC_set=${MPICC+set} ac_env_MPICC_value=$MPICC ac_cv_env_MPICC_set=${MPICC+set} ac_cv_env_MPICC_value=$MPICC ac_env_CXXDEFS_set=${CXXDEFS+set} ac_env_CXXDEFS_value=$CXXDEFS ac_cv_env_CXXDEFS_set=${CXXDEFS+set} ac_cv_env_CXXDEFS_value=$CXXDEFS ac_env_ADD_CXXFLAGS_set=${ADD_CXXFLAGS+set} ac_env_ADD_CXXFLAGS_value=$ADD_CXXFLAGS ac_cv_env_ADD_CXXFLAGS_set=${ADD_CXXFLAGS+set} ac_cv_env_ADD_CXXFLAGS_value=$ADD_CXXFLAGS ac_env_DBG_CXXFLAGS_set=${DBG_CXXFLAGS+set} ac_env_DBG_CXXFLAGS_value=$DBG_CXXFLAGS ac_cv_env_DBG_CXXFLAGS_set=${DBG_CXXFLAGS+set} ac_cv_env_DBG_CXXFLAGS_value=$DBG_CXXFLAGS ac_env_OPT_CXXFLAGS_set=${OPT_CXXFLAGS+set} ac_env_OPT_CXXFLAGS_value=$OPT_CXXFLAGS ac_cv_env_OPT_CXXFLAGS_set=${OPT_CXXFLAGS+set} ac_cv_env_OPT_CXXFLAGS_value=$OPT_CXXFLAGS ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_MPICXX_set=${MPICXX+set} ac_env_MPICXX_value=$MPICXX ac_cv_env_MPICXX_set=${MPICXX+set} ac_cv_env_MPICXX_value=$MPICXX ac_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_cv_env_ADD_FFLAGS_set=${ADD_FFLAGS+set} ac_cv_env_ADD_FFLAGS_value=$ADD_FFLAGS ac_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_cv_env_DBG_FFLAGS_set=${DBG_FFLAGS+set} ac_cv_env_DBG_FFLAGS_value=$DBG_FFLAGS ac_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_cv_env_OPT_FFLAGS_set=${OPT_FFLAGS+set} ac_cv_env_OPT_FFLAGS_value=$OPT_FFLAGS ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS ac_env_MPIF77_set=${MPIF77+set} ac_env_MPIF77_value=$MPIF77 ac_cv_env_MPIF77_set=${MPIF77+set} ac_cv_env_MPIF77_value=$MPIF77 ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_COIN_SKIP_PROJECTS_set=${COIN_SKIP_PROJECTS+set} ac_env_COIN_SKIP_PROJECTS_value=$COIN_SKIP_PROJECTS ac_cv_env_COIN_SKIP_PROJECTS_set=${COIN_SKIP_PROJECTS+set} ac_cv_env_COIN_SKIP_PROJECTS_value=$COIN_SKIP_PROJECTS # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Ipopt 3.11.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Ipopt 3.11.4:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-debug compile all projects with debug options tests (implies --disable-shared) --enable-doscompile Under Cygwin, compile so that executables run under DOS. Set to mingw to use gcc/g++/ld with -mno-cygwin. Set to msvc to use cl/link (or icl/link). Default when mentioned: mingw. Default when not mentioned: disabled. --enable-static[=PKGS] build static libraries [default=no] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --with-asl-lib linker flags for using project ASL --with-asl-incdir directory with header files for using project ASL --with-asl-datadir directory with data files for using project ASL --with-blas-lib linker flags for using project Blas --with-blas-incdir directory with header files for using project Blas --with-blas-datadir directory with data files for using project Blas --with-blas specify BLAS library (or BUILD to enforce use of ThirdParty/Blas) --with-lapack-lib linker flags for using project Lapack --with-lapack-incdir directory with header files for using project Lapack --with-lapack-datadir directory with data files for using project Lapack --with-lapack specify LAPACK library (or BUILD to enforce use of ThirdParty/Lapack) --with-metis-lib linker flags for using project Metis --with-metis-incdir directory with header files for using project Metis --with-metis-datadir directory with data files for using project Metis --with-hsl-lib linker flags for using project HSL --with-hsl-incdir directory with header files for using project HSL --with-hsl-datadir directory with data files for using project HSL --with-hslold-lib linker flags for using project HSLold --with-hslold-incdir directory with header files for using project HSLold --with-hslold-datadir directory with data files for using project HSLold --with-mumps-lib linker flags for using project Mumps --with-mumps-incdir directory with header files for using project Mumps --with-mumps-datadir directory with data files for using project Mumps --with-ipopt-lib linker flags for using project Ipopt --with-ipopt-incdir directory with header files for using project Ipopt --with-ipopt-datadir directory with data files for using project Ipopt --with-dot use dot (from graphviz) when creating documentation with doxygen if available; --without-dot to disable Some influential environment variables: CDEFS Additional -D flags to be used when compiling C code. ADD_CFLAGS Additional C compiler options DBG_CFLAGS Debug C compiler options OPT_CFLAGS Optimize C compiler options CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory MPICC C MPI Compiler CXXDEFS Additional -D flags to be used when compiling C++ code. ADD_CXXFLAGS Additional C++ compiler options DBG_CXXFLAGS Debug C++ compiler options OPT_CXXFLAGS Optimize C++ compiler options CXX C++ compiler command CXXFLAGS C++ compiler flags MPICXX C++ MPI Compiler ADD_FFLAGS Additional Fortran compiler options DBG_FFLAGS Debug Fortran compiler options OPT_FFLAGS Optimize Fortran compiler options F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags MPIF77 Fortran MPI Compiler CPP C preprocessor CXXCPP C++ preprocessor COIN_SKIP_PROJECTS Set to the subdirectories of projects that should be skipped in the configuration Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Ipopt configure 3.11.4 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright 2007, 2010 International Business Machines and others. All Rights Reserved. This file is part of the open source package Coin which is distributed under the Eclipse Public License. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Ipopt $as_me 3.11.4, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # List one file in the package so that the configure script can test # whether the package is actually there # Where should everything be installed by default? Here, we want it # to be installed directly in 'bin', 'lib', 'include' subdirectories # of the directory where configure is run. The default would be # /usr/local. ############################################################################# # Create the libtool script for the subdirectories # ############################################################################# ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Check if user wants to produce debugging code echo "$as_me:$LINENO: checking whether we want to compile in debug mode" >&5 echo $ECHO_N "checking whether we want to compile in debug mode... $ECHO_C" >&6 # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" case "${enableval}" in yes) coin_debug_compile=true if test "${enable_shared+set}" = set; then :; else enable_shared=no fi ;; no) coin_debug_compile=false ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5 echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;} { (exit 1); exit 1; }; } ;; esac else coin_debug_compile=false fi; # m4_ifvaln([], if test $coin_debug_compile = true; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # m4_ifvaln([], # Get the name of the C compiler and appropriate compiler options case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac # Check whether --enable-doscompile or --disable-doscompile was given. if test "${enable_doscompile+set}" = set; then enableval="$enable_doscompile" if test "$enable_doscompile" != no; then case $build in *-cygwin* | *-mingw*) ;; *) { { echo "$as_me:$LINENO: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&5 echo "$as_me: error: --enable-doscompile option makes sense only under Cygwin or MinGW" >&2;} { (exit 1); exit 1; }; } ;; esac fi else enable_doscompile=no fi; case "$enable_doscompile" in mingw) case $build in *-mingw*) enable_doscompile=no ;; esac ;; msvc|no) ;; yes) enable_doscompile=mingw ;; *) { { echo "$as_me:$LINENO: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&5 echo "$as_me: error: Invalid value $enable_doscompile for --enable-doscompile. Try configure --help=recursive." >&2;} { (exit 1); exit 1; }; } ;; esac if test "$enable_doscompile" != no ; then { echo "$as_me:$LINENO: DOS compile style is: $enable_doscompile" >&5 echo "$as_me: DOS compile style is: $enable_doscompile" >&6;} fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # For consistency, we set the C compiler to the same value of the C++ # compiler, if the C++ is set, but the C compiler isn't (only for CXX=cl) if test x"$CXX" != x; then case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) if test x"$CC" = x; then CC="$CXX" { echo "$as_me:$LINENO: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&5 echo "$as_me: WARNING: C++ compiler name provided as $CXX, but CC is unset. Setting CC to $CXX" >&2;} fi ;; esac fi coin_has_cc=yes save_cflags="$CFLAGS" # For *-*-solaris*, promote Studio/Workshop cc compiler to front of list. # Depending on the user's PATH, when Studio/Workshop cc is not present we may # find /usr/ucb/cc, which is almost certainly not a good choice for the C # compiler. In this case, put cc after gcc. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="gcc cl" fi ;; *-*-solaris*) # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_sol_cc_compiler+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$sol_cc_compiler"; then ac_cv_prog_sol_cc_compiler="$sol_cc_compiler" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_sol_cc_compiler="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_sol_cc_compiler shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set sol_cc_compiler to just the basename; use the full file name. shift ac_cv_prog_sol_cc_compiler="$as_dir/$ac_word${1+' '}$@" fi fi fi fi sol_cc_compiler=$ac_cv_prog_sol_cc_compiler if test -n "$sol_cc_compiler"; then echo "$as_me:$LINENO: result: $sol_cc_compiler" >&5 echo "${ECHO_T}$sol_cc_compiler" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$sol_cc_compiler" = "cc" ; then comps="cc xlc gcc pgcc icc" else comps="xlc gcc pgcc icc cc" fi ;; *-linux-gnu*) comps="gcc cc pgcc icc xlc" ;; *-linux-*) comps="xlc gcc cc pgcc icc" ;; *) comps="xlc_r xlc cc gcc pgcc icc" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CC || test "${ac_cv_prog_CC+set}" != set || { ac_cv_prog_CC=; export ac_cv_prog_CC; } # AC_MSG_NOTICE([C compiler candidates: $comps]) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$CC" ; then { { echo "$as_me:$LINENO: error: Failed to find a C compiler!" >&5 echo "$as_me: error: Failed to find a C compiler!" >&2;} { (exit 1); exit 1; }; } fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cc_g" = yes ; then ac_cv_prog_cc_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CFLAGS="$save_cflags" # add automake conditional so we can recognize cl compiler in makefile coin_cc_is_cl=false case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_cc_is_cl=true ;; esac if test $coin_cc_is_cl = true; then COIN_CC_IS_CL_TRUE= COIN_CC_IS_CL_FALSE='#' else COIN_CC_IS_CL_TRUE='#' COIN_CC_IS_CL_FALSE= fi # Check if a project specific CFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CFLAGS+set} if test x$coin_tmp = xset; then eval CFLAGS=\${${COIN_PRJCT}_CFLAGS} fi fi if test x"$CFLAGS" = x; then coin_add_cflags= coin_opt_cflags= coin_dbg_cflags= coin_warn_cflags= if test "$GCC" = "yes"; then case "$CC" in icc* | */icc*) ;; *) coin_opt_cflags="-O3" coin_add_cflags="-pipe" coin_dbg_cflags="-g -O0" coin_warn_cflags="-Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cflags="-pedantic-errors $coin_warn_cflags" ;; esac case $enable_doscompile in mingw) CFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cflags="-mno-cygwin $coin_add_cflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS= ;; esac esac fi if test -z "$coin_opt_cflags"; then case $build in *-cygwin* | *-mingw*) case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -O2' coin_dbg_cflags='-MDd' else coin_opt_cflags='-MT -O2' coin_dbg_cflags='-MTd' fi coin_add_cflags='-nologo -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cflags='-MD -Ox' coin_dbg_cflags='-MDd -debug' else coin_opt_cflags='-MT -Ox' coin_dbg_cflags='-MTd -debug' fi coin_add_cflags='-nologo -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CC" in icc* | */icc*) coin_opt_cflags="-O3 -ip -mp1" coin_add_cflags="" coin_dbg_cflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cflags="-i_dynamic $coin_add_cflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgcc* | */pgcc*) coin_opt_cflags="-fast" coin_add_cflags="-Kieee -pc 64" coin_dbg_cflags="-g" ;; esac ;; *-ibm-*) case "$CC" in xlc* | */xlc* | mpxlc* | */mpxlc*) coin_opt_cflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_cflags="-g" ;; esac ;; *-hp-*) coin_opt_cflags="-O" coin_add_cflags="-Ae" coin_dbg_cflags="-g" ;; *-*-solaris*) coin_opt_cflags="-xO4" coin_dbg_cflags="-g" ;; *-sgi-*) coin_opt_cflags="-O -OPT:Olimit=0" coin_dbg_cflags="-g" ;; esac fi if test "$ac_cv_prog_cc_g" = yes && test -z "$coin_dbg_cflags" ; then coin_dbg_cflags="-g" fi if test -z "$coin_opt_cflags"; then # Try if -O option works if nothing else is set CFLAGS="-O" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cflags" = xyes; then coin_warn_cflags= fi if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$coin_dbg_cflags $coin_add_cflags $coin_warn_cflags" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$coin_opt_cflags $coin_add_cflags -DNDEBUG $coin_warn_cflags" fi DBG_CFLAGS="$DBG_CFLAGS $ADD_CFLAGS $CDEFS" OPT_CFLAGS="$OPT_CFLAGS $ADD_CFLAGS $CDEFS" if test "$coin_debug_compile" = "true"; then CFLAGS="$DBG_CFLAGS" else CFLAGS="$OPT_CFLAGS" fi else CFLAGS="$CFLAGS $ADD_CFLAGS $CDEFS" if test x${DBG_CFLAGS+set} != xset; then DBG_CFLAGS="$CFLAGS" fi if test x${OPT_CFLAGS+set} != xset; then OPT_CFLAGS="$CFLAGS" fi fi # If CFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CFLAGS="$CFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CFLAGS works save_CFLAGS="$CFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: The value CFLAGS=\"$save_CFLAGS\" do not work. I will now just try '-O', but you might want to set CFLAGS manually." >&2;} CFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&5 echo "$as_me: WARNING: This value for CFLAGS does not work. I will continue with empty CFLAGS, but you might want to set CFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C compiler options are: $CFLAGS" >&5 echo "$as_me: C compiler options are: $CFLAGS" >&6;} if test x"$MPICC" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C compiler $MPICC" >&5 echo "$as_me: Will use MPI C compiler $MPICC" >&6;} CC="$MPICC" fi # Correct the LD variable if we are using the MS or Intel-windows compiler case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the C++ compiler and appropriate compiler options #Let's try if that overcomes configuration problem with VC++ 6.0 ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu coin_has_cxx=yes save_cxxflags="$CXXFLAGS" # For *-*-solaris*, promote Studio/Workshop compiler to front of list. case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then comps="icl cl" else comps="g++ cl" fi ;; *-*-solaris*) comps="CC xlC_r aCC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; *-darwin*) comps="g++ c++ CC" ;; *-linux-gnu*) comps="g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC xlC_r aCC CC" ;; *) comps="xlC_r aCC CC g++ c++ pgCC icpc gpp cxx cc++ cl FCC KCC RCC" ;; esac # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_CXX || test "${ac_cv_prog_CXX+set}" != set || { ac_cv_prog_CXX=; export ac_cv_prog_CXX; } # AC_MSG_NOTICE([C++ compiler candidates: $comps]) ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC $comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC $comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu #AC_PROG_CXX sets CXX to g++ if it cannot find a working C++ compiler #thus, we test here whether $CXX is actually working ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking whether C++ compiler $CXX works" >&5 echo $ECHO_N "checking whether C++ compiler $CXX works... $ECHO_C" >&6; cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: failed to find a C++ compiler or C++ compiler $CXX does not work" >&5 echo "$as_me: error: failed to find a C++ compiler or C++ compiler $CXX does not work" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu coin_cxx_is_cl=false # It seems that we need to cleanup something here for the Windows case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) sed -e 's/^void exit (int);//' confdefs.h >> confdefs.hh mv confdefs.hh confdefs.h coin_cxx_is_cl=true ;; esac # add automake conditional so we can recognize cl compiler in makefile if test $coin_cxx_is_cl = true; then COIN_CXX_IS_CL_TRUE= COIN_CXX_IS_CL_FALSE='#' else COIN_CXX_IS_CL_TRUE='#' COIN_CXX_IS_CL_FALSE= fi # Autoconf incorrectly concludes that cl recognises -g. It doesn't. case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* ) if test "$ac_cv_prog_cxx_g" = yes ; then ac_cv_prog_cxx_g=no { echo "$as_me:$LINENO: Overruling autoconf; cl does not recognise -g." >&5 echo "$as_me: Overruling autoconf; cl does not recognise -g." >&6;} fi ;; * ) CYGPATH_W=echo ;; esac CXXFLAGS="$save_cxxflags" # Check if a project specific CXXFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_CXXFLAGS+set} if test x$coin_tmp = xset; then eval CXXFLAGS=\${${COIN_PRJCT}_CXXFLAGS} fi fi if test x"$CXXFLAGS" = x; then # ToDo decide whether we want -DNDEBUG for optimization coin_add_cxxflags= coin_opt_cxxflags= coin_dbg_cxxflags= coin_warn_cxxflags= if test "$GXX" = "yes"; then case "$CXX" in icpc* | */icpc*) ;; *) # ToDo decide about unroll-loops coin_opt_cxxflags="-O3" coin_add_cxxflags="-pipe" coin_dbg_cxxflags="-g -O0" coin_warn_cxxflags="-Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long" case $build in *-darwin*) ;; *) coin_warn_cxxflags="-pedantic-errors $coin_warn_cxxflags" ;; esac case $enable_doscompile in mingw) CXXFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_cxxflags="-mno-cygwin $coin_add_cxxflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CXXFLAGS= ;; esac esac fi # Note that we do not need to cover GCC in the following tests. if test -z "$coin_opt_cxxflags"; then case $build in *-cygwin* | *-mingw*) case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -O2' coin_dbg_cxxflags='-MDd' else coin_opt_cxxflags='-MT -O2' coin_dbg_cxxflags='-MTd' fi coin_add_cxxflags='-nologo -EHsc -GR -wd4996 -D_CRT_SECURE_NO_DEPRECATE' ;; icl* | */icl* | ICL* | */ICL*) # The MT and MTd options are mutually exclusive if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_cxxflags='-MD -Ox' coin_dbg_cxxflags='-MDd -debug' else coin_opt_cxxflags='-MT -Ox' coin_dbg_cxxflags='-MTd -debug' fi coin_add_cxxflags='-nologo -EHsc -GR -D_CRT_SECURE_NO_DEPRECATE' ;; esac ;; *-linux-*) case "$CXX" in icpc* | */icpc*) coin_opt_cxxflags="-O3 -ip -mp1" coin_add_cxxflags="" coin_dbg_cxxflags="-g" # Check if -i_dynamic is necessary (for new glibc library) CXXFLAGS= cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_cxxflags="-i_dynamic $coin_add_cxxflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgCC* | */pgCC*) coin_opt_cxxflags="-fast" coin_add_cxxflags="-Kieee -pc 64" coin_dbg_cxxflags="-g" ;; esac ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) coin_opt_cxxflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_cxxflags="-bmaxdata:0x80000000 -qrtti=dyna -qsuppress=1500-036 -qsuppress=1500-029 -qsourcetype=c++" coin_dbg_cxxflags="-g" ;; esac ;; *-hp-*) case "$CXX" in aCC* | */aCC* ) coin_opt_cxxflags="-O" coin_add_cxxflags="-AA" coin_dbg_cxxflags="-g" ;; esac ;; *-*-solaris*) coin_opt_cxxflags="-O4" coin_dbg_cxxflags="-g" ;; esac fi # Generic flag settings. If these don't work, add a case above. if test "$ac_cv_prog_cxx_g" = yes && test -z "$coin_dbg_cxxflags" ; then coin_dbg_cxxflags="-g" fi if test -z "$coin_opt_cxxflags"; then # Try if -O option works if nothing else is set CXXFLAGS=-O cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_cxxflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_cxxflags" = xyes; then coin_warn_cxxflags= fi # Do final setup of flags based on values determined above. if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$coin_dbg_cxxflags $coin_add_cxxflags $coin_warn_cxxflags" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$coin_opt_cxxflags $coin_add_cxxflags -DNDEBUG $coin_warn_cxxflags" fi DBG_CXXFLAGS="$DBG_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" OPT_CXXFLAGS="$OPT_CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test "$coin_debug_compile" = "true"; then CXXFLAGS="$DBG_CXXFLAGS" else CXXFLAGS="$OPT_CXXFLAGS" fi # Handle the case where CXXFLAGS was set externally. else CXXFLAGS="$CXXFLAGS $ADD_CXXFLAGS $CXXDEFS" if test x${DBG_CXXFLAGS+set} != xset; then DBG_CXXFLAGS="$CXXFLAGS" fi if test x${OPT_CXXFLAGS+set} != xset; then OPT_CXXFLAGS="$CXXFLAGS" fi fi # If CXXFLAGS contains -mno-cygwin, CPPFLAGS must also have it. case "$CXXFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # add -DPROJECT_BUILD to signal compiler preprocessor which config header file to include if test x$COIN_PRJCT != x; then CXXFLAGS="$CXXFLAGS -D${COIN_PRJCT}_BUILD" fi # Try if CXXFLAGS works save_CXXFLAGS="$CXXFLAGS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CXXFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags CXXFLAGS=\"$save_CXXFLAGS\" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually." >&5 echo "$as_me: WARNING: The flags CXXFLAGS=\"$save_CXXFLAGS\" do not work. I will now just try '-O', but you might want to set CXXFLAGS manually." >&2;} CXXFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { int i=0; i++; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$CXXFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for CXXFLAGS does not work. I will continue with empty CXXFLAGS, but you might want to set CXXFLAGS manually." >&5 echo "$as_me: WARNING: This value for CXXFLAGS does not work. I will continue with empty CXXFLAGS, but you might want to set CXXFLAGS manually." >&2;} fi fi { echo "$as_me:$LINENO: C++ compiler options are: $CXXFLAGS" >&5 echo "$as_me: C++ compiler options are: $CXXFLAGS" >&6;} if test x"$MPICXX" = x; then :; else { echo "$as_me:$LINENO: Will use MPI C++ compiler $MPICXX" >&5 echo "$as_me: Will use MPI C++ compiler $MPICXX" >&6;} CXX="$MPICXX" fi # correct the LD variable in a mingw build with MS or intel compiler case "$CXX" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Get the name of the Fortran compiler and appropriate compiler options case $build in *-cygwin* | *-mingw*) if test "$enable_doscompile" = msvc ; then coin_f77_comps="ifort fl32 compile_f2c" else coin_f77_comps="gfortran ifort g95 g77 fl32 compile_f2c" fi ;; *-*-solaris*) coin_f77_comps="f95 f90 g95 f77 xlf_r fort77 gfortran g77 pgf90 pgf77 ifort ifc frt af77" ;; *-linux-gnu*) coin_f77_comps="gfortran ifort g95 fort77 f77 g77 pgf90 pgf77 ifc frt af77 xlf_r" ;; *) coin_f77_comps="xlf_r fort77 gfortran ifort g95 f77 g77 pgf90 pgf77 ifc frt af77" ;; esac ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu coin_has_f77=yes save_fflags="$FFLAGS" # We delete the cached value, since the test might not have been # performed with our choice of compilers earlier $as_unset ac_cv_prog_F77 || test "${ac_cv_prog_F77+set}" != set || { ac_cv_prog_F77=; export ac_cv_prog_F77; } # This is a real belt-and-suspenders approach. AC_COIN_FIND_F77 will use # coin_f77_comps to see if there's a program that matches one of the names. # If there's no such program, F77 = unavailable. If we match the name, # feed AC_PROG_F77 the same search list, just to be sure it's a functioning # compiler. # AC_MSG_NOTICE([Fortran compiler candidates: $coin_f77_comps]) { echo "$as_me:$LINENO: Trying to determine Fortran compiler name" >&5 echo "$as_me: Trying to determine Fortran compiler name" >&6;} if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done test -n "$ac_ct_F77" || ac_ct_F77="unavailable" F77=$ac_ct_F77 fi if test "$F77" != "unavailable" ; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in $coin_f77_comps do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:4327:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu else { echo "$as_me:$LINENO: WARNING: Failed to find a Fortran compiler!" >&5 echo "$as_me: WARNING: Failed to find a Fortran compiler!" >&2;} fi FFLAGS="$save_fflags" # Check if a project specific FFLAGS variable has been set if test x$COIN_PRJCT != x; then eval coin_tmp=\${${COIN_PRJCT}_FFLAGS+set} if test x$coin_tmp = xset; then eval FFLAGS=\${${COIN_PRJCT}_FFLAGS} fi fi if test "$F77" != "unavailable" && test x"$FFLAGS" = x ; then coin_add_fflags= coin_opt_fflags= coin_dbg_fflags= coin_warn_fflags= if test "$G77" = "yes"; then coin_opt_fflags="-O3" coin_add_fflags="-pipe" coin_dbg_fflags="-g -O0" case $enable_doscompile in mingw) FFLAGS="-mno-cygwin" cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_add_fflags="-mno-cygwin $coin_add_fflags" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext FFLAGS= ;; esac else case $build in *-cygwin* | *-mingw*) case $F77 in ifort* | */ifort* | IFORT* | */IFORT* ) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O3' coin_dbg_fflags='-MDd -debug' else coin_opt_fflags='-MT -O3' coin_dbg_fflags='-MTd -debug' fi coin_add_fflags='-fpp -nologo' ;; compile_f2c*) if test "$coin_disable_shared" = yes || test "$enable_shared" = yes ; then coin_opt_fflags='-MD -O2' coin_dbg_fflags='-MDd' else coin_opt_fflags='-MT -O2' coin_dbg_fflags='-MTd' fi coin_add_fflags='-nologo -wd4996' ;; esac ;; *-linux-*) case $F77 in ifc* | */ifc* | ifort* | */ifort*) coin_opt_fflags="-O3 -ip" coin_add_fflags="-cm -w90 -w95" coin_dbg_fflags="-g -CA -CB -CS" # Check if -i_dynamic is necessary (for new glibc library) FFLAGS= cat >conftest.$ac_ext <<_ACEOF program main write(*,*) 'Hello world' end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 coin_add_fflags="-i_dynamic $coin_add_fflags" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ;; pgf77* | */pgf77* | pgf90* | */pgf90*) coin_opt_fflags="-fast" coin_add_fflags="-Kieee -pc 64" coin_dbg_fflags="-g" ;; esac ;; *-ibm-*) case "$F77" in xlf* | */xlf* | mpxlf* | */mpxlf* ) coin_opt_fflags="-O -qarch=auto -qcache=auto -qtune=auto -qmaxmem=-1" coin_add_fflags="-bmaxdata:0x80000000 -qsuppress=1500-036 -qsuppress=1500-029" coin_dbg_fflags="-g -C" ;; esac ;; *-hp-*) coin_opt_fflags="+O3" coin_add_fflags="+U77" coin_dbg_fflags="-C -g" ;; *-*-solaris*) coin_opt_fflags="-O4" coin_dbg_fflags="-g" ;; *-sgi-*) coin_opt_fflags="-O5 -OPT:Olimit=0" coin_dbg_fflags="-g" ;; esac fi if test "$ac_cv_prog_f77_g" = yes && test -z "$coin_dbg_fflags" ; then coin_dbg_fflags="-g" fi if test -z "$coin_opt_fflags"; then # Try if -O option works if nothing else is set FFLAGS=-O cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then coin_opt_fflags="-O" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # if PM doesn't want the warning messages, take them out if test x"$coin_skip_warn_fflags" = xyes; then coin_warn_fflags= fi if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$coin_dbg_fflags $coin_add_fflags $coin_warn_fflags" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$coin_opt_fflags $coin_add_fflags $coin_warn_fflags" fi DBG_FFLAGS="$DBG_FFLAGS $ADD_FFLAGS" OPT_FFLAGS="$OPT_FFLAGS $ADD_FFLAGS" if test "$coin_debug_compile" = "true"; then FFLAGS="$DBG_FFLAGS" else FFLAGS="$OPT_FFLAGS" fi else FFLAGS="$FFLAGS $ADD_FFLAGS" if test x${DBG_FFLAGS+set} != xset; then DBG_FFLAGS="$FFLAGS" fi if test x${OPT_FFLAGS+set} != xset; then OPT_FFLAGS="$FFLAGS" fi fi # If FFLAGS contains -mno-cygwin, CPPFLAGS must have it. case "$FFLAGS" in *-mno-cygwin*) if test x${CPPFLAGS+set} != xset ; then CPPFLAGS="-mno-cygwin" else case "$CPPFLAGS" in *-mno-cygwin*) ;; *) CPPFLAGS="$CPPFLAGS -mno-cygwin" ;; esac fi ;; esac # Try if FFLAGS works if test "$F77" != "unavailable" ; then cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: The flags FFLAGS=\"$FFLAGS\" do not work. I will now just try '-O', but you might want to set FFLAGS manually." >&2;} FFLAGS='-O' cat >conftest.$ac_ext <<_ACEOF program main integer i end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 FFLAGS= fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$FFLAGS"; then { echo "$as_me:$LINENO: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&5 echo "$as_me: WARNING: This value for FFLAGS does not work. I will continue with empty FFLAGS, but you might want to set FFLAGS manually." >&2;} fi fi fi { echo "$as_me:$LINENO: Fortran compiler options are: $FFLAGS" >&5 echo "$as_me: Fortran compiler options are: $FFLAGS" >&6;} if test x"$MPIF77" = x; then :; else { echo "$as_me:$LINENO: Will use MPI Fortran compiler $MPIF77" >&5 echo "$as_me: Will use MPI Fortran compiler $MPIF77" >&6;} F77="$MPIF77" fi # correct the LD variable if we use the intel fortran compiler in windows case "$F77" in ifort* | */ifort* | IFORT* | */IFORT*) case $build in *-mingw*) if test "${LD+set}" = set; then :; else LD=link fi ;; esac case $enable_doscompile in msvc) if test "x${LD+set}" = xset; then :; else LD=link fi ;; esac ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Initialize automake and libtool # AC_MSG_NOTICE([Calling INIT_AUTO_TOOLS from CREATE_LIBTOOL.]) { # START coin_disable_shared=no # Test if force_shared has been set if test "x" = xforce_shared; then if test x$enable_shared = xno; then { { echo "$as_me:$LINENO: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&5 echo "$as_me: error: Shared libraries are disabled by user, but this is not feasible with the given options" >&2;} { (exit 1); exit 1; }; } fi enable_shared=yes; else # On Cygwin and AIX, building DLLs doesn't work case $build in *-cygwin* | *-mingw*) coin_disable_shared=yes if test x"$enable_shared" = xyes; then case "$CXX" in clang* ) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice, but will build with -MD(d) instead of -MT(d)." >&2;} ;; *) { echo "$as_me:$LINENO: WARNING: DLL building not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: DLL building not supported. I'm disabling your choice." >&2;} ;; esac fi ;; *-aix*) coin_disable_shared=yes platform=AIX if test x"$enable_shared" = xyes; then { echo "$as_me:$LINENO: WARNING: Shared objects are not supported. I'm disabling your choice." >&5 echo "$as_me: WARNING: Shared objects are not supported. I'm disabling your choice." >&2;} fi ;; esac fi if test x"$coin_disable_shared" = xyes; then if test x"$enable_shared" = xyes; then : else # we don't disable shared, because it was not selected anyway coin_disable_shared=no fi enable_shared=no fi # By default, we only want the shared objects to be compiled # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi; # Initialize automake echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # AC_MSG_NOTICE([Beginning automake initialisation.]) # Stuff for automake # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='ipopt' VERSION='3.11.4' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE coin_have_externals=no if test "$enable_maintainer_mode" = yes; then # If maintainer mode is chosen, we make sure that the correct versions # of the tools are used, and that we know where libtool.m4 is (to # recreate acinclude.m4) LIBTOOLM4= # Normally, $HOME AUTOTOOLS_DFLT=$HOME echo "$as_me:$LINENO: checking whether we are using the correct autotools" >&5 echo $ECHO_N "checking whether we are using the correct autotools... $ECHO_C" >&6 if test "${ac_cv_use_correct_autotools+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_use_correct_autotools=check fi echo "$as_me:$LINENO: result: $ac_cv_use_correct_autotools" >&5 echo "${ECHO_T}$ac_cv_use_correct_autotools" >&6 if test $ac_cv_use_correct_autotools = check; then ac_cv_use_correct_autotools=yes # Check if we have autoconf # Extract the first word of "autoconf", so it can be a program name with args. set dummy autoconf; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_autoconf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_autoconf"; then ac_cv_prog_have_autoconf="$have_autoconf" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_autoconf="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_autoconf" && ac_cv_prog_have_autoconf="no" fi fi have_autoconf=$ac_cv_prog_have_autoconf if test -n "$have_autoconf"; then echo "$as_me:$LINENO: result: $have_autoconf" >&5 echo "${ECHO_T}$have_autoconf" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_autoconf = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find autoconf in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether autoconf is the correct version correct_version='2.59' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of autoconf" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of autoconf... $ECHO_C" >&6 autoconf --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of autoconf as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of autoconf as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable autoconf is picked up from the correct location echo "$as_me:$LINENO: checking whether autoconf is coming from the correct location" >&5 echo $ECHO_N "checking whether autoconf is coming from the correct location... $ECHO_C" >&6 autoconf_dir=`which autoconf | sed -e 's=/autoconf=='` autoconf_dir=`cd $autoconf_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $autoconf_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The autoconf executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if we have automake # Extract the first word of "automake", so it can be a program name with args. set dummy automake; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_automake+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_automake"; then ac_cv_prog_have_automake="$have_automake" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_automake="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_automake" && ac_cv_prog_have_automake="no" fi fi have_automake=$ac_cv_prog_have_automake if test -n "$have_automake"; then echo "$as_me:$LINENO: result: $have_automake" >&5 echo "${ECHO_T}$have_automake" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test $have_automake = no; then { { echo "$as_me:$LINENO: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&5 echo "$as_me: error: You specified you want to use maintainer mode, but I cannot find automake in your path." >&2;} { (exit 1); exit 1; }; } fi # Check whether automake is the correct version correct_version='1.9.6' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of automake" >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of automake... $ECHO_C" >&6 automake --version > confauto.out 2>&1 if $EGREP $grep_version confauto.out >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of automake as the first one in your path." >&5 echo "$as_me: error: You don't have the correct version of automake as the first one in your path." >&2;} { (exit 1); exit 1; }; } fi rm -f confauto.out # Check if the executable automake is picked up from the correct location echo "$as_me:$LINENO: checking whether automake is coming from the correct location" >&5 echo $ECHO_N "checking whether automake is coming from the correct location... $ECHO_C" >&6 automake_dir=`which automake | sed -e 's=/automake=='` automake_dir=`cd $automake_dir; pwd` if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/bin else want_dir=$AUTOTOOLS_DIR/bin fi if test $automake_dir = `cd $want_dir; pwd`; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else rm -f confauto.out echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&5 echo "$as_me: error: The automake executable should be picked up from \$AUTOTOOLS_DFLT/bin or \$AUTOTOOLS_DIR/bin." >&2;} { (exit 1); exit 1; }; } fi # Check if this is the correct version of libtool (with escaped dots) if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi correct_version='1.5.22' grep_version=`echo $correct_version | sed -e 's/\\./\\\\\\./g'` if test -r $want_dir/libtool/ltmain.sh; then have_ltmain=yes : else have_ltmain=no : fi echo "$as_me:$LINENO: checking whether we are using the correct version ($correct_version) of libtool." >&5 echo $ECHO_N "checking whether we are using the correct version ($correct_version) of libtool.... $ECHO_C" >&6 if test $have_ltmain = yes; then if $EGREP $grep_version $want_dir/libtool/ltmain.sh >/dev/null 2>&1; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: You don't have the correct version of libtool." >&5 echo "$as_me: error: You don't have the correct version of libtool." >&2;} { (exit 1); exit 1; }; } fi else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 { { echo "$as_me:$LINENO: error: I cannot find the ltmain.sh file." >&5 echo "$as_me: error: I cannot find the ltmain.sh file." >&2;} { (exit 1); exit 1; }; } fi fi # Check if we can find the libtool file if test x$AUTOTOOLS_DIR = x; then want_dir=$AUTOTOOLS_DFLT/share else want_dir=$AUTOTOOLS_DIR/share fi if test -r $want_dir/aclocal/libtool.m4; then LIBTOOLM4="$want_dir/aclocal/libtool.m4" : else { { echo "$as_me:$LINENO: error: I cannot find the libtool.m4 file." >&5 echo "$as_me: error: I cannot find the libtool.m4 file." >&2;} { (exit 1); exit 1; }; } : fi # Check if we have an Dependencies file if test -r $srcdir/Dependencies; then coin_have_externals=yes fi # Check if subversion is installed and understands https # Extract the first word of "svn", so it can be a program name with args. set dummy svn; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_have_svn+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$have_svn"; then ac_cv_prog_have_svn="$have_svn" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_svn="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_have_svn" && ac_cv_prog_have_svn="no" fi fi have_svn=$ac_cv_prog_have_svn if test -n "$have_svn"; then echo "$as_me:$LINENO: result: $have_svn" >&5 echo "${ECHO_T}$have_svn" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test x$have_svn = xyes; then echo "$as_me:$LINENO: checking whether svn understands https" >&5 echo $ECHO_N "checking whether svn understands https... $ECHO_C" >&6 if test "${ac_cv_svn_understands_https+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else svn --version > confauto.out 2>&1 if $EGREP https confauto.out >/dev/null 2>&1; then ac_cv_svn_understands_https=yes else ac_cv_svn_understands_https=no have_svn=no ac_cv_prog_have_svn=no fi rm -f confauto.out fi echo "$as_me:$LINENO: result: $ac_cv_svn_understands_https" >&5 echo "${ECHO_T}$ac_cv_svn_understands_https" >&6 fi # Find the location of the BuildTools directory BUILDTOOLSDIR= if test -r $srcdir/BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/BuildTools else if test -r $srcdir/../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../BuildTools else if test -r $srcdir/../../BuildTools/coin.m4; then BUILDTOOLSDIR=$srcdir/../../BuildTools else { { echo "$as_me:$LINENO: error: Cannot find the BuildTools directory" >&5 echo "$as_me: error: Cannot find the BuildTools directory" >&2;} { (exit better disable maintainer mode.); exit better disable maintainer mode.; }; } fi fi fi # for running automake by make, we need to have Makemain.inc available at the place where it usually can be found during run_autotools if test "$BUILDTOOLSDIR" != "$srcdir/BuildTools" ; then $LN_S `cd $BUILDTOOLSDIR; pwd` "$srcdir/BuildTools" fi # The following variable is set to the name of the directory where # the autotool scripts are located AUX_DIR=$ac_aux_dir fi # helpful variable for the base directory of this package abs_source_dir=`cd $srcdir; pwd` # Stuff for example Makefiles if test x$prefix = xNONE; then full_prefix=$ac_default_prefix else full_prefix=$prefix fi full_prefix=`cd $full_prefix ; pwd` abs_lib_dir=$full_prefix/lib abs_include_dir=$full_prefix/include abs_bin_dir=$full_prefix/bin if test $coin_have_externals = yes && test x$have_svn = xyes; then HAVE_EXTERNALS_TRUE= HAVE_EXTERNALS_FALSE='#' else HAVE_EXTERNALS_TRUE='#' HAVE_EXTERNALS_FALSE= fi # AC_MSG_NOTICE([End automake initialisation.]) LIBTOOL= if test -r ../libtool; then coin_config_dir=.. LIBTOOL='$(SHELL) $(top_builddir)/../libtool' fi if test "x$LIBTOOL" = x; then if test -r ../../libtool; then coin_config_dir=../.. LIBTOOL='$(SHELL) $(top_builddir)/../../libtool' fi fi if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Creating libtool script (calling COIN_PROG_LIBTOOL).]) # Stuff for libtool # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done fi SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump'. lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix3*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6615 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ---------------------------------------------------------- ## ## Report this to http://projects.coin-or.org/Ipopt/newticket ## ## ---------------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux*) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8579: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8583: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8847: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8851: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8951: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8955: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which library types will actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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. # # This program 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_CXX='+b $libdir' ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix3*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' ;; osf3*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. We must also pass each convience library through # to the system linker between allextract/defaultextract. # The C++ compiler will combine linker options so we # cannot just pass the convience library names through # without $wl. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix3*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; solaris*) case $cc_basename in CC*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. postdeps_CXX='-lCstd -lCrun' ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13740: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13744: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6 if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13844: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13848: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15414: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15418: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6 if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15518: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15522: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_F77=no fi ;; interix3*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_F77=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_f77_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17725: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17729: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; interix3*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:17993: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:17997: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6 if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:18097: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:18101: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; interix3*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; esac archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine linker options so we # cannot just pass the convience library names through # without $wl, iff we do not link with $LD. # Luckily, gcc supports the same syntax we need for Sun Studio. # Supported since Solaris 2.6 (maybe 2.5.1?) case $wlarc in '') whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; *) whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; esac ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; freebsd*) # from 4.6 on shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix3*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; knetbsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $rm conftest* ac_outfile=conftest.$ac_objext printf "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $rm conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion # No longer needed now that CPPFLAGS is correctly set -- lh, 061214 -- # AC_REQUIRE([AC_COIN_DLFCN_H]) # NEW: If libtool exists in the directory higher up, we use that one # instead of creating a new one # It turns out that the code for AC_PROG_LIBTOOL is somehow AC_REQUIRED # out in front of this macro body. You'll notice that LIBTOOL is already # defined here. We'll have to count on this macro not being called if libtool # already exists, or at least move the libtool fixes outside the conditional. # AC_MSG_NOTICE([Entering coin_prog_libtool, LIBTOOL = "$LIBTOOL".]) # This test is therefore removed. -- lh, 061214 -- # if test "x$LIBTOOL" = x; then # AC_MSG_NOTICE([Calling PROG_LIBTOOL.]) # AC_MSG_NOTICE([Finished PROG_LIBTOOL.]) { echo "$as_me:$LINENO: Build is \"$build\"." >&5 echo "$as_me: Build is \"$build\"." >&6;} mydos2unix='| dos2unix' case $build in *-mingw*) CYGPATH_W=echo mydos2unix= ;; esac case $build in # Here we need to check if -m32 is specified. If so, we need to correct # sys_lib_search_path_spec *x86_64-*) if test "$GCC" = yes && (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm32' >& /dev/null); then { echo "$as_me:$LINENO: Applying patches to libtool for 32bit compilation" >&5 echo "$as_me: Applying patches to libtool for 32bit compilation" >&6;} sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="/lib /usr/lib"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi ;; *-solaris*) if test "$GCC" = yes && \ (echo $CXXFLAGS $CFLAGS $FFLAGS | $EGREP 'm64' >/dev/null 2>&1) ; then hdwisa=`isainfo | sed -e 's/\([^ ]*\) .*$/\1/'` if `$EGREP 'sys_lib_search_path_spec=' libtool | $EGREP -v $hdwisa >/dev/null 2>&1` ; then { echo "$as_me:$LINENO: Applying patches to libtool for 64-bit GCC compilation" >&5 echo "$as_me: Applying patches to libtool for 64-bit GCC compilation" >&6;} fixlibtmp=`$CC -m64 -print-search-dirs | $EGREP '^libraries:'` fixlibtmp=`echo $fixlibtmp | sed -e 's/libraries: =//' -e 's/:/ /g'` if `echo "$fixlibtmp" | $EGREP -v $hdwisa >/dev/null 2>&1` ; then # AC_MSG_NOTICE(Compensating for broken gcc) for lib in $fixlibtmp ; do if test -d "${lib}${hdwisa}" ; then syslibpath64="$syslibpath64 ${lib}${hdwisa}/" fi done syslibpath64="${syslibpath64} ${fixlibtmp}" else syslibpath64="$fixlibtmp" fi sed -e 's|sys_lib_search_path_spec=".*"|sys_lib_search_path_spec="'"$syslibpath64"'"|' libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool fi # AC_MSG_NOTICE(Result is ) # $EGREP 'sys_lib_search_path_spec=' libtool fi ;; # Cygwin. Ah, cygwin. Too big and ugly to inline; see the macro. *-cygwin* | *-mingw*) case "$CXX" in clang* ) # we assume that libtool patches for CLANG are the same as for GNU compiler - correct??? { echo "$as_me:$LINENO: Applying patches to libtool for CLANG compiler" >&5 echo "$as_me: Applying patches to libtool for CLANG compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) { echo "$as_me:$LINENO: Applying patches to libtool for cl compiler" >&5 echo "$as_me: Applying patches to libtool for cl compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|fix_srcfile_path=\"\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's%compile_deplibs=\"\$dir/\$old_library \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$old_library | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%compile_deplibs=\"\$dir/\$linklib \$compile_deplibs\"%compile_deplibs="'\`"$CYGPATH_W"' \$dir/\$linklib | sed -e '"'"'sY\\\\\\\\Y/Yg'"'"\`' \$compile_deplibs\"'% \ -e 's%lib /OUT:%lib -OUT:%' \ -e "s%cygpath -w%$CYGPATH_W%" \ -e 's%$AR x \\$f_ex_an_ar_oldlib%bla=\\$(lib -nologo -list \\$('"$CYGPATH_W \$1"') '"$mydos2unix"' | xargs echo); echo \\$bla; for i in \\$bla; do lib -nologo -extract:\\$i \\$('"$CYGPATH_W \$1"'); done%' \ -e 's%$AR t "$f_ex_an_ar_oldlib"%lib -nologo -list \$('"$CYGPATH_W \$1"') '"$mydos2unix"'%' \ -e 's%f_ex_an_ar_oldlib="\($?*1*\)"%f_ex_an_ar_oldlib='\`"$CYGPATH_W"' \1`%' \ -e 's%^archive_cmds=.*%archive_cmds="\\$CC -o \\$lib \\$libobjs \\$compiler_flags \\\\\\`echo \\\\\\"\\$deplibs\\\\\\" | \\$SED -e '"\'"'s/ -lc\\$//'"\'"'\\\\\\` -link -dll~linknames="%' \ -e 's%old_archive_cmds="lib -OUT:\\$oldlib\\$oldobjs\\$old_deplibs"%old_archive_cmds="if test -r \\$oldlib; then bla=\\"\\$oldlib\\"; else bla=; fi; lib -OUT:\\$oldlib \\\\\\$bla\\$oldobjs\\$old_deplibs"%' \ libtool > conftest.bla ;; *) { echo "$as_me:$LINENO: Applying patches to libtool for GNU compiler" >&5 echo "$as_me: Applying patches to libtool for GNU compiler" >&6;} sed -e 's|fix_srcfile_path=\"`cygpath -w \"\$srcfile\"`\"|fix_srcfile_path=\"\\\`'"$CYGPATH_W"' \\\"\\$srcfile\\\"\\\`\"|' \ -e 's|"lib /OUT:\\$oldlib\\$oldobjs\\$old_deplibs"|"\\$AR \\$AR_FLAGS \\$oldlib\\$oldobjs\\$old_deplibs~\\$RANLIB \\$oldlib"|' \ -e 's|libext="lib"|libext="a"|' \ libtool > conftest.bla ;; esac mv conftest.bla libtool chmod 755 libtool ;; *-darwin*) { echo "$as_me:$LINENO: Applying patches to libtool for Darwin" >&5 echo "$as_me: Applying patches to libtool for Darwin" >&6;} sed -e 's/verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"/verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"/' \ -e 's/ -dynamiclib / -dynamiclib -single_module /g' \ libtool > conftest.bla mv conftest.bla libtool chmod 755 libtool ;; esac # This fi matches the commented `if test "x$LIBTOOL" = x;' up at the head of # the macro. -- lh, 061214 -- # fi # AC_MSG_NOTICE([End libtool initialisation.]) # AC_MSG_NOTICE([Finished COIN_PROG_LIBTOOL.]) # set RPATH_FLAGS to the compiler link flags required to hardcode location # of the shared objects RPATH_FLAGS= if test $enable_shared = yes; then case $build in *-linux-*) if test "$GXX" = "yes"; then RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -Wl,--rpath -Wl,$dir" done fi ;; *-darwin*) RPATH_FLAGS=nothing ;; *-ibm-*) case "$CXX" in xlC* | */xlC* | mpxlC* | */mpxlC*) RPATH_FLAGS=nothing ;; esac ;; *-hp-*) RPATH_FLAGS=nothing ;; *-mingw32) RPATH_FLAGS=nothing ;; *-*-solaris*) RPATH_FLAGS= for dir in $abs_lib_dir; do RPATH_FLAGS="$RPATH_FLAGS -R$dir" done esac if test "$RPATH_FLAGS" = ""; then { echo "$as_me:$LINENO: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&5 echo "$as_me: WARNING: Could not automatically determine how to tell the linker about automatic inclusion of the path for shared libraries. The test examples might not work if you link against shared objects. You will need to set the LD_LIBRARY_PATH, DYLP_LIBRARY_PATH, or LIBDIR variable manually." >&2;} fi if test "$RPATH_FLAGS" = "nothing"; then RPATH_FLAGS= fi fi else { echo "$as_me:$LINENO: Using libtool script in directory $coin_config_dir" >&5 echo "$as_me: Using libtool script in directory $coin_config_dir" >&6;} # get all missing information from the config.log file # output variables and defines as_save_IFS=$IFS IFS=' ' for oneline in `cat $coin_config_dir/config.status`; do case "$oneline" in # First some automake conditionals s,@am__fastdep* | s,@AR@* | s,@CPP@* | s,@CPPFLAGS@* | s,@CXXCPP@* | \ s,@RANLIB@* | s,@STRIP@* | s,@ac_ct_AR@* | s,@ac_ct_RANLIB@* | \ s,@ac_ct_STRIP@* | s,@host* | s,@LN_S@* | s,@RPATH_FLAGS@* | \ s,@ac_c_preproc_warn_flag@* | s,@ac_cxx_preproc_warn_flag@* ) command=`echo $oneline | sed -e 's/^s,@//' -e 's/@,/="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; s,@DEFS@* ) command=`echo $oneline | sed -e 's/^s,@DEFS@,/defsline="/' -e 's/,;t t/"/'` # echo "$command" eval "$command" ;; esac done IFS=$as_save_IFS # And some defines (assuming here that the packages base dir # doesn't have a config.h file for word in $defsline; do # echo word $word case $word in -DHAVE_[A-Z_]*_H=1 | -DSTDC_HEADERS=1 ) i=`echo $word | sed -e 's/-D/#define /' -e 's/=/ /'` # echo dd $i echo $i >>confdefs.h ;; esac done fi # AC_MSG_NOTICE([End of INIT_AUTO_TOOLS.]) # ToDo # For now, don't use the -no-undefined flag, since the Makefiles are # not yet set up that way. But we need to fix this, when we want # to comile DLLs under Windows. LT_LDFLAGS= # Check if we want to set the library version echo "$as_me:$LINENO: checking if library version is set" >&5 echo $ECHO_N "checking if library version is set... $ECHO_C" >&6 if test x"$coin_libversion" != x; then LT_LDFLAGS="$LT_LDFLAGS -version-info $coin_libversion" echo "$as_me:$LINENO: result: $coin_libversion" >&5 echo "${ECHO_T}$coin_libversion" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi #END } # AC_MSG_NOTICE([Finished INIT_AUTO_TOOLS from CREATE_LIBTOOL.]) ############################################################################# # Check which ThirdParty sources are available # ############################################################################# echo "$as_me:$LINENO: checking whether source of project ASL is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project ASL is available and should be compiled... $ECHO_C" >&6 coin_has_asl=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "ASL"; then coin_has_asl="no" coin_reason="ASL has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/ASL"; then coin_has_asl="no" coin_reason="ThirdParty/ASL has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_asl" != no; then # Check whether --with-m4_tolower(ASL) or --without-m4_tolower(ASL) was given. if test "${with_asl+set}" = set; then withval="$with_asl" if test "$withval" = no ; then coin_has_asl="no" coin_reason="--without-asl has been specified" fi fi; fi if test "$coin_has_asl" != no; then # Check whether --with-m4_tolower(ASL)-lib or --without-m4_tolower(ASL)-lib was given. if test "${with_asl_lib+set}" = set; then withval="$with_asl_lib" if test "$withval" = no ; then coin_has_asl="no" coin_reason="--without-asl-lib has been specified" else coin_has_asl="no" coin_reason="--with-asl-lib has been specified" fi fi; fi if test "$coin_has_asl" != no; then # Check whether --with-m4_tolower(ASL)-incdir or --without-m4_tolower(ASL)-incdir was given. if test "${with_asl_incdir+set}" = set; then withval="$with_asl_incdir" if test "$withval" = no ; then coin_has_asl="no" coin_reason="--without-asl-incdir has been specified" else coin_has_asl="no" coin_reason="--with-asl-incdir has been specified" fi fi; fi if test "$coin_has_asl" != no; then # Check whether --with-m4_tolower(ASL)-datadir or --without-m4_tolower(ASL)-datadir was given. if test "${with_asl_datadir+set}" = set; then withval="$with_asl_datadir" if test "$withval" = no ; then coin_has_asl="no" coin_reason="--without-asl-datadir has been specified" else coin_has_asl="no" coin_reason="--with-asl-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_asl" = notGiven; then coin_has_asl=no if test -d $srcdir/ThirdParty/ASL; then coin_reason="source in ThirdParty/ASL" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/ASL/solvers/asl.h; do if test -r $i; then coin_has_asl="yes" else coin_has_asl="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_asl" >&5 echo "${ECHO_T}$coin_has_asl" >&6 else echo "$as_me:$LINENO: result: $coin_has_asl, $coin_reason" >&5 echo "${ECHO_T}$coin_has_asl, $coin_reason" >&6 fi if test "$coin_has_asl" = yes ; then if test -r $srcdir/ThirdParty/ASL/configure; then coin_subdirs="$coin_subdirs ThirdParty/ASL" subdirs="$subdirs ThirdParty/ASL" fi fi echo "$as_me:$LINENO: checking whether source of project Blas is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project Blas is available and should be compiled... $ECHO_C" >&6 coin_has_blas=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Blas"; then coin_has_blas="no" coin_reason="Blas has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/Blas"; then coin_has_blas="no" coin_reason="ThirdParty/Blas has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_blas" != no; then # Check whether --with-m4_tolower(Blas) or --without-m4_tolower(Blas) was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test "$withval" = no ; then coin_has_blas="no" coin_reason="--without-blas has been specified" fi fi; fi if test "$coin_has_blas" != no; then # Check whether --with-m4_tolower(Blas)-lib or --without-m4_tolower(Blas)-lib was given. if test "${with_blas_lib+set}" = set; then withval="$with_blas_lib" if test "$withval" = no ; then coin_has_blas="no" coin_reason="--without-blas-lib has been specified" else coin_has_blas="no" coin_reason="--with-blas-lib has been specified" fi fi; fi if test "$coin_has_blas" != no; then # Check whether --with-m4_tolower(Blas)-incdir or --without-m4_tolower(Blas)-incdir was given. if test "${with_blas_incdir+set}" = set; then withval="$with_blas_incdir" if test "$withval" = no ; then coin_has_blas="no" coin_reason="--without-blas-incdir has been specified" else coin_has_blas="no" coin_reason="--with-blas-incdir has been specified" fi fi; fi if test "$coin_has_blas" != no; then # Check whether --with-m4_tolower(Blas)-datadir or --without-m4_tolower(Blas)-datadir was given. if test "${with_blas_datadir+set}" = set; then withval="$with_blas_datadir" if test "$withval" = no ; then coin_has_blas="no" coin_reason="--without-blas-datadir has been specified" else coin_has_blas="no" coin_reason="--with-blas-datadir has been specified" fi fi; fi if test $coin_has_blas != no; then #--with-blas can overwrite --with-blas-lib, and can be set to BUILD to enforce building blas # Check whether --with-blas or --without-blas was given. if test "${with_blas+set}" = set; then withval="$with_blas" if test x"$withval" = "xno" ; then coin_has_blas="no" coin_reason="--without-blas has been specified" elif test x"$withval" != "xBUILD" ; then coin_has_blas="no" coin_reason="--with-blas has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_blas" = notGiven; then coin_has_blas=no if test -d $srcdir/ThirdParty/Blas; then coin_reason="source in ThirdParty/Blas" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/Blas/daxpy.f; do if test -r $i; then coin_has_blas="yes" else coin_has_blas="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_blas" >&5 echo "${ECHO_T}$coin_has_blas" >&6 else echo "$as_me:$LINENO: result: $coin_has_blas, $coin_reason" >&5 echo "${ECHO_T}$coin_has_blas, $coin_reason" >&6 fi if test "$coin_has_blas" = yes ; then if test -r $srcdir/ThirdParty/Blas/configure; then coin_subdirs="$coin_subdirs ThirdParty/Blas" subdirs="$subdirs ThirdParty/Blas" fi fi echo "$as_me:$LINENO: checking whether source of project Lapack is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project Lapack is available and should be compiled... $ECHO_C" >&6 coin_has_lapack=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Lapack"; then coin_has_lapack="no" coin_reason="Lapack has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/Lapack"; then coin_has_lapack="no" coin_reason="ThirdParty/Lapack has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_lapack" != no; then # Check whether --with-m4_tolower(Lapack) or --without-m4_tolower(Lapack) was given. if test "${with_lapack+set}" = set; then withval="$with_lapack" if test "$withval" = no ; then coin_has_lapack="no" coin_reason="--without-lapack has been specified" fi fi; fi if test "$coin_has_lapack" != no; then # Check whether --with-m4_tolower(Lapack)-lib or --without-m4_tolower(Lapack)-lib was given. if test "${with_lapack_lib+set}" = set; then withval="$with_lapack_lib" if test "$withval" = no ; then coin_has_lapack="no" coin_reason="--without-lapack-lib has been specified" else coin_has_lapack="no" coin_reason="--with-lapack-lib has been specified" fi fi; fi if test "$coin_has_lapack" != no; then # Check whether --with-m4_tolower(Lapack)-incdir or --without-m4_tolower(Lapack)-incdir was given. if test "${with_lapack_incdir+set}" = set; then withval="$with_lapack_incdir" if test "$withval" = no ; then coin_has_lapack="no" coin_reason="--without-lapack-incdir has been specified" else coin_has_lapack="no" coin_reason="--with-lapack-incdir has been specified" fi fi; fi if test "$coin_has_lapack" != no; then # Check whether --with-m4_tolower(Lapack)-datadir or --without-m4_tolower(Lapack)-datadir was given. if test "${with_lapack_datadir+set}" = set; then withval="$with_lapack_datadir" if test "$withval" = no ; then coin_has_lapack="no" coin_reason="--without-lapack-datadir has been specified" else coin_has_lapack="no" coin_reason="--with-lapack-datadir has been specified" fi fi; fi if test $coin_has_lapack != skipping; then #--with-lapack can overwrite --with-lapack-lib, and can be set to BUILD to enforce building lapack # Check whether --with-lapack or --without-lapack was given. if test "${with_lapack+set}" = set; then withval="$with_lapack" if test x"$withval" = "xno" ; then coin_has_lapack="no" coin_reason="--without-lapack has been specified" elif test x"$withval" != "xBUILD" ; then coin_has_lapack="no" coin_reason="--with-lapack has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_lapack" = notGiven; then coin_has_lapack=no if test -d $srcdir/ThirdParty/Lapack; then coin_reason="source in ThirdParty/Lapack" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/Lapack/LAPACK/SRC/dlarf.f; do if test -r $i; then coin_has_lapack="yes" else coin_has_lapack="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_lapack" >&5 echo "${ECHO_T}$coin_has_lapack" >&6 else echo "$as_me:$LINENO: result: $coin_has_lapack, $coin_reason" >&5 echo "${ECHO_T}$coin_has_lapack, $coin_reason" >&6 fi if test "$coin_has_lapack" = yes ; then if test -r $srcdir/ThirdParty/Lapack/configure; then coin_subdirs="$coin_subdirs ThirdParty/Lapack" subdirs="$subdirs ThirdParty/Lapack" fi fi echo "$as_me:$LINENO: checking whether source of project Metis is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project Metis is available and should be compiled... $ECHO_C" >&6 coin_has_metis=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Metis"; then coin_has_metis="no" coin_reason="Metis has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/Metis"; then coin_has_metis="no" coin_reason="ThirdParty/Metis has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_metis" != no; then # Check whether --with-m4_tolower(Metis) or --without-m4_tolower(Metis) was given. if test "${with_metis+set}" = set; then withval="$with_metis" if test "$withval" = no ; then coin_has_metis="no" coin_reason="--without-metis has been specified" fi fi; fi if test "$coin_has_metis" != no; then # Check whether --with-m4_tolower(Metis)-lib or --without-m4_tolower(Metis)-lib was given. if test "${with_metis_lib+set}" = set; then withval="$with_metis_lib" if test "$withval" = no ; then coin_has_metis="no" coin_reason="--without-metis-lib has been specified" else coin_has_metis="no" coin_reason="--with-metis-lib has been specified" fi fi; fi if test "$coin_has_metis" != no; then # Check whether --with-m4_tolower(Metis)-incdir or --without-m4_tolower(Metis)-incdir was given. if test "${with_metis_incdir+set}" = set; then withval="$with_metis_incdir" if test "$withval" = no ; then coin_has_metis="no" coin_reason="--without-metis-incdir has been specified" else coin_has_metis="no" coin_reason="--with-metis-incdir has been specified" fi fi; fi if test "$coin_has_metis" != no; then # Check whether --with-m4_tolower(Metis)-datadir or --without-m4_tolower(Metis)-datadir was given. if test "${with_metis_datadir+set}" = set; then withval="$with_metis_datadir" if test "$withval" = no ; then coin_has_metis="no" coin_reason="--without-metis-datadir has been specified" else coin_has_metis="no" coin_reason="--with-metis-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_metis" = notGiven; then coin_has_metis=no if test -d $srcdir/ThirdParty/Metis; then coin_reason="source in ThirdParty/Metis" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/Metis/metis-4.0/Lib/balance.c; do if test -r $i; then coin_has_metis="yes" else coin_has_metis="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_metis" >&5 echo "${ECHO_T}$coin_has_metis" >&6 else echo "$as_me:$LINENO: result: $coin_has_metis, $coin_reason" >&5 echo "${ECHO_T}$coin_has_metis, $coin_reason" >&6 fi if test "$coin_has_metis" = yes ; then if test -r $srcdir/ThirdParty/Metis/configure; then coin_subdirs="$coin_subdirs ThirdParty/Metis" subdirs="$subdirs ThirdParty/Metis" fi fi echo "$as_me:$LINENO: checking whether source of project HSL is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project HSL is available and should be compiled... $ECHO_C" >&6 coin_has_hsl=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "HSL"; then coin_has_hsl="no" coin_reason="HSL has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/HSL"; then coin_has_hsl="no" coin_reason="ThirdParty/HSL has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_hsl" != no; then # Check whether --with-m4_tolower(HSL) or --without-m4_tolower(HSL) was given. if test "${with_hsl+set}" = set; then withval="$with_hsl" if test "$withval" = no ; then coin_has_hsl="no" coin_reason="--without-hsl has been specified" fi fi; fi if test "$coin_has_hsl" != no; then # Check whether --with-m4_tolower(HSL)-lib or --without-m4_tolower(HSL)-lib was given. if test "${with_hsl_lib+set}" = set; then withval="$with_hsl_lib" if test "$withval" = no ; then coin_has_hsl="no" coin_reason="--without-hsl-lib has been specified" else coin_has_hsl="no" coin_reason="--with-hsl-lib has been specified" fi fi; fi if test "$coin_has_hsl" != no; then # Check whether --with-m4_tolower(HSL)-incdir or --without-m4_tolower(HSL)-incdir was given. if test "${with_hsl_incdir+set}" = set; then withval="$with_hsl_incdir" if test "$withval" = no ; then coin_has_hsl="no" coin_reason="--without-hsl-incdir has been specified" else coin_has_hsl="no" coin_reason="--with-hsl-incdir has been specified" fi fi; fi if test "$coin_has_hsl" != no; then # Check whether --with-m4_tolower(HSL)-datadir or --without-m4_tolower(HSL)-datadir was given. if test "${with_hsl_datadir+set}" = set; then withval="$with_hsl_datadir" if test "$withval" = no ; then coin_has_hsl="no" coin_reason="--without-hsl-datadir has been specified" else coin_has_hsl="no" coin_reason="--with-hsl-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_hsl" = notGiven; then coin_has_hsl=no if test -d $srcdir/ThirdParty/HSL; then coin_reason="source in ThirdParty/HSL" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/HSL/coinhsl/common/deps.f; do if test -r $i; then coin_has_hsl="yes" else coin_has_hsl="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_hsl" >&5 echo "${ECHO_T}$coin_has_hsl" >&6 else echo "$as_me:$LINENO: result: $coin_has_hsl, $coin_reason" >&5 echo "${ECHO_T}$coin_has_hsl, $coin_reason" >&6 fi if test "$coin_has_hsl" = yes ; then if test -r $srcdir/ThirdParty/HSL/configure; then coin_subdirs="$coin_subdirs ThirdParty/HSL" subdirs="$subdirs ThirdParty/HSL" fi fi echo "$as_me:$LINENO: checking whether source of project HSLold is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project HSLold is available and should be compiled... $ECHO_C" >&6 coin_has_hslold=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "HSLold"; then coin_has_hslold="no" coin_reason="HSLold has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/HSLold"; then coin_has_hslold="no" coin_reason="ThirdParty/HSLold has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_hslold" != no; then # Check whether --with-m4_tolower(HSLold) or --without-m4_tolower(HSLold) was given. if test "${with_hslold+set}" = set; then withval="$with_hslold" if test "$withval" = no ; then coin_has_hslold="no" coin_reason="--without-hslold has been specified" fi fi; fi if test "$coin_has_hslold" != no; then # Check whether --with-m4_tolower(HSLold)-lib or --without-m4_tolower(HSLold)-lib was given. if test "${with_hslold_lib+set}" = set; then withval="$with_hslold_lib" if test "$withval" = no ; then coin_has_hslold="no" coin_reason="--without-hslold-lib has been specified" else coin_has_hslold="no" coin_reason="--with-hslold-lib has been specified" fi fi; fi if test "$coin_has_hslold" != no; then # Check whether --with-m4_tolower(HSLold)-incdir or --without-m4_tolower(HSLold)-incdir was given. if test "${with_hslold_incdir+set}" = set; then withval="$with_hslold_incdir" if test "$withval" = no ; then coin_has_hslold="no" coin_reason="--without-hslold-incdir has been specified" else coin_has_hslold="no" coin_reason="--with-hslold-incdir has been specified" fi fi; fi if test "$coin_has_hslold" != no; then # Check whether --with-m4_tolower(HSLold)-datadir or --without-m4_tolower(HSLold)-datadir was given. if test "${with_hslold_datadir+set}" = set; then withval="$with_hslold_datadir" if test "$withval" = no ; then coin_has_hslold="no" coin_reason="--without-hslold-datadir has been specified" else coin_has_hslold="no" coin_reason="--with-hslold-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_hslold" = notGiven; then coin_has_hslold=no if test -d $srcdir/ThirdParty/HSLold; then coin_reason="source in ThirdParty/HSLold" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/HSLold/configure.ac; do if test -r $i; then coin_has_hslold="yes" else coin_has_hslold="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_hslold" >&5 echo "${ECHO_T}$coin_has_hslold" >&6 else echo "$as_me:$LINENO: result: $coin_has_hslold, $coin_reason" >&5 echo "${ECHO_T}$coin_has_hslold, $coin_reason" >&6 fi if test "$coin_has_hslold" = yes ; then if test -r $srcdir/ThirdParty/HSLold/configure; then coin_subdirs="$coin_subdirs ThirdParty/HSLold" subdirs="$subdirs ThirdParty/HSLold" fi fi echo "$as_me:$LINENO: checking whether source of project Mumps is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project Mumps is available and should be compiled... $ECHO_C" >&6 coin_has_mumps=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Mumps"; then coin_has_mumps="no" coin_reason="Mumps has been specified in COIN_SKIP_PROJECTS" fi if test $dir = "ThirdParty/Mumps"; then coin_has_mumps="no" coin_reason="ThirdParty/Mumps has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_mumps" != no; then # Check whether --with-m4_tolower(Mumps) or --without-m4_tolower(Mumps) was given. if test "${with_mumps+set}" = set; then withval="$with_mumps" if test "$withval" = no ; then coin_has_mumps="no" coin_reason="--without-mumps has been specified" fi fi; fi if test "$coin_has_mumps" != no; then # Check whether --with-m4_tolower(Mumps)-lib or --without-m4_tolower(Mumps)-lib was given. if test "${with_mumps_lib+set}" = set; then withval="$with_mumps_lib" if test "$withval" = no ; then coin_has_mumps="no" coin_reason="--without-mumps-lib has been specified" else coin_has_mumps="no" coin_reason="--with-mumps-lib has been specified" fi fi; fi if test "$coin_has_mumps" != no; then # Check whether --with-m4_tolower(Mumps)-incdir or --without-m4_tolower(Mumps)-incdir was given. if test "${with_mumps_incdir+set}" = set; then withval="$with_mumps_incdir" if test "$withval" = no ; then coin_has_mumps="no" coin_reason="--without-mumps-incdir has been specified" else coin_has_mumps="no" coin_reason="--with-mumps-incdir has been specified" fi fi; fi if test "$coin_has_mumps" != no; then # Check whether --with-m4_tolower(Mumps)-datadir or --without-m4_tolower(Mumps)-datadir was given. if test "${with_mumps_datadir+set}" = set; then withval="$with_mumps_datadir" if test "$withval" = no ; then coin_has_mumps="no" coin_reason="--without-mumps-datadir has been specified" else coin_has_mumps="no" coin_reason="--with-mumps-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_mumps" = notGiven; then coin_has_mumps=no if test -d $srcdir/ThirdParty/Mumps; then coin_reason="source in ThirdParty/Mumps" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. for i in $srcdir/ThirdParty/Mumps/MUMPS/src/dmumps_part1.F; do if test -r $i; then coin_has_mumps="yes" else coin_has_mumps="no" coin_reason="source file $i not available" break fi done fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_mumps" >&5 echo "${ECHO_T}$coin_has_mumps" >&6 else echo "$as_me:$LINENO: result: $coin_has_mumps, $coin_reason" >&5 echo "${ECHO_T}$coin_has_mumps, $coin_reason" >&6 fi if test "$coin_has_mumps" = yes ; then if test -r $srcdir/ThirdParty/Mumps/configure; then coin_subdirs="$coin_subdirs ThirdParty/Mumps" subdirs="$subdirs ThirdParty/Mumps" fi fi ############################################################################# # Check which subprojects are there # ############################################################################# echo "$as_me:$LINENO: checking whether source of project Ipopt is available and should be compiled" >&5 echo $ECHO_N "checking whether source of project Ipopt is available and should be compiled... $ECHO_C" >&6 coin_has_ipopt=notGiven coin_reason= # check if user wants to skip project in any case if test x"$COIN_SKIP_PROJECTS" != x; then for dir in $COIN_SKIP_PROJECTS; do if test $dir = "Ipopt"; then coin_has_ipopt="no" coin_reason="Ipopt has been specified in COIN_SKIP_PROJECTS" fi done fi if test "$coin_has_ipopt" != no; then # Check whether --with-m4_tolower(Ipopt) or --without-m4_tolower(Ipopt) was given. if test "${with_ipopt+set}" = set; then withval="$with_ipopt" if test "$withval" = no ; then coin_has_ipopt="no" coin_reason="--without-ipopt has been specified" fi fi; fi if test "$coin_has_ipopt" != no; then # Check whether --with-m4_tolower(Ipopt)-lib or --without-m4_tolower(Ipopt)-lib was given. if test "${with_ipopt_lib+set}" = set; then withval="$with_ipopt_lib" if test "$withval" = no ; then coin_has_ipopt="no" coin_reason="--without-ipopt-lib has been specified" else coin_has_ipopt="no" coin_reason="--with-ipopt-lib has been specified" fi fi; fi if test "$coin_has_ipopt" != no; then # Check whether --with-m4_tolower(Ipopt)-incdir or --without-m4_tolower(Ipopt)-incdir was given. if test "${with_ipopt_incdir+set}" = set; then withval="$with_ipopt_incdir" if test "$withval" = no ; then coin_has_ipopt="no" coin_reason="--without-ipopt-incdir has been specified" else coin_has_ipopt="no" coin_reason="--with-ipopt-incdir has been specified" fi fi; fi if test "$coin_has_ipopt" != no; then # Check whether --with-m4_tolower(Ipopt)-datadir or --without-m4_tolower(Ipopt)-datadir was given. if test "${with_ipopt_datadir+set}" = set; then withval="$with_ipopt_datadir" if test "$withval" = no ; then coin_has_ipopt="no" coin_reason="--without-ipopt-datadir has been specified" else coin_has_ipopt="no" coin_reason="--with-ipopt-datadir has been specified" fi fi; fi # check if project is available in present directory if test "$coin_has_ipopt" = notGiven; then coin_has_ipopt=no if test -d $srcdir/Ipopt; then coin_reason="source in Ipopt" # If a third argument is given, then we have to check if one one the files given in that third argument is present. # If none of the files in the third argument is available, then we consider the project directory as non-existing. # However, if no third argument is given, then this means that there should be no check, and existence of the directory is sufficient. coin_has_ipopt="yes" fi fi if test -z "$coin_reason" ; then echo "$as_me:$LINENO: result: $coin_has_ipopt" >&5 echo "${ECHO_T}$coin_has_ipopt" >&6 else echo "$as_me:$LINENO: result: $coin_has_ipopt, $coin_reason" >&5 echo "${ECHO_T}$coin_has_ipopt, $coin_reason" >&6 fi if test "$coin_has_ipopt" = yes ; then if test -r $srcdir/Ipopt/configure; then coin_subdirs="$coin_subdirs Ipopt" subdirs="$subdirs Ipopt" fi fi ############################################################################# # Doxygen setup # ############################################################################# { echo "$as_me:$LINENO: configuring doxygen documentation options" >&5 echo "$as_me: configuring doxygen documentation options" >&6;} # Check to see if doxygen is available. # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_coin_have_doxygen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$coin_have_doxygen"; then ac_cv_prog_coin_have_doxygen="$coin_have_doxygen" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_coin_have_doxygen="yes" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_coin_have_doxygen" && ac_cv_prog_coin_have_doxygen="no" fi fi coin_have_doxygen=$ac_cv_prog_coin_have_doxygen if test -n "$coin_have_doxygen"; then echo "$as_me:$LINENO: result: $coin_have_doxygen" >&5 echo "${ECHO_T}$coin_have_doxygen" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Look for the dot tool from the graphviz package, unless the user has # disabled it. # Check whether --with-dot or --without-dot was given. if test "${with_dot+set}" = set; then withval="$with_dot" else withval=yes fi; if test x"$withval" = xno ; then coin_doxy_usedot=NO echo "$as_me:$LINENO: checking for dot " >&5 echo $ECHO_N "checking for dot ... $ECHO_C" >&6 echo "$as_me:$LINENO: result: disabled" >&5 echo "${ECHO_T}disabled" >&6 else # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_coin_doxy_usedot+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$coin_doxy_usedot"; then ac_cv_prog_coin_doxy_usedot="$coin_doxy_usedot" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_coin_doxy_usedot="YES" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_coin_doxy_usedot" && ac_cv_prog_coin_doxy_usedot="NO" fi fi coin_doxy_usedot=$ac_cv_prog_coin_doxy_usedot if test -n "$coin_doxy_usedot"; then echo "$as_me:$LINENO: result: $coin_doxy_usedot" >&5 echo "${ECHO_T}$coin_doxy_usedot" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi # Generate a tag file name and a log file name coin_doxy_tagname=doxydoc/${PACKAGE}_doxy.tag coin_doxy_logname=doxydoc/${PACKAGE}_doxy.log # Process the list of project names and massage them into possible doxygen # doc'n directories. Prefer 1) classic external, source processed using # a project-specific doxygen.conf, we use the tag file; 2) classic # external, source processed using package doxygen.conf; 3) installed # doxydoc. Alternatives 1) and 2) are only possible if the directory will be # configured, which we can't know unless this is the package base configure, # since coin_subdirs is only set there. Hence it's sufficient to check for # membership. If we use a tag file from a classic external, exclude the # source from doxygen processing when doxygen runs in the base directory. coin_doxy_tagfiles= coin_doxy_excludes= tmp="" for proj in $tmp ; do lc_proj=`echo $proj | tr [A-Z] [a-z]` echo "$as_me:$LINENO: checking for doxygen doc'n for $proj " >&5 echo $ECHO_N "checking for doxygen doc'n for $proj ... $ECHO_C" >&6 doxytag=${lc_proj}_doxy.tag doxyfound=no for chkProj in $coin_subdirs ; do if test "$chkProj" = "$proj" ; then # proj will be configured, hence doxydoc present in build tree doxysrcdir="${srcdir}/${proj}" # AC_MSG_NOTICE([Considering $doxysrcdir (base)]) if test -d "$doxysrcdir" ; then # with a doxydoc directory? doxydir="$doxysrcdir/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (base)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) if test -d "$doxydir" ; then # use tag file; don't process source eval doxydir="`pwd`/${proj}/doxydoc" coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" echo "$as_me:$LINENO: result: $doxydir (tag)" >&5 echo "${ECHO_T}$doxydir (tag)" >&6 coin_doxy_excludes="$coin_doxy_excludes */${proj}" else # will process the source -- nothing further to be done here echo "$as_me:$LINENO: result: $doxysrcdir (src)" >&5 echo "${ECHO_T}$doxysrcdir (src)" >&6 fi doxyfound=yes fi fi done # Not built, fall back to installed tag file if test $doxyfound = no ; then eval doxydir="${datadir}/coin/doc/${proj}/doxydoc" # AC_MSG_NOTICE([Considering $doxydir (install)]) # AC_MSG_NOTICE([Subdirs: $coin_subdirs)]) coin_doxy_tagfiles="$coin_doxy_tagfiles $doxydir/$doxytag=$doxydir/html" echo "$as_me:$LINENO: result: $doxydir (tag)" >&5 echo "${ECHO_T}$doxydir (tag)" >&6 fi done ############################################################################## # Finishing up by writing all the output # ############################################################################## # Here list all the files that configure should create (except for the # configuration header file) ac_config_files="$ac_config_files Makefile doxydoc/doxygen.conf" # Finally, we let configure write all the output... echo "$as_me:$LINENO: checking which command should be used to link input files" >&5 echo $ECHO_N "checking which command should be used to link input files... $ECHO_C" >&6 coin_link_input_cmd="$LN_S" if test "$enable_doscompile" = mingw; then coin_link_input_cmd=cp fi case "$CC" in clang* ) ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) coin_link_input_cmd=cp ;; esac echo "$as_me:$LINENO: result: $coin_link_input_cmd" >&5 echo "${ECHO_T}$coin_link_input_cmd" >&6 if test x$coin_skip_ac_output != xyes; then # library extension case "$CC" in clang* ) LIBEXT=a ;; cl* | */cl* | CL* | */CL* | icl* | */icl* | ICL* | */ICL*) LIBEXT=lib ;; *) LIBEXT=a ;; esac # Define VPATH_DISTCLEANFILES to be everything that needs to be # cleaned for distclean in a vpath configuration VPATH_DISTCLEANFILES="$coin_vpath_link_files" # Take out subdirectories if their configuration concluded that they # don't need to be compiled if test x"$coin_ac_skip_subdirs" != x; then new_subdirs= for i in $subdirs; do skipme=no for j in $coin_ac_skip_subdirs; do if test $i = $j; then skipme=yes; fi done if test $skipme = no; then new_subdirs="$new_subdirs $i" fi done subdirs="$new_subdirs" fi # need to come before AC_OUTPUT if test x$coin_projectdir != xyes; then # write coin_subdirs to a file so that project configuration knows where to find uninstalled projects echo $coin_subdirs > coin_subdirs.txt else # substitute for OBJDIR, needed to setup .pc file for uninstalled project ABSBUILDDIR="`pwd`" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then we branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. cat >confdef2opt.sed <<\_ACEOF t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g t quote s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g t quote d : quote s,[ `~#$^&*(){}\\|;'"<>?],\\&,g s,\[,\\&,g s,\],\\&,g s,\$,$$,g p _ACEOF # We use echo to avoid assuming a particular line-breaking character. # The extra dot is to prevent the shell from consuming trailing # line-breaks from the sub-command output. A line-break within # single-quotes doesn't work because, if this script is created in a # platform that uses two characters for line-breaks (e.g., DOS), tr # would break. ac_LF_and_DOT=`echo; echo .` DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` rm -f confdef2opt.sed ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${COIN_CC_IS_CL_TRUE}" && test -z "${COIN_CC_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CC_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${COIN_CXX_IS_CL_TRUE}" && test -z "${COIN_CXX_IS_CL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"COIN_CXX_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"COIN_CXX_IS_CL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_EXTERNALS_TRUE}" && test -z "${HAVE_EXTERNALS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"HAVE_EXTERNALS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by Ipopt $as_me 3.11.4, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ Ipopt config.status 3.11.4 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doxydoc/doxygen.conf" ) CONFIG_FILES="$CONFIG_FILES doxydoc/doxygen.conf" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@CDEFS@,$CDEFS,;t t s,@ADD_CFLAGS@,$ADD_CFLAGS,;t t s,@DBG_CFLAGS@,$DBG_CFLAGS,;t t s,@OPT_CFLAGS@,$OPT_CFLAGS,;t t s,@sol_cc_compiler@,$sol_cc_compiler,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@COIN_CC_IS_CL_TRUE@,$COIN_CC_IS_CL_TRUE,;t t s,@COIN_CC_IS_CL_FALSE@,$COIN_CC_IS_CL_FALSE,;t t s,@MPICC@,$MPICC,;t t s,@CXXDEFS@,$CXXDEFS,;t t s,@ADD_CXXFLAGS@,$ADD_CXXFLAGS,;t t s,@DBG_CXXFLAGS@,$DBG_CXXFLAGS,;t t s,@OPT_CXXFLAGS@,$OPT_CXXFLAGS,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@COIN_CXX_IS_CL_TRUE@,$COIN_CXX_IS_CL_TRUE,;t t s,@COIN_CXX_IS_CL_FALSE@,$COIN_CXX_IS_CL_FALSE,;t t s,@MPICXX@,$MPICXX,;t t s,@ADD_FFLAGS@,$ADD_FFLAGS,;t t s,@DBG_FFLAGS@,$DBG_FFLAGS,;t t s,@OPT_FFLAGS@,$OPT_FFLAGS,;t t s,@F77@,$F77,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@MPIF77@,$MPIF77,;t t s,@EGREP@,$EGREP,;t t s,@LN_S@,$LN_S,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@mkdir_p@,$mkdir_p,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@AMTAR@,$AMTAR,;t t s,@am__tar@,$am__tar,;t t s,@am__untar@,$am__untar,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@LIBTOOLM4@,$LIBTOOLM4,;t t s,@have_autoconf@,$have_autoconf,;t t s,@have_automake@,$have_automake,;t t s,@have_svn@,$have_svn,;t t s,@BUILDTOOLSDIR@,$BUILDTOOLSDIR,;t t s,@AUX_DIR@,$AUX_DIR,;t t s,@abs_source_dir@,$abs_source_dir,;t t s,@abs_lib_dir@,$abs_lib_dir,;t t s,@abs_include_dir@,$abs_include_dir,;t t s,@abs_bin_dir@,$abs_bin_dir,;t t s,@HAVE_EXTERNALS_TRUE@,$HAVE_EXTERNALS_TRUE,;t t s,@HAVE_EXTERNALS_FALSE@,$HAVE_EXTERNALS_FALSE,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@CPP@,$CPP,;t t s,@CXXCPP@,$CXXCPP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@ac_c_preproc_warn_flag@,$ac_c_preproc_warn_flag,;t t s,@ac_cxx_preproc_warn_flag@,$ac_cxx_preproc_warn_flag,;t t s,@RPATH_FLAGS@,$RPATH_FLAGS,;t t s,@LT_LDFLAGS@,$LT_LDFLAGS,;t t s,@COIN_SKIP_PROJECTS@,$COIN_SKIP_PROJECTS,;t t s,@subdirs@,$subdirs,;t t s,@coin_have_doxygen@,$coin_have_doxygen,;t t s,@coin_doxy_usedot@,$coin_doxy_usedot,;t t s,@coin_doxy_tagname@,$coin_doxy_tagname,;t t s,@coin_doxy_logname@,$coin_doxy_logname,;t t s,@coin_doxy_tagfiles@,$coin_doxy_tagfiles,;t t s,@coin_doxy_excludes@,$coin_doxy_excludes,;t t s,@LIBEXT@,$LIBEXT,;t t s,@VPATH_DISTCLEANFILES@,$VPATH_DISTCLEANFILES,;t t s,@ABSBUILDDIR@,$ABSBUILDDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file and --srcdir arguments so they do not pile up. ac_sub_configure_args= ac_prev= for ac_arg in $ac_configure_args; do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_sub_configure_args="--prefix=$prefix $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d $srcdir/$ac_dir || continue { echo "$as_me:$LINENO: configuring in $ac_dir" >&5 echo "$as_me: configuring in $ac_dir" >&6;} { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Do not use `cd foo && pwd` to compute absolute paths, because # the directories may not exist. case `pwd` in .) ac_abs_builddir="$ac_dir";; *) case "$ac_dir" in .) ac_abs_builddir=`pwd`;; [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; *) ac_abs_builddir=`pwd`/"$ac_dir";; esac;; esac case $ac_abs_builddir in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; esac;; esac case $ac_abs_builddir in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; esac;; esac case $ac_abs_builddir in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir=$ac_abs_builddir;; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'" elif test -f $ac_srcdir/configure; then ac_sub_configure="$SHELL '$ac_srcdir/configure'" elif test -f $ac_srcdir/configure.in; then ac_sub_configure=$ac_configure else { echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5 echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative path. ac_sub_cache_file=$ac_top_builddir$cache_file ;; esac { echo "$as_me:$LINENO: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 echo "$as_me: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval $ac_sub_configure $ac_sub_configure_args \ --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir || { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} { (exit 1); exit 1; }; } fi cd $ac_popdir done fi if test x"$coin_vpath_link_files" = x; then : ; else lnkcmd="$coin_link_input_cmd" if test "$lnkcmd" = cp; then { echo "$as_me:$LINENO: Copying data files for VPATH configuration" >&5 echo "$as_me: Copying data files for VPATH configuration" >&6;} else { echo "$as_me:$LINENO: Creating VPATH links for data files" >&5 echo "$as_me: Creating VPATH links for data files" >&6;} fi for file in $coin_vpath_link_files; do dir=`(dirname "./$file") 2>/dev/null || $as_expr X"./$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"./$file" : 'X\(//\)[^/]' \| \ X"./$file" : 'X\(//\)$' \| \ X"./$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"./$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` if test -d $dir; then : ; else { if $as_mkdir_p; then mkdir -p $dir else as_dir=$dir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dir" >&5 echo "$as_me: error: cannot create directory $dir" >&2;} { (exit 1); exit 1; }; }; } fi rm -f $file $lnkcmd $abs_source_dir/$file $file done fi { echo "$as_me:$LINENO: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&5 echo "$as_me: In case of trouble, first consult the troubleshooting page at https://projects.coin-or.org/BuildTools/wiki/user-troubleshooting" >&6;} if test x$coin_projectdir = xyes; then { echo "$as_me:$LINENO: Configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Configuration of $PACKAGE_NAME successful" >&6;} else { echo "$as_me:$LINENO: Main configuration of $PACKAGE_NAME successful" >&5 echo "$as_me: Main configuration of $PACKAGE_NAME successful" >&6;} fi else { echo "$as_me:$LINENO: No configuration of $PACKAGE_NAME necessary" >&5 echo "$as_me: No configuration of $PACKAGE_NAME necessary" >&6;} fi Ipopt-3.11.4/config.guess0000755000076600007660000012706312151613040013673 0ustar coincoin#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-05-17' # This file 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. # # This program 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End:

* This class is a JNI hook around the C++ interface of Ipopt, as a consequence * it will need a nativelly compiled DLL to run. * For more details about Ipopt * click here. *